@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.
Files changed (90) hide show
  1. package/.DS_Store +0 -0
  2. package/.circleci/config.yml +98 -0
  3. package/.editorconfig +15 -0
  4. package/.gitattributes +3 -0
  5. package/.gitignore +60 -0
  6. package/.prettierrc +8 -0
  7. package/.vscode/settings.json +9 -0
  8. package/.watchmanconfig +6 -0
  9. package/README.md +63 -12
  10. package/babel.config.js +3 -0
  11. package/ios/.DS_Store +0 -0
  12. package/lib/commonjs/LoginManager.js +0 -1
  13. package/lib/commonjs/LoginManager.js.map +1 -1
  14. package/lib/commonjs/SentryManager.js +2 -1
  15. package/lib/commonjs/SentryManager.js.map +1 -1
  16. package/lib/commonjs/Tool.js.map +1 -1
  17. package/lib/commonjs/VipManager.js +0 -3
  18. package/lib/commonjs/VipManager.js.map +1 -1
  19. package/lib/module/LoginManager.js +0 -1
  20. package/lib/module/LoginManager.js.map +1 -1
  21. package/lib/module/SentryManager.js +2 -1
  22. package/lib/module/SentryManager.js.map +1 -1
  23. package/lib/module/Tool.js.map +1 -1
  24. package/lib/module/VipManager.js +0 -3
  25. package/lib/module/VipManager.js.map +1 -1
  26. package/lib/typescript/{src/Tool.d.ts → Tool.d.ts} +1 -0
  27. package/locales/en-US.json +1 -0
  28. package/locales/zh-CN.json +1 -0
  29. package/package.json +26 -26
  30. package/src/.DS_Store +0 -0
  31. package/src/LoginManager.ts +0 -1
  32. package/src/SentryManager.ts +2 -1
  33. package/src/Tool.ts +2 -0
  34. package/src/VipManager.ts +0 -3
  35. package/tsconfig.json +27 -0
  36. package/yarn.lock +11432 -0
  37. package/lib/typescript/babel.config.d.ts +0 -1
  38. package/lib/typescript/lib/commonjs/AppBadgeContext.d.ts +0 -8
  39. package/lib/typescript/lib/commonjs/AppleLoginUtil.d.ts +0 -27
  40. package/lib/typescript/lib/commonjs/ConfigDataModel.d.ts +0 -14
  41. package/lib/typescript/lib/commonjs/DevConfig.d.ts +0 -7
  42. package/lib/typescript/lib/commonjs/Frequence.d.ts +0 -6
  43. package/lib/typescript/lib/commonjs/LoginManager.d.ts +0 -15
  44. package/lib/typescript/lib/commonjs/MessageModel.d.ts +0 -10
  45. package/lib/typescript/lib/commonjs/Notification.d.ts +0 -8
  46. package/lib/typescript/lib/commonjs/PrefData.d.ts +0 -79
  47. package/lib/typescript/lib/commonjs/ReportUtil.d.ts +0 -16
  48. package/lib/typescript/lib/commonjs/SentryManager.d.ts +0 -5
  49. package/lib/typescript/lib/commonjs/SyncPrefData.d.ts +0 -5
  50. package/lib/typescript/lib/commonjs/Tool.d.ts +0 -26
  51. package/lib/typescript/lib/commonjs/VipAndroidManager.d.ts +0 -25
  52. package/lib/typescript/lib/commonjs/VipManager.d.ts +0 -25
  53. package/lib/typescript/lib/commonjs/WeChatLoginUtil.d.ts +0 -4
  54. package/lib/typescript/lib/commonjs/constant.d.ts +0 -3
  55. package/lib/typescript/lib/commonjs/index.d.ts +0 -3
  56. package/lib/typescript/lib/module/AppBadgeContext.d.ts +0 -14
  57. package/lib/typescript/lib/module/AppleLoginUtil.d.ts +0 -26
  58. package/lib/typescript/lib/module/ConfigDataModel.d.ts +0 -13
  59. package/lib/typescript/lib/module/DevConfig.d.ts +0 -6
  60. package/lib/typescript/lib/module/Frequence.d.ts +0 -5
  61. package/lib/typescript/lib/module/LoginManager.d.ts +0 -14
  62. package/lib/typescript/lib/module/MessageModel.d.ts +0 -9
  63. package/lib/typescript/lib/module/Notification.d.ts +0 -7
  64. package/lib/typescript/lib/module/PrefData.d.ts +0 -78
  65. package/lib/typescript/lib/module/ReportUtil.d.ts +0 -15
  66. package/lib/typescript/lib/module/SentryManager.d.ts +0 -4
  67. package/lib/typescript/lib/module/SyncPrefData.d.ts +0 -4
  68. package/lib/typescript/lib/module/Tool.d.ts +0 -25
  69. package/lib/typescript/lib/module/VipAndroidManager.d.ts +0 -24
  70. package/lib/typescript/lib/module/VipManager.d.ts +0 -24
  71. package/lib/typescript/lib/module/WeChatLoginUtil.d.ts +0 -3
  72. package/lib/typescript/lib/module/constant.d.ts +0 -2
  73. package/lib/typescript/lib/module/index.d.ts +0 -19
  74. /package/lib/typescript/{src/AppBadgeContext.d.ts → AppBadgeContext.d.ts} +0 -0
  75. /package/lib/typescript/{src/AppleLoginUtil.d.ts → AppleLoginUtil.d.ts} +0 -0
  76. /package/lib/typescript/{src/ConfigDataModel.d.ts → ConfigDataModel.d.ts} +0 -0
  77. /package/lib/typescript/{src/DevConfig.d.ts → DevConfig.d.ts} +0 -0
  78. /package/lib/typescript/{src/Frequence.d.ts → Frequence.d.ts} +0 -0
  79. /package/lib/typescript/{src/LoginManager.d.ts → LoginManager.d.ts} +0 -0
  80. /package/lib/typescript/{src/MessageModel.d.ts → MessageModel.d.ts} +0 -0
  81. /package/lib/typescript/{src/Notification.d.ts → Notification.d.ts} +0 -0
  82. /package/lib/typescript/{src/PrefData.d.ts → PrefData.d.ts} +0 -0
  83. /package/lib/typescript/{src/ReportUtil.d.ts → ReportUtil.d.ts} +0 -0
  84. /package/lib/typescript/{src/SentryManager.d.ts → SentryManager.d.ts} +0 -0
  85. /package/lib/typescript/{src/SyncPrefData.d.ts → SyncPrefData.d.ts} +0 -0
  86. /package/lib/typescript/{src/VipAndroidManager.d.ts → VipAndroidManager.d.ts} +0 -0
  87. /package/lib/typescript/{src/VipManager.d.ts → VipManager.d.ts} +0 -0
  88. /package/lib/typescript/{src/WeChatLoginUtil.d.ts → WeChatLoginUtil.d.ts} +0 -0
  89. /package/lib/typescript/{src/constant.d.ts → constant.d.ts} +0 -0
  90. /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
@@ -0,0 +1,3 @@
1
+ *.pbxproj -text
2
+ # specific for windows script files
3
+ *.bat text eol=crlf
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
@@ -0,0 +1,8 @@
1
+ {
2
+ "tabWidth": 2,
3
+ "useTabs": false,
4
+ "bracketSpacing": false,
5
+ "jsxBracketSameLine": true,
6
+ "singleQuote": true,
7
+ "trailingComma": "all"
8
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "editor.formatOnSave": true,
3
+ "editor.codeActionsOnSave": {
4
+ "source.organizeImports": true
5
+ },
6
+ "prettier.tabWidth": 4,
7
+ "prettier.jsxBracketSameLine": true,
8
+ "editor.tabSize": 2
9
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "ignore_dirs": [
3
+ ".git",
4
+ "node_modules"
5
+ ]
6
+ }
package/README.md CHANGED
@@ -1,27 +1,78 @@
1
1
  # @norcy/react-native-toolkit
2
2
 
3
- My Toolkit
3
+ App 工厂核心组件
4
4
 
5
- ## Installation
5
+ ## 安装
6
6
 
7
7
  ```sh
8
- npm install @norcy/react-native-toolkit
8
+ yarn add @norcy/react-native-toolkit
9
9
  ```
10
10
 
11
- ## Usage
11
+ ## 维护
12
+ 【重要】TS 校验和 ESLint 校验
12
13
 
13
- ```js
14
- import ReactNativeToolkit from "@norcy/react-native-toolkit";
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
- const result = await ReactNativeToolkit.multiply(3, 7);
39
+ ```sh
40
+ yarn example start
19
41
  ```
20
42
 
21
- ## Contributing
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
- See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
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
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ presets: ['module:metro-react-native-babel-preset'],
3
+ };
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":"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"}
@@ -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: 'https://a67f2741a16c45c4a66527b8f8b046a2@o473216.ingest.sentry.io/6509175',
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: 'https://a67f2741a16c45c4a66527b8f8b046a2@o473216.ingest.sentry.io/6509175',\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;AAA8C,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAEvC,MAAMW,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,IAAI,EAAEA,CAAA,KAAM;IACV,IAAIC,OAAO,EAAE;MACXC,OAAO,CAACC,GAAG,CAAC,qBAAqB,CAAC;IACpC,CAAC,MAAM;MACL;MACAD,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC;MACrC/B,MAAM,CAAC4B,IAAI,CAAC;QACVI,GAAG,EAAE,2EAA2E;QAChFC,gBAAgB,EAAE;MACpB,CAAC,CAAC;MAEFC,0BAAY,CAACC,WAAW,CACtB,SAAS,EACTC,IAAA,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,CAAC3B,GAAG,CAAC,UAAU,CAAC;YAC/B4B,KAAK,EAAEJ,IAAI,CAACI,KAAK;YACjBC,QAAQ,EAAEL,IAAI,CAACM;UACjB,CAAC;UACD5C,MAAM,CAAC6C,OAAO,CAACN,UAAU,CAAC;QAC5B;MACF,CACF,CAAC;MAEDL,0BAAY,CAACC,WAAW,CAAC,UAAU,EAAE,MAAM;QACzCnC,MAAM,CAAC6C,OAAO,CAAC,IAAI,CAAC;MACtB,CAAC,CAAC;;MAEF;MACA;MACA;IACF;EACF,CAAC;;EAEDC,MAAM,EAAEA,CAAC1B,GAAW,EAAE2B,KAAU,KAAK;IACnC,IAAI,CAAClB,OAAO,EAAE;MACZ,IAAIT,GAAG,CAAC4B,MAAM,EAAE;QACdhD,MAAM,CAAC8C,MAAM,CAAC1B,GAAG,EAAE2B,KAAK,CAAC;MAC3B;IACF;EACF;AACF,CAAC"}
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"}
@@ -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":"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"}
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;