@norcy/react-native-toolkit 0.1.16 → 0.1.18
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 +122 -0
- package/lib/commonjs/ConfigDataModel.js.map +1 -0
- package/lib/commonjs/DevConfig.js +9 -5
- package/lib/commonjs/DevConfig.js.map +1 -1
- package/lib/commonjs/Frequence.js +67 -0
- package/lib/commonjs/Frequence.js.map +1 -0
- package/lib/commonjs/LoginManager.js +21 -18
- package/lib/commonjs/LoginManager.js.map +1 -1
- package/lib/commonjs/MessageModel.js +157 -0
- package/lib/commonjs/MessageModel.js.map +1 -0
- package/lib/commonjs/PrefData.js +10 -0
- package/lib/commonjs/PrefData.js.map +1 -1
- package/lib/commonjs/SentryManager.js +3 -3
- package/lib/commonjs/SentryManager.js.map +1 -1
- package/lib/commonjs/Tool.js +52 -0
- package/lib/commonjs/Tool.js.map +1 -0
- package/lib/commonjs/VipAndroidManager.js +154 -0
- package/lib/commonjs/VipAndroidManager.js.map +1 -0
- package/lib/commonjs/VipManager.js +280 -0
- package/lib/commonjs/VipManager.js.map +1 -0
- package/lib/commonjs/index.js +72 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/ConfigDataModel.js +117 -0
- package/lib/module/ConfigDataModel.js.map +1 -0
- package/lib/module/DevConfig.js +5 -1
- package/lib/module/DevConfig.js.map +1 -1
- package/lib/module/Frequence.js +61 -0
- package/lib/module/Frequence.js.map +1 -0
- package/lib/module/LoginManager.js +5 -2
- package/lib/module/LoginManager.js.map +1 -1
- package/lib/module/MessageModel.js +151 -0
- package/lib/module/MessageModel.js.map +1 -0
- package/lib/module/PrefData.js +10 -0
- package/lib/module/PrefData.js.map +1 -1
- package/lib/module/SentryManager.js +1 -1
- package/lib/module/SentryManager.js.map +1 -1
- package/lib/module/Tool.js +46 -0
- package/lib/module/Tool.js.map +1 -0
- package/lib/module/VipAndroidManager.js +145 -0
- package/lib/module/VipAndroidManager.js.map +1 -0
- package/lib/module/VipManager.js +273 -0
- package/lib/module/VipManager.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/ConfigDataModel.d.ts +17 -0
- package/lib/typescript/DevConfig.d.ts +1 -1
- package/lib/typescript/Frequence.d.ts +10 -0
- package/lib/typescript/LoginManager.d.ts +2 -3
- package/lib/typescript/MessageModel.d.ts +26 -0
- package/lib/typescript/Tool.d.ts +7 -0
- package/lib/typescript/VipAndroidManager.d.ts +28 -0
- package/lib/typescript/VipManager.d.ts +29 -0
- package/lib/typescript/index.d.ts +6 -0
- package/package.json +5 -3
- package/src/ConfigDataModel.ts +146 -0
- package/src/DevConfig.ts +4 -1
- package/src/Frequence.ts +70 -0
- package/src/LoginManager.ts +6 -9
- package/src/MessageModel.ts +191 -0
- package/src/PrefData.ts +10 -0
- package/src/SentryManager.ts +2 -1
- package/src/Tool.ts +64 -0
- package/src/VipAndroidManager.ts +110 -0
- package/src/VipManager.ts +282 -0
- package/src/index.tsx +6 -0
- package/ios/ReactNativeToolkit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MessageModel = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _reactNativeDeviceInfo = require("react-native-device-info");
|
|
9
|
+
var _ConfigDataModel = require("./ConfigDataModel");
|
|
10
|
+
var _Frequence = require("./Frequence");
|
|
11
|
+
var _LoginManager = require("./LoginManager");
|
|
12
|
+
var _PrefData = require("./PrefData");
|
|
13
|
+
var _Tool = require("./Tool");
|
|
14
|
+
var _VipManager = require("./VipManager");
|
|
15
|
+
const AV = require('leancloud-storage');
|
|
16
|
+
const EventEmitter = require('events').EventEmitter;
|
|
17
|
+
const eventEmitter = new EventEmitter();
|
|
18
|
+
const semverGt = require('semver/functions/gt');
|
|
19
|
+
const semverGte = require('semver/functions/gte');
|
|
20
|
+
const semverCoerce = require('semver/functions/coerce');
|
|
21
|
+
let MyMessages = [];
|
|
22
|
+
const _filterByVersion = items => {
|
|
23
|
+
let ret = [];
|
|
24
|
+
const curVer = semverCoerce((0, _reactNativeDeviceInfo.getReadableVersion)()).version;
|
|
25
|
+
for (const item of items) {
|
|
26
|
+
var _item$minVer, _item$maxVer;
|
|
27
|
+
const minVer = (_item$minVer = item.minVer) === null || _item$minVer === void 0 ? void 0 : _item$minVer.trim();
|
|
28
|
+
const maxVer = (_item$maxVer = item.maxVer) === null || _item$maxVer === void 0 ? void 0 : _item$maxVer.trim();
|
|
29
|
+
// 确保 cur 处于 [minVer, maxVer)
|
|
30
|
+
if (minVer !== null && minVer !== void 0 && minVer.length && semverGt(semverCoerce(minVer).version, curVer)) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (maxVer !== null && maxVer !== void 0 && maxVer.length && semverGte(curVer, semverCoerce(maxVer).version)) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
ret.push(item);
|
|
37
|
+
}
|
|
38
|
+
return ret;
|
|
39
|
+
};
|
|
40
|
+
const _filterByVip = items => {
|
|
41
|
+
let ret = [];
|
|
42
|
+
const isVip = _VipManager.VipManager.isVip();
|
|
43
|
+
const isForeverVip = _VipManager.VipManager.isForeverVip();
|
|
44
|
+
for (const item of items) {
|
|
45
|
+
const vipFilter = item.vipFilter;
|
|
46
|
+
if (vipFilter === 0 || vipFilter === 1 && !isVip || vipFilter === 2 && !isForeverVip) {
|
|
47
|
+
ret.push(item);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return ret;
|
|
51
|
+
};
|
|
52
|
+
const _filterByUser = items => {
|
|
53
|
+
let ret = [];
|
|
54
|
+
for (const item of items) {
|
|
55
|
+
const users = item.users;
|
|
56
|
+
if (users !== null && users !== void 0 && users.length) {
|
|
57
|
+
if (_LoginManager.LoginManager.isLogin()) {
|
|
58
|
+
var _LoginManager$current;
|
|
59
|
+
if (users !== null && users !== void 0 && users.includes((_LoginManager$current = _LoginManager.LoginManager.currentUser()) === null || _LoginManager$current === void 0 ? void 0 : _LoginManager$current.AVUser.get('objectId'))) {
|
|
60
|
+
ret.push(item);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
} else {
|
|
64
|
+
ret.push(item);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return ret;
|
|
68
|
+
};
|
|
69
|
+
const _handleReadMessages = items => {
|
|
70
|
+
if (__DEV__) {
|
|
71
|
+
// return items;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// 根据已读状态标为已读
|
|
75
|
+
const readMsgs = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.Messages);
|
|
76
|
+
for (const item of items) {
|
|
77
|
+
if (readMsgs.includes(item.objectId)) {
|
|
78
|
+
item.isRead = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// 挑选需要强制未读
|
|
83
|
+
for (const item of items) {
|
|
84
|
+
var _item$key;
|
|
85
|
+
if (!item.isRead) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (item.key === 'changeLog') {
|
|
89
|
+
// 强制升级弹窗
|
|
90
|
+
// Message 是在 Config 回包之后再请求的,因此此时 Config 的值一定是准确的
|
|
91
|
+
const config = _ConfigDataModel.ConfigDataModel.getVersionConfig();
|
|
92
|
+
if (_ConfigDataModel.ConfigDataModel.get('upgrade_alert') && config.hasNewVersion) {
|
|
93
|
+
item.isRead = false;
|
|
94
|
+
item.updatedAt = new Date().toString();
|
|
95
|
+
}
|
|
96
|
+
} else if ((_item$key = item.key) !== null && _item$key !== void 0 && _item$key.length) {
|
|
97
|
+
const freConfig = {
|
|
98
|
+
key: item.key,
|
|
99
|
+
limit: item.limit,
|
|
100
|
+
gap: item.gap
|
|
101
|
+
};
|
|
102
|
+
if (_Frequence.FrequenceManager.canRun(freConfig)) {
|
|
103
|
+
_Frequence.FrequenceManager.markFinishForTime(freConfig.key);
|
|
104
|
+
item.isRead = false;
|
|
105
|
+
item.updatedAt = new Date().toString();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return items;
|
|
110
|
+
};
|
|
111
|
+
const MessageModel = exports.MessageModel = {
|
|
112
|
+
fetch: () => {
|
|
113
|
+
const query = new AV.Query('Message');
|
|
114
|
+
query.equalTo('valid', true).equalTo(_reactNative.Platform.OS, true).descending('updatedAt');
|
|
115
|
+
query.find().then(async items => {
|
|
116
|
+
console.log('Message 抓取完毕');
|
|
117
|
+
MyMessages = items.map(item => _Tool.Tool.jsonify(item));
|
|
118
|
+
MyMessages = _filterByVersion(MyMessages);
|
|
119
|
+
MyMessages = _filterByVip(MyMessages);
|
|
120
|
+
MyMessages = _filterByUser(MyMessages);
|
|
121
|
+
MyMessages = _handleReadMessages(MyMessages);
|
|
122
|
+
|
|
123
|
+
// 由于强制插入的未读消息更改了时间,因此需要重新排序
|
|
124
|
+
MyMessages = MyMessages.sort((a, b) => {
|
|
125
|
+
let dateA = new Date(a.updatedAt).getTime();
|
|
126
|
+
let dateB = new Date(b.updatedAt).getTime();
|
|
127
|
+
return dateB - dateA;
|
|
128
|
+
});
|
|
129
|
+
MessageModel.emitChange();
|
|
130
|
+
}).catch(e => {
|
|
131
|
+
console.error(e);
|
|
132
|
+
});
|
|
133
|
+
},
|
|
134
|
+
getUnreadMessages: () => {
|
|
135
|
+
return MyMessages.filter(item => !item.isRead);
|
|
136
|
+
},
|
|
137
|
+
getAllMessages: () => {
|
|
138
|
+
return MyMessages;
|
|
139
|
+
},
|
|
140
|
+
markMessageRead: async message => {
|
|
141
|
+
if (message.isRead || !message.objectId) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
message.isRead = true;
|
|
145
|
+
const readMsgs = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.Messages);
|
|
146
|
+
readMsgs.push(message.objectId);
|
|
147
|
+
await _PrefData.PrefData.setValue(_PrefData.BuildInPrefs.Messages, readMsgs);
|
|
148
|
+
MessageModel.emitChange();
|
|
149
|
+
},
|
|
150
|
+
emitChange: () => {
|
|
151
|
+
eventEmitter.emit('change', MyMessages.slice());
|
|
152
|
+
},
|
|
153
|
+
addListenerOnce: callback => {
|
|
154
|
+
eventEmitter.once('change', callback);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
//# sourceMappingURL=MessageModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_ConfigDataModel","_Frequence","_LoginManager","_PrefData","_Tool","_VipManager","AV","EventEmitter","eventEmitter","semverGt","semverGte","semverCoerce","MyMessages","_filterByVersion","items","ret","curVer","getReadableVersion","version","item","_item$minVer","_item$maxVer","minVer","trim","maxVer","length","push","_filterByVip","isVip","VipManager","isForeverVip","vipFilter","_filterByUser","users","LoginManager","isLogin","_LoginManager$current","includes","currentUser","AVUser","get","_handleReadMessages","__DEV__","readMsgs","PrefData","getValue","BuildInPrefs","Messages","objectId","isRead","_item$key","key","config","ConfigDataModel","getVersionConfig","hasNewVersion","updatedAt","Date","toString","freConfig","limit","gap","FrequenceManager","canRun","markFinishForTime","MessageModel","exports","fetch","query","Query","equalTo","Platform","OS","descending","find","then","console","log","map","Tool","jsonify","sort","a","b","dateA","getTime","dateB","emitChange","catch","e","error","getUnreadMessages","filter","getAllMessages","markMessageRead","message","setValue","emit","slice","addListenerOnce","callback","once"],"sources":["MessageModel.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport { getReadableVersion } from 'react-native-device-info';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { FreConfigType, FrequenceManager } from './Frequence';\nimport { LoginManager } from './LoginManager';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { Tool } from './Tool';\nimport { VipManager } from './VipManager';\n\nconst AV = require('leancloud-storage');\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\ninterface 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}\n\nlet MyMessages: Message[] = [];\n\nconst _filterByVersion = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const curVer = semverCoerce(getReadableVersion()).version;\n for (const item of items) {\n const minVer = item.minVer?.trim();\n const maxVer = item.maxVer?.trim();\n // 确保 cur 处于 [minVer, maxVer)\n if (minVer?.length && semverGt(semverCoerce(minVer).version, curVer)) {\n continue;\n }\n if (maxVer?.length && semverGte(curVer, semverCoerce(maxVer).version)) {\n continue;\n }\n\n ret.push(item);\n }\n return ret;\n};\n\nconst _filterByVip = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n const isVip = VipManager.isVip();\n const isForeverVip = VipManager.isForeverVip();\n for (const item of items) {\n const vipFilter = item.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 _filterByUser = (items: Message[]): Message[] => {\n let ret: Message[] = [];\n for (const item of items) {\n const users = item.users;\n if (users?.length) {\n if (LoginManager.isLogin()) {\n if (\n users?.includes(LoginManager.currentUser()?.AVUser.get('objectId'))\n ) {\n ret.push(item);\n }\n }\n } else {\n ret.push(item);\n }\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 const config = ConfigDataModel.getVersionConfig();\n if (ConfigDataModel.get('upgrade_alert') && config.hasNewVersion) {\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n } else if (item.key?.length) {\n const freConfig: FreConfigType = {\n key: item.key,\n limit: item.limit,\n gap: item.gap,\n };\n if (FrequenceManager.canRun(freConfig)) {\n FrequenceManager.markFinishForTime(freConfig.key);\n item.isRead = false;\n item.updatedAt = new Date().toString();\n }\n }\n }\n\n return items;\n};\n\nexport const MessageModel = {\n fetch: () => {\n const query = new AV.Query('Message');\n query\n .equalTo('valid', true)\n .equalTo(Platform.OS, true)\n .descending('updatedAt');\n query\n .find()\n .then(async (items: any[]) => {\n console.log('Message 抓取完毕');\n MyMessages = items.map((item) => Tool.jsonify(item));\n MyMessages = _filterByVersion(MyMessages);\n MyMessages = _filterByVip(MyMessages);\n MyMessages = _filterByUser(MyMessages);\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 MessageModel.emitChange();\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 markMessageRead: async (message: Message) => {\n if (message.isRead || !message.objectId) {\n return;\n }\n message.isRead = true;\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 eventEmitter.once('change', callback);\n },\n};\n"],"mappings":"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"}
|
package/lib/commonjs/PrefData.js
CHANGED
|
@@ -25,6 +25,16 @@ const BuildInPrefs = exports.BuildInPrefs = {
|
|
|
25
25
|
key: 'DevDanger_Key',
|
|
26
26
|
type: 'int',
|
|
27
27
|
default: 0
|
|
28
|
+
},
|
|
29
|
+
FrequenceConfig: {
|
|
30
|
+
key: 'FrequenceConfig_Key',
|
|
31
|
+
type: 'object',
|
|
32
|
+
default: {}
|
|
33
|
+
},
|
|
34
|
+
Messages: {
|
|
35
|
+
key: 'Message_Key5',
|
|
36
|
+
type: 'array',
|
|
37
|
+
default: []
|
|
28
38
|
}
|
|
29
39
|
};
|
|
30
40
|
const getPrefByKey = (Prefs, key) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_asyncStorage","_interopRequireDefault","require","obj","__esModule","default","EventEmitter","eventEmitter","isDataLoaded","_PrefDatas","BuildInPrefs","exports","LastLoginType","key","type","DevVip","DevDanger","getPrefByKey","Prefs","keyOfPref","PrefData","load","initPrefs","console","log","keys","pref","push","values","getMultiDatas","i","length","value","JSON","parse","parseInt","emit","getValue","setValue","finalValue","stringify","toString","storeData","addListener","callback","on","error","AsyncStorage","setItem","e","multiGet"],"sources":["PrefData.ts"],"sourcesContent":["import AsyncStorage from '@react-native-community/async-storage';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nlet isDataLoaded = false;\n\nexport interface PrefType {\n key: string;\n type: string;\n default: any;\n}\n\nexport interface PrefsType {\n [key: string]: PrefType;\n}\n\nconst _PrefDatas: { [key: string]: any } = {};\n\nexport const BuildInPrefs: PrefsType = {\n LastLoginType: {\n key: 'LastLoginType_Key',\n type: 'int',\n default: -1,\n },\n DevVip: {\n key: 'DevVip_Key',\n type: 'int',\n default: 0,\n },\n DevDanger: {\n key: 'DevDanger_Key',\n type: 'int',\n default: 0,\n },\n};\n\nconst getPrefByKey = (Prefs: PrefsType, key: string) => {\n for (const keyOfPref in Prefs) {\n if (Prefs[keyOfPref].key === key) {\n return Prefs[keyOfPref];\n }\n }\n return null;\n};\n\nexport const PrefData = {\n load: async (initPrefs: PrefsType) => {\n console.log('读取配置');\n let keys = [];\n const Prefs = { ...BuildInPrefs, ...initPrefs };\n for (const pref in Prefs) {\n keys.push(Prefs[pref].key);\n }\n const values = await getMultiDatas(keys);\n\n for (let i = 0; i < values.length; i++) {\n const key = values[i][0];\n const value = values[i][1];\n const pref = getPrefByKey(Prefs, key);\n if (!pref) {\n continue;\n }\n // console.log(key, value, pref);\n if (!value) {\n _PrefDatas[key] = pref.default;\n } else if (pref.type === 'object' || pref.type === 'array') {\n _PrefDatas[key] = JSON.parse(value);\n } else if (pref.type === 'int') {\n _PrefDatas[key] = parseInt(value, 10);\n } else if (pref.type === 'bool') {\n _PrefDatas[key] = JSON.parse(value);\n } else {\n _PrefDatas[key] = value;\n }\n // console.log(\n // '配置读取结果:',\n // key,\n // _PrefDatas[key],\n // typeof _PrefDatas[key],\n // );\n }\n\n eventEmitter.emit('load');\n isDataLoaded = true;\n },\n\n getValue: (pref: PrefType) => {\n return _PrefDatas[pref.key];\n },\n\n setValue: async (pref: PrefType, value: any) => {\n const key = pref.key;\n let finalValue: string;\n _PrefDatas[key] = value;\n if (pref.type === 'object' || pref.type === 'array') {\n finalValue = JSON.stringify(value);\n } else if (pref.type === 'int') {\n finalValue = value.toString();\n } else if (pref.type === 'bool') {\n finalValue = value.toString();\n } else {\n finalValue = value;\n }\n\n await storeData(key, finalValue);\n },\n\n addListener: (callback: Function) => {\n if (isDataLoaded) {\n callback && callback();\n return;\n }\n eventEmitter.on('load', callback);\n },\n};\n\nconst storeData = async (key: string, value: string) => {\n try {\n if (typeof value !== 'string') {\n console.error('只接受 String');\n }\n // console.log('save to storage ' + value);\n await AsyncStorage.setItem(key, value);\n } catch (e) {\n console.error(e);\n }\n};\n\nconst getMultiDatas = async (keys: string[]) => {\n try {\n const values = await AsyncStorage.multiGet(keys);\n // console.log('read from storage ' + values);\n return values;\n } catch (e) {\n console.error(e);\n return [];\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAiE,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEjE,MAAMG,YAAY,GAAGJ,OAAO,CAAC,QAAQ,CAAC,CAACI,YAAY;AACnD,MAAMC,YAAY,GAAG,IAAID,YAAY,CAAC,CAAC;AAEvC,IAAIE,YAAY,GAAG,KAAK;AAYxB,MAAMC,UAAkC,GAAG,CAAC,CAAC;AAEtC,MAAMC,YAAuB,GAAAC,OAAA,CAAAD,YAAA,GAAG;EACrCE,aAAa,EAAE;IACbC,GAAG,EAAE,mBAAmB;IACxBC,IAAI,EAAE,KAAK;IACXT,OAAO,EAAE,CAAC;EACZ,CAAC;EACDU,MAAM,EAAE;IACNF,GAAG,EAAE,YAAY;IACjBC,IAAI,EAAE,KAAK;IACXT,OAAO,EAAE;EACX,CAAC;EACDW,SAAS,EAAE;IACTH,GAAG,EAAE,eAAe;IACpBC,IAAI,EAAE,KAAK;IACXT,OAAO,EAAE;EACX;AACF,CAAC;AAED,
|
|
1
|
+
{"version":3,"names":["_asyncStorage","_interopRequireDefault","require","obj","__esModule","default","EventEmitter","eventEmitter","isDataLoaded","_PrefDatas","BuildInPrefs","exports","LastLoginType","key","type","DevVip","DevDanger","FrequenceConfig","Messages","getPrefByKey","Prefs","keyOfPref","PrefData","load","initPrefs","console","log","keys","pref","push","values","getMultiDatas","i","length","value","JSON","parse","parseInt","emit","getValue","setValue","finalValue","stringify","toString","storeData","addListener","callback","on","error","AsyncStorage","setItem","e","multiGet"],"sources":["PrefData.ts"],"sourcesContent":["import AsyncStorage from '@react-native-community/async-storage';\n\nconst EventEmitter = require('events').EventEmitter;\nconst eventEmitter = new EventEmitter();\n\nlet isDataLoaded = false;\n\nexport interface PrefType {\n key: string;\n type: string;\n default: any;\n}\n\nexport interface PrefsType {\n [key: string]: PrefType;\n}\n\nconst _PrefDatas: { [key: string]: any } = {};\n\nexport const BuildInPrefs: PrefsType = {\n LastLoginType: {\n key: 'LastLoginType_Key',\n type: 'int',\n default: -1,\n },\n DevVip: {\n key: 'DevVip_Key',\n type: 'int',\n default: 0,\n },\n DevDanger: {\n key: 'DevDanger_Key',\n type: 'int',\n default: 0,\n },\n FrequenceConfig: {\n key: 'FrequenceConfig_Key',\n type: 'object',\n default: {},\n },\n Messages: {\n key: 'Message_Key5',\n type: 'array',\n default: [],\n },\n};\n\nconst getPrefByKey = (Prefs: PrefsType, key: string) => {\n for (const keyOfPref in Prefs) {\n if (Prefs[keyOfPref].key === key) {\n return Prefs[keyOfPref];\n }\n }\n return null;\n};\n\nexport const PrefData = {\n load: async (initPrefs: PrefsType) => {\n console.log('读取配置');\n let keys = [];\n const Prefs = { ...BuildInPrefs, ...initPrefs };\n for (const pref in Prefs) {\n keys.push(Prefs[pref].key);\n }\n const values = await getMultiDatas(keys);\n\n for (let i = 0; i < values.length; i++) {\n const key = values[i][0];\n const value = values[i][1];\n const pref = getPrefByKey(Prefs, key);\n if (!pref) {\n continue;\n }\n // console.log(key, value, pref);\n if (!value) {\n _PrefDatas[key] = pref.default;\n } else if (pref.type === 'object' || pref.type === 'array') {\n _PrefDatas[key] = JSON.parse(value);\n } else if (pref.type === 'int') {\n _PrefDatas[key] = parseInt(value, 10);\n } else if (pref.type === 'bool') {\n _PrefDatas[key] = JSON.parse(value);\n } else {\n _PrefDatas[key] = value;\n }\n // console.log(\n // '配置读取结果:',\n // key,\n // _PrefDatas[key],\n // typeof _PrefDatas[key],\n // );\n }\n\n eventEmitter.emit('load');\n isDataLoaded = true;\n },\n\n getValue: (pref: PrefType) => {\n return _PrefDatas[pref.key];\n },\n\n setValue: async (pref: PrefType, value: any) => {\n const key = pref.key;\n let finalValue: string;\n _PrefDatas[key] = value;\n if (pref.type === 'object' || pref.type === 'array') {\n finalValue = JSON.stringify(value);\n } else if (pref.type === 'int') {\n finalValue = value.toString();\n } else if (pref.type === 'bool') {\n finalValue = value.toString();\n } else {\n finalValue = value;\n }\n\n await storeData(key, finalValue);\n },\n\n addListener: (callback: Function) => {\n if (isDataLoaded) {\n callback && callback();\n return;\n }\n eventEmitter.on('load', callback);\n },\n};\n\nconst storeData = async (key: string, value: string) => {\n try {\n if (typeof value !== 'string') {\n console.error('只接受 String');\n }\n // console.log('save to storage ' + value);\n await AsyncStorage.setItem(key, value);\n } catch (e) {\n console.error(e);\n }\n};\n\nconst getMultiDatas = async (keys: string[]) => {\n try {\n const values = await AsyncStorage.multiGet(keys);\n // console.log('read from storage ' + values);\n return values;\n } catch (e) {\n console.error(e);\n return [];\n }\n};\n"],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.SentryManager = void 0;
|
|
7
|
-
var _reactNativeToolkit = require("@norcy/react-native-toolkit");
|
|
8
7
|
var Sentry = _interopRequireWildcard(require("@sentry/react-native"));
|
|
8
|
+
var _Notification = require("./Notification");
|
|
9
9
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
10
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
11
|
const SentryManager = exports.SentryManager = {
|
|
@@ -19,7 +19,7 @@ const SentryManager = exports.SentryManager = {
|
|
|
19
19
|
dsn: 'https://a67f2741a16c45c4a66527b8f8b046a2@o473216.ingest.sentry.io/6509175',
|
|
20
20
|
tracesSampleRate: 1.0
|
|
21
21
|
});
|
|
22
|
-
|
|
22
|
+
_Notification.Notification.addListener('onLogin', _ref => {
|
|
23
23
|
let {
|
|
24
24
|
error,
|
|
25
25
|
user
|
|
@@ -33,7 +33,7 @@ const SentryManager = exports.SentryManager = {
|
|
|
33
33
|
Sentry.setUser(sentryUser);
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
-
|
|
36
|
+
_Notification.Notification.addListener('onLogout', () => {
|
|
37
37
|
Sentry.setUser(null);
|
|
38
38
|
});
|
|
39
39
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Sentry","_interopRequireWildcard","require","_Notification","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SentryManager","exports","init","__DEV__","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 { Notification } from './Notification';\nimport { UserType } from './constant';\n\nexport const SentryManager = {\n init: () => {\n if (__DEV__) {\n console.log('__DEV__ 下不使用 Sentry');\n } else {\n // DEV 下不打开 Sentry\n console.log('__RELEASE__ 下使用 Sentry');\n Sentry.init({\n dsn: 'https://a67f2741a16c45c4a66527b8f8b046a2@o473216.ingest.sentry.io/6509175',\n tracesSampleRate: 1.0,\n });\n\n Notification.addListener(\n 'onLogin',\n ({ error, user }: { error: any; user: UserType }) => {\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 (!__DEV__) {\n if (key.length) {\n Sentry.setTag(key, value);\n }\n }\n },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAA8C,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAGvC,MAAMW,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,IAAI,EAAEA,CAAA,KAAM;IACV,IAAIC,OAAO,EAAE;MACXC,OAAO,CAACC,GAAG,CAAC,qBAAqB,CAAC;IACpC,CAAC,MAAM;MACL;MACAD,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC;MACrC/B,MAAM,CAAC4B,IAAI,CAAC;QACVI,GAAG,EAAE,2EAA2E;QAChFC,gBAAgB,EAAE;MACpB,CAAC,CAAC;MAEFC,0BAAY,CAACC,WAAW,CACtB,SAAS,EACTC,IAAA,IAAqD;QAAA,IAApD;UAAEC,KAAK;UAAEC;QAAqC,CAAC,GAAAF,IAAA;QAC9C,IAAI,CAACC,KAAK,IAAIC,IAAI,EAAE;UAClB,MAAMC,UAAuB,GAAG;YAC9BC,EAAE,EAAEF,IAAI,CAACG,MAAM,CAAC3B,GAAG,CAAC,UAAU,CAAC;YAC/B4B,KAAK,EAAEJ,IAAI,CAACI,KAAK;YACjBC,QAAQ,EAAEL,IAAI,CAACM;UACjB,CAAC;UACD5C,MAAM,CAAC6C,OAAO,CAACN,UAAU,CAAC;QAC5B;MACF,CACF,CAAC;MAEDL,0BAAY,CAACC,WAAW,CAAC,UAAU,EAAE,MAAM;QACzCnC,MAAM,CAAC6C,OAAO,CAAC,IAAI,CAAC;MACtB,CAAC,CAAC;;MAEF;MACA;MACA;IACF;EACF,CAAC;;EAEDC,MAAM,EAAEA,CAAC1B,GAAW,EAAE2B,KAAU,KAAK;IACnC,IAAI,CAAClB,OAAO,EAAE;MACZ,IAAIT,GAAG,CAAC4B,MAAM,EAAE;QACdhD,MAAM,CAAC8C,MAAM,CAAC1B,GAAG,EAAE2B,KAAK,CAAC;MAC3B;IACF;EACF;AACF,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Tool = void 0;
|
|
7
|
+
const Tool = exports.Tool = {
|
|
8
|
+
sleep: delay => new Promise(resolve => setTimeout(resolve, delay)),
|
|
9
|
+
formatDate(date, fmt) {
|
|
10
|
+
fmt = fmt ? fmt : 'yyyy-MM-dd';
|
|
11
|
+
var o = {
|
|
12
|
+
'M+': date.getMonth() + 1,
|
|
13
|
+
//月份
|
|
14
|
+
'd+': date.getDate(),
|
|
15
|
+
//日
|
|
16
|
+
'h+': date.getHours(),
|
|
17
|
+
//小时
|
|
18
|
+
'm+': date.getMinutes(),
|
|
19
|
+
//分
|
|
20
|
+
's+': date.getSeconds(),
|
|
21
|
+
//秒
|
|
22
|
+
'q+': Math.floor((date.getMonth() + 3) / 3),
|
|
23
|
+
//季度
|
|
24
|
+
'S': date.getMilliseconds() //毫秒
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
// 获取年份
|
|
28
|
+
if (/(y+)/i.test(fmt)) {
|
|
29
|
+
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
|
|
30
|
+
}
|
|
31
|
+
for (var k in o) {
|
|
32
|
+
if (new RegExp('(' + k + ')', 'i').test(fmt)) {
|
|
33
|
+
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)).toString());
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return fmt;
|
|
37
|
+
},
|
|
38
|
+
isPlainObject: target => {
|
|
39
|
+
return target && target.toString() === '[object Object]' && Object.getPrototypeOf(target) === Object.prototype;
|
|
40
|
+
},
|
|
41
|
+
_jsonify: target => {
|
|
42
|
+
if (target && typeof target.toJSON === 'function') return target.toJSON();
|
|
43
|
+
// map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值
|
|
44
|
+
if (Array.isArray(target)) return target.map(Tool._jsonify);
|
|
45
|
+
return target;
|
|
46
|
+
},
|
|
47
|
+
jsonify: target => Tool.isPlainObject(target) ? Object.keys(target).reduce((result, key) => ({
|
|
48
|
+
...result,
|
|
49
|
+
[key]: Tool._jsonify(target[key])
|
|
50
|
+
}), {}) : Tool._jsonify(target)
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=Tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Tool","exports","sleep","delay","Promise","resolve","setTimeout","formatDate","date","fmt","o","getMonth","getDate","getHours","getMinutes","getSeconds","Math","floor","getMilliseconds","test","replace","RegExp","$1","getFullYear","substr","length","k","toString","isPlainObject","target","Object","getPrototypeOf","prototype","_jsonify","toJSON","Array","isArray","map","jsonify","keys","reduce","result","key"],"sources":["Tool.ts"],"sourcesContent":["export const Tool = {\n sleep: (delay: number) =>\n new Promise((resolve) => setTimeout(resolve, delay)),\n\n formatDate(date: Date, fmt: string): string {\n fmt = fmt ? fmt : 'yyyy-MM-dd';\n var o: { [key: string]: number } = {\n 'M+': date.getMonth() + 1, //月份\n 'd+': date.getDate(), //日\n 'h+': date.getHours(), //小时\n 'm+': date.getMinutes(), //分\n 's+': date.getSeconds(), //秒\n 'q+': Math.floor((date.getMonth() + 3) / 3), //季度\n 'S': date.getMilliseconds(), //毫秒\n };\n\n // 获取年份\n if (/(y+)/i.test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (date.getFullYear() + '').substr(4 - RegExp.$1.length)\n );\n }\n\n for (var k in o) {\n if (new RegExp('(' + k + ')', 'i').test(fmt)) {\n fmt = fmt.replace(\n RegExp.$1,\n (RegExp.$1.length === 1\n ? o[k]\n : ('00' + o[k]).substr(('' + o[k]).length)\n ).toString()\n );\n }\n }\n return fmt;\n },\n\n isPlainObject: (target: any) => {\n return (\n target &&\n target.toString() === '[object Object]' &&\n Object.getPrototypeOf(target) === Object.prototype\n );\n },\n\n _jsonify: (target: any): any => {\n if (target && typeof target.toJSON === 'function') return target.toJSON();\n // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值\n if (Array.isArray(target)) return target.map(Tool._jsonify);\n return target;\n },\n\n jsonify: (target: any) =>\n Tool.isPlainObject(target)\n ? Object.keys(target).reduce(\n (result, key) => ({\n ...result,\n [key]: Tool._jsonify(target[key]),\n }),\n {}\n )\n : Tool._jsonify(target),\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.VipAndroidManager = void 0;
|
|
7
|
+
var _reactNativePurchases = _interopRequireDefault(require("react-native-purchases"));
|
|
8
|
+
var WeChat = _interopRequireWildcard(require("react-native-wechat-lib"));
|
|
9
|
+
var _ConfigDataModel = require("./ConfigDataModel");
|
|
10
|
+
var _LoginManager = require("./LoginManager");
|
|
11
|
+
var _Tool = require("./Tool");
|
|
12
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
let SERVER_URL = '';
|
|
16
|
+
const VipAndroidManager = exports.VipAndroidManager = {
|
|
17
|
+
init: _ref => {
|
|
18
|
+
let {
|
|
19
|
+
WeChatPayServer
|
|
20
|
+
} = _ref;
|
|
21
|
+
SERVER_URL = WeChatPayServer;
|
|
22
|
+
},
|
|
23
|
+
queryOrder: async orderId => {
|
|
24
|
+
const user = _LoginManager.LoginManager.currentUser();
|
|
25
|
+
// Step1:生成预订单
|
|
26
|
+
try {
|
|
27
|
+
const rawResponse = await fetch(SERVER_URL, {
|
|
28
|
+
method: 'POST',
|
|
29
|
+
headers: {
|
|
30
|
+
'Accept': 'application/json',
|
|
31
|
+
'Content-Type': 'application/json'
|
|
32
|
+
},
|
|
33
|
+
body: JSON.stringify({
|
|
34
|
+
user: user === null || user === void 0 ? void 0 : user.AVUser.get('objectId'),
|
|
35
|
+
order: orderId,
|
|
36
|
+
cmd: 'check'
|
|
37
|
+
})
|
|
38
|
+
});
|
|
39
|
+
const res = await rawResponse.json();
|
|
40
|
+
// console.log(res);
|
|
41
|
+
if (rawResponse.status === 200 && !res.error) {
|
|
42
|
+
return {
|
|
43
|
+
paid: res.paid
|
|
44
|
+
};
|
|
45
|
+
} else {
|
|
46
|
+
return {
|
|
47
|
+
paid: false,
|
|
48
|
+
e: res.error
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
} catch (e) {
|
|
52
|
+
return {
|
|
53
|
+
paid: false,
|
|
54
|
+
e: e
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
recover: async () => {
|
|
59
|
+
const {
|
|
60
|
+
paid,
|
|
61
|
+
e
|
|
62
|
+
} = await VipAndroidManager.queryOrder();
|
|
63
|
+
if (paid && !e) {
|
|
64
|
+
await _reactNativePurchases.default.invalidateCustomerInfoCache();
|
|
65
|
+
console.log('恢复成功');
|
|
66
|
+
return {
|
|
67
|
+
errorCode: 0
|
|
68
|
+
};
|
|
69
|
+
} else {
|
|
70
|
+
if (e) {
|
|
71
|
+
console.log('恢复失败(-3)', JSON.stringify(e));
|
|
72
|
+
return {
|
|
73
|
+
errorCode: -3,
|
|
74
|
+
errorMsg: JSON.stringify(e)
|
|
75
|
+
};
|
|
76
|
+
} else {
|
|
77
|
+
console.log('恢复失败(-2)');
|
|
78
|
+
return {
|
|
79
|
+
errorCode: -2
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
getPackages: () => {
|
|
85
|
+
return _ConfigDataModel.ConfigDataModel.get('vip_android_products');
|
|
86
|
+
},
|
|
87
|
+
purchase: async purchasePackage => {
|
|
88
|
+
try {
|
|
89
|
+
var _purchasePackage$prod;
|
|
90
|
+
const user = _LoginManager.LoginManager.currentUser();
|
|
91
|
+
// Step1:生成预订单
|
|
92
|
+
const rawResponse = await fetch(SERVER_URL, {
|
|
93
|
+
method: 'POST',
|
|
94
|
+
headers: {
|
|
95
|
+
'Accept': 'application/json',
|
|
96
|
+
'Content-Type': 'application/json'
|
|
97
|
+
},
|
|
98
|
+
body: JSON.stringify({
|
|
99
|
+
user: user === null || user === void 0 ? void 0 : user.AVUser.get('objectId'),
|
|
100
|
+
product: (_purchasePackage$prod = purchasePackage.product) === null || _purchasePackage$prod === void 0 ? void 0 : _purchasePackage$prod.identifier,
|
|
101
|
+
cmd: 'prepare'
|
|
102
|
+
})
|
|
103
|
+
});
|
|
104
|
+
const res = await rawResponse.json();
|
|
105
|
+
// console.log(res);
|
|
106
|
+
if (rawResponse.status === 200 && !res.error) {
|
|
107
|
+
// Step2:调用微信支付 SDK
|
|
108
|
+
const {
|
|
109
|
+
errCode,
|
|
110
|
+
errStr
|
|
111
|
+
} = await WeChat.pay(res.payload);
|
|
112
|
+
if (errCode) {
|
|
113
|
+
console.log('购买失败(-5)', errStr);
|
|
114
|
+
return {
|
|
115
|
+
errorCode: -5,
|
|
116
|
+
errorMsg: errStr
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// 虽然没什么问题,但保险起见还是延时下,让后台先更新
|
|
120
|
+
await _Tool.Tool.sleep(4000);
|
|
121
|
+
// Step3:查询后台
|
|
122
|
+
const {
|
|
123
|
+
paid,
|
|
124
|
+
e
|
|
125
|
+
} = await VipAndroidManager.queryOrder(res.payload.order);
|
|
126
|
+
if (paid && !e) {
|
|
127
|
+
await _reactNativePurchases.default.invalidateCustomerInfoCache();
|
|
128
|
+
return {
|
|
129
|
+
errorCode: 0
|
|
130
|
+
};
|
|
131
|
+
} else {
|
|
132
|
+
console.log('购买失败(-5)', JSON.stringify(e));
|
|
133
|
+
return {
|
|
134
|
+
errorCode: -5,
|
|
135
|
+
errorMsg: JSON.stringify(e)
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
} else {
|
|
139
|
+
console.log('购买失败(-5)', JSON.stringify(res === null || res === void 0 ? void 0 : res.error));
|
|
140
|
+
return {
|
|
141
|
+
errorCode: -5,
|
|
142
|
+
errorMsg: JSON.stringify(res === null || res === void 0 ? void 0 : res.error)
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
} catch (e) {
|
|
146
|
+
console.log('购买失败(-5)', JSON.stringify(e));
|
|
147
|
+
return {
|
|
148
|
+
errorCode: -5,
|
|
149
|
+
errorMsg: JSON.stringify(e)
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=VipAndroidManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativePurchases","_interopRequireDefault","require","WeChat","_interopRequireWildcard","_ConfigDataModel","_LoginManager","_Tool","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SERVER_URL","VipAndroidManager","exports","init","_ref","WeChatPayServer","queryOrder","orderId","user","LoginManager","currentUser","rawResponse","fetch","method","headers","body","JSON","stringify","AVUser","order","cmd","res","json","status","error","paid","e","recover","Purchases","invalidateCustomerInfoCache","console","log","errorCode","errorMsg","getPackages","ConfigDataModel","purchase","purchasePackage","_purchasePackage$prod","product","identifier","errCode","errStr","pay","payload","Tool","sleep"],"sources":["VipAndroidManager.ts"],"sourcesContent":["import Purchases, { PurchasesPackage } from 'react-native-purchases';\nimport * as WeChat from 'react-native-wechat-lib';\nimport { ConfigDataModel } from './ConfigDataModel';\nimport { LoginManager } from './LoginManager';\nimport { Tool } from './Tool';\n\nlet SERVER_URL = '';\n\nexport const VipAndroidManager = {\n init: ({ WeChatPayServer }: { WeChatPayServer: string }) => {\n SERVER_URL = WeChatPayServer;\n },\n\n queryOrder: async (orderId?: string) => {\n const user = LoginManager.currentUser();\n // Step1:生成预订单\n try {\n const rawResponse = await fetch(SERVER_URL, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n user: user?.AVUser.get('objectId'),\n order: orderId,\n cmd: 'check',\n }),\n });\n const res = await rawResponse.json();\n // console.log(res);\n if (rawResponse.status === 200 && !res.error) {\n return { paid: res.paid };\n } else {\n return { paid: false, e: res.error };\n }\n } catch (e) {\n return { paid: false, e: e };\n }\n },\n\n recover: async () => {\n const { paid, e } = await VipAndroidManager.queryOrder();\n if (paid && !e) {\n await Purchases.invalidateCustomerInfoCache();\n console.log('恢复成功');\n return { errorCode: 0 };\n } else {\n if (e) {\n console.log('恢复失败(-3)', JSON.stringify(e));\n return { errorCode: -3, errorMsg: JSON.stringify(e) };\n } else {\n console.log('恢复失败(-2)');\n return { errorCode: -2 };\n }\n }\n },\n\n getPackages: () => {\n return ConfigDataModel.get('vip_android_products');\n },\n\n purchase: async (purchasePackage: PurchasesPackage) => {\n try {\n const user = LoginManager.currentUser();\n // Step1:生成预订单\n const rawResponse = await fetch(SERVER_URL, {\n method: 'POST',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n user: user?.AVUser.get('objectId'),\n product: purchasePackage.product?.identifier,\n cmd: 'prepare',\n }),\n });\n const res = await rawResponse.json();\n // console.log(res);\n if (rawResponse.status === 200 && !res.error) {\n // Step2:调用微信支付 SDK\n const { errCode, errStr } = await WeChat.pay(res.payload);\n if (errCode) {\n console.log('购买失败(-5)', errStr);\n return { errorCode: -5, errorMsg: errStr };\n }\n // 虽然没什么问题,但保险起见还是延时下,让后台先更新\n await Tool.sleep(4000);\n // Step3:查询后台\n const { paid, e } = await VipAndroidManager.queryOrder(\n res.payload.order\n );\n if (paid && !e) {\n await Purchases.invalidateCustomerInfoCache();\n return { errorCode: 0 };\n } else {\n console.log('购买失败(-5)', JSON.stringify(e));\n return { errorCode: -5, errorMsg: JSON.stringify(e) };\n }\n } else {\n console.log('购买失败(-5)', JSON.stringify(res?.error));\n return { errorCode: -5, errorMsg: JSON.stringify(res?.error) };\n }\n } catch (e) {\n console.log('购买失败(-5)', JSON.stringify(e));\n return { errorCode: -5, errorMsg: JSON.stringify(e) };\n }\n },\n};\n"],"mappings":"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"}
|