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,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
- }