expressa 2.0.16 → 2.0.18

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 (208) hide show
  1. package/.circleci/config.yml +21 -21
  2. package/.eslintrc.json +29 -29
  3. package/LICENSE +21 -21
  4. package/README.md +137 -137
  5. package/auth/index.js +76 -76
  6. package/auth/jwt.js +31 -31
  7. package/controllers/collections.js +260 -258
  8. package/controllers/install.js +105 -105
  9. package/controllers/status.js +43 -43
  10. package/controllers/users.js +52 -52
  11. package/cypress/fixtures/example.json +4 -4
  12. package/cypress/integration/0_install_spec.js +8 -8
  13. package/cypress/integration/custom_collections.js +28 -28
  14. package/cypress/integration/home.js +9 -9
  15. package/cypress/integration/settings.js +34 -34
  16. package/cypress/integration/users.js +61 -61
  17. package/cypress/plugins/index.js +17 -17
  18. package/cypress/screenshots/users.js/User Management -- Can log in as non-admin, but cannot create users (failed).png +0 -0
  19. package/cypress/support/commands.js +54 -54
  20. package/cypress/support/index.js +20 -20
  21. package/cypress/support/util.js +10 -10
  22. package/cypress.json +4 -4
  23. package/db/cached.js +40 -40
  24. package/db/file.js +112 -112
  25. package/db/memory.js +79 -79
  26. package/db/mongo.js +86 -86
  27. package/db/postgres.js +93 -93
  28. package/doc/authentication.md +38 -38
  29. package/doc/automatic-fields.md +12 -12
  30. package/doc/blogexample.md +16 -16
  31. package/doc/custom-endpoints.md +20 -20
  32. package/doc/database.md +23 -23
  33. package/doc/development.md +33 -33
  34. package/doc/listeners.md +103 -103
  35. package/doc/modules.md +8 -8
  36. package/doc/permissions.md +14 -14
  37. package/doc/relationships.md +65 -65
  38. package/doc/testing.md +47 -47
  39. package/doc/uploading-files.md +53 -53
  40. package/index.js +297 -297
  41. package/listeners.js +65 -65
  42. package/listeners_collection_permissions.js +29 -29
  43. package/listeners_users.js +96 -96
  44. package/listeners_validation.js +43 -43
  45. package/middleware/logging.js +30 -30
  46. package/middleware/permissions.js +41 -41
  47. package/modules/access_keys/access_keys.js +32 -32
  48. package/modules/admin/.babelrc +20 -12
  49. package/modules/admin/.editorconfig +14 -14
  50. package/modules/admin/.eslintignore +5 -5
  51. package/modules/admin/.eslintrc.js +197 -197
  52. package/modules/admin/.postcssrc.js +10 -10
  53. package/modules/admin/.travis.yml +5 -5
  54. package/modules/admin/LICENSE +21 -21
  55. package/modules/admin/README.md +88 -88
  56. package/modules/admin/build/build.js +45 -45
  57. package/modules/admin/build/check-versions.js +64 -64
  58. package/modules/admin/build/utils.js +108 -108
  59. package/modules/admin/build/vue-loader.conf.js +5 -5
  60. package/modules/admin/build/webpack.base.conf.js +112 -108
  61. package/modules/admin/build/webpack.dev.conf.js +95 -95
  62. package/modules/admin/build/webpack.prod.conf.js +112 -171
  63. package/modules/admin/config/dev.env.js +8 -8
  64. package/modules/admin/config/index.js +86 -86
  65. package/modules/admin/config/prod.env.js +5 -5
  66. package/modules/admin/dist/favicon.ico +0 -0
  67. package/modules/admin/dist/index.html +1 -0
  68. package/modules/admin/dist/index.html.gz +0 -0
  69. package/modules/admin/dist/static/css/app.9dd57eea.css +1 -0
  70. package/modules/admin/dist/static/css/app.9dd57eea.css.gz +0 -0
  71. package/modules/admin/dist/static/css/chunk-5061.ce0e4bdb.css +1 -0
  72. package/modules/admin/dist/static/css/chunk-5061.ce0e4bdb.css.gz +0 -0
  73. package/modules/admin/dist/static/css/chunk-5b97.7f9cb53e.css +1 -0
  74. package/modules/admin/dist/static/css/chunk-5b97.7f9cb53e.css.gz +0 -0
  75. package/modules/admin/dist/static/css/chunk-621e.b826be8d.css +1 -0
  76. package/modules/admin/dist/static/css/chunk-621e.b826be8d.css.gz +0 -0
  77. package/modules/admin/dist/static/css/chunk-656b.9c828b00.css +1 -0
  78. package/modules/admin/dist/static/css/chunk-656b.9c828b00.css.gz +0 -0
  79. package/modules/admin/dist/static/css/chunk-7291.13514e45.css +0 -0
  80. package/modules/admin/dist/static/css/chunk-7291.13514e45.css.gz +0 -0
  81. package/modules/admin/dist/static/css/chunk-7f29.9c828b00.css +1 -0
  82. package/modules/admin/dist/static/css/chunk-7f29.9c828b00.css.gz +0 -0
  83. package/modules/admin/dist/static/css/chunk-9a95.c647a2ef.css +1 -0
  84. package/modules/admin/dist/static/css/chunk-9a95.c647a2ef.css.gz +0 -0
  85. package/modules/admin/dist/static/css/chunk-b423.5f239333.css +0 -0
  86. package/modules/admin/dist/static/css/chunk-b423.5f239333.css.gz +0 -0
  87. package/modules/admin/dist/static/css/chunk-bd5f.aefa49d7.css +1 -0
  88. package/modules/admin/dist/static/css/chunk-bd5f.aefa49d7.css.gz +0 -0
  89. package/modules/admin/dist/static/css/chunk-e374.025d58bb.css +1 -0
  90. package/modules/admin/dist/static/css/chunk-e374.025d58bb.css.gz +0 -0
  91. package/modules/admin/dist/static/css/chunk-elementUI.3d004d9f.css +1 -0
  92. package/modules/admin/dist/static/css/chunk-elementUI.3d004d9f.css.gz +0 -0
  93. package/modules/admin/dist/static/css/chunk-f075.3a895a1e.css +1 -0
  94. package/modules/admin/dist/static/css/chunk-f075.3a895a1e.css.gz +0 -0
  95. package/modules/admin/dist/static/css/chunk-libs.327ad89e.css +14 -0
  96. package/modules/admin/dist/static/css/chunk-libs.327ad89e.css.gz +0 -0
  97. package/modules/admin/dist/static/fonts/element-icons.6f0a763.ttf +0 -0
  98. package/modules/admin/dist/static/img/404.a57b6f3.png +0 -0
  99. package/modules/admin/dist/static/js/app.e9461593.js +1 -0
  100. package/modules/admin/dist/static/js/app.e9461593.js.gz +0 -0
  101. package/modules/admin/dist/static/js/chunk-09d8.561880e0.js +2 -0
  102. package/modules/admin/dist/static/js/chunk-09d8.561880e0.js.LICENSE.txt +13 -0
  103. package/modules/admin/dist/static/js/chunk-09d8.561880e0.js.LICENSE.txt.gz +0 -0
  104. package/modules/admin/dist/static/js/chunk-09d8.561880e0.js.gz +0 -0
  105. package/modules/admin/dist/static/js/chunk-5061.83e6ccfa.js +1 -0
  106. package/modules/admin/dist/static/js/chunk-5061.83e6ccfa.js.gz +0 -0
  107. package/modules/admin/dist/static/js/chunk-5b97.ac360086.js +1 -0
  108. package/modules/admin/dist/static/js/chunk-5b97.ac360086.js.gz +0 -0
  109. package/modules/admin/dist/static/js/chunk-5e17.a2b69611.js +1 -0
  110. package/modules/admin/dist/static/js/chunk-5e17.a2b69611.js.gz +0 -0
  111. package/modules/admin/dist/static/js/chunk-621e.ccf42393.js +1 -0
  112. package/modules/admin/dist/static/js/chunk-621e.ccf42393.js.gz +0 -0
  113. package/modules/admin/dist/static/js/chunk-656b.9d5b03c0.js +1 -0
  114. package/modules/admin/dist/static/js/chunk-656b.9d5b03c0.js.gz +0 -0
  115. package/modules/admin/dist/static/js/chunk-7291.590524e9.js +1 -0
  116. package/modules/admin/dist/static/js/chunk-7291.590524e9.js.gz +0 -0
  117. package/modules/admin/dist/static/js/chunk-7f29.6ffc142e.js +1 -0
  118. package/modules/admin/dist/static/js/chunk-7f29.6ffc142e.js.gz +0 -0
  119. package/modules/admin/dist/static/js/chunk-9a95.bdd76583.js +1 -0
  120. package/modules/admin/dist/static/js/chunk-9a95.bdd76583.js.gz +0 -0
  121. package/modules/admin/dist/static/js/chunk-b423.387c504c.js +1 -0
  122. package/modules/admin/dist/static/js/chunk-b423.387c504c.js.gz +0 -0
  123. package/modules/admin/dist/static/js/chunk-bd5f.e9509f10.js +1 -0
  124. package/modules/admin/dist/static/js/chunk-bd5f.e9509f10.js.gz +0 -0
  125. package/modules/admin/dist/static/js/chunk-e374.7c87a0dd.js +1 -0
  126. package/modules/admin/dist/static/js/chunk-e374.7c87a0dd.js.gz +0 -0
  127. package/modules/admin/dist/static/js/chunk-e7c3.e5df8ceb.js +1 -0
  128. package/modules/admin/dist/static/js/chunk-e7c3.e5df8ceb.js.gz +0 -0
  129. package/modules/admin/dist/static/js/chunk-elementUI.b0c99c08.js +1 -0
  130. package/modules/admin/dist/static/js/chunk-elementUI.b0c99c08.js.gz +0 -0
  131. package/modules/admin/dist/static/js/chunk-f075.315ceec1.js +1 -0
  132. package/modules/admin/dist/static/js/chunk-f075.315ceec1.js.gz +0 -0
  133. package/modules/admin/dist/static/js/chunk-libs.06c38828.js +2 -0
  134. package/modules/admin/dist/static/js/chunk-libs.06c38828.js.LICENSE.txt +126 -0
  135. package/modules/admin/dist/static/js/chunk-libs.06c38828.js.LICENSE.txt.gz +0 -0
  136. package/modules/admin/dist/static/js/chunk-libs.06c38828.js.gz +0 -0
  137. package/modules/admin/index.html +16 -16
  138. package/modules/admin/package.json +101 -98
  139. package/modules/admin/src/App.vue +11 -11
  140. package/modules/admin/src/api/login.js +26 -26
  141. package/modules/admin/src/api/table.js +9 -9
  142. package/modules/admin/src/components/Breadcrumb/index.vue +79 -79
  143. package/modules/admin/src/components/Hamburger/index.vue +62 -62
  144. package/modules/admin/src/components/JSONEditor.vue +180 -180
  145. package/modules/admin/src/components/SvgIcon/index.vue +43 -43
  146. package/modules/admin/src/icons/index.js +9 -9
  147. package/modules/admin/src/icons/svgo.yml +22 -22
  148. package/modules/admin/src/main.js +42 -41
  149. package/modules/admin/src/permission.js +49 -49
  150. package/modules/admin/src/router/index.js +200 -200
  151. package/modules/admin/src/store/getters.js +11 -11
  152. package/modules/admin/src/store/index.js +17 -17
  153. package/modules/admin/src/store/modules/app.js +43 -43
  154. package/modules/admin/src/store/modules/user.js +104 -104
  155. package/modules/admin/src/styles/element-ui.scss +29 -29
  156. package/modules/admin/src/styles/index.scss +78 -78
  157. package/modules/admin/src/styles/mixin.scss +27 -27
  158. package/modules/admin/src/styles/sidebar.scss +133 -133
  159. package/modules/admin/src/styles/transition.scss +46 -46
  160. package/modules/admin/src/styles/variables.scss +4 -4
  161. package/modules/admin/src/utils/auth.js +15 -15
  162. package/modules/admin/src/utils/index.js +74 -74
  163. package/modules/admin/src/utils/request.js +48 -48
  164. package/modules/admin/src/utils/validate.js +31 -31
  165. package/modules/admin/src/views/404.vue +235 -235
  166. package/modules/admin/src/views/Dev.vue +33 -33
  167. package/modules/admin/src/views/EditDocument.vue +116 -116
  168. package/modules/admin/src/views/Endpoints.vue +279 -279
  169. package/modules/admin/src/views/Home.vue +84 -84
  170. package/modules/admin/src/views/Install.vue +79 -79
  171. package/modules/admin/src/views/ListDocuments.vue +72 -72
  172. package/modules/admin/src/views/ListDocuments2.vue +462 -462
  173. package/modules/admin/src/views/ManageListeners.vue +67 -67
  174. package/modules/admin/src/views/ManageMiddleware.vue +43 -43
  175. package/modules/admin/src/views/ManagePermissions.vue +75 -75
  176. package/modules/admin/src/views/ViewRequest.vue +77 -77
  177. package/modules/admin/src/views/form/index.vue +91 -91
  178. package/modules/admin/src/views/layout/Layout.vue +69 -69
  179. package/modules/admin/src/views/layout/components/AppMain.vue +41 -41
  180. package/modules/admin/src/views/layout/components/Navbar.vue +97 -97
  181. package/modules/admin/src/views/layout/components/Sidebar/Item.vue +29 -29
  182. package/modules/admin/src/views/layout/components/Sidebar/Link.vue +39 -39
  183. package/modules/admin/src/views/layout/components/Sidebar/SidebarItem.vue +103 -103
  184. package/modules/admin/src/views/layout/components/Sidebar/index.vue +62 -62
  185. package/modules/admin/src/views/layout/components/index.js +3 -3
  186. package/modules/admin/src/views/layout/mixin/ResizeHandler.js +41 -41
  187. package/modules/admin/src/views/login/index.vue +195 -195
  188. package/modules/admin/src/views/tree/index.vue +77 -77
  189. package/modules/collections/collections.js +39 -39
  190. package/modules/core/core.js +197 -197
  191. package/modules/logging/logging.js +88 -88
  192. package/modules/permissions/permissions.js +106 -106
  193. package/package.json +59 -59
  194. package/scripts/expressa +12 -12
  195. package/scripts/run_cypress_tests.sh +5 -5
  196. package/scripts/run_db_tests.sh +8 -8
  197. package/test/0-install.js +96 -96
  198. package/test/collections.js +431 -431
  199. package/test/collections.querying.js +288 -289
  200. package/test/db.js +258 -258
  201. package/test/db.strings.js +73 -73
  202. package/test/db.updating.js +144 -144
  203. package/test/logging.js +29 -29
  204. package/test/test.js +93 -94
  205. package/test/testserver.js +17 -17
  206. package/test/testutils.js +136 -136
  207. package/test/users.js +425 -425
  208. package/util.js +522 -522
@@ -0,0 +1,126 @@
1
+ /*
2
+ object-assign
3
+ (c) Sindre Sorhus
4
+ @license MIT
5
+ */
6
+
7
+ /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
8
+ * @license MIT */
9
+
10
+ /*!
11
+ * Bootstrap v4.6.1 (https://getbootstrap.com/)
12
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
13
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
14
+ */
15
+
16
+ /*!
17
+ * JavaScript Cookie v2.2.0
18
+ * https://github.com/js-cookie/js-cookie
19
+ *
20
+ * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
21
+ * Released under the MIT license
22
+ */
23
+
24
+ /*!
25
+ * Sizzle CSS Selector Engine v2.3.6
26
+ * https://sizzlejs.com/
27
+ *
28
+ * Copyright JS Foundation and other contributors
29
+ * Released under the MIT license
30
+ * https://js.foundation/
31
+ *
32
+ * Date: 2021-02-16
33
+ */
34
+
35
+ /*!
36
+ * Vue.js v2.5.17
37
+ * (c) 2014-2018 Evan You
38
+ * Released under the MIT License.
39
+ */
40
+
41
+ /*!
42
+ * jQuery JavaScript Library v3.6.0
43
+ * https://jquery.com/
44
+ *
45
+ * Includes Sizzle.js
46
+ * https://sizzlejs.com/
47
+ *
48
+ * Copyright OpenJS Foundation and other contributors
49
+ * Released under the MIT license
50
+ * https://jquery.org/license
51
+ *
52
+ * Date: 2021-03-02T17:08Z
53
+ */
54
+
55
+ /**
56
+ * Checks if an event is supported in the current execution environment.
57
+ *
58
+ * NOTE: This will not work correctly for non-generic events such as `change`,
59
+ * `reset`, `load`, `error`, and `select`.
60
+ *
61
+ * Borrows from Modernizr.
62
+ *
63
+ * @param {string} eventNameSuffix Event name, e.g. "click".
64
+ * @param {?boolean} capture Check if the capture phase is supported.
65
+ * @return {boolean} True if the event is supported.
66
+ * @internal
67
+ * @license Modernizr 3.0.0pre (Custom Build) | MIT
68
+ */
69
+
70
+ /**
71
+ * vuex v3.0.1
72
+ * (c) 2017 Evan You
73
+ * @license MIT
74
+ */
75
+
76
+ /** @license React v0.19.1
77
+ * scheduler.production.min.js
78
+ *
79
+ * Copyright (c) Facebook, Inc. and its affiliates.
80
+ *
81
+ * This source code is licensed under the MIT license found in the
82
+ * LICENSE file in the root directory of this source tree.
83
+ */
84
+
85
+ /** @license React v16.14.0
86
+ * react-dom.production.min.js
87
+ *
88
+ * Copyright (c) Facebook, Inc. and its affiliates.
89
+ *
90
+ * This source code is licensed under the MIT license found in the
91
+ * LICENSE file in the root directory of this source tree.
92
+ */
93
+
94
+ /** @license React v16.14.0
95
+ * react.production.min.js
96
+ *
97
+ * Copyright (c) Facebook, Inc. and its affiliates.
98
+ *
99
+ * This source code is licensed under the MIT license found in the
100
+ * LICENSE file in the root directory of this source tree.
101
+ */
102
+
103
+ /**!
104
+ * @fileOverview Kickass library to create and place poppers near their reference elements.
105
+ * @version 1.16.1
106
+ * @license
107
+ * Copyright (c) 2016 Federico Zivolo and contributors
108
+ *
109
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
110
+ * of this software and associated documentation files (the "Software"), to deal
111
+ * in the Software without restriction, including without limitation the rights
112
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
113
+ * copies of the Software, and to permit persons to whom the Software is
114
+ * furnished to do so, subject to the following conditions:
115
+ *
116
+ * The above copyright notice and this permission notice shall be included in all
117
+ * copies or substantial portions of the Software.
118
+ *
119
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
120
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
121
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
122
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
123
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
124
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
125
+ * SOFTWARE.
126
+ */
@@ -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,98 +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.4.6",
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
- "autoprefixer": "8.5.0",
41
- "babel-core": "6.26.0",
42
- "babel-eslint": "8.2.6",
43
- "babel-helper-vue-jsx-merge-props": "2.0.3",
44
- "babel-loader": "7.1.5",
45
- "babel-plugin-syntax-jsx": "6.18.0",
46
- "babel-plugin-transform-runtime": "6.23.0",
47
- "babel-plugin-transform-vue-jsx": "3.7.0",
48
- "babel-preset-env": "1.7.0",
49
- "babel-preset-stage-2": "6.24.1",
50
- "chalk": "2.4.1",
51
- "compression-webpack-plugin": "^6.1.1",
52
- "copy-webpack-plugin": "^5.1.0",
53
- "css-loader": "1.0.0",
54
- "eslint": "^7.0.0",
55
- "eslint-friendly-formatter": "^4.0.1",
56
- "eslint-loader": "^4.0.2",
57
- "eslint-plugin-vue": "^7.0.0",
58
- "file-loader": "1.1.11",
59
- "friendly-errors-webpack-plugin": "1.7.0",
60
- "html-webpack-plugin": "^4.0.0",
61
- "mini-css-extract-plugin": "0.4.1",
62
- "node-notifier": "8.0.1",
63
- "node-sass": "^6.0.1",
64
- "optimize-css-assets-webpack-plugin": "5.0.0",
65
- "ora": "3.0.0",
66
- "path-to-regexp": "2.4.0",
67
- "portfinder": "1.0.16",
68
- "postcss-import": "12.0.0",
69
- "postcss-loader": "2.1.6",
70
- "postcss-url": "7.3.2",
71
- "rimraf": "2.6.2",
72
- "sass-loader": "7.0.3",
73
- "script-ext-html-webpack-plugin": "^2.1.5",
74
- "semver": "5.5.0",
75
- "shelljs": "0.8.5",
76
- "svg-sprite-loader": "3.8.0",
77
- "svgo": "^1.3.2",
78
- "terser-webpack-plugin": "^2.2.3",
79
- "url-loader": "1.0.1",
80
- "vue-loader": "15.3.0",
81
- "vue-style-loader": "4.1.2",
82
- "vue-template-compiler": "2.5.17",
83
- "webpack": "^4.41.2",
84
- "webpack-bundle-analyzer": "^3.6.0",
85
- "webpack-cli": "^3.3.11",
86
- "webpack-dev-server": "^3.9.0",
87
- "webpack-merge": "4.1.4"
88
- },
89
- "engines": {
90
- "node": ">= 6.0.0",
91
- "npm": ">= 3.0.0"
92
- },
93
- "browserslist": [
94
- "> 1%",
95
- "last 2 versions",
96
- "not ie <= 8"
97
- ]
98
- }
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>