@abtnode/core 1.16.54-beta-20251030-060219-f2f1ed96 → 1.16.54-beta-20251031-043051-f3b56e3a
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 +54 -19
- package/lib/blocklet/manager/helper/blue-green-start-blocklet.js +3 -0
- package/lib/blocklet/migration-dist/migration.cjs +1 -1
- package/lib/event/index.js +39 -1
- package/lib/router/helper.js +11 -0
- package/lib/util/blocklet.js +19 -11
- package/lib/util/index.js +6 -4
- package/package.json +25 -27
|
@@ -857,6 +857,16 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
857
857
|
|
|
858
858
|
const rest = await pAll(tasks, { concurrency: 6 });
|
|
859
859
|
|
|
860
|
+
const nextBlocklet = await this.ensureBlocklet(did, { e2eMode });
|
|
861
|
+
|
|
862
|
+
if (!['true', '1'].includes(process.env.ABT_NODE_DISABLE_BLUE_GREEN)) {
|
|
863
|
+
this.emit(BlockletEvents.blurOrGreenStarted, {
|
|
864
|
+
blocklet: nextBlocklet,
|
|
865
|
+
componentDids: inputComponentDids,
|
|
866
|
+
context,
|
|
867
|
+
});
|
|
868
|
+
}
|
|
869
|
+
|
|
860
870
|
return rest[0];
|
|
861
871
|
}
|
|
862
872
|
|
|
@@ -3274,17 +3284,25 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
3274
3284
|
const blueGreenComponentIds = await blueGreenGetComponentIds(oldBlocklet || blocklet, componentDids);
|
|
3275
3285
|
|
|
3276
3286
|
try {
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3287
|
+
if (process.env.ABT_NODE_DISABLE_BLUE_GREEN === 'true' || process.env.ABT_NODE_DISABLE_BLUE_GREEN === '1') {
|
|
3288
|
+
await states.blocklet.setBlockletStatus(did, BlockletStatus.downloading, {
|
|
3289
|
+
componentDids,
|
|
3290
|
+
isGreen: false,
|
|
3291
|
+
});
|
|
3292
|
+
} else {
|
|
3293
|
+
await Promise.all(
|
|
3294
|
+
blueGreenComponentIds.map(async (item) => {
|
|
3295
|
+
if (item.componentDids.length === 0) {
|
|
3296
|
+
return;
|
|
3297
|
+
}
|
|
3298
|
+
await states.blocklet.setBlockletStatus(did, BlockletStatus.downloading, {
|
|
3299
|
+
componentDids: item.componentDids,
|
|
3300
|
+
isGreen: item.changeToGreen,
|
|
3301
|
+
});
|
|
3302
|
+
})
|
|
3303
|
+
);
|
|
3304
|
+
}
|
|
3305
|
+
|
|
3288
3306
|
const state = await states.blocklet.getBlocklet(did);
|
|
3289
3307
|
this.emit(BlockletEvents.statusChange, state);
|
|
3290
3308
|
const { isCancelled } = await this._downloadBlocklet(
|
|
@@ -3429,19 +3447,31 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
3429
3447
|
|
|
3430
3448
|
try {
|
|
3431
3449
|
if (postAction === INSTALL_ACTIONS.UPGRADE_COMPONENT) {
|
|
3432
|
-
|
|
3433
|
-
{
|
|
3450
|
+
if (process.env.ABT_NODE_DISABLE_BLUE_GREEN === 'true' || process.env.ABT_NODE_DISABLE_BLUE_GREEN === '1') {
|
|
3451
|
+
await this._upgradeBlocklet({
|
|
3434
3452
|
newBlocklet: blocklet,
|
|
3435
3453
|
oldBlocklet,
|
|
3436
3454
|
componentDids,
|
|
3455
|
+
context,
|
|
3437
3456
|
action: postAction,
|
|
3438
3457
|
shouldCleanUploadFile,
|
|
3439
3458
|
url,
|
|
3440
|
-
}
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3459
|
+
});
|
|
3460
|
+
} else {
|
|
3461
|
+
await blueGreenUpgradeBlocklet(
|
|
3462
|
+
{
|
|
3463
|
+
newBlocklet: blocklet,
|
|
3464
|
+
oldBlocklet,
|
|
3465
|
+
componentDids,
|
|
3466
|
+
action: postAction,
|
|
3467
|
+
shouldCleanUploadFile,
|
|
3468
|
+
url,
|
|
3469
|
+
},
|
|
3470
|
+
context,
|
|
3471
|
+
this,
|
|
3472
|
+
states
|
|
3473
|
+
);
|
|
3474
|
+
}
|
|
3445
3475
|
} else {
|
|
3446
3476
|
await this._upgradeBlocklet({
|
|
3447
3477
|
newBlocklet: blocklet,
|
|
@@ -3510,6 +3540,11 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
3510
3540
|
}
|
|
3511
3541
|
|
|
3512
3542
|
async _onRestart({ did, componentDids, context, operator }) {
|
|
3543
|
+
if (process.env.ABT_NODE_DISABLE_BLUE_GREEN) {
|
|
3544
|
+
await this.stop({ did, componentDids, context, operator });
|
|
3545
|
+
await this.start({ did, componentDids, checkHealthImmediately: true });
|
|
3546
|
+
return;
|
|
3547
|
+
}
|
|
3513
3548
|
await blueGreenStartBlocklet({ did, componentDids, operator }, context, this, states);
|
|
3514
3549
|
}
|
|
3515
3550
|
|
|
@@ -5071,7 +5106,7 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
5071
5106
|
blocklet,
|
|
5072
5107
|
meta: b.meta,
|
|
5073
5108
|
script,
|
|
5074
|
-
|
|
5109
|
+
hookName: name,
|
|
5075
5110
|
nodeInfo,
|
|
5076
5111
|
env,
|
|
5077
5112
|
...hookArgs,
|
|
@@ -293,6 +293,9 @@ const blueGreenStartBlocklet = async (
|
|
|
293
293
|
}
|
|
294
294
|
throw error;
|
|
295
295
|
}
|
|
296
|
+
|
|
297
|
+
const nextBlocklet = await manager.ensureBlocklet(did, { e2eMode });
|
|
298
|
+
manager.emit(BlockletEvents.blurOrGreenStarted, { blocklet: nextBlocklet, componentDids, context });
|
|
296
299
|
}
|
|
297
300
|
|
|
298
301
|
const nextBlocklet = await manager.getBlocklet(did);
|
|
@@ -38983,7 +38983,7 @@ module.exports = require("zlib");
|
|
|
38983
38983
|
/***/ ((module) => {
|
|
38984
38984
|
|
|
38985
38985
|
"use strict";
|
|
38986
|
-
module.exports = /*#__PURE__*/JSON.parse('{"name":"@abtnode/core","publishConfig":{"access":"public"},"version":"1.16.53","description":"","main":"lib/index.js","files":["lib"],"scripts":{"lint":"eslint tests lib --ignore-pattern \'tests/assets/*\'","lint:fix":"eslint --fix tests lib"
|
|
38986
|
+
module.exports = /*#__PURE__*/JSON.parse('{"name":"@abtnode/core","publishConfig":{"access":"public"},"version":"1.16.53","description":"","main":"lib/index.js","files":["lib"],"scripts":{"lint":"eslint tests lib --ignore-pattern \'tests/assets/*\'","lint:fix":"eslint --fix tests lib"},"keywords":[],"author":"wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)","license":"Apache-2.0","dependencies":{"@abtnode/analytics":"1.16.53","@abtnode/auth":"1.16.53","@abtnode/certificate-manager":"1.16.53","@abtnode/constant":"1.16.53","@abtnode/cron":"1.16.53","@abtnode/db-cache":"1.16.53","@abtnode/docker-utils":"1.16.53","@abtnode/logger":"1.16.53","@abtnode/models":"1.16.53","@abtnode/queue":"1.16.53","@abtnode/rbac":"1.16.53","@abtnode/router-provider":"1.16.53","@abtnode/static-server":"1.16.53","@abtnode/timemachine":"1.16.53","@abtnode/util":"1.16.53","@aigne/aigne-hub":"^0.10.3","@arcblock/did":"^1.27.0","@arcblock/did-connect-js":"^1.27.0","@arcblock/did-ext":"^1.27.0","@arcblock/did-motif":"^1.1.14","@arcblock/did-util":"^1.27.0","@arcblock/event-hub":"^1.27.0","@arcblock/jwt":"^1.27.0","@arcblock/pm2-events":"^0.0.5","@arcblock/validator":"^1.27.0","@arcblock/vc":"^1.27.0","@blocklet/constant":"1.16.53","@blocklet/did-space-js":"^1.2.0","@blocklet/env":"1.16.53","@blocklet/error":"^0.2.5","@blocklet/meta":"1.16.53","@blocklet/resolver":"1.16.53","@blocklet/sdk":"1.16.53","@blocklet/server-js":"1.16.53","@blocklet/store":"1.16.53","@blocklet/theme":"^3.1.54","@fidm/x509":"^1.2.1","@ocap/mcrypto":"^1.27.0","@ocap/util":"^1.27.0","@ocap/wallet":"^1.27.0","@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","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","private-ip":"^2.3.4","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":"^11.1.0","valid-url":"^1.0.9","which":"^2.0.2","xbytes":"^1.8.0"},"devDependencies":{"axios-mock-adapter":"^2.1.0","expand-tilde":"^2.0.2","express":"^4.18.2","unzipper":"^0.10.11"},"gitHead":"e5764f753181ed6a7c615cd4fc6682aacf0cb7cd"}');
|
|
38987
38987
|
|
|
38988
38988
|
/***/ }),
|
|
38989
38989
|
|
package/lib/event/index.js
CHANGED
|
@@ -43,6 +43,7 @@ const {
|
|
|
43
43
|
rollbackBlockletSites,
|
|
44
44
|
routingSnapshotPrefix,
|
|
45
45
|
} = require('./util');
|
|
46
|
+
const { ensureBlockletHasMultipleInterfaces } = require('../router/helper');
|
|
46
47
|
|
|
47
48
|
/**
|
|
48
49
|
*
|
|
@@ -175,6 +176,40 @@ module.exports = ({
|
|
|
175
176
|
}
|
|
176
177
|
};
|
|
177
178
|
|
|
179
|
+
const handleBlockletBlurOrGreenStarted = async (name, { blocklet, componentDids, context }) => {
|
|
180
|
+
try {
|
|
181
|
+
// 只有某些 children 有多个接口时, 才需要更新路由
|
|
182
|
+
const hasMultipleInterfaces = ensureBlockletHasMultipleInterfaces(blocklet, componentDids);
|
|
183
|
+
if (!hasMultipleInterfaces) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
const changed = await ensureBlockletRouting(blocklet, context);
|
|
187
|
+
if (changed) {
|
|
188
|
+
const hash = await takeRoutingSnapshot(
|
|
189
|
+
{
|
|
190
|
+
message: `${routingSnapshotPrefix(blocklet)}Blur or green start blocklet ${blocklet.meta.name}`,
|
|
191
|
+
dryRun: false,
|
|
192
|
+
},
|
|
193
|
+
context
|
|
194
|
+
);
|
|
195
|
+
logger.info('created.url.mapping', { event: name, did: blocklet.meta.did, hash });
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
return false;
|
|
199
|
+
} catch (error) {
|
|
200
|
+
logger.error('create.url.mapping.error', { event: name, error });
|
|
201
|
+
teamManager.createNotification({
|
|
202
|
+
title: 'Blocklet URL Mapping Error',
|
|
203
|
+
// eslint-disable-next-line max-len
|
|
204
|
+
description: `Failed to create URL mapping for blocklet ${blocklet.meta.title}, due to: ${error.message}`,
|
|
205
|
+
entityType: 'blocklet',
|
|
206
|
+
entityId: blocklet.meta.did,
|
|
207
|
+
severity: 'error',
|
|
208
|
+
});
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
|
|
178
213
|
const handleBlockletInstall = async (name, { blocklet, context }) => {
|
|
179
214
|
try {
|
|
180
215
|
const changed = await ensureBlockletRouting(blocklet, context);
|
|
@@ -307,7 +342,9 @@ module.exports = ({
|
|
|
307
342
|
return;
|
|
308
343
|
}
|
|
309
344
|
|
|
310
|
-
if ([BlockletEvents.
|
|
345
|
+
if ([BlockletEvents.blurOrGreenStarted].includes(eventName)) {
|
|
346
|
+
await handleBlockletBlurOrGreenStarted(eventName, payload);
|
|
347
|
+
} else if ([BlockletEvents.installed].includes(eventName)) {
|
|
311
348
|
await handleBlockletInstall(eventName, payload);
|
|
312
349
|
|
|
313
350
|
try {
|
|
@@ -554,6 +591,7 @@ module.exports = ({
|
|
|
554
591
|
BlockletEvents.nftConsumed,
|
|
555
592
|
|
|
556
593
|
BlockletEvents.configTheme,
|
|
594
|
+
BlockletEvents.blurOrGreenStarted,
|
|
557
595
|
].forEach((eventName) => {
|
|
558
596
|
listen(blockletManager, eventName, handleBlockletEvent);
|
|
559
597
|
});
|
package/lib/router/helper.js
CHANGED
|
@@ -2083,6 +2083,16 @@ module.exports = function getRouterHelpers({
|
|
|
2083
2083
|
};
|
|
2084
2084
|
};
|
|
2085
2085
|
|
|
2086
|
+
const ensureBlockletHasMultipleInterfaces = (blocklet, componentDids) => {
|
|
2087
|
+
for (const child of blocklet.children) {
|
|
2088
|
+
const interfaces = (child.meta.interfaces || []).filter((x) => !!x.port);
|
|
2089
|
+
if (componentDids.includes(child.meta.did) && interfaces.length > 1) {
|
|
2090
|
+
return true;
|
|
2091
|
+
}
|
|
2092
|
+
}
|
|
2093
|
+
return false;
|
|
2094
|
+
};
|
|
2095
|
+
|
|
2086
2096
|
module.exports.attachRuntimeDomainAliases = attachRuntimeDomainAliases;
|
|
2087
2097
|
module.exports.ensureLatestNodeInfo = ensureLatestNodeInfo;
|
|
2088
2098
|
module.exports.ensureLatestInterfaceInfo = ensureLatestInterfaceInfo;
|
|
@@ -2092,3 +2102,4 @@ module.exports.ensureBlockletWellknownRules = ensureBlockletWellknownRules;
|
|
|
2092
2102
|
module.exports.ensureBlockletProxyBehavior = ensureBlockletProxyBehavior;
|
|
2093
2103
|
module.exports.expandComponentRules = expandComponentRules;
|
|
2094
2104
|
module.exports.getDomainsByDid = getDomainsByDid;
|
|
2105
|
+
module.exports.ensureBlockletHasMultipleInterfaces = ensureBlockletHasMultipleInterfaces;
|
package/lib/util/blocklet.js
CHANGED
|
@@ -369,9 +369,6 @@ const getAppSystemEnvironments = (blocklet, nodeInfo, dataDirs) => {
|
|
|
369
369
|
const appSk = toHex(wallet.secretKey);
|
|
370
370
|
const appPk = toHex(wallet.publicKey);
|
|
371
371
|
|
|
372
|
-
const ethWallet = fromSecretKey(appSk.slice(0, 66), 'ethereum');
|
|
373
|
-
const ethPk = toHex(ethWallet.publicKey);
|
|
374
|
-
|
|
375
372
|
const appId = wallet.address;
|
|
376
373
|
const appName = title || name || result.name;
|
|
377
374
|
const appDescription = description || result.description;
|
|
@@ -380,11 +377,6 @@ const getAppSystemEnvironments = (blocklet, nodeInfo, dataDirs) => {
|
|
|
380
377
|
const appPid = blocklet.appPid || appId;
|
|
381
378
|
const appPsk = toHex(isMigrated ? blocklet.migratedFrom[0].appSk : appSk);
|
|
382
379
|
|
|
383
|
-
// Calculate permanent public key (PPK)
|
|
384
|
-
const appPpk = isMigrated ? toHex(fromSecretKey(appPsk, wallet.type).publicKey) : appPk;
|
|
385
|
-
const ethPermanentWallet = fromSecretKey(appPsk.slice(0, 66), 'ethereum');
|
|
386
|
-
const appPpkEth = toHex(ethPermanentWallet.publicKey);
|
|
387
|
-
|
|
388
380
|
/* 获取 did domain 方式:
|
|
389
381
|
* 1. 先从 site 里读
|
|
390
382
|
* 2. 如果没有,再拼接
|
|
@@ -406,12 +398,9 @@ const getAppSystemEnvironments = (blocklet, nodeInfo, dataDirs) => {
|
|
|
406
398
|
return {
|
|
407
399
|
BLOCKLET_DID: did, // BLOCKLET_DID is always same as BLOCKLET_APP_PID in structV2 application
|
|
408
400
|
BLOCKLET_APP_PK: appPk,
|
|
409
|
-
BLOCKLET_APP_PK_ETH: ethPk,
|
|
410
401
|
BLOCKLET_APP_SK: appSk,
|
|
411
402
|
BLOCKLET_APP_ID: appId,
|
|
412
403
|
BLOCKLET_APP_PSK: appPsk, // permanent sk even the blocklet has been migrated
|
|
413
|
-
BLOCKLET_APP_PPK: appPpk, // permanent pk corresponding to PSK
|
|
414
|
-
BLOCKLET_APP_PPK_ETH: appPpkEth, // permanent pk corresponding to PSK for ethereum
|
|
415
404
|
BLOCKLET_APP_PID: appPid, // permanent did even the blocklet has been migrated
|
|
416
405
|
BLOCKLET_APP_NAME: appName,
|
|
417
406
|
BLOCKLET_APP_NAME_SLUG: urlPathFriendly(slugify(appName)),
|
|
@@ -554,6 +543,21 @@ const getRuntimeEnvironments = (blocklet, nodeEnvironments, ancestors, isGreen =
|
|
|
554
543
|
const rootBlockletInfo =
|
|
555
544
|
blocklet === root ? blockletInfo : getBlockletInfo(root, nodeEnvironments.ABT_NODE_SK, { returnWallet: true });
|
|
556
545
|
|
|
546
|
+
const { wallet } = rootBlockletInfo;
|
|
547
|
+
const appSk = toHex(wallet.secretKey);
|
|
548
|
+
const appPk = toHex(wallet.publicKey);
|
|
549
|
+
|
|
550
|
+
const ethWallet = fromSecretKey(appSk.slice(0, 66), 'ethereum');
|
|
551
|
+
const ethPk = toHex(ethWallet.publicKey);
|
|
552
|
+
|
|
553
|
+
const isMigrated = Array.isArray(root.migratedFrom) && root.migratedFrom.length > 0;
|
|
554
|
+
const appPsk = toHex(isMigrated ? root.migratedFrom[0].appSk : appSk);
|
|
555
|
+
|
|
556
|
+
// Calculate permanent public key (PPK)
|
|
557
|
+
const appPpk = isMigrated ? toHex(fromSecretKey(appPsk, wallet.type).publicKey) : appPk;
|
|
558
|
+
const ethPermanentWallet = fromSecretKey(appPsk.slice(0, 66), 'ethereum');
|
|
559
|
+
const appPpkEth = toHex(ethPermanentWallet.publicKey);
|
|
560
|
+
|
|
557
561
|
const env = {
|
|
558
562
|
...blocklet.configObj,
|
|
559
563
|
...getSharedConfigObj((ancestors || [])[0], blocklet, true),
|
|
@@ -570,6 +574,10 @@ const getRuntimeEnvironments = (blocklet, nodeEnvironments, ancestors, isGreen =
|
|
|
570
574
|
BLOCKLET_APP_ASK: accessWallet?.secretKey,
|
|
571
575
|
...nodeEnvironments,
|
|
572
576
|
...safeNodeEnvironments,
|
|
577
|
+
BLOCKLET_APP_PPK: appPpk, // permanent pk corresponding to PSK
|
|
578
|
+
BLOCKLET_APP_PPK_ETH: appPpkEth, // permanent pk corresponding to PSK for ethereum
|
|
579
|
+
BLOCKLET_APP_PK: appPk,
|
|
580
|
+
BLOCKLET_APP_PK_ETH: ethPk,
|
|
573
581
|
};
|
|
574
582
|
|
|
575
583
|
const aigne = get(root, 'settings.aigne', {});
|
package/lib/util/index.js
CHANGED
|
@@ -286,17 +286,19 @@ const findInterfaceByName = (blocklet, name) => {
|
|
|
286
286
|
|
|
287
287
|
const findInterfacePortByName = (blocklet, name) => {
|
|
288
288
|
const found = findInterfaceByName(blocklet, name);
|
|
289
|
-
const { ports } = blocklet;
|
|
289
|
+
const { ports, greenPorts, greenStatus } = blocklet;
|
|
290
290
|
|
|
291
|
-
|
|
291
|
+
const realPorts = greenPorts && greenStatus === BlockletStatus.running ? greenPorts : ports;
|
|
292
|
+
|
|
293
|
+
if (!found || !realPorts) {
|
|
292
294
|
return null;
|
|
293
295
|
}
|
|
294
296
|
|
|
295
297
|
if (typeof found.port === 'string') {
|
|
296
|
-
return
|
|
298
|
+
return realPorts[found.port];
|
|
297
299
|
}
|
|
298
300
|
|
|
299
|
-
return
|
|
301
|
+
return realPorts[found.port.internal];
|
|
300
302
|
};
|
|
301
303
|
|
|
302
304
|
const getWellknownSitePort = async () => {
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.16.54-beta-
|
|
6
|
+
"version": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
7
7
|
"description": "",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"files": [
|
|
@@ -11,29 +11,27 @@
|
|
|
11
11
|
],
|
|
12
12
|
"scripts": {
|
|
13
13
|
"lint": "eslint tests lib --ignore-pattern 'tests/assets/*'",
|
|
14
|
-
"lint:fix": "eslint --fix tests lib"
|
|
15
|
-
"test": "bun test --bail --timeout 30000",
|
|
16
|
-
"coverage": "bun test --bail --timeout 30000 --coverage"
|
|
14
|
+
"lint:fix": "eslint --fix tests lib"
|
|
17
15
|
},
|
|
18
16
|
"keywords": [],
|
|
19
17
|
"author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
|
|
20
18
|
"license": "Apache-2.0",
|
|
21
19
|
"dependencies": {
|
|
22
|
-
"@abtnode/analytics": "1.16.54-beta-
|
|
23
|
-
"@abtnode/auth": "1.16.54-beta-
|
|
24
|
-
"@abtnode/certificate-manager": "1.16.54-beta-
|
|
25
|
-
"@abtnode/constant": "1.16.54-beta-
|
|
26
|
-
"@abtnode/cron": "1.16.54-beta-
|
|
27
|
-
"@abtnode/db-cache": "1.16.54-beta-
|
|
28
|
-
"@abtnode/docker-utils": "1.16.54-beta-
|
|
29
|
-
"@abtnode/logger": "1.16.54-beta-
|
|
30
|
-
"@abtnode/models": "1.16.54-beta-
|
|
31
|
-
"@abtnode/queue": "1.16.54-beta-
|
|
32
|
-
"@abtnode/rbac": "1.16.54-beta-
|
|
33
|
-
"@abtnode/router-provider": "1.16.54-beta-
|
|
34
|
-
"@abtnode/static-server": "1.16.54-beta-
|
|
35
|
-
"@abtnode/timemachine": "1.16.54-beta-
|
|
36
|
-
"@abtnode/util": "1.16.54-beta-
|
|
20
|
+
"@abtnode/analytics": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
21
|
+
"@abtnode/auth": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
22
|
+
"@abtnode/certificate-manager": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
23
|
+
"@abtnode/constant": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
24
|
+
"@abtnode/cron": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
25
|
+
"@abtnode/db-cache": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
26
|
+
"@abtnode/docker-utils": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
27
|
+
"@abtnode/logger": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
28
|
+
"@abtnode/models": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
29
|
+
"@abtnode/queue": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
30
|
+
"@abtnode/rbac": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
31
|
+
"@abtnode/router-provider": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
32
|
+
"@abtnode/static-server": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
33
|
+
"@abtnode/timemachine": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
34
|
+
"@abtnode/util": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
37
35
|
"@aigne/aigne-hub": "^0.10.3",
|
|
38
36
|
"@arcblock/did": "^1.27.0",
|
|
39
37
|
"@arcblock/did-connect-js": "^1.27.0",
|
|
@@ -45,15 +43,15 @@
|
|
|
45
43
|
"@arcblock/pm2-events": "^0.0.5",
|
|
46
44
|
"@arcblock/validator": "^1.27.0",
|
|
47
45
|
"@arcblock/vc": "^1.27.0",
|
|
48
|
-
"@blocklet/constant": "1.16.54-beta-
|
|
46
|
+
"@blocklet/constant": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
49
47
|
"@blocklet/did-space-js": "^1.2.0",
|
|
50
|
-
"@blocklet/env": "1.16.54-beta-
|
|
48
|
+
"@blocklet/env": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
51
49
|
"@blocklet/error": "^0.2.5",
|
|
52
|
-
"@blocklet/meta": "1.16.54-beta-
|
|
53
|
-
"@blocklet/resolver": "1.16.54-beta-
|
|
54
|
-
"@blocklet/sdk": "1.16.54-beta-
|
|
55
|
-
"@blocklet/server-js": "1.16.54-beta-
|
|
56
|
-
"@blocklet/store": "1.16.54-beta-
|
|
50
|
+
"@blocklet/meta": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
51
|
+
"@blocklet/resolver": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
52
|
+
"@blocklet/sdk": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
53
|
+
"@blocklet/server-js": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
54
|
+
"@blocklet/store": "1.16.54-beta-20251031-043051-f3b56e3a",
|
|
57
55
|
"@blocklet/theme": "^3.1.54",
|
|
58
56
|
"@fidm/x509": "^1.2.1",
|
|
59
57
|
"@ocap/mcrypto": "^1.27.0",
|
|
@@ -118,5 +116,5 @@
|
|
|
118
116
|
"express": "^4.18.2",
|
|
119
117
|
"unzipper": "^0.10.11"
|
|
120
118
|
},
|
|
121
|
-
"gitHead": "
|
|
119
|
+
"gitHead": "3c8d3d08531c55eef3de4d9657b2452850d5bcc7"
|
|
122
120
|
}
|