@norcy/react-native-toolkit 0.1.136 → 0.1.138

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.
@@ -11,6 +11,8 @@ jobs:
11
11
  - uses: actions/checkout@v4
12
12
  with:
13
13
  fetch-depth: 0
14
+ # 添加 token 权限
15
+ token: ${{ secrets.GITHUB_TOKEN }}
14
16
 
15
17
  - uses: actions/setup-node@v4
16
18
  with:
@@ -26,4 +28,5 @@ jobs:
26
28
  git push origin master --follow-tags
27
29
  env:
28
30
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
31
+ # 确保使用 checkout 步骤配置的 token
29
32
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -61,13 +61,11 @@ const _handleResponse = OnlineItems => {
61
61
  const ConfigDataModel = exports.ConfigDataModel = {
62
62
  init: defaultValues => {
63
63
  MyItems = defaultValues;
64
- _Notification.Notification.addListener('onLogin', _ref => {
64
+ _Notification.Notification.addListener('onLoginSuccess', _ref => {
65
65
  let {
66
- isAuto,
67
- user,
68
- error
66
+ isAuto
69
67
  } = _ref;
70
- if (!isAuto && user && !error) {
68
+ if (!isAuto) {
71
69
  isDataReady = false;
72
70
  isNetwordDataReady = false;
73
71
  ConfigDataModel.fetch();
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_LoginManager","_Notification","_VersionManager","_VipAndroidManager","EventEmitter","eventEmitter","MyItems","AV","_filterByVersion","items","ret","item","VersionManager","isValidVersion","get","push","_updateKeyValues","value","trim","handleVersionInfo","init","latestAppVersion","ConfigDataModel","Platform","OS","latestBundleVersion","isDataReady","isNetwordDataReady","_handleResponse","OnlineItems","console","log","VipAndroidManager","setOfferings","emitChange","exports","defaultValues","Notification","addListener","_ref","isAuto","user","error","fetch","query","Query","equalTo","find","then","catch","e","key","emit","addListenerOnce","callback","once","on","shouldEnableByRate","enable","rate","_LoginManager$current","_LoginManager$current2","r","lastChar","LoginManager","currentUser","AVUser","slice","indexOf","toLowerCase"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { LoginManager, LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { VersionManager } from './VersionManager';\nimport { VipAndroidManager } from './VipAndroidManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n for (const item of items) {\n if (\n !VersionManager.isValidVersion(item.get('minVer'), item.get('maxVer'))\n ) {\n continue;\n }\n ret.push(item);\n }\n return ret;\n};\n\nconst _updateKeyValues = (items: Object[]) => {\n for (const item of items) {\n let value = item.get('value');\n if (typeof value === 'string') {\n // 因为 leancloud 无法配置空白内容,所以 trim 下,这样就能以空格代替空白{\n value = value.trim();\n }\n MyItems[item.get('key')] = value;\n }\n};\n\nconst handleVersionInfo = () => {\n VersionManager.init({\n latestAppVersion: ConfigDataModel.get(\n Platform.OS === 'android' ? 'aov' : 'ov'\n ),\n latestBundleVersion: ConfigDataModel.get(\n Platform.OS === 'android' ? 'abov' : 'bov'\n ),\n });\n};\n\nlet isDataReady = false;\nlet isNetwordDataReady = false;\n\nconst _handleResponse = (OnlineItems: Object[]) => {\n if (!isNetwordDataReady) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n _updateKeyValues(items);\n // 处理 Version 信息\n handleVersionInfo();\n console.log('Config 处理完毕');\n isDataReady = true;\n VipAndroidManager.setOfferings(ConfigDataModel.get('vip_android_offerings'));\n ConfigDataModel.emitChange();\n};\n\n// ConfigDataModel 的 Config 是支持后台配置多条同一个 Key 的,按版本区分\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n\n Notification.addListener(\n 'onLogin',\n ({ isAuto, user, error }: LoginResultDataType) => {\n if (!isAuto && user && !error) {\n isDataReady = false;\n isNetwordDataReady = false;\n ConfigDataModel.fetch();\n }\n }\n );\n\n // 防止 Config 太慢,而 Vip 页面却已经打开导致无商品的问题\n VipAndroidManager.setOfferings(\n ConfigDataModel.get('vip_android_offerings')\n );\n ConfigDataModel.fetch();\n },\n\n fetch: () => {\n // 确保可重入,但如果网络一直出错的话,每次调用都会一直发\n if (isNetwordDataReady) {\n return;\n }\n\n const query = new AV.Query('Configs');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n query\n .find()\n .then((items: Object[]) => {\n console.log('Config 抓取完毕');\n isNetwordDataReady = true;\n _handleResponse(items);\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n get: (key: string) => {\n return MyItems[key];\n },\n\n emitChange: () => {\n eventEmitter.emit('change');\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n\n addListener: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.on('change', callback);\n },\n\n shouldEnableByRate: (enable?: boolean, rate?: number) => {\n if (!enable) {\n return false;\n }\n // rate 不传,默认为全量\n const r = rate ?? 1;\n if (r <= 0) {\n return false;\n }\n // ID 最后一位是 16 进制(0-f),未登录默认为全量\n const lastChar =\n LoginManager.currentUser()?.AVUser?.get('objectId')?.slice(-1) ?? '0';\n return '0123456789abcdef'.indexOf(lastChar.toLowerCase()) < r * 16;\n },\n};\n\nexport { ConfigDataModel };\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_LoginManager","_Notification","_VersionManager","_VipAndroidManager","EventEmitter","eventEmitter","MyItems","AV","_filterByVersion","items","ret","item","VersionManager","isValidVersion","get","push","_updateKeyValues","value","trim","handleVersionInfo","init","latestAppVersion","ConfigDataModel","Platform","OS","latestBundleVersion","isDataReady","isNetwordDataReady","_handleResponse","OnlineItems","console","log","VipAndroidManager","setOfferings","emitChange","exports","defaultValues","Notification","addListener","_ref","isAuto","fetch","query","Query","equalTo","find","then","catch","e","error","key","emit","addListenerOnce","callback","once","on","shouldEnableByRate","enable","rate","_LoginManager$current","_LoginManager$current2","r","lastChar","LoginManager","currentUser","AVUser","slice","indexOf","toLowerCase"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { LoginManager, LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { VersionManager } from './VersionManager';\nimport { VipAndroidManager } from './VipAndroidManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n for (const item of items) {\n if (\n !VersionManager.isValidVersion(item.get('minVer'), item.get('maxVer'))\n ) {\n continue;\n }\n ret.push(item);\n }\n return ret;\n};\n\nconst _updateKeyValues = (items: Object[]) => {\n for (const item of items) {\n let value = item.get('value');\n if (typeof value === 'string') {\n // 因为 leancloud 无法配置空白内容,所以 trim 下,这样就能以空格代替空白{\n value = value.trim();\n }\n MyItems[item.get('key')] = value;\n }\n};\n\nconst handleVersionInfo = () => {\n VersionManager.init({\n latestAppVersion: ConfigDataModel.get(\n Platform.OS === 'android' ? 'aov' : 'ov'\n ),\n latestBundleVersion: ConfigDataModel.get(\n Platform.OS === 'android' ? 'abov' : 'bov'\n ),\n });\n};\n\nlet isDataReady = false;\nlet isNetwordDataReady = false;\n\nconst _handleResponse = (OnlineItems: Object[]) => {\n if (!isNetwordDataReady) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n _updateKeyValues(items);\n // 处理 Version 信息\n handleVersionInfo();\n console.log('Config 处理完毕');\n isDataReady = true;\n VipAndroidManager.setOfferings(ConfigDataModel.get('vip_android_offerings'));\n ConfigDataModel.emitChange();\n};\n\n// ConfigDataModel 的 Config 是支持后台配置多条同一个 Key 的,按版本区分\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n\n Notification.addListener(\n 'onLoginSuccess',\n ({ isAuto }: LoginSuccessResultType) => {\n if (!isAuto) {\n isDataReady = false;\n isNetwordDataReady = false;\n ConfigDataModel.fetch();\n }\n }\n );\n\n // 防止 Config 太慢,而 Vip 页面却已经打开导致无商品的问题\n VipAndroidManager.setOfferings(\n ConfigDataModel.get('vip_android_offerings')\n );\n ConfigDataModel.fetch();\n },\n\n fetch: () => {\n // 确保可重入,但如果网络一直出错的话,每次调用都会一直发\n if (isNetwordDataReady) {\n return;\n }\n\n const query = new AV.Query('Configs');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n query\n .find()\n .then((items: Object[]) => {\n console.log('Config 抓取完毕');\n isNetwordDataReady = true;\n _handleResponse(items);\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n get: (key: string) => {\n return MyItems[key];\n },\n\n emitChange: () => {\n eventEmitter.emit('change');\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n\n addListener: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.on('change', callback);\n },\n\n shouldEnableByRate: (enable?: boolean, rate?: number) => {\n if (!enable) {\n return false;\n }\n // rate 不传,默认为全量\n const r = rate ?? 1;\n if (r <= 0) {\n return false;\n }\n // ID 最后一位是 16 进制(0-f),未登录默认为全量\n const lastChar =\n LoginManager.currentUser()?.AVUser?.get('objectId')?.slice(-1) ?? '0';\n return '0123456789abcdef'.indexOf(lastChar.toLowerCase()) < r * 16;\n },\n};\n\nexport { ConfigDataModel };\n"],"mappings":"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"}
@@ -30,16 +30,21 @@ const onLoginFinish = _ref => {
30
30
  error,
31
31
  code
32
32
  } = _ref;
33
- const data = {
34
- isAuto,
35
- user,
36
- error,
37
- code
38
- };
39
33
  if (user) {
40
34
  _PrefData.PrefData.setValue(_PrefData.BuildInPrefs.LastLoginType, user.type);
35
+ const data = {
36
+ isAuto,
37
+ user
38
+ };
39
+ _Notification.Notification.postNotification('onLoginSuccess', data);
40
+ } else {
41
+ const data = {
42
+ isAuto,
43
+ error,
44
+ code
45
+ };
46
+ _Notification.Notification.postNotification('onLoginFail', data);
41
47
  }
42
- _Notification.Notification.postNotification('onLogin', data);
43
48
  };
44
49
  const doLeanCloudLogin = async (authData, userData, callback) => {
45
50
  console.log('Lean Cloud 开始登录', userData);
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_AppleLoginUtil","_Notification","_PrefData","_Tool","_WeChatLoginUtil","_constant","AV","CURRENT_USER","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","RegisterInThisDevice","error2","LoginManager","exports","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","qrcodeCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","ToolkitConfig","WeiXinId","WeiXinSecret","_ref5","unionid","_ref6","LoginTypeWeChatScan","doLoginByScan","_ref7","_ref8","uniqueId","getUniqueIdSync","_ref9","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","isRegisterInThisDevice","fetchWeChatAvatar","_ref10","getRegisterDays","_LoginManager$current2","createTime","getCreatedAt","diff","Date","getTime","diffDay","Math","max","ceil"],"sources":["LoginManager.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport { AppleLoginUtil } from './AppleLoginUtil';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { ToolkitConfig } from './Tool';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\ntype FetchImageFunctionType = ({ headimgurl }: { headimgurl: string }) => void;\nexport type LoginResultDataType = {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: string;\n};\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\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}: LoginResultDataType) => {\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.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(BuildInPrefs.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\nexport const LoginManager = {\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 qrcodeCallback?: (qrcode: string) => void\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 ToolkitConfig.WeiXinId,\n ToolkitConfig.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.LoginTypeWeChatScan) {\n WeChatLoginUtil.doLoginByScan(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n qrcodeCallback!,\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: 'Visitor',\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: 'Unknown Login Type' });\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: any[],\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: any, 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 isRegisterInThisDevice: () => {\n return PrefData.getValue(BuildInPrefs.RegisterInThisDevice);\n },\n\n fetchWeChatAvatar: (callback: FetchImageFunctionType) => {\n WeChatLoginUtil.doLogin(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n\n // 已注册天数\n getRegisterDays: () => {\n if (!LoginManager.isLogin()) {\n return 0;\n }\n const createTime = LoginManager.currentUser()?.AVUser.getCreatedAt();\n if (createTime) {\n const diff = new Date().getTime() - createTime.getTime();\n const diffDay = Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n return diffDay;\n }\n return 0;\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_AppleLoginUtil","_Notification","_PrefData","_Tool","_WeChatLoginUtil","_constant","AV","CURRENT_USER","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","PrefData","setValue","BuildInPrefs","LastLoginType","data","Notification","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginType","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","Platform","OS","isNew","RegisterInThisDevice","error2","LoginManager","exports","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","qrcodeCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","ToolkitConfig","WeiXinId","WeiXinSecret","_ref5","unionid","_ref6","LoginTypeWeChatScan","doLoginByScan","_ref7","_ref8","uniqueId","getUniqueIdSync","_ref9","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","isRegisterInThisDevice","fetchWeChatAvatar","_ref10","getRegisterDays","_LoginManager$current2","createTime","getCreatedAt","diff","Date","getTime","diffDay","Math","max","ceil"],"sources":["LoginManager.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport { AppleLoginUtil } from './AppleLoginUtil';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { ToolkitConfig } from './Tool';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\ntype FetchImageFunctionType = ({ headimgurl }: { headimgurl: string }) => void;\nexport type LoginSuccessResultType = {\n isAuto?: boolean;\n user: UserType;\n};\nexport type LoginFailResulType = {\n isAuto?: boolean;\n error: string | object;\n code?: string;\n};\n\ntype LoginFinishParams = {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: string;\n};\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\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}: LoginFinishParams) => {\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n const data = { isAuto, user };\n Notification.postNotification('onLoginSuccess', data);\n } else {\n const data = { isAuto, error, code };\n Notification.postNotification('onLoginFail', data);\n }\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.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(BuildInPrefs.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\nexport const LoginManager = {\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 qrcodeCallback?: (qrcode: string) => void\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 ToolkitConfig.WeiXinId,\n ToolkitConfig.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.LoginTypeWeChatScan) {\n WeChatLoginUtil.doLoginByScan(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n qrcodeCallback!,\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: 'Visitor',\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: 'Unknown Login Type' });\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: any[],\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: any, 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 isRegisterInThisDevice: () => {\n return PrefData.getValue(BuildInPrefs.RegisterInThisDevice);\n },\n\n fetchWeChatAvatar: (callback: FetchImageFunctionType) => {\n WeChatLoginUtil.doLogin(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n\n // 已注册天数\n getRegisterDays: () => {\n if (!LoginManager.isLogin()) {\n return 0;\n }\n const createTime = LoginManager.currentUser()?.AVUser.getCreatedAt();\n if (createTime) {\n const diff = new Date().getTime() - createTime.getTime();\n const diffDay = Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n return diffDay;\n }\n return 0;\n },\n};\n"],"mappings":"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"}
@@ -112,13 +112,11 @@ const MessageModel = exports.MessageModel = {
112
112
  _handleResponse(customFilter);
113
113
  }
114
114
  });
115
- _Notification.Notification.addListener('onLogin', _ref => {
115
+ _Notification.Notification.addListener('onLoginSuccess', _ref => {
116
116
  let {
117
- isAuto,
118
- user,
119
- error
117
+ isAuto
120
118
  } = _ref;
121
- if (!isAuto && user && !error) {
119
+ if (!isAuto) {
122
120
  isDataReady = false;
123
121
  isConfigStateReady = false;
124
122
  isNetwordDataReady = false;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_ConfigDataModel","_Frequence","_LoginManager","_Notification","_PrefData","_Tool","_VersionManager","_VipManager","AV","EventEmitter","eventEmitter","MyMessages","_filterByVersion","items","ret","item","VersionManager","isValidVersion","minVer","maxVer","push","_handleReadMessages","__DEV__","readMsgs","PrefData","getValue","BuildInPrefs","Messages","includes","objectId","isRead","_item$key","key","ConfigDataModel","get","hasNewAppVer","updatedAt","Date","toString","length","freConfig","limit","gap","FrequenceManager","canRun","configValue","_getConfigValue","lastTimestamp","isDataReady","isConfigStateReady","isNetwordDataReady","OnlineItems","_handleResponse","customFilter","isDanger","map","Tool","jsonify","sort","a","b","dateA","getTime","dateB","console","log","MessageModel","emitChange","exports","init","Notification","addListener","fetch","_ref","isAuto","user","error","_LoginManager$current","query","Query","equalTo","Platform","OS","VipManager","isForeverVip","isVip","notEqualTo","userQuery","sizeEqualTo","userId","LoginManager","currentUser","AVUser","selectUserQuery","or","and","descending","find","then","catch","e","getUnreadMessages","filter","getAllMessages","removeMessage","message","index","findIndex","splice","readIndex","indexOf","setValue","reset","markMessageRead","markFinish","emit","slice","addListenerOnce","callback","once","on","removeListener"],"sources":["MessageModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { FreConfigType, FrequenceManager } from './Frequence';\nimport { LoginManager, LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { Tool } from './Tool';\nimport { VersionManager } from './VersionManager';\nimport { VipManager } from './VipManager';\n\nconst AV = require('leancloud-storage');\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nexport interface Message {\n objectId: string;\n android: boolean;\n ios: boolean;\n title?: string;\n content?: string;\n maxVer?: string;\n minVer?: string;\n key?: string;\n updatedAt: string;\n valid: boolean;\n vipFilter?: number;\n isRead: boolean;\n users?: string[];\n limit?: number;\n gap?: number;\n url: string;\n actionTitle?: string;\n}\n\nlet MyMessages: Message[] = [];\n\nconst _filterByVersion = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n for (const item of items) {\n if (!VersionManager.isValidVersion(item.minVer, item.maxVer)) {\n continue;\n }\n ret.push(item);\n }\n return ret;\n};\n\nconst _handleReadMessages = (items: Message[]): Message[] => {\n if (__DEV__) {\n // return items;\n }\n\n // 根据已读状态标为已读\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n for (const item of items) {\n if (readMsgs.includes(item.objectId)) {\n item.isRead = true;\n }\n }\n\n // 挑选需要强制未读\n for (const item of items) {\n if (!item.isRead) {\n continue;\n }\n if (item.key === 'changeLog') {\n // 强制升级弹窗\n // Message 是在 Config 回包之后再请求的,因此此时 Config 的值一定是准确的\n if (\n ConfigDataModel.get('upgrade_alert') &&\n VersionManager.hasNewAppVer()\n ) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n } else if (item.key?.length) {\n // 如果是带 Key 的,那么会根据 limit 或 gap 再给一次标为未读的机会\n const freConfig: FreConfigType = {\n key: item.key,\n limit: item.limit,\n gap: item.gap,\n };\n if (FrequenceManager.canRun(freConfig)) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n } else {\n const configValue = FrequenceManager._getConfigValue(freConfig);\n if (configValue.lastTimestamp) {\n item.updatedAt = new Date(\n configValue.lastTimestamp * 1000\n ).toString();\n }\n }\n }\n }\n\n return items;\n};\n\nlet isDataReady = false;\nlet isConfigStateReady = false;\nlet isNetwordDataReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = (customFilter?: MessageFilter) => {\n if (!isConfigStateReady || !OnlineItems.length || !isNetwordDataReady) {\n return;\n }\n\n if (VersionManager.isDanger()) {\n return;\n }\n\n MyMessages = OnlineItems.map((item) => Tool.jsonify(item));\n MyMessages = _filterByVersion(MyMessages);\n if (customFilter) {\n MyMessages = customFilter(MyMessages);\n }\n\n MyMessages = _handleReadMessages(MyMessages);\n\n // 由于强制插入的未读消息更改了时间,因此需要重新排序\n MyMessages = MyMessages.sort((a: Message, b: Message) => {\n let dateA = new Date(a.updatedAt).getTime();\n let dateB = new Date(b.updatedAt).getTime();\n return dateB - dateA;\n });\n console.log('Message 处理完毕');\n isDataReady = true;\n MessageModel.emitChange();\n};\n\nexport type MessageFilter = (oldMessage: Message[]) => Message[];\n\nexport const MessageModel = {\n init: (customFilter?: MessageFilter) => {\n Notification.addListener('onVipRefresh', () => {\n MessageModel.fetch(customFilter);\n });\n\n ConfigDataModel.addListener(() => {\n if (!isConfigStateReady) {\n isConfigStateReady = true;\n _handleResponse(customFilter);\n }\n });\n\n Notification.addListener(\n 'onLogin',\n ({ isAuto, user, error }: LoginResultDataType) => {\n if (!isAuto && user && !error) {\n isDataReady = false;\n isConfigStateReady = false;\n isNetwordDataReady = false;\n OnlineItems = [];\n MessageModel.fetch(customFilter);\n }\n }\n );\n },\n\n fetch: (customFilter?: MessageFilter) => {\n // 确保可重入,但如果网络一直出错的话,每次调用都会一直发\n if (isNetwordDataReady) {\n return;\n }\n\n let query = new AV.Query('Message');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n\n if (VipManager.isForeverVip()) {\n query.equalTo('vipFilter', 0);\n } else if (VipManager.isVip()) {\n // 这里如果后续增加枚举,就会有问题\n query.notEqualTo('vipFilter', 1);\n }\n\n let userQuery = new AV.Query('Message').sizeEqualTo('users', 0);\n const userId = LoginManager.currentUser()?.AVUser.get('objectId');\n if (userId) {\n const selectUserQuery = new AV.Query('Message').equalTo('users', userId);\n userQuery = AV.Query.or(userQuery, selectUserQuery);\n }\n query = AV.Query.and(query, userQuery);\n\n query\n .descending('updatedAt')\n .find()\n .then(async (items: Object[]) => {\n console.log('Message 抓取完毕');\n isNetwordDataReady = true;\n OnlineItems = items;\n _handleResponse(customFilter);\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getUnreadMessages: (): Message[] => {\n return MyMessages.filter((item) => !item.isRead);\n },\n\n getAllMessages: (): Message[] => {\n return MyMessages;\n },\n\n removeMessage: async (message: Message) => {\n if (!message.objectId) {\n return;\n }\n\n // 从内存中移除\n const index = MyMessages.findIndex(\n (item) => item.objectId === message.objectId\n );\n if (index !== -1) {\n MyMessages.splice(index, 1);\n }\n\n // 从已读状态中移除\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n const readIndex = readMsgs.indexOf(message.objectId);\n if (readIndex !== -1) {\n readMsgs.splice(readIndex, 1);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n }\n\n // 如果消息有 key,也需要清理频率管理器的状态\n if (message.key) {\n const freConfig: FreConfigType = {\n key: message.key,\n limit: message.limit,\n gap: message.gap,\n };\n FrequenceManager.reset(freConfig);\n }\n\n MessageModel.emitChange();\n },\n\n markMessageRead: async (message: Message) => {\n if (message.isRead || !message.objectId) {\n return;\n }\n message.isRead = true;\n\n if (message.key) {\n const freConfig: FreConfigType = {\n key: message.key,\n limit: message.limit,\n gap: message.gap,\n };\n // 能被展示出来的 message 一定是符合 FrequenceManager.canRun 的\n FrequenceManager.markFinish(freConfig);\n }\n\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n readMsgs.push(message.objectId);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n MessageModel.emitChange();\n },\n\n emitChange: () => {\n eventEmitter.emit('change', MyMessages.slice());\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n\n addListener: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return callback;\n }\n eventEmitter.on('change', callback);\n return callback;\n },\n\n removeListener: (callback: Function) => {\n eventEmitter.removeListener('change', callback);\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_ConfigDataModel","_Frequence","_LoginManager","_Notification","_PrefData","_Tool","_VersionManager","_VipManager","AV","EventEmitter","eventEmitter","MyMessages","_filterByVersion","items","ret","item","VersionManager","isValidVersion","minVer","maxVer","push","_handleReadMessages","__DEV__","readMsgs","PrefData","getValue","BuildInPrefs","Messages","includes","objectId","isRead","_item$key","key","ConfigDataModel","get","hasNewAppVer","updatedAt","Date","toString","length","freConfig","limit","gap","FrequenceManager","canRun","configValue","_getConfigValue","lastTimestamp","isDataReady","isConfigStateReady","isNetwordDataReady","OnlineItems","_handleResponse","customFilter","isDanger","map","Tool","jsonify","sort","a","b","dateA","getTime","dateB","console","log","MessageModel","emitChange","exports","init","Notification","addListener","fetch","_ref","isAuto","_LoginManager$current","query","Query","equalTo","Platform","OS","VipManager","isForeverVip","isVip","notEqualTo","userQuery","sizeEqualTo","userId","LoginManager","currentUser","AVUser","selectUserQuery","or","and","descending","find","then","catch","e","error","getUnreadMessages","filter","getAllMessages","removeMessage","message","index","findIndex","splice","readIndex","indexOf","setValue","reset","markMessageRead","markFinish","emit","slice","addListenerOnce","callback","once","on","removeListener"],"sources":["MessageModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { FreConfigType, FrequenceManager } from './Frequence';\nimport { LoginManager, LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { Tool } from './Tool';\nimport { VersionManager } from './VersionManager';\nimport { VipManager } from './VipManager';\n\nconst AV = require('leancloud-storage');\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nexport interface Message {\n objectId: string;\n android: boolean;\n ios: boolean;\n title?: string;\n content?: string;\n maxVer?: string;\n minVer?: string;\n key?: string;\n updatedAt: string;\n valid: boolean;\n vipFilter?: number;\n isRead: boolean;\n users?: string[];\n limit?: number;\n gap?: number;\n url: string;\n actionTitle?: string;\n}\n\nlet MyMessages: Message[] = [];\n\nconst _filterByVersion = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n for (const item of items) {\n if (!VersionManager.isValidVersion(item.minVer, item.maxVer)) {\n continue;\n }\n ret.push(item);\n }\n return ret;\n};\n\nconst _handleReadMessages = (items: Message[]): Message[] => {\n if (__DEV__) {\n // return items;\n }\n\n // 根据已读状态标为已读\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n for (const item of items) {\n if (readMsgs.includes(item.objectId)) {\n item.isRead = true;\n }\n }\n\n // 挑选需要强制未读\n for (const item of items) {\n if (!item.isRead) {\n continue;\n }\n if (item.key === 'changeLog') {\n // 强制升级弹窗\n // Message 是在 Config 回包之后再请求的,因此此时 Config 的值一定是准确的\n if (\n ConfigDataModel.get('upgrade_alert') &&\n VersionManager.hasNewAppVer()\n ) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n } else if (item.key?.length) {\n // 如果是带 Key 的,那么会根据 limit 或 gap 再给一次标为未读的机会\n const freConfig: FreConfigType = {\n key: item.key,\n limit: item.limit,\n gap: item.gap,\n };\n if (FrequenceManager.canRun(freConfig)) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n } else {\n const configValue = FrequenceManager._getConfigValue(freConfig);\n if (configValue.lastTimestamp) {\n item.updatedAt = new Date(\n configValue.lastTimestamp * 1000\n ).toString();\n }\n }\n }\n }\n\n return items;\n};\n\nlet isDataReady = false;\nlet isConfigStateReady = false;\nlet isNetwordDataReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = (customFilter?: MessageFilter) => {\n if (!isConfigStateReady || !OnlineItems.length || !isNetwordDataReady) {\n return;\n }\n\n if (VersionManager.isDanger()) {\n return;\n }\n\n MyMessages = OnlineItems.map((item) => Tool.jsonify(item));\n MyMessages = _filterByVersion(MyMessages);\n if (customFilter) {\n MyMessages = customFilter(MyMessages);\n }\n\n MyMessages = _handleReadMessages(MyMessages);\n\n // 由于强制插入的未读消息更改了时间,因此需要重新排序\n MyMessages = MyMessages.sort((a: Message, b: Message) => {\n let dateA = new Date(a.updatedAt).getTime();\n let dateB = new Date(b.updatedAt).getTime();\n return dateB - dateA;\n });\n console.log('Message 处理完毕');\n isDataReady = true;\n MessageModel.emitChange();\n};\n\nexport type MessageFilter = (oldMessage: Message[]) => Message[];\n\nexport const MessageModel = {\n init: (customFilter?: MessageFilter) => {\n Notification.addListener('onVipRefresh', () => {\n MessageModel.fetch(customFilter);\n });\n\n ConfigDataModel.addListener(() => {\n if (!isConfigStateReady) {\n isConfigStateReady = true;\n _handleResponse(customFilter);\n }\n });\n\n Notification.addListener(\n 'onLoginSuccess',\n ({ isAuto }: LoginSuccessResultType) => {\n if (!isAuto) {\n isDataReady = false;\n isConfigStateReady = false;\n isNetwordDataReady = false;\n OnlineItems = [];\n MessageModel.fetch(customFilter);\n }\n }\n );\n },\n\n fetch: (customFilter?: MessageFilter) => {\n // 确保可重入,但如果网络一直出错的话,每次调用都会一直发\n if (isNetwordDataReady) {\n return;\n }\n\n let query = new AV.Query('Message');\n query.equalTo('valid', true).equalTo(Platform.OS, true);\n\n if (VipManager.isForeverVip()) {\n query.equalTo('vipFilter', 0);\n } else if (VipManager.isVip()) {\n // 这里如果后续增加枚举,就会有问题\n query.notEqualTo('vipFilter', 1);\n }\n\n let userQuery = new AV.Query('Message').sizeEqualTo('users', 0);\n const userId = LoginManager.currentUser()?.AVUser.get('objectId');\n if (userId) {\n const selectUserQuery = new AV.Query('Message').equalTo('users', userId);\n userQuery = AV.Query.or(userQuery, selectUserQuery);\n }\n query = AV.Query.and(query, userQuery);\n\n query\n .descending('updatedAt')\n .find()\n .then(async (items: Object[]) => {\n console.log('Message 抓取完毕');\n isNetwordDataReady = true;\n OnlineItems = items;\n _handleResponse(customFilter);\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getUnreadMessages: (): Message[] => {\n return MyMessages.filter((item) => !item.isRead);\n },\n\n getAllMessages: (): Message[] => {\n return MyMessages;\n },\n\n removeMessage: async (message: Message) => {\n if (!message.objectId) {\n return;\n }\n\n // 从内存中移除\n const index = MyMessages.findIndex(\n (item) => item.objectId === message.objectId\n );\n if (index !== -1) {\n MyMessages.splice(index, 1);\n }\n\n // 从已读状态中移除\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n const readIndex = readMsgs.indexOf(message.objectId);\n if (readIndex !== -1) {\n readMsgs.splice(readIndex, 1);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n }\n\n // 如果消息有 key,也需要清理频率管理器的状态\n if (message.key) {\n const freConfig: FreConfigType = {\n key: message.key,\n limit: message.limit,\n gap: message.gap,\n };\n FrequenceManager.reset(freConfig);\n }\n\n MessageModel.emitChange();\n },\n\n markMessageRead: async (message: Message) => {\n if (message.isRead || !message.objectId) {\n return;\n }\n message.isRead = true;\n\n if (message.key) {\n const freConfig: FreConfigType = {\n key: message.key,\n limit: message.limit,\n gap: message.gap,\n };\n // 能被展示出来的 message 一定是符合 FrequenceManager.canRun 的\n FrequenceManager.markFinish(freConfig);\n }\n\n const readMsgs = PrefData.getValue(BuildInPrefs.Messages);\n readMsgs.push(message.objectId);\n await PrefData.setValue(BuildInPrefs.Messages, readMsgs);\n MessageModel.emitChange();\n },\n\n emitChange: () => {\n eventEmitter.emit('change', MyMessages.slice());\n },\n\n addListenerOnce: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return;\n }\n eventEmitter.once('change', callback);\n },\n\n addListener: (callback: Function) => {\n if (isDataReady) {\n callback && callback();\n return callback;\n }\n eventEmitter.on('change', callback);\n return callback;\n },\n\n removeListener: (callback: Function) => {\n eventEmitter.removeListener('change', callback);\n },\n};\n"],"mappings":"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"}
@@ -54,17 +54,14 @@ const ReportUtil = exports.ReportUtil = {
54
54
  if (!enable()) {
55
55
  return;
56
56
  }
57
- _Notification.Notification.addListener('onLogin', _ref => {
57
+ _Notification.Notification.addListener('onLoginSuccess', _ref => {
58
58
  let {
59
- error,
60
59
  user
61
60
  } = _ref;
62
- if (!error && user) {
63
- if (!__DEV__) {
64
- _reactNative.NativeModules.NCYReport.signIn(user.AVUser.get('objectId'));
65
- }
66
- ReportUtil.setCommonInfo('user', user.AVUser.get('objectId'));
61
+ if (!__DEV__) {
62
+ _reactNative.NativeModules.NCYReport.signIn(user.AVUser.get('objectId'));
67
63
  }
64
+ ReportUtil.setCommonInfo('user', user.AVUser.get('objectId'));
68
65
  });
69
66
  _Notification.Notification.addListener('onLogout', () => {
70
67
  if (!__DEV__) {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_Notification","CommonInfo","appVer","getReadableVersion","platform","Platform","OS","sysVer","Version","model","getModel","brand","getBrand","device","getDeviceId","enable","NativeModules","NCYReport","isValidReport","eventId","params","length","console","error","Array","isArray","key","convertToValidParams","ret","value","JSON","stringify","ReportUtil","exports","init","Notification","addListener","_ref","user","__DEV__","signIn","AVUser","get","setCommonInfo","signOut","report","validParams","realParams","getCommonInfo","log","viewAppear","page","enterPage","viewDisappear","leavePage"],"sources":["ReportUtil.ts"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\nimport {\n getBrand,\n getDeviceId,\n getModel,\n getReadableVersion,\n} from 'react-native-device-info';\nimport { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\n\nexport interface ReportItemType {\n [key: string]: number | string;\n}\n\nconst CommonInfo: ReportItemType = {\n appVer: getReadableVersion(),\n platform: Platform.OS,\n sysVer: Platform.Version,\n model: getModel(),\n brand: getBrand(),\n device: getDeviceId(),\n};\n\nconst enable = () => {\n if (!NativeModules.NCYReport) {\n return false;\n }\n return true;\n};\n\nconst isValidReport = (eventId: string, params?: ReportItemType) => {\n if (typeof eventId !== 'string' || eventId?.length === 0) {\n console.error('Report 数据非法 1');\n return false;\n }\n\n if (params == null) {\n return true;\n }\n\n if (typeof params !== 'object' || Array.isArray(params)) {\n console.error('Report 数据非法 2');\n return false;\n }\n\n for (const key in params) {\n if (typeof key !== 'string') {\n console.error('Report 数据非法 3');\n return false;\n }\n }\n\n return true;\n};\n\nconst convertToValidParams = (params?: ReportItemType) => {\n const ret: ReportItemType = {};\n for (const key in params) {\n const value = JSON.stringify(params[key]);\n ret[key] = value;\n }\n return ret;\n};\n\nexport const ReportUtil = {\n init: () => {\n if (!enable()) {\n return;\n }\n\n Notification.addListener(\n 'onLogin',\n ({ error, user }: LoginResultDataType) => {\n if (!error && user) {\n if (!__DEV__) {\n NativeModules.NCYReport.signIn(user.AVUser.get('objectId'));\n }\n ReportUtil.setCommonInfo('user', user.AVUser.get('objectId'));\n }\n }\n );\n\n Notification.addListener('onLogout', () => {\n if (!__DEV__) {\n NativeModules.NCYReport.signOut();\n }\n ReportUtil.setCommonInfo('user', '');\n });\n },\n\n report: (eventId: string, params?: ReportItemType) => {\n if (!enable()) {\n return;\n }\n\n if (!isValidReport(eventId, params)) {\n return;\n }\n\n const validParams = convertToValidParams(params);\n const realParams = { ...validParams, ...ReportUtil.getCommonInfo() };\n console.log('[Report]', eventId, realParams);\n if (!__DEV__) {\n NativeModules.NCYReport.report(eventId, realParams);\n }\n },\n\n setCommonInfo: (key: string, value: string) => {\n CommonInfo[key] = value;\n },\n\n getCommonInfo: () => {\n return CommonInfo;\n },\n\n viewAppear: (page: string) => {\n if (!__DEV__) {\n console.log(page, 'viewWillAppear');\n }\n\n if (!enable()) {\n return;\n }\n\n if (!__DEV__) {\n NativeModules.NCYReport.enterPage(page);\n }\n },\n\n viewDisappear: (page: string) => {\n if (!__DEV__) {\n console.log(page, 'viewWillDisappear');\n }\n\n if (!enable()) {\n return;\n }\n\n if (!__DEV__) {\n NativeModules.NCYReport.leavePage(page);\n }\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_Notification","CommonInfo","appVer","getReadableVersion","platform","Platform","OS","sysVer","Version","model","getModel","brand","getBrand","device","getDeviceId","enable","NativeModules","NCYReport","isValidReport","eventId","params","length","console","error","Array","isArray","key","convertToValidParams","ret","value","JSON","stringify","ReportUtil","exports","init","Notification","addListener","_ref","user","__DEV__","signIn","AVUser","get","setCommonInfo","signOut","report","validParams","realParams","getCommonInfo","log","viewAppear","page","enterPage","viewDisappear","leavePage"],"sources":["ReportUtil.ts"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\nimport {\n getBrand,\n getDeviceId,\n getModel,\n getReadableVersion,\n} from 'react-native-device-info';\nimport { LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\n\nexport interface ReportItemType {\n [key: string]: number | string;\n}\n\nconst CommonInfo: ReportItemType = {\n appVer: getReadableVersion(),\n platform: Platform.OS,\n sysVer: Platform.Version,\n model: getModel(),\n brand: getBrand(),\n device: getDeviceId(),\n};\n\nconst enable = () => {\n if (!NativeModules.NCYReport) {\n return false;\n }\n return true;\n};\n\nconst isValidReport = (eventId: string, params?: ReportItemType) => {\n if (typeof eventId !== 'string' || eventId?.length === 0) {\n console.error('Report 数据非法 1');\n return false;\n }\n\n if (params == null) {\n return true;\n }\n\n if (typeof params !== 'object' || Array.isArray(params)) {\n console.error('Report 数据非法 2');\n return false;\n }\n\n for (const key in params) {\n if (typeof key !== 'string') {\n console.error('Report 数据非法 3');\n return false;\n }\n }\n\n return true;\n};\n\nconst convertToValidParams = (params?: ReportItemType) => {\n const ret: ReportItemType = {};\n for (const key in params) {\n const value = JSON.stringify(params[key]);\n ret[key] = value;\n }\n return ret;\n};\n\nexport const ReportUtil = {\n init: () => {\n if (!enable()) {\n return;\n }\n\n Notification.addListener(\n 'onLoginSuccess',\n ({ user }: LoginSuccessResultType) => {\n if (!__DEV__) {\n NativeModules.NCYReport.signIn(user.AVUser.get('objectId'));\n }\n ReportUtil.setCommonInfo('user', user.AVUser.get('objectId'));\n }\n );\n\n Notification.addListener('onLogout', () => {\n if (!__DEV__) {\n NativeModules.NCYReport.signOut();\n }\n ReportUtil.setCommonInfo('user', '');\n });\n },\n\n report: (eventId: string, params?: ReportItemType) => {\n if (!enable()) {\n return;\n }\n\n if (!isValidReport(eventId, params)) {\n return;\n }\n\n const validParams = convertToValidParams(params);\n const realParams = { ...validParams, ...ReportUtil.getCommonInfo() };\n console.log('[Report]', eventId, realParams);\n if (!__DEV__) {\n NativeModules.NCYReport.report(eventId, realParams);\n }\n },\n\n setCommonInfo: (key: string, value: string) => {\n CommonInfo[key] = value;\n },\n\n getCommonInfo: () => {\n return CommonInfo;\n },\n\n viewAppear: (page: string) => {\n if (!__DEV__) {\n console.log(page, 'viewWillAppear');\n }\n\n if (!enable()) {\n return;\n }\n\n if (!__DEV__) {\n NativeModules.NCYReport.enterPage(page);\n }\n },\n\n viewDisappear: (page: string) => {\n if (!__DEV__) {\n console.log(page, 'viewWillDisappear');\n }\n\n if (!enable()) {\n return;\n }\n\n if (!__DEV__) {\n NativeModules.NCYReport.leavePage(page);\n }\n },\n};\n"],"mappings":"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"}
@@ -22,19 +22,16 @@ const SentryManager = exports.SentryManager = {
22
22
  dsn: _Tool.ToolkitConfig.SentryDSN,
23
23
  tracesSampleRate: 1.0
24
24
  });
25
- _Notification.Notification.addListener('onLogin', _ref => {
25
+ _Notification.Notification.addListener('onLoginSuccess', _ref => {
26
26
  let {
27
- error,
28
27
  user
29
28
  } = _ref;
30
- if (!error && user) {
31
- const sentryUser = {
32
- id: user.AVUser.get('objectId'),
33
- email: user.email,
34
- username: user.nickname
35
- };
36
- Sentry.setUser(sentryUser);
37
- }
29
+ const sentryUser = {
30
+ id: user.AVUser.get('objectId'),
31
+ email: user.email,
32
+ username: user.nickname
33
+ };
34
+ Sentry.setUser(sentryUser);
38
35
  });
39
36
  _Notification.Notification.addListener('onLogout', () => {
40
37
  Sentry.setUser(null);
@@ -1 +1 @@
1
- {"version":3,"names":["Sentry","_interopRequireWildcard","require","_Notification","_Tool","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","isReady","SentryManager","exports","init","__DEV__","ToolkitConfig","SentryDSN","console","log","dsn","tracesSampleRate","Notification","addListener","_ref","error","user","sentryUser","id","AVUser","email","username","nickname","setUser","setTag","value","length"],"sources":["SentryManager.ts"],"sourcesContent":["import * as Sentry from '@sentry/react-native';\nimport { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { ToolkitConfig } from './Tool';\n\nlet isReady = false;\nexport const SentryManager = {\n init: () => {\n isReady = !__DEV__ && !!ToolkitConfig.SentryDSN;\n if (!isReady) {\n console.log('不使用 Sentry');\n } else {\n // DEV 下不打开 Sentry\n console.log('使用 Sentry');\n Sentry.init({\n dsn: ToolkitConfig.SentryDSN,\n tracesSampleRate: 1.0,\n });\n\n Notification.addListener(\n 'onLogin',\n ({ error, user }: LoginResultDataType) => {\n if (!error && user) {\n const sentryUser: Sentry.User = {\n id: user.AVUser.get('objectId'),\n email: user.email,\n username: user.nickname,\n };\n Sentry.setUser(sentryUser);\n }\n }\n );\n\n Notification.addListener('onLogout', () => {\n Sentry.setUser(null);\n });\n\n // Sentry.nativeCrash();\n // Sentry.captureException(new Error('测试77!'));\n // throw new Error('My first Sentry error!');\n }\n },\n\n setTag: (key: string, value: any) => {\n if (isReady) {\n if (key.length) {\n Sentry.setTag(key, value);\n }\n }\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Sentry","_interopRequireWildcard","require","_Notification","_Tool","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","isReady","SentryManager","exports","init","__DEV__","ToolkitConfig","SentryDSN","console","log","dsn","tracesSampleRate","Notification","addListener","_ref","user","sentryUser","id","AVUser","email","username","nickname","setUser","setTag","value","length"],"sources":["SentryManager.ts"],"sourcesContent":["import * as Sentry from '@sentry/react-native';\nimport { LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { ToolkitConfig } from './Tool';\n\nlet isReady = false;\nexport const SentryManager = {\n init: () => {\n isReady = !__DEV__ && !!ToolkitConfig.SentryDSN;\n if (!isReady) {\n console.log('不使用 Sentry');\n } else {\n // DEV 下不打开 Sentry\n console.log('使用 Sentry');\n Sentry.init({\n dsn: ToolkitConfig.SentryDSN,\n tracesSampleRate: 1.0,\n });\n\n Notification.addListener(\n 'onLoginSuccess',\n ({ user }: LoginSuccessResultType) => {\n const sentryUser: Sentry.User = {\n id: user.AVUser.get('objectId'),\n email: user.email,\n username: user.nickname,\n };\n Sentry.setUser(sentryUser);\n }\n );\n\n Notification.addListener('onLogout', () => {\n Sentry.setUser(null);\n });\n\n // Sentry.nativeCrash();\n // Sentry.captureException(new Error('测试77!'));\n // throw new Error('My first Sentry error!');\n }\n },\n\n setTag: (key: string, value: any) => {\n if (isReady) {\n if (key.length) {\n Sentry.setTag(key, value);\n }\n }\n },\n};\n"],"mappings":"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"}
@@ -47,15 +47,12 @@ const VipManager = exports.VipManager = {
47
47
  console.log('Vip 模块用户登录 from 直接');
48
48
  onLogin(loginUser);
49
49
  }
50
- _Notification.Notification.addListener('onLogin', async _ref => {
50
+ _Notification.Notification.addListener('onLoginSuccess', async _ref => {
51
51
  let {
52
- error,
53
52
  user
54
53
  } = _ref;
55
54
  console.log('Vip 模块用户登录 from 监听');
56
- if (!error && user) {
57
- onLogin(user);
58
- }
55
+ onLogin(user);
59
56
  });
60
57
  _Notification.Notification.addListener('onLogout', () => {
61
58
  _reactNativePurchases.default.logOut();
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativePurchases","_interopRequireDefault","_DevConfig","_LoginManager","_Notification","_PrefData","_Tool","_VipAndroidManager","obj","__esModule","default","_customerInfo","isReady","onLogin","user","Purchases","logIn","AVUser","get","setAttributes","nickname","VipManager","refreshVip","e","console","error","exports","init","ToolkitConfig","RC_API_KEY","log","RC_PROXY_URL","setProxyURL","configure","apiKey","loginUser","LoginManager","currentUser","Notification","addListener","_ref","logOut","purchase","purchasePackage","errorCode","isLogin","Platform","OS","VipAndroidManager","customerInfo","entitlements","active","RC_ENTITLEMENT_ID","errorMsg","userCancelled","message","recover","_customerInfo$entitle","restorePurchases","vip","getPackages","offeringId","isForeverVip","__DEV__","offerings","getOfferings","targetOffering","all","current","availablePackages","length","packages","isVip","isTrailVip","filter","item","productItem","product","productCategory","_customerInfo2","_customerInfo3","_isVip2","_isVip","isActive","isSandbox","DevConfig","hasValue","BuildInPrefs","DevVip","getValue","_VipManager$vipEndTim","vipEndTime","vipCountDay","_customerInfo4","time","expirationDate","date","Date","Tool","formatDate","vipBuyTime","_customerInfo5","originalPurchaseDate","_customerInfo6","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","includes","isFoundingVip","buyTime","foundingEndDate","buyDate","isVipExpired","_LoginManager$current2","_customerInfo7","getCustomerInfo","updateVipInfo","postNotification","_customerInfo8","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo9","expireDate","_LoginManager$current4","oldVipEndTime","batchUpdateUser"],"sources":["VipManager.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport Purchases, {\n CustomerInfo,\n PurchasesPackage,\n} from 'react-native-purchases';\nimport { DevConfig } from './DevConfig';\nimport { LoginManager, LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { Tool, ToolkitConfig } from './Tool';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { UserType } from './constant';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\n\nconst onLogin = async (user: UserType) => {\n try {\n await Purchases.logIn(user.AVUser.get('objectId'));\n await Purchases.setAttributes({ nickname: user.nickname });\n await VipManager.refreshVip();\n } catch (e) {\n console.error(e);\n }\n};\n\nexport const VipManager = {\n init: async () => {\n isReady = !!ToolkitConfig.RC_API_KEY;\n\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n\n console.log('Vip 模块初始化');\n\n if (ToolkitConfig.RC_PROXY_URL) {\n console.log('设置代理', ToolkitConfig.RC_PROXY_URL);\n await Purchases.setProxyURL(ToolkitConfig.RC_PROXY_URL);\n }\n Purchases.configure({ apiKey: ToolkitConfig.RC_API_KEY });\n\n VipManager.refreshVip();\n\n const loginUser = LoginManager.currentUser();\n if (loginUser) {\n console.log('Vip 模块用户登录 from 直接');\n onLogin(loginUser);\n }\n\n Notification.addListener(\n 'onLogin',\n async ({ error, user }: LoginResultDataType) => {\n console.log('Vip 模块用户登录 from 监听');\n if (!error && user) {\n onLogin(user);\n }\n }\n );\n\n Notification.addListener('onLogout', () => {\n Purchases.logOut();\n _customerInfo = null;\n });\n },\n\n purchase: async (purchasePackage: PurchasesPackage) => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n if (!purchasePackage) {\n return { errorCode: -4 };\n }\n\n console.log('购买商品', purchasePackage);\n\n if (Platform.OS === 'android') {\n return await VipAndroidManager.purchase(purchasePackage);\n }\n\n try {\n const { customerInfo } = await Purchases.purchasePackage(purchasePackage);\n\n await VipManager.refreshVip(customerInfo);\n if (\n typeof customerInfo.entitlements.active[\n ToolkitConfig.RC_ENTITLEMENT_ID\n ] !== 'undefined'\n ) {\n console.log('购买成功');\n return { errorCode: 0 };\n } else {\n console.log('购买失败(-5)');\n return { errorCode: -5, errorMsg: '' };\n }\n } catch (e: any) {\n if (!e.userCancelled) {\n console.log('购买失败(-5)', e.message);\n return { errorCode: -5, errorMsg: e.message };\n } else {\n console.log('购买取消(-2)');\n return { errorCode: -2 };\n }\n }\n },\n\n recover: async () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n try {\n if (Platform.OS === 'android') {\n return await VipAndroidManager.recover();\n }\n\n console.log('iOS 恢复购买');\n const customerInfo = await Purchases.restorePurchases();\n await VipManager.refreshVip(customerInfo);\n if (customerInfo.entitlements.active?.vip) {\n console.log('恢复成功');\n return { errorCode: 0 };\n } else {\n console.log('恢复失败(-2)');\n return { errorCode: -2 };\n }\n } catch (e: any) {\n console.log('恢复失败(-3)', e.message);\n return { errorCode: -3, errorMsg: e.message };\n }\n },\n\n getPackages: async (offeringId?: string): Promise<PurchasesPackage[]> => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return [];\n }\n\n if (VipManager.isForeverVip()) {\n return [];\n }\n\n if (Platform.OS === 'android' || __DEV__) {\n return VipAndroidManager.getPackages(offeringId);\n }\n\n try {\n const offerings = await Purchases.getOfferings();\n let targetOffering;\n if (offeringId) {\n targetOffering = offerings.all[offeringId];\n }\n\n if (!targetOffering) {\n targetOffering = offerings.current;\n }\n\n console.log('获取商品');\n if (\n targetOffering !== null &&\n targetOffering.availablePackages.length !== 0\n ) {\n let packages = targetOffering.availablePackages;\n // 如果是订阅的,非试用的,过滤订阅产品,只展示永久 VIP\n if (VipManager.isVip() && !VipManager.isTrailVip()) {\n packages = packages.filter((item) => {\n const productItem: any = item.product;\n return productItem.productCategory === 'NON_SUBSCRIPTION';\n });\n }\n return packages;\n } else {\n return [];\n }\n } catch (e) {\n console.error('Get Product Fail', e);\n return [];\n }\n },\n\n isVip: () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return false;\n }\n\n let _isVip = _customerInfo?.entitlements?.active?.vip?.isActive;\n if (\n _isVip &&\n !__DEV__ &&\n _customerInfo?.entitlements?.active?.vip.isSandbox\n ) {\n _isVip = false;\n }\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevVip)) {\n _isVip = DevConfig.getValue(BuildInPrefs.DevVip) ? true : false;\n }\n }\n return _isVip ?? false;\n },\n\n isForeverVip: () => {\n // 苹果的永久会员是非订阅制的,因此 RevenueCat 的 vipEndTime 会空\n return (\n VipManager.isVip() &&\n (VipManager.vipEndTime()?.length === 0 ||\n VipManager.vipCountDay() >= 36500)\n );\n },\n\n vipEndTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipBuyTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.originalPurchaseDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipCountDay: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n const diff = date.getTime() - new Date().getTime();\n return Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n }\n return 0;\n },\n\n isTrailVip: () => {\n if (VipManager.isForeverVip()) {\n return false;\n }\n if (!VipManager.isVip()) {\n return false;\n }\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType?.includes('rc_promo_')) {\n return true;\n }\n return false;\n },\n\n isFoundingVip: () => {\n if (!VipManager.isForeverVip()) {\n return false;\n }\n const buyTime = VipManager.vipBuyTime();\n if (!buyTime) {\n return false;\n }\n const foundingEndDate = new Date('2025-03-31');\n const buyDate = new Date(buyTime);\n return buyDate <= foundingEndDate;\n },\n\n isVipExpired: () => {\n // 不是会员,但是 vipType 存在,说明曾经领过会员\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n return !VipManager.isVip() && vipType;\n },\n\n refreshVip: async (customerInfo?: CustomerInfo) => {\n try {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n console.log('刷新 VIP');\n if (customerInfo) {\n _customerInfo = customerInfo;\n } else {\n _customerInfo = await Purchases.getCustomerInfo();\n }\n console.log('VIP 信息刷新完毕', _customerInfo?.entitlements?.active);\n console.log('是否是 VIP', VipManager.isVip());\n console.log('VipInfo 过期时间', VipManager.vipEndTime());\n\n await updateVipInfo();\n // 必须确保通知正常发出,因为其他模块依赖这个时机\n Notification.postNotification('onVipRefresh', {});\n } catch (e) {\n console.error(e);\n Notification.postNotification('onVipRefresh', { e });\n }\n },\n};\n\nconst updateVipInfo = async () => {\n if (!VipManager.isVip() || !LoginManager.isLogin()) {\n return;\n }\n\n const keys = [];\n const values = [];\n\n const vipType = _customerInfo?.entitlements?.active?.vip?.productIdentifier;\n const oldVipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType && vipType !== oldVipType) {\n keys.push('vipType');\n values.push(vipType);\n }\n\n let vipEndTime;\n if (VipManager.isForeverVip()) {\n vipEndTime = new Date(10413763200000); // 约定 2300-01-01 00:00:00 为永久会员\n } else {\n const expireDate = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (expireDate) {\n vipEndTime = new Date(expireDate);\n }\n }\n if (vipEndTime) {\n const oldVipEndTime = LoginManager.currentUser()?.AVUser.get('vipEndTime');\n if (vipEndTime.getTime() !== oldVipEndTime?.getTime()) {\n keys.push('vipEndTime');\n values.push(vipEndTime);\n }\n }\n\n if (keys.length > 0) {\n await LoginManager.batchUpdateUser(keys, values);\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAIA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,kBAAA,GAAAR,OAAA;AAAwD,SAAAE,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGxD,IAAIG,aAAkC;AACtC,IAAIC,OAAO,GAAG,KAAK;AAEnB,MAAMC,OAAO,GAAG,MAAOC,IAAc,IAAK;EACxC,IAAI;IACF,MAAMC,6BAAS,CAACC,KAAK,CAACF,IAAI,CAACG,MAAM,CAACC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,MAAMH,6BAAS,CAACI,aAAa,CAAC;MAAEC,QAAQ,EAAEN,IAAI,CAACM;IAAS,CAAC,CAAC;IAC1D,MAAMC,UAAU,CAACC,UAAU,CAAC,CAAC;EAC/B,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVC,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC;EAClB;AACF,CAAC;AAEM,MAAMF,UAAU,GAAAK,OAAA,CAAAL,UAAA,GAAG;EACxBM,IAAI,EAAE,MAAAA,CAAA,KAAY;IAChBf,OAAO,GAAG,CAAC,CAACgB,mBAAa,CAACC,UAAU;IAEpC,IAAI,CAACjB,OAAO,EAAE;MACZY,OAAO,CAACM,GAAG,CAAC,eAAe,CAAC;MAC5B;IACF;IAEAN,OAAO,CAACM,GAAG,CAAC,WAAW,CAAC;IAExB,IAAIF,mBAAa,CAACG,YAAY,EAAE;MAC9BP,OAAO,CAACM,GAAG,CAAC,MAAM,EAAEF,mBAAa,CAACG,YAAY,CAAC;MAC/C,MAAMhB,6BAAS,CAACiB,WAAW,CAACJ,mBAAa,CAACG,YAAY,CAAC;IACzD;IACAhB,6BAAS,CAACkB,SAAS,CAAC;MAAEC,MAAM,EAAEN,mBAAa,CAACC;IAAW,CAAC,CAAC;IAEzDR,UAAU,CAACC,UAAU,CAAC,CAAC;IAEvB,MAAMa,SAAS,GAAGC,0BAAY,CAACC,WAAW,CAAC,CAAC;IAC5C,IAAIF,SAAS,EAAE;MACbX,OAAO,CAACM,GAAG,CAAC,oBAAoB,CAAC;MACjCjB,OAAO,CAACsB,SAAS,CAAC;IACpB;IAEAG,0BAAY,CAACC,WAAW,CACtB,SAAS,EACT,MAAAC,IAAA,IAAgD;MAAA,IAAzC;QAAEf,KAAK;QAAEX;MAA0B,CAAC,GAAA0B,IAAA;MACzChB,OAAO,CAACM,GAAG,CAAC,oBAAoB,CAAC;MACjC,IAAI,CAACL,KAAK,IAAIX,IAAI,EAAE;QAClBD,OAAO,CAACC,IAAI,CAAC;MACf;IACF,CACF,CAAC;IAEDwB,0BAAY,CAACC,WAAW,CAAC,UAAU,EAAE,MAAM;MACzCxB,6BAAS,CAAC0B,MAAM,CAAC,CAAC;MAClB9B,aAAa,GAAG,IAAI;IACtB,CAAC,CAAC;EACJ,CAAC;EAED+B,QAAQ,EAAE,MAAOC,eAAiC,IAAK;IACrD,IAAI,CAAC/B,OAAO,EAAE;MACZY,OAAO,CAACM,GAAG,CAAC,eAAe,CAAC;MAC5B,OAAO;QAAEc,SAAS,EAAE,CAAC;MAAG,CAAC;IAC3B;IAEA,IAAI,CAACR,0BAAY,CAACS,OAAO,CAAC,CAAC,EAAE;MAC3B,OAAO;QAAED,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B;IAEA,IAAI,CAACD,eAAe,EAAE;MACpB,OAAO;QAAEC,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B;IAEApB,OAAO,CAACM,GAAG,CAAC,MAAM,EAAEa,eAAe,CAAC;IAEpC,IAAIG,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAO,MAAMC,oCAAiB,CAACN,QAAQ,CAACC,eAAe,CAAC;IAC1D;IAEA,IAAI;MACF,MAAM;QAAEM;MAAa,CAAC,GAAG,MAAMlC,6BAAS,CAAC4B,eAAe,CAACA,eAAe,CAAC;MAEzE,MAAMtB,UAAU,CAACC,UAAU,CAAC2B,YAAY,CAAC;MACzC,IACE,OAAOA,YAAY,CAACC,YAAY,CAACC,MAAM,CACrCvB,mBAAa,CAACwB,iBAAiB,CAChC,KAAK,WAAW,EACjB;QACA5B,OAAO,CAACM,GAAG,CAAC,MAAM,CAAC;QACnB,OAAO;UAAEc,SAAS,EAAE;QAAE,CAAC;MACzB,CAAC,MAAM;QACLpB,OAAO,CAACM,GAAG,CAAC,UAAU,CAAC;QACvB,OAAO;UAAEc,SAAS,EAAE,CAAC,CAAC;UAAES,QAAQ,EAAE;QAAG,CAAC;MACxC;IACF,CAAC,CAAC,OAAO9B,CAAM,EAAE;MACf,IAAI,CAACA,CAAC,CAAC+B,aAAa,EAAE;QACpB9B,OAAO,CAACM,GAAG,CAAC,UAAU,EAAEP,CAAC,CAACgC,OAAO,CAAC;QAClC,OAAO;UAAEX,SAAS,EAAE,CAAC,CAAC;UAAES,QAAQ,EAAE9B,CAAC,CAACgC;QAAQ,CAAC;MAC/C,CAAC,MAAM;QACL/B,OAAO,CAACM,GAAG,CAAC,UAAU,CAAC;QACvB,OAAO;UAAEc,SAAS,EAAE,CAAC;QAAE,CAAC;MAC1B;IACF;EACF,CAAC;EAEDY,OAAO,EAAE,MAAAA,CAAA,KAAY;IACnB,IAAI,CAAC5C,OAAO,EAAE;MACZY,OAAO,CAACM,GAAG,CAAC,eAAe,CAAC;MAC5B,OAAO;QAAEc,SAAS,EAAE,CAAC;MAAG,CAAC;IAC3B;IAEA,IAAI,CAACR,0BAAY,CAACS,OAAO,CAAC,CAAC,EAAE;MAC3B,OAAO;QAAED,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B;IAEA,IAAI;MAAA,IAAAa,qBAAA;MACF,IAAIX,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;QAC7B,OAAO,MAAMC,oCAAiB,CAACQ,OAAO,CAAC,CAAC;MAC1C;MAEAhC,OAAO,CAACM,GAAG,CAAC,UAAU,CAAC;MACvB,MAAMmB,YAAY,GAAG,MAAMlC,6BAAS,CAAC2C,gBAAgB,CAAC,CAAC;MACvD,MAAMrC,UAAU,CAACC,UAAU,CAAC2B,YAAY,CAAC;MACzC,KAAAQ,qBAAA,GAAIR,YAAY,CAACC,YAAY,CAACC,MAAM,cAAAM,qBAAA,eAAhCA,qBAAA,CAAkCE,GAAG,EAAE;QACzCnC,OAAO,CAACM,GAAG,CAAC,MAAM,CAAC;QACnB,OAAO;UAAEc,SAAS,EAAE;QAAE,CAAC;MACzB,CAAC,MAAM;QACLpB,OAAO,CAACM,GAAG,CAAC,UAAU,CAAC;QACvB,OAAO;UAAEc,SAAS,EAAE,CAAC;QAAE,CAAC;MAC1B;IACF,CAAC,CAAC,OAAOrB,CAAM,EAAE;MACfC,OAAO,CAACM,GAAG,CAAC,UAAU,EAAEP,CAAC,CAACgC,OAAO,CAAC;MAClC,OAAO;QAAEX,SAAS,EAAE,CAAC,CAAC;QAAES,QAAQ,EAAE9B,CAAC,CAACgC;MAAQ,CAAC;IAC/C;EACF,CAAC;EAEDK,WAAW,EAAE,MAAOC,UAAmB,IAAkC;IACvE,IAAI,CAACjD,OAAO,EAAE;MACZY,OAAO,CAACM,GAAG,CAAC,eAAe,CAAC;MAC5B,OAAO,EAAE;IACX;IAEA,IAAIT,UAAU,CAACyC,YAAY,CAAC,CAAC,EAAE;MAC7B,OAAO,EAAE;IACX;IAEA,IAAIhB,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAIgB,OAAO,EAAE;MACxC,OAAOf,oCAAiB,CAACY,WAAW,CAACC,UAAU,CAAC;IAClD;IAEA,IAAI;MACF,MAAMG,SAAS,GAAG,MAAMjD,6BAAS,CAACkD,YAAY,CAAC,CAAC;MAChD,IAAIC,cAAc;MAClB,IAAIL,UAAU,EAAE;QACdK,cAAc,GAAGF,SAAS,CAACG,GAAG,CAACN,UAAU,CAAC;MAC5C;MAEA,IAAI,CAACK,cAAc,EAAE;QACnBA,cAAc,GAAGF,SAAS,CAACI,OAAO;MACpC;MAEA5C,OAAO,CAACM,GAAG,CAAC,MAAM,CAAC;MACnB,IACEoC,cAAc,KAAK,IAAI,IACvBA,cAAc,CAACG,iBAAiB,CAACC,MAAM,KAAK,CAAC,EAC7C;QACA,IAAIC,QAAQ,GAAGL,cAAc,CAACG,iBAAiB;QAC/C;QACA,IAAIhD,UAAU,CAACmD,KAAK,CAAC,CAAC,IAAI,CAACnD,UAAU,CAACoD,UAAU,CAAC,CAAC,EAAE;UAClDF,QAAQ,GAAGA,QAAQ,CAACG,MAAM,CAAEC,IAAI,IAAK;YACnC,MAAMC,WAAgB,GAAGD,IAAI,CAACE,OAAO;YACrC,OAAOD,WAAW,CAACE,eAAe,KAAK,kBAAkB;UAC3D,CAAC,CAAC;QACJ;QACA,OAAOP,QAAQ;MACjB,CAAC,MAAM;QACL,OAAO,EAAE;MACX;IACF,CAAC,CAAC,OAAOhD,CAAC,EAAE;MACVC,OAAO,CAACC,KAAK,CAAC,kBAAkB,EAAEF,CAAC,CAAC;MACpC,OAAO,EAAE;IACX;EACF,CAAC;EAEDiD,KAAK,EAAEA,CAAA,KAAM;IAAA,IAAAO,cAAA,EAAAC,cAAA,EAAAC,OAAA;IACX,IAAI,CAACrE,OAAO,EAAE;MACZY,OAAO,CAACM,GAAG,CAAC,eAAe,CAAC;MAC5B,OAAO,KAAK;IACd;IAEA,IAAIoD,MAAM,IAAAH,cAAA,GAAGpE,aAAa,cAAAoE,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAe7B,YAAY,cAAA6B,cAAA,gBAAAA,cAAA,GAA3BA,cAAA,CAA6B5B,MAAM,cAAA4B,cAAA,gBAAAA,cAAA,GAAnCA,cAAA,CAAqCpB,GAAG,cAAAoB,cAAA,uBAAxCA,cAAA,CAA0CI,QAAQ;IAC/D,IACED,MAAM,IACN,CAACnB,OAAO,KAAAiB,cAAA,GACRrE,aAAa,cAAAqE,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAe9B,YAAY,cAAA8B,cAAA,gBAAAA,cAAA,GAA3BA,cAAA,CAA6B7B,MAAM,cAAA6B,cAAA,eAAnCA,cAAA,CAAqCrB,GAAG,CAACyB,SAAS,EAClD;MACAF,MAAM,GAAG,KAAK;IAChB;IACA,IAAInB,OAAO,EAAE;MACX,IAAIsB,oBAAS,CAACC,QAAQ,CAACC,sBAAY,CAACC,MAAM,CAAC,EAAE;QAC3CN,MAAM,GAAGG,oBAAS,CAACI,QAAQ,CAACF,sBAAY,CAACC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK;MACjE;IACF;IACA,QAAAP,OAAA,GAAOC,MAAM,cAAAD,OAAA,cAAAA,OAAA,GAAI,KAAK;EACxB,CAAC;EAEDnB,YAAY,EAAEA,CAAA,KAAM;IAAA,IAAA4B,qBAAA;IAClB;IACA,OACErE,UAAU,CAACmD,KAAK,CAAC,CAAC,KACjB,EAAAkB,qBAAA,GAAArE,UAAU,CAACsE,UAAU,CAAC,CAAC,cAAAD,qBAAA,uBAAvBA,qBAAA,CAAyBpB,MAAM,MAAK,CAAC,IACpCjD,UAAU,CAACuE,WAAW,CAAC,CAAC,IAAI,KAAK,CAAC;EAExC,CAAC;EAEDD,UAAU,EAAEA,CAAA,KAAM;IAAA,IAAAE,cAAA;IAChB,MAAMC,IAAI,IAAAD,cAAA,GAAGlF,aAAa,cAAAkF,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAe3C,YAAY,cAAA2C,cAAA,gBAAAA,cAAA,GAA3BA,cAAA,CAA6B1C,MAAM,cAAA0C,cAAA,gBAAAA,cAAA,GAAnCA,cAAA,CAAqClC,GAAG,cAAAkC,cAAA,uBAAxCA,cAAA,CAA0CE,cAAc;IACrE,IAAI1E,UAAU,CAACmD,KAAK,CAAC,CAAC,IAAIsB,IAAI,EAAE;MAC9B,MAAME,IAAI,GAAG,IAAIC,IAAI,CAACH,IAAI,CAAC;MAC3B,OAAOI,UAAI,CAACC,UAAU,CAACH,IAAI,EAAE,YAAY,CAAC;IAC5C,CAAC,MAAM;MACL,OAAO,EAAE;IACX;EACF,CAAC;EAEDI,UAAU,EAAEA,CAAA,KAAM;IAAA,IAAAC,cAAA;IAChB,MAAMP,IAAI,IAAAO,cAAA,GAAG1F,aAAa,cAAA0F,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAenD,YAAY,cAAAmD,cAAA,gBAAAA,cAAA,GAA3BA,cAAA,CAA6BlD,MAAM,cAAAkD,cAAA,gBAAAA,cAAA,GAAnCA,cAAA,CAAqC1C,GAAG,cAAA0C,cAAA,uBAAxCA,cAAA,CAA0CC,oBAAoB;IAC3E,IAAIjF,UAAU,CAACmD,KAAK,CAAC,CAAC,IAAIsB,IAAI,EAAE;MAC9B,MAAME,IAAI,GAAG,IAAIC,IAAI,CAACH,IAAI,CAAC;MAC3B,OAAOI,UAAI,CAACC,UAAU,CAACH,IAAI,EAAE,YAAY,CAAC;IAC5C,CAAC,MAAM;MACL,OAAO,EAAE;IACX;EACF,CAAC;EAEDJ,WAAW,EAAEA,CAAA,KAAM;IAAA,IAAAW,cAAA;IACjB,MAAMT,IAAI,IAAAS,cAAA,GAAG5F,aAAa,cAAA4F,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAerD,YAAY,cAAAqD,cAAA,gBAAAA,cAAA,GAA3BA,cAAA,CAA6BpD,MAAM,cAAAoD,cAAA,gBAAAA,cAAA,GAAnCA,cAAA,CAAqC5C,GAAG,cAAA4C,cAAA,uBAAxCA,cAAA,CAA0CR,cAAc;IACrE,IAAI1E,UAAU,CAACmD,KAAK,CAAC,CAAC,IAAIsB,IAAI,EAAE;MAC9B,MAAME,IAAI,GAAG,IAAIC,IAAI,CAACH,IAAI,CAAC;MAC3B,MAAMU,IAAI,GAAGR,IAAI,CAACS,OAAO,CAAC,CAAC,GAAG,IAAIR,IAAI,CAAC,CAAC,CAACQ,OAAO,CAAC,CAAC;MAClD,OAAOC,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,IAAI,CAACJ,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D;IACA,OAAO,CAAC;EACV,CAAC;EAED/B,UAAU,EAAEA,CAAA,KAAM;IAAA,IAAAoC,qBAAA;IAChB,IAAIxF,UAAU,CAACyC,YAAY,CAAC,CAAC,EAAE;MAC7B,OAAO,KAAK;IACd;IACA,IAAI,CAACzC,UAAU,CAACmD,KAAK,CAAC,CAAC,EAAE;MACvB,OAAO,KAAK;IACd;IACA,MAAMsC,OAAO,IAAAD,qBAAA,GAAGzE,0BAAY,CAACC,WAAW,CAAC,CAAC,cAAAwE,qBAAA,uBAA1BA,qBAAA,CAA4B5F,MAAM,CAACC,GAAG,CAAC,SAAS,CAAC;IACjE,IAAI4F,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,QAAQ,CAAC,WAAW,CAAC,EAAE;MAClC,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd,CAAC;EAEDC,aAAa,EAAEA,CAAA,KAAM;IACnB,IAAI,CAAC3F,UAAU,CAACyC,YAAY,CAAC,CAAC,EAAE;MAC9B,OAAO,KAAK;IACd;IACA,MAAMmD,OAAO,GAAG5F,UAAU,CAAC+E,UAAU,CAAC,CAAC;IACvC,IAAI,CAACa,OAAO,EAAE;MACZ,OAAO,KAAK;IACd;IACA,MAAMC,eAAe,GAAG,IAAIjB,IAAI,CAAC,YAAY,CAAC;IAC9C,MAAMkB,OAAO,GAAG,IAAIlB,IAAI,CAACgB,OAAO,CAAC;IACjC,OAAOE,OAAO,IAAID,eAAe;EACnC,CAAC;EAEDE,YAAY,EAAEA,CAAA,KAAM;IAAA,IAAAC,sBAAA;IAClB;IACA,MAAMP,OAAO,IAAAO,sBAAA,GAAGjF,0BAAY,CAACC,WAAW,CAAC,CAAC,cAAAgF,sBAAA,uBAA1BA,sBAAA,CAA4BpG,MAAM,CAACC,GAAG,CAAC,SAAS,CAAC;IACjE,OAAO,CAACG,UAAU,CAACmD,KAAK,CAAC,CAAC,IAAIsC,OAAO;EACvC,CAAC;EAEDxF,UAAU,EAAE,MAAO2B,YAA2B,IAAK;IACjD,IAAI;MAAA,IAAAqE,cAAA;MACF,IAAI,CAAC1G,OAAO,EAAE;QACZY,OAAO,CAACM,GAAG,CAAC,eAAe,CAAC;QAC5B;MACF;MACAN,OAAO,CAACM,GAAG,CAAC,QAAQ,CAAC;MACrB,IAAImB,YAAY,EAAE;QAChBtC,aAAa,GAAGsC,YAAY;MAC9B,CAAC,MAAM;QACLtC,aAAa,GAAG,MAAMI,6BAAS,CAACwG,eAAe,CAAC,CAAC;MACnD;MACA/F,OAAO,CAACM,GAAG,CAAC,YAAY,GAAAwF,cAAA,GAAE3G,aAAa,cAAA2G,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAepE,YAAY,cAAAoE,cAAA,uBAA3BA,cAAA,CAA6BnE,MAAM,CAAC;MAC9D3B,OAAO,CAACM,GAAG,CAAC,SAAS,EAAET,UAAU,CAACmD,KAAK,CAAC,CAAC,CAAC;MAC1ChD,OAAO,CAACM,GAAG,CAAC,cAAc,EAAET,UAAU,CAACsE,UAAU,CAAC,CAAC,CAAC;MAEpD,MAAM6B,aAAa,CAAC,CAAC;MACrB;MACAlF,0BAAY,CAACmF,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,OAAOlG,CAAC,EAAE;MACVC,OAAO,CAACC,KAAK,CAACF,CAAC,CAAC;MAChBe,0BAAY,CAACmF,gBAAgB,CAAC,cAAc,EAAE;QAAElG;MAAE,CAAC,CAAC;IACtD;EACF;AACF,CAAC;AAED,MAAMiG,aAAa,GAAG,MAAAA,CAAA,KAAY;EAAA,IAAAE,cAAA,EAAAC,sBAAA;EAChC,IAAI,CAACtG,UAAU,CAACmD,KAAK,CAAC,CAAC,IAAI,CAACpC,0BAAY,CAACS,OAAO,CAAC,CAAC,EAAE;IAClD;EACF;EAEA,MAAM+E,IAAI,GAAG,EAAE;EACf,MAAMC,MAAM,GAAG,EAAE;EAEjB,MAAMf,OAAO,IAAAY,cAAA,GAAG/G,aAAa,cAAA+G,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAexE,YAAY,cAAAwE,cAAA,gBAAAA,cAAA,GAA3BA,cAAA,CAA6BvE,MAAM,cAAAuE,cAAA,gBAAAA,cAAA,GAAnCA,cAAA,CAAqC/D,GAAG,cAAA+D,cAAA,uBAAxCA,cAAA,CAA0CI,iBAAiB;EAC3E,MAAMC,UAAU,IAAAJ,sBAAA,GAAGvF,0BAAY,CAACC,WAAW,CAAC,CAAC,cAAAsF,sBAAA,uBAA1BA,sBAAA,CAA4B1G,MAAM,CAACC,GAAG,CAAC,SAAS,CAAC;EACpE,IAAI4F,OAAO,IAAIA,OAAO,KAAKiB,UAAU,EAAE;IACrCH,IAAI,CAACI,IAAI,CAAC,SAAS,CAAC;IACpBH,MAAM,CAACG,IAAI,CAAClB,OAAO,CAAC;EACtB;EAEA,IAAInB,UAAU;EACd,IAAItE,UAAU,CAACyC,YAAY,CAAC,CAAC,EAAE;IAC7B6B,UAAU,GAAG,IAAIM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;EACzC,CAAC,MAAM;IAAA,IAAAgC,cAAA;IACL,MAAMC,UAAU,IAAAD,cAAA,GAAGtH,aAAa,cAAAsH,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAe/E,YAAY,cAAA+E,cAAA,gBAAAA,cAAA,GAA3BA,cAAA,CAA6B9E,MAAM,cAAA8E,cAAA,gBAAAA,cAAA,GAAnCA,cAAA,CAAqCtE,GAAG,cAAAsE,cAAA,uBAAxCA,cAAA,CAA0ClC,cAAc;IAC3E,IAAImC,UAAU,EAAE;MACdvC,UAAU,GAAG,IAAIM,IAAI,CAACiC,UAAU,CAAC;IACnC;EACF;EACA,IAAIvC,UAAU,EAAE;IAAA,IAAAwC,sBAAA;IACd,MAAMC,aAAa,IAAAD,sBAAA,GAAG/F,0BAAY,CAACC,WAAW,CAAC,CAAC,cAAA8F,sBAAA,uBAA1BA,sBAAA,CAA4BlH,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;IAC1E,IAAIyE,UAAU,CAACc,OAAO,CAAC,CAAC,MAAK2B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE3B,OAAO,CAAC,CAAC,GAAE;MACrDmB,IAAI,CAACI,IAAI,CAAC,YAAY,CAAC;MACvBH,MAAM,CAACG,IAAI,CAACrC,UAAU,CAAC;IACzB;EACF;EAEA,IAAIiC,IAAI,CAACtD,MAAM,GAAG,CAAC,EAAE;IACnB,MAAMlC,0BAAY,CAACiG,eAAe,CAACT,IAAI,EAAEC,MAAM,CAAC;EAClD;AACF,CAAC"}
1
+ {"version":3,"names":["_reactNative","require","_reactNativePurchases","_interopRequireDefault","_DevConfig","_LoginManager","_Notification","_PrefData","_Tool","_VipAndroidManager","obj","__esModule","default","_customerInfo","isReady","onLogin","user","Purchases","logIn","AVUser","get","setAttributes","nickname","VipManager","refreshVip","e","console","error","exports","init","ToolkitConfig","RC_API_KEY","log","RC_PROXY_URL","setProxyURL","configure","apiKey","loginUser","LoginManager","currentUser","Notification","addListener","_ref","logOut","purchase","purchasePackage","errorCode","isLogin","Platform","OS","VipAndroidManager","customerInfo","entitlements","active","RC_ENTITLEMENT_ID","errorMsg","userCancelled","message","recover","_customerInfo$entitle","restorePurchases","vip","getPackages","offeringId","isForeverVip","__DEV__","offerings","getOfferings","targetOffering","all","current","availablePackages","length","packages","isVip","isTrailVip","filter","item","productItem","product","productCategory","_customerInfo2","_customerInfo3","_isVip2","_isVip","isActive","isSandbox","DevConfig","hasValue","BuildInPrefs","DevVip","getValue","_VipManager$vipEndTim","vipEndTime","vipCountDay","_customerInfo4","time","expirationDate","date","Date","Tool","formatDate","vipBuyTime","_customerInfo5","originalPurchaseDate","_customerInfo6","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","includes","isFoundingVip","buyTime","foundingEndDate","buyDate","isVipExpired","_LoginManager$current2","_customerInfo7","getCustomerInfo","updateVipInfo","postNotification","_customerInfo8","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo9","expireDate","_LoginManager$current4","oldVipEndTime","batchUpdateUser"],"sources":["VipManager.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport Purchases, {\n CustomerInfo,\n PurchasesPackage,\n} from 'react-native-purchases';\nimport { DevConfig } from './DevConfig';\nimport { LoginManager, LoginSuccessResultType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { Tool, ToolkitConfig } from './Tool';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { UserType } from './constant';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\n\nconst onLogin = async (user: UserType) => {\n try {\n await Purchases.logIn(user.AVUser.get('objectId'));\n await Purchases.setAttributes({ nickname: user.nickname });\n await VipManager.refreshVip();\n } catch (e) {\n console.error(e);\n }\n};\n\nexport const VipManager = {\n init: async () => {\n isReady = !!ToolkitConfig.RC_API_KEY;\n\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n\n console.log('Vip 模块初始化');\n\n if (ToolkitConfig.RC_PROXY_URL) {\n console.log('设置代理', ToolkitConfig.RC_PROXY_URL);\n await Purchases.setProxyURL(ToolkitConfig.RC_PROXY_URL);\n }\n Purchases.configure({ apiKey: ToolkitConfig.RC_API_KEY });\n\n VipManager.refreshVip();\n\n const loginUser = LoginManager.currentUser();\n if (loginUser) {\n console.log('Vip 模块用户登录 from 直接');\n onLogin(loginUser);\n }\n\n Notification.addListener(\n 'onLoginSuccess',\n async ({ user }: LoginSuccessResultType) => {\n console.log('Vip 模块用户登录 from 监听');\n onLogin(user);\n }\n );\n\n Notification.addListener('onLogout', () => {\n Purchases.logOut();\n _customerInfo = null;\n });\n },\n\n purchase: async (purchasePackage: PurchasesPackage) => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n if (!purchasePackage) {\n return { errorCode: -4 };\n }\n\n console.log('购买商品', purchasePackage);\n\n if (Platform.OS === 'android') {\n return await VipAndroidManager.purchase(purchasePackage);\n }\n\n try {\n const { customerInfo } = await Purchases.purchasePackage(purchasePackage);\n\n await VipManager.refreshVip(customerInfo);\n if (\n typeof customerInfo.entitlements.active[\n ToolkitConfig.RC_ENTITLEMENT_ID\n ] !== 'undefined'\n ) {\n console.log('购买成功');\n return { errorCode: 0 };\n } else {\n console.log('购买失败(-5)');\n return { errorCode: -5, errorMsg: '' };\n }\n } catch (e: any) {\n if (!e.userCancelled) {\n console.log('购买失败(-5)', e.message);\n return { errorCode: -5, errorMsg: e.message };\n } else {\n console.log('购买取消(-2)');\n return { errorCode: -2 };\n }\n }\n },\n\n recover: async () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return { errorCode: -99 };\n }\n\n if (!LoginManager.isLogin()) {\n return { errorCode: -1 };\n }\n\n try {\n if (Platform.OS === 'android') {\n return await VipAndroidManager.recover();\n }\n\n console.log('iOS 恢复购买');\n const customerInfo = await Purchases.restorePurchases();\n await VipManager.refreshVip(customerInfo);\n if (customerInfo.entitlements.active?.vip) {\n console.log('恢复成功');\n return { errorCode: 0 };\n } else {\n console.log('恢复失败(-2)');\n return { errorCode: -2 };\n }\n } catch (e: any) {\n console.log('恢复失败(-3)', e.message);\n return { errorCode: -3, errorMsg: e.message };\n }\n },\n\n getPackages: async (offeringId?: string): Promise<PurchasesPackage[]> => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return [];\n }\n\n if (VipManager.isForeverVip()) {\n return [];\n }\n\n if (Platform.OS === 'android' || __DEV__) {\n return VipAndroidManager.getPackages(offeringId);\n }\n\n try {\n const offerings = await Purchases.getOfferings();\n let targetOffering;\n if (offeringId) {\n targetOffering = offerings.all[offeringId];\n }\n\n if (!targetOffering) {\n targetOffering = offerings.current;\n }\n\n console.log('获取商品');\n if (\n targetOffering !== null &&\n targetOffering.availablePackages.length !== 0\n ) {\n let packages = targetOffering.availablePackages;\n // 如果是订阅的,非试用的,过滤订阅产品,只展示永久 VIP\n if (VipManager.isVip() && !VipManager.isTrailVip()) {\n packages = packages.filter((item) => {\n const productItem: any = item.product;\n return productItem.productCategory === 'NON_SUBSCRIPTION';\n });\n }\n return packages;\n } else {\n return [];\n }\n } catch (e) {\n console.error('Get Product Fail', e);\n return [];\n }\n },\n\n isVip: () => {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return false;\n }\n\n let _isVip = _customerInfo?.entitlements?.active?.vip?.isActive;\n if (\n _isVip &&\n !__DEV__ &&\n _customerInfo?.entitlements?.active?.vip.isSandbox\n ) {\n _isVip = false;\n }\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevVip)) {\n _isVip = DevConfig.getValue(BuildInPrefs.DevVip) ? true : false;\n }\n }\n return _isVip ?? false;\n },\n\n isForeverVip: () => {\n // 苹果的永久会员是非订阅制的,因此 RevenueCat 的 vipEndTime 会空\n return (\n VipManager.isVip() &&\n (VipManager.vipEndTime()?.length === 0 ||\n VipManager.vipCountDay() >= 36500)\n );\n },\n\n vipEndTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipBuyTime: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.originalPurchaseDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n return Tool.formatDate(date, 'yyyy-MM-dd');\n } else {\n return '';\n }\n },\n\n vipCountDay: () => {\n const time = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (VipManager.isVip() && time) {\n const date = new Date(time);\n const diff = date.getTime() - new Date().getTime();\n return Math.max(Math.ceil(diff / (24 * 60 * 60 * 1000)), 0);\n }\n return 0;\n },\n\n isTrailVip: () => {\n if (VipManager.isForeverVip()) {\n return false;\n }\n if (!VipManager.isVip()) {\n return false;\n }\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType?.includes('rc_promo_')) {\n return true;\n }\n return false;\n },\n\n isFoundingVip: () => {\n if (!VipManager.isForeverVip()) {\n return false;\n }\n const buyTime = VipManager.vipBuyTime();\n if (!buyTime) {\n return false;\n }\n const foundingEndDate = new Date('2025-03-31');\n const buyDate = new Date(buyTime);\n return buyDate <= foundingEndDate;\n },\n\n isVipExpired: () => {\n // 不是会员,但是 vipType 存在,说明曾经领过会员\n const vipType = LoginManager.currentUser()?.AVUser.get('vipType');\n return !VipManager.isVip() && vipType;\n },\n\n refreshVip: async (customerInfo?: CustomerInfo) => {\n try {\n if (!isReady) {\n console.log('VIP 模块无有效配置信息');\n return;\n }\n console.log('刷新 VIP');\n if (customerInfo) {\n _customerInfo = customerInfo;\n } else {\n _customerInfo = await Purchases.getCustomerInfo();\n }\n console.log('VIP 信息刷新完毕', _customerInfo?.entitlements?.active);\n console.log('是否是 VIP', VipManager.isVip());\n console.log('VipInfo 过期时间', VipManager.vipEndTime());\n\n await updateVipInfo();\n // 必须确保通知正常发出,因为其他模块依赖这个时机\n Notification.postNotification('onVipRefresh', {});\n } catch (e) {\n console.error(e);\n Notification.postNotification('onVipRefresh', { e });\n }\n },\n};\n\nconst updateVipInfo = async () => {\n if (!VipManager.isVip() || !LoginManager.isLogin()) {\n return;\n }\n\n const keys = [];\n const values = [];\n\n const vipType = _customerInfo?.entitlements?.active?.vip?.productIdentifier;\n const oldVipType = LoginManager.currentUser()?.AVUser.get('vipType');\n if (vipType && vipType !== oldVipType) {\n keys.push('vipType');\n values.push(vipType);\n }\n\n let vipEndTime;\n if (VipManager.isForeverVip()) {\n vipEndTime = new Date(10413763200000); // 约定 2300-01-01 00:00:00 为永久会员\n } else {\n const expireDate = _customerInfo?.entitlements?.active?.vip?.expirationDate;\n if (expireDate) {\n vipEndTime = new Date(expireDate);\n }\n }\n if (vipEndTime) {\n const oldVipEndTime = LoginManager.currentUser()?.AVUser.get('vipEndTime');\n if (vipEndTime.getTime() !== oldVipEndTime?.getTime()) {\n keys.push('vipEndTime');\n values.push(vipEndTime);\n }\n }\n\n if (keys.length > 0) {\n await LoginManager.batchUpdateUser(keys, values);\n }\n};\n"],"mappings":"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"}