@abtnode/core 1.16.26-beta-5251ab18 → 1.16.26-beta-351de484
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 +17 -6
- package/lib/blocklet/manager/disk.js +15 -4
- package/lib/blocklet/project/connect-to-store.js +25 -12
- package/lib/blocklet/project/index.js +8 -3
- package/lib/blocklet/project/publish-to-store.js +4 -9
- package/lib/blocklet/storage/backup/spaces.js +6 -2
- package/lib/blocklet/storage/restore/spaces.js +5 -2
- package/lib/index.js +1 -0
- package/lib/states/project.js +31 -2
- package/lib/states/user.js +16 -7
- package/lib/validators/user.js +7 -0
- package/package.json +22 -22
package/lib/api/team.js
CHANGED
|
@@ -196,6 +196,19 @@ class TeamAPI extends EventEmitter {
|
|
|
196
196
|
return doc;
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
+
async disconnectUserAccount({ teamDid, connectedAccount }) {
|
|
200
|
+
const state = await this.getUserState(teamDid);
|
|
201
|
+
const result = await state.disconnectUserAccount(connectedAccount);
|
|
202
|
+
|
|
203
|
+
logger.info('user disconnect account successfully', {
|
|
204
|
+
teamDid,
|
|
205
|
+
connectedAccountDid: connectedAccount.did,
|
|
206
|
+
connectedAccountPk: connectedAccount.pk,
|
|
207
|
+
connectedAccountProvider: connectedAccount.provider,
|
|
208
|
+
});
|
|
209
|
+
return result;
|
|
210
|
+
}
|
|
211
|
+
|
|
199
212
|
async addUser({ teamDid, user }) {
|
|
200
213
|
const state = await this.getUserState(teamDid);
|
|
201
214
|
|
|
@@ -1340,7 +1353,7 @@ class TeamAPI extends EventEmitter {
|
|
|
1340
1353
|
}
|
|
1341
1354
|
|
|
1342
1355
|
// eslint-disable-next-line no-unused-vars
|
|
1343
|
-
async deleteStore({ teamDid, url }, context) {
|
|
1356
|
+
async deleteStore({ teamDid, url, projectId }, context) {
|
|
1344
1357
|
logger.info('delete registry', { url });
|
|
1345
1358
|
const sanitized = sanitizeUrl(url);
|
|
1346
1359
|
|
|
@@ -1350,11 +1363,9 @@ class TeamAPI extends EventEmitter {
|
|
|
1350
1363
|
throw new Error(`Blocklet registry does not exist: ${sanitized}`);
|
|
1351
1364
|
}
|
|
1352
1365
|
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
settings.connectedStores = settings.connectedStores.filter((x) => x.storeUrl !== sanitized);
|
|
1357
|
-
await this.states.blockletExtras.setSettings(teamDid, settings);
|
|
1366
|
+
if (projectId) {
|
|
1367
|
+
const { projectState } = await this.teamManager.getProjectState(teamDid);
|
|
1368
|
+
await projectState.deleteConnectedStore(projectId, url);
|
|
1358
1369
|
}
|
|
1359
1370
|
|
|
1360
1371
|
return this.teamManager.updateStoreList(
|
|
@@ -10,6 +10,7 @@ const merge = require('lodash/merge');
|
|
|
10
10
|
const pick = require('lodash/pick');
|
|
11
11
|
const isEmpty = require('lodash/isEmpty');
|
|
12
12
|
const cloneDeep = require('lodash/cloneDeep');
|
|
13
|
+
const defaultsDeep = require('lodash/defaultsDeep');
|
|
13
14
|
const { sign } = require('@arcblock/jwt');
|
|
14
15
|
const { isInServerlessMode } = require('@abtnode/util/lib/serverless');
|
|
15
16
|
const sleep = require('@abtnode/util/lib/sleep');
|
|
@@ -1689,7 +1690,7 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
1689
1690
|
|
|
1690
1691
|
async configOAuth({ did, oauth = {} }, context) {
|
|
1691
1692
|
const oldOAuth = await states.blockletExtras.getSettings(did, 'oauth', {});
|
|
1692
|
-
const mergeConfig =
|
|
1693
|
+
const mergeConfig = defaultsDeep(JSON.parse(oauth), oldOAuth);
|
|
1693
1694
|
await states.blockletExtras.setSettings(did, { oauth: mergeConfig });
|
|
1694
1695
|
const newState = await this.getBlocklet(did);
|
|
1695
1696
|
this.emit(BlockletInternalEvents.appSettingChanged, { appDid: did });
|
|
@@ -2357,11 +2358,11 @@ class DiskBlockletManager extends BaseBlockletManager {
|
|
|
2357
2358
|
}
|
|
2358
2359
|
|
|
2359
2360
|
connectToStore(params) {
|
|
2360
|
-
return connectToStore({ ...params, manager: this
|
|
2361
|
+
return connectToStore({ ...params, manager: this });
|
|
2361
2362
|
}
|
|
2362
2363
|
|
|
2363
2364
|
publishToStore(params) {
|
|
2364
|
-
return publishToStore({ ...params, manager: this
|
|
2365
|
+
return publishToStore({ ...params, manager: this });
|
|
2365
2366
|
}
|
|
2366
2367
|
|
|
2367
2368
|
getSelectedResources({ did, projectId, releaseId, componentDid } = {}) {
|
|
@@ -4733,7 +4734,17 @@ class FederatedBlockletManager extends DiskBlockletManager {
|
|
|
4733
4734
|
const { users, sites } = data;
|
|
4734
4735
|
if (users && Array.isArray(users)) {
|
|
4735
4736
|
safeData.users = users.map((item) =>
|
|
4736
|
-
pick(item, [
|
|
4737
|
+
pick(item, [
|
|
4738
|
+
'did',
|
|
4739
|
+
'pk',
|
|
4740
|
+
'fullName',
|
|
4741
|
+
'avatar',
|
|
4742
|
+
'email',
|
|
4743
|
+
'connectedAccount',
|
|
4744
|
+
'disconnectedAccount',
|
|
4745
|
+
'action',
|
|
4746
|
+
'sourceAppPid',
|
|
4747
|
+
])
|
|
4737
4748
|
);
|
|
4738
4749
|
}
|
|
4739
4750
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const validUrl = require('valid-url');
|
|
2
2
|
|
|
3
3
|
const { createConnect } = require('@blocklet/store');
|
|
4
|
-
const {
|
|
4
|
+
const { STUDIO_CONNECTED_STORE } = require('@abtnode/constant');
|
|
5
5
|
|
|
6
|
-
const connectToStore =
|
|
6
|
+
const connectToStore = ({ did, projectId, storeName, storeId, storeUrl, manager }) => {
|
|
7
7
|
if (!did) {
|
|
8
8
|
throw new Error('Invalid did');
|
|
9
9
|
}
|
|
@@ -11,11 +11,22 @@ const connectToStore = async ({ did, storeName, storeId, storeUrl, blockletExtra
|
|
|
11
11
|
if (!validUrl.isWebUri(storeUrl)) {
|
|
12
12
|
throw new Error('Invalid store url:', storeUrl);
|
|
13
13
|
}
|
|
14
|
-
const settings = await blockletExtras.getSettings(did);
|
|
15
14
|
|
|
16
15
|
// eslint-disable-next-line no-async-promise-executor
|
|
17
16
|
return new Promise(async (resolve, reject) => {
|
|
18
17
|
try {
|
|
18
|
+
// 基于 nextWorkflow 这样的实现目前体验有些问题, 暂时还无法使用 connect-by-studio
|
|
19
|
+
// const fetchData = await createConnect({
|
|
20
|
+
// connectUrl: storeUrl,
|
|
21
|
+
// projectId,
|
|
22
|
+
// userDid,
|
|
23
|
+
// connectAction: 'connect-by-studio',
|
|
24
|
+
// enableEncrypt: true,
|
|
25
|
+
// openPage: (pageUrl) => {
|
|
26
|
+
// resolve(pageUrl);
|
|
27
|
+
// },
|
|
28
|
+
// });
|
|
29
|
+
|
|
19
30
|
const fetchData = await createConnect({
|
|
20
31
|
connectUrl: storeUrl,
|
|
21
32
|
connectAction: 'connect-cli',
|
|
@@ -24,9 +35,14 @@ const connectToStore = async ({ did, storeName, storeId, storeUrl, blockletExtra
|
|
|
24
35
|
resolve(pageUrl);
|
|
25
36
|
},
|
|
26
37
|
});
|
|
38
|
+
|
|
27
39
|
const { secretKey, developerDid, name, email } = fetchData;
|
|
28
|
-
|
|
29
|
-
|
|
40
|
+
|
|
41
|
+
const { projectState } = await manager._getProjectState(did);
|
|
42
|
+
const project = await projectState.findOne({ id: projectId });
|
|
43
|
+
|
|
44
|
+
if (!project.connectedStores) {
|
|
45
|
+
project.connectedStores = [];
|
|
30
46
|
}
|
|
31
47
|
|
|
32
48
|
const nextStore = {
|
|
@@ -39,14 +55,14 @@ const connectToStore = async ({ did, storeName, storeId, storeUrl, blockletExtra
|
|
|
39
55
|
developerEmail: email,
|
|
40
56
|
};
|
|
41
57
|
|
|
42
|
-
const oldStore =
|
|
58
|
+
const oldStore = project.connectedStores.find((x) => x.storeId === storeId);
|
|
43
59
|
if (oldStore) {
|
|
44
60
|
Object.assign(oldStore, nextStore);
|
|
45
61
|
} else {
|
|
46
|
-
|
|
62
|
+
project.connectedStores.push(nextStore);
|
|
47
63
|
}
|
|
48
64
|
|
|
49
|
-
await
|
|
65
|
+
await projectState.updateProject(projectId, project);
|
|
50
66
|
|
|
51
67
|
await manager.teamManager.createNotification({
|
|
52
68
|
teamDid: did,
|
|
@@ -54,12 +70,9 @@ const connectToStore = async ({ did, storeName, storeId, storeUrl, blockletExtra
|
|
|
54
70
|
description: `You can publish your blocklet to ${storeName} now`,
|
|
55
71
|
entityType: 'blocklet',
|
|
56
72
|
entityId: did,
|
|
73
|
+
meta: { did, eventType: STUDIO_CONNECTED_STORE },
|
|
57
74
|
severity: 'success',
|
|
58
75
|
});
|
|
59
|
-
|
|
60
|
-
manager.emit(BlockletEvents.updated, {
|
|
61
|
-
meta: { did },
|
|
62
|
-
});
|
|
63
76
|
} catch (error) {
|
|
64
77
|
reject(error);
|
|
65
78
|
}
|
|
@@ -46,15 +46,20 @@ const createProject = async ({ did, type, blockletTitle, blockletDid, componentD
|
|
|
46
46
|
return project;
|
|
47
47
|
};
|
|
48
48
|
|
|
49
|
-
const getProjects = async ({ did, manager, componentDid }) => {
|
|
49
|
+
const getProjects = async ({ did, manager, componentDid, showAccessToken }) => {
|
|
50
50
|
const { projectState } = await manager._getProjectState(did);
|
|
51
|
-
const projects = await projectState.getProjects({ componentDid });
|
|
51
|
+
const projects = await projectState.getProjects({ componentDid, showAccessToken });
|
|
52
52
|
return { projects };
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
const getProject = async ({ did, projectId, manager }) => {
|
|
55
|
+
const getProject = async ({ did, projectId, manager, showAccessToken }) => {
|
|
56
56
|
const { projectState } = await manager._getProjectState(did);
|
|
57
57
|
const project = await projectState.findOne({ id: projectId });
|
|
58
|
+
if (!showAccessToken) {
|
|
59
|
+
project.connectedStores?.forEach((store) => {
|
|
60
|
+
store.accessToken = store.accessToken ? '__encrypted__' : '';
|
|
61
|
+
});
|
|
62
|
+
}
|
|
58
63
|
return project;
|
|
59
64
|
};
|
|
60
65
|
|
|
@@ -17,7 +17,7 @@ function getReleaseDir(blocklet, projectId, releaseId) {
|
|
|
17
17
|
return path.join(projectDir, PROJECT.RELEASE_DIR, `${releaseId}`);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
const publishToStore = async ({ did, projectId, releaseId, type, storeId, manager
|
|
20
|
+
const publishToStore = async ({ did, projectId, releaseId, type, storeId, manager }) => {
|
|
21
21
|
if (
|
|
22
22
|
!did ||
|
|
23
23
|
!projectId ||
|
|
@@ -30,21 +30,16 @@ const publishToStore = async ({ did, projectId, releaseId, type, storeId, manage
|
|
|
30
30
|
throw new Error('params is failed');
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
const { releaseState } = await manager._getProjectState(did);
|
|
33
|
+
const { releaseState, projectState } = await manager._getProjectState(did);
|
|
34
34
|
|
|
35
35
|
const release = await releaseState.findOne({ projectId, id: releaseId });
|
|
36
36
|
if (!release) {
|
|
37
37
|
throw new Error('release not found');
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
if (!settings.connectedStores) {
|
|
43
|
-
throw new Error('no connected stores');
|
|
44
|
-
}
|
|
45
|
-
const store = settings.connectedStores.find((x) => x.storeId === storeId);
|
|
40
|
+
const store = await projectState.getConnectedStore(projectId, storeId);
|
|
46
41
|
if (!store) {
|
|
47
|
-
throw new Error('no connected
|
|
42
|
+
throw new Error('no find connected store');
|
|
48
43
|
}
|
|
49
44
|
const { storeUrl } = store;
|
|
50
45
|
const { accessToken, developerDid } = store;
|
|
@@ -240,7 +240,11 @@ class SpacesBackup extends BaseBackup {
|
|
|
240
240
|
delegation: this.securityContext.delegation,
|
|
241
241
|
});
|
|
242
242
|
|
|
243
|
-
const {
|
|
243
|
+
const {
|
|
244
|
+
data: { errorCount },
|
|
245
|
+
statusCode,
|
|
246
|
+
statusMessage,
|
|
247
|
+
} = await spaceClient.send(
|
|
244
248
|
new IncrementalBackupBlockletCommand({
|
|
245
249
|
appDid: this.blocklet.appDid,
|
|
246
250
|
appName: getAppName(this.blocklet),
|
|
@@ -291,7 +295,7 @@ class SpacesBackup extends BaseBackup {
|
|
|
291
295
|
if (statusCode === 403) {
|
|
292
296
|
throw new Error(translate(locale, 'backup.space.error.forbidden'));
|
|
293
297
|
}
|
|
294
|
-
throw new Error(
|
|
298
|
+
throw new Error(statusMessage);
|
|
295
299
|
}
|
|
296
300
|
}
|
|
297
301
|
|
|
@@ -118,7 +118,10 @@ class SpacesRestore extends BaseRestore {
|
|
|
118
118
|
wallet,
|
|
119
119
|
});
|
|
120
120
|
|
|
121
|
-
const {
|
|
121
|
+
const {
|
|
122
|
+
data: { errorCount },
|
|
123
|
+
statusMessage,
|
|
124
|
+
} = await spaceClient.send(
|
|
122
125
|
new RestoreBlockletCommand({
|
|
123
126
|
appDid: this.input.appDid,
|
|
124
127
|
target: join(this.restoreDir, '/'),
|
|
@@ -142,7 +145,7 @@ class SpacesRestore extends BaseRestore {
|
|
|
142
145
|
);
|
|
143
146
|
|
|
144
147
|
if (errorCount !== 0) {
|
|
145
|
-
throw new Error(
|
|
148
|
+
throw new Error(statusMessage);
|
|
146
149
|
}
|
|
147
150
|
}
|
|
148
151
|
|
package/lib/index.js
CHANGED
|
@@ -435,6 +435,7 @@ function ABTNode(options) {
|
|
|
435
435
|
getNodeUser: (user) => teamAPI.getUser({ teamDid: options.nodeDid, user }),
|
|
436
436
|
addUser: teamAPI.addUser.bind(teamAPI),
|
|
437
437
|
loginUser: teamAPI.loginUser.bind(teamAPI),
|
|
438
|
+
disconnectUserAccount: teamAPI.disconnectUserAccount.bind(teamAPI),
|
|
438
439
|
removeUser: teamAPI.removeUser.bind(teamAPI),
|
|
439
440
|
updateUser: teamAPI.updateUser.bind(teamAPI),
|
|
440
441
|
updateUserTags: teamAPI.updateUserTags.bind(teamAPI),
|
package/lib/states/project.js
CHANGED
|
@@ -17,18 +17,26 @@ class Project extends BaseState {
|
|
|
17
17
|
return this.insert(doc);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
getProjects({ componentDid }) {
|
|
20
|
+
async getProjects({ componentDid, showAccessToken }) {
|
|
21
21
|
const query = {};
|
|
22
22
|
if (componentDid) {
|
|
23
23
|
query.componentDid = componentDid;
|
|
24
24
|
}
|
|
25
|
-
|
|
25
|
+
const projects = await this.find(
|
|
26
26
|
query,
|
|
27
27
|
{},
|
|
28
28
|
{
|
|
29
29
|
createdAt: -1,
|
|
30
30
|
}
|
|
31
31
|
);
|
|
32
|
+
if (!showAccessToken) {
|
|
33
|
+
projects?.forEach((project) => {
|
|
34
|
+
project.connectedStores?.forEach((store) => {
|
|
35
|
+
store.accessToken = store.accessToken ? '__encrypted__' : '';
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return projects;
|
|
32
40
|
}
|
|
33
41
|
|
|
34
42
|
async updateProject(id, params) {
|
|
@@ -44,6 +52,7 @@ class Project extends BaseState {
|
|
|
44
52
|
'blockletScreenshots',
|
|
45
53
|
'lastReleaseId',
|
|
46
54
|
'lastReleaseFiles',
|
|
55
|
+
'connectedStores',
|
|
47
56
|
]),
|
|
48
57
|
(x) => !isUndefinedOrNull(x)
|
|
49
58
|
);
|
|
@@ -51,6 +60,26 @@ class Project extends BaseState {
|
|
|
51
60
|
const [, [updated]] = await this.update({ id }, { $set: _params });
|
|
52
61
|
return updated;
|
|
53
62
|
}
|
|
63
|
+
|
|
64
|
+
async deleteConnectedStore(id, url) {
|
|
65
|
+
const project = await this.findOne({ id });
|
|
66
|
+
if (!project) {
|
|
67
|
+
throw new Error('Project not found');
|
|
68
|
+
}
|
|
69
|
+
const connectedStores = (project.connectedStores || []).filter((x) => x.storeUrl !== url);
|
|
70
|
+
const [, [updated]] = await this.update({ id }, { $set: { connectedStores } });
|
|
71
|
+
|
|
72
|
+
return updated;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
async getConnectedStore(id, storeId) {
|
|
76
|
+
const project = await this.findOne({ id });
|
|
77
|
+
if (!project) {
|
|
78
|
+
throw new Error('Project not found');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
return project.connectedStores?.find((x) => x.storeId === storeId);
|
|
82
|
+
}
|
|
54
83
|
}
|
|
55
84
|
|
|
56
85
|
module.exports = Project;
|
package/lib/states/user.js
CHANGED
|
@@ -10,18 +10,18 @@ const { updateConnectedAccount } = require('@abtnode/util/lib/user');
|
|
|
10
10
|
const { LOGIN_PROVIDER } = require('@blocklet/constant');
|
|
11
11
|
|
|
12
12
|
const { validateOwner } = require('../util');
|
|
13
|
-
const { loginSchema } = require('../validators/user');
|
|
13
|
+
const { loginSchema, disconnectAccountSchema } = require('../validators/user');
|
|
14
14
|
const ExtendBase = require('./base');
|
|
15
15
|
|
|
16
16
|
const isNullOrUndefined = (x) => x === undefined || x === null;
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Auth0Account
|
|
20
|
-
* @typedef {Object}
|
|
21
|
-
* @property {'auth0'} provider
|
|
22
|
-
* @property {string} id - id from
|
|
23
|
-
* @property {string} did - did for
|
|
24
|
-
* @property {string} pk - pk for
|
|
20
|
+
* @typedef {Object} OAuthAccount
|
|
21
|
+
* @property {'auth0'|'google'|'github'|'apple'} provider
|
|
22
|
+
* @property {string} id - id from oauth
|
|
23
|
+
* @property {string} did - did for oauth account
|
|
24
|
+
* @property {string} pk - pk for oauth account
|
|
25
25
|
* @property {string} lastLoginAt - Last login time new Date().toISOString()
|
|
26
26
|
* @property {string} firstLoginAt - First login time new Date().toISOString()
|
|
27
27
|
*/
|
|
@@ -48,7 +48,7 @@ const isNullOrUndefined = (x) => x === undefined || x === null;
|
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
50
|
* ConnectedAccount
|
|
51
|
-
* @typedef {(
|
|
51
|
+
* @typedef {(OAuthAccount|WalletAccount|NFTAccount)} ConnectedAccount
|
|
52
52
|
*/
|
|
53
53
|
|
|
54
54
|
/**
|
|
@@ -420,6 +420,15 @@ class User extends ExtendBase {
|
|
|
420
420
|
return { ...updated, _action: exist ? 'update' : 'add' };
|
|
421
421
|
}
|
|
422
422
|
|
|
423
|
+
async disconnectUserAccount(raw) {
|
|
424
|
+
const { error, value: connectedAccount } = disconnectAccountSchema.validate(raw);
|
|
425
|
+
if (error) {
|
|
426
|
+
throw new Error(error);
|
|
427
|
+
}
|
|
428
|
+
const result = await this.connectedAccount.remove(connectedAccount);
|
|
429
|
+
return result;
|
|
430
|
+
}
|
|
431
|
+
|
|
423
432
|
// eslint-disable-next-line require-await
|
|
424
433
|
async getUserByDid(did) {
|
|
425
434
|
return this.findOne({ did }, { did: 1, pk: 1, fullName: 1, email: 1, role: 1, approved: 1 });
|
package/lib/validators/user.js
CHANGED
|
@@ -48,5 +48,12 @@ const profileSchema = Joi.object({
|
|
|
48
48
|
email: Joi.string().empty(''),
|
|
49
49
|
});
|
|
50
50
|
|
|
51
|
+
const disconnectAccountSchema = Joi.object({
|
|
52
|
+
provider: Joi.string().required(),
|
|
53
|
+
did: Joi.DID().trim().required(),
|
|
54
|
+
pk: Joi.string().optional(),
|
|
55
|
+
});
|
|
56
|
+
|
|
51
57
|
exports.loginSchema = loginSchema;
|
|
52
58
|
exports.profileSchema = profileSchema;
|
|
59
|
+
exports.disconnectAccountSchema = disconnectAccountSchema;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.16.26-beta-
|
|
6
|
+
"version": "1.16.26-beta-351de484",
|
|
7
7
|
"description": "",
|
|
8
8
|
"main": "lib/index.js",
|
|
9
9
|
"files": [
|
|
@@ -19,19 +19,19 @@
|
|
|
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.26-beta-
|
|
23
|
-
"@abtnode/auth": "1.16.26-beta-
|
|
24
|
-
"@abtnode/certificate-manager": "1.16.26-beta-
|
|
25
|
-
"@abtnode/constant": "1.16.26-beta-
|
|
26
|
-
"@abtnode/cron": "1.16.26-beta-
|
|
27
|
-
"@abtnode/logger": "1.16.26-beta-
|
|
28
|
-
"@abtnode/models": "1.16.26-beta-
|
|
29
|
-
"@abtnode/queue": "1.16.26-beta-
|
|
30
|
-
"@abtnode/rbac": "1.16.26-beta-
|
|
31
|
-
"@abtnode/router-provider": "1.16.26-beta-
|
|
32
|
-
"@abtnode/static-server": "1.16.26-beta-
|
|
33
|
-
"@abtnode/timemachine": "1.16.26-beta-
|
|
34
|
-
"@abtnode/util": "1.16.26-beta-
|
|
22
|
+
"@abtnode/analytics": "1.16.26-beta-351de484",
|
|
23
|
+
"@abtnode/auth": "1.16.26-beta-351de484",
|
|
24
|
+
"@abtnode/certificate-manager": "1.16.26-beta-351de484",
|
|
25
|
+
"@abtnode/constant": "1.16.26-beta-351de484",
|
|
26
|
+
"@abtnode/cron": "1.16.26-beta-351de484",
|
|
27
|
+
"@abtnode/logger": "1.16.26-beta-351de484",
|
|
28
|
+
"@abtnode/models": "1.16.26-beta-351de484",
|
|
29
|
+
"@abtnode/queue": "1.16.26-beta-351de484",
|
|
30
|
+
"@abtnode/rbac": "1.16.26-beta-351de484",
|
|
31
|
+
"@abtnode/router-provider": "1.16.26-beta-351de484",
|
|
32
|
+
"@abtnode/static-server": "1.16.26-beta-351de484",
|
|
33
|
+
"@abtnode/timemachine": "1.16.26-beta-351de484",
|
|
34
|
+
"@abtnode/util": "1.16.26-beta-351de484",
|
|
35
35
|
"@arcblock/did": "1.18.115",
|
|
36
36
|
"@arcblock/did-auth": "1.18.115",
|
|
37
37
|
"@arcblock/did-ext": "^1.18.115",
|
|
@@ -42,13 +42,13 @@
|
|
|
42
42
|
"@arcblock/pm2-events": "^0.0.5",
|
|
43
43
|
"@arcblock/validator": "^1.18.115",
|
|
44
44
|
"@arcblock/vc": "1.18.115",
|
|
45
|
-
"@blocklet/constant": "1.16.26-beta-
|
|
46
|
-
"@blocklet/env": "1.16.26-beta-
|
|
47
|
-
"@blocklet/meta": "1.16.26-beta-
|
|
48
|
-
"@blocklet/resolver": "1.16.26-beta-
|
|
49
|
-
"@blocklet/sdk": "1.16.26-beta-
|
|
50
|
-
"@blocklet/store": "1.16.26-beta-
|
|
51
|
-
"@did-space/client": "^0.
|
|
45
|
+
"@blocklet/constant": "1.16.26-beta-351de484",
|
|
46
|
+
"@blocklet/env": "1.16.26-beta-351de484",
|
|
47
|
+
"@blocklet/meta": "1.16.26-beta-351de484",
|
|
48
|
+
"@blocklet/resolver": "1.16.26-beta-351de484",
|
|
49
|
+
"@blocklet/sdk": "1.16.26-beta-351de484",
|
|
50
|
+
"@blocklet/store": "1.16.26-beta-351de484",
|
|
51
|
+
"@did-space/client": "^0.4.1",
|
|
52
52
|
"@fidm/x509": "^1.2.1",
|
|
53
53
|
"@ocap/mcrypto": "1.18.115",
|
|
54
54
|
"@ocap/util": "1.18.115",
|
|
@@ -103,5 +103,5 @@
|
|
|
103
103
|
"jest": "^29.7.0",
|
|
104
104
|
"unzipper": "^0.10.11"
|
|
105
105
|
},
|
|
106
|
-
"gitHead": "
|
|
106
|
+
"gitHead": "00eba435a21506382c7823ea804abea196390a0f"
|
|
107
107
|
}
|