@abtnode/core 1.8.26 → 1.8.28
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 +1 -1
- package/lib/blocklet/extras.js +1 -1
- package/lib/blocklet/manager/disk.js +14 -6
- package/lib/event.js +1 -1
- package/lib/index.js +1 -6
- package/lib/migrations/1.0.33-blocklets.js +1 -1
- package/lib/router/helper.js +1 -1
- package/lib/router/index.js +15 -2
- package/lib/router/manager.js +1 -1
- package/lib/states/blocklet.js +1 -1
- package/lib/util/blocklet.js +39 -2
- package/lib/util/chain.js +1 -1
- package/lib/util/index.js +1 -1
- package/lib/util/public-to-store.js +1 -1
- package/package.json +30 -29
package/lib/api/team.js
CHANGED
|
@@ -12,7 +12,7 @@ const {
|
|
|
12
12
|
WELLKNOWN_SERVICE_PATH_PREFIX,
|
|
13
13
|
} = require('@abtnode/constant');
|
|
14
14
|
const { isValid: isValidDid } = require('@arcblock/did');
|
|
15
|
-
const { BlockletEvents } = require('@blocklet/
|
|
15
|
+
const { BlockletEvents } = require('@blocklet/constant');
|
|
16
16
|
const { sendToUser } = require('@blocklet/sdk/lib/util/send-notification');
|
|
17
17
|
const {
|
|
18
18
|
createPassportVC,
|
package/lib/blocklet/extras.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const uniqBy = require('lodash/uniqBy');
|
|
2
2
|
const cloneDeep = require('lodash/cloneDeep');
|
|
3
3
|
const security = require('@abtnode/util/lib/security');
|
|
4
|
-
const { BLOCKLET_CONFIGURABLE_KEY } = require('@blocklet/
|
|
4
|
+
const { BLOCKLET_CONFIGURABLE_KEY } = require('@blocklet/constant');
|
|
5
5
|
|
|
6
6
|
const mergeConfigs = ({ old: oldConfigs, cur: newConfigs = [], did = '', dek = '' }) => {
|
|
7
7
|
const metaConfigs = (oldConfigs || []).filter((x) => !x.custom);
|
|
@@ -43,7 +43,7 @@ const validateBlockletEntry = require('@blocklet/meta/lib/entry');
|
|
|
43
43
|
const toBlockletDid = require('@blocklet/meta/lib/did');
|
|
44
44
|
const { validateMeta } = require('@blocklet/meta/lib/validate');
|
|
45
45
|
const { update: updateMetaFile } = require('@blocklet/meta/lib/file');
|
|
46
|
-
const { titleSchema, descriptionSchema, mountPointSchema } = require('@blocklet/meta/lib/schema');
|
|
46
|
+
const { titleSchema, descriptionSchema, mountPointSchema, logoSchema } = require('@blocklet/meta/lib/schema');
|
|
47
47
|
const hasReservedKey = require('@blocklet/meta/lib/has-reserved-key');
|
|
48
48
|
|
|
49
49
|
const {
|
|
@@ -65,7 +65,7 @@ const {
|
|
|
65
65
|
BLOCKLET_LATEST_SPEC_VERSION,
|
|
66
66
|
BLOCKLET_META_FILE,
|
|
67
67
|
BLOCKLET_CONFIGURABLE_KEY,
|
|
68
|
-
} = require('@blocklet/
|
|
68
|
+
} = require('@blocklet/constant');
|
|
69
69
|
const util = require('../../util');
|
|
70
70
|
const {
|
|
71
71
|
refresh: refreshAccessibleExternalNodeIp,
|
|
@@ -102,6 +102,7 @@ const {
|
|
|
102
102
|
findAvailableDid,
|
|
103
103
|
ensureMeta,
|
|
104
104
|
getBlocklet,
|
|
105
|
+
ensureEnvDefault,
|
|
105
106
|
} = require('../../util/blocklet');
|
|
106
107
|
const { parseSourceUrl } = require('../../util/registry');
|
|
107
108
|
const states = require('../../states');
|
|
@@ -870,6 +871,10 @@ class BlockletManager extends BaseBlockletManager {
|
|
|
870
871
|
x.value = await descriptionSchema.validateAsync(x.value);
|
|
871
872
|
}
|
|
872
873
|
|
|
874
|
+
if (x.key === 'BLOCKLET_APP_LOGO') {
|
|
875
|
+
x.value = await logoSchema.validateAsync(x.value);
|
|
876
|
+
}
|
|
877
|
+
|
|
873
878
|
if (x.key === 'BLOCKLET_WALLET_TYPE') {
|
|
874
879
|
if (['default', 'eth'].includes(x.value) === false) {
|
|
875
880
|
throw new Error('Invalid blocklet wallet type, only "default" and "eth" are supported');
|
|
@@ -3371,10 +3376,13 @@ class BlockletManager extends BaseBlockletManager {
|
|
|
3371
3376
|
|
|
3372
3377
|
if (!childDid) {
|
|
3373
3378
|
await forEachBlocklet(blocklet, async (b, { ancestors }) => {
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
);
|
|
3379
|
+
const environments = get(b.meta, 'environments', []);
|
|
3380
|
+
|
|
3381
|
+
// remove default if ancestors has a value
|
|
3382
|
+
ensureEnvDefault(environments, ancestors);
|
|
3383
|
+
|
|
3384
|
+
// write configs to db
|
|
3385
|
+
await states.blockletExtras.setConfigs([...ancestors.map((x) => x.meta.did), b.meta.did], environments);
|
|
3378
3386
|
});
|
|
3379
3387
|
} else {
|
|
3380
3388
|
const child = blocklet.children.find((x) => x.meta.did === childDid);
|
package/lib/event.js
CHANGED
|
@@ -3,7 +3,7 @@ const cloneDeep = require('lodash/cloneDeep');
|
|
|
3
3
|
const { EventEmitter } = require('events');
|
|
4
4
|
const { wipeSensitiveData } = require('@blocklet/meta/lib/util');
|
|
5
5
|
const logger = require('@abtnode/logger')('@abtnode/core:event');
|
|
6
|
-
const { BLOCKLET_MODES, BlockletStatus, BlockletSource, BlockletEvents } = require('@blocklet/
|
|
6
|
+
const { BLOCKLET_MODES, BlockletStatus, BlockletSource, BlockletEvents } = require('@blocklet/constant');
|
|
7
7
|
const { EVENTS } = require('@abtnode/constant');
|
|
8
8
|
const handleInstanceInStore = require('./util/public-to-store');
|
|
9
9
|
|
package/lib/index.js
CHANGED
|
@@ -5,12 +5,7 @@ const formatContext = require('@abtnode/util/lib/format-context');
|
|
|
5
5
|
const Cron = require('@abtnode/cron');
|
|
6
6
|
|
|
7
7
|
const logger = require('@abtnode/logger')('@abtnode/core');
|
|
8
|
-
const {
|
|
9
|
-
fromBlockletStatus,
|
|
10
|
-
toBlockletStatus,
|
|
11
|
-
fromBlockletSource,
|
|
12
|
-
toBlockletSource,
|
|
13
|
-
} = require('@blocklet/meta/lib/constants');
|
|
8
|
+
const { fromBlockletStatus, toBlockletStatus, fromBlockletSource, toBlockletSource } = require('@blocklet/constant');
|
|
14
9
|
const { getServiceMetas } = require('@blocklet/meta/lib/service');
|
|
15
10
|
const { listProviders } = require('@abtnode/router-provider');
|
|
16
11
|
const { DEFAULT_CERTIFICATE_EMAIL, EVENTS } = require('@abtnode/constant');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* eslint-disable no-await-in-loop */
|
|
2
2
|
/* eslint-disable no-underscore-dangle */
|
|
3
|
-
const { BLOCKLET_DEFAULT_PORT_NAME } = require('@blocklet/
|
|
3
|
+
const { BLOCKLET_DEFAULT_PORT_NAME } = require('@blocklet/constant');
|
|
4
4
|
|
|
5
5
|
module.exports = async ({ states, printInfo }) => {
|
|
6
6
|
printInfo('Try to update node config to 1.0.33...');
|
package/lib/router/helper.js
CHANGED
|
@@ -37,7 +37,7 @@ const {
|
|
|
37
37
|
BLOCKLET_INTERFACE_TYPE_WEB,
|
|
38
38
|
BLOCKLET_INTERFACE_WELLKNOWN,
|
|
39
39
|
BLOCKLET_INTERFACE_TYPE_WELLKNOWN,
|
|
40
|
-
} = require('@blocklet/
|
|
40
|
+
} = require('@blocklet/constant');
|
|
41
41
|
|
|
42
42
|
// eslint-disable-next-line global-require
|
|
43
43
|
const logger = require('@abtnode/logger')(`${require('../../package.json').name}:router:helper`);
|
package/lib/router/index.js
CHANGED
|
@@ -10,7 +10,7 @@ const {
|
|
|
10
10
|
BLOCKLET_SITE_GROUP_SUFFIX,
|
|
11
11
|
GATEWAY_REQ_LIMIT,
|
|
12
12
|
} = require('@abtnode/constant');
|
|
13
|
-
const { BLOCKLET_UI_INTERFACES } = require('@blocklet/
|
|
13
|
+
const { BLOCKLET_UI_INTERFACES } = require('@blocklet/constant');
|
|
14
14
|
const logger = require('@abtnode/logger')('@abtnode/core:router');
|
|
15
15
|
|
|
16
16
|
const expandSites = (sites = []) => {
|
|
@@ -191,7 +191,7 @@ Router.formatSites = (sites = []) => {
|
|
|
191
191
|
if (daemonRule) {
|
|
192
192
|
// Serve meta js: both prefix and suffix do not contain trailing slash
|
|
193
193
|
// NOTICE: 这里隐含了一个约定
|
|
194
|
-
// 如果安装的 blockletA 和 blockletB 都需要
|
|
194
|
+
// 如果安装的 blockletA 和 blockletB 都需要 __blocklet__.js
|
|
195
195
|
// 则不可以将 blockletA mount 在 /a, 将 blockletB mount 在 /a/b (实际上也不会有这种需求)
|
|
196
196
|
site.rules.push({
|
|
197
197
|
from: {
|
|
@@ -206,6 +206,19 @@ Router.formatSites = (sites = []) => {
|
|
|
206
206
|
componentId: rule.to.componentId,
|
|
207
207
|
},
|
|
208
208
|
});
|
|
209
|
+
site.rules.push({
|
|
210
|
+
from: {
|
|
211
|
+
pathPrefix: rule.from.pathPrefix.replace(/\/$/, ''),
|
|
212
|
+
groupPathPrefix: (rule.from.groupPathPrefix || '').replace(/\/$/, ''),
|
|
213
|
+
pathSuffix: '/__blocklet__.js',
|
|
214
|
+
},
|
|
215
|
+
to: {
|
|
216
|
+
type: ROUTING_RULE_TYPES.DAEMON,
|
|
217
|
+
port: daemonRule.to.port,
|
|
218
|
+
did: rule.to.did,
|
|
219
|
+
componentId: rule.to.componentId,
|
|
220
|
+
},
|
|
221
|
+
});
|
|
209
222
|
|
|
210
223
|
site.rules.push({
|
|
211
224
|
from: {
|
package/lib/router/manager.js
CHANGED
package/lib/states/blocklet.js
CHANGED
package/lib/util/blocklet.js
CHANGED
|
@@ -36,7 +36,7 @@ const {
|
|
|
36
36
|
BLOCKLET_CONFIGURABLE_KEY,
|
|
37
37
|
BLOCKLET_DYNAMIC_PATH_PREFIX,
|
|
38
38
|
fromBlockletStatus,
|
|
39
|
-
} = require('@blocklet/
|
|
39
|
+
} = require('@blocklet/constant');
|
|
40
40
|
const verifyMultiSig = require('@blocklet/meta/lib/verify-multi-sig');
|
|
41
41
|
const validateBlockletEntry = require('@blocklet/meta/lib/entry');
|
|
42
42
|
const getBlockletEngine = require('@blocklet/meta/lib/engine');
|
|
@@ -52,6 +52,7 @@ const {
|
|
|
52
52
|
isComponentBlocklet,
|
|
53
53
|
getSharedConfigObj,
|
|
54
54
|
getComponentName,
|
|
55
|
+
isEnvShareable,
|
|
55
56
|
} = require('@blocklet/meta/lib/util');
|
|
56
57
|
const toBlockletDid = require('@blocklet/meta/lib/did');
|
|
57
58
|
const { titleSchema, descriptionSchema } = require('@blocklet/meta/lib/schema');
|
|
@@ -324,6 +325,8 @@ const getComponentSystemEnvironments = (blocklet) => {
|
|
|
324
325
|
};
|
|
325
326
|
|
|
326
327
|
const getRuntimeEnvironments = (blocklet, nodeEnvironments, ancestors) => {
|
|
328
|
+
const root = (ancestors || [])[0] || blocklet;
|
|
329
|
+
|
|
327
330
|
// pm2 will force inject env variables of daemon process to blocklet process
|
|
328
331
|
// we can only rewrite these private env variables to empty
|
|
329
332
|
const safeNodeEnvironments = PRIVATE_NODE_ENVS.reduce((o, x) => {
|
|
@@ -339,7 +342,11 @@ const getRuntimeEnvironments = (blocklet, nodeEnvironments, ancestors) => {
|
|
|
339
342
|
}
|
|
340
343
|
: {};
|
|
341
344
|
|
|
342
|
-
|
|
345
|
+
// BLOCKLET_DEV_PORT should NOT in components of production mode
|
|
346
|
+
if (process.env.BLOCKLET_DEV_PORT) {
|
|
347
|
+
devEnvironments.BLOCKLET_DEV_PORT =
|
|
348
|
+
blocklet.mode === BLOCKLET_MODES.DEVELOPMENT ? process.env.BLOCKLET_DEV_PORT : '';
|
|
349
|
+
}
|
|
343
350
|
|
|
344
351
|
const ports = {};
|
|
345
352
|
forEachBlockletSync(root, (x) => {
|
|
@@ -1331,6 +1338,35 @@ const getBlocklet = async ({
|
|
|
1331
1338
|
return blocklet;
|
|
1332
1339
|
};
|
|
1333
1340
|
|
|
1341
|
+
/**
|
|
1342
|
+
* this function has side effect on environments
|
|
1343
|
+
*/
|
|
1344
|
+
const ensureEnvDefault = (environments, ancestors) => {
|
|
1345
|
+
// remove default if ancestors has a value
|
|
1346
|
+
const envMap = environments.reduce((o, env) => {
|
|
1347
|
+
o[env.name] = env;
|
|
1348
|
+
return o;
|
|
1349
|
+
}, {});
|
|
1350
|
+
|
|
1351
|
+
for (let i = ancestors.length - 1; i >= 0; i--) {
|
|
1352
|
+
const ancestor = ancestors[i];
|
|
1353
|
+
const aEnvironments = get(ancestor.meta, 'environments', []);
|
|
1354
|
+
const aEnv = aEnvironments.find((x) => envMap[x.name]);
|
|
1355
|
+
|
|
1356
|
+
if (!isEnvShareable(aEnv)) {
|
|
1357
|
+
break;
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
const env = envMap[aEnv.name];
|
|
1361
|
+
if (isEnvShareable(env) && aEnv.default) {
|
|
1362
|
+
env.default = '';
|
|
1363
|
+
break;
|
|
1364
|
+
}
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
return environments;
|
|
1368
|
+
};
|
|
1369
|
+
|
|
1334
1370
|
module.exports = {
|
|
1335
1371
|
forEachBlocklet,
|
|
1336
1372
|
getBlockletMetaFromUrl: (url) => getBlockletMetaFromUrl(url, { logger }),
|
|
@@ -1370,4 +1406,5 @@ module.exports = {
|
|
|
1370
1406
|
findAvailableDid,
|
|
1371
1407
|
ensureMeta,
|
|
1372
1408
|
getBlocklet,
|
|
1409
|
+
ensureEnvDefault,
|
|
1373
1410
|
};
|
package/lib/util/chain.js
CHANGED
package/lib/util/index.js
CHANGED
|
@@ -17,7 +17,7 @@ const normalizePathPrefix = require('@abtnode/util/lib/normalize-path-prefix');
|
|
|
17
17
|
const axios = require('@abtnode/util/lib/axios');
|
|
18
18
|
const parseBlockletMeta = require('@blocklet/meta/lib/parse');
|
|
19
19
|
const { validateMeta, fixAndValidateService } = require('@blocklet/meta/lib/validate');
|
|
20
|
-
const { BlockletStatus, BLOCKLET_INTERFACE_WELLKNOWN } = require('@blocklet/
|
|
20
|
+
const { BlockletStatus, BLOCKLET_INTERFACE_WELLKNOWN } = require('@blocklet/constant');
|
|
21
21
|
const { replaceSlotToIp } = require('@blocklet/meta/lib/util');
|
|
22
22
|
const {
|
|
23
23
|
StatusCode,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const { sign } = require('@arcblock/jwt');
|
|
2
|
-
const { BlockletSource } = require('@blocklet/
|
|
2
|
+
const { BlockletSource } = require('@blocklet/constant');
|
|
3
3
|
const { WHO_CAN_ACCESS } = require('@abtnode/constant');
|
|
4
4
|
const logger = require('@abtnode/logger')('@abtnode/util:public-to-store');
|
|
5
5
|
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.8.
|
|
6
|
+
"version": "1.8.28",
|
|
7
7
|
"description": "",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"files": [
|
|
@@ -19,55 +19,56 @@
|
|
|
19
19
|
"author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@abtnode/auth": "1.8.
|
|
23
|
-
"@abtnode/certificate-manager": "1.8.
|
|
24
|
-
"@abtnode/constant": "1.8.
|
|
25
|
-
"@abtnode/cron": "1.8.
|
|
26
|
-
"@abtnode/db": "1.8.
|
|
27
|
-
"@abtnode/logger": "1.8.
|
|
28
|
-
"@abtnode/queue": "1.8.
|
|
29
|
-
"@abtnode/rbac": "1.8.
|
|
30
|
-
"@abtnode/router-provider": "1.8.
|
|
31
|
-
"@abtnode/static-server": "1.8.
|
|
32
|
-
"@abtnode/timemachine": "1.8.
|
|
33
|
-
"@abtnode/util": "1.8.
|
|
34
|
-
"@arcblock/did": "1.17.
|
|
22
|
+
"@abtnode/auth": "1.8.28",
|
|
23
|
+
"@abtnode/certificate-manager": "1.8.28",
|
|
24
|
+
"@abtnode/constant": "1.8.28",
|
|
25
|
+
"@abtnode/cron": "1.8.28",
|
|
26
|
+
"@abtnode/db": "1.8.28",
|
|
27
|
+
"@abtnode/logger": "1.8.28",
|
|
28
|
+
"@abtnode/queue": "1.8.28",
|
|
29
|
+
"@abtnode/rbac": "1.8.28",
|
|
30
|
+
"@abtnode/router-provider": "1.8.28",
|
|
31
|
+
"@abtnode/static-server": "1.8.28",
|
|
32
|
+
"@abtnode/timemachine": "1.8.28",
|
|
33
|
+
"@abtnode/util": "1.8.28",
|
|
34
|
+
"@arcblock/did": "1.17.23",
|
|
35
35
|
"@arcblock/did-motif": "^1.1.10",
|
|
36
|
-
"@arcblock/did-util": "1.17.
|
|
37
|
-
"@arcblock/event-hub": "1.17.
|
|
38
|
-
"@arcblock/jwt": "^1.17.
|
|
36
|
+
"@arcblock/did-util": "1.17.23",
|
|
37
|
+
"@arcblock/event-hub": "1.17.23",
|
|
38
|
+
"@arcblock/jwt": "^1.17.23",
|
|
39
39
|
"@arcblock/pm2-events": "^0.0.5",
|
|
40
|
-
"@arcblock/vc": "1.17.
|
|
41
|
-
"@blocklet/
|
|
42
|
-
"@blocklet/
|
|
40
|
+
"@arcblock/vc": "1.17.23",
|
|
41
|
+
"@blocklet/constant": "1.8.28",
|
|
42
|
+
"@blocklet/meta": "1.8.28",
|
|
43
|
+
"@blocklet/sdk": "1.8.28",
|
|
43
44
|
"@fidm/x509": "^1.2.1",
|
|
44
|
-
"@ocap/mcrypto": "1.17.
|
|
45
|
-
"@ocap/util": "1.17.
|
|
46
|
-
"@ocap/wallet": "1.17.
|
|
45
|
+
"@ocap/mcrypto": "1.17.23",
|
|
46
|
+
"@ocap/util": "1.17.23",
|
|
47
|
+
"@ocap/wallet": "1.17.23",
|
|
47
48
|
"@slack/webhook": "^5.0.4",
|
|
48
49
|
"axios": "^0.27.2",
|
|
49
50
|
"axon": "^2.0.3",
|
|
50
51
|
"chalk": "^4.1.2",
|
|
51
52
|
"deep-diff": "^1.0.2",
|
|
52
|
-
"detect-port": "^1.
|
|
53
|
+
"detect-port": "^1.5.1",
|
|
53
54
|
"flat": "^5.0.2",
|
|
54
55
|
"fs-extra": "^10.1.0",
|
|
55
56
|
"get-port": "^5.1.1",
|
|
56
57
|
"is-base64": "^1.1.0",
|
|
57
58
|
"is-ip": "^3.1.0",
|
|
58
59
|
"is-url": "^1.2.4",
|
|
59
|
-
"joi": "^17.6.
|
|
60
|
+
"joi": "^17.6.2",
|
|
60
61
|
"js-yaml": "^4.1.0",
|
|
61
62
|
"lodash": "^4.17.21",
|
|
62
63
|
"lru-cache": "^6.0.0",
|
|
63
64
|
"pm2": "^5.2.0",
|
|
64
|
-
"semver": "^7.3.
|
|
65
|
+
"semver": "^7.3.8",
|
|
65
66
|
"shelljs": "^0.8.5",
|
|
66
67
|
"slugify": "^1.6.5",
|
|
67
68
|
"ssri": "^8.0.1",
|
|
68
69
|
"stream-throttle": "^0.1.3",
|
|
69
70
|
"stream-to-promise": "^3.0.0",
|
|
70
|
-
"systeminformation": "^5.12.
|
|
71
|
+
"systeminformation": "^5.12.6",
|
|
71
72
|
"tar": "^6.1.11",
|
|
72
73
|
"ua-parser-js": "^1.0.2",
|
|
73
74
|
"unzipper": "^0.10.11",
|
|
@@ -77,8 +78,8 @@
|
|
|
77
78
|
"devDependencies": {
|
|
78
79
|
"compression": "^1.7.4",
|
|
79
80
|
"expand-tilde": "^2.0.2",
|
|
80
|
-
"express": "^4.18.
|
|
81
|
+
"express": "^4.18.2",
|
|
81
82
|
"jest": "^27.5.1"
|
|
82
83
|
},
|
|
83
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "af7aacf5507177600ae563ab597cb42d7223b113"
|
|
84
85
|
}
|