@abtnode/core 1.16.43-beta-20250427-132304-6da95c55 → 1.16.43-beta-20250429-130236-269254ff
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/blocklet/manager/disk.js +4 -1
- package/lib/blocklet/migration-dist/migration.cjs +1 -1
- package/lib/router/index.js +1 -0
- package/lib/router/monitor.js +1 -1
- package/lib/router/security/limiter.js +1 -1
- package/lib/router/security/scanner.js +30 -16
- package/lib/util/blocklet.js +21 -4
- package/lib/util/docker/replace-env-value.js +2 -2
- package/lib/validators/access-key.js +2 -2
- package/lib/validators/node.js +2 -1
- package/package.json +24 -24
|
@@ -1848,7 +1848,9 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
1848
1848
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_DESCRIPTION,
|
|
1849
1849
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO,
|
|
1850
1850
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_SQUARE,
|
|
1851
|
+
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_SQUARE_DARK,
|
|
1851
1852
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_RECT,
|
|
1853
|
+
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_RECT_DARK,
|
|
1852
1854
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_FAVICON,
|
|
1853
1855
|
];
|
|
1854
1856
|
|
|
@@ -2335,7 +2337,7 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
2335
2337
|
}
|
|
2336
2338
|
|
|
2337
2339
|
const cert = await this.certManager.manager.getByDomain(alias.value);
|
|
2338
|
-
if (cert
|
|
2340
|
+
if (cert?.status === 'error') {
|
|
2339
2341
|
await issueCert(alias);
|
|
2340
2342
|
}
|
|
2341
2343
|
})
|
|
@@ -2418,6 +2420,7 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
2418
2420
|
{
|
|
2419
2421
|
name: 'update-blocklet-certificate',
|
|
2420
2422
|
time: '*/10 * * * *',
|
|
2423
|
+
options: { runOnInit: false },
|
|
2421
2424
|
fn: () => {
|
|
2422
2425
|
if (Date.now() - startTime > TWO_DAYS) {
|
|
2423
2426
|
return;
|
|
@@ -38744,7 +38744,7 @@ module.exports = require("zlib");
|
|
|
38744
38744
|
/***/ ((module) => {
|
|
38745
38745
|
|
|
38746
38746
|
"use strict";
|
|
38747
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@abtnode/core","publishConfig":{"access":"public"},"version":"1.16.42","description":"","main":"lib/index.js","files":["lib"],"scripts":{"lint":"eslint tests lib --ignore-pattern \'tests/assets/*\'","lint:fix":"eslint --fix tests lib","test":"node tools/jest.js","coverage":"npm run test -- --coverage"},"keywords":[],"author":"wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)","license":"Apache-2.0","dependencies":{"@abtnode/analytics":"1.16.42","@abtnode/auth":"1.16.42","@abtnode/certificate-manager":"1.16.42","@abtnode/client":"^1.16.42","@abtnode/constant":"1.16.42","@abtnode/cron":"1.16.42","@abtnode/docker-utils":"1.16.42","@abtnode/logger":"1.16.42","@abtnode/models":"1.16.42","@abtnode/queue":"1.16.42","@abtnode/rbac":"1.16.42","@abtnode/router-provider":"1.16.42","@abtnode/static-server":"1.16.42","@abtnode/timemachine":"1.16.42","@abtnode/util":"1.16.42","@arcblock/did":"1.20.2","@arcblock/did-auth":"1.20.2","@arcblock/did-ext":"^1.20.2","@arcblock/did-motif":"^1.1.13","@arcblock/did-util":"1.20.2","@arcblock/event-hub":"1.20.2","@arcblock/jwt":"^1.20.2","@arcblock/pm2-events":"^0.0.5","@arcblock/validator":"^1.20.2","@arcblock/vc":"1.20.2","@blocklet/constant":"1.16.42","@blocklet/did-space-js":"^1.0.48","@blocklet/env":"1.16.42","@blocklet/error":"^0.2.4","@blocklet/meta":"1.16.42","@blocklet/resolver":"1.16.42","@blocklet/sdk":"1.16.42","@blocklet/store":"1.16.42","@blocklet/theme":"^2.13.
|
|
38747
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@abtnode/core","publishConfig":{"access":"public"},"version":"1.16.42","description":"","main":"lib/index.js","files":["lib"],"scripts":{"lint":"eslint tests lib --ignore-pattern \'tests/assets/*\'","lint:fix":"eslint --fix tests lib","test":"node tools/jest.js","coverage":"npm run test -- --coverage"},"keywords":[],"author":"wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)","license":"Apache-2.0","dependencies":{"@abtnode/analytics":"1.16.42","@abtnode/auth":"1.16.42","@abtnode/certificate-manager":"1.16.42","@abtnode/client":"^1.16.42","@abtnode/constant":"1.16.42","@abtnode/cron":"1.16.42","@abtnode/docker-utils":"1.16.42","@abtnode/logger":"1.16.42","@abtnode/models":"1.16.42","@abtnode/queue":"1.16.42","@abtnode/rbac":"1.16.42","@abtnode/router-provider":"1.16.42","@abtnode/static-server":"1.16.42","@abtnode/timemachine":"1.16.42","@abtnode/util":"1.16.42","@arcblock/did":"1.20.2","@arcblock/did-auth":"1.20.2","@arcblock/did-ext":"^1.20.2","@arcblock/did-motif":"^1.1.13","@arcblock/did-util":"1.20.2","@arcblock/event-hub":"1.20.2","@arcblock/jwt":"^1.20.2","@arcblock/pm2-events":"^0.0.5","@arcblock/validator":"^1.20.2","@arcblock/vc":"1.20.2","@blocklet/constant":"1.16.42","@blocklet/did-space-js":"^1.0.48","@blocklet/env":"1.16.42","@blocklet/error":"^0.2.4","@blocklet/meta":"1.16.42","@blocklet/resolver":"1.16.42","@blocklet/sdk":"1.16.42","@blocklet/store":"1.16.42","@blocklet/theme":"^2.13.14","@fidm/x509":"^1.2.1","@ocap/mcrypto":"1.20.2","@ocap/util":"1.20.2","@ocap/wallet":"1.20.2","@slack/webhook":"^5.0.4","archiver":"^7.0.1","axios":"^1.7.9","axon":"^2.0.3","chalk":"^4.1.2","cross-spawn":"^7.0.3","dayjs":"^1.11.13","deep-diff":"^1.0.2","detect-port":"^1.5.1","envfile":"^7.1.0","escape-string-regexp":"^4.0.0","fast-glob":"^3.3.2","filesize":"^10.1.1","flat":"^5.0.2","fs-extra":"^11.2.0","get-port":"^5.1.1","hasha":"^5.2.2","is-base64":"^1.1.0","is-cidr":"4","is-ip":"3","is-url":"^1.2.4","joi":"17.12.2","joi-extension-semver":"^5.0.0","js-yaml":"^4.1.0","kill-port":"^2.0.1","lodash":"^4.17.21","lru-cache":"^11.0.2","node-stream-zip":"^1.15.0","p-all":"^3.0.0","p-limit":"^3.1.0","p-map":"^4.0.0","p-retry":"^4.6.2","p-wait-for":"^3.2.0","rate-limiter-flexible":"^5.0.5","read-last-lines":"^1.8.0","semver":"^7.6.3","sequelize":"^6.35.0","shelljs":"^0.8.5","slugify":"^1.6.6","ssri":"^8.0.1","stream-throttle":"^0.1.3","stream-to-promise":"^3.0.0","systeminformation":"^5.23.3","tail":"^2.2.4","tar":"^6.1.11","transliteration":"^2.3.5","ua-parser-js":"^1.0.2","ufo":"^1.5.3","uuid":"^9.0.1","valid-url":"^1.0.9","which":"^2.0.2","xbytes":"^1.8.0"},"devDependencies":{"expand-tilde":"^2.0.2","express":"^4.18.2","jest":"^29.7.0","unzipper":"^0.10.11"},"gitHead":"e5764f753181ed6a7c615cd4fc6682aacf0cb7cd"}');
|
|
38748
38748
|
|
|
38749
38749
|
/***/ }),
|
|
38750
38750
|
|
package/lib/router/index.js
CHANGED
package/lib/router/monitor.js
CHANGED
|
@@ -35,7 +35,7 @@ function parseLogEntry(line, check = true) {
|
|
|
35
35
|
logEntry.status !== 503 &&
|
|
36
36
|
logEntry.status <= 599 &&
|
|
37
37
|
logEntry.request.includes('/.well-known/did.json') === false &&
|
|
38
|
-
logEntry.request.includes('/websocket
|
|
38
|
+
logEntry.request.includes('/websocket') === false &&
|
|
39
39
|
logEntry.request.includes('/.well-known/service/health') === false
|
|
40
40
|
) {
|
|
41
41
|
console.warn(`5xx request detected: ${logEntry.host}`, line);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// FIXME: use a crash safe store for the limiter
|
|
1
|
+
// FIXME: @wangshijun use a crash safe store for the limiter
|
|
2
2
|
const dayjs = require('@abtnode/util/lib/dayjs');
|
|
3
3
|
const { BLACKLIST_SCOPE } = require('@abtnode/constant');
|
|
4
4
|
const { RateLimiterMemory } = require('rate-limiter-flexible');
|
|
@@ -3,38 +3,52 @@ const { createLogWatcher } = require('../watcher');
|
|
|
3
3
|
// Function to parse the log entry and extract relevant information
|
|
4
4
|
function parseLogEntry(line) {
|
|
5
5
|
// Quick check before regex
|
|
6
|
-
if (!line.includes('ModSecurity:')) {
|
|
6
|
+
if (!line.includes('ModSecurity:') && !line.includes('limiting requests, excess:')) {
|
|
7
7
|
return null;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
/^(\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}).*\[error\].*\[client (\d+\.\d+\.\d+\.\d+)\].*ModSecurity:.*\[id "(\d+)"\].*\[unique_id "([^"]+)"\]/;
|
|
10
|
+
let logEntry = null;
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
// ModSecurity log pattern
|
|
13
|
+
const wafPattern =
|
|
14
|
+
/^(\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}).*\[error\].*\[client (\d+\.\d+\.\d+\.\d+)\].*ModSecurity:.*\[id "(\d+)"\].*\[unique_id "([^"]+)"\]/;
|
|
15
|
+
let match = line.match(wafPattern);
|
|
14
16
|
if (match) {
|
|
15
|
-
|
|
17
|
+
logEntry = {
|
|
16
18
|
type: 'modsecurity',
|
|
17
19
|
timestamp: match[1],
|
|
18
20
|
ip: match[2],
|
|
19
21
|
ruleId: match[3],
|
|
20
22
|
requestId: match[4],
|
|
21
23
|
};
|
|
24
|
+
}
|
|
22
25
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
// Nginx rate limiting log pattern
|
|
27
|
+
const rateLimitPattern =
|
|
28
|
+
/^(\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}).*\[error\].*limiting requests, excess: ([\d.]+) by zone "([^"]+)", client: (\d+\.\d+\.\d+\.\d+),/;
|
|
29
|
+
match = line.match(rateLimitPattern);
|
|
30
|
+
if (match) {
|
|
31
|
+
logEntry = {
|
|
32
|
+
type: 'rate_limit',
|
|
33
|
+
timestamp: match[1],
|
|
34
|
+
excess: parseFloat(match[2]),
|
|
35
|
+
zone: match[3],
|
|
36
|
+
ip: match[4],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
33
39
|
|
|
40
|
+
if (process.env.NODE_ENV === 'test') {
|
|
34
41
|
return logEntry;
|
|
35
42
|
}
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
// Ignore old log entries
|
|
45
|
+
const now = Date.now();
|
|
46
|
+
const timestamp = new Date(match[1]).getTime();
|
|
47
|
+
if (now - timestamp > 1000) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return logEntry;
|
|
38
52
|
}
|
|
39
53
|
|
|
40
54
|
const logWatcher = createLogWatcher(parseLogEntry);
|
package/lib/util/blocklet.js
CHANGED
|
@@ -8,6 +8,8 @@ const os = require('os');
|
|
|
8
8
|
const tar = require('tar');
|
|
9
9
|
const get = require('lodash/get');
|
|
10
10
|
const uniq = require('lodash/uniq');
|
|
11
|
+
const cloneDeep = require('lodash/cloneDeep');
|
|
12
|
+
const mergeWith = require('lodash/mergeWith');
|
|
11
13
|
const toLower = require('lodash/toLower');
|
|
12
14
|
const isEmpty = require('lodash/isEmpty');
|
|
13
15
|
const streamToPromise = require('stream-to-promise');
|
|
@@ -1532,10 +1534,23 @@ const _getBlocklet = async ({
|
|
|
1532
1534
|
}
|
|
1533
1535
|
|
|
1534
1536
|
blocklet.settings.storeList = blocklet.settings.storeList || [];
|
|
1535
|
-
blocklet.settings.theme =
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1537
|
+
blocklet.settings.theme = mergeWith(
|
|
1538
|
+
cloneDeep({
|
|
1539
|
+
light: BLOCKLET_THEME_LIGHT,
|
|
1540
|
+
dark: BLOCKLET_THEME_DARK,
|
|
1541
|
+
prefer: 'light',
|
|
1542
|
+
}),
|
|
1543
|
+
blocklet.settings.theme,
|
|
1544
|
+
// 数组值直接替换
|
|
1545
|
+
(_, srcValue) => {
|
|
1546
|
+
if (Array.isArray(srcValue)) {
|
|
1547
|
+
return srcValue;
|
|
1548
|
+
}
|
|
1549
|
+
return undefined;
|
|
1550
|
+
}
|
|
1551
|
+
);
|
|
1552
|
+
|
|
1553
|
+
blocklet.settings.languages = blocklet.settings.languages || [];
|
|
1539
1554
|
|
|
1540
1555
|
const nodeInfo = await states.node.read();
|
|
1541
1556
|
|
|
@@ -1748,7 +1763,9 @@ const validateAppConfig = async (config, states) => {
|
|
|
1748
1763
|
[
|
|
1749
1764
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO,
|
|
1750
1765
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_RECT,
|
|
1766
|
+
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_RECT_DARK,
|
|
1751
1767
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_SQUARE,
|
|
1768
|
+
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_SQUARE_DARK,
|
|
1752
1769
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_LOGO_FAVICON,
|
|
1753
1770
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPLASH_PORTRAIT,
|
|
1754
1771
|
BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_SPLASH_LANDSCAPE,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const crypto = require('crypto');
|
|
2
|
-
const { BLOCKLET_AUTOMATIC_ENV_VALUE } = require('@blocklet/constant');
|
|
2
|
+
const { BLOCKLET_AUTOMATIC_ENV_VALUE, BLOCKLET_AUTOMATIC_ENV_VALUE_REGEX } = require('@blocklet/constant');
|
|
3
3
|
const { getObjByPath } = require('@abtnode/docker-utils');
|
|
4
4
|
const { isValid: isDid } = require('@arcblock/did');
|
|
5
5
|
const parseDockerName = require('./parse-docker-name');
|
|
@@ -7,7 +7,7 @@ const parseDockerName = require('./parse-docker-name');
|
|
|
7
7
|
function replaceEnvValue(dockerEnv, rootBlocklet, dockerNamePrefix) {
|
|
8
8
|
// 正则匹配形如 zxxxxxxxxxxxx...(30-40位)-(host|port|env.xxx|ports.xxx),全局匹配
|
|
9
9
|
// const regex = /z[a-zA-Z0-9]{30,40}-(?:host|port|env\.[^.]+|ports\.[^.]+)/g;
|
|
10
|
-
const regex =
|
|
10
|
+
const regex = BLOCKLET_AUTOMATIC_ENV_VALUE_REGEX;
|
|
11
11
|
const envKeys = Object.keys(dockerEnv);
|
|
12
12
|
|
|
13
13
|
envKeys.forEach((key) => {
|
|
@@ -15,9 +15,9 @@ const accessKeySchema = Joi.object({
|
|
|
15
15
|
'string.max': 'Access Key Public length must be less than or equal to 256 characters long',
|
|
16
16
|
}),
|
|
17
17
|
|
|
18
|
-
passport: Joi.string().required().max(
|
|
18
|
+
passport: Joi.string().required().max(40).messages({
|
|
19
19
|
'string.empty': 'Passport cannot be empty',
|
|
20
|
-
'string.max': 'Passport length must be less than or equal to
|
|
20
|
+
'string.max': 'Passport length must be less than or equal to 40 characters long',
|
|
21
21
|
}),
|
|
22
22
|
|
|
23
23
|
remark: Joi.string().allow('').max(128).messages({
|
package/lib/validators/node.js
CHANGED
|
@@ -78,6 +78,7 @@ const updateGatewaySchema = Joi.object({
|
|
|
78
78
|
.max(GATEWAY_RATE_LIMIT_BURST_FACTOR.max)
|
|
79
79
|
.default(2)
|
|
80
80
|
.when('requestLimit.enabled', { is: true, then: Joi.required() }),
|
|
81
|
+
burstDelay: Joi.number().min(0).max(60).default(0).when('requestLimit.enabled', { is: true, then: Joi.required() }),
|
|
81
82
|
rate: Joi.number()
|
|
82
83
|
.min(GATEWAY_RATE_LIMIT.min)
|
|
83
84
|
.max(GATEWAY_RATE_LIMIT.max)
|
|
@@ -128,7 +129,7 @@ const updateGatewaySchema = Joi.object({
|
|
|
128
129
|
enabled: Joi.boolean().optional().default(false),
|
|
129
130
|
windowSize: Joi.number().integer().min(1).default(1), // in seconds
|
|
130
131
|
windowQuota: Joi.number().integer().min(2).default(5), // number of requests
|
|
131
|
-
statusCodes: Joi.array().items(Joi.number().integer().min(100).max(599)).default([403]), // status codes to check
|
|
132
|
+
statusCodes: Joi.array().items(Joi.number().integer().min(100).max(599)).default([403, 429]).min(1), // status codes to check
|
|
132
133
|
blockDuration: Joi.number().integer().min(60).default(3600), // in seconds
|
|
133
134
|
}).default({
|
|
134
135
|
enabled: false,
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.16.43-beta-
|
|
6
|
+
"version": "1.16.43-beta-20250429-130236-269254ff",
|
|
7
7
|
"description": "",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"files": [
|
|
@@ -19,21 +19,21 @@
|
|
|
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.43-beta-
|
|
23
|
-
"@abtnode/auth": "1.16.43-beta-
|
|
24
|
-
"@abtnode/certificate-manager": "1.16.43-beta-
|
|
25
|
-
"@abtnode/client": "1.16.43-beta-
|
|
26
|
-
"@abtnode/constant": "1.16.43-beta-
|
|
27
|
-
"@abtnode/cron": "1.16.43-beta-
|
|
28
|
-
"@abtnode/docker-utils": "1.16.43-beta-
|
|
29
|
-
"@abtnode/logger": "1.16.43-beta-
|
|
30
|
-
"@abtnode/models": "1.16.43-beta-
|
|
31
|
-
"@abtnode/queue": "1.16.43-beta-
|
|
32
|
-
"@abtnode/rbac": "1.16.43-beta-
|
|
33
|
-
"@abtnode/router-provider": "1.16.43-beta-
|
|
34
|
-
"@abtnode/static-server": "1.16.43-beta-
|
|
35
|
-
"@abtnode/timemachine": "1.16.43-beta-
|
|
36
|
-
"@abtnode/util": "1.16.43-beta-
|
|
22
|
+
"@abtnode/analytics": "1.16.43-beta-20250429-130236-269254ff",
|
|
23
|
+
"@abtnode/auth": "1.16.43-beta-20250429-130236-269254ff",
|
|
24
|
+
"@abtnode/certificate-manager": "1.16.43-beta-20250429-130236-269254ff",
|
|
25
|
+
"@abtnode/client": "1.16.43-beta-20250429-130236-269254ff",
|
|
26
|
+
"@abtnode/constant": "1.16.43-beta-20250429-130236-269254ff",
|
|
27
|
+
"@abtnode/cron": "1.16.43-beta-20250429-130236-269254ff",
|
|
28
|
+
"@abtnode/docker-utils": "1.16.43-beta-20250429-130236-269254ff",
|
|
29
|
+
"@abtnode/logger": "1.16.43-beta-20250429-130236-269254ff",
|
|
30
|
+
"@abtnode/models": "1.16.43-beta-20250429-130236-269254ff",
|
|
31
|
+
"@abtnode/queue": "1.16.43-beta-20250429-130236-269254ff",
|
|
32
|
+
"@abtnode/rbac": "1.16.43-beta-20250429-130236-269254ff",
|
|
33
|
+
"@abtnode/router-provider": "1.16.43-beta-20250429-130236-269254ff",
|
|
34
|
+
"@abtnode/static-server": "1.16.43-beta-20250429-130236-269254ff",
|
|
35
|
+
"@abtnode/timemachine": "1.16.43-beta-20250429-130236-269254ff",
|
|
36
|
+
"@abtnode/util": "1.16.43-beta-20250429-130236-269254ff",
|
|
37
37
|
"@arcblock/did": "1.20.2",
|
|
38
38
|
"@arcblock/did-auth": "1.20.2",
|
|
39
39
|
"@arcblock/did-ext": "^1.20.2",
|
|
@@ -44,15 +44,15 @@
|
|
|
44
44
|
"@arcblock/pm2-events": "^0.0.5",
|
|
45
45
|
"@arcblock/validator": "^1.20.2",
|
|
46
46
|
"@arcblock/vc": "1.20.2",
|
|
47
|
-
"@blocklet/constant": "1.16.43-beta-
|
|
47
|
+
"@blocklet/constant": "1.16.43-beta-20250429-130236-269254ff",
|
|
48
48
|
"@blocklet/did-space-js": "^1.0.48",
|
|
49
|
-
"@blocklet/env": "1.16.43-beta-
|
|
49
|
+
"@blocklet/env": "1.16.43-beta-20250429-130236-269254ff",
|
|
50
50
|
"@blocklet/error": "^0.2.4",
|
|
51
|
-
"@blocklet/meta": "1.16.43-beta-
|
|
52
|
-
"@blocklet/resolver": "1.16.43-beta-
|
|
53
|
-
"@blocklet/sdk": "1.16.43-beta-
|
|
54
|
-
"@blocklet/store": "1.16.43-beta-
|
|
55
|
-
"@blocklet/theme": "^2.13.
|
|
51
|
+
"@blocklet/meta": "1.16.43-beta-20250429-130236-269254ff",
|
|
52
|
+
"@blocklet/resolver": "1.16.43-beta-20250429-130236-269254ff",
|
|
53
|
+
"@blocklet/sdk": "1.16.43-beta-20250429-130236-269254ff",
|
|
54
|
+
"@blocklet/store": "1.16.43-beta-20250429-130236-269254ff",
|
|
55
|
+
"@blocklet/theme": "^2.13.14",
|
|
56
56
|
"@fidm/x509": "^1.2.1",
|
|
57
57
|
"@ocap/mcrypto": "1.20.2",
|
|
58
58
|
"@ocap/util": "1.20.2",
|
|
@@ -116,5 +116,5 @@
|
|
|
116
116
|
"jest": "^29.7.0",
|
|
117
117
|
"unzipper": "^0.10.11"
|
|
118
118
|
},
|
|
119
|
-
"gitHead": "
|
|
119
|
+
"gitHead": "0826633a53695ac92965f8993e46985259adb65f"
|
|
120
120
|
}
|