mm_os 3.3.1 → 4.0.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 (380) hide show
  1. package/LICENSE +21 -201
  2. package/README.md +498 -99
  3. package/README_EN.md +505 -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/{core/com → com}/event/README.md +4 -4
  28. package/com/event/com.json +5 -0
  29. package/{core/com → com}/event/config.tpl.json +18 -18
  30. package/com/event/drive.js +59 -0
  31. package/com/event/index.js +409 -0
  32. package/com/event/script.tpl.js +23 -0
  33. package/com/mqtt/com.json +5 -0
  34. package/{core/com → com}/mqtt/config.tpl.json +3 -5
  35. package/com/mqtt/drive.js +676 -0
  36. package/com/mqtt/index.js +822 -0
  37. package/com/mqtt/mm_mqtt.js +425 -0
  38. package/com/mqtt/script.tpl.js +723 -0
  39. package/com/nav/com.json +5 -0
  40. package/com/nav/config.tpl.json +84 -0
  41. package/com/nav/drive.js +702 -0
  42. package/com/nav/index.js +231 -0
  43. package/{core/com → com}/nav/tpl/admin_pc/page_config.vue +280 -280
  44. package/{core/com → com}/nav/tpl/admin_pc/page_config_form.vue +194 -194
  45. package/com/nav/tpl/admin_pc/page_form.vue +180 -0
  46. package/com/nav/tpl/admin_pc/page_view.vue +124 -0
  47. package/com/nav/tpl/dev_pc/page_default.vue +247 -0
  48. package/com/nav/tpl/dev_pc/page_type.vue +313 -0
  49. package/com/nav/tpl/home_pc/page_default.vue +234 -0
  50. package/com/nav/tpl/home_pc/page_form.vue +137 -0
  51. package/com/nav/tpl/home_pc/page_list.vue +234 -0
  52. package/com/nav/tpl/home_pc/page_nav.vue +221 -0
  53. package/com/nav/tpl/home_pc/page_type.vue +234 -0
  54. package/com/nav/tpl/home_pc/page_view.vue +125 -0
  55. package/com/nav/tpl/home_phone/page_channel.vue +234 -0
  56. package/com/nav/tpl/home_phone/page_default.vue +234 -0
  57. package/com/nav/tpl/home_phone/page_form.vue +137 -0
  58. package/com/nav/tpl/home_phone/page_nav.vue +237 -0
  59. package/com/nav/tpl/home_phone/page_type.vue +234 -0
  60. package/com/nav/tpl/home_phone/page_view.vue +125 -0
  61. package/com/nav/viewmodel.js +446 -0
  62. package/com/param/com.json +5 -0
  63. package/{core/com → com}/param/config.tpl.json +7 -1
  64. package/com/param/drive.js +502 -0
  65. package/com/param/index.js +155 -0
  66. package/com/param/script.tpl.js +12 -0
  67. package/com/pendant/com.json +5 -0
  68. package/{core/com/component → com/pendant}/config.tpl.json +15 -13
  69. package/com/pendant/drive.js +204 -0
  70. package/com/pendant/index.js +441 -0
  71. package/com/pendant/pendant.html +16 -0
  72. package/com/pendant/script.tpl.js +18 -0
  73. package/com/socket/com.json +5 -0
  74. package/com/socket/config.tpl.json +12 -0
  75. package/com/socket/drive.js +651 -0
  76. package/com/socket/index.js +351 -0
  77. package/com/socket/script.tpl.js +41 -0
  78. package/com/sql/com.json +5 -0
  79. package/{core/com → com}/sql/config.tpl.json +13 -9
  80. package/com/sql/drive.js +1259 -0
  81. package/com/sql/index.js +150 -0
  82. package/com/sql/script.tpl.js +47 -0
  83. package/com/static/com.json +5 -0
  84. package/{core/com → com}/static/config.tpl.json +10 -6
  85. package/com/static/drive.js +194 -0
  86. package/com/static/index.js +226 -0
  87. package/com/static/script.tpl.js +28 -0
  88. package/com/task/com.json +5 -0
  89. package/{core/com → com}/task/config.tpl.json +4 -6
  90. package/com/task/drive.js +405 -0
  91. package/com/task/index.js +148 -0
  92. package/com/task/script.tpl.js +37 -0
  93. package/com/template/com.json +5 -0
  94. package/com/template/config.tpl.json +16 -0
  95. package/com/template/drive.js +80 -0
  96. package/com/template/index.js +141 -0
  97. package/com.js +156 -0
  98. package/common/README.md +2 -0
  99. package/common/handler/msg/handler.json +22 -0
  100. package/common/handler/msg/index.js +23 -0
  101. package/common/handler/player/handler.json +22 -0
  102. package/common/handler/player/index.js +287 -0
  103. package/common/handler/user/handler.json +22 -0
  104. package/common/handler/user/index.js +23 -0
  105. package/common/middleware/web_after/index.js +29 -0
  106. package/common/middleware/web_after/middleware.json +9 -0
  107. package/common/middleware/web_base/index.js +113 -0
  108. package/common/middleware/web_base/middleware.json +19 -0
  109. package/common/middleware/web_before/index.js +33 -0
  110. package/common/middleware/web_before/middleware.json +9 -0
  111. package/common/middleware/web_cors/index.js +87 -0
  112. package/common/middleware/web_cors/middleware.json +24 -0
  113. package/common/middleware/web_error/index.js +119 -0
  114. package/common/middleware/web_error/middleware.json +18 -0
  115. package/common/middleware/web_ip/index.js +15 -0
  116. package/common/middleware/web_ip/middleware.json +14 -0
  117. package/common/middleware/web_logger/index.js +156 -0
  118. package/common/middleware/web_logger/middleware.json +14 -0
  119. package/common/middleware/web_main/index.js +24 -0
  120. package/common/middleware/web_main/middleware.json +9 -0
  121. package/common/middleware/web_static/index.js +73 -0
  122. package/common/middleware/web_static/middleware.json +54 -0
  123. package/common/middleware/web_waf/index.js +385 -0
  124. package/common/middleware/web_waf/middleware.json +13 -0
  125. package/common/model/msg/index.js +88 -0
  126. package/common/model/msg/model.json +401 -0
  127. package/common/model/player/index.js +63 -0
  128. package/common/model/player/model.json +185 -0
  129. package/common/model/user/index.js +11 -0
  130. package/common/model/user/model.json +219 -0
  131. package/core/app/config.tpl.json +67 -0
  132. package/core/app/index.js +632 -0
  133. package/core/app/script.tpl.js +52 -0
  134. package/core/channel/index.js +899 -0
  135. package/core/channel/matcher.js +585 -0
  136. package/core/com/config.tpl.json +16 -0
  137. package/core/com/index.js +74 -0
  138. package/core/com/script.tpl.js +5 -0
  139. package/core/component/component.js +42 -0
  140. package/core/component/config.tpl.json +63 -0
  141. package/core/component/index.js +273 -0
  142. package/core/component/script.tpl.js +19 -0
  143. package/core/controller/config.tpl.json +14 -0
  144. package/core/controller/index.js +373 -0
  145. package/core/controller/script.tpl.js +27 -0
  146. package/core/factory/config.tpl.json +14 -0
  147. package/core/factory/entity.js +275 -0
  148. package/core/factory/index.js +241 -0
  149. package/core/factory/script.tpl.js +16 -0
  150. package/core/game/bat/index.js +137 -0
  151. package/core/game/bat/world.js +622 -0
  152. package/core/game/config.tpl.json +16 -0
  153. package/core/game/entity_admin.js +230 -0
  154. package/core/game/index.js +186 -0
  155. package/core/handler/config.tpl.json +22 -0
  156. package/core/handler/index.js +181 -0
  157. package/core/handler/script.tpl.js +23 -0
  158. package/core/logic/config.tpl.json +14 -0
  159. package/core/logic/index.js +59 -0
  160. package/core/logic/script.tpl.js +19 -0
  161. package/core/middleware/config.tpl.json +16 -0
  162. package/core/middleware/index.js +125 -0
  163. package/core/middleware/script.tpl.js +37 -0
  164. package/core/mod/config.tpl.json +22 -0
  165. package/core/mod/index.js +130 -0
  166. package/core/mod/script.tpl.js +34 -0
  167. package/core/model/config.tpl.json +219 -0
  168. package/core/model/index.js +272 -0
  169. package/core/model/model.js +27 -0
  170. package/core/model/script.tpl.js +20 -0
  171. package/core/notifier/config.tpl.json +14 -0
  172. package/core/notifier/index.js +77 -0
  173. package/core/notifier/script.tpl.js +20 -0
  174. package/core/plugin/config.tpl.json +24 -0
  175. package/core/plugin/index.js +232 -0
  176. package/core/plugin/script.tpl.js +51 -0
  177. package/core/pusher/config.tpl.json +14 -0
  178. package/core/pusher/index.js +161 -0
  179. package/core/pusher/script.tpl.js +20 -0
  180. package/core/room/bat/index.js +170 -0
  181. package/core/room/bat/room.js +524 -0
  182. package/core/room/config.tpl.json +20 -0
  183. package/core/room/index.js +249 -0
  184. package/core/room/room.js +61 -0
  185. package/core/scene/config.tpl.json +14 -0
  186. package/core/scene/index.js +466 -0
  187. package/core/scene/loop.js +1255 -0
  188. package/core/scene/map.js +28 -0
  189. package/core/scene/script.tpl.js +22 -0
  190. package/core/sender/config.tpl.json +14 -0
  191. package/core/sender/index.js +79 -0
  192. package/core/sender/script.tpl.js +20 -0
  193. package/core/service/config.tpl.json +14 -0
  194. package/core/service/index.js +100 -0
  195. package/core/service/script.tpl.js +25 -0
  196. package/core/store/config.tpl.json +26 -0
  197. package/core/store/index.js +1755 -0
  198. package/core/store/script.tpl.js +22 -0
  199. package/core/store/sql.js +1464 -0
  200. package/core/system/config.tpl.json +18 -0
  201. package/core/system/index.js +312 -0
  202. package/core/system/script.tpl.js +77 -0
  203. package/core/view/config.tpl.json +14 -0
  204. package/core/view/index.js +91 -0
  205. package/core/view/script.tpl.js +20 -0
  206. package/core/zone/bat/index.js +725 -0
  207. package/core/zone/config.tpl.json +54 -0
  208. package/core/zone/index.js +614 -0
  209. package/core/zone/script.tpl.js +10 -0
  210. package/core/zone/zone_bat.js +136 -0
  211. package/core//345/237/272/347/261/273/346/250/241/345/235/227/346/270/205/345/215/225.md +24 -0
  212. package/index.js +17 -333
  213. package/os.js +57 -0
  214. package/package.json +65 -55
  215. package/server.js +598 -0
  216. package/README.en.md +0 -36
  217. package/conf.json +0 -3
  218. package/core/base/mqtt/index.js +0 -1110
  219. package/core/base/mqtt/lib.js +0 -40
  220. package/core/base/web/index.js +0 -245
  221. package/core/com/api/com.json +0 -4
  222. package/core/com/api/drive.js +0 -668
  223. package/core/com/api/index.js +0 -108
  224. package/core/com/api/oauth.js +0 -158
  225. package/core/com/api/script.js +0 -32
  226. package/core/com/app/README.md +0 -3
  227. package/core/com/app/com.json +0 -4
  228. package/core/com/app/config.tpl.json +0 -16
  229. package/core/com/app/drive.js +0 -309
  230. package/core/com/app/index.js +0 -211
  231. package/core/com/app/script.js +0 -155
  232. package/core/com/cmd/com.json +0 -4
  233. package/core/com/cmd/config.tpl.json +0 -66
  234. package/core/com/cmd/drive.js +0 -513
  235. package/core/com/cmd/index.js +0 -354
  236. package/core/com/cmd/old/5w2h.js +0 -54
  237. package/core/com/cmd/old/drive.js +0 -423
  238. package/core/com/cmd/script.js +0 -11
  239. package/core/com/component/README.md +0 -3
  240. package/core/com/component/com.json +0 -4
  241. package/core/com/component/component.html +0 -16
  242. package/core/com/component/drive.js +0 -197
  243. package/core/com/component/index.js +0 -312
  244. package/core/com/component/script.js +0 -18
  245. package/core/com/db/com.json +0 -4
  246. package/core/com/db/drive.js +0 -1160
  247. package/core/com/db/index.js +0 -176
  248. package/core/com/event/com.json +0 -4
  249. package/core/com/event/drive.js +0 -133
  250. package/core/com/event/index.js +0 -345
  251. package/core/com/event/script.js +0 -26
  252. package/core/com/eventer/com.js +0 -477
  253. package/core/com/eventer/com.json +0 -4
  254. package/core/com/middleware/com.js +0 -154
  255. package/core/com/middleware/com.json +0 -4
  256. package/core/com/middleware/config.tpl.json +0 -8
  257. package/core/com/middleware/script.js +0 -9
  258. package/core/com/mqtt/com.json +0 -4
  259. package/core/com/mqtt/drive.js +0 -600
  260. package/core/com/mqtt/index.js +0 -572
  261. package/core/com/mqtt/mm_mqtt.js +0 -330
  262. package/core/com/mqtt/script.js +0 -604
  263. package/core/com/msg/com.js +0 -296
  264. package/core/com/msg/com.json +0 -4
  265. package/core/com/nav/com.json +0 -4
  266. package/core/com/nav/config.tpl.json +0 -75
  267. package/core/com/nav/drive.js +0 -549
  268. package/core/com/nav/index.js +0 -182
  269. package/core/com/nav/tpl/admin_pc/page_form.vue +0 -180
  270. package/core/com/nav/tpl/admin_pc/page_view.vue +0 -124
  271. package/core/com/nav/tpl/dev_pc/page_default.vue +0 -247
  272. package/core/com/nav/tpl/dev_pc/page_type.vue +0 -313
  273. package/core/com/nav/tpl/home_pc/page_default.vue +0 -234
  274. package/core/com/nav/tpl/home_pc/page_form.vue +0 -137
  275. package/core/com/nav/tpl/home_pc/page_list.vue +0 -234
  276. package/core/com/nav/tpl/home_pc/page_nav.vue +0 -221
  277. package/core/com/nav/tpl/home_pc/page_type.vue +0 -234
  278. package/core/com/nav/tpl/home_pc/page_view.vue +0 -125
  279. package/core/com/nav/tpl/home_phone/page_channel.vue +0 -234
  280. package/core/com/nav/tpl/home_phone/page_default.vue +0 -234
  281. package/core/com/nav/tpl/home_phone/page_form.vue +0 -137
  282. package/core/com/nav/tpl/home_phone/page_nav.vue +0 -237
  283. package/core/com/nav/tpl/home_phone/page_type.vue +0 -234
  284. package/core/com/nav/tpl/home_phone/page_view.vue +0 -125
  285. package/core/com/nav/viewmodel.js +0 -296
  286. package/core/com/param/drive.js +0 -366
  287. package/core/com/param/index.js +0 -80
  288. package/core/com/param/script.js +0 -12
  289. package/core/com/param/test.js +0 -98
  290. package/core/com/plugin/README.md +0 -3
  291. package/core/com/plugin/com.json +0 -4
  292. package/core/com/plugin/config.tpl.json +0 -26
  293. package/core/com/plugin/drive.js +0 -536
  294. package/core/com/plugin/index.js +0 -259
  295. package/core/com/plugin/script.js +0 -213
  296. package/core/com/rpc/com.json +0 -4
  297. package/core/com/rpc/drive.js +0 -160
  298. package/core/com/rpc/index.js +0 -87
  299. package/core/com/rpc/rpc.js +0 -118
  300. package/core/com/socket/com.json +0 -4
  301. package/core/com/socket/config.tpl.json +0 -14
  302. package/core/com/socket/drive.js +0 -403
  303. package/core/com/socket/index.js +0 -62
  304. package/core/com/socket/script.js +0 -42
  305. package/core/com/sql/drive.js +0 -1087
  306. package/core/com/sql/index.js +0 -83
  307. package/core/com/sql/script.js +0 -48
  308. package/core/com/static/com.json +0 -4
  309. package/core/com/static/drive.js +0 -220
  310. package/core/com/static/index.js +0 -149
  311. package/core/com/static/script.js +0 -28
  312. package/core/com/task/com.json +0 -4
  313. package/core/com/task/drive.js +0 -403
  314. package/core/com/task/index.js +0 -110
  315. package/core/com/task/script.js +0 -37
  316. package/core/com/timer/com.js +0 -217
  317. package/core/com/timer/com.json +0 -4
  318. package/core/com/tpl/com.js +0 -19
  319. package/core/com/tpl/com.json +0 -4
  320. package/lib/actions.js +0 -50
  321. package/lib/base.js +0 -361
  322. package/lib/com.js +0 -29
  323. package/lib/ref.js +0 -121
  324. package/middleware/cors/index.js +0 -119
  325. package/middleware/cors/middleware.json +0 -20
  326. package/middleware/csrf/index.js +0 -202
  327. package/middleware/csrf/middleware.json +0 -24
  328. package/middleware/ip_firewall/index.js +0 -476
  329. package/middleware/ip_firewall/middleware.json +0 -109
  330. package/middleware/mqtt_base/index.js +0 -10
  331. package/middleware/mqtt_base/middleware.json +0 -11
  332. package/middleware/security_audit/index.js +0 -543
  333. package/middleware/security_audit/middleware.json +0 -48
  334. package/middleware/waf/index.js +0 -343
  335. package/middleware/waf/middleware.json +0 -10
  336. package/middleware/waf_ddos/index.js +0 -520
  337. package/middleware/waf_ddos/middleware.json +0 -38
  338. package/middleware/waf_xss/index.js +0 -269
  339. package/middleware/waf_xss/middleware.json +0 -18
  340. package/middleware/web_after/index.js +0 -33
  341. package/middleware/web_after/middleware.json +0 -10
  342. package/middleware/web_base/index.js +0 -90
  343. package/middleware/web_base/middleware.json +0 -10
  344. package/middleware/web_before/index.js +0 -27
  345. package/middleware/web_before/middleware.json +0 -10
  346. package/middleware/web_check/index.js +0 -28
  347. package/middleware/web_check/middleware.json +0 -10
  348. package/middleware/web_main/index.js +0 -28
  349. package/middleware/web_main/middleware.json +0 -10
  350. package/middleware/web_proxy/index.js +0 -37
  351. package/middleware/web_proxy/middleware.json +0 -10
  352. package/middleware/web_render/index.js +0 -87
  353. package/middleware/web_render/middleware.json +0 -10
  354. package/middleware/web_socket/index.js +0 -34
  355. package/middleware/web_socket/middleware.json +0 -10
  356. package/middleware/web_static/index.js +0 -115
  357. package/middleware/web_static/middleware.json +0 -10
  358. /package/{core/com → com}/api/README.md +0 -0
  359. /package/{core/com → com}/db/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,366 +0,0 @@
1
- const Item = require('mm_machine').Item;
2
- const Check = require('mm_check');
3
-
4
- /**
5
- * Param参数驱动类
6
- * @extends {Item}
7
- * @class
8
- */
9
- class Drive extends Item {
10
- /**
11
- * @param {String} dir 当前目录
12
- */
13
- constructor(dir) {
14
- super(dir, __dirname);
15
- this.default_file = "./param.json";
16
- // 默认启用热更新
17
- this.mode = 3;
18
- /* 通用项 */
19
- // 配置参数
20
- this.config = {
21
- // 名称, 由中英文和下“_”组成, 用于修改或卸载 例如: demo
22
- "name": "",
23
- // 状态 0未启用,1启用
24
- "state": 1,
25
- // 参数过滤
26
- "filter": true,
27
- // 默认监听方法, 当查询参数中出现监听的关键词时,选择以该键值作为请求方式,否则默认为get
28
- "method": "method",
29
- // 增
30
- "add": {
31
- // body参数
32
- "body": [],
33
- // body中的必填参数
34
- "body_required": []
35
- },
36
- // 删
37
- "del": {
38
- // url中的query参数
39
- "query": [],
40
- // query中的必填参数
41
- "query_required": []
42
- },
43
- // 改
44
- "set": {
45
- // url中的query参数
46
- "query": [],
47
- // query中的必填参数
48
- "query_required": [],
49
- // body参数
50
- "body": [],
51
- // body中的必填参数
52
- "body_required": [],
53
- // 不包含参数
54
- "body_not": []
55
- },
56
- // 查
57
- "get": {
58
- // url中的query参数
59
- "query": [],
60
- // query中的必填参数
61
- "query_required": []
62
- },
63
- // 导入
64
- "import": {
65
- // body中的参数
66
- "body": ["name"],
67
- // body中的必填参数
68
- "body_required": ["file"]
69
- },
70
- // 导出
71
- "export": {
72
- // url中的query参数
73
- "query": [],
74
- // query中的必填参数
75
- "query_required": []
76
- },
77
- // 去重
78
- "del_req": {
79
- // query中的必填参数
80
- "query_required": ["groupby", "sort"]
81
- },
82
- // 合计
83
- "sum": {
84
- // query中的必填参数
85
- "query_required": ["field", "groupby"]
86
- },
87
- // 总数
88
- "count": {
89
- // query中的必填参数
90
- "query_required": ["field", "groupby"]
91
- },
92
- // 提交
93
- // "post": {
94
- // // url中的query参数
95
- // "query": [],
96
- // // query中的必填参数
97
- // "query_required": [],
98
- // // body参数
99
- // "body": [],
100
- // // body中的必填参数
101
- // "body_required": [],
102
- // // 不包含参数
103
- // "body_not": []
104
- // },
105
- // 验证参数集
106
- "list": [],
107
- // 文件路径, 当调用函数不存在时,会先从文件中加载
108
- "func_file": "",
109
- // 回调函数名 用于决定调用脚本的哪个函数
110
- "func_name": ""
111
- };
112
- }
113
- }
114
-
115
- /**
116
- * 更新验证对象
117
- */
118
- Drive.prototype.updateCheck = function() {
119
- var lt = this.config.list;
120
- var len = lt.length;
121
- for (var i = 0; i < len; i++) {
122
- var o = lt[i];
123
- if (!o.check) {
124
- lt[i] = new Check(o);
125
- }
126
- }
127
- };
128
-
129
- /**
130
- * 设置配置
131
- * @param {Object} config 配置
132
- */
133
- Drive.prototype.set_config_after = function() {
134
- this.updateCheck();
135
- }
136
-
137
- /// 新建配置参数模型, 用于动态创建配置时
138
- Drive.prototype.model = function() {
139
- return new Check({
140
- // 参数名
141
- "name": "name",
142
- // 参数介绍名
143
- "title": "名称",
144
- // 参数做用描述
145
- "description": "用户名称,传入字符串",
146
- // 是否唯一值, 需配合数据库验证
147
- "only": false,
148
- // 分隔符号, 用于查询时判断多个传参
149
- "splitter": "|",
150
- // 是否主键
151
- "key": false,
152
- // 参数类型 string字符串、number数字、bool布尔、dateTime时间、object对象类型、array数组类型
153
- "type": "string",
154
- // 数据存储类型 tinyint布尔型(0,1),smallint短整数型,mediumint中整数型,int长整数型,float浮点数型,double双精度型,timestamp时间戳型,date日期型,time时间型,varchar字符串型,text长文本型
155
- "dataType": "",
156
- // 字符串相关验证
157
- "string": {
158
- // 非空
159
- "notEmpty": false,
160
- // 最小长度
161
- "min": 0,
162
- // 最大长度
163
- "max": 0,
164
- // 验证字符串范围, 传入两个成员, 最小长度和最大长度。例如:[0, 0]
165
- "range": [],
166
- // 验证正则表达式
167
- "regex": "",
168
- // 验证与某个参数值是否相同
169
- "identical": "",
170
- // 验证与某个参数值是否不同
171
- "different": "",
172
- // 后缀名, 多个后缀名用“|”分隔
173
- "extension": "",
174
- // 格式验证 email、url、date、dateISO、number、digits、phone
175
- "format": ""
176
- },
177
- // 数值相关验证
178
- "number": {
179
- // 最小值
180
- "min": 0,
181
- // 最大值
182
- "max": 0,
183
- // 验证字符串范围
184
- "range": []
185
- },
186
- "default": ""
187
- });
188
- };
189
-
190
- /**
191
- * 验证值是否符合
192
- * @param {Object} model 验证模型
193
- * @param {Object} value 被验证的值
194
- * @param {String} method 请求方式, post提交、get增、del删、set改、get查、import导入、export导出
195
- * @return {Object} 没通过返回信息,否则返回空
196
- */
197
- Drive.prototype.check_item = function(model, value, method) {
198
- var msg;
199
- if (value === "" || value === undefined || value === null) {
200
- if (method.has(model.name)) {
201
- msg = model.msg_head(model) + model.msg('required');
202
- }
203
- } else {
204
- msg = model.run(value);
205
- if (!msg) {
206
- msg = this.main(model, value);
207
- }
208
- if (msg) {
209
- return msg;
210
- }
211
- }
212
- return msg;
213
- };
214
-
215
- /**
216
- * 获取模型
217
- * @param {String} name 名称
218
- * @return {Object} 配置模型
219
- */
220
- Drive.prototype.getModel = function(name) {
221
- var model;
222
- var lt = this.config.list;
223
- for (var i = 0, o; o = lt[i++];) {
224
- if (o['name'] === name) {
225
- model = o;
226
- break;
227
- }
228
- }
229
- return model;
230
- };
231
-
232
- /**
233
- * 执行验证
234
- * @param {Object} params 请求参数集合
235
- * @param {Array} arr 要验证的参数名数组
236
- * @param {Array} required 必填项名称数组
237
- * @return {String} 返回验证结果
238
- */
239
- Drive.prototype.check_sub = function(params, arr, required) {
240
- var msg;
241
- for (var i = 0; i < arr.length; i++) {
242
- var k = arr[i];
243
- var o = this.getModel(k);
244
- if (o) {
245
- var value = params[k];
246
- msg = this.check_item(o, value, required);
247
- var s = o.string;
248
- if (!msg && value && s) {
249
- if (s.identical) {
250
- var val = params[s.identical];
251
- if (val !== value) {
252
- var m = this.getModel(s.identical);
253
- if (m) {
254
- msg = o.msg('identical', o.title + '(' + o.name + ')', m.title + '(' + m.name +
255
- ')');
256
- } else {
257
- msg = o.msg('identical', o.title + '(' + o.name + ')', s.identical);
258
- }
259
- }
260
- } else if (s.different) {
261
- var val = params[s.different];
262
- if (val === value) {
263
- var m = this.getModel(s.different);
264
- if (m) {
265
- msg = o.msg('different', o.title + '(' + o.name + ')', m.title + '(' + m.name +
266
- ')');
267
- } else {
268
- msg = o.msg('different', o.title + '(' + o.name + ')', s.different);
269
- }
270
- }
271
- }
272
- }
273
- if (msg) {
274
- break;
275
- }
276
- }
277
- }
278
- return msg;
279
- };
280
-
281
- /**
282
- * 验证参数是否符合
283
- * @param {Object} query url参数集合
284
- * @param {Object} body 正文参数集合
285
- * @param {String} method 请求方式,get增、del删、set改、get查、import导入、export导出
286
- * @return {Object} 没通过返回信息,否则返回空
287
- */
288
- Drive.prototype.check = function(query, body, method) {
289
- if (method !== 'GET') {
290
- method = method.toLowerCase();
291
- }
292
- var m = this.config[method];
293
- if (!m) {
294
- var m_key = this.config.method;
295
- if (m_key) {
296
- var md = query[m_key];
297
- if (md) {
298
- m = this.config[md];
299
- }
300
- }
301
- if (!m) {
302
- m = this.config["get"];
303
- }
304
- }
305
- var arr = m["query"];
306
- if (!arr || arr.length === 0) {
307
- arr = [];
308
- for (var k in query) {
309
- if (arr.indexOf(k) === -1) {
310
- arr.push(k);
311
- }
312
- }
313
- }
314
-
315
- var arr_query = m['query_required'] ? m['query_required'] : [];
316
- arr.addList(arr_query);
317
- var msg = this.check_sub(query, arr, arr_query);
318
- if (!msg) {
319
- var ar = m['body_not'];
320
- if (ar && body && ar.length > 0) {
321
- for (var i = 0; i < ar.length; i++) {
322
- var k = ar[i];
323
- delete body[k];
324
- }
325
- }
326
-
327
- arr = m["body"];
328
- if (!arr || arr.length === 0) {
329
- arr = [];
330
- for (var k in query) {
331
- if (arr.indexOf(k) === -1) {
332
- arr.push(k);
333
- }
334
- }
335
- }
336
- var arr_body = m['body_required'] ? m['body_required'] : [];
337
- arr.addList(arr_body);
338
- msg = this.check_sub(body, arr, arr_body);
339
- }
340
- return msg;
341
- };
342
-
343
- /**
344
- * 取字段
345
- * @param {Object} model 验证模型
346
- * @return {String} 返回名称
347
- */
348
- Drive.prototype.title = function(model) {
349
- if (!model.title) {
350
- return model.name + " ";
351
- } else {
352
- return model.title + "(" + model.name + ") ";
353
- }
354
- };
355
-
356
- /**
357
- * 验证回调函数
358
- * @param {Object} model 当前的验证模型
359
- * @param {Object} value 当前的验证值
360
- * @return {Object} 没通过返回信息,否则返回空
361
- */
362
- Drive.prototype.main = function(model, value) {
363
- return null;
364
- };
365
-
366
- module.exports = Drive;
@@ -1,80 +0,0 @@
1
- const Index = require('mm_machine').Index;
2
- const Drive = require('./drive');
3
-
4
- /**
5
- * 参数类
6
- * @extends {Index}
7
- * @class
8
- */
9
- class Param 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 = "param";
20
- this.title = title;
21
- // 默认启用热更新
22
- this.mode = 3;
23
- }
24
- }
25
-
26
- /**
27
- * 排序
28
- */
29
- Param.prototype.sort = function() {
30
- this.list.sortBy('asc', 'name');
31
- };
32
-
33
- /**
34
- * 配置对象或配置路径
35
- * @param {Object} db 数据库管理器 (object) 只支持可用sql语句的数据库
36
- * @param {String} name 名称
37
- * @param {Object} query url参数
38
- * @param {Object} body 正文参数
39
- * @return {Object} 验证失败返回错误信息,成功返回null
40
- */
41
- Param.prototype.run = function(db, name, query, body) {
42
- var obj = this.get(name);
43
- if (obj) {
44
- return obj.run(db, query, body);
45
- }
46
- return null;
47
- };
48
-
49
- exports.Param = Param;
50
-
51
-
52
- /**
53
- * Param参数池
54
- */
55
- if (!$.pool.param) {
56
- $.pool.param = {};
57
- }
58
-
59
- /**
60
- * Param管理器,用于创建缓存
61
- * @param {string} scope 作用域
62
- * @param {string} title 标题
63
- * @return {Object} 返回一个缓存类
64
- */
65
- function param_admin(scope, title) {
66
- if (!scope) {
67
- scope = $.val.scope + '';
68
- }
69
- var obj = $.pool.param[scope];
70
- if (!obj) {
71
- $.pool.param[scope] = new Param(scope, title);
72
- obj = $.pool.param[scope];
73
- }
74
- return obj;
75
- }
76
-
77
- /**
78
- * @module 导出Param管理器
79
- */
80
- $.param_admin = param_admin;
@@ -1,12 +0,0 @@
1
-
2
- /**
3
- * 验证主函数
4
- * @param {Object} model 当前的验证模型
5
- * @param {Object} value 当前的验证值
6
- * @return {Object} 没通过返回错误信息,否则返回空
7
- */
8
- function main(model, value) {
9
- return null;
10
- };
11
-
12
- exports.main = main;
@@ -1,98 +0,0 @@
1
- async function test() {
2
- var ck = new Param($.runPath + '');
3
- ck.load();
4
- var params = {
5
- uid: '100',
6
- name: "张三",
7
- age: 150,
8
- birthday: '1970-01-01',
9
- headImg: "http://img.png",
10
- username: "admin",
11
- password: "123456",
12
- pay_password: "654321",
13
- confirm_password: "123456"
14
- };
15
- var msg = ck.check(params, 'query');
16
- $.log.debug(msg);
17
- }
18
-
19
- test();
20
-
21
- // async function test() {
22
- // var config = {
23
- // // 参数过滤
24
- // filter: true,
25
- // // 调用脚本文件路径
26
- // file: "",
27
- // // url中的query参数
28
- // query: [],
29
- // // body参数
30
- // body: [],
31
- // // 参数列表
32
- // list: [{
33
- // name: "name",
34
- // title: "名称",
35
- // required: true,
36
- // type: "string",
37
- // string: {
38
- // format: "ch",
39
- // range: [2, 6]
40
- // }
41
- // separator: "|"
42
- // },
43
- // {
44
- // name: "name",
45
- // title: "名称",
46
- // required: true,
47
- // type: "string",
48
- // string: {
49
- // format: "ch",
50
- // range: [2, 6]
51
- // }
52
- // },
53
- // {
54
- // name: "age",
55
- // title: "年龄",
56
- // type: "number",
57
- // number: {
58
- // // min: 3,
59
- // // max: 255,
60
- // range: [1, 150]
61
- // }
62
- // },
63
- // {
64
- // name: "headImg",
65
- // title: "头像",
66
- // type: "string",
67
- // string: {
68
- // extension: "png|gif|jpg|jpeg|bmp",
69
- // }
70
- // },
71
- // {
72
- // name: "birthday",
73
- // title: "生日",
74
- // required: true,
75
- // type: "string",
76
- // string: {
77
- // format: "dateISO"
78
- // // regex: "[0-9]+\.png"
79
- // }
80
- // }
81
- // ]
82
- // };
83
- // var ck = new Drive();
84
- // ck.loadObj(config);
85
- // // $.log.debug(ck.config.list);
86
- // var msg = ck.check({
87
- // name: "张三",
88
- // age: 150,
89
- // birthday: '1970-01-01',
90
- // headImg: "http://img.png1"
91
- // });
92
- // $.log.debug(msg);
93
- // }
94
- //
95
- // test();
96
-
97
-
98
-
@@ -1,3 +0,0 @@
1
- ## 插件框架
2
- 用于实现应用结构和应用插件结构,实现了一个mm系统多个应用、一个应用多个插件的系统结构。
3
- 确保应用和插件是可以动态安装、卸载、重置,便捷功能拓展。
@@ -1,4 +0,0 @@
1
- {
2
- "name": "插件管理器",
3
- "script": "./index.js"
4
- }
@@ -1,26 +0,0 @@
1
- {
2
- // 应用名称,表示该插件用在什么应用里的
3
- "app": "{1}",
4
- // 插件名称,插件的唯一标识
5
- "name": "{0}",
6
- // 插件标题,用于检索和识别
7
- "title": "示例插件",
8
- // 插件描述,介绍改插件是做什么用的
9
- "description": "描述该插件是做什么用的",
10
- // 插件版本号,用于升级迭代
11
- "version": "1.0.0",
12
- // 作者
13
- "author": "",
14
- // 官网
15
- "web": "",
16
- // 插件语言包文件路径
17
- "lang_path": "./lang/",
18
- // 插件图标
19
- "icon": "/{1}/{0}/img/logo.png",
20
- // 插件指令,通过指令方式调用插件
21
- "cmd": "{2}",
22
- // 是否中断执行
23
- "end": true,
24
- // 排序,表示多个插件时在应用下执行的先后顺序
25
- "sort": 10
26
- }