cgserver 6.0.7 → 6.1.0

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 (137) hide show
  1. package/dist/lib/AI/AiObject.js +10 -0
  2. package/dist/lib/AI/Astar.js +133 -0
  3. package/dist/lib/AI/BehaviorAI.js +307 -0
  4. package/dist/lib/AI/Entity.js +33 -0
  5. package/dist/lib/AI/Point.js +68 -0
  6. package/dist/lib/AI/TriggerMgr.js +201 -0
  7. package/dist/lib/Config/Config.js +37 -0
  8. package/dist/lib/Config/FrameworkConfig.js +234 -0
  9. package/dist/lib/Config/ServerConfig.js +18 -0
  10. package/dist/lib/Config/_error_.js +35 -0
  11. package/dist/lib/Core/Core.js +561 -0
  12. package/dist/lib/Core/Timer.js +116 -0
  13. package/dist/lib/Database/BaseMongoService.js +79 -0
  14. package/dist/lib/Database/BaseService.js +281 -0
  15. package/dist/lib/Database/Decorator/AutoIncrement.js +11 -0
  16. package/dist/lib/Database/Decorator/DBCache.js +64 -0
  17. package/dist/lib/Database/Decorator/NotNull.js +11 -0
  18. package/dist/lib/Database/Decorator/PrimaryKey.js +11 -0
  19. package/dist/lib/Database/Decorator/Property.js +61 -0
  20. package/dist/lib/Database/Decorator/Table.js +15 -0
  21. package/dist/lib/Database/Decorator/Type.js +20 -0
  22. package/dist/lib/Database/MSSqlManager.js +43 -0
  23. package/dist/lib/Database/MongoManager.js +401 -0
  24. package/dist/lib/Database/MysqlManager.js +180 -0
  25. package/dist/lib/Database/RedisManager.js +408 -0
  26. package/dist/lib/Logic/CacheTool.js +73 -0
  27. package/dist/lib/Logic/HttpTool.js +58 -0
  28. package/dist/lib/Logic/Log.js +77 -0
  29. package/dist/lib/Service/AccountService.js +473 -0
  30. package/dist/lib/Service/MongoAccountService.js +396 -0
  31. package/dist/lib/Service/MongoCacheService.js +27 -0
  32. package/dist/lib/Service/MongoUserService.js +93 -0
  33. package/dist/lib/Service/UserService.js +184 -0
  34. package/dist/lib/Service/ini.js +35 -0
  35. package/dist/lib/SocketServer/IClientWebSocket.js +71 -0
  36. package/dist/lib/SocketServer/IServerWebSocket.js +41 -0
  37. package/dist/lib/SocketServer/ISocketServer.js +190 -0
  38. package/dist/lib/SocketServer/IWebSocket.js +223 -0
  39. package/dist/lib/SocketServer/ProtoFilter/GoogleProtoFilter.js +57 -0
  40. package/dist/lib/SocketServer/ProtoFilter/IProtoFilter.js +8 -0
  41. package/dist/lib/SocketServer/ProtoFilter/JsonProtoFilter.js +29 -0
  42. package/dist/lib/SocketServer/ProtoFilter/ProtoFactory.js +31 -0
  43. package/dist/lib/ThirdParty/AlipayTool.js +122 -0
  44. package/dist/lib/ThirdParty/Alisms.js +46 -0
  45. package/dist/lib/ThirdParty/AppleTool.js +234 -0
  46. package/dist/lib/ThirdParty/EmailTool.js +33 -0
  47. package/dist/lib/ThirdParty/OpenSocial.js +32 -0
  48. package/dist/lib/ThirdParty/QQTool.js +115 -0
  49. package/dist/lib/ThirdParty/QiniuTool.js +21 -0
  50. package/dist/lib/ThirdParty/WechatOATool.js +61 -0
  51. package/dist/lib/ThirdParty/WechatTool.js +74 -0
  52. package/dist/lib/WebServer/Controller/BaseController.js +112 -0
  53. package/dist/lib/WebServer/Controller/BaseUserController.js +168 -0
  54. package/dist/lib/WebServer/Controller/MongoBaseUserController.js +168 -0
  55. package/dist/lib/WebServer/Decorator/AdminValidate.js +19 -0
  56. package/dist/lib/WebServer/Decorator/AuthorityValidate.js +22 -0
  57. package/dist/lib/WebServer/Decorator/CreatorValidate.js +19 -0
  58. package/dist/lib/WebServer/Decorator/JsonAdminValidate.js +15 -0
  59. package/dist/lib/WebServer/Decorator/JsonAuthorityValidate.js +20 -0
  60. package/dist/lib/WebServer/Decorator/JsonCreatorValidate.js +19 -0
  61. package/dist/lib/WebServer/Engine/ControllerManager.js +112 -0
  62. package/dist/lib/WebServer/Engine/Engine.js +135 -0
  63. package/dist/lib/WebServer/Engine/RazorJs.js +544 -0
  64. package/dist/lib/WebServer/Engine/Request.js +214 -0
  65. package/dist/lib/WebServer/Engine/Response.js +94 -0
  66. package/dist/lib/WebServer/IWebServer.js +49 -0
  67. package/dist/lib/cgserver.js +153 -0
  68. package/dist/{AI → types/AI}/AiObject.d.ts +0 -0
  69. package/dist/{AI → types/AI}/Astar.d.ts +0 -0
  70. package/dist/{AI → types/AI}/BehaviorAI.d.ts +0 -0
  71. package/dist/{AI → types/AI}/Entity.d.ts +0 -0
  72. package/dist/{AI → types/AI}/Point.d.ts +0 -0
  73. package/dist/{AI → types/AI}/TriggerMgr.d.ts +0 -0
  74. package/dist/{Config → types/Config}/Config.d.ts +0 -0
  75. package/dist/{Config → types/Config}/FrameworkConfig.d.ts +0 -0
  76. package/dist/{Config → types/Config}/ServerConfig.d.ts +0 -0
  77. package/dist/{Config → types/Config}/_error_.d.ts +0 -0
  78. package/dist/{Core → types/Core}/Core.d.ts +0 -0
  79. package/dist/{Core → types/Core}/Timer.d.ts +0 -0
  80. package/dist/{Database → types/Database}/BaseMongoService.d.ts +1 -1
  81. package/dist/{Database → types/Database}/BaseService.d.ts +0 -0
  82. package/dist/{Database → types/Database}/Decorator/AutoIncrement.d.ts +0 -0
  83. package/dist/{Database → types/Database}/Decorator/DBCache.d.ts +0 -0
  84. package/dist/{Database → types/Database}/Decorator/NotNull.d.ts +0 -0
  85. package/dist/{Database → types/Database}/Decorator/PrimaryKey.d.ts +0 -0
  86. package/dist/{Database → types/Database}/Decorator/Property.d.ts +0 -0
  87. package/dist/{Database → types/Database}/Decorator/Table.d.ts +0 -0
  88. package/dist/{Database → types/Database}/Decorator/Type.d.ts +0 -0
  89. package/dist/{Database → types/Database}/MSSqlManager.d.ts +0 -0
  90. package/dist/{Database → types/Database}/MongoManager.d.ts +1 -1
  91. package/dist/{Database → types/Database}/MysqlManager.d.ts +0 -0
  92. package/dist/{Database → types/Database}/RedisManager.d.ts +0 -0
  93. package/dist/{Logic → types/Logic}/CacheTool.d.ts +0 -0
  94. package/dist/{Logic → types/Logic}/HttpTool.d.ts +0 -0
  95. package/dist/{Logic → types/Logic}/Log.d.ts +0 -0
  96. package/dist/{Service → types/Service}/AccountService.d.ts +0 -0
  97. package/dist/{Service → types/Service}/MongoAccountService.d.ts +0 -0
  98. package/dist/{Service → types/Service}/MongoCacheService.d.ts +0 -0
  99. package/dist/{Service → types/Service}/MongoUserService.d.ts +0 -0
  100. package/dist/{Service → types/Service}/UserService.d.ts +0 -0
  101. package/dist/{Service → types/Service}/ini.d.ts +0 -0
  102. package/dist/{SocketServer → types/SocketServer}/IClientWebSocket.d.ts +0 -0
  103. package/dist/{SocketServer → types/SocketServer}/IServerWebSocket.d.ts +0 -0
  104. package/dist/{SocketServer → types/SocketServer}/ISocketServer.d.ts +0 -0
  105. package/dist/{SocketServer → types/SocketServer}/IWebSocket.d.ts +0 -0
  106. package/dist/{SocketServer → types/SocketServer}/ProtoFilter/GoogleProtoFilter.d.ts +0 -0
  107. package/dist/{SocketServer → types/SocketServer}/ProtoFilter/IProtoFilter.d.ts +0 -0
  108. package/dist/{SocketServer → types/SocketServer}/ProtoFilter/JsonProtoFilter.d.ts +0 -0
  109. package/dist/{SocketServer → types/SocketServer}/ProtoFilter/ProtoFactory.d.ts +0 -0
  110. package/dist/{ThirdParty → types/ThirdParty}/AlipayTool.d.ts +0 -0
  111. package/dist/{ThirdParty → types/ThirdParty}/Alisms.d.ts +0 -0
  112. package/dist/{ThirdParty → types/ThirdParty}/AppleTool.d.ts +0 -0
  113. package/dist/{ThirdParty → types/ThirdParty}/EmailTool.d.ts +0 -0
  114. package/dist/{ThirdParty → types/ThirdParty}/OpenSocial.d.ts +0 -0
  115. package/dist/{ThirdParty → types/ThirdParty}/QQTool.d.ts +0 -0
  116. package/dist/{ThirdParty → types/ThirdParty}/QiniuTool.d.ts +0 -0
  117. package/dist/{ThirdParty → types/ThirdParty}/WechatOATool.d.ts +0 -0
  118. package/dist/{ThirdParty → types/ThirdParty}/WechatTool.d.ts +0 -0
  119. package/dist/{WebServer → types/WebServer}/Controller/BaseController.d.ts +0 -0
  120. package/dist/{WebServer → types/WebServer}/Controller/BaseUserController.d.ts +0 -0
  121. package/dist/{WebServer → types/WebServer}/Controller/MongoBaseUserController.d.ts +0 -0
  122. package/dist/{WebServer → types/WebServer}/Decorator/AdminValidate.d.ts +0 -0
  123. package/dist/{WebServer → types/WebServer}/Decorator/AuthorityValidate.d.ts +0 -0
  124. package/dist/{WebServer → types/WebServer}/Decorator/CreatorValidate.d.ts +0 -0
  125. package/dist/{WebServer → types/WebServer}/Decorator/JsonAdminValidate.d.ts +0 -0
  126. package/dist/{WebServer → types/WebServer}/Decorator/JsonAuthorityValidate.d.ts +0 -0
  127. package/dist/{WebServer → types/WebServer}/Decorator/JsonCreatorValidate.d.ts +0 -0
  128. package/dist/{WebServer → types/WebServer}/Engine/ControllerManager.d.ts +0 -0
  129. package/dist/{WebServer → types/WebServer}/Engine/Engine.d.ts +0 -0
  130. package/dist/{WebServer → types/WebServer}/Engine/RazorJs.d.ts +0 -0
  131. package/dist/{WebServer → types/WebServer}/Engine/Request.d.ts +0 -0
  132. package/dist/{WebServer → types/WebServer}/Engine/Response.d.ts +0 -0
  133. package/dist/{WebServer → types/WebServer}/IWebServer.d.ts +0 -0
  134. package/dist/{cgserver.d.ts → types/cgserver.d.ts} +0 -0
  135. package/package.json +3 -3
  136. package/dist/Index.d.ts +0 -73
  137. package/dist/cgserver.js +0 -1037
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GCtrMgr = void 0;
4
+ exports.GCtrMgr = null;
5
+ class ControllerManager {
6
+ _ctrs = new Map();
7
+ _ctr_cls = new Map();
8
+ //module ctrname lower normal
9
+ _cache_action_names = new Map();
10
+ registerController(module_name, ctr_name, cls) {
11
+ module_name = module_name.toLowerCase();
12
+ ctr_name = ctr_name.toLowerCase();
13
+ if (module_name == ctr_name) {
14
+ throw ("模块名称不能和控制器名称相同:" + module_name);
15
+ }
16
+ this._ctr_cls[module_name] = this._ctr_cls[module_name] || {};
17
+ this._ctr_cls[module_name][ctr_name] = cls;
18
+ this._cacheActionName(module_name, ctr_name, cls);
19
+ }
20
+ _cacheActionName(module_name, ctr_name, cls) {
21
+ module_name = module_name.toLowerCase();
22
+ ctr_name = ctr_name.toLowerCase();
23
+ //不能通过cls.name来获取ctr名称,因为混淆之后类名会变化
24
+ let prototype = cls.prototype;
25
+ let map_names = new Map();
26
+ while (prototype && prototype.constructor.name != "BaseController") {
27
+ let names = Object.getOwnPropertyNames(prototype);
28
+ for (let action_name of names) {
29
+ if (action_name.indexOf("on") != 0
30
+ && action_name.indexOf("show") != 0) {
31
+ continue;
32
+ }
33
+ if (map_names[action_name.toLowerCase()]) {
34
+ continue;
35
+ }
36
+ map_names[action_name.toLowerCase()] = action_name;
37
+ }
38
+ prototype = Object.getPrototypeOf(prototype);
39
+ }
40
+ this._cache_action_names[module_name] = this._cache_action_names[module_name] || {};
41
+ this._cache_action_names[module_name][ctr_name] = map_names;
42
+ }
43
+ getActionName(module_name, ctr_name, action_name) {
44
+ module_name = module_name.toLowerCase();
45
+ ctr_name = ctr_name.toLowerCase();
46
+ action_name = action_name.toLowerCase();
47
+ if (!this._cache_action_names[module_name]) {
48
+ return null;
49
+ }
50
+ if (!this._cache_action_names[module_name][ctr_name]) {
51
+ return null;
52
+ }
53
+ return this._cache_action_names[module_name][ctr_name][action_name];
54
+ }
55
+ /**
56
+ * 静态ctr,这样,ctr就不会被多次创建
57
+ * @param module_name
58
+ * @param ctr_name
59
+ * @param obj
60
+ */
61
+ registerStaticController(module_name, ctr_name, obj) {
62
+ module_name = module_name.toLowerCase();
63
+ ctr_name = ctr_name.toLowerCase();
64
+ this._ctrs[module_name] = this._ctrs[module_name] || {};
65
+ this._ctrs[module_name][ctr_name] = obj;
66
+ this._cacheActionNameForStatic(module_name, ctr_name, obj);
67
+ }
68
+ _cacheActionNameForStatic(module_name, ctr_name, obj) {
69
+ module_name = module_name.toLowerCase();
70
+ ctr_name = ctr_name.toLowerCase();
71
+ let prototype = Object.getPrototypeOf(obj);
72
+ let map_names = new Map();
73
+ while (prototype && prototype.constructor.name != "BaseController") {
74
+ let names = Object.getOwnPropertyNames(prototype);
75
+ for (let func_name of names) {
76
+ let low_name = func_name.toLowerCase();
77
+ if (!map_names[low_name]) //有可能遭遇重载
78
+ {
79
+ map_names[low_name] = func_name;
80
+ }
81
+ }
82
+ prototype = Object.getPrototypeOf(prototype);
83
+ }
84
+ this._cache_action_names[module_name] = this._cache_action_names[module_name] || {};
85
+ this._cache_action_names[module_name][ctr_name] = map_names;
86
+ }
87
+ getStaticCtr(module_name, controller_name) {
88
+ if (module_name) {
89
+ module_name = module_name.toLowerCase();
90
+ }
91
+ if (controller_name) {
92
+ controller_name = controller_name.toLowerCase();
93
+ }
94
+ if (!this._ctrs[module_name]) {
95
+ return;
96
+ }
97
+ return this._ctrs[module_name][controller_name];
98
+ }
99
+ getClass(module_name, controller_name) {
100
+ if (module_name) {
101
+ module_name = module_name.toLowerCase();
102
+ }
103
+ if (controller_name) {
104
+ controller_name = controller_name.toLowerCase();
105
+ }
106
+ if (!this._ctr_cls[module_name]) {
107
+ return;
108
+ }
109
+ return this._ctr_cls[module_name][controller_name];
110
+ }
111
+ }
112
+ exports.GCtrMgr = new ControllerManager();
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Engine = void 0;
4
+ const Response_1 = require("./Response");
5
+ const Request_1 = require("./Request");
6
+ const ControllerManager_1 = require("./ControllerManager");
7
+ const http = require("http");
8
+ const Log_1 = require("../../Logic/Log");
9
+ const cors = require("cors");
10
+ const Express = require("express");
11
+ const bodyParser = require("body-parser");
12
+ const cookieParser = require("cookie-parser");
13
+ class Engine {
14
+ _app = Express();
15
+ _cfg = null;
16
+ get cfg() {
17
+ return this._cfg;
18
+ }
19
+ _server = null;
20
+ _razorJs = null;
21
+ _root_path = process.cwd();
22
+ constructor(cfg, razorJs) {
23
+ this._cfg = cfg;
24
+ this._razorJs = razorJs;
25
+ }
26
+ start() {
27
+ let port = this._cfg.port;
28
+ let https = require("https");
29
+ let fs = require("fs");
30
+ if (!port) {
31
+ Log_1.GLog.error(this._cfg);
32
+ return;
33
+ }
34
+ http.createServer(this._app).listen(port, () => {
35
+ Log_1.GLog.info("Server(" + this._cfg.web_name + ") running at http://127.0.0.1:" + port + "/", true);
36
+ });
37
+ if (this._cfg.ssl) {
38
+ const httpsOption = {
39
+ key: fs.readFileSync(this._cfg.ssl.key),
40
+ cert: fs.readFileSync(this._cfg.ssl.crt)
41
+ };
42
+ https.createServer(httpsOption, this._app).listen(port + 1);
43
+ Log_1.GLog.info("Server(" + this._cfg.web_name + ") running at https://127.0.0.1:" + (port + 1) + "/", true);
44
+ }
45
+ this._app.use(cookieParser());
46
+ this._app.use(bodyParser.json({ limit: '10mb' }));
47
+ this._app.use(bodyParser.urlencoded({ limit: '10mb', extended: true }));
48
+ //处理跨域
49
+ if (this._cfg.cors) {
50
+ let origin = this._cfg.cors.origin || "*";
51
+ if (this._cfg.cors.credentials == true && origin == "*") {
52
+ origin = (origin, callback) => {
53
+ callback(null, true);
54
+ };
55
+ }
56
+ this._app.use(cors({
57
+ origin: origin,
58
+ methods: this._cfg.cors.methods || 'GET,HEAD,PUT,PATCH,POST,DELETE',
59
+ allowedHeaders: this._cfg.cors.allowedHeaders || ['Content-Type'],
60
+ credentials: this._cfg.cors.credentials || false
61
+ }));
62
+ }
63
+ this._app.all("/*", this._all.bind(this));
64
+ }
65
+ async _all(_req, _res) {
66
+ let req = new Request_1.Request(_req, this._cfg);
67
+ let res = new Response_1.Response(_res, this._cfg);
68
+ if (req.fileUrl) {
69
+ res.renderFile(this._root_path + req.fileUrl);
70
+ return;
71
+ }
72
+ let method = req.method.toLowerCase();
73
+ if (method != "get" && method != "post") {
74
+ return;
75
+ }
76
+ let pre_action = "show";
77
+ let action_name = "";
78
+ if (method == "post") {
79
+ pre_action = "on";
80
+ }
81
+ //大小写还原
82
+ action_name = ControllerManager_1.GCtrMgr.getActionName(req.module, req.controller, pre_action + req.action);
83
+ //尝试一次on,变态支持
84
+ if (!action_name && method == "get") {
85
+ pre_action = "on";
86
+ action_name = ControllerManager_1.GCtrMgr.getActionName(req.module, req.controller, pre_action + req.action);
87
+ }
88
+ if (!action_name) {
89
+ if (method == "get") {
90
+ res.render404();
91
+ }
92
+ else if (method == "post") {
93
+ res.renderJson404();
94
+ }
95
+ return;
96
+ }
97
+ let ctr = ControllerManager_1.GCtrMgr.getStaticCtr(req.module, req.controller);
98
+ let cls_ctr = null;
99
+ if (!ctr) {
100
+ cls_ctr = ControllerManager_1.GCtrMgr.getClass(req.module, req.controller);
101
+ }
102
+ if (!ctr) {
103
+ ctr = new cls_ctr(req, res, this);
104
+ await ctr.init();
105
+ }
106
+ else {
107
+ ctr.initStatic(req, res, this);
108
+ }
109
+ ctr[action_name].call(ctr);
110
+ }
111
+ stop() {
112
+ }
113
+ getRenderHtml(req, res, datas) {
114
+ let tmpl = "view/" + req.controller.toLowerCase() + "/" + req.action.toLowerCase();
115
+ //if(!this._cfg.routs.onlyModule)
116
+ {
117
+ tmpl = "modules/" + req.module.toLowerCase() + "/" + tmpl;
118
+ }
119
+ let html = this._getRenderHtml(req, res, tmpl, datas);
120
+ return html;
121
+ }
122
+ _getRenderHtml(req, res, tmpl, params) {
123
+ let html = null;
124
+ try {
125
+ html = this._razorJs.render(req, res, tmpl, params, { compileDebug: true });
126
+ html = html.replace(/\"~/g, "\"" + req.root);
127
+ html = html.replace(/\'~/g, "\'" + req.root);
128
+ }
129
+ catch (e) {
130
+ html = "error!" + e;
131
+ }
132
+ return html;
133
+ }
134
+ }
135
+ exports.Engine = Engine;