@norcy/react-native-toolkit 0.1.107 → 0.1.108
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.
- package/lib/commonjs/ConfigDataModel.js +3 -30
- package/lib/commonjs/ConfigDataModel.js.map +1 -1
- package/lib/commonjs/VipManager.js +1 -1
- package/lib/commonjs/VipManager.js.map +1 -1
- package/lib/module/ConfigDataModel.js +3 -30
- package/lib/module/ConfigDataModel.js.map +1 -1
- package/lib/module/VipManager.js +1 -1
- package/lib/module/VipManager.js.map +1 -1
- package/package.json +1 -1
- package/src/ConfigDataModel.ts +1 -31
- package/src/VipManager.ts +1 -1
@@ -10,7 +10,6 @@ var _DevConfig = require("./DevConfig");
|
|
10
10
|
var _Notification = require("./Notification");
|
11
11
|
var _PrefData = require("./PrefData");
|
12
12
|
var _VipAndroidManager = require("./VipAndroidManager");
|
13
|
-
var _VipManager = require("./VipManager");
|
14
13
|
const EventEmitter = require('events').EventEmitter;
|
15
14
|
const eventEmitter = new EventEmitter();
|
16
15
|
const semverGt = require('semver/functions/gt');
|
@@ -42,18 +41,6 @@ const _filterByVersion = items => {
|
|
42
41
|
}
|
43
42
|
return ret;
|
44
43
|
};
|
45
|
-
const _filterByVip = items => {
|
46
|
-
let ret = [];
|
47
|
-
const isVip = _VipManager.VipManager.isVip();
|
48
|
-
const isForeverVip = _VipManager.VipManager.isForeverVip();
|
49
|
-
for (const item of items) {
|
50
|
-
const vipFilter = item.get('vipFilter');
|
51
|
-
if (vipFilter === 0 || vipFilter === 1 && !isVip || vipFilter === 2 && !isForeverVip) {
|
52
|
-
ret.push(item);
|
53
|
-
}
|
54
|
-
}
|
55
|
-
return ret;
|
56
|
-
};
|
57
44
|
const _updateKeyValues = items => {
|
58
45
|
for (const item of items) {
|
59
46
|
let value = item.get('value');
|
@@ -90,18 +77,15 @@ const handleVersionInfo = () => {
|
|
90
77
|
}
|
91
78
|
};
|
92
79
|
let isDataReady = false;
|
93
|
-
let isVipStateReady = false;
|
94
80
|
let isNetwordDataReady = false;
|
95
81
|
let OnlineItems = [];
|
96
82
|
const _handleResponse = () => {
|
97
|
-
if (!
|
83
|
+
if (!isNetwordDataReady) {
|
98
84
|
return;
|
99
85
|
}
|
100
86
|
|
101
87
|
// 根据版本过滤
|
102
88
|
let items = _filterByVersion(OnlineItems);
|
103
|
-
// 根据 VIP 状态过滤
|
104
|
-
items = _filterByVip(items);
|
105
89
|
_updateKeyValues(items);
|
106
90
|
// 处理 Version 信息
|
107
91
|
handleVersionInfo();
|
@@ -113,25 +97,14 @@ const _handleResponse = () => {
|
|
113
97
|
const ConfigDataModel = exports.ConfigDataModel = {
|
114
98
|
init: defaultValues => {
|
115
99
|
MyItems = defaultValues;
|
116
|
-
_Notification.Notification.addListener('
|
117
|
-
let {
|
118
|
-
e
|
119
|
-
} = _ref;
|
120
|
-
// 监听多次,直到成功,整个生命周期最多处理一次
|
121
|
-
if (!e && !isVipStateReady) {
|
122
|
-
isVipStateReady = true;
|
123
|
-
_handleResponse();
|
124
|
-
}
|
125
|
-
});
|
126
|
-
_Notification.Notification.addListener('onLogin', _ref2 => {
|
100
|
+
_Notification.Notification.addListener('onLogin', _ref => {
|
127
101
|
let {
|
128
102
|
isAuto,
|
129
103
|
user,
|
130
104
|
error
|
131
|
-
} =
|
105
|
+
} = _ref;
|
132
106
|
if (!isAuto && user && !error) {
|
133
107
|
isDataReady = false;
|
134
|
-
isVipStateReady = false;
|
135
108
|
isNetwordDataReady = false;
|
136
109
|
OnlineItems = [];
|
137
110
|
ConfigDataModel.fetch();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_DevConfig","_Notification","_PrefData","_VipAndroidManager","_VipManager","EventEmitter","eventEmitter","semverGt","semverGte","semverCoerce","MyItems","VersionInfo","currentVersion","getReadableVersion","version","latestVersion","isDanger","hasNewVersion","AV","_filterByVersion","items","ret","curVer","item","_item$get","_item$get2","minVer","get","trim","maxVer","push","_filterByVip","isVip","VipManager","isForeverVip","vipFilter","_updateKeyValues","value","handleVersionInfo","key","Platform","OS","configVersion","ConfigDataModel","onlineVersion","__DEV__","DevConfig","hasValue","BuildInPrefs","DevDanger","getValue","isDataReady","isVipStateReady","isNetwordDataReady","OnlineItems","_handleResponse","console","log","VipAndroidManager","setOfferings","emitChange","exports","init","defaultValues","Notification","addListener","_ref","e","_ref2","isAuto","user","error","fetch","query","Query","equalTo","find","then","catch","getVersionConfig","emit","addListenerOnce","callback","once","on"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { DevConfig } from './DevConfig';\nimport { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { VipManager } from './VipManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\nlet VersionInfo = {\n currentVersion: semverCoerce(getReadableVersion()).version,\n latestVersion: semverCoerce(getReadableVersion()).version,\n isDanger: false,\n hasNewVersion: false,\n};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.get('minVer')?.trim();\n const maxVer = item.get('maxVer')?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (!!minVer && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (!!maxVer && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Object[]) => {\n let ret = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.get('vipFilter');\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\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 // online > current,则更新 latestVersion\n let key = 'ov';\n if (Platform.OS === 'android') {\n key = 'aov';\n }\n const configVersion = ConfigDataModel.get(key);\n if (configVersion) {\n const onlineVersion = semverCoerce(configVersion).version;\n // current < online,才有新版本\n if (semverGt(onlineVersion, VersionInfo.currentVersion)) {\n VersionInfo.latestVersion = onlineVersion;\n VersionInfo.hasNewVersion = true;\n }\n // current <= online,才安全 ,防止忘记修改 online\n if (semverGt(VersionInfo.currentVersion, onlineVersion)) {\n VersionInfo.isDanger = true;\n }\n }\n\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevDanger)) {\n VersionInfo.isDanger = DevConfig.getValue(BuildInPrefs.DevDanger);\n }\n }\n};\n\nlet isDataReady = false;\nlet isVipStateReady = false;\nlet isNetwordDataReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = () => {\n if (!isVipStateReady || !isNetwordDataReady) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n // 根据 VIP 状态过滤\n items = _filterByVip(items);\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\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n\n Notification.addListener('onVipRefresh', ({ e }: { e: any }) => {\n // 监听多次,直到成功,整个生命周期最多处理一次\n if (!e && !isVipStateReady) {\n isVipStateReady = true;\n _handleResponse();\n }\n });\n\n Notification.addListener(\n 'onLogin',\n ({ isAuto, user, error }: LoginResultDataType) => {\n if (!isAuto && user && !error) {\n isDataReady = false;\n isVipStateReady = false;\n isNetwordDataReady = false;\n OnlineItems = [];\n ConfigDataModel.fetch();\n }\n }\n );\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 OnlineItems = items;\n _handleResponse();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getVersionConfig: () => {\n return VersionInfo;\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\nexport { ConfigDataModel };\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_DevConfig","_Notification","_PrefData","_VipAndroidManager","EventEmitter","eventEmitter","semverGt","semverGte","semverCoerce","MyItems","VersionInfo","currentVersion","getReadableVersion","version","latestVersion","isDanger","hasNewVersion","AV","_filterByVersion","items","ret","curVer","item","_item$get","_item$get2","minVer","get","trim","maxVer","push","_updateKeyValues","value","handleVersionInfo","key","Platform","OS","configVersion","ConfigDataModel","onlineVersion","__DEV__","DevConfig","hasValue","BuildInPrefs","DevDanger","getValue","isDataReady","isNetwordDataReady","OnlineItems","_handleResponse","console","log","VipAndroidManager","setOfferings","emitChange","exports","init","defaultValues","Notification","addListener","_ref","isAuto","user","error","fetch","query","Query","equalTo","find","then","catch","e","getVersionConfig","emit","addListenerOnce","callback","once","on"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { DevConfig } from './DevConfig';\nimport { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { VipAndroidManager } from './VipAndroidManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\nlet VersionInfo = {\n currentVersion: semverCoerce(getReadableVersion()).version,\n latestVersion: semverCoerce(getReadableVersion()).version,\n isDanger: false,\n hasNewVersion: false,\n};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.get('minVer')?.trim();\n const maxVer = item.get('maxVer')?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (!!minVer && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (!!maxVer && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\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 // online > current,则更新 latestVersion\n let key = 'ov';\n if (Platform.OS === 'android') {\n key = 'aov';\n }\n const configVersion = ConfigDataModel.get(key);\n if (configVersion) {\n const onlineVersion = semverCoerce(configVersion).version;\n // current < online,才有新版本\n if (semverGt(onlineVersion, VersionInfo.currentVersion)) {\n VersionInfo.latestVersion = onlineVersion;\n VersionInfo.hasNewVersion = true;\n }\n // current <= online,才安全 ,防止忘记修改 online\n if (semverGt(VersionInfo.currentVersion, onlineVersion)) {\n VersionInfo.isDanger = true;\n }\n }\n\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevDanger)) {\n VersionInfo.isDanger = DevConfig.getValue(BuildInPrefs.DevDanger);\n }\n }\n};\n\nlet isDataReady = false;\nlet isNetwordDataReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = () => {\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\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 OnlineItems = [];\n ConfigDataModel.fetch();\n }\n }\n );\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 OnlineItems = items;\n _handleResponse();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getVersionConfig: () => {\n return VersionInfo;\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\nexport { ConfigDataModel };\n"],"mappings":"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"}
|
@@ -23,7 +23,7 @@ const VipManager = exports.VipManager = {
|
|
23
23
|
return;
|
24
24
|
}
|
25
25
|
console.log('Vip 模块初始化');
|
26
|
-
if (
|
26
|
+
if (_Tool.ToolkitConfig.RC_PROXY_URL) {
|
27
27
|
console.log('设置代理', _Tool.ToolkitConfig.RC_PROXY_URL);
|
28
28
|
await _reactNativePurchases.default.setProxyURL(_Tool.ToolkitConfig.RC_PROXY_URL);
|
29
29
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativePurchases","_interopRequireDefault","_DevConfig","_LoginManager","_Notification","_PrefData","_Tool","_VipAndroidManager","obj","__esModule","default","_customerInfo","isReady","VipManager","exports","init","ToolkitConfig","RC_API_KEY","console","log","RC_PROXY_URL","Purchases","setProxyURL","configure","apiKey","refreshVip","Notification","addListener","_ref","error","user","logIn","AVUser","get","setAttributes","nickname","e","logOut","purchase","purchasePackage","errorCode","LoginManager","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","_customerInfo5","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","currentUser","includes","isVipExpired","_LoginManager$current2","_customerInfo6","getCustomerInfo","updateVipInfo","postNotification","_customerInfo7","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo8","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';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\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 Notification.addListener(\n 'onLogin',\n async ({ error, user }: LoginResultDataType) => {\n console.log('Vip 模块用户登录');\n if (!error && user) {\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 }\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 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 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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"}
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativePurchases","_interopRequireDefault","_DevConfig","_LoginManager","_Notification","_PrefData","_Tool","_VipAndroidManager","obj","__esModule","default","_customerInfo","isReady","VipManager","exports","init","ToolkitConfig","RC_API_KEY","console","log","RC_PROXY_URL","Purchases","setProxyURL","configure","apiKey","refreshVip","Notification","addListener","_ref","error","user","logIn","AVUser","get","setAttributes","nickname","e","logOut","purchase","purchasePackage","errorCode","LoginManager","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","_customerInfo5","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","currentUser","includes","isVipExpired","_LoginManager$current2","_customerInfo6","getCustomerInfo","updateVipInfo","postNotification","_customerInfo7","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo8","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';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\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 Notification.addListener(\n 'onLogin',\n async ({ error, user }: LoginResultDataType) => {\n console.log('Vip 模块用户登录');\n if (!error && user) {\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 }\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 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 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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"}
|
@@ -4,7 +4,6 @@ import { DevConfig } from './DevConfig';
|
|
4
4
|
import { Notification } from './Notification';
|
5
5
|
import { BuildInPrefs } from './PrefData';
|
6
6
|
import { VipAndroidManager } from './VipAndroidManager';
|
7
|
-
import { VipManager } from './VipManager';
|
8
7
|
const EventEmitter = require('events').EventEmitter;
|
9
8
|
const eventEmitter = new EventEmitter();
|
10
9
|
const semverGt = require('semver/functions/gt');
|
@@ -36,18 +35,6 @@ const _filterByVersion = items => {
|
|
36
35
|
}
|
37
36
|
return ret;
|
38
37
|
};
|
39
|
-
const _filterByVip = items => {
|
40
|
-
let ret = [];
|
41
|
-
const isVip = VipManager.isVip();
|
42
|
-
const isForeverVip = VipManager.isForeverVip();
|
43
|
-
for (const item of items) {
|
44
|
-
const vipFilter = item.get('vipFilter');
|
45
|
-
if (vipFilter === 0 || vipFilter === 1 && !isVip || vipFilter === 2 && !isForeverVip) {
|
46
|
-
ret.push(item);
|
47
|
-
}
|
48
|
-
}
|
49
|
-
return ret;
|
50
|
-
};
|
51
38
|
const _updateKeyValues = items => {
|
52
39
|
for (const item of items) {
|
53
40
|
let value = item.get('value');
|
@@ -84,18 +71,15 @@ const handleVersionInfo = () => {
|
|
84
71
|
}
|
85
72
|
};
|
86
73
|
let isDataReady = false;
|
87
|
-
let isVipStateReady = false;
|
88
74
|
let isNetwordDataReady = false;
|
89
75
|
let OnlineItems = [];
|
90
76
|
const _handleResponse = () => {
|
91
|
-
if (!
|
77
|
+
if (!isNetwordDataReady) {
|
92
78
|
return;
|
93
79
|
}
|
94
80
|
|
95
81
|
// 根据版本过滤
|
96
82
|
let items = _filterByVersion(OnlineItems);
|
97
|
-
// 根据 VIP 状态过滤
|
98
|
-
items = _filterByVip(items);
|
99
83
|
_updateKeyValues(items);
|
100
84
|
// 处理 Version 信息
|
101
85
|
handleVersionInfo();
|
@@ -107,25 +91,14 @@ const _handleResponse = () => {
|
|
107
91
|
const ConfigDataModel = {
|
108
92
|
init: defaultValues => {
|
109
93
|
MyItems = defaultValues;
|
110
|
-
Notification.addListener('
|
111
|
-
let {
|
112
|
-
e
|
113
|
-
} = _ref;
|
114
|
-
// 监听多次,直到成功,整个生命周期最多处理一次
|
115
|
-
if (!e && !isVipStateReady) {
|
116
|
-
isVipStateReady = true;
|
117
|
-
_handleResponse();
|
118
|
-
}
|
119
|
-
});
|
120
|
-
Notification.addListener('onLogin', _ref2 => {
|
94
|
+
Notification.addListener('onLogin', _ref => {
|
121
95
|
let {
|
122
96
|
isAuto,
|
123
97
|
user,
|
124
98
|
error
|
125
|
-
} =
|
99
|
+
} = _ref;
|
126
100
|
if (!isAuto && user && !error) {
|
127
101
|
isDataReady = false;
|
128
|
-
isVipStateReady = false;
|
129
102
|
isNetwordDataReady = false;
|
130
103
|
OnlineItems = [];
|
131
104
|
ConfigDataModel.fetch();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Platform","getReadableVersion","DevConfig","Notification","BuildInPrefs","VipAndroidManager","VipManager","EventEmitter","require","eventEmitter","semverGt","semverGte","semverCoerce","MyItems","VersionInfo","currentVersion","version","latestVersion","isDanger","hasNewVersion","AV","_filterByVersion","items","ret","curVer","item","_item$get","_item$get2","minVer","get","trim","maxVer","push","_filterByVip","isVip","isForeverVip","vipFilter","_updateKeyValues","value","handleVersionInfo","key","OS","configVersion","ConfigDataModel","onlineVersion","__DEV__","hasValue","DevDanger","getValue","isDataReady","isVipStateReady","isNetwordDataReady","OnlineItems","_handleResponse","console","log","setOfferings","emitChange","init","defaultValues","addListener","_ref","e","_ref2","isAuto","user","error","fetch","query","Query","equalTo","find","then","catch","getVersionConfig","emit","addListenerOnce","callback","once","on"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { DevConfig } from './DevConfig';\nimport { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { VipAndroidManager } from './VipAndroidManager';\nimport { VipManager } from './VipManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\nlet VersionInfo = {\n currentVersion: semverCoerce(getReadableVersion()).version,\n latestVersion: semverCoerce(getReadableVersion()).version,\n isDanger: false,\n hasNewVersion: false,\n};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.get('minVer')?.trim();\n const maxVer = item.get('maxVer')?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (!!minVer && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (!!maxVer && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Object[]) => {\n let ret = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.get('vipFilter');\n if (\n vipFilter === 0 ||\n (vipFilter === 1 && !isVip) ||\n (vipFilter === 2 && !isForeverVip)\n ) {\n ret.push(item);\n }\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 // online > current,则更新 latestVersion\n let key = 'ov';\n if (Platform.OS === 'android') {\n key = 'aov';\n }\n const configVersion = ConfigDataModel.get(key);\n if (configVersion) {\n const onlineVersion = semverCoerce(configVersion).version;\n // current < online,才有新版本\n if (semverGt(onlineVersion, VersionInfo.currentVersion)) {\n VersionInfo.latestVersion = onlineVersion;\n VersionInfo.hasNewVersion = true;\n }\n // current <= online,才安全 ,防止忘记修改 online\n if (semverGt(VersionInfo.currentVersion, onlineVersion)) {\n VersionInfo.isDanger = true;\n }\n }\n\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevDanger)) {\n VersionInfo.isDanger = DevConfig.getValue(BuildInPrefs.DevDanger);\n }\n }\n};\n\nlet isDataReady = false;\nlet isVipStateReady = false;\nlet isNetwordDataReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = () => {\n if (!isVipStateReady || !isNetwordDataReady) {\n return;\n }\n\n // 根据版本过滤\n let items = _filterByVersion(OnlineItems);\n // 根据 VIP 状态过滤\n items = _filterByVip(items);\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\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n\n Notification.addListener('onVipRefresh', ({ e }: { e: any }) => {\n // 监听多次,直到成功,整个生命周期最多处理一次\n if (!e && !isVipStateReady) {\n isVipStateReady = true;\n _handleResponse();\n }\n });\n\n Notification.addListener(\n 'onLogin',\n ({ isAuto, user, error }: LoginResultDataType) => {\n if (!isAuto && user && !error) {\n isDataReady = false;\n isVipStateReady = false;\n isNetwordDataReady = false;\n OnlineItems = [];\n ConfigDataModel.fetch();\n }\n }\n );\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 OnlineItems = items;\n _handleResponse();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getVersionConfig: () => {\n return VersionInfo;\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\nexport { ConfigDataModel };\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["Platform","getReadableVersion","DevConfig","Notification","BuildInPrefs","VipAndroidManager","EventEmitter","require","eventEmitter","semverGt","semverGte","semverCoerce","MyItems","VersionInfo","currentVersion","version","latestVersion","isDanger","hasNewVersion","AV","_filterByVersion","items","ret","curVer","item","_item$get","_item$get2","minVer","get","trim","maxVer","push","_updateKeyValues","value","handleVersionInfo","key","OS","configVersion","ConfigDataModel","onlineVersion","__DEV__","hasValue","DevDanger","getValue","isDataReady","isNetwordDataReady","OnlineItems","_handleResponse","console","log","setOfferings","emitChange","init","defaultValues","addListener","_ref","isAuto","user","error","fetch","query","Query","equalTo","find","then","catch","e","getVersionConfig","emit","addListenerOnce","callback","once","on"],"sources":["ConfigDataModel.ts"],"sourcesContent":["import { Object } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { DevConfig } from './DevConfig';\nimport { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { BuildInPrefs } from './PrefData';\nimport { VipAndroidManager } from './VipAndroidManager';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\nconst semverGt = require('semver/functions/gt');\nconst semverGte = require('semver/functions/gte');\nconst semverCoerce = require('semver/functions/coerce');\n\nexport interface ConfigsType {\n [key: string]: any;\n}\nlet MyItems: ConfigsType = {};\nlet VersionInfo = {\n currentVersion: semverCoerce(getReadableVersion()).version,\n latestVersion: semverCoerce(getReadableVersion()).version,\n isDanger: false,\n hasNewVersion: false,\n};\n\nconst AV = require('leancloud-storage');\n\nconst _filterByVersion = (items: Object[]) => {\n let ret = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.get('minVer')?.trim();\n const maxVer = item.get('maxVer')?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (!!minVer && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (!!maxVer && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\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 // online > current,则更新 latestVersion\n let key = 'ov';\n if (Platform.OS === 'android') {\n key = 'aov';\n }\n const configVersion = ConfigDataModel.get(key);\n if (configVersion) {\n const onlineVersion = semverCoerce(configVersion).version;\n // current < online,才有新版本\n if (semverGt(onlineVersion, VersionInfo.currentVersion)) {\n VersionInfo.latestVersion = onlineVersion;\n VersionInfo.hasNewVersion = true;\n }\n // current <= online,才安全 ,防止忘记修改 online\n if (semverGt(VersionInfo.currentVersion, onlineVersion)) {\n VersionInfo.isDanger = true;\n }\n }\n\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevDanger)) {\n VersionInfo.isDanger = DevConfig.getValue(BuildInPrefs.DevDanger);\n }\n }\n};\n\nlet isDataReady = false;\nlet isNetwordDataReady = false;\nlet OnlineItems: Object[] = [];\n\nconst _handleResponse = () => {\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\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 OnlineItems = [];\n ConfigDataModel.fetch();\n }\n }\n );\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 OnlineItems = items;\n _handleResponse();\n })\n .catch((e: any) => {\n console.error(e);\n });\n },\n\n getVersionConfig: () => {\n return VersionInfo;\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\nexport { ConfigDataModel };\n"],"mappings":"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"}
|
package/lib/module/VipManager.js
CHANGED
@@ -16,7 +16,7 @@ export const VipManager = {
|
|
16
16
|
return;
|
17
17
|
}
|
18
18
|
console.log('Vip 模块初始化');
|
19
|
-
if (
|
19
|
+
if (ToolkitConfig.RC_PROXY_URL) {
|
20
20
|
console.log('设置代理', ToolkitConfig.RC_PROXY_URL);
|
21
21
|
await Purchases.setProxyURL(ToolkitConfig.RC_PROXY_URL);
|
22
22
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Platform","Purchases","DevConfig","LoginManager","Notification","BuildInPrefs","Tool","ToolkitConfig","VipAndroidManager","_customerInfo","isReady","VipManager","init","RC_API_KEY","console","log","RC_PROXY_URL","setProxyURL","configure","apiKey","refreshVip","addListener","_ref","error","user","logIn","AVUser","get","setAttributes","nickname","e","logOut","purchase","purchasePackage","errorCode","isLogin","OS","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","hasValue","DevVip","getValue","_VipManager$vipEndTim","vipEndTime","vipCountDay","_customerInfo4","time","expirationDate","date","Date","formatDate","_customerInfo5","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","currentUser","includes","isVipExpired","_LoginManager$current2","_customerInfo6","getCustomerInfo","updateVipInfo","postNotification","_customerInfo7","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo8","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';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\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 Notification.addListener(\n 'onLogin',\n async ({ error, user }: LoginResultDataType) => {\n console.log('Vip 模块用户登录');\n if (!error && user) {\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 }\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 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 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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"}
|
1
|
+
{"version":3,"names":["Platform","Purchases","DevConfig","LoginManager","Notification","BuildInPrefs","Tool","ToolkitConfig","VipAndroidManager","_customerInfo","isReady","VipManager","init","RC_API_KEY","console","log","RC_PROXY_URL","setProxyURL","configure","apiKey","refreshVip","addListener","_ref","error","user","logIn","AVUser","get","setAttributes","nickname","e","logOut","purchase","purchasePackage","errorCode","isLogin","OS","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","hasValue","DevVip","getValue","_VipManager$vipEndTim","vipEndTime","vipCountDay","_customerInfo4","time","expirationDate","date","Date","formatDate","_customerInfo5","diff","getTime","Math","max","ceil","_LoginManager$current","vipType","currentUser","includes","isVipExpired","_LoginManager$current2","_customerInfo6","getCustomerInfo","updateVipInfo","postNotification","_customerInfo7","_LoginManager$current3","keys","values","productIdentifier","oldVipType","push","_customerInfo8","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';\n\nlet _customerInfo: CustomerInfo | null;\nlet isReady = false;\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 Notification.addListener(\n 'onLogin',\n async ({ error, user }: LoginResultDataType) => {\n console.log('Vip 模块用户登录');\n if (!error && user) {\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 }\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 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 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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"}
|
package/package.json
CHANGED
package/src/ConfigDataModel.ts
CHANGED
@@ -6,7 +6,6 @@ import { LoginResultDataType } from './LoginManager';
|
|
6
6
|
import { Notification } from './Notification';
|
7
7
|
import { BuildInPrefs } from './PrefData';
|
8
8
|
import { VipAndroidManager } from './VipAndroidManager';
|
9
|
-
import { VipManager } from './VipManager';
|
10
9
|
|
11
10
|
const EventEmitter = require('events').EventEmitter;
|
12
11
|
const eventEmitter = new EventEmitter();
|
@@ -46,23 +45,6 @@ const _filterByVersion = (items: Object[]) => {
|
|
46
45
|
return ret;
|
47
46
|
};
|
48
47
|
|
49
|
-
const _filterByVip = (items: Object[]) => {
|
50
|
-
let ret = [];
|
51
|
-
const isVip = VipManager.isVip();
|
52
|
-
const isForeverVip = VipManager.isForeverVip();
|
53
|
-
for (const item of items) {
|
54
|
-
const vipFilter = item.get('vipFilter');
|
55
|
-
if (
|
56
|
-
vipFilter === 0 ||
|
57
|
-
(vipFilter === 1 && !isVip) ||
|
58
|
-
(vipFilter === 2 && !isForeverVip)
|
59
|
-
) {
|
60
|
-
ret.push(item);
|
61
|
-
}
|
62
|
-
}
|
63
|
-
return ret;
|
64
|
-
};
|
65
|
-
|
66
48
|
const _updateKeyValues = (items: Object[]) => {
|
67
49
|
for (const item of items) {
|
68
50
|
let value = item.get('value');
|
@@ -102,19 +84,16 @@ const handleVersionInfo = () => {
|
|
102
84
|
};
|
103
85
|
|
104
86
|
let isDataReady = false;
|
105
|
-
let isVipStateReady = false;
|
106
87
|
let isNetwordDataReady = false;
|
107
88
|
let OnlineItems: Object[] = [];
|
108
89
|
|
109
90
|
const _handleResponse = () => {
|
110
|
-
if (!
|
91
|
+
if (!isNetwordDataReady) {
|
111
92
|
return;
|
112
93
|
}
|
113
94
|
|
114
95
|
// 根据版本过滤
|
115
96
|
let items = _filterByVersion(OnlineItems);
|
116
|
-
// 根据 VIP 状态过滤
|
117
|
-
items = _filterByVip(items);
|
118
97
|
_updateKeyValues(items);
|
119
98
|
// 处理 Version 信息
|
120
99
|
handleVersionInfo();
|
@@ -128,20 +107,11 @@ const ConfigDataModel = {
|
|
128
107
|
init: (defaultValues: ConfigsType) => {
|
129
108
|
MyItems = defaultValues;
|
130
109
|
|
131
|
-
Notification.addListener('onVipRefresh', ({ e }: { e: any }) => {
|
132
|
-
// 监听多次,直到成功,整个生命周期最多处理一次
|
133
|
-
if (!e && !isVipStateReady) {
|
134
|
-
isVipStateReady = true;
|
135
|
-
_handleResponse();
|
136
|
-
}
|
137
|
-
});
|
138
|
-
|
139
110
|
Notification.addListener(
|
140
111
|
'onLogin',
|
141
112
|
({ isAuto, user, error }: LoginResultDataType) => {
|
142
113
|
if (!isAuto && user && !error) {
|
143
114
|
isDataReady = false;
|
144
|
-
isVipStateReady = false;
|
145
115
|
isNetwordDataReady = false;
|
146
116
|
OnlineItems = [];
|
147
117
|
ConfigDataModel.fetch();
|
package/src/VipManager.ts
CHANGED