@misstalor17/elpis 1.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 (84) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc +56 -0
  3. package/README.md +6 -0
  4. package/app/controller/base.js +43 -0
  5. package/app/controller/business.js +121 -0
  6. package/app/controller/project.js +75 -0
  7. package/app/controller/view.js +24 -0
  8. package/app/extend/logger.js +37 -0
  9. package/app/middleware/api-params-verify.js +70 -0
  10. package/app/middleware/api-sign-verify.js +31 -0
  11. package/app/middleware/error-handler.js +32 -0
  12. package/app/middleware/project-handler.js +28 -0
  13. package/app/middleware.js +44 -0
  14. package/app/pages/asserts/custom.css +12 -0
  15. package/app/pages/boot.js +45 -0
  16. package/app/pages/common/curl.js +96 -0
  17. package/app/pages/common/utils.js +2 -0
  18. package/app/pages/dashboard/complex-view/header-view/complex-view/sub-menu.vue +22 -0
  19. package/app/pages/dashboard/complex-view/header-view/header-view.vue +106 -0
  20. package/app/pages/dashboard/complex-view/iframe-view/iframe-view.vue +45 -0
  21. package/app/pages/dashboard/complex-view/schema-view/complex-view/search-panel/search-panel.vue +33 -0
  22. package/app/pages/dashboard/complex-view/schema-view/complex-view/table-panel/table-panel.vue +105 -0
  23. package/app/pages/dashboard/complex-view/schema-view/components/component-config.js +23 -0
  24. package/app/pages/dashboard/complex-view/schema-view/components/create-form/create-form.vue +85 -0
  25. package/app/pages/dashboard/complex-view/schema-view/components/detail-panel/detail-panel.vue +90 -0
  26. package/app/pages/dashboard/complex-view/schema-view/components/edit-form/edit-form.vue +113 -0
  27. package/app/pages/dashboard/complex-view/schema-view/hook/schema.js +109 -0
  28. package/app/pages/dashboard/complex-view/schema-view/schema-view.vue +66 -0
  29. package/app/pages/dashboard/complex-view/sider-view/complex-view/sub-menu/sub-menu.vue +17 -0
  30. package/app/pages/dashboard/complex-view/sider-view/sider-view.vue +116 -0
  31. package/app/pages/dashboard/dashboard.vue +96 -0
  32. package/app/pages/dashboard/entry.dashboard.js +45 -0
  33. package/app/pages/store/index.js +3 -0
  34. package/app/pages/store/menu.js +60 -0
  35. package/app/pages/store/project.js +17 -0
  36. package/app/pages/widgets/header-container/asserts/logo.png +0 -0
  37. package/app/pages/widgets/header-container/asserts/user.png +0 -0
  38. package/app/pages/widgets/header-container/header-container.vue +105 -0
  39. package/app/pages/widgets/schema-form/complex-view/input/input.vue +120 -0
  40. package/app/pages/widgets/schema-form/complex-view/input-number/input-number.vue +121 -0
  41. package/app/pages/widgets/schema-form/complex-view/select/select.vue +106 -0
  42. package/app/pages/widgets/schema-form/form-item-config.js +20 -0
  43. package/app/pages/widgets/schema-form/schema-form.vue +122 -0
  44. package/app/pages/widgets/schema-search-bar/complex-view/date-range/date-range.vue +42 -0
  45. package/app/pages/widgets/schema-search-bar/complex-view/dynamic-select/dynamic-select.vue +55 -0
  46. package/app/pages/widgets/schema-search-bar/complex-view/input/input.vue +37 -0
  47. package/app/pages/widgets/schema-search-bar/complex-view/select/select.vue +41 -0
  48. package/app/pages/widgets/schema-search-bar/schema-search-bar.vue +109 -0
  49. package/app/pages/widgets/schema-search-bar/search-item-config.js +23 -0
  50. package/app/pages/widgets/schema-table/schema.table.vue +191 -0
  51. package/app/pages/widgets/sider-container/sider-container.vue +34 -0
  52. package/app/public/static/logo.png +0 -0
  53. package/app/public/static/normalize.css +240 -0
  54. package/app/router/business.js +9 -0
  55. package/app/router/project.js +6 -0
  56. package/app/router/view.js +13 -0
  57. package/app/router-schema/business.js +82 -0
  58. package/app/router-schema/project.js +31 -0
  59. package/app/service/base.js +13 -0
  60. package/app/service/project.js +40 -0
  61. package/app/view/entry.tpl +25 -0
  62. package/app/webpack/config/webpack.base.js +204 -0
  63. package/app/webpack/config/webpack.dev.js +56 -0
  64. package/app/webpack/config/webpack.prod.js +116 -0
  65. package/app/webpack/dev.js +52 -0
  66. package/app/webpack/libs/blank.js +1 -0
  67. package/app/webpack/prod.js +17 -0
  68. package/config/config.default.js +3 -0
  69. package/docs/dashboard-model.js +143 -0
  70. package/elpis-core/env.js +23 -0
  71. package/elpis-core/index.js +93 -0
  72. package/elpis-core/loader/config.js +52 -0
  73. package/elpis-core/loader/controller.js +61 -0
  74. package/elpis-core/loader/extend.js +52 -0
  75. package/elpis-core/loader/middleware.js +61 -0
  76. package/elpis-core/loader/router-schema.js +46 -0
  77. package/elpis-core/loader/router.js +43 -0
  78. package/elpis-core/loader/service.js +61 -0
  79. package/index.js +38 -0
  80. package/model/buiness/model.js +200 -0
  81. package/model/index.js +93 -0
  82. package/npminstall-debug.log +218 -0
  83. package/package.json +92 -0
  84. package/test/controller/project.test.js +194 -0
@@ -0,0 +1,200 @@
1
+ module.exports = {
2
+ model: 'dashboard',
3
+ name: '电商系统',
4
+ menu: [{
5
+ key: 'product',
6
+ name: '商品管理',
7
+ menuType: 'module',
8
+ moduleType: 'schema',
9
+ schemaConfig: {
10
+ api: '/api/proj/product',
11
+ schema: {
12
+ type: 'object',
13
+ properties: {
14
+ product_id: {
15
+ type: 'string',
16
+ label: '商品ID',
17
+ tableOption: {
18
+ width: 300,
19
+ 'show-overflow-tooltip': true
20
+ },
21
+ editFormOption:{
22
+ comType:'input',
23
+ disabled:true
24
+ },
25
+ detailPanelOption:{}
26
+ },
27
+ product_name: {
28
+ type: 'string',
29
+ label: '商品名称',
30
+ maxLength:10,
31
+ minLength:3,
32
+ tableOption: {
33
+ width: 200,
34
+ },
35
+ searchOption: {
36
+ comType: 'dynamicSelect',
37
+ api: '/api/proj/product_enum/list'
38
+ },
39
+ createFormOption: {
40
+ comType: 'input',
41
+ default:'Talor'
42
+ },
43
+ editFormOption:{
44
+ comType:'input',
45
+ },
46
+ detailPanelOption:{}
47
+ },
48
+ price: {
49
+ type: 'number',
50
+ label: '价格',
51
+ maximum:1000,
52
+ minimum:30,
53
+ tableOption: {
54
+ width: 200,
55
+ },
56
+ searchOption: {
57
+ comType: 'select',
58
+ enumList: [{
59
+ label: '全部',
60
+ value: 999
61
+ }, {
62
+ label: '¥19.9',
63
+ value: 19.9
64
+ }, {
65
+ label: '¥19.8',
66
+ value: 19.8
67
+ }, {
68
+ label: '¥19.7',
69
+ value: 19.7
70
+ }]
71
+ },
72
+ createFormOption: {
73
+ comType: 'inputNumber'
74
+ },
75
+ editFormOption:{
76
+ comType:'inputNumber',
77
+ },
78
+ detailPanelOption:{}
79
+ },
80
+ inventory: {
81
+ type: 'number',
82
+ label: '库存',
83
+ tableOption: {
84
+ width: 200,
85
+ },
86
+ searchOption: {
87
+ comType: 'input',
88
+ },
89
+ createFormOption: {
90
+ comType: 'select',
91
+ enumList: [{
92
+ label: '100',
93
+ value: 100
94
+ }, {
95
+ label: '200',
96
+ value: 200
97
+ }, {
98
+ label: '300',
99
+ value: 300
100
+ }]
101
+ },
102
+ editFormOption:{
103
+ comType:'select',
104
+ enumList: [{
105
+ label: '100',
106
+ value: 100
107
+ }, {
108
+ label: '200',
109
+ value: 200
110
+ }, {
111
+ label: '300',
112
+ value: 300
113
+ }]
114
+ },
115
+ detailPanelOption:{}
116
+ },
117
+ create_time: {
118
+ type: 'string',
119
+ label: '创建时间',
120
+ tableOption: {
121
+ },
122
+ searchOption: {
123
+ comType: 'dateRange'
124
+ },
125
+ detailPanelOption:{}
126
+ },
127
+ },
128
+ required:['product_name'],
129
+ tableConfig: {
130
+ headerButtons: [{
131
+ label: '新增商品',
132
+ eventKey: 'showComponent',
133
+ eventOption: {
134
+ comName: 'createForm'
135
+ },
136
+ type: 'primary',
137
+ plain: true
138
+ }],
139
+ rowButtons: [{
140
+ label: '查看详情',
141
+ eventKey: 'showComponent',
142
+ eventOption:{
143
+ comName:'detailPanel'
144
+ },
145
+ type: 'primary'
146
+ }, {
147
+ label: '修改',
148
+ eventKey: 'showComponent',
149
+ eventOption:{
150
+ comName:'editForm'
151
+ },
152
+ type: 'warning'
153
+ }, {
154
+ label: '删除',
155
+ eventKey: 'remove',
156
+ eventOption: {
157
+ params: {
158
+ product_id: 'schema::product_id'
159
+ }
160
+ },
161
+ type: 'danger',
162
+ }]
163
+ },
164
+ },
165
+ componentConfig: {
166
+ createForm: {
167
+ title: '新增商品',
168
+ saveBtnText: '保存'
169
+ },
170
+ editForm:{
171
+ title: '修改商品',
172
+ saveBtnText: '保存',
173
+ mainKey:'product_id'
174
+ },
175
+ detailPanel:{
176
+ mainKey:'product_id',
177
+ title: '商品详情'
178
+ }
179
+ }
180
+ }
181
+ },
182
+ {
183
+ key: 'order',
184
+ name: '订单管理',
185
+ menuType: 'module',
186
+ moduleType: 'custom',
187
+ customConfig: {
188
+ path: '/todo'
189
+ }
190
+ },
191
+ {
192
+ key: 'client',
193
+ name: '客户管理',
194
+ menuType: 'module',
195
+ moduleType: 'custom',
196
+ customConfig: {
197
+ path: '/todo'
198
+ }
199
+ }]
200
+ }
package/model/index.js ADDED
@@ -0,0 +1,93 @@
1
+ const _ = require('lodash')
2
+ const path = require('path');
3
+ const glob = require('glob');
4
+ const { sep } = path //兼容不同操作系统的斜杠
5
+
6
+ // project 继承 model 方法
7
+ const projectExtendModel = (model, project) => {
8
+ return _.mergeWith({}, model, project, (modelValue, projValue) => {
9
+ //处理数组合并的特殊情况
10
+ if (Array.isArray(modelValue) && Array.isArray(projValue)) {
11
+ let result = [];
12
+ // 因为 project 继承 model,所以需要处理修改和新增内容的情况
13
+ // project有的键值,model也有 => 修改(重载)
14
+ // project有的键值,model没有 => 新增 (拓展)
15
+ // model有的键值,project没有 => 保留(继承)
16
+
17
+ //处理修改和保留
18
+ for (let i = 0; i < modelValue.length; i++) {
19
+ let modelItem = modelValue[i]
20
+ const projItem = projValue.find(projItem => projItem.key === modelItem.key);
21
+ // project you的键值,model也有,则递归 projectExtendModel 方法覆盖修改
22
+ result.push(projItem ? projectExtendModel(modelItem, projItem) : modelItem)
23
+ }
24
+ //处理新增
25
+ for (let i = 0; i < projValue.length; i++) {
26
+ let projItem = projValue[i]
27
+ const modelItem = modelValue.find(modelItem => modelItem.key === projItem.key)
28
+ if (!modelItem) {
29
+ result.push(projItem)
30
+ }
31
+ }
32
+ return result;
33
+ }
34
+ })
35
+ }
36
+
37
+ /**
38
+ * 解析 module 配置,并返回组织且继承后的数据结构
39
+ * [{
40
+ * model:${model}
41
+ * project:{
42
+ * pro1Key:${pro1},
43
+ * pro2Key:${pro2}
44
+ * }
45
+ * }]
46
+ */
47
+ module.exports = (app) => {
48
+ const modelList = [];
49
+ //遍历当前文件夹,构造模型数据结构,挂载到 moduleList 上
50
+ const modelPath = path.resolve(process.cwd(), `.${sep}model`);
51
+ const fileList = glob.sync(path.resolve(modelPath, `.${sep}**${sep}**.js`))
52
+
53
+ fileList.forEach(file => {
54
+ if (file.indexOf('index.js') > -1) { return; }
55
+ //区分配置类型 module / project
56
+ const type = file.indexOf(`${sep}project${sep}`) > -1 ? 'project' : 'model';
57
+
58
+ if (type === 'project') {
59
+ const modelKey = file.match(/\/model\/(.*?)\/project/)?.[1]
60
+ const projKey = file.match(/\/project\/(.*?)\.js/)?.[1]
61
+ let modelItem = modelList.find(item => item.model?.key === modelKey)
62
+ if (!modelItem) { //初始化 model 数据结构
63
+ modelItem = {}
64
+ modelList.push(modelItem)
65
+ }
66
+ if (!modelItem.project) { //初始化 project 数据结构
67
+ modelItem.project = {}
68
+ }
69
+ modelItem.project[projKey] = require(path.resolve(file))
70
+ modelItem.project[projKey].key = projKey //注入 projectKey
71
+ modelItem.project[projKey].modelKey = modelKey //注入 modelKey
72
+ }
73
+ if (type === 'model') {
74
+ const modelKey = file.match(/\/model\/(.*?)\/model\.js/)?.[1]
75
+ let modelItem = modelList.find(item => item.model?.key === modelKey)
76
+ if (!modelItem) {//初始化 model 数据结构
77
+ modelItem = {}
78
+ modelList.push(modelItem)
79
+ }
80
+ modelItem.model = require(path.resolve(file))
81
+ modelItem.model.key = modelKey; // 注入 modelKey
82
+ }
83
+ });
84
+
85
+ //数据进一步整理, project => 继承 model
86
+ modelList.forEach(item => {
87
+ const { model, project } = item
88
+ for (const key in project) {
89
+ project[key] = projectExtendModel(model, project[key])
90
+ }
91
+ })
92
+ return modelList;
93
+ }
@@ -0,0 +1,218 @@
1
+ {
2
+ root: '/Users/aiden/Desktop/elpis/elpis',
3
+ registry: 'https://registry.npmmirror.com',
4
+ pkgs: [
5
+ {
6
+ name: '@element-plus/icons.vue',
7
+ version: 'latest',
8
+ type: 'tag',
9
+ alias: undefined,
10
+ arg: [Result]
11
+ }
12
+ ],
13
+ production: false,
14
+ cacheStrict: false,
15
+ cacheDir: '/Users/aiden/.npminstall_tarball',
16
+ env: {
17
+ npm_config_registry: 'https://registry.npmmirror.com',
18
+ npm_config_argv: '{"remain":[],"cooked":["--fix-bug-versions","--china","--userconfig=/Users/aiden/.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com","@element-plus/icons.vue","--save"],"original":["--fix-bug-versions","--china","--userconfig=/Users/aiden/.cnpmrc","--disturl=https://cdn.npmmirror.com/binaries/node","--registry=https://registry.npmmirror.com","@element-plus/icons.vue","--save"]}',
19
+ npm_config_user_agent: 'npminstall/7.12.0 npm/? node/v18.16.0 darwin arm64',
20
+ npm_config_cache: '/Users/aiden/.npminstall_tarball',
21
+ NODE: '/Users/aiden/.nvm/versions/node/v18.16.0/bin/node',
22
+ npm_node_execpath: '/Users/aiden/.nvm/versions/node/v18.16.0/bin/node',
23
+ npm_execpath: '/Users/aiden/.nvm/versions/node/v18.16.0/lib/node_modules/cnpm/node_modules/npminstall/bin/install.js',
24
+ npm_config_userconfig: '/Users/aiden/.cnpmrc',
25
+ npm_config_disturl: 'https://cdn.npmmirror.com/binaries/node',
26
+ npm_config_r: 'https://registry.npmmirror.com',
27
+ COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
28
+ EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver',
29
+ NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
30
+ NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
31
+ PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
32
+ CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
33
+ OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
34
+ CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
35
+ ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
36
+ ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
37
+ SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
38
+ SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
39
+ NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
40
+ PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
41
+ PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
42
+ PUPPETEER_CHROME_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
43
+ PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
44
+ PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
45
+ PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
46
+ SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
47
+ SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
48
+ RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
49
+ RE2_DOWNLOAD_SKIP_PATH: 'true',
50
+ PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma',
51
+ npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
52
+ npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
53
+ npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
54
+ npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
55
+ npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs',
56
+ npm_config_gl_binary_host: 'https://cdn.npmmirror.com/binaries/gl',
57
+ RIPGREP_PREBUILT_BINARIES_MIRROR: 'https://registry.npmmirror.com/-/binary/ripgrep-prebuilt',
58
+ npm_rootpath: '/Users/aiden/Desktop/elpis/elpis',
59
+ INIT_CWD: '/Users/aiden/Desktop/elpis/elpis'
60
+ },
61
+ binaryMirrors: {
62
+ ENVS: {
63
+ COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com',
64
+ EDGEDRIVER_CDNURL: 'https://npmmirror.com/mirrors/edgedriver',
65
+ NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
66
+ NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node',
67
+ PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs',
68
+ CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver',
69
+ OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver',
70
+ CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip',
71
+ ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/',
72
+ ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/',
73
+ SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass',
74
+ SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc',
75
+ NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v',
76
+ PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
77
+ PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
78
+ PUPPETEER_CHROME_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
79
+ PUPPETEER_CHROME_HEADLESS_SHELL_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
80
+ PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright',
81
+ PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing',
82
+ SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli',
83
+ SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl',
84
+ RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2',
85
+ RE2_DOWNLOAD_SKIP_PATH: 'true',
86
+ PRISMA_ENGINES_MIRROR: 'https://cdn.npmmirror.com/binaries/prisma',
87
+ npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3',
88
+ npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar',
89
+ npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp',
90
+ npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips',
91
+ npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs',
92
+ npm_config_gl_binary_host: 'https://cdn.npmmirror.com/binaries/gl',
93
+ RIPGREP_PREBUILT_BINARIES_MIRROR: 'https://registry.npmmirror.com/-/binary/ripgrep-prebuilt'
94
+ },
95
+ '@ali/s2': { host: 'https://cdn.npmmirror.com/binaries/looksgood-s2' },
96
+ sharp: { replaceHostFiles: [Array], replaceHostMap: [Object] },
97
+ '@tensorflow/tfjs-node': {
98
+ replaceHostFiles: [Array],
99
+ replaceHostRegExpMap: [Object],
100
+ replaceHostMap: [Object]
101
+ },
102
+ cypress: {
103
+ host: 'https://cdn.npmmirror.com/binaries/cypress',
104
+ newPlatforms: [Object]
105
+ },
106
+ 'utf-8-validate': {
107
+ host: 'https://cdn.npmmirror.com/binaries/utf-8-validate/v{version}'
108
+ },
109
+ xprofiler: {
110
+ remote_path: './xprofiler/v{version}/',
111
+ host: 'https://cdn.npmmirror.com/binaries'
112
+ },
113
+ leveldown: { host: 'https://cdn.npmmirror.com/binaries/leveldown/v{version}' },
114
+ couchbase: { host: 'https://cdn.npmmirror.com/binaries/couchbase/v{version}' },
115
+ gl: { host: 'https://cdn.npmmirror.com/binaries/gl/v{version}' },
116
+ sqlite3: {
117
+ host: 'https://cdn.npmmirror.com/binaries/sqlite3',
118
+ remote_path: 'v{version}'
119
+ },
120
+ '@journeyapps/sqlcipher': { host: 'https://cdn.npmmirror.com/binaries' },
121
+ grpc: {
122
+ host: 'https://cdn.npmmirror.com/binaries',
123
+ remote_path: '{name}/v{version}'
124
+ },
125
+ 'grpc-tools': { host: 'https://cdn.npmmirror.com/binaries' },
126
+ wrtc: {
127
+ host: 'https://cdn.npmmirror.com/binaries',
128
+ remote_path: '{name}/v{version}'
129
+ },
130
+ fsevents: { host: 'https://cdn.npmmirror.com/binaries/fsevents' },
131
+ nodejieba: { host: 'https://cdn.npmmirror.com/binaries/nodejieba' },
132
+ canvas: {
133
+ host: 'https://cdn.npmmirror.com/binaries/canvas',
134
+ remote_path: 'v{version}'
135
+ },
136
+ 'skia-canvas': { host: 'https://cdn.npmmirror.com/binaries/skia-canvas' },
137
+ 'flow-bin': {
138
+ replaceHost: 'https://github.com/facebook/flow/releases/download/v',
139
+ host: 'https://cdn.npmmirror.com/binaries/flow/v'
140
+ },
141
+ 'jpegtran-bin': {
142
+ replaceHost: [Array],
143
+ host: 'https://cdn.npmmirror.com/binaries/jpegtran-bin'
144
+ },
145
+ 'cwebp-bin': {
146
+ replaceHost: [Array],
147
+ host: 'https://cdn.npmmirror.com/binaries/cwebp-bin'
148
+ },
149
+ 'zopflipng-bin': {
150
+ replaceHost: [Array],
151
+ host: 'https://cdn.npmmirror.com/binaries/zopflipng-bin'
152
+ },
153
+ 'optipng-bin': {
154
+ replaceHost: [Array],
155
+ host: 'https://cdn.npmmirror.com/binaries/optipng-bin'
156
+ },
157
+ mozjpeg: {
158
+ replaceHost: [Array],
159
+ host: 'https://cdn.npmmirror.com/binaries/mozjpeg-bin'
160
+ },
161
+ gifsicle: {
162
+ replaceHost: [Array],
163
+ host: 'https://cdn.npmmirror.com/binaries/gifsicle-bin'
164
+ },
165
+ 'pngquant-bin': {
166
+ replaceHost: [Array],
167
+ host: 'https://cdn.npmmirror.com/binaries/pngquant-bin',
168
+ replaceHostMap: [Object]
169
+ },
170
+ 'pngcrush-bin': {
171
+ replaceHost: [Array],
172
+ host: 'https://cdn.npmmirror.com/binaries/pngcrush-bin'
173
+ },
174
+ 'jpeg-recompress-bin': {
175
+ replaceHost: [Array],
176
+ host: 'https://cdn.npmmirror.com/binaries/jpeg-recompress-bin'
177
+ },
178
+ 'advpng-bin': {
179
+ replaceHost: [Array],
180
+ host: 'https://cdn.npmmirror.com/binaries/advpng-bin'
181
+ },
182
+ 'pngout-bin': {
183
+ replaceHost: [Array],
184
+ host: 'https://cdn.npmmirror.com/binaries/pngout-bin'
185
+ },
186
+ 'jpegoptim-bin': {
187
+ replaceHost: [Array],
188
+ host: 'https://cdn.npmmirror.com/binaries/jpegoptim-bin'
189
+ },
190
+ argon2: { host: 'https://cdn.npmmirror.com/binaries/argon2' },
191
+ 'ali-zeromq': { host: 'https://cdn.npmmirror.com/binaries/ali-zeromq' },
192
+ 'ali-usb_ctl': { host: 'https://cdn.npmmirror.com/binaries/ali-usb_ctl' },
193
+ 'gdal-async': { host: 'https://cdn.npmmirror.com/binaries/node-gdal-async' },
194
+ 'libpg-query': { host: 'https://cdn.npmmirror.com/binaries' }
195
+ },
196
+ forbiddenLicenses: null,
197
+ flatten: false,
198
+ proxy: undefined,
199
+ prune: false,
200
+ disableFallbackStore: false,
201
+ workspacesMap: Map(0) {},
202
+ enableWorkspace: false,
203
+ workspaceRoot: '/Users/aiden/Desktop/elpis/elpis',
204
+ isWorkspaceRoot: true,
205
+ isWorkspacePackage: false,
206
+ offline: false,
207
+ strictSSL: true,
208
+ ignoreScripts: false,
209
+ foregroundScripts: false,
210
+ ignoreOptionalDependencies: false,
211
+ detail: false,
212
+ forceLinkLatest: false,
213
+ trace: false,
214
+ engineStrict: false,
215
+ registryOnly: false,
216
+ client: false,
217
+ autoFixVersion: [Function: autoFixVersion]
218
+ }
package/package.json ADDED
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "@misstalor17/elpis",
3
+ "version": "1.0.0",
4
+ "description": "//elpis ##一个企业级应用框架,应用全栈能力实现",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "lint": "eslint --quiet --ext js,vue .",
8
+ "test": "_ENV='local' mocha 'test/**/*.js'"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://git.code.tencent.com/Talor/elpis.git"
13
+ },
14
+ "author": "Talor",
15
+ "license": "ISC",
16
+ "dependencies": {
17
+ "@babel/core": "^7.24.0",
18
+ "@babel/runtime": "^7.28.6",
19
+ "@element-plus/icons-vue": "^2.3.2",
20
+ "ajv": "^6.10.2",
21
+ "axios": "^0.19.2",
22
+ "echarts": "^5.5.0",
23
+ "element-plus": "^2.3.7",
24
+ "generate-password": "^1.7.1",
25
+ "glob": "^7.1.4",
26
+ "jsonwebtoken": "^9.0.2",
27
+ "knex": "^0.19.0",
28
+ "koa": "2.7.0",
29
+ "koa-bodyparser": "^4.2.1",
30
+ "koa-nunjucks-2": "^3.0.2",
31
+ "koa-router": "^7.4.0",
32
+ "koa-static": "^5.0.0",
33
+ "koa-useragent": "2.0.0",
34
+ "koa2-cors": "^2.0.6",
35
+ "less": "^3.8.1",
36
+ "lodash": "^4.17.21",
37
+ "log4js": "^6.9.1",
38
+ "md5": "^2.2.1",
39
+ "moment": "^2.29.4",
40
+ "mysql": "^2.18.1",
41
+ "node-schedule": "^2.1.1",
42
+ "nodemon": "^1.19.2",
43
+ "path": "^0.12.7",
44
+ "pinia": "^2.1.6",
45
+ "superagent": "^8.1.2",
46
+ "vue": "^3.3.4",
47
+ "vue-json-viewer": "^3.0.4",
48
+ "vue-router": "^4.2.4",
49
+ "vuex": "^4.1.0",
50
+ "@babel/plugin-transform-runtime": "^7.29.0",
51
+ "@babel/preset-env": "^7.4.5",
52
+ "babel-loader": "^8.0.4",
53
+ "clean-webpack-plugin": "^0.1.19",
54
+ "consoler": "^0.2.0",
55
+ "css-loader": "^0.23.1",
56
+ "css-minimizer-webpack-plugin": "^5.0.1",
57
+ "directory-named-webpack-plugin": "^4.0.1",
58
+ "express": "^4.18.2",
59
+ "file-loader": "^6.2.0",
60
+ "happypack": "^5.0.1",
61
+ "html-webpack-inject-attributes-plugin": "^1.0.1",
62
+ "html-webpack-plugin": "^5.5.3",
63
+ "less-loader": "^11.1.3",
64
+ "mini-css-extract-plugin": "^2.7.6",
65
+ "style-loader": "^0.14.1",
66
+ "terser-webpack-plugin": "^5.3.16",
67
+ "url-loader": "^4.1.1",
68
+ "vue-loader": "^17.2.2",
69
+ "vue-style-loader": "^4.1.2",
70
+ "webpack": "^5.88.1",
71
+ "webpack-dev-middleware": "^6.1.1",
72
+ "webpack-hot-middleware": "^2.25.4",
73
+ "webpack-merge": "^4.2.1"
74
+ },
75
+ "devDependencies": {
76
+ "assert": "^2.0.0",
77
+ "babel-eslint": "^10.0.2",
78
+ "eslint": "^7.32.0",
79
+ "eslint-plugin-import": "^2.28.1",
80
+ "eslint-plugin-vue": "^9.17.0",
81
+ "ghooks": "~1.0.3",
82
+ "mocha": "^6.1.4",
83
+ "supertest": "^4.0.2",
84
+ "validate-commit-msg": "~2.14.0"
85
+ },
86
+ "config": {
87
+ "ghooks": {
88
+ "commit-msg": "validate-commit-msg",
89
+ "pre-commit": "npm run lint"
90
+ }
91
+ }
92
+ }