@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.
Files changed (66) hide show
  1. package/lib/commonjs/ConfigDataModel.js +122 -0
  2. package/lib/commonjs/ConfigDataModel.js.map +1 -0
  3. package/lib/commonjs/DevConfig.js +9 -5
  4. package/lib/commonjs/DevConfig.js.map +1 -1
  5. package/lib/commonjs/Frequence.js +67 -0
  6. package/lib/commonjs/Frequence.js.map +1 -0
  7. package/lib/commonjs/LoginManager.js +21 -18
  8. package/lib/commonjs/LoginManager.js.map +1 -1
  9. package/lib/commonjs/MessageModel.js +157 -0
  10. package/lib/commonjs/MessageModel.js.map +1 -0
  11. package/lib/commonjs/PrefData.js +10 -0
  12. package/lib/commonjs/PrefData.js.map +1 -1
  13. package/lib/commonjs/SentryManager.js +3 -3
  14. package/lib/commonjs/SentryManager.js.map +1 -1
  15. package/lib/commonjs/Tool.js +52 -0
  16. package/lib/commonjs/Tool.js.map +1 -0
  17. package/lib/commonjs/VipAndroidManager.js +154 -0
  18. package/lib/commonjs/VipAndroidManager.js.map +1 -0
  19. package/lib/commonjs/VipManager.js +280 -0
  20. package/lib/commonjs/VipManager.js.map +1 -0
  21. package/lib/commonjs/index.js +72 -0
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/module/ConfigDataModel.js +117 -0
  24. package/lib/module/ConfigDataModel.js.map +1 -0
  25. package/lib/module/DevConfig.js +5 -1
  26. package/lib/module/DevConfig.js.map +1 -1
  27. package/lib/module/Frequence.js +61 -0
  28. package/lib/module/Frequence.js.map +1 -0
  29. package/lib/module/LoginManager.js +5 -2
  30. package/lib/module/LoginManager.js.map +1 -1
  31. package/lib/module/MessageModel.js +151 -0
  32. package/lib/module/MessageModel.js.map +1 -0
  33. package/lib/module/PrefData.js +10 -0
  34. package/lib/module/PrefData.js.map +1 -1
  35. package/lib/module/SentryManager.js +1 -1
  36. package/lib/module/SentryManager.js.map +1 -1
  37. package/lib/module/Tool.js +46 -0
  38. package/lib/module/Tool.js.map +1 -0
  39. package/lib/module/VipAndroidManager.js +145 -0
  40. package/lib/module/VipAndroidManager.js.map +1 -0
  41. package/lib/module/VipManager.js +273 -0
  42. package/lib/module/VipManager.js.map +1 -0
  43. package/lib/module/index.js +6 -0
  44. package/lib/module/index.js.map +1 -1
  45. package/lib/typescript/ConfigDataModel.d.ts +17 -0
  46. package/lib/typescript/DevConfig.d.ts +1 -1
  47. package/lib/typescript/Frequence.d.ts +10 -0
  48. package/lib/typescript/LoginManager.d.ts +2 -3
  49. package/lib/typescript/MessageModel.d.ts +26 -0
  50. package/lib/typescript/Tool.d.ts +7 -0
  51. package/lib/typescript/VipAndroidManager.d.ts +28 -0
  52. package/lib/typescript/VipManager.d.ts +29 -0
  53. package/lib/typescript/index.d.ts +6 -0
  54. package/package.json +5 -3
  55. package/src/ConfigDataModel.ts +146 -0
  56. package/src/DevConfig.ts +4 -1
  57. package/src/Frequence.ts +70 -0
  58. package/src/LoginManager.ts +6 -9
  59. package/src/MessageModel.ts +191 -0
  60. package/src/PrefData.ts +10 -0
  61. package/src/SentryManager.ts +2 -1
  62. package/src/Tool.ts +64 -0
  63. package/src/VipAndroidManager.ts +110 -0
  64. package/src/VipManager.ts +282 -0
  65. package/src/index.tsx +6 -0
  66. package/ios/ReactNativeToolkit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ConfigDataModel = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _reactNativeDeviceInfo = require("react-native-device-info");
9
+ var _DevConfig = require("./DevConfig");
10
+ var _PrefData = require("./PrefData");
11
+ var _VipManager = require("./VipManager");
12
+ const EventEmitter = require('events').EventEmitter;
13
+ const eventEmitter = new EventEmitter();
14
+ const semverGt = require('semver/functions/gt');
15
+ const semverGte = require('semver/functions/gte');
16
+ const semverCoerce = require('semver/functions/coerce');
17
+ let MyItems = {};
18
+ let VersionInfo = {
19
+ currentVersion: semverCoerce((0, _reactNativeDeviceInfo.getReadableVersion)()).version,
20
+ latestVersion: semverCoerce((0, _reactNativeDeviceInfo.getReadableVersion)()).version,
21
+ isDanger: true,
22
+ hasNewVersion: false
23
+ };
24
+ const AV = require('leancloud-storage');
25
+ const _filterByVersion = items => {
26
+ let ret = [];
27
+ const curVer = semverCoerce((0, _reactNativeDeviceInfo.getReadableVersion)()).version;
28
+ for (const item of items) {
29
+ var _item$get, _item$get2;
30
+ const minVer = (_item$get = item.get('minVer')) === null || _item$get === void 0 ? void 0 : _item$get.trim();
31
+ const maxVer = (_item$get2 = item.get('maxVer')) === null || _item$get2 === void 0 ? void 0 : _item$get2.trim();
32
+ // 确保 cur 处于 [minVer, maxVer)
33
+ if (minVer !== null && minVer !== void 0 && minVer.length && semverGt(semverCoerce(minVer).version, curVer)) {
34
+ continue;
35
+ }
36
+ if (maxVer !== null && maxVer !== void 0 && maxVer.length && semverGte(curVer, semverCoerce(maxVer).version)) {
37
+ continue;
38
+ }
39
+ ret.push(item);
40
+ }
41
+ return ret;
42
+ };
43
+ const _filterByVip = items => {
44
+ let ret = [];
45
+ const isVip = _VipManager.VipManager.isVip();
46
+ const isForeverVip = _VipManager.VipManager.isForeverVip();
47
+ for (const item of items) {
48
+ const vipFilter = item.get('vipFilter');
49
+ if (vipFilter === 0 || vipFilter === 1 && !isVip || vipFilter === 2 && !isForeverVip) {
50
+ ret.push(item);
51
+ }
52
+ }
53
+ return ret;
54
+ };
55
+ const _updateKeyValues = items => {
56
+ for (const item of items) {
57
+ let value = item.get('value');
58
+ if (typeof value === 'string') {
59
+ // 因为 leancloud 无法配置空白内容,所以 trim 下,这样就能以空格代替空白{
60
+ value = value.trim();
61
+ }
62
+ MyItems[item.get('key')] = value;
63
+ }
64
+ };
65
+ const handleVersionInfo = () => {
66
+ // online > current,则更新 latestVersion
67
+ let key = 'ov';
68
+ if (_reactNative.Platform.OS === 'android') {
69
+ key = 'aov';
70
+ }
71
+ const configVersion = ConfigDataModel.get(key);
72
+ if (configVersion) {
73
+ if (semverGt(semverCoerce(configVersion).version, VersionInfo.latestVersion)) {
74
+ VersionInfo.latestVersion = semverCoerce(configVersion).version;
75
+ VersionInfo.hasNewVersion = true;
76
+ }
77
+ // current <= online,才安全 ,防止忘记修改 online
78
+ if (!semverGt(VersionInfo.currentVersion, semverCoerce(configVersion).version)) {
79
+ VersionInfo.isDanger = false;
80
+ }
81
+ }
82
+ if (__DEV__) {
83
+ if (_DevConfig.DevConfig.hasValue(_PrefData.BuildInPrefs.DevDanger)) {
84
+ VersionInfo.isDanger = _DevConfig.DevConfig.getValue(_PrefData.BuildInPrefs.DevDanger);
85
+ }
86
+ }
87
+ };
88
+ const ConfigDataModel = exports.ConfigDataModel = {
89
+ init: defaultValues => {
90
+ MyItems = defaultValues;
91
+ },
92
+ fetch: () => {
93
+ const query = new AV.Query('Configs');
94
+ query.equalTo('valid', true).equalTo(_reactNative.Platform.OS, true);
95
+ query.find().then(items => {
96
+ // 根据版本过滤
97
+ items = _filterByVersion(items);
98
+ // 根据 VIP 状态过滤
99
+ items = _filterByVip(items);
100
+ _updateKeyValues(items);
101
+ // 处理 Version 信息
102
+ handleVersionInfo();
103
+ console.log('Config 抓取完毕');
104
+ ConfigDataModel.emitChange();
105
+ }).catch(e => {
106
+ console.error(e);
107
+ });
108
+ },
109
+ getVersionConfig: () => {
110
+ return VersionInfo;
111
+ },
112
+ get: key => {
113
+ return MyItems[key];
114
+ },
115
+ emitChange: () => {
116
+ eventEmitter.emit('change');
117
+ },
118
+ addListenerOnce: callback => {
119
+ eventEmitter.once('change', callback);
120
+ }
121
+ };
122
+ //# sourceMappingURL=ConfigDataModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_DevConfig","_PrefData","_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","length","push","_filterByVip","isVip","VipManager","isForeverVip","vipFilter","_updateKeyValues","value","handleVersionInfo","key","Platform","OS","configVersion","ConfigDataModel","__DEV__","DevConfig","hasValue","BuildInPrefs","DevDanger","getValue","exports","init","defaultValues","fetch","query","Query","equalTo","find","then","console","log","emitChange","catch","e","error","getVersionConfig","emit","addListenerOnce","callback","once"],"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 { BuildInPrefs } from './PrefData';\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: true,\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?.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: 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 if (\n semverGt(semverCoerce(configVersion).version, VersionInfo.latestVersion)\n ) {\n VersionInfo.latestVersion = semverCoerce(configVersion).version;\n\n VersionInfo.hasNewVersion = true;\n }\n // current <= online,才安全 ,防止忘记修改 online\n if (\n !semverGt(VersionInfo.currentVersion, semverCoerce(configVersion).version)\n ) {\n VersionInfo.isDanger = false;\n }\n }\n\n if (__DEV__) {\n if (DevConfig.hasValue(BuildInPrefs.DevDanger)) {\n VersionInfo.isDanger = DevConfig.getValue(BuildInPrefs.DevDanger);\n }\n }\n};\n\nconst ConfigDataModel = {\n init: (defaultValues: ConfigsType) => {\n MyItems = defaultValues;\n },\n fetch: () => {\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 // 根据版本过滤\n items = _filterByVersion(items);\n // 根据 VIP 状态过滤\n items = _filterByVip(items);\n _updateKeyValues(items);\n // 处理 Version 信息\n handleVersionInfo();\n console.log('Config 抓取完毕');\n ConfigDataModel.emitChange();\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 eventEmitter.once('change', callback);\n },\n};\n\nexport { ConfigDataModel };\n"],"mappings":"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"}
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.DevConfig = void 0;
7
- var _reactNativeToolkit = require("@norcy/react-native-toolkit");
7
+ var _PrefData = require("./PrefData");
8
8
  let DevConfigs = {};
9
9
  if (__DEV__) {
10
- DevConfigs[_reactNativeToolkit.BuildInPrefs.DevVip.key] = [{
10
+ DevConfigs[_PrefData.BuildInPrefs.DevVip.key] = [{
11
11
  label: '默认',
12
12
  value: 0
13
13
  }, {
@@ -19,7 +19,7 @@ if (__DEV__) {
19
19
  value: 2,
20
20
  extra: false
21
21
  }];
22
- DevConfigs[_reactNativeToolkit.BuildInPrefs.DevDanger.key] = [{
22
+ DevConfigs[_PrefData.BuildInPrefs.DevDanger.key] = [{
23
23
  label: '默认',
24
24
  value: 0
25
25
  }, {
@@ -44,14 +44,18 @@ const DevConfig = exports.DevConfig = {
44
44
  return false;
45
45
  }
46
46
  // 潜规则,0 表示没配置,走默认
47
- const value = _reactNativeToolkit.PrefData.getValue(pref);
47
+ const value = _PrefData.PrefData.getValue(pref);
48
48
  return value > 0;
49
49
  },
50
50
  getValue: pref => {
51
- const index = _reactNativeToolkit.PrefData.getValue(pref);
51
+ const index = _PrefData.PrefData.getValue(pref);
52
52
  return DevConfigs[pref.key][index].extra;
53
53
  },
54
54
  getConfig: pref => {
55
+ var _pref$key;
56
+ if ((pref === null || pref === void 0 || (_pref$key = pref.key) === null || _pref$key === void 0 ? void 0 : _pref$key.length) === 0) {
57
+ return [];
58
+ }
55
59
  return DevConfigs[pref.key];
56
60
  }
57
61
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeToolkit","require","DevConfigs","__DEV__","BuildInPrefs","DevVip","key","label","value","extra","DevDanger","DevConfig","exports","setup","initConfigs","hasValue","pref","PrefData","getValue","index","getConfig"],"sources":["DevConfig.ts"],"sourcesContent":["import { BuildInPrefs, PrefData, PrefType } from '@norcy/react-native-toolkit';\n\nexport interface DevConfigType {\n label: string;\n value: number;\n extra?: any;\n}\n\nexport interface DevConfigsType {\n [key: string]: DevConfigType[];\n}\n\nlet DevConfigs: DevConfigsType = {};\n\nif (__DEV__) {\n DevConfigs[BuildInPrefs.DevVip.key] = [\n { label: '默认', value: 0 },\n { label: '强制 true', value: 1, extra: true },\n { label: '强制 false', value: 2, extra: false },\n ];\n\n DevConfigs[BuildInPrefs.DevDanger.key] = [\n { label: '默认', value: 0 },\n { label: '强制 danger', value: 1, extra: true },\n { label: '强制 safe', value: 2, extra: false },\n ];\n}\n\nexport const DevConfig = {\n setup: (initConfigs: DevConfigsType) => {\n DevConfigs = { ...DevConfigs, ...initConfigs };\n },\n\n hasValue: (pref: PrefType) => {\n if (!__DEV__) {\n return false;\n }\n // 潜规则,0 表示没配置,走默认\n const value = PrefData.getValue(pref);\n return value > 0;\n },\n\n getValue: (pref: PrefType) => {\n const index = PrefData.getValue(pref);\n return DevConfigs[pref.key][index].extra;\n },\n\n getConfig: (pref: PrefType) => {\n return DevConfigs[pref.key];\n },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAYA,IAAIC,UAA0B,GAAG,CAAC,CAAC;AAEnC,IAAIC,OAAO,EAAE;EACXD,UAAU,CAACE,gCAAY,CAACC,MAAM,CAACC,GAAG,CAAC,GAAG,CACpC;IAAEC,KAAK,EAAE,IAAI;IAAEC,KAAK,EAAE;EAAE,CAAC,EACzB;IAAED,KAAK,EAAE,SAAS;IAAEC,KAAK,EAAE,CAAC;IAAEC,KAAK,EAAE;EAAK,CAAC,EAC3C;IAAEF,KAAK,EAAE,UAAU;IAAEC,KAAK,EAAE,CAAC;IAAEC,KAAK,EAAE;EAAM,CAAC,CAC9C;EAEDP,UAAU,CAACE,gCAAY,CAACM,SAAS,CAACJ,GAAG,CAAC,GAAG,CACvC;IAAEC,KAAK,EAAE,IAAI;IAAEC,KAAK,EAAE;EAAE,CAAC,EACzB;IAAED,KAAK,EAAE,WAAW;IAAEC,KAAK,EAAE,CAAC;IAAEC,KAAK,EAAE;EAAK,CAAC,EAC7C;IAAEF,KAAK,EAAE,SAAS;IAAEC,KAAK,EAAE,CAAC;IAAEC,KAAK,EAAE;EAAM,CAAC,CAC7C;AACH;AAEO,MAAME,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACvBE,KAAK,EAAGC,WAA2B,IAAK;IACtCZ,UAAU,GAAG;MAAE,GAAGA,UAAU;MAAE,GAAGY;IAAY,CAAC;EAChD,CAAC;EAEDC,QAAQ,EAAGC,IAAc,IAAK;IAC5B,IAAI,CAACb,OAAO,EAAE;MACZ,OAAO,KAAK;IACd;IACA;IACA,MAAMK,KAAK,GAAGS,4BAAQ,CAACC,QAAQ,CAACF,IAAI,CAAC;IACrC,OAAOR,KAAK,GAAG,CAAC;EAClB,CAAC;EAEDU,QAAQ,EAAGF,IAAc,IAAK;IAC5B,MAAMG,KAAK,GAAGF,4BAAQ,CAACC,QAAQ,CAACF,IAAI,CAAC;IACrC,OAAOd,UAAU,CAACc,IAAI,CAACV,GAAG,CAAC,CAACa,KAAK,CAAC,CAACV,KAAK;EAC1C,CAAC;EAEDW,SAAS,EAAGJ,IAAc,IAAK;IAC7B,OAAOd,UAAU,CAACc,IAAI,CAACV,GAAG,CAAC;EAC7B;AACF,CAAC"}
1
+ {"version":3,"names":["_PrefData","require","DevConfigs","__DEV__","BuildInPrefs","DevVip","key","label","value","extra","DevDanger","DevConfig","exports","setup","initConfigs","hasValue","pref","PrefData","getValue","index","getConfig","_pref$key","length"],"sources":["DevConfig.ts"],"sourcesContent":["import { BuildInPrefs, PrefData, PrefType } from './PrefData';\n\nexport interface DevConfigType {\n label: string;\n value: number;\n extra?: any;\n}\n\nexport interface DevConfigsType {\n [key: string]: DevConfigType[];\n}\n\nlet DevConfigs: DevConfigsType = {};\n\nif (__DEV__) {\n DevConfigs[BuildInPrefs.DevVip.key] = [\n { label: '默认', value: 0 },\n { label: '强制 true', value: 1, extra: true },\n { label: '强制 false', value: 2, extra: false },\n ];\n\n DevConfigs[BuildInPrefs.DevDanger.key] = [\n { label: '默认', value: 0 },\n { label: '强制 danger', value: 1, extra: true },\n { label: '强制 safe', value: 2, extra: false },\n ];\n}\n\nexport const DevConfig = {\n setup: (initConfigs: DevConfigsType) => {\n DevConfigs = { ...DevConfigs, ...initConfigs };\n },\n\n hasValue: (pref: PrefType) => {\n if (!__DEV__) {\n return false;\n }\n // 潜规则,0 表示没配置,走默认\n const value = PrefData.getValue(pref);\n return value > 0;\n },\n\n getValue: (pref: PrefType) => {\n const index = PrefData.getValue(pref);\n return DevConfigs[pref.key][index].extra;\n },\n\n getConfig: (pref: PrefType) => {\n if (pref?.key?.length === 0) {\n return [];\n }\n return DevConfigs[pref.key];\n },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAYA,IAAIC,UAA0B,GAAG,CAAC,CAAC;AAEnC,IAAIC,OAAO,EAAE;EACXD,UAAU,CAACE,sBAAY,CAACC,MAAM,CAACC,GAAG,CAAC,GAAG,CACpC;IAAEC,KAAK,EAAE,IAAI;IAAEC,KAAK,EAAE;EAAE,CAAC,EACzB;IAAED,KAAK,EAAE,SAAS;IAAEC,KAAK,EAAE,CAAC;IAAEC,KAAK,EAAE;EAAK,CAAC,EAC3C;IAAEF,KAAK,EAAE,UAAU;IAAEC,KAAK,EAAE,CAAC;IAAEC,KAAK,EAAE;EAAM,CAAC,CAC9C;EAEDP,UAAU,CAACE,sBAAY,CAACM,SAAS,CAACJ,GAAG,CAAC,GAAG,CACvC;IAAEC,KAAK,EAAE,IAAI;IAAEC,KAAK,EAAE;EAAE,CAAC,EACzB;IAAED,KAAK,EAAE,WAAW;IAAEC,KAAK,EAAE,CAAC;IAAEC,KAAK,EAAE;EAAK,CAAC,EAC7C;IAAEF,KAAK,EAAE,SAAS;IAAEC,KAAK,EAAE,CAAC;IAAEC,KAAK,EAAE;EAAM,CAAC,CAC7C;AACH;AAEO,MAAME,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG;EACvBE,KAAK,EAAGC,WAA2B,IAAK;IACtCZ,UAAU,GAAG;MAAE,GAAGA,UAAU;MAAE,GAAGY;IAAY,CAAC;EAChD,CAAC;EAEDC,QAAQ,EAAGC,IAAc,IAAK;IAC5B,IAAI,CAACb,OAAO,EAAE;MACZ,OAAO,KAAK;IACd;IACA;IACA,MAAMK,KAAK,GAAGS,kBAAQ,CAACC,QAAQ,CAACF,IAAI,CAAC;IACrC,OAAOR,KAAK,GAAG,CAAC;EAClB,CAAC;EAEDU,QAAQ,EAAGF,IAAc,IAAK;IAC5B,MAAMG,KAAK,GAAGF,kBAAQ,CAACC,QAAQ,CAACF,IAAI,CAAC;IACrC,OAAOd,UAAU,CAACc,IAAI,CAACV,GAAG,CAAC,CAACa,KAAK,CAAC,CAACV,KAAK;EAC1C,CAAC;EAEDW,SAAS,EAAGJ,IAAc,IAAK;IAAA,IAAAK,SAAA;IAC7B,IAAI,CAAAL,IAAI,aAAJA,IAAI,gBAAAK,SAAA,GAAJL,IAAI,CAAEV,GAAG,cAAAe,SAAA,uBAATA,SAAA,CAAWC,MAAM,MAAK,CAAC,EAAE;MAC3B,OAAO,EAAE;IACX;IACA,OAAOpB,UAAU,CAACc,IAAI,CAACV,GAAG,CAAC;EAC7B;AACF,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FrequenceManager = void 0;
7
+ var _PrefData = require("./PrefData");
8
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
10
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
+ class FreConfigValueType {
12
+ // 实际展示的次数,配合 limit 计算
13
+ constructor() {
14
+ _defineProperty(this, "lastTimestamp", void 0);
15
+ // 上一次展示的时间,配合 gap 计算
16
+ _defineProperty(this, "count", void 0);
17
+ this.count = 0;
18
+ this.lastTimestamp = 0;
19
+ }
20
+ }
21
+ const now = () => {
22
+ return new Date().getTime() / 1000;
23
+ };
24
+ const FrequenceManager = exports.FrequenceManager = {
25
+ canRun: config => {
26
+ var _PrefData$getValue, _config$limit, _config$limit2, _config$gap, _config$gap2;
27
+ const configs = (_PrefData$getValue = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue !== void 0 ? _PrefData$getValue : {};
28
+ if (!configs[config.key]) {
29
+ configs[config.key] = new FreConfigValueType();
30
+ }
31
+ const configValue = configs[config.key];
32
+
33
+ // 优先判断 Count
34
+ if (((_config$limit = config.limit) !== null && _config$limit !== void 0 ? _config$limit : 0) > 0 && configValue.count >= ((_config$limit2 = config.limit) !== null && _config$limit2 !== void 0 ? _config$limit2 : 0)) {
35
+ console.log('[Frequence] 次数限制', configValue, config);
36
+ return false;
37
+ }
38
+ // 再判断 Time
39
+ if (((_config$gap = config.gap) !== null && _config$gap !== void 0 ? _config$gap : 0) > 0 && now() - configValue.lastTimestamp < ((_config$gap2 = config.gap) !== null && _config$gap2 !== void 0 ? _config$gap2 : 0)) {
40
+ console.log('[Frequence] 时间限制', configValue, config);
41
+ return false;
42
+ }
43
+ console.log('[Frequence] 无限制', configValue, config);
44
+ return true;
45
+ },
46
+ markFinishForCount: config => {
47
+ var _PrefData$getValue2;
48
+ const configs = (_PrefData$getValue2 = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue2 !== void 0 ? _PrefData$getValue2 : {};
49
+ if (!configs[config.key]) {
50
+ configs[config.key] = new FreConfigValueType();
51
+ }
52
+ configs[config.key].count++;
53
+ // console.log('[Frequence] mark finish', configs[config.key]);
54
+ _PrefData.PrefData.setValue(_PrefData.BuildInPrefs.FrequenceConfig, configs);
55
+ },
56
+ markFinishForTime: configKey => {
57
+ var _PrefData$getValue3;
58
+ const configs = (_PrefData$getValue3 = _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.FrequenceConfig)) !== null && _PrefData$getValue3 !== void 0 ? _PrefData$getValue3 : {};
59
+ if (!configs[configKey]) {
60
+ configs[configKey] = new FreConfigValueType();
61
+ }
62
+ configs[configKey].lastTimestamp = now();
63
+ // console.log('[Frequence] mark finish', configs[config.key]);
64
+ _PrefData.PrefData.setValue(_PrefData.BuildInPrefs.FrequenceConfig, configs);
65
+ }
66
+ };
67
+ //# sourceMappingURL=Frequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_PrefData","require","_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","FreConfigValueType","constructor","count","lastTimestamp","now","Date","getTime","FrequenceManager","exports","canRun","config","_PrefData$getValue","_config$limit","_config$limit2","_config$gap","_config$gap2","configs","PrefData","getValue","BuildInPrefs","FrequenceConfig","configValue","limit","console","log","gap","markFinishForCount","_PrefData$getValue2","setValue","markFinishForTime","configKey","_PrefData$getValue3"],"sources":["Frequence.ts"],"sourcesContent":["import { BuildInPrefs, PrefData } from './PrefData';\n\nexport interface FreConfigType {\n key: string;\n limit?: number; // 0 表示无限次提示\n gap?: number; // 单位:秒;0 表示不间断提示\n}\n\nclass FreConfigValueType {\n lastTimestamp: number; // 上一次展示的时间,配合 gap 计算\n count: number; // 实际展示的次数,配合 limit 计算\n constructor() {\n this.count = 0;\n this.lastTimestamp = 0;\n }\n}\n\nconst now = () => {\n return new Date().getTime() / 1000;\n};\n\nexport const FrequenceManager = {\n canRun: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n const configValue: FreConfigValueType = configs[config.key];\n\n // 优先判断 Count\n if ((config.limit ?? 0) > 0 && configValue.count >= (config.limit ?? 0)) {\n console.log('[Frequence] 次数限制', configValue, config);\n return false;\n }\n // 再判断 Time\n if (\n (config.gap ?? 0) > 0 &&\n now() - configValue.lastTimestamp < (config.gap ?? 0)\n ) {\n console.log('[Frequence] 时间限制', configValue, config);\n return false;\n }\n\n console.log('[Frequence] 无限制', configValue, config);\n return true;\n },\n\n markFinishForCount: (config: FreConfigType) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[config.key]) {\n configs[config.key] = new FreConfigValueType();\n }\n configs[config.key].count++;\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n\n markFinishForTime: (configKey: string) => {\n const configs: { [key: string]: FreConfigValueType } =\n PrefData.getValue(BuildInPrefs.FrequenceConfig) ?? {};\n if (!configs[configKey]) {\n configs[configKey] = new FreConfigValueType();\n }\n configs[configKey].lastTimestamp = now();\n // console.log('[Frequence] mark finish', configs[config.key]);\n PrefData.setValue(BuildInPrefs.FrequenceConfig, configs);\n },\n};\n"],"mappings":"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"}
@@ -4,9 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.LoginManager = void 0;
7
- var _reactNativeToolkit = require("@norcy/react-native-toolkit");
8
7
  var _reactNative = require("react-native");
9
8
  var _reactNativeDeviceInfo = require("react-native-device-info");
9
+ var _AppleLoginUtil = require("./AppleLoginUtil");
10
+ var _Notification = require("./Notification");
11
+ var _PrefData = require("./PrefData");
12
+ var _WeChatLoginUtil = require("./WeChatLoginUtil");
10
13
  var _constant = require("./constant");
11
14
  const AV = require('leancloud-storage');
12
15
  let CURRENT_USER = null;
@@ -35,19 +38,19 @@ const onLoginFinish = _ref => {
35
38
  code
36
39
  };
37
40
  if (user) {
38
- _reactNativeToolkit.PrefData.setValue(_reactNativeToolkit.BuildInPrefs.LastLoginType, user.type);
41
+ _PrefData.PrefData.setValue(_PrefData.BuildInPrefs.LastLoginType, user.type);
39
42
  }
40
- _reactNativeToolkit.Notification.postNotification('onLogin', data);
43
+ _Notification.Notification.postNotification('onLogin', data);
41
44
  };
42
45
  const doLeanCloudLogin = async (authData, userData, callback) => {
43
46
  console.log('Lean Cloud 开始登录', userData);
44
47
  // loginType 空说明是老用户
45
48
  const loginType = authData.loginType ? authData.loginType : 'apple';
46
- let loginTypeNum = _reactNativeToolkit.LoginType.LoginTypeApple;
49
+ let loginTypeNum = _constant.LoginType.LoginTypeApple;
47
50
  if (loginType === 'wechat') {
48
- loginTypeNum = _reactNativeToolkit.LoginType.LoginTypeWeChat;
51
+ loginTypeNum = _constant.LoginType.LoginTypeWeChat;
49
52
  } else if (loginType === 'visitor') {
50
- loginTypeNum = _reactNativeToolkit.LoginType.LoginTypeVisitor;
53
+ loginTypeNum = _constant.LoginType.LoginTypeVisitor;
51
54
  }
52
55
  AV.User.loginWithAuthData(authData, loginType, {
53
56
  failOnNotExist: true
@@ -157,14 +160,14 @@ const LoginManager = exports.LoginManager = {
157
160
  return;
158
161
  }
159
162
  }
160
- if (type === _reactNativeToolkit.LoginType.LoginTypeApple) {
163
+ if (type === _constant.LoginType.LoginTypeApple) {
161
164
  const {
162
165
  user,
163
166
  email,
164
167
  identityToken,
165
168
  error,
166
169
  code
167
- } = await _reactNativeToolkit.AppleLoginUtil.requestAppleUserForLogin();
170
+ } = await _AppleLoginUtil.AppleLoginUtil.requestAppleUserForLogin();
168
171
  if (!user || error) {
169
172
  onLoginFinish({
170
173
  error,
@@ -182,7 +185,7 @@ const LoginManager = exports.LoginManager = {
182
185
  loginType: 'apple'
183
186
  }
184
187
  };
185
- _reactNativeToolkit.AppleLoginUtil.fetchAndUpdateCredentialState(userData.userId, _ref3 => {
188
+ _AppleLoginUtil.AppleLoginUtil.fetchAndUpdateCredentialState(userData.userId, _ref3 => {
186
189
  let {
187
190
  result,
188
191
  error: error2
@@ -206,8 +209,8 @@ const LoginManager = exports.LoginManager = {
206
209
  }
207
210
  });
208
211
  }
209
- } else if (type === _reactNativeToolkit.LoginType.LoginTypeWeChat) {
210
- _reactNativeToolkit.WeChatLoginUtil.doLogin(WeiXinId, WeiXinSecret, _ref5 => {
212
+ } else if (type === _constant.LoginType.LoginTypeWeChat) {
213
+ _WeChatLoginUtil.WeChatLoginUtil.doLogin(WeiXinId, WeiXinSecret, _ref5 => {
211
214
  let {
212
215
  nickname,
213
216
  headimgurl,
@@ -244,7 +247,7 @@ const LoginManager = exports.LoginManager = {
244
247
  });
245
248
  }
246
249
  });
247
- } else if (type === _reactNativeToolkit.LoginType.LoginTypeVisitor) {
250
+ } else if (type === _constant.LoginType.LoginTypeVisitor) {
248
251
  const uniqueId = (0, _reactNativeDeviceInfo.getUniqueIdSync)();
249
252
  console.log(uniqueId);
250
253
  let userData = {
@@ -278,14 +281,14 @@ const LoginManager = exports.LoginManager = {
278
281
  AV.User.logOut();
279
282
  CURRENT_USER = null;
280
283
  callback && callback();
281
- _reactNativeToolkit.Notification.postNotification('onLogout');
284
+ _Notification.Notification.postNotification('onLogout');
282
285
  },
283
286
  isLogin: () => {
284
287
  return LoginManager.currentUser() != null;
285
288
  },
286
289
  isVisitor: () => {
287
290
  var _LoginManager$current;
288
- return LoginManager.isLogin() && ((_LoginManager$current = LoginManager.currentUser()) === null || _LoginManager$current === void 0 ? void 0 : _LoginManager$current.type) === _reactNativeToolkit.LoginType.LoginTypeVisitor;
291
+ return LoginManager.isLogin() && ((_LoginManager$current = LoginManager.currentUser()) === null || _LoginManager$current === void 0 ? void 0 : _LoginManager$current.type) === _constant.LoginType.LoginTypeVisitor;
289
292
  },
290
293
  currentUser: () => {
291
294
  // console.log('current user is ', CURRENT_USER);
@@ -323,8 +326,8 @@ const LoginManager = exports.LoginManager = {
323
326
  if (!CURRENT_USER) {
324
327
  return;
325
328
  }
326
- if (CURRENT_USER.type === _reactNativeToolkit.LoginType.LoginTypeApple) {
327
- await _reactNativeToolkit.AppleLoginUtil.requestDeleteAccount();
329
+ if (CURRENT_USER.type === _constant.LoginType.LoginTypeApple) {
330
+ await _AppleLoginUtil.AppleLoginUtil.requestDeleteAccount();
328
331
  }
329
332
  const user = await AV.User.currentAsync();
330
333
  console.log('get user success');
@@ -337,10 +340,10 @@ const LoginManager = exports.LoginManager = {
337
340
  }
338
341
  },
339
342
  lastLoginType: () => {
340
- return _reactNativeToolkit.PrefData.getValue(_reactNativeToolkit.BuildInPrefs.LastLoginType);
343
+ return _PrefData.PrefData.getValue(_PrefData.BuildInPrefs.LastLoginType);
341
344
  },
342
345
  fetchWeChatAvatar: callback => {
343
- _reactNativeToolkit.WeChatLoginUtil.doLogin(WeiXinId, WeiXinSecret, _ref8 => {
346
+ _WeChatLoginUtil.WeChatLoginUtil.doLogin(WeiXinId, WeiXinSecret, _ref8 => {
344
347
  let {
345
348
  headimgurl
346
349
  } = _ref8;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeToolkit","require","_reactNative","_reactNativeDeviceInfo","_constant","AV","CURRENT_USER","WeiXinId","WeiXinSecret","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","PrefData","setValue","BuildInPrefs","LastLoginType","Notification","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginType","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","Platform","OS","isNew","error2","LoginManager","exports","setup","WeChatId","WeChatSecret","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","_ref5","unionid","_ref6","uniqueId","getUniqueIdSync","_ref7","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","fetchWeChatAvatar","_ref8"],"sources":["LoginManager.ts"],"sourcesContent":["import {\n AppleLoginUtil,\n BuildInPrefs,\n LoginType,\n Notification,\n PrefData,\n WeChatLoginUtil,\n} from '@norcy/react-native-toolkit';\nimport { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginUserDataType,\n UserType,\n} from './constant';\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nlet WeiXinId = '';\nlet WeiXinSecret = '';\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: number;\n}) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.set('toLDB', 1);\n newUser.loginWithAuthData(authData, loginType).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 注册成功');\n CURRENT_USER = AVUserToLocalUser(user);\n CURRENT_USER.isNew = true;\n // 标记为当前用户是在本机注册的 TODO\n // PrefData.setValue(Prefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nexport const LoginManager = {\n setup: (WeChatId: string, WeChatSecret: string) => {\n WeiXinId = WeChatId;\n WeiXinSecret = WeChatSecret;\n },\n\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.LoginTypeVisitor) {\n const uniqueId = getUniqueIdSync();\n console.log(uniqueId);\n let userData = {\n nickname: 'Visitor',\n authData: {\n openid: uniqueId,\n access_token: uniqueId,\n expires_in: 99999999,\n loginType: 'visitor',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(userData.authData, userData, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n } else {\n onLoginFinish({ error: 'Unknown Login Type' });\n }\n },\n\n logOut: (callback: Function) => {\n console.log('onLogout');\n AV.User.logOut();\n CURRENT_USER = null;\n callback && callback();\n Notification.postNotification('onLogout');\n },\n\n isLogin: () => {\n return LoginManager.currentUser() != null;\n },\n\n isVisitor: () => {\n return (\n LoginManager.isLogin() &&\n LoginManager.currentUser()?.type === LoginType.LoginTypeVisitor\n );\n },\n\n currentUser: () => {\n // console.log('current user is ', CURRENT_USER);\n return CURRENT_USER;\n },\n\n batchUpdateUser: async (\n keys: string[],\n values: string[],\n callback?: Function\n ) => {\n console.log('Batch Update User Begin: ' + keys + ' ' + values);\n const user = await AV.User.currentAsync();\n if (!user) {\n return;\n }\n const oldValues = [];\n for (let i = 0; i < keys.length; i++) {\n oldValues.push(user.get(keys[i]));\n user.set(keys[i], values[i]);\n }\n try {\n const newUser = await user.save();\n CURRENT_USER = AVUserToLocalUser(newUser);\n console.log('Batch Update User End', user);\n callback && callback();\n } catch (e) {\n console.error(e);\n for (let i = 0; i < keys.length; i++) {\n user.set(keys[i], oldValues[i]);\n }\n callback && callback(e);\n }\n },\n\n updateUser: (key: string, value: string, callback?: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n fetchWeChatAvatar: (callback: Function) => {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_AppleLoginUtil","_Notification","_PrefData","_WeChatLoginUtil","_constant","AV","CURRENT_USER","WeiXinId","WeiXinSecret","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","PrefData","setValue","BuildInPrefs","LastLoginType","Notification","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginType","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","Platform","OS","isNew","error2","LoginManager","exports","setup","WeChatId","WeChatSecret","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","_ref5","unionid","_ref6","uniqueId","getUniqueIdSync","_ref7","logOut","isLogin","currentUser","isVisitor","_LoginManager$current","batchUpdateUser","keys","values","oldValues","i","push","save","e","updateUser","key","value","deleteUser","requestDeleteAccount","destroy","lastLoginType","getValue","fetchWeChatAvatar","_ref8"],"sources":["LoginManager.ts"],"sourcesContent":["import { User } from 'leancloud-storage';\nimport { Platform } from 'react-native';\nimport { getUniqueIdSync } from 'react-native-device-info';\nimport { AppleLoginUtil } from './AppleLoginUtil';\nimport { Notification } from './Notification';\nimport { BuildInPrefs, PrefData } from './PrefData';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nlet WeiXinId = '';\nlet WeiXinSecret = '';\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: number;\n}) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.set('toLDB', 1);\n newUser.loginWithAuthData(authData, loginType).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 注册成功');\n CURRENT_USER = AVUserToLocalUser(user);\n CURRENT_USER.isNew = true;\n // 标记为当前用户是在本机注册的 TODO\n // PrefData.setValue(Prefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nexport const LoginManager = {\n setup: (WeChatId: string, WeChatSecret: string) => {\n WeiXinId = WeChatId;\n WeiXinSecret = WeChatSecret;\n },\n\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.LoginTypeVisitor) {\n const uniqueId = getUniqueIdSync();\n console.log(uniqueId);\n let userData = {\n nickname: 'Visitor',\n authData: {\n openid: uniqueId,\n access_token: uniqueId,\n expires_in: 99999999,\n loginType: 'visitor',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(userData.authData, userData, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n } else {\n onLoginFinish({ error: 'Unknown Login Type' });\n }\n },\n\n logOut: (callback: Function) => {\n console.log('onLogout');\n AV.User.logOut();\n CURRENT_USER = null;\n callback && callback();\n Notification.postNotification('onLogout');\n },\n\n isLogin: () => {\n return LoginManager.currentUser() != null;\n },\n\n isVisitor: () => {\n return (\n LoginManager.isLogin() &&\n LoginManager.currentUser()?.type === LoginType.LoginTypeVisitor\n );\n },\n\n currentUser: () => {\n // console.log('current user is ', CURRENT_USER);\n return CURRENT_USER;\n },\n\n batchUpdateUser: async (\n keys: string[],\n values: (string | Date)[],\n callback?: Function\n ) => {\n console.log('Batch Update User Begin: ' + keys + ' ' + values);\n const user = await AV.User.currentAsync();\n if (!user) {\n return;\n }\n const oldValues = [];\n for (let i = 0; i < keys.length; i++) {\n oldValues.push(user.get(keys[i]));\n user.set(keys[i], values[i]);\n }\n try {\n const newUser = await user.save();\n CURRENT_USER = AVUserToLocalUser(newUser);\n console.log('Batch Update User End', user);\n callback && callback();\n } catch (e) {\n console.error(e);\n for (let i = 0; i < keys.length; i++) {\n user.set(keys[i], oldValues[i]);\n }\n callback && callback(e);\n }\n },\n\n updateUser: (key: string, value: string, callback?: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n fetchWeChatAvatar: (callback: Function) => {\n WeChatLoginUtil.doLogin(\n WeiXinId,\n WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n"],"mappings":"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"}