@norcy/react-native-toolkit 0.1.41 → 0.1.43
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/.DS_Store +0 -0
- package/.circleci/config.yml +98 -0
- package/.editorconfig +15 -0
- package/.gitattributes +3 -0
- package/.gitignore +60 -0
- package/.prettierrc +8 -0
- package/.vscode/settings.json +9 -0
- package/.watchmanconfig +6 -0
- package/README.md +63 -12
- package/babel.config.js +3 -0
- package/ios/.DS_Store +0 -0
- package/lib/commonjs/LoginManager.js +0 -1
- package/lib/commonjs/LoginManager.js.map +1 -1
- package/lib/commonjs/SentryManager.js +2 -1
- package/lib/commonjs/SentryManager.js.map +1 -1
- package/lib/commonjs/Tool.js.map +1 -1
- package/lib/commonjs/VipManager.js +0 -3
- package/lib/commonjs/VipManager.js.map +1 -1
- package/lib/module/LoginManager.js +0 -1
- package/lib/module/LoginManager.js.map +1 -1
- package/lib/module/SentryManager.js +2 -1
- package/lib/module/SentryManager.js.map +1 -1
- package/lib/module/Tool.js.map +1 -1
- package/lib/module/VipManager.js +0 -3
- package/lib/module/VipManager.js.map +1 -1
- package/lib/typescript/{src/Tool.d.ts → Tool.d.ts} +1 -0
- package/locales/en-US.json +1 -0
- package/locales/zh-CN.json +1 -0
- package/package.json +26 -26
- package/src/.DS_Store +0 -0
- package/src/LoginManager.ts +0 -1
- package/src/SentryManager.ts +2 -1
- package/src/Tool.ts +2 -0
- package/src/VipManager.ts +0 -3
- package/tsconfig.json +27 -0
- package/yarn.lock +11432 -0
- package/lib/typescript/babel.config.d.ts +0 -1
- package/lib/typescript/lib/commonjs/AppBadgeContext.d.ts +0 -8
- package/lib/typescript/lib/commonjs/AppleLoginUtil.d.ts +0 -27
- package/lib/typescript/lib/commonjs/ConfigDataModel.d.ts +0 -14
- package/lib/typescript/lib/commonjs/DevConfig.d.ts +0 -7
- package/lib/typescript/lib/commonjs/Frequence.d.ts +0 -6
- package/lib/typescript/lib/commonjs/LoginManager.d.ts +0 -15
- package/lib/typescript/lib/commonjs/MessageModel.d.ts +0 -10
- package/lib/typescript/lib/commonjs/Notification.d.ts +0 -8
- package/lib/typescript/lib/commonjs/PrefData.d.ts +0 -79
- package/lib/typescript/lib/commonjs/ReportUtil.d.ts +0 -16
- package/lib/typescript/lib/commonjs/SentryManager.d.ts +0 -5
- package/lib/typescript/lib/commonjs/SyncPrefData.d.ts +0 -5
- package/lib/typescript/lib/commonjs/Tool.d.ts +0 -26
- package/lib/typescript/lib/commonjs/VipAndroidManager.d.ts +0 -25
- package/lib/typescript/lib/commonjs/VipManager.d.ts +0 -25
- package/lib/typescript/lib/commonjs/WeChatLoginUtil.d.ts +0 -4
- package/lib/typescript/lib/commonjs/constant.d.ts +0 -3
- package/lib/typescript/lib/commonjs/index.d.ts +0 -3
- package/lib/typescript/lib/module/AppBadgeContext.d.ts +0 -14
- package/lib/typescript/lib/module/AppleLoginUtil.d.ts +0 -26
- package/lib/typescript/lib/module/ConfigDataModel.d.ts +0 -13
- package/lib/typescript/lib/module/DevConfig.d.ts +0 -6
- package/lib/typescript/lib/module/Frequence.d.ts +0 -5
- package/lib/typescript/lib/module/LoginManager.d.ts +0 -14
- package/lib/typescript/lib/module/MessageModel.d.ts +0 -9
- package/lib/typescript/lib/module/Notification.d.ts +0 -7
- package/lib/typescript/lib/module/PrefData.d.ts +0 -78
- package/lib/typescript/lib/module/ReportUtil.d.ts +0 -15
- package/lib/typescript/lib/module/SentryManager.d.ts +0 -4
- package/lib/typescript/lib/module/SyncPrefData.d.ts +0 -4
- package/lib/typescript/lib/module/Tool.d.ts +0 -25
- package/lib/typescript/lib/module/VipAndroidManager.d.ts +0 -24
- package/lib/typescript/lib/module/VipManager.d.ts +0 -24
- package/lib/typescript/lib/module/WeChatLoginUtil.d.ts +0 -3
- package/lib/typescript/lib/module/constant.d.ts +0 -2
- package/lib/typescript/lib/module/index.d.ts +0 -19
- /package/lib/typescript/{src/AppBadgeContext.d.ts → AppBadgeContext.d.ts} +0 -0
- /package/lib/typescript/{src/AppleLoginUtil.d.ts → AppleLoginUtil.d.ts} +0 -0
- /package/lib/typescript/{src/ConfigDataModel.d.ts → ConfigDataModel.d.ts} +0 -0
- /package/lib/typescript/{src/DevConfig.d.ts → DevConfig.d.ts} +0 -0
- /package/lib/typescript/{src/Frequence.d.ts → Frequence.d.ts} +0 -0
- /package/lib/typescript/{src/LoginManager.d.ts → LoginManager.d.ts} +0 -0
- /package/lib/typescript/{src/MessageModel.d.ts → MessageModel.d.ts} +0 -0
- /package/lib/typescript/{src/Notification.d.ts → Notification.d.ts} +0 -0
- /package/lib/typescript/{src/PrefData.d.ts → PrefData.d.ts} +0 -0
- /package/lib/typescript/{src/ReportUtil.d.ts → ReportUtil.d.ts} +0 -0
- /package/lib/typescript/{src/SentryManager.d.ts → SentryManager.d.ts} +0 -0
- /package/lib/typescript/{src/SyncPrefData.d.ts → SyncPrefData.d.ts} +0 -0
- /package/lib/typescript/{src/VipAndroidManager.d.ts → VipAndroidManager.d.ts} +0 -0
- /package/lib/typescript/{src/VipManager.d.ts → VipManager.d.ts} +0 -0
- /package/lib/typescript/{src/WeChatLoginUtil.d.ts → WeChatLoginUtil.d.ts} +0 -0
- /package/lib/typescript/{src/constant.d.ts → constant.d.ts} +0 -0
- /package/lib/typescript/{src/index.d.ts → index.d.ts} +0 -0
package/.DS_Store
ADDED
|
Binary file
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
version: 2.1
|
|
2
|
+
|
|
3
|
+
executors:
|
|
4
|
+
default:
|
|
5
|
+
docker:
|
|
6
|
+
- image: circleci/node:10
|
|
7
|
+
working_directory: ~/project
|
|
8
|
+
|
|
9
|
+
commands:
|
|
10
|
+
attach_project:
|
|
11
|
+
steps:
|
|
12
|
+
- attach_workspace:
|
|
13
|
+
at: ~/project
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
install-dependencies:
|
|
17
|
+
executor: default
|
|
18
|
+
steps:
|
|
19
|
+
- checkout
|
|
20
|
+
- attach_project
|
|
21
|
+
- restore_cache:
|
|
22
|
+
keys:
|
|
23
|
+
- dependencies-{{ checksum "package.json" }}
|
|
24
|
+
- dependencies-
|
|
25
|
+
- restore_cache:
|
|
26
|
+
keys:
|
|
27
|
+
- dependencies-example-{{ checksum "example/package.json" }}
|
|
28
|
+
- dependencies-example-
|
|
29
|
+
- run:
|
|
30
|
+
name: Install dependencies
|
|
31
|
+
command: |
|
|
32
|
+
yarn install --cwd example --frozen-lockfile
|
|
33
|
+
yarn install --frozen-lockfile
|
|
34
|
+
- save_cache:
|
|
35
|
+
key: dependencies-{{ checksum "package.json" }}
|
|
36
|
+
paths: node_modules
|
|
37
|
+
- save_cache:
|
|
38
|
+
key: dependencies-example-{{ checksum "example/package.json" }}
|
|
39
|
+
paths: example/node_modules
|
|
40
|
+
- persist_to_workspace:
|
|
41
|
+
root: .
|
|
42
|
+
paths: .
|
|
43
|
+
|
|
44
|
+
lint:
|
|
45
|
+
executor: default
|
|
46
|
+
steps:
|
|
47
|
+
- attach_project
|
|
48
|
+
- run:
|
|
49
|
+
name: Lint files
|
|
50
|
+
command: |
|
|
51
|
+
yarn lint
|
|
52
|
+
|
|
53
|
+
typescript:
|
|
54
|
+
executor: default
|
|
55
|
+
steps:
|
|
56
|
+
- attach_project
|
|
57
|
+
- run:
|
|
58
|
+
name: Typecheck files
|
|
59
|
+
command: |
|
|
60
|
+
yarn typescript
|
|
61
|
+
|
|
62
|
+
unit-tests:
|
|
63
|
+
executor: default
|
|
64
|
+
steps:
|
|
65
|
+
- attach_project
|
|
66
|
+
- run:
|
|
67
|
+
name: Run unit tests
|
|
68
|
+
command: |
|
|
69
|
+
yarn test --coverage
|
|
70
|
+
- store_artifacts:
|
|
71
|
+
path: coverage
|
|
72
|
+
destination: coverage
|
|
73
|
+
|
|
74
|
+
build-package:
|
|
75
|
+
executor: default
|
|
76
|
+
steps:
|
|
77
|
+
- attach_project
|
|
78
|
+
- run:
|
|
79
|
+
name: Build package
|
|
80
|
+
command: |
|
|
81
|
+
yarn prepare
|
|
82
|
+
|
|
83
|
+
workflows:
|
|
84
|
+
build-and-test:
|
|
85
|
+
jobs:
|
|
86
|
+
- install-dependencies
|
|
87
|
+
- lint:
|
|
88
|
+
requires:
|
|
89
|
+
- install-dependencies
|
|
90
|
+
- typescript:
|
|
91
|
+
requires:
|
|
92
|
+
- install-dependencies
|
|
93
|
+
- unit-tests:
|
|
94
|
+
requires:
|
|
95
|
+
- install-dependencies
|
|
96
|
+
- build-package:
|
|
97
|
+
requires:
|
|
98
|
+
- install-dependencies
|
package/.editorconfig
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# EditorConfig helps developers define and maintain consistent
|
|
2
|
+
# coding styles between different editors and IDEs
|
|
3
|
+
# editorconfig.org
|
|
4
|
+
|
|
5
|
+
root = true
|
|
6
|
+
|
|
7
|
+
[*]
|
|
8
|
+
|
|
9
|
+
indent_style = space
|
|
10
|
+
indent_size = 2
|
|
11
|
+
|
|
12
|
+
end_of_line = lf
|
|
13
|
+
charset = utf-8
|
|
14
|
+
trim_trailing_whitespace = true
|
|
15
|
+
insert_final_newline = true
|
package/.gitattributes
ADDED
package/.gitignore
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# OSX
|
|
2
|
+
#
|
|
3
|
+
.DS_Store
|
|
4
|
+
|
|
5
|
+
# XDE
|
|
6
|
+
.expo/
|
|
7
|
+
|
|
8
|
+
# VSCode
|
|
9
|
+
.vscode/
|
|
10
|
+
jsconfig.json
|
|
11
|
+
|
|
12
|
+
# Xcode
|
|
13
|
+
#
|
|
14
|
+
build/
|
|
15
|
+
*.pbxuser
|
|
16
|
+
!default.pbxuser
|
|
17
|
+
*.mode1v3
|
|
18
|
+
!default.mode1v3
|
|
19
|
+
*.mode2v3
|
|
20
|
+
!default.mode2v3
|
|
21
|
+
*.perspectivev3
|
|
22
|
+
!default.perspectivev3
|
|
23
|
+
xcuserdata
|
|
24
|
+
*.xccheckout
|
|
25
|
+
*.moved-aside
|
|
26
|
+
DerivedData
|
|
27
|
+
*.hmap
|
|
28
|
+
*.ipa
|
|
29
|
+
*.xcuserstate
|
|
30
|
+
project.xcworkspace
|
|
31
|
+
|
|
32
|
+
# Android/IJ
|
|
33
|
+
#
|
|
34
|
+
.idea
|
|
35
|
+
.gradle
|
|
36
|
+
local.properties
|
|
37
|
+
android.iml
|
|
38
|
+
|
|
39
|
+
# Cocoapods
|
|
40
|
+
#
|
|
41
|
+
example/ios/Pods
|
|
42
|
+
|
|
43
|
+
# node.js
|
|
44
|
+
#
|
|
45
|
+
node_modules/
|
|
46
|
+
npm-debug.log
|
|
47
|
+
yarn-debug.log
|
|
48
|
+
yarn-error.log
|
|
49
|
+
|
|
50
|
+
# BUCK
|
|
51
|
+
buck-out/
|
|
52
|
+
\.buckd/
|
|
53
|
+
android/app/libs
|
|
54
|
+
android/keystores/debug.keystore
|
|
55
|
+
|
|
56
|
+
# Expo
|
|
57
|
+
.expo/*
|
|
58
|
+
|
|
59
|
+
# generated by bob
|
|
60
|
+
lib/
|
package/.prettierrc
ADDED
package/.watchmanconfig
ADDED
package/README.md
CHANGED
|
@@ -1,27 +1,78 @@
|
|
|
1
1
|
# @norcy/react-native-toolkit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
App 工厂核心组件
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 安装
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
|
|
8
|
+
yarn add @norcy/react-native-toolkit
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## 维护
|
|
12
|
+
【重要】TS 校验和 ESLint 校验
|
|
12
13
|
|
|
13
|
-
```
|
|
14
|
-
|
|
14
|
+
```sh
|
|
15
|
+
yarn typescript
|
|
16
|
+
yarn lint
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
【重要】发布
|
|
20
|
+
```sh
|
|
21
|
+
yarn publish
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
安装依赖
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
yarn bootstrap
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
自动格式校正
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
yarn lint --fix
|
|
35
|
+
```
|
|
15
36
|
|
|
16
|
-
|
|
37
|
+
调试 Example
|
|
17
38
|
|
|
18
|
-
|
|
39
|
+
```sh
|
|
40
|
+
yarn example start
|
|
19
41
|
```
|
|
20
42
|
|
|
21
|
-
|
|
43
|
+
调试安卓 Example
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
yarn example android
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
调试 iOS Example
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
yarn example ios
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
### Linting and tests
|
|
59
|
+
|
|
60
|
+
[ESLint](https://eslint.org/), [Prettier](https://prettier.io/), [TypeScript](https://www.typescriptlang.org/)
|
|
61
|
+
|
|
62
|
+
We use [TypeScript](https://www.typescriptlang.org/) for type checking, [ESLint](https://eslint.org/) with [Prettier](https://prettier.io/) for linting and formatting the code, and [Jest](https://jestjs.io/) for testing.
|
|
63
|
+
|
|
64
|
+
Our pre-commit hooks verify that the linter and tests pass when committing.
|
|
65
|
+
|
|
66
|
+
### Scripts
|
|
67
|
+
|
|
68
|
+
The `package.json` file contains various scripts for common tasks:
|
|
22
69
|
|
|
23
|
-
|
|
70
|
+
- `yarn bootstrap`: setup project by installing all dependencies and pods.
|
|
71
|
+
- `yarn typescript`: type-check files with TypeScript.
|
|
72
|
+
- `yarn lint`: lint files with ESLint.
|
|
73
|
+
- `yarn test`: run unit tests with Jest.
|
|
74
|
+
- `yarn example start`: start the Metro server for the example app.
|
|
75
|
+
- `yarn example android`: run the example app on Android.
|
|
76
|
+
- `yarn example ios`: run the example app on iOS.
|
|
24
77
|
|
|
25
|
-
## License
|
|
26
78
|
|
|
27
|
-
MIT
|
package/babel.config.js
ADDED
package/ios/.DS_Store
ADDED
|
Binary file
|
|
@@ -83,7 +83,6 @@ const doLeanCloudLogin = async (authData, userData, callback) => {
|
|
|
83
83
|
if (_reactNative.Platform.OS === 'android') {
|
|
84
84
|
newUser.set('source', 2);
|
|
85
85
|
}
|
|
86
|
-
newUser.set('toLDB', 1);
|
|
87
86
|
newUser.loginWithAuthData(authData, loginType).then(user => {
|
|
88
87
|
// 登录成功
|
|
89
88
|
console.log('Lean Cloud 注册成功');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_AppleLoginUtil","_Notification","_PrefData","_Tool","_WeChatLoginUtil","_constant","AV","CURRENT_USER","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","PrefData","setValue","BuildInPrefs","LastLoginType","Notification","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginType","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","Platform","OS","isNew","RegisterInThisDevice","error2","LoginManager","exports","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","ToolkitConfig","WeiXinId","WeiXinSecret","_ref5","unionid","_ref6","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","isRegisterInThisDevice","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 { ToolkitConfig } from './Tool';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\ntype FetchImageFunctionType = ({ headimgurl }: { headimgurl: string }) => void;\nexport type LoginResultDataType = {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: string;\n};\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: LoginResultDataType) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.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(BuildInPrefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nexport const LoginManager = {\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.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 | Date, callback?: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n isRegisterInThisDevice: () => {\n return PrefData.getValue(BuildInPrefs.RegisterInThisDevice);\n },\n\n fetchWeChatAvatar: (callback: FetchImageFunctionType) => {\n WeChatLoginUtil.doLogin(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeDeviceInfo","_AppleLoginUtil","_Notification","_PrefData","_Tool","_WeChatLoginUtil","_constant","AV","CURRENT_USER","AVUserToLocalUser","user","nickname","get","email","headimgurl","type","AVUser","onLoginFinish","_ref","isAuto","error","code","data","PrefData","setValue","BuildInPrefs","LastLoginType","Notification","postNotification","doLeanCloudLogin","authData","userData","callback","console","log","loginType","loginTypeNum","LoginType","LoginTypeApple","LoginTypeWeChat","LoginTypeVisitor","User","loginWithAuthData","failOnNotExist","then","newUser","setEmail","set","Platform","OS","isNew","RegisterInThisDevice","error2","LoginManager","exports","autoLogin","currentAsync","login","devAuthData","arguments","length","undefined","loadingCallback","cuurentUser","__DEV__","_ref2","identityToken","AppleLoginUtil","requestAppleUserForLogin","userId","openid","access_token","expires_in","fetchAndUpdateCredentialState","_ref3","result","LoginState","AUTHORIZED","_ref4","loginUser","error3","WeChatLoginUtil","doLogin","ToolkitConfig","WeiXinId","WeiXinSecret","_ref5","unionid","_ref6","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","isRegisterInThisDevice","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 { ToolkitConfig } from './Tool';\nimport { WeChatLoginUtil } from './WeChatLoginUtil';\nimport {\n LoginAuthDataType,\n LoginState,\n LoginType,\n LoginUserDataType,\n UserType,\n} from './constant';\n\ntype FetchImageFunctionType = ({ headimgurl }: { headimgurl: string }) => void;\nexport type LoginResultDataType = {\n isAuto?: boolean;\n user?: UserType;\n error?: string | object;\n code?: string;\n};\n\nconst AV = require('leancloud-storage');\n\nlet CURRENT_USER: UserType | null = null;\n\nconst AVUserToLocalUser = (user: User) => {\n return {\n nickname: user.get('nickname'),\n email: user.get('email'),\n headimgurl: user.get('headimgurl'),\n type: user.get('type'),\n AVUser: user,\n };\n};\n\nconst onLoginFinish = ({\n isAuto = false,\n user,\n error,\n code,\n}: LoginResultDataType) => {\n const data = { isAuto, user, error, code };\n if (user) {\n PrefData.setValue(BuildInPrefs.LastLoginType, user.type);\n }\n Notification.postNotification('onLogin', data);\n};\n\nconst doLeanCloudLogin = async (\n authData: LoginAuthDataType,\n userData: LoginUserDataType | undefined,\n callback: ({ user, error }: { user?: UserType; error?: any }) => void\n) => {\n console.log('Lean Cloud 开始登录', userData);\n // loginType 空说明是老用户\n const loginType = authData.loginType ? authData.loginType : 'apple';\n let loginTypeNum = LoginType.LoginTypeApple;\n if (loginType === 'wechat') {\n loginTypeNum = LoginType.LoginTypeWeChat;\n } else if (loginType === 'visitor') {\n loginTypeNum = LoginType.LoginTypeVisitor;\n }\n\n AV.User.loginWithAuthData(authData, loginType, { failOnNotExist: true }).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 登录成功');\n // 每次重新鉴权都更新头像和昵称,避免微信头像过期\n // if (userData?.nickname) {\n // user.set('nickname', userData?.nickname);\n // }\n // if (userData?.headimgurl) {\n // user.set('headimgurl', userData?.headimgurl);\n // }\n // user.save();\n CURRENT_USER = AVUserToLocalUser(user);\n callback({ user: CURRENT_USER });\n },\n (error: any) => {\n if (error.code === 211) {\n // 创建用户,并补充资料\n console.log('创建用户,并补充资料');\n const newUser = new AV.User();\n const email = userData?.email;\n if (email) {\n newUser.setEmail(email);\n }\n newUser.set('nickname', userData?.nickname);\n newUser.set('headimgurl', userData?.headimgurl);\n newUser.set('type', loginTypeNum);\n if (Platform.OS === 'android') {\n newUser.set('source', 2);\n }\n newUser.loginWithAuthData(authData, loginType).then(\n (user: User) => {\n // 登录成功\n console.log('Lean Cloud 注册成功');\n CURRENT_USER = AVUserToLocalUser(user);\n CURRENT_USER.isNew = true;\n // 标记为当前用户是在本机注册的 TODO\n PrefData.setValue(BuildInPrefs.RegisterInThisDevice, true);\n callback({ user: CURRENT_USER });\n },\n (error2: any) => {\n // 登录失败\n console.log('Lean Cloud 登录失败', error2);\n callback({ error: error2 });\n }\n );\n } else {\n // 登录失败\n console.log('Lean Cloud 登录失败', error);\n callback({ error: error });\n }\n }\n );\n};\n\nexport const LoginManager = {\n // 自动根据已有的 User 信息进行登录鉴权,如果 User 为空则失败\n autoLogin: async () => {\n const user = await AV.User.currentAsync();\n if (user) {\n console.log('自动登录成功');\n CURRENT_USER = AVUserToLocalUser(user);\n onLoginFinish({ isAuto: true, user: CURRENT_USER });\n } else {\n onLoginFinish({ isAuto: true, error: 'User Not Login Yet' });\n }\n },\n\n // 如果 User 为空,则唤起苹果登录框;如果 User 不为空,直接鉴权\n login: async (\n type: LoginType,\n devAuthData: LoginAuthDataType | null = null,\n loadingCallback: Function\n ) => {\n // 如果之前已经鉴权过,则直接使用上次鉴权的 AuthData\n const cuurentUser = await AV.User.currentAsync();\n if (cuurentUser) {\n await LoginManager.autoLogin();\n return;\n }\n\n // 改为注入 delegate\n if (__DEV__) {\n if (devAuthData) {\n doLeanCloudLogin(devAuthData, undefined, ({ user, error }) => {\n onLoginFinish({ user, error });\n });\n return;\n }\n }\n\n if (type === LoginType.LoginTypeApple) {\n const { user, email, identityToken, error, code } =\n await AppleLoginUtil.requestAppleUserForLogin();\n if (!user || error) {\n onLoginFinish({ error, code });\n return;\n } else {\n let userData = {\n userId: user,\n email: email,\n authData: {\n openid: user,\n access_token: identityToken,\n expires_in: 99999999,\n loginType: 'apple',\n },\n };\n\n AppleLoginUtil.fetchAndUpdateCredentialState(\n userData.userId,\n ({ result, error: error2 }: { result: number; error: any }) => {\n if (error || result !== LoginState.AUTHORIZED) {\n onLoginFinish({ error: error2 });\n } else {\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user: loginUser, error: error3 }) => {\n onLoginFinish({ user: loginUser, error: error3 });\n }\n );\n }\n }\n );\n }\n } else if (type === LoginType.LoginTypeWeChat) {\n WeChatLoginUtil.doLogin(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n ({\n nickname,\n headimgurl,\n openid,\n unionid,\n error,\n }: {\n nickname: string;\n headimgurl: string;\n openid: string;\n unionid: string;\n error: any;\n }) => {\n if (error) {\n onLoginFinish({ error });\n } else {\n let userData = {\n nickname: nickname,\n headimgurl: headimgurl,\n authData: {\n openid: openid,\n unionid: unionid,\n access_token: openid,\n expires_in: 99999999,\n loginType: 'wechat',\n },\n };\n loadingCallback && loadingCallback();\n doLeanCloudLogin(\n userData.authData,\n userData,\n ({ user, error: error2 }) => {\n onLoginFinish({ user, error: error2 });\n }\n );\n }\n }\n );\n } else if (type === LoginType.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 | Date, callback?: Function) => {\n LoginManager.batchUpdateUser([key], [value], callback);\n },\n\n deleteUser: async (callback: Function) => {\n try {\n if (!CURRENT_USER) {\n return;\n }\n if (CURRENT_USER.type === LoginType.LoginTypeApple) {\n await AppleLoginUtil.requestDeleteAccount();\n }\n const user = await AV.User.currentAsync();\n console.log('get user success');\n await user.destroy();\n console.log('delete user success');\n callback();\n } catch (error) {\n console.error(error);\n callback(error);\n }\n },\n\n lastLoginType: () => {\n return PrefData.getValue(BuildInPrefs.LastLoginType);\n },\n\n isRegisterInThisDevice: () => {\n return PrefData.getValue(BuildInPrefs.RegisterInThisDevice);\n },\n\n fetchWeChatAvatar: (callback: FetchImageFunctionType) => {\n WeChatLoginUtil.doLogin(\n ToolkitConfig.WeiXinId,\n ToolkitConfig.WeiXinSecret,\n ({ headimgurl }: { headimgurl: string }) => {\n callback({ headimgurl });\n }\n );\n },\n};\n"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AAgBA,MAAMQ,EAAE,GAAGR,OAAO,CAAC,mBAAmB,CAAC;AAEvC,IAAIS,YAA6B,GAAG,IAAI;AAExC,MAAMC,iBAAiB,GAAIC,IAAU,IAAK;EACxC,OAAO;IACLC,QAAQ,EAAED,IAAI,CAACE,GAAG,CAAC,UAAU,CAAC;IAC9BC,KAAK,EAAEH,IAAI,CAACE,GAAG,CAAC,OAAO,CAAC;IACxBE,UAAU,EAAEJ,IAAI,CAACE,GAAG,CAAC,YAAY,CAAC;IAClCG,IAAI,EAAEL,IAAI,CAACE,GAAG,CAAC,MAAM,CAAC;IACtBI,MAAM,EAAEN;EACV,CAAC;AACH,CAAC;AAED,MAAMO,aAAa,GAAGC,IAAA,IAKK;EAAA,IALJ;IACrBC,MAAM,GAAG,KAAK;IACdT,IAAI;IACJU,KAAK;IACLC;EACmB,CAAC,GAAAH,IAAA;EACpB,MAAMI,IAAI,GAAG;IAAEH,MAAM;IAAET,IAAI;IAAEU,KAAK;IAAEC;EAAK,CAAC;EAC1C,IAAIX,IAAI,EAAE;IACRa,kBAAQ,CAACC,QAAQ,CAACC,sBAAY,CAACC,aAAa,EAAEhB,IAAI,CAACK,IAAI,CAAC;EAC1D;EACAY,0BAAY,CAACC,gBAAgB,CAAC,SAAS,EAAEN,IAAI,CAAC;AAChD,CAAC;AAED,MAAMO,gBAAgB,GAAG,MAAAA,CACvBC,QAA2B,EAC3BC,QAAuC,EACvCC,QAAqE,KAClE;EACHC,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEH,QAAQ,CAAC;EACxC;EACA,MAAMI,SAAS,GAAGL,QAAQ,CAACK,SAAS,GAAGL,QAAQ,CAACK,SAAS,GAAG,OAAO;EACnE,IAAIC,YAAY,GAAGC,mBAAS,CAACC,cAAc;EAC3C,IAAIH,SAAS,KAAK,QAAQ,EAAE;IAC1BC,YAAY,GAAGC,mBAAS,CAACE,eAAe;EAC1C,CAAC,MAAM,IAAIJ,SAAS,KAAK,SAAS,EAAE;IAClCC,YAAY,GAAGC,mBAAS,CAACG,gBAAgB;EAC3C;EAEAjC,EAAE,CAACkC,IAAI,CAACC,iBAAiB,CAACZ,QAAQ,EAAEK,SAAS,EAAE;IAAEQ,cAAc,EAAE;EAAK,CAAC,CAAC,CAACC,IAAI,CAC1ElC,IAAU,IAAK;IACd;IACAuB,OAAO,CAACC,GAAG,CAAC,iBAAiB,CAAC;IAC9B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA1B,YAAY,GAAGC,iBAAiB,CAACC,IAAI,CAAC;IACtCsB,QAAQ,CAAC;MAAEtB,IAAI,EAAEF;IAAa,CAAC,CAAC;EAClC,CAAC,EACAY,KAAU,IAAK;IACd,IAAIA,KAAK,CAACC,IAAI,KAAK,GAAG,EAAE;MACtB;MACAY,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC;MACzB,MAAMW,OAAO,GAAG,IAAItC,EAAE,CAACkC,IAAI,CAAC,CAAC;MAC7B,MAAM5B,KAAK,GAAGkB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAElB,KAAK;MAC7B,IAAIA,KAAK,EAAE;QACTgC,OAAO,CAACC,QAAQ,CAACjC,KAAK,CAAC;MACzB;MACAgC,OAAO,CAACE,GAAG,CAAC,UAAU,EAAEhB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEpB,QAAQ,CAAC;MAC3CkC,OAAO,CAACE,GAAG,CAAC,YAAY,EAAEhB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEjB,UAAU,CAAC;MAC/C+B,OAAO,CAACE,GAAG,CAAC,MAAM,EAAEX,YAAY,CAAC;MACjC,IAAIY,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;QAC7BJ,OAAO,CAACE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;MAC1B;MACAF,OAAO,CAACH,iBAAiB,CAACZ,QAAQ,EAAEK,SAAS,CAAC,CAACS,IAAI,CAChDlC,IAAU,IAAK;QACd;QACAuB,OAAO,CAACC,GAAG,CAAC,iBAAiB,CAAC;QAC9B1B,YAAY,GAAGC,iBAAiB,CAACC,IAAI,CAAC;QACtCF,YAAY,CAAC0C,KAAK,GAAG,IAAI;QACzB;QACA3B,kBAAQ,CAACC,QAAQ,CAACC,sBAAY,CAAC0B,oBAAoB,EAAE,IAAI,CAAC;QAC1DnB,QAAQ,CAAC;UAAEtB,IAAI,EAAEF;QAAa,CAAC,CAAC;MAClC,CAAC,EACA4C,MAAW,IAAK;QACf;QACAnB,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEkB,MAAM,CAAC;QACtCpB,QAAQ,CAAC;UAAEZ,KAAK,EAAEgC;QAAO,CAAC,CAAC;MAC7B,CACF,CAAC;IACH,CAAC,MAAM;MACL;MACAnB,OAAO,CAACC,GAAG,CAAC,iBAAiB,EAAEd,KAAK,CAAC;MACrCY,QAAQ,CAAC;QAAEZ,KAAK,EAAEA;MAAM,CAAC,CAAC;IAC5B;EACF,CACF,CAAC;AACH,CAAC;AAEM,MAAMiC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1B;EACAE,SAAS,EAAE,MAAAA,CAAA,KAAY;IACrB,MAAM7C,IAAI,GAAG,MAAMH,EAAE,CAACkC,IAAI,CAACe,YAAY,CAAC,CAAC;IACzC,IAAI9C,IAAI,EAAE;MACRuB,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC;MACrB1B,YAAY,GAAGC,iBAAiB,CAACC,IAAI,CAAC;MACtCO,aAAa,CAAC;QAAEE,MAAM,EAAE,IAAI;QAAET,IAAI,EAAEF;MAAa,CAAC,CAAC;IACrD,CAAC,MAAM;MACLS,aAAa,CAAC;QAAEE,MAAM,EAAE,IAAI;QAAEC,KAAK,EAAE;MAAqB,CAAC,CAAC;IAC9D;EACF,CAAC;EAED;EACAqC,KAAK,EAAE,eAAAA,CACL1C,IAAe,EAGZ;IAAA,IAFH2C,WAAqC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAAA,IAC5CG,eAAyB,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;IAEzB;IACA,MAAME,WAAW,GAAG,MAAMxD,EAAE,CAACkC,IAAI,CAACe,YAAY,CAAC,CAAC;IAChD,IAAIO,WAAW,EAAE;MACf,MAAMV,YAAY,CAACE,SAAS,CAAC,CAAC;MAC9B;IACF;;IAEA;IACA,IAAIS,OAAO,EAAE;MACX,IAAIN,WAAW,EAAE;QACf7B,gBAAgB,CAAC6B,WAAW,EAAEG,SAAS,EAAEI,KAAA,IAAqB;UAAA,IAApB;YAAEvD,IAAI;YAAEU;UAAM,CAAC,GAAA6C,KAAA;UACvDhD,aAAa,CAAC;YAAEP,IAAI;YAAEU;UAAM,CAAC,CAAC;QAChC,CAAC,CAAC;QACF;MACF;IACF;IAEA,IAAIL,IAAI,KAAKsB,mBAAS,CAACC,cAAc,EAAE;MACrC,MAAM;QAAE5B,IAAI;QAAEG,KAAK;QAAEqD,aAAa;QAAE9C,KAAK;QAAEC;MAAK,CAAC,GAC/C,MAAM8C,8BAAc,CAACC,wBAAwB,CAAC,CAAC;MACjD,IAAI,CAAC1D,IAAI,IAAIU,KAAK,EAAE;QAClBH,aAAa,CAAC;UAAEG,KAAK;UAAEC;QAAK,CAAC,CAAC;QAC9B;MACF,CAAC,MAAM;QACL,IAAIU,QAAQ,GAAG;UACbsC,MAAM,EAAE3D,IAAI;UACZG,KAAK,EAAEA,KAAK;UACZiB,QAAQ,EAAE;YACRwC,MAAM,EAAE5D,IAAI;YACZ6D,YAAY,EAAEL,aAAa;YAC3BM,UAAU,EAAE,QAAQ;YACpBrC,SAAS,EAAE;UACb;QACF,CAAC;QAEDgC,8BAAc,CAACM,6BAA6B,CAC1C1C,QAAQ,CAACsC,MAAM,EACfK,KAAA,IAA+D;UAAA,IAA9D;YAAEC,MAAM;YAAEvD,KAAK,EAAEgC;UAAuC,CAAC,GAAAsB,KAAA;UACxD,IAAItD,KAAK,IAAIuD,MAAM,KAAKC,oBAAU,CAACC,UAAU,EAAE;YAC7C5D,aAAa,CAAC;cAAEG,KAAK,EAAEgC;YAAO,CAAC,CAAC;UAClC,CAAC,MAAM;YACLU,eAAe,IAAIA,eAAe,CAAC,CAAC;YACpCjC,gBAAgB,CACdE,QAAQ,CAACD,QAAQ,EACjBC,QAAQ,EACR+C,KAAA,IAAwC;cAAA,IAAvC;gBAAEpE,IAAI,EAAEqE,SAAS;gBAAE3D,KAAK,EAAE4D;cAAO,CAAC,GAAAF,KAAA;cACjC7D,aAAa,CAAC;gBAAEP,IAAI,EAAEqE,SAAS;gBAAE3D,KAAK,EAAE4D;cAAO,CAAC,CAAC;YACnD,CACF,CAAC;UACH;QACF,CACF,CAAC;MACH;IACF,CAAC,MAAM,IAAIjE,IAAI,KAAKsB,mBAAS,CAACE,eAAe,EAAE;MAC7C0C,gCAAe,CAACC,OAAO,CACrBC,mBAAa,CAACC,QAAQ,EACtBD,mBAAa,CAACE,YAAY,EAC1BC,KAAA,IAYM;QAAA,IAZL;UACC3E,QAAQ;UACRG,UAAU;UACVwD,MAAM;UACNiB,OAAO;UACPnE;QAOF,CAAC,GAAAkE,KAAA;QACC,IAAIlE,KAAK,EAAE;UACTH,aAAa,CAAC;YAAEG;UAAM,CAAC,CAAC;QAC1B,CAAC,MAAM;UACL,IAAIW,QAAQ,GAAG;YACbpB,QAAQ,EAAEA,QAAQ;YAClBG,UAAU,EAAEA,UAAU;YACtBgB,QAAQ,EAAE;cACRwC,MAAM,EAAEA,MAAM;cACdiB,OAAO,EAAEA,OAAO;cAChBhB,YAAY,EAAED,MAAM;cACpBE,UAAU,EAAE,QAAQ;cACpBrC,SAAS,EAAE;YACb;UACF,CAAC;UACD2B,eAAe,IAAIA,eAAe,CAAC,CAAC;UACpCjC,gBAAgB,CACdE,QAAQ,CAACD,QAAQ,EACjBC,QAAQ,EACRyD,KAAA,IAA6B;YAAA,IAA5B;cAAE9E,IAAI;cAAEU,KAAK,EAAEgC;YAAO,CAAC,GAAAoC,KAAA;YACtBvE,aAAa,CAAC;cAAEP,IAAI;cAAEU,KAAK,EAAEgC;YAAO,CAAC,CAAC;UACxC,CACF,CAAC;QACH;MACF,CACF,CAAC;IACH,CAAC,MAAM,IAAIrC,IAAI,KAAKsB,mBAAS,CAACG,gBAAgB,EAAE;MAC9C,MAAMiD,QAAQ,GAAG,IAAAC,sCAAe,EAAC,CAAC;MAClCzD,OAAO,CAACC,GAAG,CAACuD,QAAQ,CAAC;MACrB,IAAI1D,QAAQ,GAAG;QACbpB,QAAQ,EAAE,SAAS;QACnBmB,QAAQ,EAAE;UACRwC,MAAM,EAAEmB,QAAQ;UAChBlB,YAAY,EAAEkB,QAAQ;UACtBjB,UAAU,EAAE,QAAQ;UACpBrC,SAAS,EAAE;QACb;MACF,CAAC;MACD2B,eAAe,IAAIA,eAAe,CAAC,CAAC;MACpCjC,gBAAgB,CAACE,QAAQ,CAACD,QAAQ,EAAEC,QAAQ,EAAE4D,KAAA,IAAqB;QAAA,IAApB;UAAEjF,IAAI;UAAEU;QAAM,CAAC,GAAAuE,KAAA;QAC5D1E,aAAa,CAAC;UAAEP,IAAI;UAAEU;QAAM,CAAC,CAAC;MAChC,CAAC,CAAC;IACJ,CAAC,MAAM;MACLH,aAAa,CAAC;QAAEG,KAAK,EAAE;MAAqB,CAAC,CAAC;IAChD;EACF,CAAC;EAEDwE,MAAM,EAAG5D,QAAmB,IAAK;IAC/BC,OAAO,CAACC,GAAG,CAAC,UAAU,CAAC;IACvB3B,EAAE,CAACkC,IAAI,CAACmD,MAAM,CAAC,CAAC;IAChBpF,YAAY,GAAG,IAAI;IACnBwB,QAAQ,IAAIA,QAAQ,CAAC,CAAC;IACtBL,0BAAY,CAACC,gBAAgB,CAAC,UAAU,CAAC;EAC3C,CAAC;EAEDiE,OAAO,EAAEA,CAAA,KAAM;IACb,OAAOxC,YAAY,CAACyC,WAAW,CAAC,CAAC,IAAI,IAAI;EAC3C,CAAC;EAEDC,SAAS,EAAEA,CAAA,KAAM;IAAA,IAAAC,qBAAA;IACf,OACE3C,YAAY,CAACwC,OAAO,CAAC,CAAC,IACtB,EAAAG,qBAAA,GAAA3C,YAAY,CAACyC,WAAW,CAAC,CAAC,cAAAE,qBAAA,uBAA1BA,qBAAA,CAA4BjF,IAAI,MAAKsB,mBAAS,CAACG,gBAAgB;EAEnE,CAAC;EAEDsD,WAAW,EAAEA,CAAA,KAAM;IACjB;IACA,OAAOtF,YAAY;EACrB,CAAC;EAEDyF,eAAe,EAAE,MAAAA,CACfC,IAAc,EACdC,MAAyB,EACzBnE,QAAmB,KAChB;IACHC,OAAO,CAACC,GAAG,CAAC,2BAA2B,GAAGgE,IAAI,GAAG,GAAG,GAAGC,MAAM,CAAC;IAC9D,MAAMzF,IAAI,GAAG,MAAMH,EAAE,CAACkC,IAAI,CAACe,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC9C,IAAI,EAAE;MACT;IACF;IACA,MAAM0F,SAAS,GAAG,EAAE;IACpB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACtC,MAAM,EAAEyC,CAAC,EAAE,EAAE;MACpCD,SAAS,CAACE,IAAI,CAAC5F,IAAI,CAACE,GAAG,CAACsF,IAAI,CAACG,CAAC,CAAC,CAAC,CAAC;MACjC3F,IAAI,CAACqC,GAAG,CAACmD,IAAI,CAACG,CAAC,CAAC,EAAEF,MAAM,CAACE,CAAC,CAAC,CAAC;IAC9B;IACA,IAAI;MACF,MAAMxD,OAAO,GAAG,MAAMnC,IAAI,CAAC6F,IAAI,CAAC,CAAC;MACjC/F,YAAY,GAAGC,iBAAiB,CAACoC,OAAO,CAAC;MACzCZ,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAExB,IAAI,CAAC;MAC1CsB,QAAQ,IAAIA,QAAQ,CAAC,CAAC;IACxB,CAAC,CAAC,OAAOwE,CAAC,EAAE;MACVvE,OAAO,CAACb,KAAK,CAACoF,CAAC,CAAC;MAChB,KAAK,IAAIH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,CAACtC,MAAM,EAAEyC,CAAC,EAAE,EAAE;QACpC3F,IAAI,CAACqC,GAAG,CAACmD,IAAI,CAACG,CAAC,CAAC,EAAED,SAAS,CAACC,CAAC,CAAC,CAAC;MACjC;MACArE,QAAQ,IAAIA,QAAQ,CAACwE,CAAC,CAAC;IACzB;EACF,CAAC;EAEDC,UAAU,EAAEA,CAACC,GAAW,EAAEC,KAAoB,EAAE3E,QAAmB,KAAK;IACtEqB,YAAY,CAAC4C,eAAe,CAAC,CAACS,GAAG,CAAC,EAAE,CAACC,KAAK,CAAC,EAAE3E,QAAQ,CAAC;EACxD,CAAC;EAED4E,UAAU,EAAE,MAAO5E,QAAkB,IAAK;IACxC,IAAI;MACF,IAAI,CAACxB,YAAY,EAAE;QACjB;MACF;MACA,IAAIA,YAAY,CAACO,IAAI,KAAKsB,mBAAS,CAACC,cAAc,EAAE;QAClD,MAAM6B,8BAAc,CAAC0C,oBAAoB,CAAC,CAAC;MAC7C;MACA,MAAMnG,IAAI,GAAG,MAAMH,EAAE,CAACkC,IAAI,CAACe,YAAY,CAAC,CAAC;MACzCvB,OAAO,CAACC,GAAG,CAAC,kBAAkB,CAAC;MAC/B,MAAMxB,IAAI,CAACoG,OAAO,CAAC,CAAC;MACpB7E,OAAO,CAACC,GAAG,CAAC,qBAAqB,CAAC;MAClCF,QAAQ,CAAC,CAAC;IACZ,CAAC,CAAC,OAAOZ,KAAK,EAAE;MACda,OAAO,CAACb,KAAK,CAACA,KAAK,CAAC;MACpBY,QAAQ,CAACZ,KAAK,CAAC;IACjB;EACF,CAAC;EAED2F,aAAa,EAAEA,CAAA,KAAM;IACnB,OAAOxF,kBAAQ,CAACyF,QAAQ,CAACvF,sBAAY,CAACC,aAAa,CAAC;EACtD,CAAC;EAEDuF,sBAAsB,EAAEA,CAAA,KAAM;IAC5B,OAAO1F,kBAAQ,CAACyF,QAAQ,CAACvF,sBAAY,CAAC0B,oBAAoB,CAAC;EAC7D,CAAC;EAED+D,iBAAiB,EAAGlF,QAAgC,IAAK;IACvDiD,gCAAe,CAACC,OAAO,CACrBC,mBAAa,CAACC,QAAQ,EACtBD,mBAAa,CAACE,YAAY,EAC1B8B,KAAA,IAA4C;MAAA,IAA3C;QAAErG;MAAmC,CAAC,GAAAqG,KAAA;MACrCnF,QAAQ,CAAC;QAAElB;MAAW,CAAC,CAAC;IAC1B,CACF,CAAC;EACH;AACF,CAAC"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.SentryManager = void 0;
|
|
7
7
|
var Sentry = _interopRequireWildcard(require("@sentry/react-native"));
|
|
8
8
|
var _Notification = require("./Notification");
|
|
9
|
+
var _Tool = require("./Tool");
|
|
9
10
|
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
11
|
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
12
|
const SentryManager = exports.SentryManager = {
|
|
@@ -16,7 +17,7 @@ const SentryManager = exports.SentryManager = {
|
|
|
16
17
|
// DEV 下不打开 Sentry
|
|
17
18
|
console.log('__RELEASE__ 下使用 Sentry');
|
|
18
19
|
Sentry.init({
|
|
19
|
-
dsn:
|
|
20
|
+
dsn: _Tool.ToolkitConfig.SentryDSN,
|
|
20
21
|
tracesSampleRate: 1.0
|
|
21
22
|
});
|
|
22
23
|
_Notification.Notification.addListener('onLogin', _ref => {
|
|
@@ -1 +1 @@
|
|
|
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 { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\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:
|
|
1
|
+
{"version":3,"names":["Sentry","_interopRequireWildcard","require","_Notification","_Tool","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","SentryManager","exports","init","__DEV__","console","log","dsn","ToolkitConfig","SentryDSN","tracesSampleRate","Notification","addListener","_ref","error","user","sentryUser","id","AVUser","email","username","nickname","setUser","setTag","value","length"],"sources":["SentryManager.ts"],"sourcesContent":["import * as Sentry from '@sentry/react-native';\nimport { LoginResultDataType } from './LoginManager';\nimport { Notification } from './Notification';\nimport { ToolkitConfig } from './Tool';\n\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: ToolkitConfig.SentryDSN,\n tracesSampleRate: 1.0,\n });\n\n Notification.addListener(\n 'onLogin',\n ({ error, user }: LoginResultDataType) => {\n if (!error && user) {\n const sentryUser: Sentry.User = {\n id: user.AVUser.get('objectId'),\n email: user.email,\n username: user.nickname,\n };\n Sentry.setUser(sentryUser);\n }\n }\n );\n\n Notification.addListener('onLogout', () => {\n Sentry.setUser(null);\n });\n\n // Sentry.nativeCrash();\n // Sentry.captureException(new Error('测试77!'));\n // throw new Error('My first Sentry error!');\n }\n },\n\n setTag: (key: string, value: any) => {\n if (!__DEV__) {\n if (key.length) {\n Sentry.setTag(key, value);\n }\n }\n },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAAuC,SAAAG,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,SAAAL,wBAAAS,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;AAEhC,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;MACrChC,MAAM,CAAC6B,IAAI,CAAC;QACVI,GAAG,EAAEC,mBAAa,CAACC,SAAS;QAC5BC,gBAAgB,EAAE;MACpB,CAAC,CAAC;MAEFC,0BAAY,CAACC,WAAW,CACtB,SAAS,EACTC,IAAA,IAA0C;QAAA,IAAzC;UAAEC,KAAK;UAAEC;QAA0B,CAAC,GAAAF,IAAA;QACnC,IAAI,CAACC,KAAK,IAAIC,IAAI,EAAE;UAClB,MAAMC,UAAuB,GAAG;YAC9BC,EAAE,EAAEF,IAAI,CAACG,MAAM,CAAC7B,GAAG,CAAC,UAAU,CAAC;YAC/B8B,KAAK,EAAEJ,IAAI,CAACI,KAAK;YACjBC,QAAQ,EAAEL,IAAI,CAACM;UACjB,CAAC;UACD/C,MAAM,CAACgD,OAAO,CAACN,UAAU,CAAC;QAC5B;MACF,CACF,CAAC;MAEDL,0BAAY,CAACC,WAAW,CAAC,UAAU,EAAE,MAAM;QACzCtC,MAAM,CAACgD,OAAO,CAAC,IAAI,CAAC;MACtB,CAAC,CAAC;;MAEF;MACA;MACA;IACF;EACF,CAAC;;EAEDC,MAAM,EAAEA,CAAC5B,GAAW,EAAE6B,KAAU,KAAK;IACnC,IAAI,CAACpB,OAAO,EAAE;MACZ,IAAIT,GAAG,CAAC8B,MAAM,EAAE;QACdnD,MAAM,CAACiD,MAAM,CAAC5B,GAAG,EAAE6B,KAAK,CAAC;MAC3B;IACF;EACF;AACF,CAAC"}
|
package/lib/commonjs/Tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_cameraroll","_interopRequireDefault","require","_react","_reactNative","_reactNativeSimpleToast","_rnFetchBlob","_ReportUtil","obj","__esModule","default","ToolkitConfig","exports","initToolkitConfig","config","_isPlainObject","target","toString","Object","getPrototypeOf","prototype","_jsonify","toJSON","Array","isArray","map","Tool","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","jsonify","keys","reduce","result","key","isChinese","value","isRemoteURL","str","startsWith","get_url_extension","url","_url$split$","split","pop","trim","generateObjectId","timestamp","Date","getTime","random","toLowerCase","humanFileSize","bytes","si","arguments","undefined","dp","thresh","abs","units","u","r","round","toFixed","useForceUpdate","setValue","useState","showToast","toast","Toast","showWithGravity","SHORT","CENTER","goAppStoreReview","ReportUtil","report","Platform","OS","Linking","canOpenURL","then","supported","openURL","iOSReviewUrl","NativeModules","CheckPackageInstallation","isPackageInstalled","isInstalled","goToMarket","AndroidPackageName","AndroidStoreScheme","goUpgrade","iOSStoreScheme","AppWebsite","notifyMe","text","__DEV__","fetch","PushDeerUrl","encodeURIComponent","hasAndroidWritePermission","permission","PermissionsAndroid","PERMISSIONS","WRITE_EXTERNAL_STORAGE","hasPermission","check","status","request","savePicture","albumName","console","log","errorCode","CameraRoll","save","type","album","AppName","error","errMsg","JSON","stringify","extension","res","RNFetchBlob","fileCache","appendExt","path","e1"],"sources":["Tool.ts"],"sourcesContent":["import CameraRoll from '@react-native-community/cameraroll';\nimport { useState } from 'react';\nimport {\n Linking,\n NativeModules,\n PermissionsAndroid,\n Platform,\n} from 'react-native';\nimport Toast from 'react-native-simple-toast';\nimport RNFetchBlob from 'rn-fetch-blob';\nimport { ReportUtil } from './ReportUtil';\n\nexport interface ToolkitConfigType {\n iOSStoreUrl: string;\n AndroidStoreUrl: string;\n iOSStoreScheme: string;\n AndroidStoreScheme: string;\n iOSReviewUrl: string;\n AndroidPackageName: string;\n\n AppName: string;\n AppWebsite: string;\n\n PolicyUrl: string;\n TermsUrl: string;\n\n PushDeerUrl: string;\n\n RC_API_KEY: string;\n RC_ENTITLEMENT_ID: string;\n WeChatPayServer: string;\n WeiXinId: string;\n WeiXinSecret: string;\n}\n\nexport let ToolkitConfig: ToolkitConfigType;\n\nexport const initToolkitConfig = (config: ToolkitConfigType) => {\n ToolkitConfig = config;\n};\n\nconst _isPlainObject = (target: any) => {\n return (\n target &&\n target.toString() === '[object Object]' &&\n Object.getPrototypeOf(target) === Object.prototype\n );\n};\n\nconst _jsonify = (target: any): any => {\n if (target && typeof target.toJSON === 'function') return target.toJSON();\n // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值\n if (Array.isArray(target)) return target.map(_jsonify);\n return target;\n};\n\nexport 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 jsonify: (target: any) =>\n _isPlainObject(target)\n ? Object.keys(target).reduce(\n (result, key) => ({\n ...result,\n [key]: _jsonify(target[key]),\n }),\n {}\n )\n : _jsonify(target),\n\n isChinese: (value: string) => {\n return /[\\u4E00-\\u9FA5]+/g.test(value);\n },\n\n isRemoteURL: (str: string) => {\n return str.startsWith('http');\n },\n\n get_url_extension: (url: string) => {\n return url.split(/[#?]/)[0]?.split('.')?.pop()?.trim();\n },\n\n generateObjectId: () => {\n var timestamp = ((new Date().getTime() / 1000) | 0).toString(16); // eslint-disable-line no-bitwise\n return (\n timestamp +\n 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {\n return ((Math.random() * 16) | 0).toString(16).toLowerCase(); // eslint-disable-line no-bitwise\n })\n );\n },\n\n /**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\n humanFileSize: (bytes: number, si = false, dp = 1) => {\n const thresh = si ? 1000 : 1024;\n\n if (Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n\n const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let u = -1;\n const r = 10 ** dp;\n\n do {\n bytes /= thresh;\n ++u;\n } while (\n Math.round(Math.abs(bytes) * r) / r >= thresh &&\n u < units.length - 1\n );\n\n return bytes.toFixed(dp) + ' ' + units[u];\n },\n\n useForceUpdate: () => {\n const [, setValue] = useState(0);\n return () => setValue((value) => value + 1);\n },\n\n showToast: (toast: string) => {\n Toast.showWithGravity(toast, Toast.SHORT, Toast.CENTER);\n },\n\n goAppStoreReview: () => {\n ReportUtil.report('StoreReview');\n if (Platform.OS === 'ios') {\n Linking.canOpenURL('itms-apps://').then((supported) => {\n if (supported) {\n Linking.openURL(ToolkitConfig.iOSReviewUrl);\n }\n });\n } else {\n if (NativeModules.CheckPackageInstallation) {\n NativeModules.CheckPackageInstallation.isPackageInstalled(\n 'com.coolapk.market',\n (isInstalled: boolean) => {\n if (isInstalled) {\n if (NativeModules.CheckPackageInstallation.goToMarket) {\n NativeModules.CheckPackageInstallation.goToMarket(\n ToolkitConfig.AndroidPackageName,\n 'com.coolapk.market',\n 'com.coolapk.market.activity.AppViewActivity'\n );\n } else {\n Tool.showToast('请用酷安市场打开');\n Linking.openURL(ToolkitConfig.AndroidStoreScheme);\n }\n } else {\n Tool.showToast('需要先安装酷安市场');\n }\n }\n );\n }\n }\n },\n\n goUpgrade: () => {\n if (Platform.OS === 'ios') {\n Linking.canOpenURL('itms-apps://').then((supported) => {\n if (supported) {\n Linking.openURL(ToolkitConfig.iOSStoreScheme);\n }\n });\n } else {\n Linking.openURL(ToolkitConfig.AppWebsite);\n }\n },\n\n notifyMe: async (text: string) => {\n if (!__DEV__) {\n await fetch(ToolkitConfig.PushDeerUrl + encodeURIComponent(text));\n }\n },\n\n hasAndroidWritePermission: async () => {\n const permission = PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE;\n\n const hasPermission = await PermissionsAndroid.check(permission);\n if (hasPermission) {\n return true;\n }\n\n const status = await PermissionsAndroid.request(permission);\n return status === 'granted';\n },\n\n savePicture: async (url: string, albumName?: string) => {\n console.log('savePicture', url);\n\n // 检查权限\n if (\n Platform.OS === 'android' &&\n !(await Tool.hasAndroidWritePermission())\n ) {\n return { errorCode: -1 };\n }\n\n // iOS 或本地图片直接保存\n if (Platform.OS === 'ios' || !Tool.isRemoteURL(url)) {\n try {\n await CameraRoll.save(url, {\n type: 'photo',\n album: albumName ?? ToolkitConfig.AppName,\n });\n return { errorCode: 0 };\n } catch (error: any) {\n console.error(error);\n return { errorCode: -2, errMsg: JSON.stringify(error) };\n }\n }\n\n // 安卓远程图片需要下载\n const extension = Tool.get_url_extension(url);\n try {\n const res = await RNFetchBlob.config({\n fileCache: true,\n appendExt: extension,\n }).fetch('GET', url, {});\n // the temp file path\n console.log('The file saved to ', res.path());\n try {\n await CameraRoll.save('file://' + res.path(), {\n type: 'photo',\n album: albumName,\n });\n return { errorCode: 0 };\n } catch (e1) {\n console.error(e1 + '\\n' + res.path());\n return { errorCode: -3, errMsg: JSON.stringify(e1) };\n }\n } catch (error) {\n console.error(error);\n return { errorCode: -4, errMsg: JSON.stringify(error) };\n }\n },\n};\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAMA,IAAAG,uBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,YAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAA0C,SAAAD,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAyBnC,IAAIG,aAAgC,GAAAC,OAAA,CAAAD,aAAA;AAEpC,MAAME,iBAAiB,GAAIC,MAAyB,IAAK;EAC9DF,OAAA,CAAAD,aAAA,GAAAA,aAAa,GAAGG,MAAM;AACxB,CAAC;AAACF,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAEF,MAAME,cAAc,GAAIC,MAAW,IAAK;EACtC,OACEA,MAAM,IACNA,MAAM,CAACC,QAAQ,CAAC,CAAC,KAAK,iBAAiB,IACvCC,MAAM,CAACC,cAAc,CAACH,MAAM,CAAC,KAAKE,MAAM,CAACE,SAAS;AAEtD,CAAC;AAED,MAAMC,QAAQ,GAAIL,MAAW,IAAU;EACrC,IAAIA,MAAM,IAAI,OAAOA,MAAM,CAACM,MAAM,KAAK,UAAU,EAAE,OAAON,MAAM,CAACM,MAAM,CAAC,CAAC;EACzE;EACA,IAAIC,KAAK,CAACC,OAAO,CAACR,MAAM,CAAC,EAAE,OAAOA,MAAM,CAACS,GAAG,CAACJ,QAAQ,CAAC;EACtD,OAAOL,MAAM;AACf,CAAC;AAEM,MAAMU,IAAI,GAAAd,OAAA,CAAAc,IAAA,GAAG;EAClBC,KAAK,EAAGC,KAAa,IACnB,IAAIC,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAEF,KAAK,CAAC,CAAC;EAEtDI,UAAUA,CAACC,IAAU,EAAEC,GAAW,EAAU;IAC1CA,GAAG,GAAGA,GAAG,GAAGA,GAAG,GAAG,YAAY;IAC9B,IAAIC,CAA4B,GAAG;MACjC,IAAI,EAAEF,IAAI,CAACG,QAAQ,CAAC,CAAC,GAAG,CAAC;MAAE;MAC3B,IAAI,EAAEH,IAAI,CAACI,OAAO,CAAC,CAAC;MAAE;MACtB,IAAI,EAAEJ,IAAI,CAACK,QAAQ,CAAC,CAAC;MAAE;MACvB,IAAI,EAAEL,IAAI,CAACM,UAAU,CAAC,CAAC;MAAE;MACzB,IAAI,EAAEN,IAAI,CAACO,UAAU,CAAC,CAAC;MAAE;MACzB,IAAI,EAAEC,IAAI,CAACC,KAAK,CAAC,CAACT,IAAI,CAACG,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;MAAE;MAC7C,GAAG,EAAEH,IAAI,CAACU,eAAe,CAAC,CAAC,CAAE;IAC/B,CAAC;;IAED;IACA,IAAI,OAAO,CAACC,IAAI,CAACV,GAAG,CAAC,EAAE;MACrBA,GAAG,GAAGA,GAAG,CAACW,OAAO,CACfC,MAAM,CAACC,EAAE,EACT,CAACd,IAAI,CAACe,WAAW,CAAC,CAAC,GAAG,EAAE,EAAEC,MAAM,CAAC,CAAC,GAAGH,MAAM,CAACC,EAAE,CAACG,MAAM,CACvD,CAAC;IACH;IAEA,KAAK,IAAIC,CAAC,IAAIhB,CAAC,EAAE;MACf,IAAI,IAAIW,MAAM,CAAC,GAAG,GAAGK,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,CAACP,IAAI,CAACV,GAAG,CAAC,EAAE;QAC5CA,GAAG,GAAGA,GAAG,CAACW,OAAO,CACfC,MAAM,CAACC,EAAE,EACT,CAACD,MAAM,CAACC,EAAE,CAACG,MAAM,KAAK,CAAC,GACnBf,CAAC,CAACgB,CAAC,CAAC,GACJ,CAAC,IAAI,GAAGhB,CAAC,CAACgB,CAAC,CAAC,EAAEF,MAAM,CAAC,CAAC,EAAE,GAAGd,CAAC,CAACgB,CAAC,CAAC,EAAED,MAAM,CAAC,EAC1CjC,QAAQ,CAAC,CACb,CAAC;MACH;IACF;IACA,OAAOiB,GAAG;EACZ,CAAC;EAEDkB,OAAO,EAAGpC,MAAW,IACnBD,cAAc,CAACC,MAAM,CAAC,GAClBE,MAAM,CAACmC,IAAI,CAACrC,MAAM,CAAC,CAACsC,MAAM,CACxB,CAACC,MAAM,EAAEC,GAAG,MAAM;IAChB,GAAGD,MAAM;IACT,CAACC,GAAG,GAAGnC,QAAQ,CAACL,MAAM,CAACwC,GAAG,CAAC;EAC7B,CAAC,CAAC,EACF,CAAC,CACH,CAAC,GACDnC,QAAQ,CAACL,MAAM,CAAC;EAEtByC,SAAS,EAAGC,KAAa,IAAK;IAC5B,OAAO,mBAAmB,CAACd,IAAI,CAACc,KAAK,CAAC;EACxC,CAAC;EAEDC,WAAW,EAAGC,GAAW,IAAK;IAC5B,OAAOA,GAAG,CAACC,UAAU,CAAC,MAAM,CAAC;EAC/B,CAAC;EAEDC,iBAAiB,EAAGC,GAAW,IAAK;IAAA,IAAAC,WAAA;IAClC,QAAAA,WAAA,GAAOD,GAAG,CAACE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAAD,WAAA,gBAAAA,WAAA,GAApBA,WAAA,CAAsBC,KAAK,CAAC,GAAG,CAAC,cAAAD,WAAA,gBAAAA,WAAA,GAAhCA,WAAA,CAAkCE,GAAG,CAAC,CAAC,cAAAF,WAAA,uBAAvCA,WAAA,CAAyCG,IAAI,CAAC,CAAC;EACxD,CAAC;EAEDC,gBAAgB,EAAEA,CAAA,KAAM;IACtB,IAAIC,SAAS,GAAG,CAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,GAAG,IAAI,GAAI,CAAC,EAAEtD,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,OACEoD,SAAS,GACT,kBAAkB,CAACxB,OAAO,CAAC,MAAM,EAAE,YAAY;MAC7C,OAAO,CAAEJ,IAAI,CAAC+B,MAAM,CAAC,CAAC,GAAG,EAAE,GAAI,CAAC,EAAEvD,QAAQ,CAAC,EAAE,CAAC,CAACwD,WAAW,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;EAEN,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,aAAa,EAAE,SAAAA,CAACC,KAAa,EAAyB;IAAA,IAAvBC,EAAE,GAAAC,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;IAAA,IAAEE,EAAE,GAAAF,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,CAAC;IAC/C,MAAMG,MAAM,GAAGJ,EAAE,GAAG,IAAI,GAAG,IAAI;IAE/B,IAAInC,IAAI,CAACwC,GAAG,CAACN,KAAK,CAAC,GAAGK,MAAM,EAAE;MAC5B,OAAOL,KAAK,GAAG,IAAI;IACrB;IAEA,MAAMO,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9D,IAAIC,CAAC,GAAG,CAAC,CAAC;IACV,MAAMC,CAAC,GAAG,EAAE,IAAIL,EAAE;IAElB,GAAG;MACDJ,KAAK,IAAIK,MAAM;MACf,EAAEG,CAAC;IACL,CAAC,QACC1C,IAAI,CAAC4C,KAAK,CAAC5C,IAAI,CAACwC,GAAG,CAACN,KAAK,CAAC,GAAGS,CAAC,CAAC,GAAGA,CAAC,IAAIJ,MAAM,IAC7CG,CAAC,GAAGD,KAAK,CAAChC,MAAM,GAAG,CAAC;IAGtB,OAAOyB,KAAK,CAACW,OAAO,CAACP,EAAE,CAAC,GAAG,GAAG,GAAGG,KAAK,CAACC,CAAC,CAAC;EAC3C,CAAC;EAEDI,cAAc,EAAEA,CAAA,KAAM;IACpB,MAAM,GAAGC,QAAQ,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;IAChC,OAAO,MAAMD,QAAQ,CAAE9B,KAAK,IAAKA,KAAK,GAAG,CAAC,CAAC;EAC7C,CAAC;EAEDgC,SAAS,EAAGC,KAAa,IAAK;IAC5BC,+BAAK,CAACC,eAAe,CAACF,KAAK,EAAEC,+BAAK,CAACE,KAAK,EAAEF,+BAAK,CAACG,MAAM,CAAC;EACzD,CAAC;EAEDC,gBAAgB,EAAEA,CAAA,KAAM;IACtBC,sBAAU,CAACC,MAAM,CAAC,aAAa,CAAC;IAChC,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,oBAAO,CAACC,UAAU,CAAC,cAAc,CAAC,CAACC,IAAI,CAAEC,SAAS,IAAK;QACrD,IAAIA,SAAS,EAAE;UACbH,oBAAO,CAACI,OAAO,CAAC9F,aAAa,CAAC+F,YAAY,CAAC;QAC7C;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,IAAIC,0BAAa,CAACC,wBAAwB,EAAE;QAC1CD,0BAAa,CAACC,wBAAwB,CAACC,kBAAkB,CACvD,oBAAoB,EACnBC,WAAoB,IAAK;UACxB,IAAIA,WAAW,EAAE;YACf,IAAIH,0BAAa,CAACC,wBAAwB,CAACG,UAAU,EAAE;cACrDJ,0BAAa,CAACC,wBAAwB,CAACG,UAAU,CAC/CpG,aAAa,CAACqG,kBAAkB,EAChC,oBAAoB,EACpB,6CACF,CAAC;YACH,CAAC,MAAM;cACLtF,IAAI,CAACgE,SAAS,CAAC,UAAU,CAAC;cAC1BW,oBAAO,CAACI,OAAO,CAAC9F,aAAa,CAACsG,kBAAkB,CAAC;YACnD;UACF,CAAC,MAAM;YACLvF,IAAI,CAACgE,SAAS,CAAC,WAAW,CAAC;UAC7B;QACF,CACF,CAAC;MACH;IACF;EACF,CAAC;EAEDwB,SAAS,EAAEA,CAAA,KAAM;IACf,IAAIf,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,oBAAO,CAACC,UAAU,CAAC,cAAc,CAAC,CAACC,IAAI,CAAEC,SAAS,IAAK;QACrD,IAAIA,SAAS,EAAE;UACbH,oBAAO,CAACI,OAAO,CAAC9F,aAAa,CAACwG,cAAc,CAAC;QAC/C;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACLd,oBAAO,CAACI,OAAO,CAAC9F,aAAa,CAACyG,UAAU,CAAC;IAC3C;EACF,CAAC;EAEDC,QAAQ,EAAE,MAAOC,IAAY,IAAK;IAChC,IAAI,CAACC,OAAO,EAAE;MACZ,MAAMC,KAAK,CAAC7G,aAAa,CAAC8G,WAAW,GAAGC,kBAAkB,CAACJ,IAAI,CAAC,CAAC;IACnE;EACF,CAAC;EAEDK,yBAAyB,EAAE,MAAAA,CAAA,KAAY;IACrC,MAAMC,UAAU,GAAGC,+BAAkB,CAACC,WAAW,CAACC,sBAAsB;IAExE,MAAMC,aAAa,GAAG,MAAMH,+BAAkB,CAACI,KAAK,CAACL,UAAU,CAAC;IAChE,IAAII,aAAa,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,MAAME,MAAM,GAAG,MAAML,+BAAkB,CAACM,OAAO,CAACP,UAAU,CAAC;IAC3D,OAAOM,MAAM,KAAK,SAAS;EAC7B,CAAC;EAEDE,WAAW,EAAE,MAAAA,CAAOrE,GAAW,EAAEsE,SAAkB,KAAK;IACtDC,OAAO,CAACC,GAAG,CAAC,aAAa,EAAExE,GAAG,CAAC;;IAE/B;IACA,IACEoC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IACzB,EAAE,MAAM1E,IAAI,CAACiG,yBAAyB,CAAC,CAAC,CAAC,EACzC;MACA,OAAO;QAAEa,SAAS,EAAE,CAAC;MAAE,CAAC;IAC1B;;IAEA;IACA,IAAIrC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,CAAC1E,IAAI,CAACiC,WAAW,CAACI,GAAG,CAAC,EAAE;MACnD,IAAI;QACF,MAAM0E,mBAAU,CAACC,IAAI,CAAC3E,GAAG,EAAE;UACzB4E,IAAI,EAAE,OAAO;UACbC,KAAK,EAAEP,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI1H,aAAa,CAACkI;QACpC,CAAC,CAAC;QACF,OAAO;UAAEL,SAAS,EAAE;QAAE,CAAC;MACzB,CAAC,CAAC,OAAOM,KAAU,EAAE;QACnBR,OAAO,CAACQ,KAAK,CAACA,KAAK,CAAC;QACpB,OAAO;UAAEN,SAAS,EAAE,CAAC,CAAC;UAAEO,MAAM,EAAEC,IAAI,CAACC,SAAS,CAACH,KAAK;QAAE,CAAC;MACzD;IACF;;IAEA;IACA,MAAMI,SAAS,GAAGxH,IAAI,CAACoC,iBAAiB,CAACC,GAAG,CAAC;IAC7C,IAAI;MACF,MAAMoF,GAAG,GAAG,MAAMC,oBAAW,CAACtI,MAAM,CAAC;QACnCuI,SAAS,EAAE,IAAI;QACfC,SAAS,EAAEJ;MACb,CAAC,CAAC,CAAC1B,KAAK,CAAC,KAAK,EAAEzD,GAAG,EAAE,CAAC,CAAC,CAAC;MACxB;MACAuE,OAAO,CAACC,GAAG,CAAC,oBAAoB,EAAEY,GAAG,CAACI,IAAI,CAAC,CAAC,CAAC;MAC7C,IAAI;QACF,MAAMd,mBAAU,CAACC,IAAI,CAAC,SAAS,GAAGS,GAAG,CAACI,IAAI,CAAC,CAAC,EAAE;UAC5CZ,IAAI,EAAE,OAAO;UACbC,KAAK,EAAEP;QACT,CAAC,CAAC;QACF,OAAO;UAAEG,SAAS,EAAE;QAAE,CAAC;MACzB,CAAC,CAAC,OAAOgB,EAAE,EAAE;QACXlB,OAAO,CAACQ,KAAK,CAACU,EAAE,GAAG,IAAI,GAAGL,GAAG,CAACI,IAAI,CAAC,CAAC,CAAC;QACrC,OAAO;UAAEf,SAAS,EAAE,CAAC,CAAC;UAAEO,MAAM,EAAEC,IAAI,CAACC,SAAS,CAACO,EAAE;QAAE,CAAC;MACtD;IACF,CAAC,CAAC,OAAOV,KAAK,EAAE;MACdR,OAAO,CAACQ,KAAK,CAACA,KAAK,CAAC;MACpB,OAAO;QAAEN,SAAS,EAAE,CAAC,CAAC;QAAEO,MAAM,EAAEC,IAAI,CAACC,SAAS,CAACH,KAAK;MAAE,CAAC;IACzD;EACF;AACF,CAAC"}
|
|
1
|
+
{"version":3,"names":["_cameraroll","_interopRequireDefault","require","_react","_reactNative","_reactNativeSimpleToast","_rnFetchBlob","_ReportUtil","obj","__esModule","default","ToolkitConfig","exports","initToolkitConfig","config","_isPlainObject","target","toString","Object","getPrototypeOf","prototype","_jsonify","toJSON","Array","isArray","map","Tool","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","jsonify","keys","reduce","result","key","isChinese","value","isRemoteURL","str","startsWith","get_url_extension","url","_url$split$","split","pop","trim","generateObjectId","timestamp","Date","getTime","random","toLowerCase","humanFileSize","bytes","si","arguments","undefined","dp","thresh","abs","units","u","r","round","toFixed","useForceUpdate","setValue","useState","showToast","toast","Toast","showWithGravity","SHORT","CENTER","goAppStoreReview","ReportUtil","report","Platform","OS","Linking","canOpenURL","then","supported","openURL","iOSReviewUrl","NativeModules","CheckPackageInstallation","isPackageInstalled","isInstalled","goToMarket","AndroidPackageName","AndroidStoreScheme","goUpgrade","iOSStoreScheme","AppWebsite","notifyMe","text","__DEV__","fetch","PushDeerUrl","encodeURIComponent","hasAndroidWritePermission","permission","PermissionsAndroid","PERMISSIONS","WRITE_EXTERNAL_STORAGE","hasPermission","check","status","request","savePicture","albumName","console","log","errorCode","CameraRoll","save","type","album","AppName","error","errMsg","JSON","stringify","extension","res","RNFetchBlob","fileCache","appendExt","path","e1"],"sources":["Tool.ts"],"sourcesContent":["import CameraRoll from '@react-native-community/cameraroll';\nimport { useState } from 'react';\nimport {\n Linking,\n NativeModules,\n PermissionsAndroid,\n Platform,\n} from 'react-native';\nimport Toast from 'react-native-simple-toast';\nimport RNFetchBlob from 'rn-fetch-blob';\nimport { ReportUtil } from './ReportUtil';\n\nexport interface ToolkitConfigType {\n iOSStoreUrl: string;\n AndroidStoreUrl: string;\n iOSStoreScheme: string;\n AndroidStoreScheme: string;\n iOSReviewUrl: string;\n AndroidPackageName: string;\n\n AppName: string;\n AppWebsite: string;\n\n PolicyUrl: string;\n TermsUrl: string;\n\n PushDeerUrl: string;\n\n RC_API_KEY: string;\n RC_ENTITLEMENT_ID: string;\n WeChatPayServer: string;\n WeiXinId: string;\n WeiXinSecret: string;\n\n SentryDSN: string;\n}\n\nexport let ToolkitConfig: ToolkitConfigType;\n\nexport const initToolkitConfig = (config: ToolkitConfigType) => {\n ToolkitConfig = config;\n};\n\nconst _isPlainObject = (target: any) => {\n return (\n target &&\n target.toString() === '[object Object]' &&\n Object.getPrototypeOf(target) === Object.prototype\n );\n};\n\nconst _jsonify = (target: any): any => {\n if (target && typeof target.toJSON === 'function') return target.toJSON();\n // map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一次提供的函数后的返回值\n if (Array.isArray(target)) return target.map(_jsonify);\n return target;\n};\n\nexport 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 jsonify: (target: any) =>\n _isPlainObject(target)\n ? Object.keys(target).reduce(\n (result, key) => ({\n ...result,\n [key]: _jsonify(target[key]),\n }),\n {}\n )\n : _jsonify(target),\n\n isChinese: (value: string) => {\n return /[\\u4E00-\\u9FA5]+/g.test(value);\n },\n\n isRemoteURL: (str: string) => {\n return str.startsWith('http');\n },\n\n get_url_extension: (url: string) => {\n return url.split(/[#?]/)[0]?.split('.')?.pop()?.trim();\n },\n\n generateObjectId: () => {\n var timestamp = ((new Date().getTime() / 1000) | 0).toString(16); // eslint-disable-line no-bitwise\n return (\n timestamp +\n 'xxxxxxxxxxxxxxxx'.replace(/[x]/g, function () {\n return ((Math.random() * 16) | 0).toString(16).toLowerCase(); // eslint-disable-line no-bitwise\n })\n );\n },\n\n /**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\n humanFileSize: (bytes: number, si = false, dp = 1) => {\n const thresh = si ? 1000 : 1024;\n\n if (Math.abs(bytes) < thresh) {\n return bytes + ' B';\n }\n\n const units = ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let u = -1;\n const r = 10 ** dp;\n\n do {\n bytes /= thresh;\n ++u;\n } while (\n Math.round(Math.abs(bytes) * r) / r >= thresh &&\n u < units.length - 1\n );\n\n return bytes.toFixed(dp) + ' ' + units[u];\n },\n\n useForceUpdate: () => {\n const [, setValue] = useState(0);\n return () => setValue((value) => value + 1);\n },\n\n showToast: (toast: string) => {\n Toast.showWithGravity(toast, Toast.SHORT, Toast.CENTER);\n },\n\n goAppStoreReview: () => {\n ReportUtil.report('StoreReview');\n if (Platform.OS === 'ios') {\n Linking.canOpenURL('itms-apps://').then((supported) => {\n if (supported) {\n Linking.openURL(ToolkitConfig.iOSReviewUrl);\n }\n });\n } else {\n if (NativeModules.CheckPackageInstallation) {\n NativeModules.CheckPackageInstallation.isPackageInstalled(\n 'com.coolapk.market',\n (isInstalled: boolean) => {\n if (isInstalled) {\n if (NativeModules.CheckPackageInstallation.goToMarket) {\n NativeModules.CheckPackageInstallation.goToMarket(\n ToolkitConfig.AndroidPackageName,\n 'com.coolapk.market',\n 'com.coolapk.market.activity.AppViewActivity'\n );\n } else {\n Tool.showToast('请用酷安市场打开');\n Linking.openURL(ToolkitConfig.AndroidStoreScheme);\n }\n } else {\n Tool.showToast('需要先安装酷安市场');\n }\n }\n );\n }\n }\n },\n\n goUpgrade: () => {\n if (Platform.OS === 'ios') {\n Linking.canOpenURL('itms-apps://').then((supported) => {\n if (supported) {\n Linking.openURL(ToolkitConfig.iOSStoreScheme);\n }\n });\n } else {\n Linking.openURL(ToolkitConfig.AppWebsite);\n }\n },\n\n notifyMe: async (text: string) => {\n if (!__DEV__) {\n await fetch(ToolkitConfig.PushDeerUrl + encodeURIComponent(text));\n }\n },\n\n hasAndroidWritePermission: async () => {\n const permission = PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE;\n\n const hasPermission = await PermissionsAndroid.check(permission);\n if (hasPermission) {\n return true;\n }\n\n const status = await PermissionsAndroid.request(permission);\n return status === 'granted';\n },\n\n savePicture: async (url: string, albumName?: string) => {\n console.log('savePicture', url);\n\n // 检查权限\n if (\n Platform.OS === 'android' &&\n !(await Tool.hasAndroidWritePermission())\n ) {\n return { errorCode: -1 };\n }\n\n // iOS 或本地图片直接保存\n if (Platform.OS === 'ios' || !Tool.isRemoteURL(url)) {\n try {\n await CameraRoll.save(url, {\n type: 'photo',\n album: albumName ?? ToolkitConfig.AppName,\n });\n return { errorCode: 0 };\n } catch (error: any) {\n console.error(error);\n return { errorCode: -2, errMsg: JSON.stringify(error) };\n }\n }\n\n // 安卓远程图片需要下载\n const extension = Tool.get_url_extension(url);\n try {\n const res = await RNFetchBlob.config({\n fileCache: true,\n appendExt: extension,\n }).fetch('GET', url, {});\n // the temp file path\n console.log('The file saved to ', res.path());\n try {\n await CameraRoll.save('file://' + res.path(), {\n type: 'photo',\n album: albumName,\n });\n return { errorCode: 0 };\n } catch (e1) {\n console.error(e1 + '\\n' + res.path());\n return { errorCode: -3, errMsg: JSON.stringify(e1) };\n }\n } catch (error) {\n console.error(error);\n return { errorCode: -4, errMsg: JSON.stringify(error) };\n }\n },\n};\n"],"mappings":"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"}
|
|
@@ -134,9 +134,6 @@ const VipManager = exports.VipManager = {
|
|
|
134
134
|
try {
|
|
135
135
|
const offerings = await _reactNativePurchases.default.getOfferings();
|
|
136
136
|
let targetOffering = offerings.current;
|
|
137
|
-
if (__DEV__) {
|
|
138
|
-
targetOffering = offerings.all.NormalVip;
|
|
139
|
-
}
|
|
140
137
|
console.log('获取商品');
|
|
141
138
|
if (targetOffering !== null && targetOffering.availablePackages.length !== 0) {
|
|
142
139
|
let packages = targetOffering.availablePackages;
|