@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.
@@ -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, appId, claims, challenge, locale }) => {
60
+ const getPassportVc = async ({ blocklet, claims, challenge, locale }) => {
61
61
  const trustedPassports = (blocklet.trustedPassports || []).map((x) => x.issuerDid);
62
- const trustedIssuers = [appId, ...trustedPassports].filter(Boolean);
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, appId, node, locale, blocklet, teamDid }) => {
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 issuerId = get(vc, 'issuer.id');
79
- if (issuerId === appId) {
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 === issuerId) || {};
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 { wallet, did: teamDid } = await request.getBlockletInfo();
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 = [wallet.address, ...trustedPassports].filter(Boolean);
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, appId: teamAppDid, claims, challenge, locale });
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, appId: teamAppDid, node, locale, blocklet, teamDid });
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 { wallet, did: teamDid } = await request.getBlockletInfo();
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 = [wallet.address, ...trustedPassports].filter(Boolean);
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 { wallet, name, did: teamDid } = await request.getBlockletInfo();
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, appId: wallet.address, node, locale, blocklet, teamDid });
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
@@ -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, 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.b9ea3714.js",
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.39cb94e1.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/409.39cb94e1.chunk.js",
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.a7c0a03a.chunk.js": "/.blocklet/proxy/blocklet-service/static/js/313.a7c0a03a.chunk.js",
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.b9ea3714.js.map": "/.blocklet/proxy/blocklet-service/static/js/main.b9ea3714.js.map",
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.39cb94e1.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/409.39cb94e1.chunk.js.map",
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.a7c0a03a.chunk.js.map": "/.blocklet/proxy/blocklet-service/static/js/313.a7c0a03a.chunk.js.map",
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.b9ea3714.js"
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.b9ea3714.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>
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>