@abtnode/blocklet-services 1.8.68-beta-500af7e5 → 1.8.69-beta-e0666d0d
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/api/libs/connect/session.js +16 -17
- package/api/libs/connect/v1.js +1 -1
- package/build/asset-manifest.json +7 -7
- package/build/index.html +1 -1
- package/build/static/js/313.546141b2.chunk.js +3 -0
- package/build/static/js/{409.39cb94e1.chunk.js → 409.f2c98263.chunk.js} +2 -2
- package/build/static/js/main.4b912627.js +3 -0
- package/package.json +16 -16
- package/build/static/js/313.a7c0a03a.chunk.js +0 -3
- package/build/static/js/main.b9ea3714.js +0 -3
- /package/build/static/js/{313.a7c0a03a.chunk.js.LICENSE.txt → 313.546141b2.chunk.js.LICENSE.txt} +0 -0
- /package/build/static/js/{main.b9ea3714.js.LICENSE.txt → main.4b912627.js.LICENSE.txt} +0 -0
|
@@ -30,7 +30,7 @@ const {
|
|
|
30
30
|
upsertToPassports,
|
|
31
31
|
} = require('@abtnode/auth/lib/passport');
|
|
32
32
|
|
|
33
|
-
const { getRolesFromAuthConfig } = require('@blocklet/meta/lib/util');
|
|
33
|
+
const { getRolesFromAuthConfig, getBlockletAppIdList } = require('@blocklet/meta/lib/util');
|
|
34
34
|
|
|
35
35
|
const logger = require('@abtnode/logger')(require('../../../package.json').name);
|
|
36
36
|
|
|
@@ -57,9 +57,9 @@ const isInvitedUserOnly = async (config, node, teamDid) => {
|
|
|
57
57
|
return [false, ROLES.GUEST];
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
const getPassportVc = async ({ blocklet,
|
|
60
|
+
const getPassportVc = async ({ blocklet, claims, challenge, locale }) => {
|
|
61
61
|
const trustedPassports = (blocklet.trustedPassports || []).map((x) => x.issuerDid);
|
|
62
|
-
const trustedIssuers = [
|
|
62
|
+
const trustedIssuers = [...getBlockletAppIdList(blocklet), ...trustedPassports].filter(Boolean);
|
|
63
63
|
const { vc } = await getVCFromClaims({
|
|
64
64
|
claims,
|
|
65
65
|
challenge,
|
|
@@ -71,16 +71,17 @@ const getPassportVc = async ({ blocklet, appId, claims, challenge, locale }) =>
|
|
|
71
71
|
return vc;
|
|
72
72
|
};
|
|
73
73
|
|
|
74
|
-
const getRoleFromVC = async ({ vc,
|
|
74
|
+
const getRoleFromVC = async ({ vc, node, locale, blocklet, teamDid }) => {
|
|
75
75
|
let role = ROLES.GUEST;
|
|
76
76
|
if (vc) {
|
|
77
77
|
await validatePassport(get(vc, 'credentialSubject.passport'));
|
|
78
|
-
const
|
|
79
|
-
|
|
78
|
+
const actualIssuer = get(vc, 'issuer.id');
|
|
79
|
+
const expectedIssuers = getBlockletAppIdList(blocklet);
|
|
80
|
+
if (expectedIssuers.includes(actualIssuer)) {
|
|
80
81
|
role = getRoleFromLocalPassport(get(vc, 'credentialSubject.passport'));
|
|
81
82
|
} else {
|
|
82
83
|
// map external passport to local role
|
|
83
|
-
const { mappings = [] } = (blocklet.trustedPassports || []).find((x) => x.issuerDid ===
|
|
84
|
+
const { mappings = [] } = (blocklet.trustedPassports || []).find((x) => x.issuerDid === actualIssuer) || {};
|
|
84
85
|
role = await getRoleFromExternalPassport({
|
|
85
86
|
passport: get(vc, 'credentialSubject.passport'),
|
|
86
87
|
node,
|
|
@@ -138,12 +139,12 @@ module.exports = {
|
|
|
138
139
|
onConnect: async ({ node, request, userDid, locale, passportId = '', componentId }) => {
|
|
139
140
|
const blocklet = await request.getBlocklet();
|
|
140
141
|
const config = await request.getServiceConfig(NODE_SERVICES.AUTH, { componentId });
|
|
141
|
-
const {
|
|
142
|
+
const { did: teamDid } = await request.getBlockletInfo();
|
|
142
143
|
|
|
143
144
|
const profileFields = get(config, 'profileFields');
|
|
144
145
|
const [invitedUserOnly] = await isInvitedUserOnly(config, node, teamDid);
|
|
145
146
|
const trustedPassports = (blocklet.trustedPassports || []).map((x) => x.issuerDid);
|
|
146
|
-
const trustedIssuers = [
|
|
147
|
+
const trustedIssuers = [...getBlockletAppIdList(blocklet), ...trustedPassports].filter(Boolean);
|
|
147
148
|
|
|
148
149
|
const claims = {
|
|
149
150
|
profile: {
|
|
@@ -185,7 +186,6 @@ module.exports = {
|
|
|
185
186
|
}) => {
|
|
186
187
|
const blocklet = await request.getBlocklet();
|
|
187
188
|
const { wallet, name, passportColor, did: teamDid } = await request.getBlockletInfo();
|
|
188
|
-
const teamAppDid = wallet.address;
|
|
189
189
|
|
|
190
190
|
// Check user approved
|
|
191
191
|
const user = await getUser(node, teamDid, userDid);
|
|
@@ -197,7 +197,7 @@ module.exports = {
|
|
|
197
197
|
const authConfig = (await request.getServiceConfig(NODE_SERVICES.AUTH, { componentId })) || {};
|
|
198
198
|
|
|
199
199
|
// Get passport vc
|
|
200
|
-
const inputVC = await getPassportVc({ blocklet,
|
|
200
|
+
const inputVC = await getPassportVc({ blocklet, claims, challenge, locale });
|
|
201
201
|
|
|
202
202
|
let vc = inputVC;
|
|
203
203
|
|
|
@@ -239,7 +239,7 @@ module.exports = {
|
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
// Get role
|
|
242
|
-
const role = await getRoleFromVC({ vc,
|
|
242
|
+
const role = await getRoleFromVC({ vc, node, locale, blocklet, teamDid });
|
|
243
243
|
await validateRole({ role, authConfig, locale, node, teamDid });
|
|
244
244
|
|
|
245
245
|
// Recreate passport with correct role
|
|
@@ -409,7 +409,7 @@ module.exports = {
|
|
|
409
409
|
throw new Error(messages.userMismatch[locale]);
|
|
410
410
|
}
|
|
411
411
|
|
|
412
|
-
const {
|
|
412
|
+
const { did: teamDid } = await request.getBlockletInfo();
|
|
413
413
|
|
|
414
414
|
const user = await getUser(node, teamDid, userDid);
|
|
415
415
|
|
|
@@ -425,7 +425,7 @@ module.exports = {
|
|
|
425
425
|
|
|
426
426
|
const blocklet = await request.getBlocklet();
|
|
427
427
|
const trustedPassports = (blocklet.trustedPassports || []).map((x) => x.issuerDid);
|
|
428
|
-
const trustedIssuers = [
|
|
428
|
+
const trustedIssuers = [...getBlockletAppIdList(blocklet), ...trustedPassports].filter(Boolean);
|
|
429
429
|
|
|
430
430
|
return {
|
|
431
431
|
verifiableCredential: {
|
|
@@ -448,7 +448,7 @@ module.exports = {
|
|
|
448
448
|
componentId,
|
|
449
449
|
}) => {
|
|
450
450
|
const blocklet = await request.getBlocklet();
|
|
451
|
-
const {
|
|
451
|
+
const { name, did: teamDid } = await request.getBlockletInfo();
|
|
452
452
|
|
|
453
453
|
// Validate user
|
|
454
454
|
const user = await getUser(node, teamDid, userDid);
|
|
@@ -465,7 +465,6 @@ module.exports = {
|
|
|
465
465
|
// Get passport vc
|
|
466
466
|
const vc = await getPassportVc({
|
|
467
467
|
blocklet,
|
|
468
|
-
appId: wallet.address,
|
|
469
468
|
claims: [verifiableCredential],
|
|
470
469
|
challenge,
|
|
471
470
|
locale,
|
|
@@ -484,7 +483,7 @@ module.exports = {
|
|
|
484
483
|
}
|
|
485
484
|
|
|
486
485
|
// Get role
|
|
487
|
-
const role = await getRoleFromVC({ vc,
|
|
486
|
+
const role = await getRoleFromVC({ vc, node, locale, blocklet, teamDid });
|
|
488
487
|
await validateRole({ role, authConfig, locale, node, teamDid });
|
|
489
488
|
|
|
490
489
|
// Recreate passport with correct role
|
package/api/libs/connect/v1.js
CHANGED
|
@@ -30,7 +30,7 @@ module.exports = (node, opts) => {
|
|
|
30
30
|
delegation: async ({ request }) => {
|
|
31
31
|
const { wallet: delegatee, permanentWallet: delegator } = await request.getBlockletInfo();
|
|
32
32
|
if (delegatee.address !== delegator.address) {
|
|
33
|
-
return getDelegation(delegator,
|
|
33
|
+
return getDelegation(delegator, delegatee);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
return null;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
3
|
"main.css": "/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css",
|
|
4
|
-
"main.js": "/.blocklet/proxy/blocklet-service/static/js/main.
|
|
4
|
+
"main.js": "/.blocklet/proxy/blocklet-service/static/js/main.4b912627.js",
|
|
5
5
|
"static/js/560.4d01281e.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/560.4d01281e.chunk.js",
|
|
6
6
|
"static/js/255.4b68f586.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/255.4b68f586.chunk.js",
|
|
7
7
|
"static/js/371.60842581.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/371.60842581.chunk.js",
|
|
8
8
|
"static/js/737.76692b09.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/737.76692b09.chunk.js",
|
|
9
9
|
"static/js/906.8d0bbdde.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/906.8d0bbdde.chunk.js",
|
|
10
10
|
"static/js/868.43103624.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/868.43103624.chunk.js",
|
|
11
|
-
"static/js/409.
|
|
11
|
+
"static/js/409.f2c98263.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/409.f2c98263.chunk.js",
|
|
12
12
|
"static/js/682.c64ae291.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/682.c64ae291.chunk.js",
|
|
13
13
|
"static/js/711.6c22b7c7.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/711.6c22b7c7.chunk.js",
|
|
14
14
|
"static/js/437.d815f0c0.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/437.d815f0c0.chunk.js",
|
|
15
15
|
"static/js/690.f9a59613.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/690.f9a59613.chunk.js",
|
|
16
|
-
"static/js/313.
|
|
16
|
+
"static/js/313.546141b2.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/313.546141b2.chunk.js",
|
|
17
17
|
"static/js/712.9667cdcd.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/712.9667cdcd.chunk.js",
|
|
18
18
|
"static/js/511.1dd226f9.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/511.1dd226f9.chunk.js",
|
|
19
19
|
"static/js/248.ad6363a4.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/248.ad6363a4.chunk.js",
|
|
@@ -42,19 +42,19 @@
|
|
|
42
42
|
"router-template-styles/styles.css": "/.blocklet/proxy/blocklet-service/router-template-styles/styles.css",
|
|
43
43
|
"index.html": "/.blocklet/proxy/blocklet-service/index.html",
|
|
44
44
|
"main.632501d5.css.map": "/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css.map",
|
|
45
|
-
"main.
|
|
45
|
+
"main.4b912627.js.map": "/.blocklet/proxy/blocklet-service/static/js/main.4b912627.js.map",
|
|
46
46
|
"560.4d01281e.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/560.4d01281e.chunk.js.map",
|
|
47
47
|
"255.4b68f586.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/255.4b68f586.chunk.js.map",
|
|
48
48
|
"371.60842581.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/371.60842581.chunk.js.map",
|
|
49
49
|
"737.76692b09.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/737.76692b09.chunk.js.map",
|
|
50
50
|
"906.8d0bbdde.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/906.8d0bbdde.chunk.js.map",
|
|
51
51
|
"868.43103624.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/868.43103624.chunk.js.map",
|
|
52
|
-
"409.
|
|
52
|
+
"409.f2c98263.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/409.f2c98263.chunk.js.map",
|
|
53
53
|
"682.c64ae291.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/682.c64ae291.chunk.js.map",
|
|
54
54
|
"711.6c22b7c7.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/711.6c22b7c7.chunk.js.map",
|
|
55
55
|
"437.d815f0c0.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/437.d815f0c0.chunk.js.map",
|
|
56
56
|
"690.f9a59613.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/690.f9a59613.chunk.js.map",
|
|
57
|
-
"313.
|
|
57
|
+
"313.546141b2.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/313.546141b2.chunk.js.map",
|
|
58
58
|
"712.9667cdcd.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/712.9667cdcd.chunk.js.map",
|
|
59
59
|
"511.1dd226f9.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/511.1dd226f9.chunk.js.map",
|
|
60
60
|
"248.ad6363a4.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/248.ad6363a4.chunk.js.map",
|
|
@@ -64,6 +64,6 @@
|
|
|
64
64
|
},
|
|
65
65
|
"entrypoints": [
|
|
66
66
|
"static/css/main.632501d5.css",
|
|
67
|
-
"static/js/main.
|
|
67
|
+
"static/js/main.4b912627.js"
|
|
68
68
|
]
|
|
69
69
|
}
|
package/build/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><script src=".well-known/service/api/env"></script><script src="/__blocklet__.js"></script><script defer="defer" src="/.blocklet/proxy/blocklet-service/static/js/main.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0"/><meta name="theme-color" content="#000000"/><title>Blocklet Service</title><script src=".well-known/service/api/env"></script><script src="/__blocklet__.js"></script><script defer="defer" src="/.blocklet/proxy/blocklet-service/static/js/main.4b912627.js"></script><link href="/.blocklet/proxy/blocklet-service/static/css/main.632501d5.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
|