abler-api 0.1.24 → 0.1.27

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.
@@ -1,23 +1,25 @@
1
1
  'use strict';
2
2
 
3
- var require$$0$1 = require('crypto');
3
+ var require$$0 = require('crypto');
4
4
  var require$$1 = require('abler-util');
5
5
  var require$$2 = require('abler-db');
6
6
  var require$$3 = require('abler-net');
7
- var require$$0$2 = require('fs');
7
+ var require$$0$1 = require('fs');
8
8
  var require$$1$1 = require('path');
9
+ var require$$1$2 = require('abler-messenger');
9
10
 
10
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
12
 
12
- var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
13
+ var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0);
13
14
  var require$$1__default = /*#__PURE__*/_interopDefaultLegacy(require$$1);
14
15
  var require$$2__default = /*#__PURE__*/_interopDefaultLegacy(require$$2);
15
16
  var require$$3__default = /*#__PURE__*/_interopDefaultLegacy(require$$3);
16
- var require$$0__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$0$2);
17
+ var require$$0__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
17
18
  var require$$1__default$1 = /*#__PURE__*/_interopDefaultLegacy(require$$1$1);
19
+ var require$$1__default$2 = /*#__PURE__*/_interopDefaultLegacy(require$$1$2);
18
20
 
19
- const crypto = require$$0__default$1["default"];
20
- const ppUtil$4 = require$$1__default["default"].ppUtil;
21
+ const crypto = require$$0__default["default"];
22
+ const ppUtil$3 = require$$1__default["default"].ppUtil;
21
23
  const {
22
24
  dbUtil,
23
25
  kvStorage
@@ -31,17 +33,17 @@ const pnToken = "access_token",
31
33
  // 我们接收到的 headers 中的字段名总是全小写的
32
34
  pnApiSecret = "apiSecret",
33
35
  hnApiSecret = pnApiSecret.toLowerCase();
34
- const MD5 = ppUtil$4.MD5,
35
- moveProperty = ppUtil$4.moveProperty;
36
+ const MD5 = ppUtil$3.MD5,
37
+ moveProperty = ppUtil$3.moveProperty;
36
38
 
37
39
  class apiUtil$1 {
38
- static debugFlag = ppUtil$4.newGuid(); //应用必须设置,否则谁也不知道是啥
40
+ static debugFlag = ppUtil$3.newGuid(); //应用必须设置,否则谁也不知道是啥
39
41
 
40
- static testFlag = ppUtil$4.newGuid();
42
+ static testFlag = ppUtil$3.newGuid();
41
43
  static envId_dev = "?"; // static apiCallRecSaver;
42
44
 
43
45
  static config(appConfig, appErrCfg, appDbSql) {
44
- ppUtil$4.config(appConfig, appErrCfg);
46
+ ppUtil$3.config(appConfig, appErrCfg);
45
47
  conf$2 = appConfig;
46
48
  appSetting$1 = conf$2?.appSetting;
47
49
  err$1 = appErrCfg, dbSql = appDbSql;
@@ -57,7 +59,7 @@ class apiUtil$1 {
57
59
 
58
60
 
59
61
  static _getApiSecret(companyId) {
60
- return ppUtil$4.newGuid();
62
+ return ppUtil$3.newGuid();
61
63
  }
62
64
  /**
63
65
  * 保存 API 调用记录,应用系统必须重写此方法
@@ -160,7 +162,7 @@ class apiUtil$1 {
160
162
 
161
163
 
162
164
  static setParamsFunctions(params) {
163
- ppUtil$4.defUnenumProp(params, "asNumber", function (name, minValue, maxValue, defaultValue) {
165
+ ppUtil$3.defUnenumProp(params, "asNumber", function (name, minValue, maxValue, defaultValue) {
164
166
  // if (!this.hasOwnProperty(name)) // {} 定义的对象没有 hasOwnProperty 函数
165
167
  if (this[name] === undefined) return defaultValue;
166
168
  let result = +this[name];
@@ -171,7 +173,7 @@ class apiUtil$1 {
171
173
 
172
174
  return result;
173
175
  });
174
- ppUtil$4.defUnenumProp(params, "asBool", function (name, defaultValue) {
176
+ ppUtil$3.defUnenumProp(params, "asBool", function (name, defaultValue) {
175
177
  if (this[name] === undefined) return defaultValue;
176
178
  let result = JSON.parse(this[name]);
177
179
  return !!result;
@@ -236,7 +238,7 @@ class apiUtil$1 {
236
238
 
237
239
  static apiFail(error, req) {
238
240
  configNeeded();
239
- let response = err$1.ERROR(error, err$1.errorLangParamFlag + ppUtil$4.getMsgLang(req));
241
+ let response = err$1.ERROR(error, err$1.errorLangParamFlag + ppUtil$3.getMsgLang(req));
240
242
  response.datetime = new Date();
241
243
 
242
244
  if (req && req.headers) {
@@ -484,7 +486,7 @@ class apiUtil$1 {
484
486
  const params = apiUtil$1.extractParams(req);
485
487
  req.accessToken = req.accessToken || apiUtil$1.extractToken(req);
486
488
 
487
- if (req.accessToken === MD5(ppUtil$4.idNumDisturbing)) {
489
+ if (req.accessToken === MD5(ppUtil$3.idNumDisturbing)) {
488
490
  //todo: 检查IP
489
491
  params.__internal__ = true;
490
492
  req.ignoreToken = true; // if (params.idNum || params.personId) {
@@ -541,7 +543,7 @@ class apiUtil$1 {
541
543
 
542
544
  if (dbgToken) {
543
545
  let envId = process.env.ECS_DEPLOY_ID;
544
- req.__debug__ = dbgToken && dbgToken === MD5(req.headers.timestamp, ppUtil$4.commonHashDisturbing) && (envId === "florist_longdan" || envId === "shuzi");
546
+ req.__debug__ = dbgToken && dbgToken === MD5(req.headers.timestamp, ppUtil$3.commonHashDisturbing) && (envId === "florist_longdan" || envId === "shuzi");
545
547
  } else {
546
548
  req.__debug__ = false;
547
549
  } // console.log("__debug__:", req.__debug__, "dbgToken:", dbgToken);
@@ -721,7 +723,7 @@ class apiUtil$1 {
721
723
  };
722
724
 
723
725
  if (rec.secret !== "") {
724
- rec.secret = ppUtil$4.getEncAse192(rec.secret);
726
+ rec.secret = ppUtil$3.getEncAse192(rec.secret);
725
727
  }
726
728
 
727
729
  req.apiCallRec = rec;
@@ -1021,7 +1023,7 @@ class apiUtil$1 {
1021
1023
  paramExists = typeof params[paramName] != 'undefined' || typeof params[paramName + paramSufix] != 'undefined';
1022
1024
  }
1023
1025
 
1024
- if (!paramExists) return ppUtil$4.errorPormise(err$1.ERROR(err$1.PARAMETER_NEEDED, paramName));
1026
+ if (!paramExists) return ppUtil$3.errorPormise(err$1.ERROR(err$1.PARAMETER_NEEDED, paramName));
1025
1027
  }
1026
1028
 
1027
1029
  return Promise.resolve(paramSufix);
@@ -1070,7 +1072,7 @@ class apiUtil$1 {
1070
1072
 
1071
1073
  static async hostIsMySelf(host, req) {
1072
1074
  let clientIp = apiUtil$1.getClientIp(req);
1073
- return ppUtil$4.getMyIp({
1075
+ return ppUtil$3.getMyIp({
1074
1076
  hosts: [host, clientIp]
1075
1077
  });
1076
1078
  }
@@ -1085,7 +1087,7 @@ class apiUtil$1 {
1085
1087
  configNeeded();
1086
1088
  const params = options.replacements;
1087
1089
  const myEnvHosts = apiUtil$1.getEnvHosts(params);
1088
- const myIp = ppUtil$4.getMyIp();
1090
+ const myIp = ppUtil$3.getMyIp();
1089
1091
  const host = params.host || myIp;
1090
1092
  if (!myEnvHosts.hosts.contains(host)) throw [err$1.ACCESS_REFUSED, `环境${conf$2.envId}貌似无此主机:${params.host}`];
1091
1093
 
@@ -1387,7 +1389,7 @@ class apiUtil$1 {
1387
1389
  if (await apiUtil$1.checkForwardsHost(options)) return true;
1388
1390
  let c = apiUtil$1.parseCfgPath(item);
1389
1391
  delete c.parent;
1390
- c.host = ppUtil$4.getMyIp();
1392
+ c.host = ppUtil$3.getMyIp();
1391
1393
  return c;
1392
1394
  }
1393
1395
  /**
@@ -1415,7 +1417,7 @@ class apiUtil$1 {
1415
1417
  c.newValue = params.value;
1416
1418
  c.parent[c.key] = c.newValue;
1417
1419
  delete c.parent;
1418
- c.host = ppUtil$4.getMyIp();
1420
+ c.host = ppUtil$3.getMyIp();
1419
1421
  return c; // 应用层自行处理多机同步
1420
1422
  } //#endregion
1421
1423
 
@@ -1424,18 +1426,18 @@ class apiUtil$1 {
1424
1426
 
1425
1427
  function configNeeded() {
1426
1428
  if (!conf$2 || !err$1) {
1427
- ppUtil$4.configNeeded();
1428
- conf$2 = ppUtil$4.appConfig;
1429
+ ppUtil$3.configNeeded();
1430
+ conf$2 = ppUtil$3.appConfig;
1429
1431
  appSetting$1 = conf$2.appSetting;
1430
- err$1 = ppUtil$4.appErrCfg;
1432
+ err$1 = ppUtil$3.appErrCfg;
1431
1433
  }
1432
1434
  }
1433
1435
 
1434
1436
  var ppUtilApi = apiUtil$1;
1435
1437
 
1436
- const fs = require$$0__default$2["default"];
1438
+ const fs = require$$0__default$1["default"];
1437
1439
  const path = require$$1__default$1["default"];
1438
- const ppUtil$3 = require$$1__default["default"].ppUtil;
1440
+ const ppUtil$2 = require$$1__default["default"].ppUtil;
1439
1441
  const redisUtil = require$$2__default["default"].redisUtil;
1440
1442
  let conf$1, err; // const dbCheck = require('../dbupdate/dd-version');
1441
1443
 
@@ -1456,9 +1458,9 @@ class preconditions$1 {
1456
1458
  static checkPromises = [];
1457
1459
 
1458
1460
  static setAppName(aName) {
1459
- ppUtil$3.configNeeded();
1460
- conf$1 = ppUtil$3.appConfig;
1461
- err = ppUtil$3.appErrCfg;
1461
+ ppUtil$2.configNeeded();
1462
+ conf$1 = ppUtil$2.appConfig;
1463
+ err = ppUtil$2.appErrCfg;
1462
1464
  preconditions$1.appName = aName || conf$1.thisApp;
1463
1465
  return preconditions$1;
1464
1466
  }
@@ -1538,7 +1540,7 @@ class preconditions$1 {
1538
1540
 
1539
1541
  async function createEnvSettingFile(fileName) {
1540
1542
  try {
1541
- const cfgText = await ppUtil$3.doCreateEnvSettingFile(fileName);
1543
+ const cfgText = await ppUtil$2.doCreateEnvSettingFile(fileName);
1542
1544
 
1543
1545
  if (cfgText.indexOf(`cfgVersion: "${conf$1._envSetting.cfgVersion}"`) > 0) {
1544
1546
  console.log(`\n*** 已創建新的本機環境配置文件\n${fileName}\n请檢查各項內容是否正确(此项更新服务可正常运行)\n\n`);
@@ -1583,7 +1585,7 @@ async function checkRedis() {
1583
1585
  if (!conf$1.redis.enabled) return "";
1584
1586
  const redis = redisUtil.newClient("io"); // console.log(`checkRedis begin:`);
1585
1587
 
1586
- await ppUtil$3.wait(15 * 1000, param => {
1588
+ await ppUtil$2.wait(15 * 1000, param => {
1587
1589
  if (redis.ready && redis.connected || redis.error) {
1588
1590
  return true;
1589
1591
  }
@@ -1601,142 +1603,22 @@ async function checkRedis() {
1601
1603
 
1602
1604
  var ppPrecond = preconditions$1;
1603
1605
 
1604
- var require$$0 = require$$2__default["default"];
1605
-
1606
- function _interopDefaultLegacy$1(e) {
1607
- return e && typeof e === 'object' && 'default' in e ? e : {
1608
- 'default': e
1609
- };
1610
- }
1611
-
1612
- var require$$0__default = /*#__PURE__*/_interopDefaultLegacy$1(require$$0); // const logger = require("log4js").getLogger();
1613
-
1614
-
1615
- const redis = require$$0__default["default"].redisUtil;
1616
-
1617
- class Messenger {
1618
- constructor(appConfig, appErrCfg) {
1619
- if (appConfig) {
1620
- redis.config(appConfig, appErrCfg);
1621
- }
1622
-
1623
- this.channel = "ecs_messenger"; //default channel
1624
-
1625
- this.publisher = redis.newClient("publisher");
1626
- this.subscriber = redis.newClient("subscriber");
1627
- this.subscriber.on("subscribe", function (channel, count) {
1628
- console.log("chanel subscribed :", channel, count);
1629
- });
1630
- this.subscriber.on("message", this.handleMessage);
1631
- }
1632
-
1633
- setMessageHandle(handle, channel) {
1634
- channel = channel || this.channel;
1635
- Messenger.onmessage = Messenger.onmessage || {};
1636
- Messenger.onmessage[channel] = Messenger.onmessage[channel] || [];
1637
- const appMsgHandles = Messenger.onmessage[channel];
1638
-
1639
- for (let i = 0; i < appMsgHandles.length; i++) {
1640
- if (appMsgHandles[i] === handle) return this;
1641
- }
1642
-
1643
- appMsgHandles.push(handle);
1644
- return this;
1645
- }
1646
-
1647
- subscribe(channel) {
1648
- channel = channel || this.channel;
1649
- this.subscriber.subscribe(channel);
1650
- return this;
1651
- }
1652
-
1653
- async handleMessage(channel, message) {
1654
- console.log(`通道[${channel}]收到订阅消息:`, message);
1655
- let appMsgHandles = Messenger.onmessage[channel] || [];
1656
-
1657
- for (let i = 0; i < appMsgHandles.length; i++) {
1658
- const appMsgHandle = appMsgHandles[i];
1659
-
1660
- try {
1661
- let msgObj = JSON.parse(message); // await appMsgHandle(msgObj);
1662
-
1663
- appMsgHandle(msgObj);
1664
- } catch (e) {
1665
- console.log(e);
1666
- }
1667
- }
1668
- }
1669
-
1670
- async publish(message, channel) {
1671
- channel = channel || this.channel;
1672
- let msgStr = typeof message === "object" ? JSON.stringify(message) : message.toString();
1673
- console.log(`通道[${channel}]发布消息:`, message);
1674
- await this.publisher.publish(channel, msgStr);
1675
- return this;
1676
- }
1677
-
1678
- }
1679
-
1680
- var ppMessenger$1 = Messenger;
1681
- const ppMessenger = ppMessenger$1;
1682
- var ppUtil$2 = ppMessenger;
1683
- var ppUtil_1 = ppUtil$2;
1684
-
1685
1606
  // 若 redis 可用,则使用基于 redis 的消息订阅发布系统
1686
1607
  // 若 redis 不可用,则将消息转发到其它主机
1687
1608
 
1688
- const RedisMessenger = ppUtil_1;
1609
+ const {
1610
+ ppUtil: ppUtil$1
1611
+ } = require$$1__default["default"];
1612
+ const RedisMessenger = require$$1__default$2["default"];
1689
1613
  const {
1690
1614
  netUtil
1691
1615
  } = require$$3__default["default"];
1692
1616
  let conf;
1693
1617
 
1694
- class noneRedisMessenger {
1695
- static onMessage = [];
1696
-
1697
- static async publishMessage(message) {
1698
- //没有消息处理器,则将消息转发到目标地址(不支持pm2多进程)
1699
- if (message.destAddr) {
1700
- await forwardMessage(message);
1701
- } else {
1702
- for (let i = 0; i < conf.appSetting.serverHosts.length; i++) {
1703
- message.destAddr = conf.appSetting.serverHosts[i];
1704
-
1705
- if (message.destAddr !== conf.myMsgAddr) {
1706
- await forwardMessage(message);
1707
- }
1708
- }
1709
- }
1710
- }
1711
-
1712
- static setMessageHandle(messageHandle) {
1713
- if (noneRedisMessenger.onMessage.indexOf(messageHandle) < 0) {
1714
- noneRedisMessenger.onMessage.push(messageHandle);
1715
- }
1716
-
1717
- return noneRedisMessenger;
1718
- }
1719
-
1720
- static async handleInternalMessage(options) {
1721
- const message = options.replacements;
1722
-
1723
- for (let i = 0; i < noneRedisMessenger.onMessage.length; i++) {
1724
- const appMsgHandle = noneRedisMessenger.onMessage[i];
1725
-
1726
- try {
1727
- // await appMsgHandle(message);
1728
- appMsgHandle(message);
1729
- } catch (e) {
1730
- console.log(e);
1731
- }
1732
- }
1733
- }
1734
-
1735
- }
1736
-
1737
1618
  class commonMessenger$1 {
1738
1619
  static myMsgAddr = "";
1739
1620
  static redisMessenger = null;
1621
+ static onMessage = [];
1740
1622
 
1741
1623
  static initMessenger(appConfig, appErrCfg, msgChannel) {
1742
1624
  conf = appConfig;
@@ -1747,7 +1629,7 @@ class commonMessenger$1 {
1747
1629
  static getMyMsgAddr() {
1748
1630
  if (!conf.myMsgAddr) {
1749
1631
  conf.pm_id = process.env.pm_id || "0";
1750
- let myIp = ppUtil.getMyIp();
1632
+ let myIp = ppUtil$1.getMyIp();
1751
1633
 
1752
1634
  if (this.redisMessenger) {
1753
1635
  myIp = `${conf.pm_id}@${myIp}`;
@@ -1765,19 +1647,44 @@ class commonMessenger$1 {
1765
1647
  return this.redisMessenger.setMessageHandle(messageHandle, msgChannel);
1766
1648
  }
1767
1649
 
1768
- return noneRedisMessenger.setMessageHandle(messageHandle);
1650
+ if (commonMessenger$1.onMessage.indexOf(messageHandle) < 0) {
1651
+ commonMessenger$1.onMessage.push(messageHandle);
1652
+ }
1653
+
1654
+ return commonMessenger$1;
1769
1655
  }
1770
1656
 
1771
1657
  static async publishMessage(message) {
1772
1658
  if (this.redisMessenger) {
1773
1659
  return this.redisMessenger.publish(message, msgChannel);
1774
1660
  } else {
1775
- return noneRedisMessenger.publishMessage(message);
1661
+ //没有消息处理器,则将消息转发到目标地址(不支持pm2多进程)
1662
+ if (message.destAddr) {
1663
+ await forwardMessage(message);
1664
+ } else {
1665
+ for (let i = 0; i < conf.appSetting.serverHosts.length; i++) {
1666
+ message.destAddr = conf.appSetting.serverHosts[i];
1667
+
1668
+ if (message.destAddr !== conf.myMsgAddr) {
1669
+ await forwardMessage(message);
1670
+ }
1671
+ }
1672
+ }
1776
1673
  }
1777
1674
  }
1778
1675
 
1779
1676
  static async handleInternalMessage(options) {
1780
- return await noneRedisMessenger.handleInternalMessage(options);
1677
+ const message = options.replacements;
1678
+
1679
+ for (let i = 0; i < commonMessenger$1.onMessage.length; i++) {
1680
+ const appMsgHandle = commonMessenger$1.onMessage[i];
1681
+
1682
+ try {
1683
+ await appMsgHandle(message);
1684
+ } catch (e) {
1685
+ console.log(e);
1686
+ }
1687
+ }
1781
1688
  }
1782
1689
 
1783
1690
  }
@@ -1800,10 +1707,10 @@ var ppMessengerEx = commonMessenger$1;
1800
1707
  const apiUtil = ppUtilApi;
1801
1708
  const preconditions = ppPrecond;
1802
1709
  const commonMessenger = ppMessengerEx;
1803
- var ppUtil$1 = {
1710
+ var ppUtil = {
1804
1711
  apiUtil,
1805
1712
  preconditions,
1806
1713
  commonMessenger
1807
1714
  };
1808
1715
 
1809
- module.exports = ppUtil$1;
1716
+ module.exports = ppUtil;