@abtnode/core 1.16.30-beta-b80c7bcd → 1.16.30-beta-5d9c2c41

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.
@@ -1,11 +1,10 @@
1
- const joi = require('joi');
2
-
3
1
  const { isInServerlessMode } = require('@abtnode/util/lib/serverless');
4
2
  const { BLOCKLET_INSTALL_TYPE, INSTALL_ACTIONS } = require('@abtnode/constant');
5
3
  const { BlockletStatus, BlockletEvents, BLOCKLET_CONFIGURABLE_KEY } = require('@blocklet/constant');
6
4
 
7
5
  const logger = require('@abtnode/logger')('@abtnode/core:install-app-general');
8
6
  const getApplicationWallet = require('@blocklet/meta/lib/wallet');
7
+ const { installBlockletTitleSchema, installBlockletDescriptionSchema } = require('@blocklet/meta/lib/schema');
9
8
 
10
9
  const StoreUtil = require('../../../util/store');
11
10
  const { getBlockletMetaFromUrl, ensureMeta, validateStore, validateInServerless } = require('../../../util/blocklet');
@@ -48,8 +47,8 @@ const installApplicationFromGeneral = async ({
48
47
  componentSourceUrl = inputUrl;
49
48
  await validateStore(nodeInfo, componentSourceUrl);
50
49
  } else if (type === BLOCKLET_INSTALL_TYPE.CREATE) {
51
- await joi.string().label('title').max(20).required().validateAsync(title);
52
- await joi.string().label('description').max(80).required().validateAsync(description);
50
+ await installBlockletTitleSchema.validateAsync(title);
51
+ await installBlockletDescriptionSchema.validateAsync(description);
53
52
  } else {
54
53
  throw new Error(`Should not be here: unknown type ${type}`);
55
54
  }
@@ -5,6 +5,7 @@ const logger = require('@abtnode/logger')('@abtnode/core:upgrade-component');
5
5
 
6
6
  const { BlockletStatus, BlockletEvents } = require('@blocklet/constant');
7
7
  const { INSTALL_ACTIONS } = require('@abtnode/constant');
8
+ const { parseOptionalComponents } = require('@blocklet/resolver');
8
9
  const {
9
10
  getUpdateMetaList,
10
11
  parseComponents,
@@ -105,9 +106,11 @@ const upgrade = async ({ updateId, componentDids, context, states, manager }) =>
105
106
  return oldComponent;
106
107
  });
107
108
 
109
+ const optionalComponentDids = new Set((await parseOptionalComponents(oldBlocklet)).map((x) => x.meta.did));
108
110
  dynamicComponents = filterDuplicateComponents(dynamicComponents, children);
109
- children.push(...dynamicComponents);
111
+ dynamicComponents = dynamicComponents.filter((x) => !optionalComponentDids.has(x.meta.did));
110
112
 
113
+ children.push(...dynamicComponents);
111
114
  // componentDids
112
115
  componentDids.push(...dynamicComponents.map((x) => x.meta.did));
113
116
 
@@ -252,7 +252,7 @@ class SpacesBackup extends BaseBackup {
252
252
 
253
253
  source: this.syncObjects,
254
254
  debug: true,
255
- concurrency: 8,
255
+ concurrency: 2,
256
256
  retryCount: 10,
257
257
  filter: (object) => {
258
258
  // FIXME: @yejianchao 这里需要更完整的黑名单,这一层应该内置于 @did-space/client
@@ -33,8 +33,6 @@ const {
33
33
  USER_AVATAR_PATH_PREFIX,
34
34
  DOMAIN_FOR_IP_SITE,
35
35
  NAME_FOR_WELLKNOWN_SITE,
36
- DEFAULT_HTTP_PORT,
37
- DEFAULT_HTTPS_PORT,
38
36
  ROUTING_RULE_TYPES,
39
37
  CERTIFICATE_EXPIRES_OFFSET,
40
38
  DEFAULT_SERVICE_PATH,
@@ -76,7 +74,7 @@ const { getFromCache: getAccessibleExternalNodeIp } = require('../util/get-acces
76
74
 
77
75
  const Router = require('./index');
78
76
  const states = require('../states');
79
- const { getBlockletDomainGroupName, getDidFromDomainGroupName } = require('../util/router');
77
+ const { getBlockletDomainGroupName, getDidFromDomainGroupName, createProviderInstance } = require('../util/router');
80
78
  const {
81
79
  getBlockletDidDomainList,
82
80
  updateDidDocument: updateBlockletDocument,
@@ -1258,12 +1256,7 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
1258
1256
  await providers[providerName].reload();
1259
1257
  } else {
1260
1258
  providers[providerName] = new Router({
1261
- provider: new Provider({
1262
- configDir: path.join(dataDirs.router, providerName),
1263
- httpPort: nodeInfo.routing.httpPort || DEFAULT_HTTP_PORT,
1264
- httpsPort: nodeInfo.routing.httpsPort || DEFAULT_HTTPS_PORT,
1265
- cacheEnabled: isGatewayCacheEnabled(nodeInfo),
1266
- }),
1259
+ provider: createProviderInstance({ nodeInfo, routerDataDir: dataDirs.router }),
1267
1260
  getRoutingParams: async () => {
1268
1261
  try {
1269
1262
  const info = await nodeState.read();
@@ -1434,12 +1427,11 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
1434
1427
  const Provider = getProvider(info.routing.provider);
1435
1428
  if (Provider) {
1436
1429
  try {
1437
- const providerInstance = new Provider({
1438
- configDir: path.join(dataDirs.router, info.routing.provider),
1439
- httpPort: info.routing.httpPort || DEFAULT_HTTP_PORT,
1440
- httpsPort: info.routing.httpsPort || DEFAULT_HTTPS_PORT,
1441
- cacheEnabled: isGatewayCacheEnabled(info),
1430
+ const providerInstance = createProviderInstance({
1431
+ nodeInfo: info,
1432
+ routerDataDir: dataDirs.router,
1442
1433
  });
1434
+
1443
1435
  await providerInstance.stop();
1444
1436
  logger.info('original router stopped:', { provider: info.routing.provider });
1445
1437
  } catch (err) {
@@ -47,7 +47,12 @@ const { findWebInterface } = require('../util/blocklet');
47
47
  const { attachRuntimeDomainAliases, ensureLatestInfo } = require('./helper');
48
48
  const Router = require('./index');
49
49
  const states = require('../states');
50
- const { getDidFromDomainGroupName, updateNFTDomainRecord, revokeAndDeleteNFTDomainRecord } = require('../util/router');
50
+ const {
51
+ getDidFromDomainGroupName,
52
+ updateNFTDomainRecord,
53
+ revokeAndDeleteNFTDomainRecord,
54
+ getGatewayPorts,
55
+ } = require('../util/router');
51
56
 
52
57
  const checkPathPrefixInBlackList = (pathPrefix, extraBlackList = []) => {
53
58
  const blacklist = [
@@ -644,8 +649,15 @@ class RouterManager extends EventEmitter {
644
649
  const providerName = getProviderFromNodeInfo(info);
645
650
  const Provider = getProvider(providerName);
646
651
  const tmpDir = path.join(os.tmpdir(), `${providerName}-${Date.now()}`);
652
+
653
+ const { httpPort, httpsPort } = getGatewayPorts(info);
647
654
  // disable cache to reduce nginx reload time and memory consumption
648
- const provider = new Provider({ configDir: tmpDir, cacheEnabled: false });
655
+ const provider = new Provider({
656
+ configDir: tmpDir,
657
+ cacheEnabled: false,
658
+ httpPort,
659
+ httpsPort,
660
+ });
649
661
  const tempRouter = new Router({
650
662
  provider,
651
663
  getRoutingParams: async () => ({
@@ -1,11 +1,15 @@
1
- const { BLOCKLET_SITE_GROUP_SUFFIX } = require('@abtnode/constant');
1
+ const path = require('path');
2
+ const { BLOCKLET_SITE_GROUP_SUFFIX, DEFAULT_HTTP_PORT, DEFAULT_HTTPS_PORT } = require('@abtnode/constant');
2
3
  const axios = require('@abtnode/util/lib/axios');
3
4
  const getBlockletInfo = require('@blocklet/meta/lib/info');
4
5
  const { stableStringify } = require('@arcblock/vc');
5
6
  const { toBase58 } = require('@ocap/util');
6
7
  const { getDidDomainServiceURL } = require('@abtnode/util/lib/did-domain');
8
+ const { getProvider } = require('@abtnode/router-provider');
7
9
  const logger = require('@abtnode/logger')('@abtnode/core:router:util');
8
10
 
11
+ const { isGatewayCacheEnabled } = require('.');
12
+
9
13
  const getBlockletDomainGroupName = (did) => `${did}${BLOCKLET_SITE_GROUP_SUFFIX}`;
10
14
 
11
15
  const getDidFromDomainGroupName = (name) => {
@@ -86,9 +90,33 @@ const revokeAndDeleteNFTDomainRecord = async ({ name, blocklet, nodeInfo }) => {
86
90
  }
87
91
  };
88
92
 
93
+ const getGatewayPorts = (info) => {
94
+ return {
95
+ httpPort: info.routing?.httpPort || DEFAULT_HTTP_PORT,
96
+ httpsPort: info.routing?.httpsPort || DEFAULT_HTTPS_PORT,
97
+ };
98
+ };
99
+
100
+ const createProviderInstance = ({ nodeInfo, routerDataDir }) => {
101
+ const providerName = nodeInfo.routing.provider;
102
+ const Provider = getProvider(providerName);
103
+ const { httpPort, httpsPort } = getGatewayPorts(nodeInfo);
104
+
105
+ logger.info('create router instance', { providerName, httpPort, httpsPort });
106
+
107
+ return new Provider({
108
+ configDir: path.join(routerDataDir, providerName),
109
+ httpPort,
110
+ httpsPort,
111
+ cacheEnabled: isGatewayCacheEnabled(nodeInfo),
112
+ });
113
+ };
114
+
89
115
  module.exports = {
90
116
  getBlockletDomainGroupName,
91
117
  getDidFromDomainGroupName,
118
+ getGatewayPorts,
92
119
  updateNFTDomainRecord,
93
120
  revokeAndDeleteNFTDomainRecord,
121
+ createProviderInstance,
94
122
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.16.30-beta-b80c7bcd",
6
+ "version": "1.16.30-beta-5d9c2c41",
7
7
  "description": "",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -19,40 +19,40 @@
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.30-beta-b80c7bcd",
23
- "@abtnode/auth": "1.16.30-beta-b80c7bcd",
24
- "@abtnode/certificate-manager": "1.16.30-beta-b80c7bcd",
25
- "@abtnode/constant": "1.16.30-beta-b80c7bcd",
26
- "@abtnode/cron": "1.16.30-beta-b80c7bcd",
27
- "@abtnode/logger": "1.16.30-beta-b80c7bcd",
28
- "@abtnode/models": "1.16.30-beta-b80c7bcd",
29
- "@abtnode/queue": "1.16.30-beta-b80c7bcd",
30
- "@abtnode/rbac": "1.16.30-beta-b80c7bcd",
31
- "@abtnode/router-provider": "1.16.30-beta-b80c7bcd",
32
- "@abtnode/static-server": "1.16.30-beta-b80c7bcd",
33
- "@abtnode/timemachine": "1.16.30-beta-b80c7bcd",
34
- "@abtnode/util": "1.16.30-beta-b80c7bcd",
35
- "@arcblock/did": "1.18.128",
36
- "@arcblock/did-auth": "1.18.128",
37
- "@arcblock/did-ext": "^1.18.128",
22
+ "@abtnode/analytics": "1.16.30-beta-5d9c2c41",
23
+ "@abtnode/auth": "1.16.30-beta-5d9c2c41",
24
+ "@abtnode/certificate-manager": "1.16.30-beta-5d9c2c41",
25
+ "@abtnode/constant": "1.16.30-beta-5d9c2c41",
26
+ "@abtnode/cron": "1.16.30-beta-5d9c2c41",
27
+ "@abtnode/logger": "1.16.30-beta-5d9c2c41",
28
+ "@abtnode/models": "1.16.30-beta-5d9c2c41",
29
+ "@abtnode/queue": "1.16.30-beta-5d9c2c41",
30
+ "@abtnode/rbac": "1.16.30-beta-5d9c2c41",
31
+ "@abtnode/router-provider": "1.16.30-beta-5d9c2c41",
32
+ "@abtnode/static-server": "1.16.30-beta-5d9c2c41",
33
+ "@abtnode/timemachine": "1.16.30-beta-5d9c2c41",
34
+ "@abtnode/util": "1.16.30-beta-5d9c2c41",
35
+ "@arcblock/did": "1.18.130",
36
+ "@arcblock/did-auth": "1.18.130",
37
+ "@arcblock/did-ext": "^1.18.130",
38
38
  "@arcblock/did-motif": "^1.1.13",
39
- "@arcblock/did-util": "1.18.128",
40
- "@arcblock/event-hub": "1.18.128",
41
- "@arcblock/jwt": "^1.18.128",
39
+ "@arcblock/did-util": "1.18.130",
40
+ "@arcblock/event-hub": "1.18.130",
41
+ "@arcblock/jwt": "^1.18.130",
42
42
  "@arcblock/pm2-events": "^0.0.5",
43
- "@arcblock/validator": "^1.18.128",
44
- "@arcblock/vc": "1.18.128",
45
- "@blocklet/constant": "1.16.30-beta-b80c7bcd",
46
- "@blocklet/env": "1.16.30-beta-b80c7bcd",
47
- "@blocklet/meta": "1.16.30-beta-b80c7bcd",
48
- "@blocklet/resolver": "1.16.30-beta-b80c7bcd",
49
- "@blocklet/sdk": "1.16.30-beta-b80c7bcd",
50
- "@blocklet/store": "1.16.30-beta-b80c7bcd",
51
- "@did-space/client": "^0.5.17",
43
+ "@arcblock/validator": "^1.18.130",
44
+ "@arcblock/vc": "1.18.130",
45
+ "@blocklet/constant": "1.16.30-beta-5d9c2c41",
46
+ "@blocklet/env": "1.16.30-beta-5d9c2c41",
47
+ "@blocklet/meta": "1.16.30-beta-5d9c2c41",
48
+ "@blocklet/resolver": "1.16.30-beta-5d9c2c41",
49
+ "@blocklet/sdk": "1.16.30-beta-5d9c2c41",
50
+ "@blocklet/store": "1.16.30-beta-5d9c2c41",
51
+ "@did-space/client": "^0.5.26",
52
52
  "@fidm/x509": "^1.2.1",
53
- "@ocap/mcrypto": "1.18.128",
54
- "@ocap/util": "1.18.128",
55
- "@ocap/wallet": "1.18.128",
53
+ "@ocap/mcrypto": "1.18.130",
54
+ "@ocap/util": "1.18.130",
55
+ "@ocap/wallet": "1.18.130",
56
56
  "@slack/webhook": "^5.0.4",
57
57
  "archiver": "^7.0.1",
58
58
  "axios": "^1.7.2",
@@ -103,5 +103,5 @@
103
103
  "jest": "^29.7.0",
104
104
  "unzipper": "^0.10.11"
105
105
  },
106
- "gitHead": "9d68833290b1a59357b7c362018416b82b5d1503"
106
+ "gitHead": "d9227f08e11c1d82969880b30b2a2e3639e88def"
107
107
  }