expressa 2.0.21 → 2.0.23

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 (222) hide show
  1. package/.circleci/config.yml +21 -21
  2. package/.eslintrc.json +29 -29
  3. package/.vscode/launch.json +19 -0
  4. package/LICENSE +21 -21
  5. package/README.md +137 -137
  6. package/auth/index.js +76 -76
  7. package/auth/jwt.js +31 -31
  8. package/controllers/collections.js +260 -260
  9. package/controllers/install.js +105 -105
  10. package/controllers/status.js +43 -43
  11. package/controllers/users.js +52 -52
  12. package/cypress/fixtures/example.json +4 -4
  13. package/cypress/integration/0_install_spec.js +8 -8
  14. package/cypress/integration/custom_collections.js +30 -30
  15. package/cypress/integration/home.js +9 -9
  16. package/cypress/integration/settings.js +34 -34
  17. package/cypress/integration/users.js +61 -61
  18. package/cypress/plugins/index.js +17 -17
  19. package/cypress/support/commands.js +69 -69
  20. package/cypress/support/index.js +20 -20
  21. package/cypress/support/util.js +10 -10
  22. package/cypress.config.js +18 -18
  23. package/cypress.json +4 -4
  24. package/db/cached.js +44 -40
  25. package/db/file.js +131 -112
  26. package/db/memory.js +92 -79
  27. package/db/mongo.js +93 -86
  28. package/db/postgres.js +100 -93
  29. package/doc/authentication.md +38 -38
  30. package/doc/automatic-fields.md +12 -12
  31. package/doc/blogexample.md +16 -16
  32. package/doc/custom-endpoints.md +20 -20
  33. package/doc/database.md +23 -23
  34. package/doc/development.md +33 -33
  35. package/doc/listeners.md +103 -103
  36. package/doc/modules.md +8 -8
  37. package/doc/permissions.md +14 -14
  38. package/doc/relationships.md +65 -65
  39. package/doc/testing.md +47 -47
  40. package/doc/uploading-files.md +53 -53
  41. package/index.js +297 -297
  42. package/listeners.js +65 -65
  43. package/listeners_collection_permissions.js +29 -29
  44. package/listeners_users.js +96 -96
  45. package/listeners_validation.js +43 -43
  46. package/middleware/logging.js +30 -30
  47. package/middleware/permissions.js +41 -41
  48. package/modules/access_keys/access_keys.js +32 -32
  49. package/modules/admin/.babelrc +8 -19
  50. package/modules/admin/.editorconfig +14 -14
  51. package/modules/admin/.eslintignore +5 -5
  52. package/modules/admin/.eslintrc.js +197 -197
  53. package/modules/admin/.postcssrc.js +10 -10
  54. package/modules/admin/.travis.yml +5 -5
  55. package/modules/admin/LICENSE +21 -21
  56. package/modules/admin/README.md +88 -88
  57. package/modules/admin/build/build.js +46 -46
  58. package/modules/admin/build/check-versions.js +64 -64
  59. package/modules/admin/build/utils.js +109 -109
  60. package/modules/admin/build/vue-loader.conf.js +5 -5
  61. package/modules/admin/build/webpack.base.conf.js +112 -112
  62. package/modules/admin/build/webpack.dev.conf.js +95 -95
  63. package/modules/admin/build/webpack.prod.conf.js +112 -112
  64. package/modules/admin/config/dev.env.js +8 -8
  65. package/modules/admin/config/index.js +86 -86
  66. package/modules/admin/config/prod.env.js +5 -5
  67. package/modules/admin/dist/css/{197.7a90435e.css → 197.e66ce8d8.css} +4 -4
  68. package/modules/admin/dist/css/197.e66ce8d8.css.gz +0 -0
  69. package/modules/admin/dist/css/{430.8c9b0482.css → 430.e83d8cfe.css} +4 -4
  70. package/modules/admin/dist/css/430.e83d8cfe.css.gz +0 -0
  71. package/modules/admin/dist/css/451.c6646d20.css.gz +0 -0
  72. package/modules/admin/dist/css/{566.7a90435e.css → 566.e66ce8d8.css} +4 -4
  73. package/modules/admin/dist/css/566.e66ce8d8.css.gz +0 -0
  74. package/modules/admin/dist/css/569.db9a10c2.css +213 -0
  75. package/modules/admin/dist/css/569.db9a10c2.css.gz +0 -0
  76. package/modules/admin/dist/css/572.513a323e.css +210 -0
  77. package/modules/admin/dist/css/572.513a323e.css.gz +0 -0
  78. package/modules/admin/dist/css/651.e946bda7.css.gz +0 -0
  79. package/modules/admin/dist/css/750.4086915d.css.gz +0 -0
  80. package/modules/admin/dist/css/950.1fd9d57c.css.gz +0 -0
  81. package/modules/admin/dist/css/{app.eba5f5e2.css → app.1c3232a3.css} +25 -25
  82. package/modules/admin/dist/css/app.1c3232a3.css.gz +0 -0
  83. package/modules/admin/dist/index.html +1 -1
  84. package/modules/admin/dist/static/js/197.36982650.js +1 -0
  85. package/modules/admin/dist/static/js/197.36982650.js.gz +0 -0
  86. package/modules/admin/dist/static/js/311.25e842dc.js +1 -0
  87. package/modules/admin/dist/static/js/311.25e842dc.js.gz +0 -0
  88. package/modules/admin/dist/static/js/430.53aea612.js +1 -0
  89. package/modules/admin/dist/static/js/430.53aea612.js.gz +0 -0
  90. package/modules/admin/dist/static/js/451.9f6dcdb1.js +1 -0
  91. package/modules/admin/dist/static/js/451.9f6dcdb1.js.gz +0 -0
  92. package/modules/admin/dist/static/js/460.351dad91.js +1 -0
  93. package/modules/admin/dist/static/js/460.351dad91.js.gz +0 -0
  94. package/modules/admin/dist/static/js/550.87e54b29.js +1 -0
  95. package/modules/admin/dist/static/js/550.87e54b29.js.gz +0 -0
  96. package/modules/admin/dist/static/js/569.52dba3a7.js +1 -0
  97. package/modules/admin/dist/static/js/569.52dba3a7.js.gz +0 -0
  98. package/modules/admin/dist/static/js/572.296cfd3b.js +1 -0
  99. package/modules/admin/dist/static/js/572.296cfd3b.js.gz +0 -0
  100. package/modules/admin/dist/static/js/603.98d5f5d9.js +1 -0
  101. package/modules/admin/dist/static/js/603.98d5f5d9.js.gz +0 -0
  102. package/modules/admin/dist/static/js/651.6dca6fbe.js +1 -0
  103. package/modules/admin/dist/static/js/651.6dca6fbe.js.gz +0 -0
  104. package/modules/admin/dist/static/js/653.0dff78dc.js +1 -0
  105. package/modules/admin/dist/static/js/653.0dff78dc.js.gz +0 -0
  106. package/modules/admin/dist/static/js/750.6877a6b8.js +1 -0
  107. package/modules/admin/dist/static/js/750.6877a6b8.js.gz +0 -0
  108. package/modules/admin/dist/static/js/950.4f40455a.js +1 -0
  109. package/modules/admin/dist/static/js/950.4f40455a.js.gz +0 -0
  110. package/modules/admin/dist/static/js/app.2dd732d9.js +2 -0
  111. package/modules/admin/dist/static/js/{app.083328f8.js.LICENSE.txt → app.2dd732d9.js.LICENSE.txt} +0 -2
  112. package/modules/admin/dist/static/js/app.2dd732d9.js.LICENSE.txt.gz +0 -0
  113. package/modules/admin/dist/static/js/app.2dd732d9.js.gz +0 -0
  114. package/modules/admin/index.html +16 -16
  115. package/modules/admin/package.json +101 -101
  116. package/modules/admin/src/App.vue +11 -11
  117. package/modules/admin/src/api/login.js +26 -26
  118. package/modules/admin/src/api/table.js +9 -9
  119. package/modules/admin/src/components/Breadcrumb/index.vue +79 -79
  120. package/modules/admin/src/components/Hamburger/index.vue +62 -62
  121. package/modules/admin/src/components/JSONEditor.vue +206 -180
  122. package/modules/admin/src/components/SvgIcon/index.vue +43 -43
  123. package/modules/admin/src/icons/index.js +9 -9
  124. package/modules/admin/src/icons/svgo.yml +22 -22
  125. package/modules/admin/src/main.js +42 -42
  126. package/modules/admin/src/permission.js +49 -49
  127. package/modules/admin/src/router/index.js +200 -200
  128. package/modules/admin/src/store/getters.js +11 -11
  129. package/modules/admin/src/store/index.js +17 -17
  130. package/modules/admin/src/store/modules/app.js +43 -43
  131. package/modules/admin/src/store/modules/user.js +104 -104
  132. package/modules/admin/src/styles/element-ui.scss +29 -29
  133. package/modules/admin/src/styles/index.scss +78 -78
  134. package/modules/admin/src/styles/mixin.scss +27 -27
  135. package/modules/admin/src/styles/sidebar.scss +133 -133
  136. package/modules/admin/src/styles/transition.scss +46 -46
  137. package/modules/admin/src/styles/variables.scss +4 -4
  138. package/modules/admin/src/utils/auth.js +15 -15
  139. package/modules/admin/src/utils/index.js +74 -74
  140. package/modules/admin/src/utils/request.js +47 -47
  141. package/modules/admin/src/utils/validate.js +31 -31
  142. package/modules/admin/src/views/404.vue +235 -235
  143. package/modules/admin/src/views/Dev.vue +33 -33
  144. package/modules/admin/src/views/EditDocument.vue +121 -121
  145. package/modules/admin/src/views/Endpoints.vue +279 -279
  146. package/modules/admin/src/views/Home.vue +84 -84
  147. package/modules/admin/src/views/Install.vue +79 -79
  148. package/modules/admin/src/views/ListDocuments.vue +72 -72
  149. package/modules/admin/src/views/ListDocuments2.vue +467 -467
  150. package/modules/admin/src/views/ManageListeners.vue +67 -67
  151. package/modules/admin/src/views/ManageMiddleware.vue +43 -43
  152. package/modules/admin/src/views/ManagePermissions.vue +75 -75
  153. package/modules/admin/src/views/ViewRequest.vue +77 -77
  154. package/modules/admin/src/views/form/index.vue +91 -91
  155. package/modules/admin/src/views/layout/Layout.vue +69 -69
  156. package/modules/admin/src/views/layout/components/AppMain.vue +41 -41
  157. package/modules/admin/src/views/layout/components/Navbar.vue +97 -97
  158. package/modules/admin/src/views/layout/components/Sidebar/Item.vue +29 -29
  159. package/modules/admin/src/views/layout/components/Sidebar/Link.vue +39 -39
  160. package/modules/admin/src/views/layout/components/Sidebar/SidebarItem.vue +103 -103
  161. package/modules/admin/src/views/layout/components/Sidebar/index.vue +62 -62
  162. package/modules/admin/src/views/layout/components/index.js +3 -3
  163. package/modules/admin/src/views/layout/mixin/ResizeHandler.js +41 -41
  164. package/modules/admin/src/views/login/index.vue +195 -195
  165. package/modules/admin/src/views/tree/index.vue +77 -77
  166. package/modules/collections/collections.js +39 -39
  167. package/modules/core/core.js +197 -197
  168. package/modules/logging/logging.js +88 -88
  169. package/modules/permissions/permissions.js +106 -106
  170. package/package.json +59 -59
  171. package/scripts/expressa +12 -12
  172. package/scripts/run_cypress_tests.sh +35 -35
  173. package/scripts/run_db_tests.sh +8 -8
  174. package/test/0-install.js +96 -96
  175. package/test/collections.js +431 -431
  176. package/test/collections.querying.js +288 -288
  177. package/test/db.js +258 -258
  178. package/test/db.strings.js +73 -73
  179. package/test/db.updating.js +186 -144
  180. package/test/logging.js +29 -29
  181. package/test/test.js +93 -93
  182. package/test/testserver.js +30 -30
  183. package/test/testutils.js +136 -136
  184. package/test/users.js +425 -425
  185. package/util.js +522 -522
  186. package/modules/admin/dist/css/197.7a90435e.css.gz +0 -0
  187. package/modules/admin/dist/css/430.8c9b0482.css.gz +0 -0
  188. package/modules/admin/dist/css/566.7a90435e.css.gz +0 -0
  189. package/modules/admin/dist/css/569.f7d5c7d5.css +0 -37
  190. package/modules/admin/dist/css/569.f7d5c7d5.css.gz +0 -0
  191. package/modules/admin/dist/css/572.74d8e965.css +0 -34
  192. package/modules/admin/dist/css/572.74d8e965.css.gz +0 -0
  193. package/modules/admin/dist/css/app.eba5f5e2.css.gz +0 -0
  194. package/modules/admin/dist/static/js/197.e511d91e.js +0 -1
  195. package/modules/admin/dist/static/js/197.e511d91e.js.gz +0 -0
  196. package/modules/admin/dist/static/js/430.b3941f30.js +0 -1
  197. package/modules/admin/dist/static/js/430.b3941f30.js.gz +0 -0
  198. package/modules/admin/dist/static/js/451.645974a8.js +0 -1
  199. package/modules/admin/dist/static/js/451.645974a8.js.gz +0 -0
  200. package/modules/admin/dist/static/js/460.962d5bc0.js +0 -1
  201. package/modules/admin/dist/static/js/460.962d5bc0.js.gz +0 -0
  202. package/modules/admin/dist/static/js/550.f27feb23.js +0 -1
  203. package/modules/admin/dist/static/js/550.f27feb23.js.gz +0 -0
  204. package/modules/admin/dist/static/js/556.1e08866a.js +0 -1
  205. package/modules/admin/dist/static/js/556.1e08866a.js.gz +0 -0
  206. package/modules/admin/dist/static/js/569.0fecfbee.js +0 -1
  207. package/modules/admin/dist/static/js/569.0fecfbee.js.gz +0 -0
  208. package/modules/admin/dist/static/js/572.13392e1d.js +0 -1
  209. package/modules/admin/dist/static/js/572.13392e1d.js.gz +0 -0
  210. package/modules/admin/dist/static/js/603.7b34a650.js +0 -1
  211. package/modules/admin/dist/static/js/603.7b34a650.js.gz +0 -0
  212. package/modules/admin/dist/static/js/651.564b24b6.js +0 -1
  213. package/modules/admin/dist/static/js/651.564b24b6.js.gz +0 -0
  214. package/modules/admin/dist/static/js/653.02ec1098.js +0 -1
  215. package/modules/admin/dist/static/js/653.02ec1098.js.gz +0 -0
  216. package/modules/admin/dist/static/js/750.50c950da.js +0 -1
  217. package/modules/admin/dist/static/js/750.50c950da.js.gz +0 -0
  218. package/modules/admin/dist/static/js/950.d4ff0a18.js +0 -1
  219. package/modules/admin/dist/static/js/950.d4ff0a18.js.gz +0 -0
  220. package/modules/admin/dist/static/js/app.083328f8.js +0 -2
  221. package/modules/admin/dist/static/js/app.083328f8.js.LICENSE.txt.gz +0 -0
  222. package/modules/admin/dist/static/js/app.083328f8.js.gz +0 -0
@@ -38,8 +38,6 @@ object-assign
38
38
  * Date: 2023-08-28T13:37Z
39
39
  */
40
40
 
41
- /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
42
-
43
41
  /**
44
42
  * @license
45
43
  * Lodash <https://lodash.com/>
@@ -1,16 +1,16 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width,initial-scale=1.0">
6
- <script crossorigin src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react.min.js"></script>
7
- <script crossorigin src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react-dom.min.js"></script>
8
- <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
9
- <script src="settings.js"></script>
10
- <title>Expressa Admin</title>
11
- </head>
12
- <body>
13
- <div id="app"></div>
14
- <!-- built files will be auto injected -->
15
- </body>
16
- </html>
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
6
+ <script crossorigin src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react.min.js"></script>
7
+ <script crossorigin src="https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react-dom.min.js"></script>
8
+ <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
9
+ <script src="settings.js"></script>
10
+ <title>Expressa Admin</title>
11
+ </head>
12
+ <body>
13
+ <div id="app"></div>
14
+ <!-- built files will be auto injected -->
15
+ </body>
16
+ </html>
@@ -1,101 +1,101 @@
1
- {
2
- "name": "expressa-admin",
3
- "version": "0.0.1",
4
- "license": "MIT",
5
- "description": "Graphical management tool for expressa",
6
- "author": "Thomas Hansen <th4019@gmail.com>",
7
- "scripts": {
8
- "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9
- "start": "npm run dev",
10
- "build": "node build/build.js",
11
- "build:report": "npm_config_report=true npm run build",
12
- "lint": "eslint --ext .js,.vue src --fix",
13
- "test": "npm run lint",
14
- "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
15
- },
16
- "dependencies": {
17
- "@json-editor/json-editor": "^2.5.4",
18
- "axios": "^0.21.1",
19
- "bootstrap": "^4.2.1",
20
- "dot-object": "^2.1.4",
21
- "element-ui": "^2.15.14",
22
- "file-saver": "^2.0.2",
23
- "jquery": "^3.3.1",
24
- "js-cookie": "2.2.0",
25
- "json-schema-editor": "^0.2.10",
26
- "normalize.css": "7.0.0",
27
- "nprogress": "0.2.0",
28
- "object-path": "^0.11.4",
29
- "popper.js": "^1.14.6",
30
- "react": "^16.7.0",
31
- "react-dom": "^16.7.0",
32
- "vue": "2.5.17",
33
- "vue-material-design-icons": "^2.5.0",
34
- "vue-router": "3.0.1",
35
- "vue-unicons": "^3.1.0",
36
- "vuera": "^0.2.3",
37
- "vuex": "3.0.1"
38
- },
39
- "devDependencies": {
40
- "@babel/core": "^7.26.0",
41
- "@babel/plugin-proposal-class-properties": "^7.18.6",
42
- "@babel/plugin-proposal-decorators": "^7.25.9",
43
- "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
44
- "@babel/plugin-transform-runtime": "^7.25.9",
45
- "@babel/preset-env": "^7.26.0",
46
- "@vue/babel-plugin-transform-vue-jsx": "^1.4.0",
47
- "autoprefixer": "8.5.0",
48
- "babel-core": "6.26.0",
49
- "babel-eslint": "8.2.6",
50
- "babel-helper-vue-jsx-merge-props": "2.0.3",
51
- "babel-loader": "^9.2.1",
52
- "babel-plugin-syntax-jsx": "6.18.0",
53
- "babel-plugin-transform-runtime": "6.23.0",
54
- "babel-plugin-transform-vue-jsx": "3.7.0",
55
- "chalk": "2.4.1",
56
- "compression-webpack-plugin": "^6.1.1",
57
- "copy-webpack-plugin": "^5.1.0",
58
- "css-loader": "^7.1.2",
59
- "eslint": "^7.0.0",
60
- "eslint-friendly-formatter": "^4.0.1",
61
- "eslint-loader": "^4.0.2",
62
- "eslint-plugin-vue": "^7.0.0",
63
- "file-loader": "^6.2.0",
64
- "html-webpack-plugin": "^4.0.0",
65
- "mini-css-extract-plugin": "^2.9.2",
66
- "node-notifier": "8.0.1",
67
- "ora": "3.0.0",
68
- "path-browserify": "^1.0.1",
69
- "path-to-regexp": "2.4.0",
70
- "portfinder": "1.0.16",
71
- "postcss-import": "12.0.0",
72
- "postcss-loader": "2.1.6",
73
- "postcss-url": "7.3.2",
74
- "rimraf": "2.6.2",
75
- "sass": "^1.83.0",
76
- "sass-loader": "^16.0.4",
77
- "semver": "5.5.0",
78
- "shelljs": "0.8.5",
79
- "svg-sprite-loader": "^5.2.1",
80
- "svgo": "^1.3.2",
81
- "terser-webpack-plugin": "^2.2.3",
82
- "url-loader": "^4.1.1",
83
- "vue-loader": "^15.11.1",
84
- "vue-style-loader": "4.1.2",
85
- "vue-template-compiler": "^2.5.17",
86
- "webpack": "^5.97.1",
87
- "webpack-bundle-analyzer": "^3.6.0",
88
- "webpack-cli": "^5.1.4",
89
- "webpack-dev-server": "^3.9.0",
90
- "webpack-merge": "4.1.4"
91
- },
92
- "engines": {
93
- "node": ">= 6.0.0",
94
- "npm": ">= 3.0.0"
95
- },
96
- "browserslist": [
97
- "> 1%",
98
- "last 2 versions",
99
- "not ie <= 8"
100
- ]
101
- }
1
+ {
2
+ "name": "expressa-admin",
3
+ "version": "0.0.1",
4
+ "license": "MIT",
5
+ "description": "Graphical management tool for expressa",
6
+ "author": "Thomas Hansen <th4019@gmail.com>",
7
+ "scripts": {
8
+ "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9
+ "start": "npm run dev",
10
+ "build": "node build/build.js",
11
+ "build:report": "npm_config_report=true npm run build",
12
+ "lint": "eslint --ext .js,.vue src --fix",
13
+ "test": "npm run lint",
14
+ "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
15
+ },
16
+ "dependencies": {
17
+ "@json-editor/json-editor": "^2.5.4",
18
+ "axios": "^0.21.1",
19
+ "bootstrap": "^4.2.1",
20
+ "dot-object": "^2.1.4",
21
+ "element-ui": "^2.15.14",
22
+ "file-saver": "^2.0.2",
23
+ "jquery": "^3.3.1",
24
+ "js-cookie": "2.2.0",
25
+ "json-schema-editor": "^0.2.10",
26
+ "normalize.css": "7.0.0",
27
+ "nprogress": "0.2.0",
28
+ "object-path": "^0.11.4",
29
+ "popper.js": "^1.14.6",
30
+ "react": "^16.7.0",
31
+ "react-dom": "^16.7.0",
32
+ "vue": "2.5.17",
33
+ "vue-material-design-icons": "^2.5.0",
34
+ "vue-router": "3.0.1",
35
+ "vue-unicons": "^3.1.0",
36
+ "vuera": "^0.2.3",
37
+ "vuex": "3.0.1"
38
+ },
39
+ "devDependencies": {
40
+ "@babel/core": "^7.26.0",
41
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
42
+ "@babel/plugin-proposal-decorators": "^7.25.9",
43
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
44
+ "@babel/plugin-transform-runtime": "^7.25.9",
45
+ "@babel/preset-env": "^7.26.0",
46
+ "@vue/babel-plugin-transform-vue-jsx": "^1.4.0",
47
+ "autoprefixer": "8.5.0",
48
+ "babel-core": "6.26.0",
49
+ "babel-eslint": "8.2.6",
50
+ "babel-helper-vue-jsx-merge-props": "2.0.3",
51
+ "babel-loader": "^9.2.1",
52
+ "babel-plugin-syntax-jsx": "6.18.0",
53
+ "babel-plugin-transform-runtime": "6.23.0",
54
+ "babel-plugin-transform-vue-jsx": "3.7.0",
55
+ "chalk": "2.4.1",
56
+ "compression-webpack-plugin": "^6.1.1",
57
+ "copy-webpack-plugin": "^5.1.0",
58
+ "css-loader": "^7.1.2",
59
+ "eslint": "^7.0.0",
60
+ "eslint-friendly-formatter": "^4.0.1",
61
+ "eslint-loader": "^4.0.2",
62
+ "eslint-plugin-vue": "^7.0.0",
63
+ "file-loader": "^6.2.0",
64
+ "html-webpack-plugin": "^4.0.0",
65
+ "mini-css-extract-plugin": "^2.9.2",
66
+ "node-notifier": "8.0.1",
67
+ "ora": "3.0.0",
68
+ "path-browserify": "^1.0.1",
69
+ "path-to-regexp": "2.4.0",
70
+ "portfinder": "1.0.16",
71
+ "postcss-import": "12.0.0",
72
+ "postcss-loader": "2.1.6",
73
+ "postcss-url": "7.3.2",
74
+ "rimraf": "2.6.2",
75
+ "sass": "^1.83.0",
76
+ "sass-loader": "^16.0.4",
77
+ "semver": "5.5.0",
78
+ "shelljs": "0.8.5",
79
+ "svg-sprite-loader": "^5.2.1",
80
+ "svgo": "^1.3.2",
81
+ "terser-webpack-plugin": "^2.2.3",
82
+ "url-loader": "^4.1.1",
83
+ "vue-loader": "^15.11.1",
84
+ "vue-style-loader": "4.1.2",
85
+ "vue-template-compiler": "2.5.17",
86
+ "webpack": "^5.97.1",
87
+ "webpack-bundle-analyzer": "^3.6.0",
88
+ "webpack-cli": "^5.1.4",
89
+ "webpack-dev-server": "^3.9.0",
90
+ "webpack-merge": "4.1.4"
91
+ },
92
+ "engines": {
93
+ "node": ">= 6.0.0",
94
+ "npm": ">= 3.0.0"
95
+ },
96
+ "browserslist": [
97
+ "> 1%",
98
+ "last 2 versions",
99
+ "not ie <= 8"
100
+ ]
101
+ }
@@ -1,11 +1,11 @@
1
- <template>
2
- <div id="app">
3
- <router-view />
4
- </div>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- name: 'App'
10
- }
11
- </script>
1
+ <template>
2
+ <div id="app">
3
+ <router-view />
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'App'
10
+ }
11
+ </script>
@@ -1,26 +1,26 @@
1
- import request from '@/utils/request'
2
-
3
- export function login(username, password) {
4
- return request({
5
- url: '/users/login',
6
- method: 'post',
7
- data: {
8
- email: username,
9
- password
10
- }
11
- })
12
- }
13
-
14
- export function getInfo(token) {
15
- return request({
16
- url: '/users/me',
17
- method: 'get'
18
- })
19
- }
20
-
21
- export async function logout() {
22
- /* return request({
23
- url: '/users/logout',
24
- method: 'post'
25
- }) */
26
- }
1
+ import request from '@/utils/request'
2
+
3
+ export function login(username, password) {
4
+ return request({
5
+ url: '/users/login',
6
+ method: 'post',
7
+ data: {
8
+ email: username,
9
+ password
10
+ }
11
+ })
12
+ }
13
+
14
+ export function getInfo(token) {
15
+ return request({
16
+ url: '/users/me',
17
+ method: 'get'
18
+ })
19
+ }
20
+
21
+ export async function logout() {
22
+ /* return request({
23
+ url: '/users/logout',
24
+ method: 'post'
25
+ }) */
26
+ }
@@ -1,9 +1,9 @@
1
- import request from '@/utils/request'
2
-
3
- export function getList(params) {
4
- return request({
5
- url: '/table/list',
6
- method: 'get',
7
- params
8
- })
9
- }
1
+ import request from '@/utils/request'
2
+
3
+ export function getList(params) {
4
+ return request({
5
+ url: '/table/list',
6
+ method: 'get',
7
+ params
8
+ })
9
+ }
@@ -1,79 +1,79 @@
1
- <template>
2
- <el-breadcrumb class="app-breadcrumb" separator="/">
3
- <transition-group name="breadcrumb">
4
- <el-breadcrumb-item v-for="(item,index) in filteredLevelList" :key="item.path">
5
- <span v-if="item.redirect==='noredirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
6
- <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
7
- </el-breadcrumb-item>
8
- </transition-group>
9
- </el-breadcrumb>
10
- </template>
11
-
12
- <script>
13
- import pathToRegexp from 'path-to-regexp'
14
-
15
- export default {
16
- data() {
17
- return {
18
- levelList: null
19
- }
20
- },
21
- computed: {
22
- filteredLevelList: function() {
23
- return this.levelList.filter(element => element.meta.title)
24
- }
25
- },
26
- watch: {
27
- $route() {
28
- this.getBreadcrumb()
29
- }
30
- },
31
- created() {
32
- this.getBreadcrumb()
33
- },
34
- methods: {
35
- getBreadcrumb() {
36
- let matched = this.$route.matched.filter(item => {
37
- if (item.name) {
38
- return true
39
- }
40
- })
41
- const first = matched[0]
42
- if (first && first.name !== 'home') {
43
- matched = [{ path: '/home', meta: { title: 'Home' }}].concat(matched)
44
- }
45
- this.levelList = matched
46
- },
47
- pathCompile(path) {
48
- // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
49
- const { params } = this.$route
50
- var toPath = pathToRegexp.compile(path)
51
- return toPath(params)
52
- },
53
- handleLink(item) {
54
- const { redirect, path } = item
55
- console.log('handleLink')
56
- console.log(redirect)
57
- console.log(path)
58
- if (redirect) {
59
- this.$router.push(redirect)
60
- return
61
- }
62
- this.$router.push(this.pathCompile(path))
63
- }
64
- }
65
- }
66
- </script>
67
-
68
- <style rel="stylesheet/scss" lang="scss" scoped>
69
- .app-breadcrumb.el-breadcrumb {
70
- display: inline-block;
71
- font-size: 14px;
72
- line-height: 50px;
73
- margin-left: 10px;
74
- .no-redirect {
75
- color: #97a8be;
76
- cursor: text;
77
- }
78
- }
79
- </style>
1
+ <template>
2
+ <el-breadcrumb class="app-breadcrumb" separator="/">
3
+ <transition-group name="breadcrumb">
4
+ <el-breadcrumb-item v-for="(item,index) in filteredLevelList" :key="item.path">
5
+ <span v-if="item.redirect==='noredirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
6
+ <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
7
+ </el-breadcrumb-item>
8
+ </transition-group>
9
+ </el-breadcrumb>
10
+ </template>
11
+
12
+ <script>
13
+ import pathToRegexp from 'path-to-regexp'
14
+
15
+ export default {
16
+ data() {
17
+ return {
18
+ levelList: null
19
+ }
20
+ },
21
+ computed: {
22
+ filteredLevelList: function() {
23
+ return this.levelList.filter(element => element.meta.title)
24
+ }
25
+ },
26
+ watch: {
27
+ $route() {
28
+ this.getBreadcrumb()
29
+ }
30
+ },
31
+ created() {
32
+ this.getBreadcrumb()
33
+ },
34
+ methods: {
35
+ getBreadcrumb() {
36
+ let matched = this.$route.matched.filter(item => {
37
+ if (item.name) {
38
+ return true
39
+ }
40
+ })
41
+ const first = matched[0]
42
+ if (first && first.name !== 'home') {
43
+ matched = [{ path: '/home', meta: { title: 'Home' }}].concat(matched)
44
+ }
45
+ this.levelList = matched
46
+ },
47
+ pathCompile(path) {
48
+ // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
49
+ const { params } = this.$route
50
+ var toPath = pathToRegexp.compile(path)
51
+ return toPath(params)
52
+ },
53
+ handleLink(item) {
54
+ const { redirect, path } = item
55
+ console.log('handleLink')
56
+ console.log(redirect)
57
+ console.log(path)
58
+ if (redirect) {
59
+ this.$router.push(redirect)
60
+ return
61
+ }
62
+ this.$router.push(this.pathCompile(path))
63
+ }
64
+ }
65
+ }
66
+ </script>
67
+
68
+ <style rel="stylesheet/scss" lang="scss" scoped>
69
+ .app-breadcrumb.el-breadcrumb {
70
+ display: inline-block;
71
+ font-size: 14px;
72
+ line-height: 50px;
73
+ margin-left: 10px;
74
+ .no-redirect {
75
+ color: #97a8be;
76
+ cursor: text;
77
+ }
78
+ }
79
+ </style>
@@ -1,62 +1,62 @@
1
- <template>
2
- <div>
3
- <svg
4
- :class="{'is-active':isActive}"
5
- t="1492500959545"
6
- class="hamburger"
7
- style=""
8
- viewBox="0 0 1024 1024"
9
- version="1.1"
10
- xmlns="http://www.w3.org/2000/svg"
11
- p-id="1691"
12
- xmlns:xlink="http://www.w3.org/1999/xlink"
13
- width="64"
14
- height="64"
15
- @click="toggleClick"
16
- >
17
- <path
18
- d="M966.8023 568.849776 57.196677 568.849776c-31.397081 0-56.850799-25.452695-56.850799-56.850799l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 543.397081 998.200404 568.849776 966.8023 568.849776z"
19
- p-id="1692"
20
- />
21
- <path
22
- d="M966.8023 881.527125 57.196677 881.527125c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 856.07443 998.200404 881.527125 966.8023 881.527125z"
23
- p-id="1693"
24
- />
25
- <path
26
- d="M966.8023 256.17345 57.196677 256.17345c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.850799 56.850799-56.850799l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.850799l0 0C1023.653099 230.720755 998.200404 256.17345 966.8023 256.17345z"
27
- p-id="1694"
28
- />
29
- </svg>
30
- </div>
31
- </template>
32
-
33
- <script>
34
- export default {
35
- name: 'Hamburger',
36
- props: {
37
- isActive: {
38
- type: Boolean,
39
- default: false
40
- },
41
- toggleClick: {
42
- type: Function,
43
- default: null
44
- }
45
- }
46
- }
47
- </script>
48
-
49
- <style scoped>
50
- .hamburger {
51
- display: inline-block;
52
- cursor: pointer;
53
- width: 20px;
54
- height: 20px;
55
- transform: rotate(90deg);
56
- transition: .38s;
57
- transform-origin: 50% 50%;
58
- }
59
- .hamburger.is-active {
60
- transform: rotate(0deg);
61
- }
62
- </style>
1
+ <template>
2
+ <div>
3
+ <svg
4
+ :class="{'is-active':isActive}"
5
+ t="1492500959545"
6
+ class="hamburger"
7
+ style=""
8
+ viewBox="0 0 1024 1024"
9
+ version="1.1"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ p-id="1691"
12
+ xmlns:xlink="http://www.w3.org/1999/xlink"
13
+ width="64"
14
+ height="64"
15
+ @click="toggleClick"
16
+ >
17
+ <path
18
+ d="M966.8023 568.849776 57.196677 568.849776c-31.397081 0-56.850799-25.452695-56.850799-56.850799l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 543.397081 998.200404 568.849776 966.8023 568.849776z"
19
+ p-id="1692"
20
+ />
21
+ <path
22
+ d="M966.8023 881.527125 57.196677 881.527125c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 856.07443 998.200404 881.527125 966.8023 881.527125z"
23
+ p-id="1693"
24
+ />
25
+ <path
26
+ d="M966.8023 256.17345 57.196677 256.17345c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.850799 56.850799-56.850799l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.850799l0 0C1023.653099 230.720755 998.200404 256.17345 966.8023 256.17345z"
27
+ p-id="1694"
28
+ />
29
+ </svg>
30
+ </div>
31
+ </template>
32
+
33
+ <script>
34
+ export default {
35
+ name: 'Hamburger',
36
+ props: {
37
+ isActive: {
38
+ type: Boolean,
39
+ default: false
40
+ },
41
+ toggleClick: {
42
+ type: Function,
43
+ default: null
44
+ }
45
+ }
46
+ }
47
+ </script>
48
+
49
+ <style scoped>
50
+ .hamburger {
51
+ display: inline-block;
52
+ cursor: pointer;
53
+ width: 20px;
54
+ height: 20px;
55
+ transform: rotate(90deg);
56
+ transition: .38s;
57
+ transform-origin: 50% 50%;
58
+ }
59
+ .hamburger.is-active {
60
+ transform: rotate(0deg);
61
+ }
62
+ </style>