mm_os 3.3.0 → 4.0.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 (380) hide show
  1. package/LICENSE +21 -201
  2. package/README.md +491 -99
  3. package/README_EN.md +498 -0
  4. package/adapter/adapter.js +431 -0
  5. package/adapter/custom_persistence.js +660 -0
  6. package/adapter/mqtt.js +273 -0
  7. package/adapter/socket.js +113 -0
  8. package/adapter/web.js +67 -0
  9. package/adapter/websocket.js +146 -0
  10. package/com/api/com.json +5 -0
  11. package/{core/com → com}/api/config.tpl.json +8 -8
  12. package/com/api/drive.js +708 -0
  13. package/com/api/index.js +198 -0
  14. package/com/api/oauth.js +200 -0
  15. package/com/api/script.tpl.js +32 -0
  16. package/com/cmd/README.md +11 -0
  17. package/com/cmd/com.json +5 -0
  18. package/com/cmd/config.tpl.json +122 -0
  19. package/com/cmd/drive.js +1548 -0
  20. package/com/cmd/index.js +1066 -0
  21. package/com/cmd/msg.json +48 -0
  22. package/com/cmd/nlp.js +525 -0
  23. package/com/cmd/script.tpl.js +32 -0
  24. package/com/db/com.json +5 -0
  25. package/com/db/drive.js +1999 -0
  26. package/com/db/index.js +242 -0
  27. package/com/event/com.json +5 -0
  28. package/{core/com → com}/event/config.tpl.json +8 -8
  29. package/com/event/drive.js +59 -0
  30. package/com/event/index.js +409 -0
  31. package/com/event/script.tpl.js +23 -0
  32. package/com/mqtt/com.json +5 -0
  33. package/{core/com → com}/mqtt/config.tpl.json +3 -5
  34. package/com/mqtt/drive.js +676 -0
  35. package/com/mqtt/index.js +822 -0
  36. package/com/mqtt/mm_mqtt.js +425 -0
  37. package/com/mqtt/script.tpl.js +723 -0
  38. package/com/nav/com.json +5 -0
  39. package/com/nav/config.tpl.json +84 -0
  40. package/com/nav/drive.js +702 -0
  41. package/com/nav/index.js +231 -0
  42. package/{core/com → com}/nav/tpl/admin_pc/page_config.vue +280 -280
  43. package/{core/com → com}/nav/tpl/admin_pc/page_config_form.vue +194 -194
  44. package/com/nav/tpl/admin_pc/page_form.vue +180 -0
  45. package/com/nav/tpl/admin_pc/page_view.vue +124 -0
  46. package/com/nav/tpl/dev_pc/page_default.vue +247 -0
  47. package/com/nav/tpl/dev_pc/page_type.vue +313 -0
  48. package/com/nav/tpl/home_pc/page_default.vue +234 -0
  49. package/com/nav/tpl/home_pc/page_form.vue +137 -0
  50. package/com/nav/tpl/home_pc/page_list.vue +234 -0
  51. package/com/nav/tpl/home_pc/page_nav.vue +221 -0
  52. package/com/nav/tpl/home_pc/page_type.vue +234 -0
  53. package/com/nav/tpl/home_pc/page_view.vue +125 -0
  54. package/com/nav/tpl/home_phone/page_channel.vue +234 -0
  55. package/com/nav/tpl/home_phone/page_default.vue +234 -0
  56. package/com/nav/tpl/home_phone/page_form.vue +137 -0
  57. package/com/nav/tpl/home_phone/page_nav.vue +237 -0
  58. package/com/nav/tpl/home_phone/page_type.vue +234 -0
  59. package/com/nav/tpl/home_phone/page_view.vue +125 -0
  60. package/com/nav/viewmodel.js +446 -0
  61. package/com/param/com.json +5 -0
  62. package/{core/com → com}/param/config.tpl.json +7 -1
  63. package/com/param/drive.js +502 -0
  64. package/com/param/index.js +155 -0
  65. package/com/param/script.tpl.js +12 -0
  66. package/com/pendant/com.json +5 -0
  67. package/{core/com/component → com/pendant}/config.tpl.json +15 -13
  68. package/com/pendant/drive.js +204 -0
  69. package/com/pendant/index.js +441 -0
  70. package/com/pendant/pendant.html +16 -0
  71. package/com/pendant/script.tpl.js +18 -0
  72. package/com/socket/com.json +5 -0
  73. package/com/socket/config.tpl.json +12 -0
  74. package/com/socket/drive.js +651 -0
  75. package/com/socket/index.js +351 -0
  76. package/com/socket/script.tpl.js +41 -0
  77. package/com/sql/com.json +5 -0
  78. package/{core/com → com}/sql/config.tpl.json +13 -9
  79. package/com/sql/drive.js +1259 -0
  80. package/com/sql/index.js +150 -0
  81. package/com/sql/script.tpl.js +47 -0
  82. package/com/static/com.json +5 -0
  83. package/{core/com → com}/static/config.tpl.json +10 -6
  84. package/com/static/drive.js +194 -0
  85. package/com/static/index.js +226 -0
  86. package/com/static/script.tpl.js +28 -0
  87. package/com/task/com.json +5 -0
  88. package/{core/com → com}/task/config.tpl.json +4 -6
  89. package/com/task/drive.js +405 -0
  90. package/com/task/index.js +148 -0
  91. package/com/task/script.tpl.js +37 -0
  92. package/com/template/com.json +5 -0
  93. package/com/template/config.tpl.json +16 -0
  94. package/com/template/drive.js +80 -0
  95. package/com/template/index.js +141 -0
  96. package/com.js +156 -0
  97. package/common/README.md +2 -0
  98. package/common/handler/msg/handler.json +22 -0
  99. package/common/handler/msg/index.js +23 -0
  100. package/common/handler/player/handler.json +22 -0
  101. package/common/handler/player/index.js +287 -0
  102. package/common/handler/user/handler.json +22 -0
  103. package/common/handler/user/index.js +23 -0
  104. package/common/middleware/web_after/index.js +29 -0
  105. package/common/middleware/web_after/middleware.json +9 -0
  106. package/common/middleware/web_base/index.js +113 -0
  107. package/common/middleware/web_base/middleware.json +19 -0
  108. package/common/middleware/web_before/index.js +33 -0
  109. package/common/middleware/web_before/middleware.json +9 -0
  110. package/common/middleware/web_cors/index.js +87 -0
  111. package/common/middleware/web_cors/middleware.json +24 -0
  112. package/common/middleware/web_error/index.js +119 -0
  113. package/common/middleware/web_error/middleware.json +18 -0
  114. package/common/middleware/web_ip/index.js +15 -0
  115. package/common/middleware/web_ip/middleware.json +14 -0
  116. package/common/middleware/web_logger/index.js +156 -0
  117. package/common/middleware/web_logger/middleware.json +14 -0
  118. package/common/middleware/web_main/index.js +24 -0
  119. package/common/middleware/web_main/middleware.json +9 -0
  120. package/common/middleware/web_static/index.js +73 -0
  121. package/common/middleware/web_static/middleware.json +54 -0
  122. package/common/middleware/web_waf/index.js +385 -0
  123. package/common/middleware/web_waf/middleware.json +13 -0
  124. package/common/model/msg/index.js +88 -0
  125. package/common/model/msg/model.json +401 -0
  126. package/common/model/player/index.js +63 -0
  127. package/common/model/player/model.json +185 -0
  128. package/common/model/user/index.js +11 -0
  129. package/common/model/user/model.json +219 -0
  130. package/core/app/config.tpl.json +67 -0
  131. package/core/app/index.js +632 -0
  132. package/core/app/script.tpl.js +52 -0
  133. package/core/channel/index.js +899 -0
  134. package/core/channel/matcher.js +585 -0
  135. package/core/com/config.tpl.json +16 -0
  136. package/core/com/index.js +74 -0
  137. package/core/com/script.tpl.js +5 -0
  138. package/core/component/component.js +42 -0
  139. package/core/component/config.tpl.json +63 -0
  140. package/core/component/index.js +273 -0
  141. package/core/component/script.tpl.js +19 -0
  142. package/core/controller/config.tpl.json +14 -0
  143. package/core/controller/index.js +373 -0
  144. package/core/controller/script.tpl.js +27 -0
  145. package/core/factory/config.tpl.json +14 -0
  146. package/core/factory/entity.js +275 -0
  147. package/core/factory/index.js +241 -0
  148. package/core/factory/script.tpl.js +16 -0
  149. package/core/game/bat/index.js +137 -0
  150. package/core/game/bat/world.js +622 -0
  151. package/core/game/config.tpl.json +16 -0
  152. package/core/game/entity_admin.js +230 -0
  153. package/core/game/index.js +186 -0
  154. package/core/handler/config.tpl.json +22 -0
  155. package/core/handler/index.js +181 -0
  156. package/core/handler/script.tpl.js +23 -0
  157. package/core/logic/config.tpl.json +14 -0
  158. package/core/logic/index.js +59 -0
  159. package/core/logic/script.tpl.js +19 -0
  160. package/core/middleware/config.tpl.json +16 -0
  161. package/core/middleware/index.js +125 -0
  162. package/core/middleware/script.tpl.js +37 -0
  163. package/core/mod/config.tpl.json +22 -0
  164. package/core/mod/index.js +130 -0
  165. package/core/mod/script.tpl.js +34 -0
  166. package/core/model/config.tpl.json +219 -0
  167. package/core/model/index.js +272 -0
  168. package/core/model/model.js +27 -0
  169. package/core/model/script.tpl.js +20 -0
  170. package/core/notifier/config.tpl.json +14 -0
  171. package/core/notifier/index.js +77 -0
  172. package/core/notifier/script.tpl.js +20 -0
  173. package/core/plugin/config.tpl.json +24 -0
  174. package/core/plugin/index.js +232 -0
  175. package/core/plugin/script.tpl.js +51 -0
  176. package/core/pusher/config.tpl.json +14 -0
  177. package/core/pusher/index.js +161 -0
  178. package/core/pusher/script.tpl.js +20 -0
  179. package/core/room/bat/index.js +170 -0
  180. package/core/room/bat/room.js +524 -0
  181. package/core/room/config.tpl.json +20 -0
  182. package/core/room/index.js +249 -0
  183. package/core/room/room.js +61 -0
  184. package/core/scene/config.tpl.json +14 -0
  185. package/core/scene/index.js +466 -0
  186. package/core/scene/loop.js +1255 -0
  187. package/core/scene/map.js +28 -0
  188. package/core/scene/script.tpl.js +22 -0
  189. package/core/sender/config.tpl.json +14 -0
  190. package/core/sender/index.js +79 -0
  191. package/core/sender/script.tpl.js +20 -0
  192. package/core/service/config.tpl.json +14 -0
  193. package/core/service/index.js +100 -0
  194. package/core/service/script.tpl.js +25 -0
  195. package/core/store/config.tpl.json +26 -0
  196. package/core/store/index.js +1755 -0
  197. package/core/store/script.tpl.js +22 -0
  198. package/core/store/sql.js +1464 -0
  199. package/core/system/config.tpl.json +18 -0
  200. package/core/system/index.js +312 -0
  201. package/core/system/script.tpl.js +77 -0
  202. package/core/view/config.tpl.json +14 -0
  203. package/core/view/index.js +91 -0
  204. package/core/view/script.tpl.js +20 -0
  205. package/core/zone/bat/index.js +725 -0
  206. package/core/zone/config.tpl.json +54 -0
  207. package/core/zone/index.js +614 -0
  208. package/core/zone/script.tpl.js +10 -0
  209. package/core/zone/zone_bat.js +136 -0
  210. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +24 -0
  211. package/index.js +17 -314
  212. package/os.js +57 -0
  213. package/package.json +60 -58
  214. package/server.js +598 -0
  215. package/README.en.md +0 -36
  216. package/conf.json +0 -3
  217. package/core/base/mqtt/index.js +0 -1107
  218. package/core/base/mqtt/lib.js +0 -40
  219. package/core/base/web/index.js +0 -243
  220. package/core/com/api/com.json +0 -4
  221. package/core/com/api/drive.js +0 -668
  222. package/core/com/api/index.js +0 -108
  223. package/core/com/api/oauth.js +0 -158
  224. package/core/com/api/script.js +0 -32
  225. package/core/com/app/README.md +0 -3
  226. package/core/com/app/com.json +0 -4
  227. package/core/com/app/config.tpl.json +0 -16
  228. package/core/com/app/drive.js +0 -309
  229. package/core/com/app/index.js +0 -211
  230. package/core/com/app/script.js +0 -155
  231. package/core/com/cmd/com.json +0 -4
  232. package/core/com/cmd/config.tpl.json +0 -66
  233. package/core/com/cmd/drive.js +0 -513
  234. package/core/com/cmd/index.js +0 -354
  235. package/core/com/cmd/old/5w2h.js +0 -54
  236. package/core/com/cmd/old/drive.js +0 -423
  237. package/core/com/cmd/script.js +0 -11
  238. package/core/com/component/README.md +0 -3
  239. package/core/com/component/com.json +0 -4
  240. package/core/com/component/component.html +0 -16
  241. package/core/com/component/drive.js +0 -197
  242. package/core/com/component/index.js +0 -312
  243. package/core/com/component/script.js +0 -18
  244. package/core/com/db/com.json +0 -4
  245. package/core/com/db/drive.js +0 -1160
  246. package/core/com/db/index.js +0 -176
  247. package/core/com/event/com.json +0 -4
  248. package/core/com/event/drive.js +0 -133
  249. package/core/com/event/index.js +0 -345
  250. package/core/com/event/script.js +0 -26
  251. package/core/com/eventer/com.js +0 -477
  252. package/core/com/eventer/com.json +0 -4
  253. package/core/com/middleware/com.js +0 -153
  254. package/core/com/middleware/com.json +0 -4
  255. package/core/com/middleware/config.tpl.json +0 -8
  256. package/core/com/middleware/script.js +0 -9
  257. package/core/com/mqtt/com.json +0 -4
  258. package/core/com/mqtt/drive.js +0 -600
  259. package/core/com/mqtt/index.js +0 -572
  260. package/core/com/mqtt/mm_mqtt.js +0 -330
  261. package/core/com/mqtt/script.js +0 -604
  262. package/core/com/msg/com.js +0 -296
  263. package/core/com/msg/com.json +0 -4
  264. package/core/com/nav/com.json +0 -4
  265. package/core/com/nav/config.tpl.json +0 -75
  266. package/core/com/nav/drive.js +0 -549
  267. package/core/com/nav/index.js +0 -182
  268. package/core/com/nav/tpl/admin_pc/page_form.vue +0 -180
  269. package/core/com/nav/tpl/admin_pc/page_view.vue +0 -124
  270. package/core/com/nav/tpl/dev_pc/page_default.vue +0 -247
  271. package/core/com/nav/tpl/dev_pc/page_type.vue +0 -313
  272. package/core/com/nav/tpl/home_pc/page_default.vue +0 -234
  273. package/core/com/nav/tpl/home_pc/page_form.vue +0 -137
  274. package/core/com/nav/tpl/home_pc/page_list.vue +0 -234
  275. package/core/com/nav/tpl/home_pc/page_nav.vue +0 -221
  276. package/core/com/nav/tpl/home_pc/page_type.vue +0 -234
  277. package/core/com/nav/tpl/home_pc/page_view.vue +0 -125
  278. package/core/com/nav/tpl/home_phone/page_channel.vue +0 -234
  279. package/core/com/nav/tpl/home_phone/page_default.vue +0 -234
  280. package/core/com/nav/tpl/home_phone/page_form.vue +0 -137
  281. package/core/com/nav/tpl/home_phone/page_nav.vue +0 -237
  282. package/core/com/nav/tpl/home_phone/page_type.vue +0 -234
  283. package/core/com/nav/tpl/home_phone/page_view.vue +0 -125
  284. package/core/com/nav/viewmodel.js +0 -296
  285. package/core/com/param/drive.js +0 -366
  286. package/core/com/param/index.js +0 -80
  287. package/core/com/param/script.js +0 -12
  288. package/core/com/param/test.js +0 -98
  289. package/core/com/plugin/README.md +0 -3
  290. package/core/com/plugin/com.json +0 -4
  291. package/core/com/plugin/config.tpl.json +0 -26
  292. package/core/com/plugin/drive.js +0 -536
  293. package/core/com/plugin/index.js +0 -259
  294. package/core/com/plugin/script.js +0 -213
  295. package/core/com/rpc/com.json +0 -4
  296. package/core/com/rpc/drive.js +0 -160
  297. package/core/com/rpc/index.js +0 -87
  298. package/core/com/rpc/rpc.js +0 -118
  299. package/core/com/socket/com.json +0 -4
  300. package/core/com/socket/config.tpl.json +0 -14
  301. package/core/com/socket/drive.js +0 -403
  302. package/core/com/socket/index.js +0 -62
  303. package/core/com/socket/script.js +0 -42
  304. package/core/com/sql/drive.js +0 -1087
  305. package/core/com/sql/index.js +0 -83
  306. package/core/com/sql/script.js +0 -48
  307. package/core/com/static/com.json +0 -4
  308. package/core/com/static/drive.js +0 -220
  309. package/core/com/static/index.js +0 -149
  310. package/core/com/static/script.js +0 -28
  311. package/core/com/task/com.json +0 -4
  312. package/core/com/task/drive.js +0 -403
  313. package/core/com/task/index.js +0 -110
  314. package/core/com/task/script.js +0 -37
  315. package/core/com/timer/com.js +0 -217
  316. package/core/com/timer/com.json +0 -4
  317. package/core/com/tpl/com.js +0 -19
  318. package/core/com/tpl/com.json +0 -4
  319. package/lib/actions.js +0 -50
  320. package/lib/base.js +0 -361
  321. package/lib/com.js +0 -29
  322. package/lib/ref.js +0 -121
  323. package/middleware/mqtt_base/index.js +0 -10
  324. package/middleware/mqtt_base/middleware.json +0 -10
  325. package/middleware/performance/index.js +0 -151
  326. package/middleware/performance/middleware.json +0 -16
  327. package/middleware/security_audit/index.js +0 -549
  328. package/middleware/security_audit/middleware.json +0 -48
  329. package/middleware/security_headers/index.js +0 -487
  330. package/middleware/security_headers/middleware.json +0 -45
  331. package/middleware/waf/index.js +0 -348
  332. package/middleware/waf/middleware.json +0 -10
  333. package/middleware/waf_ddos/index.js +0 -520
  334. package/middleware/waf_ddos/middleware.json +0 -38
  335. package/middleware/waf_ip/index.js +0 -379
  336. package/middleware/waf_ip/middleware.json +0 -49
  337. package/middleware/waf_xss/index.js +0 -269
  338. package/middleware/waf_xss/middleware.json +0 -18
  339. package/middleware/web_after/index.js +0 -33
  340. package/middleware/web_after/middleware.json +0 -9
  341. package/middleware/web_base/index.js +0 -90
  342. package/middleware/web_base/middleware.json +0 -9
  343. package/middleware/web_before/index.js +0 -27
  344. package/middleware/web_before/middleware.json +0 -9
  345. package/middleware/web_check/index.js +0 -28
  346. package/middleware/web_check/middleware.json +0 -9
  347. package/middleware/web_main/index.js +0 -28
  348. package/middleware/web_main/middleware.json +0 -9
  349. package/middleware/web_proxy/index.js +0 -37
  350. package/middleware/web_proxy/middleware.json +0 -9
  351. package/middleware/web_render/index.js +0 -87
  352. package/middleware/web_render/middleware.json +0 -9
  353. package/middleware/web_socket/index.js +0 -34
  354. package/middleware/web_socket/middleware.json +0 -9
  355. package/middleware/web_static/index.js +0 -115
  356. package/middleware/web_static/middleware.json +0 -9
  357. /package/{core/com → com}/api/README.md +0 -0
  358. /package/{core/com → com}/db/README.md +0 -0
  359. /package/{core/com → com}/event/README.md +0 -0
  360. /package/{core/com → com}/mqtt/README.md +0 -0
  361. /package/{core/com → com}/nav/README.md +0 -0
  362. /package/{core/com → com}/nav/tpl/admin_pc/page_channel.vue +0 -0
  363. /package/{core/com → com}/nav/tpl/admin_pc/page_default.vue +0 -0
  364. /package/{core/com → com}/nav/tpl/admin_pc/page_lang.vue +0 -0
  365. /package/{core/com → com}/nav/tpl/admin_pc/page_nav.vue +0 -0
  366. /package/{core/com → com}/nav/tpl/admin_pc/page_table.vue +0 -0
  367. /package/{core/com → com}/nav/tpl/admin_pc/page_type.vue +0 -0
  368. /package/{core/com → com}/nav/tpl/dev_pc/page_channel.vue +0 -0
  369. /package/{core/com → com}/nav/tpl/dev_pc/page_config.vue +0 -0
  370. /package/{core/com → com}/nav/tpl/dev_pc/page_form.vue +0 -0
  371. /package/{core/com → com}/nav/tpl/dev_pc/page_nav.vue +0 -0
  372. /package/{core/com → com}/nav/tpl/dev_pc/page_table.vue +0 -0
  373. /package/{core/com → com}/nav/tpl/home_pc/page_channel.vue +0 -0
  374. /package/{core/com → com}/nav/tpl/home_phone/page_list.vue +0 -0
  375. /package/{core/com → com}/param/README.md +0 -0
  376. /package/{core/com/cmd → com/pendant}/README.md +0 -0
  377. /package/{core/com → com}/socket/README.md +0 -0
  378. /package/{core/com → com}/sql/README.md +0 -0
  379. /package/{core/com → com}/static/README.md +0 -0
  380. /package/{core/com → com}/task/README.md +0 -0
@@ -1,83 +0,0 @@
1
- const Index = require('mm_machine').Index;
2
- const Drive = require('./drive');
3
-
4
- /**
5
- * Sql语句拓展类
6
- * @extends {Index}
7
- * @class
8
- */
9
- class Sql extends Index {
10
- /**
11
- * 构造函数
12
- * @param {String} scope 作用域
13
- * @param {String} title 标题
14
- * @constructor
15
- */
16
- constructor(scope, title) {
17
- super(scope, __dirname);
18
- this.Drive = Drive;
19
- this.type = "sql";
20
- this.title = title;
21
- // 默认启用热更新
22
- this.mode = 3;
23
- }
24
- }
25
- /**
26
- * 排序
27
- */
28
- Sql.prototype.sort = function() {
29
- this.list.sortBy('asc', 'name');
30
- };
31
-
32
- /**
33
- * 执行sql
34
- * @param {String} name 名称
35
- * @param {Object} query 查询参数
36
- * @param {Object} body 修改参数
37
- * @param {Object} db 数据库管理器 (object) 只支持可用sql语句的数据库
38
- * @return {Object} 执行结果
39
- */
40
- Sql.prototype.run = async function(name, query, body, db) {
41
- var obj = this.get(name);
42
- if (obj) {
43
- var ret = await obj.run(query, body, db);
44
- if (this.mode > 4) {
45
- o.exec('reload', o.filename);
46
- }
47
- return ret;
48
- }
49
- return null;
50
- };
51
-
52
- exports.Sql = Sql;
53
-
54
-
55
- /**
56
- * Sql模板池
57
- */
58
- if (!$.pool.sql) {
59
- $.pool.sql = {};
60
- }
61
-
62
- /**
63
- * Sql管理器,用于创建缓存
64
- * @sql {string} scope 作用域
65
- * @param {string} title 标题
66
- * @return {Object} 返回一个缓存类
67
- */
68
- function sql_admin(scope, title) {
69
- if (!scope) {
70
- scope = $.val.scope + '';
71
- }
72
- var obj = $.pool.sql[scope];
73
- if (!obj) {
74
- $.pool.sql[scope] = new Sql(scope, title);
75
- obj = $.pool.sql[scope];
76
- }
77
- return obj;
78
- }
79
-
80
- /**
81
- * @module 导出Sql管理器
82
- */
83
- $.sql_admin = sql_admin;
@@ -1,48 +0,0 @@
1
-
2
- /**
3
- * 执行前, 用于过滤参数
4
- * @param {Object} params 参数对象,包含query和body 如:{ query: {} body: {} }
5
- * @return {Object} 过滤后的参数
6
- */
7
- function before(params) {
8
- return params;
9
- };
10
-
11
- /**
12
- * 验证, 用于判断是否执行
13
- * @param {Object} params 参数对象,包含query和body 如:{ query: {} body: {} }
14
- * @return {Boolean} 验证通过返回true, 失败返回false
15
- */
16
- function check(params) {
17
- return true;
18
- };
19
-
20
- /**
21
- * 执行后 可用于附加执行
22
- * @param {Object} params 参数对象,包含query和body 如:{ query: {} body: {} }
23
- * @param {Object} sql SQL模板对象
24
- * @param {Object} ret 最终执行结果
25
- */
26
- function after(params, sql, ret) {
27
- return ret;
28
- };
29
-
30
- /**
31
- * 执行主函数
32
- * @param {Object} params 参数对象,包含query和body 如:{ query: {} body: {} }
33
- * @return {Object} 返回执行结果
34
- */
35
- function main(params) {
36
- var sql = "";
37
- var ret = null;
38
-
39
- return {
40
- sql,
41
- ret
42
- }
43
- };
44
-
45
- exports.before = before;
46
- exports.main = mian;
47
- exports.after = after;
48
- exports.check = check;
@@ -1,4 +0,0 @@
1
- {
2
- "name": "静态文件管理器",
3
- "script": "./index.js"
4
- }
@@ -1,220 +0,0 @@
1
- const fs = require("fs");
2
- const send = require('koa-send');
3
- const conf = require('mm_config');
4
- const Item = require('mm_machine').Item;
5
-
6
- /**
7
- * Plugin插件驱动类
8
- * @extends {Item}
9
- * @class
10
- */
11
- class Drive extends Item {
12
- /**
13
- * 构造函数
14
- * @param {String} dir 当前目录
15
- * @param {Object} config 配置
16
- * @constructor
17
- */
18
- constructor(dir) {
19
- super(dir, __dirname);
20
- this.default_file = "./static.json";
21
- // 更新并重载
22
- this.mode = 3;
23
- /* 通用项 */
24
- // 配置参数
25
- this.config = {
26
- // 名称, 由中英文和下“_”组成, 用于修改或卸载 例如: demo
27
- "name": "",
28
- // 状态 0未启用,1启用
29
- "state": 1,
30
- // 标题
31
- "title": "",
32
- // 应用名
33
- "app": "",
34
- // 插件
35
- "plugin": "",
36
- // 物理根目录
37
- "root": "",
38
- // 路由根路径
39
- "path": "/",
40
- // 首页
41
- "index": "index.html",
42
- // 重定向
43
- "redirect": true,
44
- // 缓存保留10分钟
45
- "maxAge": 1000 * 60 * 10,
46
- // 是否保持不变
47
- "immutable": true,
48
- // 是否启用brotli压缩
49
- "brotli": true,
50
- // 是否启用gizp压缩
51
- "gzip": true,
52
- // 允许访问的拓展名
53
- "extensions": null,
54
- // 处理函数
55
- "func_file": "",
56
- // 执行函数名
57
- "func_name": "",
58
- // 是否将ES6转换AMD
59
- "convert_amd": true
60
- };
61
- }
62
- }
63
-
64
- /**
65
- * 发送文件函数
66
- */
67
- Drive.prototype.send = send;
68
-
69
- /**
70
- * 加载配置对象前
71
- * @param {Object} config 配置对象
72
- */
73
- Drive.prototype.set_config = function(config) {
74
- if (config) {
75
- if (config.maxAge) {
76
- config.maxAge *= 1000;
77
- }
78
- }
79
- this.config = conf(Object.assign({}, this.config, config || {}), this.filename);
80
- this.run_mode(this.config.convert_amd);
81
- };
82
-
83
- /**
84
- * 执行前
85
- * @param {Object} ctx http请求上下文
86
- * @param {Object} path 文件路径
87
- */
88
- Drive.prototype.before = async function(ctx, path) {};
89
-
90
- /**
91
- * 执行
92
- * @param {Object} ctx http请求上下文
93
- * @param {Object} path 文件路径
94
- * @return {Boolean} 成功发送返回true,失败返回false
95
- */
96
- Drive.prototype.main = async function(ctx, path) {
97
- return send(ctx, path, this.config);
98
- };
99
-
100
- /**
101
- * 执行后
102
- * @param {Object} ctx http请求上下文
103
- * @param {Object} path 文件路径
104
- */
105
- Drive.prototype.after = async function(ctx, path) {};
106
-
107
- /**
108
- * 切换运行模式
109
- * @param {Boolean} convert_amd 是否将ES6转换AMD
110
- */
111
- Drive.prototype.run_mode = async function(convert_amd) {
112
- var cg = this.config;
113
- if (convert_amd) {
114
- this.main = async function main(ctx, path) {
115
- if (path.endsWith('.vue') || path.endsWith('.js')) {
116
- var file = ("." + path).fullname(this.dir);
117
- var code;
118
- var str = file.loadText();
119
- try {
120
- if (str && str.indexOf('@/') !== -1) {
121
- var arr = ctx.request.href.split('/');
122
- var word = arr[0] + "//" + arr[2] + "/";
123
- str = str.replaceAll('@/', word);
124
- }
125
- code = $.es6_to_amd(str);
126
- } catch (e) {
127
- throw e
128
- }
129
- if (code) {
130
- if (path.endsWith('.js')) {
131
- ctx.response.type = "application/javascript; charset=utf-8";
132
- } else {
133
- ctx.response.type = "text/html; charset=utf-8";
134
- }
135
- ctx.body = code;
136
- var age = cg.maxAge;
137
- if (age) {
138
- if (cg.immutable) {
139
- ctx.set('Cache-Control', 'max-age=' + (age / 1000) + ",immutable");
140
- } else {
141
- ctx.set('Cache-Control', 'max-age=' + (age / 1000));
142
- }
143
- }
144
- return file;
145
- }
146
- } else {
147
- return send(ctx, path, cg);
148
- }
149
- }
150
- } else {
151
- this.main = async function(ctx, path) {
152
- return send(ctx, path, cg);
153
- }
154
- }
155
- return null;
156
- };
157
-
158
- /**
159
- * 执行静态文件
160
- * @param {Object} ctx Http请求上下文
161
- * @param {Object} path 路由路径
162
- * @param {Object} next 跳过当前函数
163
- * @return {String} 执行成功返回文件路径
164
- */
165
- Drive.prototype.run = async function(ctx, path, next) {
166
- var done;
167
- var cg = this.config;
168
- var ph = cg.path;
169
- try {
170
- if (path.startWith(ph)) {
171
- var p = path.replace(ph, '');
172
- if (p.indexOf('.') !== -1) {
173
- this.before(ctx, p);
174
- try {
175
- done = await this.main(ctx, p);
176
- this.after(ctx, p, done);
177
- } catch (err) {
178
- if (err.status !== 404) {
179
- throw err;
180
- }
181
- }
182
- } else {
183
- done = ' ';
184
- if (ctx.status === 404) {
185
- var file;
186
-
187
- // 取到物理路径
188
- var root = this.dir;
189
- var dir = p.fullname(root);
190
- if (!p) {
191
- file = dir + '/' + cg.index;
192
- } else if (p.endWith('/')) {
193
- file = dir + cg.index;
194
- } else {
195
- file = dir + '.html';
196
- }
197
- if (file.hasFile()) {
198
- p = file.replace(root, '');
199
- this.before(ctx, p);
200
- done = await this.main(ctx, p);
201
- this.after(ctx, p, done);
202
- } else if (cg.redirect) {
203
- var file = root + '/index.html';
204
- if (file.hasFile()) {
205
- p = '/index.html';
206
- this.before(ctx, p);
207
- done = await this.main(ctx, p);
208
- this.after(ctx, p, done);
209
- }
210
- }
211
- }
212
- }
213
- }
214
- } catch (err) {
215
- $.log.error("静态文件执行错误", this.config.name, err);
216
- }
217
- return done;
218
- };
219
-
220
- module.exports = Drive;
@@ -1,149 +0,0 @@
1
- const Index = require('mm_machine').Index;
2
-
3
- const Drive = require('./drive');
4
- const {
5
- resolve,
6
- join
7
- } = require('path');
8
-
9
- /**
10
- * 静态文件管理类
11
- * @extends {Index}
12
- * @class
13
- */
14
- class Static extends Index {
15
- /**
16
- * 构造函数
17
- * @param {Object} scope 作用域
18
- * @param {String} title 标题
19
- * @constructor
20
- */
21
- constructor(scope, title) {
22
- super(scope, __dirname);
23
- this.Drive = Drive;
24
-
25
- // 更新并重载
26
- this.mode = 3;
27
- this.type = "static";
28
- this.title = title;
29
- var $this = this;
30
-
31
- /**
32
- * 执行静态文件处理了
33
- * @param {Object} ctx Http请求上下文
34
- * @param {Object} next 跳过函数
35
- */
36
- this.run = async function(ctx, next) {
37
- var done;
38
- var md = ctx.method;
39
- var path = ctx.path;
40
- if (md === 'GET' || md === 'HEAD') {
41
- var list = $this.list;
42
- var len = list.length;
43
- if (path.indexOf('.') !== -1) {
44
- for (var i = 0; i < len; i++) {
45
- var o = list[i];
46
- if (o.config.state === 1) {
47
- done = await o.run(ctx, path, next);
48
- if (done) {
49
- break;
50
- }
51
- }
52
- }
53
- await next();
54
- } else {
55
- await next();
56
- var q = ctx.request.querystring;
57
- for (var i = 0; i < len; i++) {
58
- var o = list[i];
59
- if (o.config.state === 1) {
60
- var p = o.config.path;
61
- if (path === p) {
62
- done = ' ';
63
- if (ctx.status === 404) {
64
- if (q) {
65
- ctx.redirect(p + '/?' + q);
66
- } else {
67
- ctx.redirect(p + '/');
68
- }
69
- }
70
- break;
71
- } else {
72
- done = await o.run(ctx, path, next);
73
- if (done) {
74
- break;
75
- }
76
- }
77
- }
78
- }
79
- return
80
- }
81
- } else {
82
- await next();
83
- }
84
- };
85
- }
86
- }
87
-
88
- /**
89
- * 获取静态对象
90
- * @param {Object} dir 目录
91
- * @return {Drive} 静态文件驱动类
92
- */
93
- Static.prototype.getObj = async function(dir) {
94
- var d = dir;
95
- var app = d.between(join('app/'), join('/'));
96
- var plugin = d.between(join('/plugin/'), join('/'));
97
- var path = '/' + app;
98
- if (plugin) {
99
- path += '/' + plugin;
100
- }
101
- var obj = {
102
- app: app,
103
- plugin: plugin,
104
- root: d.substring(0, d.length - 1).fullname(),
105
- path: path
106
- };
107
- var file = ("./" + this.type + ".json").fullname(obj.root);
108
- var drive = new Drive(dir, obj);
109
- await drive.exec('load_config', file);
110
- await drive.exec('set_config', obj);
111
- return drive
112
- };
113
-
114
- /**
115
- * 加载接口
116
- * @param {String} path 加载的路径
117
- */
118
- Static.prototype.update_config_all = async function(path) {
119
- if (!path) {
120
- path = $.runPath + 'app' + $.slash;
121
- }
122
- // 获取所有应用路径
123
- var search_dir = "static";
124
- var list_scope = $.dir.getAll(path, search_dir);
125
- // 遍历目录路径
126
- var _this = this;
127
- for (var i = 0; i < list_scope.length; i++) {
128
- var dir = list_scope[i];
129
- var obj = await _this.getObj(dir);
130
- _this.list.push(obj);
131
- }
132
- };
133
-
134
- /**
135
- * 排序
136
- */
137
- Static.prototype.sort = function() {
138
- this.list.sort(function(o1, o2) {
139
- var p1 = o1.config.path;
140
- var p2 = o2.config.path;
141
- return p2.length - p1.length;
142
- });
143
- };
144
-
145
- if (!$.Static) {
146
- $.Static = Static;
147
- }
148
-
149
- module.exports = Static;
@@ -1,28 +0,0 @@
1
- /**
2
- * 执行前
3
- * @param {Object} ctx http请求上下文
4
- * @param {Object} path 文件路径
5
- */
6
- async function before(ctx, path) {};
7
-
8
- /**
9
- * 执行
10
- * @param {Object} ctx http请求上下文
11
- * @param {Object} path 文件路径
12
- * @return {Boolean} 成功发送返回true,失败返回false
13
- */
14
- async function main(ctx, path) {
15
- return this.send(ctx, path, this.config);
16
- };
17
-
18
- /**
19
- * 执行后
20
- * @param {Object} ctx http请求上下文
21
- * @param {Object} path 文件路径
22
- */
23
- async function after(ctx, path) {};
24
-
25
-
26
- exports.before = before;
27
- exports.main = main;
28
- exports.after = after;
@@ -1,4 +0,0 @@
1
- {
2
- "name": "定时任务管理器",
3
- "script": "./index.js"
4
- }