@abtnode/core 1.16.15-beta-74505f06 → 1.16.15-beta-e3a24907
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/team.js +25 -20
- package/lib/router/index.js +19 -19
- package/package.json +19 -19
package/lib/api/team.js
CHANGED
|
@@ -481,29 +481,34 @@ class TeamAPI extends EventEmitter {
|
|
|
481
481
|
throw new Error('User is not exist', { userDid, teamDid });
|
|
482
482
|
}
|
|
483
483
|
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
const match = regex.exec(avatar);
|
|
499
|
-
if (match) {
|
|
500
|
-
avatar = await extractUserAvatar(avatar, { dataDirs: this.dataDirs });
|
|
484
|
+
const mergeData = { ...profile };
|
|
485
|
+
|
|
486
|
+
if (mergeData.avatar) {
|
|
487
|
+
if (mergeData.avatar.startsWith(USER_AVATAR_URL_PREFIX)) {
|
|
488
|
+
// pass
|
|
489
|
+
} else if (isUrl(mergeData.avatar)) {
|
|
490
|
+
try {
|
|
491
|
+
mergeData.avatar = await getAvatarByUrl(mergeData.avatar);
|
|
492
|
+
const blocklet = await getBlocklet({ did: teamDid, states: this.states, dataDirs: this.dataDirs });
|
|
493
|
+
mergeData.avatar = await extractUserAvatar(mergeData.avatar, { dataDir: blocklet.env.dataDir });
|
|
494
|
+
} catch {
|
|
495
|
+
logger.error('Failed to convert external avatar', { teamDid, userDid, avatar: mergeData.avatar });
|
|
496
|
+
throw new Error('Failed to convert external avatar');
|
|
497
|
+
}
|
|
501
498
|
} else {
|
|
502
|
-
|
|
503
|
-
|
|
499
|
+
// 仅当 avatar 是 base64 时,对 avatar 进行处理
|
|
500
|
+
const regex = /^data:image\/(\w+);base64,/;
|
|
501
|
+
const match = regex.exec(mergeData.avatar);
|
|
502
|
+
if (match) {
|
|
503
|
+
const blocklet = await getBlocklet({ did: teamDid, states: this.states, dataDirs: this.dataDirs });
|
|
504
|
+
mergeData.avatar = await extractUserAvatar(mergeData.avatar, { dataDir: blocklet.env.dataDir });
|
|
505
|
+
} else {
|
|
506
|
+
logger.error('Profile avatar is invalid', { teamDid, userDid, profile });
|
|
507
|
+
throw new Error('Profile avatar is invalid');
|
|
508
|
+
}
|
|
504
509
|
}
|
|
505
510
|
}
|
|
506
|
-
const doc = await state.updateUser(userDid,
|
|
511
|
+
const doc = await state.updateUser(userDid, mergeData);
|
|
507
512
|
logger.info('User switch-profile successfully', { teamDid, userDid });
|
|
508
513
|
this.emit(EVENTS.USER_UPDATED, { teamDid, user: doc });
|
|
509
514
|
return doc;
|
package/lib/router/index.js
CHANGED
|
@@ -194,6 +194,23 @@ Router.formatSites = (sites = []) => {
|
|
|
194
194
|
const rules = Array.isArray(site.rules) ? cloneDeep(site.rules) : [];
|
|
195
195
|
const grouped = {};
|
|
196
196
|
|
|
197
|
+
// 0. serve robots.txt/sitemap.xml from root and proxy to daemon
|
|
198
|
+
if (isBlockletSite(site.domain) && !site.rules.find((x) => x.from.pathPrefix === '/robots.txt')) {
|
|
199
|
+
site.rules.push({
|
|
200
|
+
dynamic: true,
|
|
201
|
+
from: {
|
|
202
|
+
pathPrefix: '/',
|
|
203
|
+
groupPathPrefix: '/',
|
|
204
|
+
pathSuffix: '/(robots.txt|sitemap.xml)',
|
|
205
|
+
},
|
|
206
|
+
to: {
|
|
207
|
+
type: ROUTING_RULE_TYPES.DAEMON,
|
|
208
|
+
port: daemonRule.to.port,
|
|
209
|
+
did: site.blockletDid,
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
|
|
197
214
|
// 1. serve blocklet.js for each component: both prefix and suffix do not contain trailing slash
|
|
198
215
|
rules.forEach((rule) => {
|
|
199
216
|
if ([ROUTING_RULE_TYPES.BLOCKLET].includes(rule.to.type) === false) {
|
|
@@ -209,29 +226,12 @@ Router.formatSites = (sites = []) => {
|
|
|
209
226
|
}
|
|
210
227
|
|
|
211
228
|
grouped[rule.from.groupPathPrefix] = rule;
|
|
212
|
-
|
|
213
|
-
site.rules.push({
|
|
214
|
-
dynamic: true,
|
|
215
|
-
from: {
|
|
216
|
-
pathPrefix: rule.from.pathPrefix,
|
|
217
|
-
groupPathPrefix: rule.from.groupPathPrefix,
|
|
218
|
-
pathSuffix: '/__meta__.js',
|
|
219
|
-
},
|
|
220
|
-
to: {
|
|
221
|
-
type: ROUTING_RULE_TYPES.DAEMON,
|
|
222
|
-
port: daemonRule.to.port,
|
|
223
|
-
did: rule.to.did,
|
|
224
|
-
componentId: rule.to.componentId,
|
|
225
|
-
cacheGroup: site.mode === BLOCKLET_MODES.PRODUCTION ? 'blockletJs' : '',
|
|
226
|
-
pageGroup: rule.to.pageGroup,
|
|
227
|
-
},
|
|
228
|
-
});
|
|
229
229
|
site.rules.push({
|
|
230
230
|
dynamic: true,
|
|
231
231
|
from: {
|
|
232
232
|
pathPrefix: rule.from.pathPrefix,
|
|
233
233
|
groupPathPrefix: rule.from.groupPathPrefix,
|
|
234
|
-
pathSuffix: '/
|
|
234
|
+
pathSuffix: '/__(meta|blocklet)__.js',
|
|
235
235
|
},
|
|
236
236
|
to: {
|
|
237
237
|
type: ROUTING_RULE_TYPES.DAEMON,
|
|
@@ -259,7 +259,7 @@ Router.formatSites = (sites = []) => {
|
|
|
259
259
|
const rootFrom = {
|
|
260
260
|
pathPrefix: groupPathPrefix,
|
|
261
261
|
groupPathPrefix,
|
|
262
|
-
pathSuffix: '/
|
|
262
|
+
pathSuffix: '/__(meta|blocklet)__.js',
|
|
263
263
|
};
|
|
264
264
|
|
|
265
265
|
const rule = grouped[groupPathPrefix];
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.16.15-beta-
|
|
6
|
+
"version": "1.16.15-beta-e3a24907",
|
|
7
7
|
"description": "",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"files": [
|
|
@@ -19,19 +19,19 @@
|
|
|
19
19
|
"author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
|
|
20
20
|
"license": "Apache-2.0",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@abtnode/analytics": "1.16.15-beta-
|
|
23
|
-
"@abtnode/auth": "1.16.15-beta-
|
|
24
|
-
"@abtnode/certificate-manager": "1.16.15-beta-
|
|
25
|
-
"@abtnode/constant": "1.16.15-beta-
|
|
26
|
-
"@abtnode/cron": "1.16.15-beta-
|
|
27
|
-
"@abtnode/logger": "1.16.15-beta-
|
|
28
|
-
"@abtnode/models": "1.16.15-beta-
|
|
29
|
-
"@abtnode/queue": "1.16.15-beta-
|
|
30
|
-
"@abtnode/rbac": "1.16.15-beta-
|
|
31
|
-
"@abtnode/router-provider": "1.16.15-beta-
|
|
32
|
-
"@abtnode/static-server": "1.16.15-beta-
|
|
33
|
-
"@abtnode/timemachine": "1.16.15-beta-
|
|
34
|
-
"@abtnode/util": "1.16.15-beta-
|
|
22
|
+
"@abtnode/analytics": "1.16.15-beta-e3a24907",
|
|
23
|
+
"@abtnode/auth": "1.16.15-beta-e3a24907",
|
|
24
|
+
"@abtnode/certificate-manager": "1.16.15-beta-e3a24907",
|
|
25
|
+
"@abtnode/constant": "1.16.15-beta-e3a24907",
|
|
26
|
+
"@abtnode/cron": "1.16.15-beta-e3a24907",
|
|
27
|
+
"@abtnode/logger": "1.16.15-beta-e3a24907",
|
|
28
|
+
"@abtnode/models": "1.16.15-beta-e3a24907",
|
|
29
|
+
"@abtnode/queue": "1.16.15-beta-e3a24907",
|
|
30
|
+
"@abtnode/rbac": "1.16.15-beta-e3a24907",
|
|
31
|
+
"@abtnode/router-provider": "1.16.15-beta-e3a24907",
|
|
32
|
+
"@abtnode/static-server": "1.16.15-beta-e3a24907",
|
|
33
|
+
"@abtnode/timemachine": "1.16.15-beta-e3a24907",
|
|
34
|
+
"@abtnode/util": "1.16.15-beta-e3a24907",
|
|
35
35
|
"@arcblock/did": "1.18.89",
|
|
36
36
|
"@arcblock/did-auth": "1.18.89",
|
|
37
37
|
"@arcblock/did-ext": "^1.18.89",
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"@arcblock/pm2-events": "^0.0.5",
|
|
43
43
|
"@arcblock/validator": "^1.18.89",
|
|
44
44
|
"@arcblock/vc": "1.18.89",
|
|
45
|
-
"@blocklet/constant": "1.16.15-beta-
|
|
46
|
-
"@blocklet/meta": "1.16.15-beta-
|
|
47
|
-
"@blocklet/resolver": "1.16.15-beta-
|
|
48
|
-
"@blocklet/sdk": "1.16.15-beta-
|
|
45
|
+
"@blocklet/constant": "1.16.15-beta-e3a24907",
|
|
46
|
+
"@blocklet/meta": "1.16.15-beta-e3a24907",
|
|
47
|
+
"@blocklet/resolver": "1.16.15-beta-e3a24907",
|
|
48
|
+
"@blocklet/sdk": "1.16.15-beta-e3a24907",
|
|
49
49
|
"@did-space/client": "^0.2.141",
|
|
50
50
|
"@fidm/x509": "^1.2.1",
|
|
51
51
|
"@ocap/mcrypto": "1.18.89",
|
|
@@ -98,5 +98,5 @@
|
|
|
98
98
|
"jest": "^27.5.1",
|
|
99
99
|
"unzipper": "^0.10.11"
|
|
100
100
|
},
|
|
101
|
-
"gitHead": "
|
|
101
|
+
"gitHead": "b87c810902571b8cdb8f12ef497286b1549888e9"
|
|
102
102
|
}
|