@abtnode/util 1.16.13 → 1.16.14-beta-0c29907f

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 (2) hide show
  1. package/lib/user.js +70 -1
  2. package/package.json +9 -9
package/lib/user.js CHANGED
@@ -1,8 +1,14 @@
1
1
  const path = require('path');
2
2
  const fs = require('fs-extra');
3
+ const joinUrl = require('url-join');
3
4
  const cloneDeep = require('lodash/cloneDeep');
4
5
 
5
- const { USER_AVATAR_DIR, USER_AVATAR_URL_PREFIX } = require('@abtnode/constant');
6
+ const {
7
+ USER_AVATAR_DIR,
8
+ WELLKNOWN_SERVICE_PATH_PREFIX,
9
+ USER_AVATAR_PATH_PREFIX,
10
+ USER_AVATAR_URL_PREFIX,
11
+ } = require('@abtnode/constant');
6
12
 
7
13
  const md5 = require('./md5');
8
14
  const axios = require('./axios');
@@ -10,6 +16,66 @@ const axios = require('./axios');
10
16
  const getAvatarFile = (dataDir, fileName) =>
11
17
  path.join(dataDir, USER_AVATAR_DIR, fileName.substring(0, 2), fileName.substring(2));
12
18
 
19
+ const getServerAvatarUrl = (baseUrl, info) => {
20
+ if (!baseUrl) {
21
+ return '';
22
+ }
23
+
24
+ let origin = baseUrl;
25
+ try {
26
+ origin = new URL(baseUrl).origin;
27
+ } catch {
28
+ // Do nothing;
29
+ }
30
+
31
+ return joinUrl(
32
+ origin,
33
+ process.env.NODE_ENV === 'production' ? info.routing.adminPath : '',
34
+ `/images/node.png?v=${info.version}`
35
+ );
36
+ };
37
+
38
+ const getAppAvatarUrl = (baseUrl) => {
39
+ if (!baseUrl) {
40
+ return '';
41
+ }
42
+
43
+ let origin = baseUrl;
44
+ try {
45
+ origin = new URL(baseUrl).origin;
46
+ } catch {
47
+ // Do nothing;
48
+ }
49
+
50
+ return joinUrl(origin, WELLKNOWN_SERVICE_PATH_PREFIX, `/blocklet/logo?t=${Date.now()}`);
51
+ };
52
+
53
+ const getUserAvatarUrl = (baseUrl, avatar, info = {}, isServer = false) => {
54
+ if (!avatar) {
55
+ return '';
56
+ }
57
+
58
+ if (!avatar.startsWith(USER_AVATAR_URL_PREFIX)) {
59
+ throw new Error('User avatar is not persisted on disk');
60
+ }
61
+
62
+ const filename = avatar.split('/').pop();
63
+
64
+ let origin = baseUrl;
65
+ try {
66
+ origin = new URL(baseUrl).origin;
67
+ } catch {
68
+ // Do nothing;
69
+ }
70
+
71
+ if (isServer) {
72
+ const prefix = process.env.NODE_ENV !== 'development' ? info.routing.adminPath : '';
73
+ return joinUrl(origin, prefix, USER_AVATAR_PATH_PREFIX, info.did, filename);
74
+ }
75
+
76
+ return joinUrl(origin, WELLKNOWN_SERVICE_PATH_PREFIX, USER_AVATAR_PATH_PREFIX, filename);
77
+ };
78
+
13
79
  /**
14
80
  * save base64 avatar data to storage and return url
15
81
  */
@@ -127,4 +193,7 @@ module.exports = {
127
193
  getAvatarByUrl,
128
194
  getAvatarByEmail,
129
195
  getEmailHash,
196
+ getUserAvatarUrl,
197
+ getAppAvatarUrl,
198
+ getServerAvatarUrl,
130
199
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.16.13",
6
+ "version": "1.16.14-beta-0c29907f",
7
7
  "description": "ArcBlock's JavaScript utility",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -18,13 +18,13 @@
18
18
  "author": "polunzh <polunzh@gmail.com> (http://github.com/polunzh)",
19
19
  "license": "Apache-2.0",
20
20
  "dependencies": {
21
- "@abtnode/constant": "1.16.13",
22
- "@abtnode/logger": "1.16.13",
23
- "@blocklet/constant": "1.16.13",
24
- "@ocap/client": "1.18.84",
25
- "@ocap/mcrypto": "1.18.84",
26
- "@ocap/util": "1.18.84",
27
- "@ocap/wallet": "1.18.84",
21
+ "@abtnode/constant": "1.16.14-beta-0c29907f",
22
+ "@abtnode/logger": "1.16.14-beta-0c29907f",
23
+ "@blocklet/constant": "1.16.14-beta-0c29907f",
24
+ "@ocap/client": "1.18.87",
25
+ "@ocap/mcrypto": "1.18.87",
26
+ "@ocap/util": "1.18.87",
27
+ "@ocap/wallet": "1.18.87",
28
28
  "archiver": "^5.3.1",
29
29
  "axios": "^0.27.2",
30
30
  "axios-mock-adapter": "^1.21.2",
@@ -74,5 +74,5 @@
74
74
  "jest": "^27.5.1",
75
75
  "unzipper": "^0.10.11"
76
76
  },
77
- "gitHead": "0f07f6617a8cf53a4fa693d6ca227f6f6bd90af2"
77
+ "gitHead": "1f02851a71861dbf09bfedfa9df6d9fc6d2355a3"
78
78
  }