@gingkoo/base-server 0.0.2-alpha.9 → 0.0.3-alpha.1

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.
Files changed (109) hide show
  1. package/app.js +15 -2
  2. package/backend/common/logger/index.js +11 -0
  3. package/backend/common/middleware/auth.js +3 -0
  4. package/backend/common/socket.js +1 -1
  5. package/backend/common/wechat/services/auth.js +5 -1
  6. package/backend/config/index.js +11 -1
  7. package/backend/routers/app.js +3 -0
  8. package/backend/routers/module.js +6 -5
  9. package/backend/space.js +2 -0
  10. package/dist/base-assets/css/{index-47564213.css → index-248806df.css} +1 -1
  11. package/dist/base-assets/css/index-248806df.css.gz +0 -0
  12. package/dist/base-assets/js/{arc-abc997fd.js → arc-580f4549.js} +1 -1
  13. package/dist/base-assets/js/{blockDiagram-9f4a6865-08410c26.js → blockDiagram-9f4a6865-98504e3e.js} +1 -1
  14. package/dist/base-assets/js/blockDiagram-9f4a6865-98504e3e.js.gz +0 -0
  15. package/dist/base-assets/js/{c4Diagram-ae766693-074bc318.js → c4Diagram-ae766693-2ef668f9.js} +1 -1
  16. package/dist/base-assets/js/c4Diagram-ae766693-2ef668f9.js.gz +0 -0
  17. package/dist/base-assets/js/channel-aac1f929.js +1 -0
  18. package/dist/base-assets/js/{classDiagram-fb54d2a0-7ce78396.js → classDiagram-fb54d2a0-260d9cd5.js} +1 -1
  19. package/dist/base-assets/js/{classDiagram-v2-a2b738ad-7570c90d.js → classDiagram-v2-a2b738ad-c702f0d7.js} +1 -1
  20. package/dist/base-assets/js/clone-9e03cee5.js +1 -0
  21. package/dist/base-assets/js/{createText-ca0c5216-933a319c.js → createText-ca0c5216-3e380919.js} +1 -1
  22. package/dist/base-assets/js/{edges-066a5561-3e450dad.js → edges-066a5561-52c1c420.js} +1 -1
  23. package/dist/base-assets/js/edges-066a5561-52c1c420.js.gz +0 -0
  24. package/dist/base-assets/js/{erDiagram-09d1c15f-5aa33fc3.js → erDiagram-09d1c15f-696b76a8.js} +1 -1
  25. package/dist/base-assets/js/erDiagram-09d1c15f-696b76a8.js.gz +0 -0
  26. package/dist/base-assets/js/{flowDb-c1833063-dd679e7a.js → flowDb-c1833063-1debd75b.js} +1 -1
  27. package/dist/base-assets/js/flowDb-c1833063-1debd75b.js.gz +0 -0
  28. package/dist/base-assets/js/{flowDiagram-b222e15a-cff1e343.js → flowDiagram-b222e15a-f8dd23e4.js} +1 -1
  29. package/dist/base-assets/js/flowDiagram-b222e15a-f8dd23e4.js.gz +0 -0
  30. package/dist/base-assets/js/flowDiagram-v2-13329dc7-312e5053.js +1 -0
  31. package/dist/base-assets/js/{flowchart-elk-definition-ae0efee6-e1560b86.js → flowchart-elk-definition-ae0efee6-c1ce79b0.js} +1 -1
  32. package/dist/base-assets/js/flowchart-elk-definition-ae0efee6-c1ce79b0.js.gz +0 -0
  33. package/dist/base-assets/js/{ganttDiagram-b62c793e-4e64bd93.js → ganttDiagram-b62c793e-63f67974.js} +1 -1
  34. package/dist/base-assets/js/ganttDiagram-b62c793e-63f67974.js.gz +0 -0
  35. package/dist/base-assets/js/{gitGraphDiagram-942e62fe-68f171cb.js → gitGraphDiagram-942e62fe-a365471d.js} +1 -1
  36. package/dist/base-assets/js/gitGraphDiagram-942e62fe-a365471d.js.gz +0 -0
  37. package/dist/base-assets/js/{graph-2f2b1d0f.js → graph-91fe168a.js} +1 -1
  38. package/dist/base-assets/js/graph-91fe168a.js.gz +0 -0
  39. package/dist/base-assets/js/{index-01f381cb-a30abf08.js → index-01f381cb-5a29f4cf.js} +1 -1
  40. package/dist/base-assets/js/index-01f381cb-5a29f4cf.js.gz +0 -0
  41. package/dist/base-assets/js/{index-fa41a7b5.js → index-2c13057e.js} +631 -535
  42. package/dist/base-assets/js/index-2c13057e.js.gz +0 -0
  43. package/dist/base-assets/js/{infoDiagram-94cd232f-cbf2e983.js → infoDiagram-94cd232f-3ceee611.js} +1 -1
  44. package/dist/base-assets/js/{journeyDiagram-6625b456-df75da86.js → journeyDiagram-6625b456-a94f512f.js} +1 -1
  45. package/dist/base-assets/js/journeyDiagram-6625b456-a94f512f.js.gz +0 -0
  46. package/dist/base-assets/js/{layout-29f03de2.js → layout-dd935c55.js} +1 -1
  47. package/dist/base-assets/js/layout-dd935c55.js.gz +0 -0
  48. package/dist/base-assets/js/{line-faad1751.js → line-ce69d140.js} +1 -1
  49. package/dist/base-assets/js/{linear-0c60c331.js → linear-31cc923f.js} +1 -1
  50. package/dist/base-assets/js/{mermaid.core-eb338566.js → mermaid.core-d3d18aba.js} +3 -3
  51. package/dist/base-assets/js/mermaid.core-d3d18aba.js.gz +0 -0
  52. package/dist/base-assets/js/{mindmap-definition-307c710a-e157c00e.js → mindmap-definition-307c710a-1f3ebf4f.js} +1 -1
  53. package/dist/base-assets/js/mindmap-definition-307c710a-1f3ebf4f.js.gz +0 -0
  54. package/dist/base-assets/js/{pieDiagram-bb1d19e5-1666075a.js → pieDiagram-bb1d19e5-7f7302ce.js} +1 -1
  55. package/dist/base-assets/js/pieDiagram-bb1d19e5-7f7302ce.js.gz +0 -0
  56. package/dist/base-assets/js/{quadrantDiagram-c759a472-bce4c9b7.js → quadrantDiagram-c759a472-c3e36f61.js} +1 -1
  57. package/dist/base-assets/js/{quadrantDiagram-c759a472-bce4c9b7.js.gz → quadrantDiagram-c759a472-c3e36f61.js.gz} +0 -0
  58. package/dist/base-assets/js/{react-cropper.es-825672c6.js → react-cropper.es-14f7cf7c.js} +1 -1
  59. package/dist/base-assets/js/react-cropper.es-14f7cf7c.js.gz +0 -0
  60. package/dist/base-assets/js/{requirementDiagram-87253d64-a41d6314.js → requirementDiagram-87253d64-11b5e031.js} +1 -1
  61. package/dist/base-assets/js/requirementDiagram-87253d64-11b5e031.js.gz +0 -0
  62. package/dist/base-assets/js/{sankeyDiagram-707fac0f-b039474b.js → sankeyDiagram-707fac0f-d693ec63.js} +1 -1
  63. package/dist/base-assets/js/sankeyDiagram-707fac0f-d693ec63.js.gz +0 -0
  64. package/dist/base-assets/js/{sequenceDiagram-6894f283-4048704a.js → sequenceDiagram-6894f283-a84b83c2.js} +1 -1
  65. package/dist/base-assets/js/sequenceDiagram-6894f283-a84b83c2.js.gz +0 -0
  66. package/dist/base-assets/js/{stateDiagram-5dee940d-83ee72c0.js → stateDiagram-5dee940d-a2c7e3ae.js} +1 -1
  67. package/dist/base-assets/js/{stateDiagram-v2-1992cada-37635e07.js → stateDiagram-v2-1992cada-3e66c65d.js} +1 -1
  68. package/dist/base-assets/js/{styles-0784dbeb-c0806fe9.js → styles-0784dbeb-c8a209db.js} +1 -1
  69. package/dist/base-assets/js/styles-0784dbeb-c8a209db.js.gz +0 -0
  70. package/dist/base-assets/js/{styles-483fbfea-7e8c469a.js → styles-483fbfea-cc1cf6d7.js} +1 -1
  71. package/dist/base-assets/js/{styles-b83b31c9-34688bd8.js → styles-b83b31c9-ec420bae.js} +1 -1
  72. package/dist/base-assets/js/styles-b83b31c9-ec420bae.js.gz +0 -0
  73. package/dist/base-assets/js/{svgDrawCommon-5e1cfd1d-c57cf66f.js → svgDrawCommon-5e1cfd1d-cf8e620d.js} +1 -1
  74. package/dist/base-assets/js/{timeline-definition-bf702344-c27bf0cf.js → timeline-definition-bf702344-4cbcb14a.js} +1 -1
  75. package/dist/base-assets/js/timeline-definition-bf702344-4cbcb14a.js.gz +0 -0
  76. package/dist/base-assets/js/{xychartDiagram-f11f50a6-35c35675.js → xychartDiagram-f11f50a6-d1b332af.js} +1 -1
  77. package/dist/base-assets/js/xychartDiagram-f11f50a6-d1b332af.js.gz +0 -0
  78. package/dist/index.html +2 -2
  79. package/package.json +5 -4
  80. package/static/excel/plantuml.md +125 -0
  81. package/dist/base-assets/css/index-47564213.css.gz +0 -0
  82. package/dist/base-assets/js/blockDiagram-9f4a6865-08410c26.js.gz +0 -0
  83. package/dist/base-assets/js/c4Diagram-ae766693-074bc318.js.gz +0 -0
  84. package/dist/base-assets/js/channel-eb962d65.js +0 -1
  85. package/dist/base-assets/js/clone-040a8e6c.js +0 -1
  86. package/dist/base-assets/js/edges-066a5561-3e450dad.js.gz +0 -0
  87. package/dist/base-assets/js/erDiagram-09d1c15f-5aa33fc3.js.gz +0 -0
  88. package/dist/base-assets/js/flowDb-c1833063-dd679e7a.js.gz +0 -0
  89. package/dist/base-assets/js/flowDiagram-b222e15a-cff1e343.js.gz +0 -0
  90. package/dist/base-assets/js/flowDiagram-v2-13329dc7-752c1e1a.js +0 -1
  91. package/dist/base-assets/js/flowchart-elk-definition-ae0efee6-e1560b86.js.gz +0 -0
  92. package/dist/base-assets/js/ganttDiagram-b62c793e-4e64bd93.js.gz +0 -0
  93. package/dist/base-assets/js/gitGraphDiagram-942e62fe-68f171cb.js.gz +0 -0
  94. package/dist/base-assets/js/graph-2f2b1d0f.js.gz +0 -0
  95. package/dist/base-assets/js/index-01f381cb-a30abf08.js.gz +0 -0
  96. package/dist/base-assets/js/index-fa41a7b5.js.gz +0 -0
  97. package/dist/base-assets/js/journeyDiagram-6625b456-df75da86.js.gz +0 -0
  98. package/dist/base-assets/js/layout-29f03de2.js.gz +0 -0
  99. package/dist/base-assets/js/mermaid.core-eb338566.js.gz +0 -0
  100. package/dist/base-assets/js/mindmap-definition-307c710a-e157c00e.js.gz +0 -0
  101. package/dist/base-assets/js/pieDiagram-bb1d19e5-1666075a.js.gz +0 -0
  102. package/dist/base-assets/js/react-cropper.es-825672c6.js.gz +0 -0
  103. package/dist/base-assets/js/requirementDiagram-87253d64-a41d6314.js.gz +0 -0
  104. package/dist/base-assets/js/sankeyDiagram-707fac0f-b039474b.js.gz +0 -0
  105. package/dist/base-assets/js/sequenceDiagram-6894f283-4048704a.js.gz +0 -0
  106. package/dist/base-assets/js/styles-0784dbeb-c0806fe9.js.gz +0 -0
  107. package/dist/base-assets/js/styles-b83b31c9-34688bd8.js.gz +0 -0
  108. package/dist/base-assets/js/timeline-definition-bf702344-c27bf0cf.js.gz +0 -0
  109. package/dist/base-assets/js/xychartDiagram-f11f50a6-35c35675.js.gz +0 -0
package/app.js CHANGED
@@ -15,9 +15,11 @@ const router = require('./backend/router');
15
15
  class App {
16
16
  /**
17
17
  * @param {string} optinos.timeout 超时时间 默认 30s
18
+ * @param {boolean} optinos.closeSocket 是否关闭socket 默认 false 不关闭
18
19
  * @param {(app: any, express: any) => void} optinos.middleware 注册中间件
19
20
  * @param {(app: any, express: any) => void} optinos.beforeRoutes 在前面注册路由
20
21
  * @param {(app: any, express: any) => void} optinos.afterRoutes 在后面注册路由
22
+ * @param {(server: any, app: any, express: any) => void} optinos.expandServer 扩展 server
21
23
  */
22
24
  constructor(options = {}) {
23
25
  this.options = options;
@@ -27,10 +29,17 @@ class App {
27
29
 
28
30
  this.connectDB();
29
31
  this.middleware();
32
+
33
+ if (!options.closeSocket) {
34
+ this.listenSocket();
35
+ }
36
+
30
37
  this.routes();
31
38
  this.schedule();
32
39
 
33
- this.listenSocket();
40
+ if (this.options.expandServer) {
41
+ this.options.expandServer(this.httpServer, this.app, express);
42
+ }
34
43
  }
35
44
 
36
45
  // 连接数据库
@@ -50,7 +59,11 @@ class App {
50
59
  this.app.use(cors);
51
60
  this.app.use(response);
52
61
  this.app.use((req, res, next) => {
53
- if (~req.path.indexOf('/sse')) {
62
+ let ignoreCompressionPath = config.ignoreCompressionPath;
63
+ if (
64
+ Array.isArray(ignoreCompressionPath) &&
65
+ ignoreCompressionPath.find((v) => ~req.path.indexOf(v))
66
+ ) {
54
67
  return next();
55
68
  }
56
69
 
@@ -23,6 +23,13 @@ const appenders = {
23
23
  compress: false,
24
24
  numBackups: 7,
25
25
  },
26
+ userlog: {
27
+ type: 'dateFile',
28
+ filename: path.join(config.app.home, 'logs', 'user.log'),
29
+ pattern: 'yyyy-MM-dd.log',
30
+ compress: false,
31
+ numBackups: 7,
32
+ },
26
33
 
27
34
  infolog: {
28
35
  type: 'dateFile',
@@ -59,6 +66,10 @@ const categories = {
59
66
  appenders: ['console', 'wslog'],
60
67
  level: 'debug',
61
68
  },
69
+ userlog: {
70
+ appenders: ['console', 'userlog'],
71
+ level: 'debug',
72
+ },
62
73
 
63
74
  schedulelog: {
64
75
  appenders: ['console', 'schedulelog'],
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  const jwt = require('../../utils/jwt');
3
3
  const config = require('../../config/index');
4
+ const { userlog } = require('../logger');
4
5
  const { loginType, getLoginMethod } = require('../services/login');
5
6
 
6
7
  // 后端登录
@@ -102,8 +103,10 @@ function setTokenCookies(res, token) {
102
103
  expires.setDate(expires.getDate() + config.jwt.exp);
103
104
 
104
105
  if (config.jwt.domain) {
106
+ userlog.info(`domain: ${config.jwt.domain}`);
105
107
  return res.cookie('X-Token', token, { expires, domain: config.jwt.domain });
106
108
  } else {
109
+ userlog.info('不用 domain');
107
110
  return res.cookie('X-Token', token, { expires });
108
111
  }
109
112
  }
@@ -1,7 +1,7 @@
1
1
  const config = require('../config/index');
2
2
 
3
3
  class Socket {
4
- scokets = config.scoket.files;
4
+ scokets = config.scoket?.files?.() || [];
5
5
  constructor(io) {
6
6
  this.io = io;
7
7
  this.dispenseNamespace();
@@ -1,6 +1,7 @@
1
1
  var httpclient = require('node-httpclient');
2
2
  var util = require('../../../utils/util');
3
3
  const jwt = require('../../../utils/jwt');
4
+ const config = require('../../../config/index');
4
5
  const { logger } = require('../../logger');
5
6
  const userService = require('../../services/user');
6
7
  const configService = require('../../services/generalConfig');
@@ -16,7 +17,10 @@ const ginfoServices = require('../../ginfo/index');
16
17
  const getRedirectUrl = async (userAgent) => {
17
18
  let auth_redirect_url = '';
18
19
  let data = await configService.getFromConfig({ GROUP_ID: 'qywx' });
19
- let { qywx_AgentID, qywx_APPID, qywx_REDIRECT } = data;
20
+ let { qywx_AgentID, qywx_APPID } = data;
21
+
22
+ let qywx_REDIRECT = config.app.qywx_redirect_uri || data.qywx_REDIRECT;
23
+
20
24
  // qywx_REDIRECT = http://gingkoo.com/teams
21
25
  let redirect_uri = `${qywx_REDIRECT}/wechat/auth/oauth/qywx/callback`;
22
26
 
@@ -29,6 +29,7 @@ function gConfig() {
29
29
  app: {
30
30
  home: path.resolve('app_home'), // 资源存放的磁盘位置 (绝对路径)
31
31
  redirect_uri: '',
32
+ qywx_redirect_uri: '',
32
33
  },
33
34
 
34
35
  jwt: {
@@ -42,7 +43,9 @@ function gConfig() {
42
43
  },
43
44
 
44
45
  scoket: {
45
- files: [],
46
+ files: () => {
47
+ return [];
48
+ },
46
49
  config: {},
47
50
  },
48
51
 
@@ -54,6 +57,13 @@ function gConfig() {
54
57
  site: {
55
58
  title: '',
56
59
  },
60
+ ignoreCompressionPath: [],
61
+
62
+ frontend_config: {
63
+ load_type: 'iframe', // iframe | micro app
64
+ home_mode: 'menu', // menu 菜单模式 | page 单页面模式
65
+ home_url: '', // page 模式地址
66
+ },
57
67
  },
58
68
  serverConfig,
59
69
  );
@@ -3,6 +3,7 @@ var express = require('express');
3
3
  const nodemailer = require('nodemailer');
4
4
  const bcrypt = require('bcryptjs');
5
5
  const config = require('../config');
6
+ const { userlog } = require('../../backend/common/logger');
6
7
  const jwt = require('../utils/jwt');
7
8
  const { checkLogin, setTokenCookies } = require('../common/middleware/auth');
8
9
  const { join, readFileContent } = require('../utils/path');
@@ -43,6 +44,8 @@ router.post('/login', async (req, res) => {
43
44
  userid: userinfo?.USER_ID,
44
45
  });
45
46
 
47
+ userlog.info(`用户:${userinfo?.USER_ID} 登录成功,token: ${token}`);
48
+
46
49
  setTokenCookies(res, token);
47
50
  res.sendOk({
48
51
  token,
@@ -46,16 +46,17 @@ router.get('/getMenu', async function (req, res) {
46
46
  if (!Array.isArray(modules)) {
47
47
  return res.sendOk([]);
48
48
  }
49
- let member = await servicesServices.getSystemPower();
49
+ // TODO. 这里用写死成员过滤 teams-system 感觉不合适 先注释掉
50
+ // let member = await servicesServices.getSystemPower();
50
51
 
51
- if (!Array.isArray(member)) member = [];
52
+ // if (!Array.isArray(member)) member = [];
52
53
 
53
- member = member.filter((v) => v?.userid);
54
+ // member = member.filter((v) => v?.userid);
54
55
  // modules = modules.filter((v) => member.includes(userid) || v.MODULE_ID !== 'teams-system');
55
56
 
56
57
  // 先过滤掉权限
57
- // let permissionModules = await userPermissionModules(userid);
58
- // modules = modules.filter((v) => permissionModules.includes(v.MODULE_ID));
58
+ let permissionModules = await userPermissionModules(userid);
59
+ modules = modules.filter((v) => permissionModules.includes(v.MODULE_ID));
59
60
 
60
61
  let data = await Promise.all(
61
62
  modules.map(async (v) => {
package/backend/space.js CHANGED
@@ -2,6 +2,7 @@
2
2
  var express = require('express');
3
3
  const { checkLogin, authCheck } = require('./common/middleware/auth');
4
4
  const { loginType, getLoginMethod } = require('./common/services/login');
5
+ const config = require('./config');
5
6
  const automateRouter = require('./routers/automate');
6
7
  const app = require('./routers/app');
7
8
  const users = require('./routers/user');
@@ -46,6 +47,7 @@ router.get('/config', async function (req, res) {
46
47
  res.sendOk({
47
48
  loginUrl,
48
49
  logo,
50
+ ...config.frontend_config,
49
51
  });
50
52
  });
51
53