@abtnode/core 1.16.19-beta-e6aac665 → 1.16.19-beta-7b2db880

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/index.js CHANGED
@@ -86,7 +86,9 @@ function ABTNode(options) {
86
86
  model: states.job,
87
87
  name: 'jobs',
88
88
  onJob: async (job) => {
89
+ // eslint-disable-next-line no-use-before-define
89
90
  if (typeof blockletManager.onJob === 'function') {
91
+ // eslint-disable-next-line no-use-before-define
90
92
  await blockletManager.onJob(job);
91
93
  }
92
94
  },
@@ -102,7 +104,9 @@ function ABTNode(options) {
102
104
  model: states.job,
103
105
  name: 'install_queue',
104
106
  onJob: async (job) => {
107
+ // eslint-disable-next-line no-use-before-define
105
108
  if (typeof blockletManager.onJob === 'function') {
109
+ // eslint-disable-next-line no-use-before-define
106
110
  await blockletManager.onJob(job);
107
111
  }
108
112
  },
@@ -120,7 +124,9 @@ function ABTNode(options) {
120
124
  model: states.job,
121
125
  name: 'backup_queue',
122
126
  onJob: async (job) => {
127
+ // eslint-disable-next-line no-use-before-define
123
128
  if (typeof blockletManager.onJob === 'function') {
129
+ // eslint-disable-next-line no-use-before-define
124
130
  await blockletManager.onJob(job);
125
131
  }
126
132
  },
@@ -140,7 +146,9 @@ function ABTNode(options) {
140
146
  name: 'restore_queue',
141
147
  model: states.job,
142
148
  onJob: async (job) => {
149
+ // eslint-disable-next-line no-use-before-define
143
150
  if (typeof blockletManager.onJob === 'function') {
151
+ // eslint-disable-next-line no-use-before-define
144
152
  await blockletManager.onJob(job);
145
153
  }
146
154
  },
@@ -5,50 +5,13 @@ const path = require('path');
5
5
  const semver = require('semver');
6
6
  const uniqBy = require('lodash/uniqBy');
7
7
  const logger = require('@abtnode/logger')('@abtnode/core:migration');
8
- const {
9
- doSchemaMigration,
10
- doDataMigration,
11
- getBlockletModels,
12
- getServerModels,
13
- getServiceModels,
14
- getCertificateManagerModels,
15
- createSequelize,
16
- } = require('@abtnode/models');
8
+ const { doSchemaMigration, createSequelize } = require('@abtnode/models');
17
9
  const { getDbFilePath } = require('../util');
18
10
 
19
11
  const BACKUP_FILE_DB = 'server.db';
20
12
  const BACKUP_FILE_CONFIG = 'config.yml';
21
13
 
22
14
  const MODULES = ['certificate-manager'];
23
- const MAPPINGS = {
24
- server: {
25
- access_key: 'AccessKey',
26
- 'audit-log': 'AuditLog',
27
- blocklet: 'Blocklet',
28
- blocklet_extras: 'BlockletExtra',
29
- cache: 'Cache',
30
- migration: 'Migration',
31
- node: 'Server',
32
- notification: 'Notification',
33
- routing_rule: 'Site',
34
- session: 'Session',
35
- user: 'User',
36
- webhook: 'WebHook',
37
- },
38
- blocklet: {
39
- user: 'User',
40
- session: 'Session',
41
- rbac: 'Rbac',
42
- },
43
- service: {
44
- message: 'Message',
45
- },
46
- 'certificate-manager': {
47
- account: 'Account',
48
- certificate: 'Certificate',
49
- 'http-challenge': 'HttpChallenge',
50
- },
51
- };
52
15
 
53
16
  const getMigrationScripts = (scriptsDir) => {
54
17
  const files = fs.readdirSync(scriptsDir);
@@ -243,72 +206,6 @@ const runSchemaMigrations = async ({
243
206
  }
244
207
  };
245
208
 
246
- const runDataMigrations = async ({
247
- dataDir,
248
- blocklets = [],
249
- printInfo = console.info, // eslint-disable-line
250
- printSuccess = console.info, // eslint-disable-line
251
- printError = console.error,
252
- }) => {
253
- // migrate server data
254
- await doDataMigration({
255
- srcDir: path.join(dataDir, 'core'),
256
- dbFile: path.join(dataDir, 'core/server.db'),
257
- mapping: MAPPINGS.server,
258
- models: getServerModels(),
259
- printInfo,
260
- printError,
261
- printSuccess,
262
- });
263
- printSuccess('Server data successfully migrated');
264
-
265
- // migrate service data
266
- await doDataMigration({
267
- srcDir: path.join(dataDir, 'services'),
268
- dbFile: path.join(dataDir, 'services/service.db'),
269
- models: getServiceModels(),
270
- mapping: MAPPINGS.service,
271
- printInfo,
272
- printError,
273
- printSuccess,
274
- });
275
- printSuccess('Service data successfully migrated');
276
-
277
- // migrate blocklet data
278
- for (let i = 0; i < blocklets.length; i++) {
279
- const blocklet = blocklets[i];
280
- const env = blocklet.environments.find((x) => x.key === 'BLOCKLET_DATA_DIR');
281
- if (env) {
282
- await doDataMigration({
283
- srcDir: path.join(env.value),
284
- dbFile: path.join(env.value, 'blocklet.db'),
285
- models: getBlockletModels(),
286
- mapping: MAPPINGS.blocklet,
287
- printInfo,
288
- printError,
289
- printSuccess,
290
- });
291
- printSuccess(`Blocklet data successfully migrated: ${blocklet.appPid}`);
292
- } else {
293
- printInfo(`Skip migrate data for blocklet: ${blocklet.appPid}`);
294
- }
295
- }
296
-
297
- // migrate certificate manager schema
298
- for (let i = 0; i < MODULES.length; i++) {
299
- await doDataMigration({
300
- srcDir: path.join(dataDir, `modules/${MODULES[i]}/db`),
301
- dbFile: path.join(dataDir, `modules/${MODULES[i]}/module.db`),
302
- models: getCertificateManagerModels(),
303
- mapping: MAPPINGS[MODULES[i]],
304
- printInfo,
305
- printError,
306
- printSuccess,
307
- });
308
- printSuccess(`${MODULES[i]} data successfully migrated`);
309
- }
310
- };
311
-
312
209
  const closeDatabaseConnections = ({
313
210
  dataDir,
314
211
  blocklets = [],
@@ -340,7 +237,6 @@ module.exports = {
340
237
  getMigrationScripts,
341
238
  runMigrationScripts,
342
239
  runSchemaMigrations,
343
- runDataMigrations,
344
240
  closeDatabaseConnections,
345
241
  doBackup,
346
242
  doRestore,
@@ -949,6 +949,7 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
949
949
  }
950
950
 
951
951
  if (updatedResult.length) {
952
+ // eslint-disable-next-line no-use-before-define
952
953
  const hash = await takeRoutingSnapshot({ message: 'ensure dashboard routing rules', dryRun: false }, context);
953
954
  logger.info('take routing snapshot on ensure dashboard routing rules', { updatedResult, hash });
954
955
  return true;
@@ -1168,6 +1169,7 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
1168
1169
 
1169
1170
  const clearBlockletRoutingCache = async (blocklet) => {
1170
1171
  const info = await nodeState.read();
1172
+ // eslint-disable-next-line no-use-before-define
1171
1173
  const provider = providers[info.routing.provider];
1172
1174
  if (provider) {
1173
1175
  await provider.clearCache(blocklet.appPid);
@@ -1214,6 +1216,7 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
1214
1216
  await removeBlockletRouting(blocklet);
1215
1217
  await ensureBlockletRouting(blocklet);
1216
1218
  if (refreshRouterProvider) {
1219
+ // eslint-disable-next-line no-use-before-define
1217
1220
  const hash = await takeRoutingSnapshot({ message: `Reset blocklet ${did}`, dryRun: false });
1218
1221
  logger.info('reset blocklet routing rules', { did, hash });
1219
1222
  }
@@ -1301,6 +1304,7 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
1301
1304
 
1302
1305
  const analyzeRouterLog = async () => {
1303
1306
  const info = await nodeState.read();
1307
+ // eslint-disable-next-line no-use-before-define
1304
1308
  const sites = await getRoutingSites({});
1305
1309
  const providerName = get(info, 'routing.provider', null);
1306
1310
  if (!providerName || !providers[providerName]) {
@@ -1404,6 +1408,7 @@ module.exports = function getRouterHelpers({ dataDirs, routingSnapshot, routerMa
1404
1408
 
1405
1409
  // We need to take snapshot after system rules ensured
1406
1410
  if (ensureBlockletResults.filter(Boolean).length) {
1411
+ // eslint-disable-next-line no-use-before-define
1407
1412
  await takeRoutingSnapshot({ message: `Switch routing engine to ${newProvider}`, dryRun: false }, context);
1408
1413
  logger.info(`take routing snapshot on switch engine: ${newProvider}`, { ensureBlockletResults });
1409
1414
  }
@@ -19,6 +19,18 @@ const { isGatewayCacheEnabled, isBlockletSite } = require('../util');
19
19
 
20
20
  const isServiceFeDevelopment = process.env.ABT_NODE_SERVICE_FE_PORT;
21
21
 
22
+ const mergeAllowedOrigins = (domain, allowedOrigins) => {
23
+ const origins = Array.isArray(allowedOrigins) ? allowedOrigins : [domain];
24
+ if (origins.includes(domain) === false) {
25
+ origins.push(domain);
26
+ }
27
+
28
+ // skip site if domain is BLOCKLET_SITE_GROUP
29
+ const res = origins.filter((x) => !x.endsWith(BLOCKLET_SITE_GROUP_SUFFIX));
30
+
31
+ return res;
32
+ };
33
+
22
34
  const expandSites = (sites = []) => {
23
35
  const result = [];
24
36
 
@@ -51,19 +63,8 @@ const expandSites = (sites = []) => {
51
63
  return result;
52
64
  };
53
65
 
54
- const mergeAllowedOrigins = (domain, allowedOrigins) => {
55
- const origins = Array.isArray(allowedOrigins) ? allowedOrigins : [domain];
56
- if (origins.includes(domain) === false) {
57
- origins.push(domain);
58
- }
59
-
60
- // skip site if domain is BLOCKLET_SITE_GROUP
61
- const res = origins.filter((x) => !x.endsWith(BLOCKLET_SITE_GROUP_SUFFIX));
62
-
63
- return res;
64
- };
65
-
66
66
  const getRoutingTable = ({ sites, nodeInfo }) => {
67
+ // eslint-disable-next-line no-use-before-define
67
68
  let routingTable = Router.formatSites(sites);
68
69
  routingTable = expandSites(routingTable);
69
70
 
@@ -284,14 +284,6 @@ class NodeState extends BaseState {
284
284
  }));
285
285
  }
286
286
 
287
- // deprecated
288
- async increaseCustomBlockletNumber() {
289
- const { customBlockletNumber = 0 } = await this.read();
290
- const num = customBlockletNumber + 1;
291
- await this.update({ $set: { customBlockletNumber: num } });
292
- return num;
293
- }
294
-
295
287
  async updateGateway(gateway) {
296
288
  const { routing } = await this.read();
297
289
  routing.requestLimit = gateway.requestLimit;
@@ -18,7 +18,7 @@ class RuntimeInsight extends BaseState {
18
18
  where.date[Op.lte] = endDate;
19
19
  }
20
20
 
21
- return super.paginate({ where }, { date: -1 }, paging);
21
+ return this.paginate({ where }, { date: -1 }, paging);
22
22
  }
23
23
  }
24
24
 
@@ -18,7 +18,7 @@ class TrafficInsight extends BaseState {
18
18
  where.date[Op.lte] = endDate;
19
19
  }
20
20
 
21
- return super.paginate({ where }, { date: -1 }, paging);
21
+ return this.paginate({ where }, { date: -1 }, paging);
22
22
  }
23
23
  }
24
24
 
@@ -158,6 +158,7 @@ const getComponentDirs = (component, { dataDirs, ensure = false, ancestors = []
158
158
  if (component.source === BlockletSource.local) {
159
159
  appDir = component.deployedFrom;
160
160
  } else {
161
+ // eslint-disable-next-line no-use-before-define
161
162
  appDir = getBundleDir(dataDirs.blocklets, component.meta);
162
163
  }
163
164
 
@@ -523,6 +524,7 @@ const startBlockletProcess = async (
523
524
  return;
524
525
  }
525
526
 
527
+ // eslint-disable-next-line no-use-before-define
526
528
  if (shouldSkipComponent(b.meta.did, componentDids)) {
527
529
  logger.info('skip start process not selected', { processId });
528
530
  return;
@@ -616,6 +618,7 @@ const startBlockletProcess = async (
616
618
 
617
619
  await pm2.startAsync(options);
618
620
 
621
+ // eslint-disable-next-line no-use-before-define
619
622
  const status = await getProcessState(processId);
620
623
  if (status === BlockletStatus.error) {
621
624
  throw new Error(`${processId} is not running within 3 seconds`);
@@ -636,6 +639,7 @@ const startBlockletProcess = async (
636
639
  * @param {*} blocklet should contain env props
637
640
  */
638
641
  const stopBlockletProcess = (blocklet, { preStop = noop, skippedProcessIds = [], componentDids } = {}) => {
642
+ // eslint-disable-next-line no-use-before-define
639
643
  return deleteBlockletProcess(blocklet, { preDelete: preStop, skippedProcessIds, componentDids });
640
644
  };
641
645
 
@@ -657,6 +661,7 @@ const deleteBlockletProcess = async (blocklet, { preDelete = noop, skippedProces
657
661
  return;
658
662
  }
659
663
 
664
+ // eslint-disable-next-line no-use-before-define
660
665
  if (shouldSkipComponent(b.meta?.did, componentDids)) {
661
666
  logger.info(`skip delete process not selected: ${b.meta.did}`, { processId: b.env.processId });
662
667
  return;
@@ -667,6 +672,7 @@ const deleteBlockletProcess = async (blocklet, { preDelete = noop, skippedProces
667
672
  }
668
673
 
669
674
  await preDelete(b, { ancestors });
675
+ // eslint-disable-next-line no-use-before-define
670
676
  await deleteProcess(b.env.processId);
671
677
  },
672
678
  { parallel: true }
@@ -685,11 +691,13 @@ const reloadBlockletProcess = (blocklet, { componentDids } = {}) =>
685
691
  return;
686
692
  }
687
693
 
694
+ // eslint-disable-next-line no-use-before-define
688
695
  if (shouldSkipComponent(b.meta.did, componentDids)) {
689
696
  logger.info('skip reload process', { processId: b.env.processId });
690
697
  return;
691
698
  }
692
699
 
700
+ // eslint-disable-next-line no-use-before-define
693
701
  await reloadProcess(b.env.processId);
694
702
  logger.info('done reload process', { processId: b.env.processId });
695
703
  },
@@ -701,6 +709,7 @@ const reloadBlockletProcess = (blocklet, { componentDids } = {}) =>
701
709
  * @returns {BlockletStatus}
702
710
  */
703
711
  const getProcessState = async (processId) => {
712
+ // eslint-disable-next-line no-use-before-define
704
713
  const info = await getProcessInfo(processId);
705
714
  if (!statusMap[info.pm2_env.status]) {
706
715
  logger.error('Cannot find the blocklet status for pm2 status mapping', {
@@ -773,6 +782,7 @@ const checkBlockletProcessHealthy = async (blocklet, { minConsecutiveTime, timeo
773
782
  return;
774
783
  }
775
784
 
785
+ // eslint-disable-next-line no-use-before-define
776
786
  if (shouldSkipComponent(b.meta.did, componentDids)) {
777
787
  logger.info('skip check component healthy', { processId: b.env.processId });
778
788
  return;
@@ -781,6 +791,7 @@ const checkBlockletProcessHealthy = async (blocklet, { minConsecutiveTime, timeo
781
791
  const logToTerminal = [blocklet.mode, b.mode].includes(BLOCKLET_MODES.DEVELOPMENT);
782
792
 
783
793
  const startedAt = Date.now();
794
+ // eslint-disable-next-line no-use-before-define
784
795
  await _checkProcessHealthy(b, { minConsecutiveTime, timeout, logToTerminal });
785
796
  logger.info('done check component healthy', { processId: b.env.processId, time: Date.now() - startedAt });
786
797
  },
@@ -1334,6 +1345,7 @@ const getConfigFromPreferences = (blocklet) => {
1334
1345
 
1335
1346
  const getBlockletURLForLauncher = ({ blocklet, nodeInfo }) => {
1336
1347
  const didDomain = getDidDomainForBlocklet({
1348
+ // eslint-disable-next-line no-use-before-define
1337
1349
  did: getSlpDid(nodeInfo.did, blocklet.appPid),
1338
1350
  didDomain: nodeInfo.slpDomain,
1339
1351
  });
@@ -1676,11 +1688,13 @@ const getBlockletDidDomainList = (blocklet, nodeInfo) => {
1676
1688
  domainAliases.push({ value: domain, isProtected: true });
1677
1689
  });
1678
1690
 
1691
+ // eslint-disable-next-line no-use-before-define
1679
1692
  const enableSlpDomain = shouldEnableSlpDomain({
1680
1693
  mode: nodeInfo.mode,
1681
1694
  launcher: nodeInfo.launcher,
1682
1695
  });
1683
1696
  if (enableSlpDomain) {
1697
+ // eslint-disable-next-line no-use-before-define
1684
1698
  const slpDid = getSlpDid(nodeInfo.did, blocklet.appPid);
1685
1699
  const domain = getDidDomainForBlocklet({ did: slpDid, didDomain: nodeInfo.slpDomain });
1686
1700
 
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.16.19-beta-e6aac665",
6
+ "version": "1.16.19-beta-7b2db880",
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.19-beta-e6aac665",
23
- "@abtnode/auth": "1.16.19-beta-e6aac665",
24
- "@abtnode/certificate-manager": "1.16.19-beta-e6aac665",
25
- "@abtnode/constant": "1.16.19-beta-e6aac665",
26
- "@abtnode/cron": "1.16.19-beta-e6aac665",
27
- "@abtnode/logger": "1.16.19-beta-e6aac665",
28
- "@abtnode/models": "1.16.19-beta-e6aac665",
29
- "@abtnode/queue": "1.16.19-beta-e6aac665",
30
- "@abtnode/rbac": "1.16.19-beta-e6aac665",
31
- "@abtnode/router-provider": "1.16.19-beta-e6aac665",
32
- "@abtnode/static-server": "1.16.19-beta-e6aac665",
33
- "@abtnode/timemachine": "1.16.19-beta-e6aac665",
34
- "@abtnode/util": "1.16.19-beta-e6aac665",
22
+ "@abtnode/analytics": "1.16.19-beta-7b2db880",
23
+ "@abtnode/auth": "1.16.19-beta-7b2db880",
24
+ "@abtnode/certificate-manager": "1.16.19-beta-7b2db880",
25
+ "@abtnode/constant": "1.16.19-beta-7b2db880",
26
+ "@abtnode/cron": "1.16.19-beta-7b2db880",
27
+ "@abtnode/logger": "1.16.19-beta-7b2db880",
28
+ "@abtnode/models": "1.16.19-beta-7b2db880",
29
+ "@abtnode/queue": "1.16.19-beta-7b2db880",
30
+ "@abtnode/rbac": "1.16.19-beta-7b2db880",
31
+ "@abtnode/router-provider": "1.16.19-beta-7b2db880",
32
+ "@abtnode/static-server": "1.16.19-beta-7b2db880",
33
+ "@abtnode/timemachine": "1.16.19-beta-7b2db880",
34
+ "@abtnode/util": "1.16.19-beta-7b2db880",
35
35
  "@arcblock/did": "1.18.95",
36
36
  "@arcblock/did-auth": "1.18.95",
37
37
  "@arcblock/did-ext": "^1.18.95",
@@ -42,11 +42,11 @@
42
42
  "@arcblock/pm2-events": "^0.0.5",
43
43
  "@arcblock/validator": "^1.18.95",
44
44
  "@arcblock/vc": "1.18.95",
45
- "@blocklet/constant": "1.16.19-beta-e6aac665",
46
- "@blocklet/env": "1.16.19-beta-e6aac665",
47
- "@blocklet/meta": "1.16.19-beta-e6aac665",
48
- "@blocklet/resolver": "1.16.19-beta-e6aac665",
49
- "@blocklet/sdk": "1.16.19-beta-e6aac665",
45
+ "@blocklet/constant": "1.16.19-beta-7b2db880",
46
+ "@blocklet/env": "1.16.19-beta-7b2db880",
47
+ "@blocklet/meta": "1.16.19-beta-7b2db880",
48
+ "@blocklet/resolver": "1.16.19-beta-7b2db880",
49
+ "@blocklet/sdk": "1.16.19-beta-7b2db880",
50
50
  "@did-space/client": "^0.3.28",
51
51
  "@fidm/x509": "^1.2.1",
52
52
  "@ocap/mcrypto": "1.18.95",
@@ -80,7 +80,7 @@
80
80
  "p-retry": "4.6.1",
81
81
  "read-last-lines": "^1.8.0",
82
82
  "semver": "^7.3.8",
83
- "sequelize": "^6.31.0",
83
+ "sequelize": "^6.35.0",
84
84
  "shelljs": "^0.8.5",
85
85
  "ssri": "^8.0.1",
86
86
  "stream-throttle": "^0.1.3",
@@ -101,5 +101,5 @@
101
101
  "jest": "^27.5.1",
102
102
  "unzipper": "^0.10.11"
103
103
  },
104
- "gitHead": "09b0172831521ef73f7879940b977c2696b5b247"
104
+ "gitHead": "598b576b97dd7accbfa1bb509b75e423ad27e5e2"
105
105
  }