@abtnode/core 1.17.10 → 1.17.11-beta-20260212-130352-7b2c5602

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.
@@ -184,6 +184,11 @@ async function config(manager, { did, configs: newConfigs, skipHook, skipDidDocu
184
184
  manager.emit(BlockletEvents.spaceConnected, blocklet);
185
185
  }
186
186
 
187
+ // Reload nginx when APP_NO_INDEX changes to update X-Robots-Tag header
188
+ if (finalConfigs.find((x) => x.key === 'APP_NO_INDEX')) {
189
+ manager.emit(BlockletEvents.gatewayConfigChanged, blocklet);
190
+ }
191
+
187
192
  // update blocklet meta
188
193
  if (blocklet.structVersion && !childDid) {
189
194
  const changedTitle = finalConfigs.find((x) => x.key === BLOCKLET_CONFIGURABLE_KEY.BLOCKLET_APP_NAME)?.value;
@@ -39100,7 +39100,7 @@ exports.isSystemRole = isSystemRole;
39100
39100
  /***/ ((module) => {
39101
39101
 
39102
39102
  "use strict";
39103
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@abtnode/core","publishConfig":{"access":"public"},"version":"1.17.9","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.17.9","@abtnode/auth":"1.17.9","@abtnode/certificate-manager":"1.17.9","@abtnode/constant":"1.17.9","@abtnode/cron":"1.17.9","@abtnode/db-cache":"1.17.9","@abtnode/docker-utils":"1.17.9","@abtnode/logger":"1.17.9","@abtnode/models":"1.17.9","@abtnode/queue":"1.17.9","@abtnode/rbac":"1.17.9","@abtnode/router-provider":"1.17.9","@abtnode/util":"1.17.9","@arcblock/did":"1.29.8","@arcblock/did-connect-js":"1.29.8","@arcblock/did-ext":"1.29.8","@arcblock/did-motif":"^1.1.14","@arcblock/did-util":"1.29.8","@arcblock/event-hub":"1.29.8","@arcblock/jwt":"1.29.8","@arcblock/pm2-events":"^0.0.5","@arcblock/validator":"1.29.8","@arcblock/vc":"1.29.8","@blocklet/constant":"1.17.9","@blocklet/did-space-js":"^1.2.16","@blocklet/env":"1.17.9","@blocklet/error":"^0.3.5","@blocklet/meta":"1.17.9","@blocklet/resolver":"1.17.9","@blocklet/sdk":"1.17.9","@blocklet/server-js":"1.17.9","@blocklet/store":"1.17.9","@blocklet/theme":"^3.5.2","@fidm/x509":"^1.2.1","@ocap/mcrypto":"1.29.8","@ocap/util":"1.29.8","@ocap/wallet":"1.29.8","@slack/webhook":"^7.0.6","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"}');
39103
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@abtnode/core","publishConfig":{"access":"public"},"version":"1.17.10","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.17.10","@abtnode/auth":"1.17.10","@abtnode/certificate-manager":"1.17.10","@abtnode/constant":"1.17.10","@abtnode/cron":"1.17.10","@abtnode/db-cache":"1.17.10","@abtnode/docker-utils":"1.17.10","@abtnode/logger":"1.17.10","@abtnode/models":"1.17.10","@abtnode/queue":"1.17.10","@abtnode/rbac":"1.17.10","@abtnode/router-provider":"1.17.10","@abtnode/util":"1.17.10","@arcblock/did":"1.29.8","@arcblock/did-connect-js":"1.29.8","@arcblock/did-ext":"1.29.8","@arcblock/did-motif":"^1.1.14","@arcblock/did-util":"1.29.8","@arcblock/event-hub":"1.29.8","@arcblock/jwt":"1.29.8","@arcblock/pm2-events":"^0.0.5","@arcblock/validator":"1.29.8","@arcblock/vc":"1.29.8","@blocklet/constant":"1.17.10","@blocklet/did-space-js":"^1.2.16","@blocklet/env":"1.17.10","@blocklet/error":"^0.3.5","@blocklet/meta":"1.17.10","@blocklet/resolver":"1.17.10","@blocklet/sdk":"1.17.10","@blocklet/server-js":"1.17.10","@blocklet/store":"1.17.10","@blocklet/theme":"^3.5.2","@fidm/x509":"^1.2.1","@ocap/mcrypto":"1.29.8","@ocap/util":"1.29.8","@ocap/wallet":"1.29.8","@slack/webhook":"^7.0.6","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"}');
39104
39104
 
39105
39105
  /***/ }),
39106
39106
 
@@ -467,6 +467,11 @@ module.exports = ({
467
467
  did: blocklet.meta.did,
468
468
  message: 'Connect blocklet to DID Spaces',
469
469
  });
470
+ } else if (BlockletEvents.gatewayConfigChanged === eventName) {
471
+ await handleBlockletRouting({
472
+ did: blocklet.meta.did,
473
+ message: 'Update blocklet gateway config',
474
+ });
470
475
  } else if (BlockletEvents.backupProgress === eventName && payload?.completed) {
471
476
  try {
472
477
  const backupEndpoint = getBackupEndpoint(blocklet?.environments);
@@ -700,6 +705,7 @@ module.exports = ({
700
705
  BlockletEvents.downloadBundleProgress,
701
706
 
702
707
  BlockletEvents.spaceConnected,
708
+ BlockletEvents.gatewayConfigChanged,
703
709
  BlockletEvents.nftConsumed,
704
710
 
705
711
  BlockletEvents.configTheme,
@@ -1897,12 +1897,13 @@ module.exports = function getRouterHelpers({
1897
1897
  getAllRoutingParams: async () => {
1898
1898
  try {
1899
1899
  // Parallelize all independent async operations
1900
- const [info, { sites }, services, certificates, wafDisabledList] = await Promise.all([
1900
+ const [info, { sites }, services, certificates, wafDisabledList, noIndexOverrides] = await Promise.all([
1901
1901
  nodeState._read(),
1902
1902
  readAllRoutingSites(),
1903
1903
  blockletState.getServices(),
1904
1904
  httpsEnabled ? certManager.getAllNormal() : Promise.resolve([]),
1905
1905
  states.blockletExtras.getWafDisabledBlocklets(),
1906
+ states.blockletExtras.getNoIndexOverrides(),
1906
1907
  ]);
1907
1908
 
1908
1909
  // Fetch site info for WAF disabled blocklets in parallel
@@ -1921,6 +1922,7 @@ module.exports = function getRouterHelpers({
1921
1922
  services,
1922
1923
  nodeInfo: info,
1923
1924
  wafDisabledBlocklets,
1925
+ noIndexOverrides,
1924
1926
  };
1925
1927
  } catch (err) {
1926
1928
  logger.error('Read routing rules failed', { error: err });
@@ -1939,10 +1941,11 @@ module.exports = function getRouterHelpers({
1939
1941
  getBlockletRoutingParams: async (blockletDid) => {
1940
1942
  try {
1941
1943
  // Parallelize all independent async operations
1942
- const [info, sites, certificates] = await Promise.all([
1944
+ const [info, sites, certificates, noIndexOverrides] = await Promise.all([
1943
1945
  nodeState._read(),
1944
1946
  readBlockletRoutingSite(blockletDid),
1945
1947
  httpsEnabled ? certManager.getAllNormal() : Promise.resolve([]),
1948
+ states.blockletExtras.getNoIndexOverrides(),
1946
1949
  ]);
1947
1950
 
1948
1951
  if (!sites || sites.length === 0) {
@@ -1958,6 +1961,7 @@ module.exports = function getRouterHelpers({
1958
1961
  headers: get(info, 'routing.headers', {}),
1959
1962
  nodeInfo: info,
1960
1963
  wafDisabledBlocklets: [],
1964
+ noIndexOverrides,
1961
1965
  };
1962
1966
  } catch (err) {
1963
1967
  logger.error('router: getBlockletRoutingParams failed', { blockletDid, error: err });
@@ -1997,6 +2001,7 @@ module.exports = function getRouterHelpers({
1997
2001
  headers: get(info, 'routing.headers', {}),
1998
2002
  nodeInfo: info,
1999
2003
  wafDisabledBlocklets,
2004
+ noIndexOverrides: {},
2000
2005
  };
2001
2006
  } catch (err) {
2002
2007
  logger.error('router: getSystemRoutingParams failed', { error: err });
@@ -262,6 +262,7 @@ class Router {
262
262
  services = [],
263
263
  nodeInfo = {},
264
264
  wafDisabledBlocklets = [],
265
+ noIndexOverrides = {},
265
266
  } = (await this[fn]()) || {};
266
267
 
267
268
  if (!Array.isArray(sites)) {
@@ -332,6 +333,7 @@ class Router {
332
333
  wafPolicy,
333
334
  cacheEnabled: isGatewayCacheEnabled(nodeInfo),
334
335
  wafDisabledBlocklets,
336
+ noIndexOverrides,
335
337
  enableDefaultServer: nodeInfo.routing.enableDefaultServer ?? false,
336
338
  enableIpServer: nodeInfo.routing.enableIpServer ?? false,
337
339
  };
@@ -434,13 +436,21 @@ class Router {
434
436
  // eslint-disable-next-line no-await-in-loop
435
437
  const rawParams = await this.getBlockletRoutingParams(did);
436
438
  if (rawParams && rawParams.sites && rawParams.sites.length > 0) {
437
- const { sites, certificates, headers = {}, nodeInfo = {}, wafDisabledBlocklets = [] } = rawParams;
439
+ const {
440
+ sites,
441
+ certificates,
442
+ headers = {},
443
+ nodeInfo = {},
444
+ wafDisabledBlocklets = [],
445
+ noIndexOverrides = {},
446
+ } = rawParams;
438
447
  const blockletParams = {
439
448
  routingTable: getRoutingTable({ sites, nodeInfo }),
440
449
  certificates,
441
450
  commonHeaders: headers,
442
451
  nodeInfo: pick(nodeInfo, ['did', 'name', 'version', 'port', 'mode', 'enableWelcomePage', 'routing']),
443
452
  wafDisabledBlocklets,
453
+ noIndexOverrides,
444
454
  };
445
455
 
446
456
  if (typeof this.provider.updateSingleBlocklet === 'function') {
@@ -351,6 +351,18 @@ class BlockletExtrasState extends BaseState {
351
351
  getWafDisabledBlocklets() {
352
352
  return super.find({ where: { 'settings.gateway.wafPolicy.enabled': false } }, { did: 1 });
353
353
  }
354
+
355
+ async getNoIndexOverrides() {
356
+ const docs = await super.find({}, { did: 1, configs: 1 });
357
+ const overrides = {};
358
+ for (const doc of docs) {
359
+ const config = (doc.configs || []).find((c) => c.key === 'APP_NO_INDEX');
360
+ if (config && config.value !== undefined && config.value !== '') {
361
+ overrides[doc.did] = !['false', '0'].includes(String(config.value).toLowerCase());
362
+ }
363
+ }
364
+ return overrides;
365
+ }
354
366
  }
355
367
 
356
368
  module.exports = BlockletExtrasState;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.17.10",
6
+ "version": "1.17.11-beta-20260212-130352-7b2c5602",
7
7
  "description": "",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -17,19 +17,19 @@
17
17
  "author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
18
18
  "license": "Apache-2.0",
19
19
  "dependencies": {
20
- "@abtnode/analytics": "1.17.10",
21
- "@abtnode/auth": "1.17.10",
22
- "@abtnode/certificate-manager": "1.17.10",
23
- "@abtnode/constant": "1.17.10",
24
- "@abtnode/cron": "1.17.10",
25
- "@abtnode/db-cache": "1.17.10",
26
- "@abtnode/docker-utils": "1.17.10",
27
- "@abtnode/logger": "1.17.10",
28
- "@abtnode/models": "1.17.10",
29
- "@abtnode/queue": "1.17.10",
30
- "@abtnode/rbac": "1.17.10",
31
- "@abtnode/router-provider": "1.17.10",
32
- "@abtnode/util": "1.17.10",
20
+ "@abtnode/analytics": "1.17.11-beta-20260212-130352-7b2c5602",
21
+ "@abtnode/auth": "1.17.11-beta-20260212-130352-7b2c5602",
22
+ "@abtnode/certificate-manager": "1.17.11-beta-20260212-130352-7b2c5602",
23
+ "@abtnode/constant": "1.17.11-beta-20260212-130352-7b2c5602",
24
+ "@abtnode/cron": "1.17.11-beta-20260212-130352-7b2c5602",
25
+ "@abtnode/db-cache": "1.17.11-beta-20260212-130352-7b2c5602",
26
+ "@abtnode/docker-utils": "1.17.11-beta-20260212-130352-7b2c5602",
27
+ "@abtnode/logger": "1.17.11-beta-20260212-130352-7b2c5602",
28
+ "@abtnode/models": "1.17.11-beta-20260212-130352-7b2c5602",
29
+ "@abtnode/queue": "1.17.11-beta-20260212-130352-7b2c5602",
30
+ "@abtnode/rbac": "1.17.11-beta-20260212-130352-7b2c5602",
31
+ "@abtnode/router-provider": "1.17.11-beta-20260212-130352-7b2c5602",
32
+ "@abtnode/util": "1.17.11-beta-20260212-130352-7b2c5602",
33
33
  "@arcblock/did": "1.29.8",
34
34
  "@arcblock/did-connect-js": "1.29.8",
35
35
  "@arcblock/did-ext": "1.29.8",
@@ -40,15 +40,15 @@
40
40
  "@arcblock/pm2-events": "^0.0.5",
41
41
  "@arcblock/validator": "1.29.8",
42
42
  "@arcblock/vc": "1.29.8",
43
- "@blocklet/constant": "1.17.10",
43
+ "@blocklet/constant": "1.17.11-beta-20260212-130352-7b2c5602",
44
44
  "@blocklet/did-space-js": "^1.2.16",
45
- "@blocklet/env": "1.17.10",
45
+ "@blocklet/env": "1.17.11-beta-20260212-130352-7b2c5602",
46
46
  "@blocklet/error": "^0.3.5",
47
- "@blocklet/meta": "1.17.10",
48
- "@blocklet/resolver": "1.17.10",
49
- "@blocklet/sdk": "1.17.10",
50
- "@blocklet/server-js": "1.17.10",
51
- "@blocklet/store": "1.17.10",
47
+ "@blocklet/meta": "1.17.11-beta-20260212-130352-7b2c5602",
48
+ "@blocklet/resolver": "1.17.11-beta-20260212-130352-7b2c5602",
49
+ "@blocklet/sdk": "1.17.11-beta-20260212-130352-7b2c5602",
50
+ "@blocklet/server-js": "1.17.11-beta-20260212-130352-7b2c5602",
51
+ "@blocklet/store": "1.17.11-beta-20260212-130352-7b2c5602",
52
52
  "@blocklet/theme": "^3.5.2",
53
53
  "@fidm/x509": "^1.2.1",
54
54
  "@ocap/mcrypto": "1.29.8",
@@ -113,5 +113,5 @@
113
113
  "express": "^4.18.2",
114
114
  "unzipper": "^0.10.11"
115
115
  },
116
- "gitHead": "8a940042dc8376648117826d777254d99628a61b"
116
+ "gitHead": "bf88cb6a5e7b4f7a77c4001238a1ad5a32ed8585"
117
117
  }