Commit a96cb2509cc3c233c884156061e8afd05cec68ef

Authored by Vben
1 parent 8b6e07b7

refactor(test-server): improve test service code

Too many changes to show.

To preserve performance only 27 of 29 files are displayed.

.env.development
... ... @@ -6,7 +6,7 @@ VITE_PUBLIC_PATH = /
6 6  
7 7 # Cross-domain proxy, you can configure multiple
8 8 # Please note that no line breaks
9   -VITE_PROXY = [["/basic-api","http://localhost:3000"],["/upload","http://localhost:3001/upload"]]
  9 +VITE_PROXY = [["/basic-api","http://localhost:3000"],["/upload","http://localhost:3300/upload"]]
10 10 # VITE_PROXY=[["/api","https://vvbin.cn/test"]]
11 11  
12 12 # Delete console
... ...
.gitignore
... ... @@ -4,7 +4,7 @@ dist
4 4 .npmrc
5 5 .cache
6 6  
7   -test/upload-server/static
  7 +test/server/static
8 8  
9 9 .local
10 10 # local env files
... ...
.vscode/settings.json
1 1 {
  2 + "cSpell.words": ["vben", "windi"],
2 3 "typescript.tsdk": "./node_modules/typescript/lib",
3 4 "volar.tsPlugin": true,
4 5 "volar.tsPluginStatus": false,
... ... @@ -26,6 +27,7 @@
26 27 "files.trimTrailingWhitespace": true,
27 28 "files.insertFinalNewline": true,
28 29 "files.trimFinalNewlines": true,
  30 + "files.eol": "\n",
29 31 "search.exclude": {
30 32 "**/node_modules": true,
31 33 "**/*.log": true,
... ...
package.json
... ... @@ -121,7 +121,7 @@
121 121 "vite-plugin-style-import": "^0.10.1",
122 122 "vite-plugin-svg-icons": "^0.7.0",
123 123 "vite-plugin-theme": "^0.8.1",
124   - "vite-plugin-windicss": "^0.17.0",
  124 + "vite-plugin-windicss": "^1.0.1",
125 125 "vue-eslint-parser": "^7.6.0",
126 126 "vue-tsc": "^0.1.7"
127 127 },
... ...
src/components/Scrollbar/src/bar.ts
... ... @@ -35,6 +35,7 @@ export default defineComponent({
35 35 if (e.ctrlKey || e.button === 2) {
36 36 return;
37 37 }
  38 + window.getSelection()?.removeAllRanges();
38 39 startDrag(e);
39 40 barStore.value[bar.value.axis] =
40 41 e.currentTarget[bar.value.offset] -
... ...
src/views/demo/feat/ws/index.vue
... ... @@ -70,7 +70,7 @@
70 70 },
71 71 setup() {
72 72 const state = reactive({
73   - server: 'ws://localhost:3380/test',
  73 + server: 'ws://localhost:3300/test',
74 74 sendValue: '',
75 75 recordList: [] as { id: number; time: number; res: string }[],
76 76 });
... ...
test/server/README.md 0 → 100644
  1 +# Test Server
  2 +
  3 +It is used to start the test interface service, which can test the upload, websocket, login and other interfaces.
  4 +
  5 +## Usage
  6 +
  7 +```bash
  8 +
  9 +cd ./test/server
  10 +
  11 +yarn
  12 +
  13 +yarn start
  14 +
  15 +```
... ...
test/server/api/app.js deleted 100644 → 0
1   -const Koa = require('koa');
2   -const router = require('koa-router')();
3   -const cors = require('koa2-cors');
4   -const bodyParser = require('koa-bodyparser');
5   -const app = new Koa();
6   -
7   -app.use(cors());
8   -app.use(bodyParser());
9   -
10   -router.get('/getTest', (ctx) => {
11   - ctx.body = {
12   - name: 'test',
13   - };
14   -});
15   -
16   -router.post('/login', (ctx) => {
17   - ctx.body = {
18   - code: 0,
19   - success: true,
20   - result: {
21   - userId: '1',
22   - username: 'vben',
23   - realName: 'Vben Admin',
24   - desc: 'manager',
25   - password: '123456',
26   - token: 'fakeToken1',
27   - roles: [
28   - {
29   - roleName: 'Super Admin',
30   - value: 'super',
31   - },
32   - ],
33   - },
34   - };
35   -});
36   -
37   -router.get('/getUserInfoById', (ctx) => {
38   - ctx.body = {
39   - code: 0,
40   - success: true,
41   - result: {
42   - userId: '1',
43   - username: 'vben',
44   - realName: 'Vben Admin',
45   - desc: 'manager',
46   - password: '123456',
47   - token: 'fakeToken1',
48   - roles: [
49   - {
50   - roleName: 'Super Admin',
51   - value: 'super',
52   - },
53   - ],
54   - },
55   - };
56   -});
57   -
58   -app.use(router.routes()).use(router.allowedMethods());
59   -
60   -app.listen(3002, () => {
61   - console.log('server is listen in 3002');
62   -});
test/server/api/package.json deleted 100644 → 0
1   -{
2   - "name": "upload-server",
3   - "version": "1.0.0",
4   - "main": "app.js",
5   - "license": "MIT",
6   - "scripts": {
7   - "start": "node app.js"
8   - },
9   - "dependencies": {
10   - "fs-extra": "^9.1.0",
11   - "koa": "^2.13.1",
12   - "koa-body": "^4.2.0",
13   - "koa-bodyparser": "^4.3.0",
14   - "koa-router": "^10.0.0",
15   - "koa-static": "^5.0.0",
16   - "koa2-cors": "^2.0.6"
17   - }
18   -}
test/server/api/yarn.lock deleted 100644 → 0
1   -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2   -# yarn lockfile v1
3   -
4   -
5   -"@types/formidable@^1.0.31":
6   - version "1.0.32"
7   - resolved "https://registry.npmjs.org/@types/formidable/-/formidable-1.0.32.tgz#d9a7eefbaa995a4486ec4e3960e9552e68b3f33c"
8   - integrity sha512-jOAB5+GFW+C+2xdvUcpd/CnYg2rD5xCyagJLBJU+9PB4a/DKmsAqS9yZI3j/Q9zwvM7ztPHaAIH1ijzp4cezdQ==
9   - dependencies:
10   - "@types/node" "*"
11   -
12   -"@types/node@*":
13   - version "14.14.35"
14   - resolved "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313"
15   - integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==
16   -
17   -accepts@^1.3.5:
18   - version "1.3.7"
19   - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
20   - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
21   - dependencies:
22   - mime-types "~2.1.24"
23   - negotiator "0.6.2"
24   -
25   -any-promise@^1.1.0:
26   - version "1.3.0"
27   - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
28   - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
29   -
30   -at-least-node@^1.0.0:
31   - version "1.0.0"
32   - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
33   - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
34   -
35   -bytes@3.1.0:
36   - version "3.1.0"
37   - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
38   - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
39   -
40   -cache-content-type@^1.0.0:
41   - version "1.0.1"
42   - resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c"
43   - integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==
44   - dependencies:
45   - mime-types "^2.1.18"
46   - ylru "^1.2.0"
47   -
48   -call-bind@^1.0.0:
49   - version "1.0.2"
50   - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
51   - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
52   - dependencies:
53   - function-bind "^1.1.1"
54   - get-intrinsic "^1.0.2"
55   -
56   -co-body@^5.1.1:
57   - version "5.2.0"
58   - resolved "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124"
59   - integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==
60   - dependencies:
61   - inflation "^2.0.0"
62   - qs "^6.4.0"
63   - raw-body "^2.2.0"
64   - type-is "^1.6.14"
65   -
66   -co-body@^6.0.0:
67   - version "6.1.0"
68   - resolved "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547"
69   - integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==
70   - dependencies:
71   - inflation "^2.0.0"
72   - qs "^6.5.2"
73   - raw-body "^2.3.3"
74   - type-is "^1.6.16"
75   -
76   -co@^4.6.0:
77   - version "4.6.0"
78   - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
79   - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
80   -
81   -content-disposition@~0.5.2:
82   - version "0.5.3"
83   - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
84   - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
85   - dependencies:
86   - safe-buffer "5.1.2"
87   -
88   -content-type@^1.0.4:
89   - version "1.0.4"
90   - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
91   - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
92   -
93   -cookies@~0.8.0:
94   - version "0.8.0"
95   - resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90"
96   - integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==
97   - dependencies:
98   - depd "~2.0.0"
99   - keygrip "~1.1.0"
100   -
101   -copy-to@^2.0.1:
102   - version "2.0.1"
103   - resolved "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5"
104   - integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU=
105   -
106   -debug@^3.1.0:
107   - version "3.2.7"
108   - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
109   - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
110   - dependencies:
111   - ms "^2.1.1"
112   -
113   -debug@^4.1.1:
114   - version "4.3.1"
115   - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
116   - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
117   - dependencies:
118   - ms "2.1.2"
119   -
120   -debug@~3.1.0:
121   - version "3.1.0"
122   - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
123   - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
124   - dependencies:
125   - ms "2.0.0"
126   -
127   -deep-equal@~1.0.1:
128   - version "1.0.1"
129   - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
130   - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
131   -
132   -delegates@^1.0.0:
133   - version "1.0.0"
134   - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
135   - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
136   -
137   -depd@^2.0.0, depd@~2.0.0:
138   - version "2.0.0"
139   - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
140   - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
141   -
142   -depd@~1.1.2:
143   - version "1.1.2"
144   - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
145   - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
146   -
147   -destroy@^1.0.4:
148   - version "1.0.4"
149   - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
150   - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
151   -
152   -ee-first@1.1.1:
153   - version "1.1.1"
154   - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
155   - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
156   -
157   -encodeurl@^1.0.2:
158   - version "1.0.2"
159   - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
160   - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
161   -
162   -escape-html@^1.0.3:
163   - version "1.0.3"
164   - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
165   - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
166   -
167   -formidable@^1.1.1:
168   - version "1.2.2"
169   - resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9"
170   - integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==
171   -
172   -fresh@~0.5.2:
173   - version "0.5.2"
174   - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
175   - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
176   -
177   -fs-extra@^9.1.0:
178   - version "9.1.0"
179   - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
180   - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
181   - dependencies:
182   - at-least-node "^1.0.0"
183   - graceful-fs "^4.2.0"
184   - jsonfile "^6.0.1"
185   - universalify "^2.0.0"
186   -
187   -function-bind@^1.1.1:
188   - version "1.1.1"
189   - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
190   - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
191   -
192   -get-intrinsic@^1.0.2:
193   - version "1.1.1"
194   - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
195   - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
196   - dependencies:
197   - function-bind "^1.1.1"
198   - has "^1.0.3"
199   - has-symbols "^1.0.1"
200   -
201   -graceful-fs@^4.1.6, graceful-fs@^4.2.0:
202   - version "4.2.6"
203   - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
204   - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
205   -
206   -has-symbols@^1.0.1:
207   - version "1.0.2"
208   - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
209   - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
210   -
211   -has@^1.0.3:
212   - version "1.0.3"
213   - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
214   - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
215   - dependencies:
216   - function-bind "^1.1.1"
217   -
218   -http-assert@^1.3.0:
219   - version "1.4.1"
220   - resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
221   - integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==
222   - dependencies:
223   - deep-equal "~1.0.1"
224   - http-errors "~1.7.2"
225   -
226   -http-errors@1.7.3, http-errors@~1.7.2:
227   - version "1.7.3"
228   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
229   - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
230   - dependencies:
231   - depd "~1.1.2"
232   - inherits "2.0.4"
233   - setprototypeof "1.1.1"
234   - statuses ">= 1.5.0 < 2"
235   - toidentifier "1.0.0"
236   -
237   -http-errors@^1.6.3, http-errors@^1.7.3:
238   - version "1.8.0"
239   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
240   - integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
241   - dependencies:
242   - depd "~1.1.2"
243   - inherits "2.0.4"
244   - setprototypeof "1.2.0"
245   - statuses ">= 1.5.0 < 2"
246   - toidentifier "1.0.0"
247   -
248   -http-errors@~1.6.2:
249   - version "1.6.3"
250   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
251   - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
252   - dependencies:
253   - depd "~1.1.2"
254   - inherits "2.0.3"
255   - setprototypeof "1.1.0"
256   - statuses ">= 1.4.0 < 2"
257   -
258   -iconv-lite@0.4.24:
259   - version "0.4.24"
260   - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
261   - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
262   - dependencies:
263   - safer-buffer ">= 2.1.2 < 3"
264   -
265   -inflation@^2.0.0:
266   - version "2.0.0"
267   - resolved "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f"
268   - integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=
269   -
270   -inherits@2.0.3:
271   - version "2.0.3"
272   - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
273   - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
274   -
275   -inherits@2.0.4:
276   - version "2.0.4"
277   - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
278   - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
279   -
280   -is-generator-function@^1.0.7:
281   - version "1.0.8"
282   - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b"
283   - integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==
284   -
285   -jsonfile@^6.0.1:
286   - version "6.1.0"
287   - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
288   - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
289   - dependencies:
290   - universalify "^2.0.0"
291   - optionalDependencies:
292   - graceful-fs "^4.1.6"
293   -
294   -keygrip@~1.1.0:
295   - version "1.1.0"
296   - resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
297   - integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==
298   - dependencies:
299   - tsscmp "1.0.6"
300   -
301   -koa-body@^4.2.0:
302   - version "4.2.0"
303   - resolved "https://registry.npmjs.org/koa-body/-/koa-body-4.2.0.tgz#37229208b820761aca5822d14c5fc55cee31b26f"
304   - integrity sha512-wdGu7b9amk4Fnk/ytH8GuWwfs4fsB5iNkY8kZPpgQVb04QZSv85T0M8reb+cJmvLE8cjPYvBzRikD3s6qz8OoA==
305   - dependencies:
306   - "@types/formidable" "^1.0.31"
307   - co-body "^5.1.1"
308   - formidable "^1.1.1"
309   -
310   -koa-bodyparser@^4.3.0:
311   - version "4.3.0"
312   - resolved "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a"
313   - integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==
314   - dependencies:
315   - co-body "^6.0.0"
316   - copy-to "^2.0.1"
317   -
318   -koa-compose@^3.0.0:
319   - version "3.2.1"
320   - resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
321   - integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=
322   - dependencies:
323   - any-promise "^1.1.0"
324   -
325   -koa-compose@^4.1.0:
326   - version "4.1.0"
327   - resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
328   - integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
329   -
330   -koa-convert@^1.2.0:
331   - version "1.2.0"
332   - resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
333   - integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=
334   - dependencies:
335   - co "^4.6.0"
336   - koa-compose "^3.0.0"
337   -
338   -koa-router@^10.0.0:
339   - version "10.0.0"
340   - resolved "https://registry.npmjs.org/koa-router/-/koa-router-10.0.0.tgz#7bc76a031085731e61fc92c1683687b2f44de6a4"
341   - integrity sha512-gAE5J1gBQTvfR8rMMtMUkE26+1MbO3DGpGmvfmM2pR9Z7w2VIb2Ecqeal98yVO7+4ltffby7gWOzpCmdNOQe0w==
342   - dependencies:
343   - debug "^4.1.1"
344   - http-errors "^1.7.3"
345   - koa-compose "^4.1.0"
346   - methods "^1.1.2"
347   - path-to-regexp "^6.1.0"
348   -
349   -koa-send@^5.0.0:
350   - version "5.0.1"
351   - resolved "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79"
352   - integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==
353   - dependencies:
354   - debug "^4.1.1"
355   - http-errors "^1.7.3"
356   - resolve-path "^1.4.0"
357   -
358   -koa-static@^5.0.0:
359   - version "5.0.0"
360   - resolved "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943"
361   - integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==
362   - dependencies:
363   - debug "^3.1.0"
364   - koa-send "^5.0.0"
365   -
366   -koa2-cors@^2.0.6:
367   - version "2.0.6"
368   - resolved "https://registry.npmjs.org/koa2-cors/-/koa2-cors-2.0.6.tgz#9ad23df3a0b9bb84530b46f5944f3fb576086554"
369   - integrity sha512-JRCcSM4lamM+8kvKGDKlesYk2ASrmSTczDtGUnIadqMgnHU4Ct5Gw7Bxt3w3m6d6dy3WN0PU4oMP43HbddDEWg==
370   -
371   -koa@^2.13.1:
372   - version "2.13.1"
373   - resolved "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051"
374   - integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w==
375   - dependencies:
376   - accepts "^1.3.5"
377   - cache-content-type "^1.0.0"
378   - content-disposition "~0.5.2"
379   - content-type "^1.0.4"
380   - cookies "~0.8.0"
381   - debug "~3.1.0"
382   - delegates "^1.0.0"
383   - depd "^2.0.0"
384   - destroy "^1.0.4"
385   - encodeurl "^1.0.2"
386   - escape-html "^1.0.3"
387   - fresh "~0.5.2"
388   - http-assert "^1.3.0"
389   - http-errors "^1.6.3"
390   - is-generator-function "^1.0.7"
391   - koa-compose "^4.1.0"
392   - koa-convert "^1.2.0"
393   - on-finished "^2.3.0"
394   - only "~0.0.2"
395   - parseurl "^1.3.2"
396   - statuses "^1.5.0"
397   - type-is "^1.6.16"
398   - vary "^1.1.2"
399   -
400   -media-typer@0.3.0:
401   - version "0.3.0"
402   - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
403   - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
404   -
405   -methods@^1.1.2:
406   - version "1.1.2"
407   - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
408   - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
409   -
410   -mime-db@1.46.0:
411   - version "1.46.0"
412   - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee"
413   - integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==
414   -
415   -mime-types@^2.1.18, mime-types@~2.1.24:
416   - version "2.1.29"
417   - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2"
418   - integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==
419   - dependencies:
420   - mime-db "1.46.0"
421   -
422   -ms@2.0.0:
423   - version "2.0.0"
424   - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
425   - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
426   -
427   -ms@2.1.2:
428   - version "2.1.2"
429   - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
430   - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
431   -
432   -ms@^2.1.1:
433   - version "2.1.3"
434   - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
435   - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
436   -
437   -negotiator@0.6.2:
438   - version "0.6.2"
439   - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
440   - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
441   -
442   -object-inspect@^1.9.0:
443   - version "1.9.0"
444   - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a"
445   - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==
446   -
447   -on-finished@^2.3.0:
448   - version "2.3.0"
449   - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
450   - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
451   - dependencies:
452   - ee-first "1.1.1"
453   -
454   -only@~0.0.2:
455   - version "0.0.2"
456   - resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
457   - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
458   -
459   -parseurl@^1.3.2:
460   - version "1.3.3"
461   - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
462   - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
463   -
464   -path-is-absolute@1.0.1:
465   - version "1.0.1"
466   - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
467   - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
468   -
469   -path-to-regexp@^6.1.0:
470   - version "6.2.0"
471   - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz#f7b3803336104c346889adece614669230645f38"
472   - integrity sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==
473   -
474   -qs@^6.4.0, qs@^6.5.2:
475   - version "6.10.0"
476   - resolved "https://registry.npmjs.org/qs/-/qs-6.10.0.tgz#8b6519121ab291c316a3e4d49cecf6d13d8c7fe5"
477   - integrity sha512-yjACOWijC6L/kmPZZAsVBNY2zfHSIbpdpL977quseu56/8BZ2LoF5axK2bGhbzhVKt7V9xgWTtpyLbxwIoER0Q==
478   - dependencies:
479   - side-channel "^1.0.4"
480   -
481   -raw-body@^2.2.0, raw-body@^2.3.3:
482   - version "2.4.1"
483   - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
484   - integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
485   - dependencies:
486   - bytes "3.1.0"
487   - http-errors "1.7.3"
488   - iconv-lite "0.4.24"
489   - unpipe "1.0.0"
490   -
491   -resolve-path@^1.4.0:
492   - version "1.4.0"
493   - resolved "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7"
494   - integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=
495   - dependencies:
496   - http-errors "~1.6.2"
497   - path-is-absolute "1.0.1"
498   -
499   -safe-buffer@5.1.2:
500   - version "5.1.2"
501   - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
502   - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
503   -
504   -"safer-buffer@>= 2.1.2 < 3":
505   - version "2.1.2"
506   - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
507   - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
508   -
509   -setprototypeof@1.1.0:
510   - version "1.1.0"
511   - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
512   - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
513   -
514   -setprototypeof@1.1.1:
515   - version "1.1.1"
516   - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
517   - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
518   -
519   -setprototypeof@1.2.0:
520   - version "1.2.0"
521   - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
522   - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
523   -
524   -side-channel@^1.0.4:
525   - version "1.0.4"
526   - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
527   - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
528   - dependencies:
529   - call-bind "^1.0.0"
530   - get-intrinsic "^1.0.2"
531   - object-inspect "^1.9.0"
532   -
533   -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0:
534   - version "1.5.0"
535   - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
536   - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
537   -
538   -toidentifier@1.0.0:
539   - version "1.0.0"
540   - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
541   - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
542   -
543   -tsscmp@1.0.6:
544   - version "1.0.6"
545   - resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
546   - integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
547   -
548   -type-is@^1.6.14, type-is@^1.6.16:
549   - version "1.6.18"
550   - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
551   - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
552   - dependencies:
553   - media-typer "0.3.0"
554   - mime-types "~2.1.24"
555   -
556   -universalify@^2.0.0:
557   - version "2.0.0"
558   - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
559   - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
560   -
561   -unpipe@1.0.0:
562   - version "1.0.0"
563   - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
564   - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
565   -
566   -vary@^1.1.2:
567   - version "1.1.2"
568   - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
569   - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
570   -
571   -ylru@^1.2.0:
572   - version "1.2.1"
573   - resolved "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
574   - integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==
test/server/controller/FileController.ts 0 → 100644
  1 +import FileService from '../service/FileService';
  2 +
  3 +class FileController {
  4 + private service: FileService = new FileService();
  5 +
  6 + upload = async (ctx) => {
  7 + const files = ctx.request.files.file;
  8 + console.log(files);
  9 +
  10 + if (files.length === undefined) {
  11 + this.service.upload(ctx, files, false);
  12 + } else {
  13 + this.service.upload(ctx, files, true);
  14 + }
  15 + };
  16 +}
  17 +
  18 +export default new FileController();
... ...
test/server/controller/UserController.ts 0 → 100644
  1 +import UserService from '../service/UserService';
  2 +
  3 +class UserController {
  4 + private service: UserService = new UserService();
  5 +
  6 + login = async (ctx) => {
  7 + ctx.body = await this.service.login();
  8 + };
  9 +
  10 + getUserInfoById = async (ctx) => {
  11 + ctx.body = await this.service.getUserInfoById();
  12 + };
  13 +}
  14 +
  15 +export default new UserController();
... ...
test/server/ecosystem.config.js 0 → 100644
  1 +const { name } = require('./package.json');
  2 +const path = require('path');
  3 +
  4 +module.exports = {
  5 + apps: [
  6 + {
  7 + name,
  8 + script: path.resolve(__dirname, './dist/index.js'),
  9 + instances: require('os').cpus().length,
  10 + autorestart: true,
  11 + watch: true,
  12 + env_production: {
  13 + NODE_ENV: 'production',
  14 + PORT: 8080,
  15 + },
  16 + },
  17 + ],
  18 +};
... ...
test/server/websocket/app.js renamed to test/server/index.ts
1   -const Koa = require('koa');
2   -const route = require('koa-route');
3   -const websockify = require('koa-websocket');
  1 +import Koa from 'koa';
  2 +import path from 'path';
  3 +import Router from 'koa-router';
  4 +import body from 'koa-body';
  5 +import cors from 'koa2-cors';
  6 +import koaStatic from 'koa-static';
  7 +import websockify from 'koa-websocket';
  8 +import route from 'koa-route';
  9 +
  10 +import AppRoutes from './routes';
  11 +
  12 +const PORT = 3300;
4 13  
5 14 const app = websockify(new Koa());
6 15  
... ... @@ -16,7 +25,7 @@ app.ws.use(
16 25 // do something with the message from client
17 26  
18 27 if (message !== 'ping') {
19   - let data = JSON.stringify({
  28 + const data = JSON.stringify({
20 29 id: Math.ceil(Math.random() * 1000),
21 30 time: new Date().getTime(),
22 31 res: `${message}`,
... ... @@ -28,6 +37,27 @@ app.ws.use(
28 37 })
29 38 );
30 39  
31   -app.listen(3380, () => {
32   - console.log('websocket server is listen in: ' + 3380);
  40 +const router = new Router();
  41 +
  42 +// router
  43 +AppRoutes.forEach((route) => router[route.method](route.path, route.action));
  44 +
  45 +app.use(cors());
  46 +app.use(
  47 + body({
  48 + encoding: 'gzip',
  49 + multipart: true,
  50 + formidable: {
  51 + // uploadDir: path.join(__dirname, '/upload/'), // 设置文件上传目录
  52 + keepExtensions: true,
  53 + maxFieldsSize: 20 * 1024 * 1024,
  54 + },
  55 + })
  56 +);
  57 +app.use(router.routes());
  58 +app.use(router.allowedMethods());
  59 +app.use(koaStatic(path.join(__dirname)));
  60 +
  61 +app.listen(PORT, () => {
  62 + console.log(`Application started successfully: http://localhost:${PORT}`);
33 63 });
... ...
test/server/nodemon.json 0 → 100644
  1 +{
  2 + "watch": ["src"],
  3 + "ext": "ts",
  4 + "exec": "ts-node -r tsconfig-paths/register index.ts",
  5 + "events": {
  6 + "restart": "clear"
  7 + }
  8 +}
... ...
test/server/package.json 0 → 100644
  1 +{
  2 + "name": "server",
  3 + "version": "1.0.0",
  4 + "license": "MIT",
  5 + "scripts": {
  6 + "start": "nodemon",
  7 + "build": "rimraf ./dist && tsup ./index.ts --dts --format cjs,esm ",
  8 + "prod": "npx pm2 start ecosystem.config.js --env production",
  9 + "restart": "pm2 restart ecosystem.config.js --env production",
  10 + "stop": "npx pm2 stop ecosystem.config.js"
  11 + },
  12 + "dependencies": {
  13 + "fs-extra": "^10.0.0",
  14 + "koa": "^2.7.0",
  15 + "koa-body": "^4.2.0",
  16 + "koa-bodyparser": "^4.2.1",
  17 + "koa-route": "^3.2.0",
  18 + "koa-router": "^10.0.0",
  19 + "koa-static": "^5.0.0",
  20 + "koa-websocket": "^6.0.0",
  21 + "koa2-cors": "^2.0.6"
  22 + },
  23 + "devDependencies": {
  24 + "@types/koa": "^2.0.48",
  25 + "@types/koa-bodyparser": "^4.2.2",
  26 + "@types/koa-router": "^7.0.40",
  27 + "@types/node": "^15.12.1",
  28 + "nodemon": "^2.0.7",
  29 + "pm2": "^4.5.6",
  30 + "rimraf": "^3.0.2",
  31 + "ts-node": "^10.0.0",
  32 + "tsconfig-paths": "^3.8.0",
  33 + "tsup": "^4.11.2",
  34 + "typescript": "^4.2.5"
  35 + }
  36 +}
... ...
test/server/routes.ts 0 → 100644
  1 +import UserController from './controller/UserController';
  2 +import FileController from './controller/FileController';
  3 +
  4 +export default [
  5 + // user
  6 + {
  7 + path: '/login',
  8 + method: 'post',
  9 + action: UserController.login,
  10 + },
  11 + {
  12 + path: '/getUserInfoById',
  13 + method: 'get',
  14 + action: UserController.getUserInfoById,
  15 + },
  16 +
  17 + // file
  18 + {
  19 + path: '/upload',
  20 + method: 'post',
  21 + action: FileController.upload,
  22 + },
  23 +];
... ...
test/server/upload/app.js renamed to test/server/service/FileService.ts
1   -const Koa = require('koa');
2   -const path = require('path');
3   -const router = require('koa-router')();
4   -const koaBody = require('koa-body');
5   -const static = require('koa-static');
6   -const cors = require('koa2-cors');
7   -const fs = require('fs-extra');
8   -const app = new Koa();
9   -
10   -const uploadUrl = 'http://localhost:3001/static/upload';
11   -
12   -fs.ensureDir(path.join(__dirname, 'static/upload'));
13   -
14   -app.use(cors());
15   -
16   -app.use(
17   - koaBody({
18   - multipart: true,
19   - formidable: {
20   - maxFieldsSize: 20 * 1024 * 1024,
21   - multipart: true,
22   - },
23   - })
24   -);
25   -
26   -router.get('/', (ctx) => {
27   - ctx.type = 'html';
28   - const pathUrl = path.join(__dirname, '/static/upload.html');
29   - ctx.body = fs.createReadStream(pathUrl);
30   -});
31   -
32   -const uploadFilePublic = function (ctx, files, flag) {
33   - const filePath = path.join(__dirname, '/static/upload/');
34   - let fileReader, fileResource, writeStream;
35   -
36   - const fileFunc = function (file) {
37   - fileReader = fs.createReadStream(file.path);
38   - fileResource = filePath + `/${file.name}`;
  1 +import path from 'path';
  2 +import fs from 'fs-extra';
  3 +
  4 +const uploadUrl = 'http://localhost:3300/static/upload';
  5 +const filePath = path.join(__dirname, '../static/upload/');
  6 +
  7 +fs.ensureDir(filePath);
  8 +export default class UserService {
  9 + async upload(ctx, files, isMultiple) {
  10 + let fileReader, fileResource, writeStream;
  11 +
  12 + const fileFunc = function (file) {
  13 + console.log(file);
  14 +
  15 + fileReader = fs.createReadStream(file.path);
  16 + fileResource = filePath + `/${file.name}`;
  17 + console.log(fileResource);
  18 +
  19 + writeStream = fs.createWriteStream(fileResource);
  20 + fileReader.pipe(writeStream);
  21 + };
  22 +
  23 + const returnFunc = function (flag) {
  24 + if (flag) {
  25 + let url = '';
  26 + for (let i = 0; i < files.length; i++) {
  27 + url += uploadUrl + `/${files[i].name},`;
  28 + }
  29 + url = url.replace(/,$/gi, '');
  30 + ctx.body = {
  31 + url: url,
  32 + code: 0,
  33 + message: 'upload Success!',
  34 + };
  35 + } else {
  36 + ctx.body = {
  37 + url: uploadUrl + `/${files.name}`,
  38 + code: 0,
  39 + message: 'upload Success!',
  40 + };
  41 + }
  42 + };
  43 + console.log(isMultiple, files.length);
39 44  
40   - writeStream = fs.createWriteStream(fileResource);
41   - fileReader.pipe(writeStream);
42   - };
43   - const returnFunc = function (flag) {
44   - console.log(flag);
45   - console.log(files);
46   - if (flag) {
47   - let url = '';
  45 + if (isMultiple) {
48 46 for (let i = 0; i < files.length; i++) {
49   - url += uploadUrl + `/${files[i].name},`;
  47 + const f1 = files[i];
  48 + fileFunc(f1);
50 49 }
51   - url = url.replace(/,$/gi, '');
52   - ctx.body = {
53   - url: url,
54   - code: 0,
55   - message: 'upload Success!',
56   - };
57 50 } else {
58   - ctx.body = {
59   - url: uploadUrl + `/${files.name}`,
60   - code: 0,
61   - message: 'upload Success!',
62   - };
63   - }
64   - };
65   - if (flag) {
66   - for (let i = 0; i < files.length; i++) {
67   - const f1 = files[i];
68   - fileFunc(f1);
  51 + fileFunc(files);
69 52 }
70   - } else {
71   - fileFunc(files);
  53 + fs.ensureDir(filePath);
  54 + returnFunc(isMultiple);
72 55 }
73   -
74   - if (!fs.existsSync(filePath)) {
75   - fs.mkdir(filePath, (err) => {
76   - if (err) {
77   - throw new Error(err);
78   - } else {
79   - returnFunc(flag);
80   - }
81   - });
82   - } else {
83   - returnFunc(flag);
84   - }
85   -};
86   -
87   -router.post('/upload', (ctx) => {
88   - let files = ctx.request.files.file;
89   - if (files.length === undefined) {
90   - uploadFilePublic(ctx, files, false);
91   - } else {
92   - uploadFilePublic(ctx, files, true);
93   - }
94   -});
95   -
96   -app.use(static(path.join(__dirname)));
97   -
98   -app.use(router.routes()).use(router.allowedMethods());
99   -
100   -app.listen(3001, () => {
101   - console.log('server is listen in 3001');
102   -});
  56 +}
... ...
test/server/service/UserService.ts 0 → 100644
  1 +import { Result } from '../utils';
  2 +
  3 +const fakeUserInfo = {
  4 + userId: '1',
  5 + username: 'vben',
  6 + realName: 'Vben Admin',
  7 + desc: 'manager',
  8 + password: '123456',
  9 + token: 'fakeToken1',
  10 + roles: [
  11 + {
  12 + roleName: 'Super Admin',
  13 + value: 'super',
  14 + },
  15 + ],
  16 +};
  17 +export default class UserService {
  18 + async login() {
  19 + return Result.success(fakeUserInfo);
  20 + }
  21 +
  22 + async getUserInfoById() {
  23 + return Result.success(fakeUserInfo);
  24 + }
  25 +}
... ...
test/server/tsconfig.json 0 → 100644
  1 +{
  2 + "compilerOptions": {
  3 + "module": "commonjs",
  4 + "declaration": false,
  5 + "removeComments": true,
  6 + "emitDecoratorMetadata": true,
  7 + "experimentalDecorators": true,
  8 + "target": "es6",
  9 + "sourceMap": false,
  10 + "esModuleInterop": true,
  11 + "outDir": "./dist",
  12 + "baseUrl": "./"
  13 + },
  14 + "exclude": ["node_modules"]
  15 +}
... ...
test/server/upload/README.md deleted 100644 → 0
1   -# Upload Server
2   -
3   -Simple file upload service for testing file upload components.
4   -
5   -## Usage
6   -
7   -```js
8   -
9   -cd ./test/upload-server
10   -
11   -yarn install
12   -
13   -yarn start
14   -
15   -```
test/server/upload/package.json deleted 100644 → 0
1   -{
2   - "name": "upload-server",
3   - "version": "1.0.0",
4   - "main": "app.js",
5   - "license": "MIT",
6   - "scripts": {
7   - "start": "node app.js"
8   - },
9   - "dependencies": {
10   - "fs-extra": "^9.1.0",
11   - "koa": "^2.13.1",
12   - "koa-body": "^4.2.0",
13   - "koa-router": "^10.0.0",
14   - "koa-static": "^5.0.0",
15   - "koa2-cors": "^2.0.6"
16   - }
17   -}
test/server/upload/yarn.lock deleted 100644 → 0
1   -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2   -# yarn lockfile v1
3   -
4   -
5   -"@types/formidable@^1.0.31":
6   - version "1.0.32"
7   - resolved "https://registry.npmjs.org/@types/formidable/-/formidable-1.0.32.tgz#d9a7eefbaa995a4486ec4e3960e9552e68b3f33c"
8   - integrity sha512-jOAB5+GFW+C+2xdvUcpd/CnYg2rD5xCyagJLBJU+9PB4a/DKmsAqS9yZI3j/Q9zwvM7ztPHaAIH1ijzp4cezdQ==
9   - dependencies:
10   - "@types/node" "*"
11   -
12   -"@types/node@*":
13   - version "14.14.20"
14   - resolved "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz#f7974863edd21d1f8a494a73e8e2b3658615c340"
15   - integrity sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==
16   -
17   -accepts@^1.3.5:
18   - version "1.3.7"
19   - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
20   - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
21   - dependencies:
22   - mime-types "~2.1.24"
23   - negotiator "0.6.2"
24   -
25   -any-promise@^1.1.0:
26   - version "1.3.0"
27   - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
28   - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
29   -
30   -at-least-node@^1.0.0:
31   - version "1.0.0"
32   - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
33   - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
34   -
35   -bytes@3.1.0:
36   - version "3.1.0"
37   - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
38   - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
39   -
40   -cache-content-type@^1.0.0:
41   - version "1.0.1"
42   - resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c"
43   - integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==
44   - dependencies:
45   - mime-types "^2.1.18"
46   - ylru "^1.2.0"
47   -
48   -co-body@^5.1.1:
49   - version "5.2.0"
50   - resolved "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124"
51   - integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==
52   - dependencies:
53   - inflation "^2.0.0"
54   - qs "^6.4.0"
55   - raw-body "^2.2.0"
56   - type-is "^1.6.14"
57   -
58   -co@^4.6.0:
59   - version "4.6.0"
60   - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
61   - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
62   -
63   -content-disposition@~0.5.2:
64   - version "0.5.3"
65   - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
66   - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
67   - dependencies:
68   - safe-buffer "5.1.2"
69   -
70   -content-type@^1.0.4:
71   - version "1.0.4"
72   - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
73   - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
74   -
75   -cookies@~0.8.0:
76   - version "0.8.0"
77   - resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90"
78   - integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==
79   - dependencies:
80   - depd "~2.0.0"
81   - keygrip "~1.1.0"
82   -
83   -debug@^3.1.0:
84   - version "3.2.7"
85   - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
86   - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
87   - dependencies:
88   - ms "^2.1.1"
89   -
90   -debug@^4.1.1:
91   - version "4.3.1"
92   - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
93   - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
94   - dependencies:
95   - ms "2.1.2"
96   -
97   -debug@~3.1.0:
98   - version "3.1.0"
99   - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
100   - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
101   - dependencies:
102   - ms "2.0.0"
103   -
104   -deep-equal@~1.0.1:
105   - version "1.0.1"
106   - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
107   - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
108   -
109   -delegates@^1.0.0:
110   - version "1.0.0"
111   - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
112   - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
113   -
114   -depd@^2.0.0, depd@~2.0.0:
115   - version "2.0.0"
116   - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
117   - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
118   -
119   -depd@~1.1.2:
120   - version "1.1.2"
121   - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
122   - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
123   -
124   -destroy@^1.0.4:
125   - version "1.0.4"
126   - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
127   - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
128   -
129   -ee-first@1.1.1:
130   - version "1.1.1"
131   - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
132   - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
133   -
134   -encodeurl@^1.0.2:
135   - version "1.0.2"
136   - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
137   - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
138   -
139   -escape-html@^1.0.3:
140   - version "1.0.3"
141   - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
142   - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
143   -
144   -formidable@^1.1.1:
145   - version "1.2.2"
146   - resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz#bf69aea2972982675f00865342b982986f6b8dd9"
147   - integrity sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==
148   -
149   -fresh@~0.5.2:
150   - version "0.5.2"
151   - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
152   - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
153   -
154   -fs-extra@^9.1.0:
155   - version "9.1.0"
156   - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
157   - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
158   - dependencies:
159   - at-least-node "^1.0.0"
160   - graceful-fs "^4.2.0"
161   - jsonfile "^6.0.1"
162   - universalify "^2.0.0"
163   -
164   -graceful-fs@^4.1.6, graceful-fs@^4.2.0:
165   - version "4.2.6"
166   - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
167   - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
168   -
169   -http-assert@^1.3.0:
170   - version "1.4.1"
171   - resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
172   - integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==
173   - dependencies:
174   - deep-equal "~1.0.1"
175   - http-errors "~1.7.2"
176   -
177   -http-errors@1.7.3, http-errors@~1.7.2:
178   - version "1.7.3"
179   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
180   - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
181   - dependencies:
182   - depd "~1.1.2"
183   - inherits "2.0.4"
184   - setprototypeof "1.1.1"
185   - statuses ">= 1.5.0 < 2"
186   - toidentifier "1.0.0"
187   -
188   -http-errors@^1.6.3, http-errors@^1.7.3:
189   - version "1.8.0"
190   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
191   - integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
192   - dependencies:
193   - depd "~1.1.2"
194   - inherits "2.0.4"
195   - setprototypeof "1.2.0"
196   - statuses ">= 1.5.0 < 2"
197   - toidentifier "1.0.0"
198   -
199   -http-errors@~1.6.2:
200   - version "1.6.3"
201   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
202   - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
203   - dependencies:
204   - depd "~1.1.2"
205   - inherits "2.0.3"
206   - setprototypeof "1.1.0"
207   - statuses ">= 1.4.0 < 2"
208   -
209   -iconv-lite@0.4.24:
210   - version "0.4.24"
211   - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
212   - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
213   - dependencies:
214   - safer-buffer ">= 2.1.2 < 3"
215   -
216   -inflation@^2.0.0:
217   - version "2.0.0"
218   - resolved "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f"
219   - integrity sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=
220   -
221   -inherits@2.0.3:
222   - version "2.0.3"
223   - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
224   - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
225   -
226   -inherits@2.0.4:
227   - version "2.0.4"
228   - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
229   - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
230   -
231   -is-generator-function@^1.0.7:
232   - version "1.0.8"
233   - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b"
234   - integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==
235   -
236   -jsonfile@^6.0.1:
237   - version "6.1.0"
238   - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
239   - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
240   - dependencies:
241   - universalify "^2.0.0"
242   - optionalDependencies:
243   - graceful-fs "^4.1.6"
244   -
245   -keygrip@~1.1.0:
246   - version "1.1.0"
247   - resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
248   - integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==
249   - dependencies:
250   - tsscmp "1.0.6"
251   -
252   -koa-body@^4.2.0:
253   - version "4.2.0"
254   - resolved "https://registry.npmjs.org/koa-body/-/koa-body-4.2.0.tgz#37229208b820761aca5822d14c5fc55cee31b26f"
255   - integrity sha512-wdGu7b9amk4Fnk/ytH8GuWwfs4fsB5iNkY8kZPpgQVb04QZSv85T0M8reb+cJmvLE8cjPYvBzRikD3s6qz8OoA==
256   - dependencies:
257   - "@types/formidable" "^1.0.31"
258   - co-body "^5.1.1"
259   - formidable "^1.1.1"
260   -
261   -koa-compose@^3.0.0:
262   - version "3.2.1"
263   - resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
264   - integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=
265   - dependencies:
266   - any-promise "^1.1.0"
267   -
268   -koa-compose@^4.1.0:
269   - version "4.1.0"
270   - resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
271   - integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
272   -
273   -koa-convert@^1.2.0:
274   - version "1.2.0"
275   - resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
276   - integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=
277   - dependencies:
278   - co "^4.6.0"
279   - koa-compose "^3.0.0"
280   -
281   -koa-router@^10.0.0:
282   - version "10.0.0"
283   - resolved "https://registry.npmjs.org/koa-router/-/koa-router-10.0.0.tgz#7bc76a031085731e61fc92c1683687b2f44de6a4"
284   - integrity sha512-gAE5J1gBQTvfR8rMMtMUkE26+1MbO3DGpGmvfmM2pR9Z7w2VIb2Ecqeal98yVO7+4ltffby7gWOzpCmdNOQe0w==
285   - dependencies:
286   - debug "^4.1.1"
287   - http-errors "^1.7.3"
288   - koa-compose "^4.1.0"
289   - methods "^1.1.2"
290   - path-to-regexp "^6.1.0"
291   -
292   -koa-send@^5.0.0:
293   - version "5.0.1"
294   - resolved "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79"
295   - integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==
296   - dependencies:
297   - debug "^4.1.1"
298   - http-errors "^1.7.3"
299   - resolve-path "^1.4.0"
300   -
301   -koa-static@^5.0.0:
302   - version "5.0.0"
303   - resolved "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943"
304   - integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==
305   - dependencies:
306   - debug "^3.1.0"
307   - koa-send "^5.0.0"
308   -
309   -koa2-cors@^2.0.6:
310   - version "2.0.6"
311   - resolved "https://registry.npmjs.org/koa2-cors/-/koa2-cors-2.0.6.tgz#9ad23df3a0b9bb84530b46f5944f3fb576086554"
312   - integrity sha512-JRCcSM4lamM+8kvKGDKlesYk2ASrmSTczDtGUnIadqMgnHU4Ct5Gw7Bxt3w3m6d6dy3WN0PU4oMP43HbddDEWg==
313   -
314   -koa@^2.13.1:
315   - version "2.13.1"
316   - resolved "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051"
317   - integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w==
318   - dependencies:
319   - accepts "^1.3.5"
320   - cache-content-type "^1.0.0"
321   - content-disposition "~0.5.2"
322   - content-type "^1.0.4"
323   - cookies "~0.8.0"
324   - debug "~3.1.0"
325   - delegates "^1.0.0"
326   - depd "^2.0.0"
327   - destroy "^1.0.4"
328   - encodeurl "^1.0.2"
329   - escape-html "^1.0.3"
330   - fresh "~0.5.2"
331   - http-assert "^1.3.0"
332   - http-errors "^1.6.3"
333   - is-generator-function "^1.0.7"
334   - koa-compose "^4.1.0"
335   - koa-convert "^1.2.0"
336   - on-finished "^2.3.0"
337   - only "~0.0.2"
338   - parseurl "^1.3.2"
339   - statuses "^1.5.0"
340   - type-is "^1.6.16"
341   - vary "^1.1.2"
342   -
343   -media-typer@0.3.0:
344   - version "0.3.0"
345   - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
346   - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
347   -
348   -methods@^1.1.2:
349   - version "1.1.2"
350   - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
351   - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
352   -
353   -mime-db@1.45.0:
354   - version "1.45.0"
355   - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
356   - integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
357   -
358   -mime-types@^2.1.18, mime-types@~2.1.24:
359   - version "2.1.28"
360   - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz#1160c4757eab2c5363888e005273ecf79d2a0ecd"
361   - integrity sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==
362   - dependencies:
363   - mime-db "1.45.0"
364   -
365   -ms@2.0.0:
366   - version "2.0.0"
367   - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
368   - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
369   -
370   -ms@2.1.2:
371   - version "2.1.2"
372   - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
373   - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
374   -
375   -ms@^2.1.1:
376   - version "2.1.3"
377   - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
378   - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
379   -
380   -negotiator@0.6.2:
381   - version "0.6.2"
382   - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
383   - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
384   -
385   -on-finished@^2.3.0:
386   - version "2.3.0"
387   - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
388   - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
389   - dependencies:
390   - ee-first "1.1.1"
391   -
392   -only@~0.0.2:
393   - version "0.0.2"
394   - resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
395   - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
396   -
397   -parseurl@^1.3.2:
398   - version "1.3.3"
399   - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
400   - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
401   -
402   -path-is-absolute@1.0.1:
403   - version "1.0.1"
404   - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
405   - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
406   -
407   -path-to-regexp@^6.1.0:
408   - version "6.2.0"
409   - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.0.tgz#f7b3803336104c346889adece614669230645f38"
410   - integrity sha512-f66KywYG6+43afgE/8j/GoiNyygk/bnoCbps++3ErRKsIYkGGupyv07R2Ok5m9i67Iqc+T2g1eAUGUPzWhYTyg==
411   -
412   -qs@^6.4.0:
413   - version "6.9.4"
414   - resolved "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz#9090b290d1f91728d3c22e54843ca44aea5ab687"
415   - integrity sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==
416   -
417   -raw-body@^2.2.0:
418   - version "2.4.1"
419   - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
420   - integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==
421   - dependencies:
422   - bytes "3.1.0"
423   - http-errors "1.7.3"
424   - iconv-lite "0.4.24"
425   - unpipe "1.0.0"
426   -
427   -resolve-path@^1.4.0:
428   - version "1.4.0"
429   - resolved "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7"
430   - integrity sha1-xL2p9e+y/OZSR4c6s2u02DT+Fvc=
431   - dependencies:
432   - http-errors "~1.6.2"
433   - path-is-absolute "1.0.1"
434   -
435   -safe-buffer@5.1.2:
436   - version "5.1.2"
437   - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
438   - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
439   -
440   -"safer-buffer@>= 2.1.2 < 3":
441   - version "2.1.2"
442   - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
443   - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
444   -
445   -setprototypeof@1.1.0:
446   - version "1.1.0"
447   - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
448   - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
449   -
450   -setprototypeof@1.1.1:
451   - version "1.1.1"
452   - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
453   - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
454   -
455   -setprototypeof@1.2.0:
456   - version "1.2.0"
457   - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
458   - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
459   -
460   -"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0:
461   - version "1.5.0"
462   - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
463   - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
464   -
465   -toidentifier@1.0.0:
466   - version "1.0.0"
467   - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
468   - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
469   -
470   -tsscmp@1.0.6:
471   - version "1.0.6"
472   - resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
473   - integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
474   -
475   -type-is@^1.6.14, type-is@^1.6.16:
476   - version "1.6.18"
477   - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
478   - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
479   - dependencies:
480   - media-typer "0.3.0"
481   - mime-types "~2.1.24"
482   -
483   -universalify@^2.0.0:
484   - version "2.0.0"
485   - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
486   - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
487   -
488   -unpipe@1.0.0:
489   - version "1.0.0"
490   - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
491   - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
492   -
493   -vary@^1.1.2:
494   - version "1.1.2"
495   - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
496   - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
497   -
498   -ylru@^1.2.0:
499   - version "1.2.1"
500   - resolved "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
501   - integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==
test/server/utils.ts 0 → 100644
  1 +export class Result {
  2 + static success(data: any) {
  3 + return {
  4 + code: 0,
  5 + success: true,
  6 + result: data,
  7 + };
  8 + }
  9 +}
... ...
test/server/websocket/README.md deleted 100644 → 0
1   -# Websocket Server
2   -
3   -Simple background for testing ws interface
4   -
5   -## Usage
6   -
7   -```js
8   -
9   -cd ./test/websocket-server
10   -
11   -yarn install
12   -
13   -yarn start
14   -
15   -```
test/server/websocket/package.json deleted 100644 → 0
1   -{
2   - "name": "websocket-server",
3   - "version": "1.0.0",
4   - "main": "app.js",
5   - "license": "MIT",
6   - "scripts": {
7   - "start": "node app.js"
8   - },
9   - "dependencies": {
10   - "fs-extra": "^9.1.0",
11   - "koa": "^2.13.1",
12   - "koa-route": "^3.2.0",
13   - "koa-websocket": "^6.0.0"
14   - }
15   -}
test/server/websocket/yarn.lock deleted 100644 → 0
1   -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2   -# yarn lockfile v1
3   -
4   -
5   -accepts@^1.3.5:
6   - version "1.3.7"
7   - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
8   - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
9   - dependencies:
10   - mime-types "~2.1.24"
11   - negotiator "0.6.2"
12   -
13   -any-promise@^1.1.0:
14   - version "1.3.0"
15   - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
16   - integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
17   -
18   -at-least-node@^1.0.0:
19   - version "1.0.0"
20   - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
21   - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
22   -
23   -cache-content-type@^1.0.0:
24   - version "1.0.1"
25   - resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c"
26   - integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==
27   - dependencies:
28   - mime-types "^2.1.18"
29   - ylru "^1.2.0"
30   -
31   -co@^4.4.0, co@^4.6.0:
32   - version "4.6.0"
33   - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
34   - integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
35   -
36   -content-disposition@~0.5.2:
37   - version "0.5.3"
38   - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
39   - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
40   - dependencies:
41   - safe-buffer "5.1.2"
42   -
43   -content-type@^1.0.4:
44   - version "1.0.4"
45   - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
46   - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
47   -
48   -cookies@~0.8.0:
49   - version "0.8.0"
50   - resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90"
51   - integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==
52   - dependencies:
53   - depd "~2.0.0"
54   - keygrip "~1.1.0"
55   -
56   -debug@*, debug@^4.0.1:
57   - version "4.3.1"
58   - resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
59   - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
60   - dependencies:
61   - ms "2.1.2"
62   -
63   -debug@~3.1.0:
64   - version "3.1.0"
65   - resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
66   - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
67   - dependencies:
68   - ms "2.0.0"
69   -
70   -deep-equal@~1.0.1:
71   - version "1.0.1"
72   - resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
73   - integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
74   -
75   -delegates@^1.0.0:
76   - version "1.0.0"
77   - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
78   - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
79   -
80   -depd@^2.0.0, depd@~2.0.0:
81   - version "2.0.0"
82   - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
83   - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
84   -
85   -depd@~1.1.2:
86   - version "1.1.2"
87   - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
88   - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
89   -
90   -destroy@^1.0.4:
91   - version "1.0.4"
92   - resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
93   - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
94   -
95   -ee-first@1.1.1:
96   - version "1.1.1"
97   - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
98   - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
99   -
100   -encodeurl@^1.0.2:
101   - version "1.0.2"
102   - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
103   - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
104   -
105   -escape-html@^1.0.3:
106   - version "1.0.3"
107   - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
108   - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
109   -
110   -fresh@~0.5.2:
111   - version "0.5.2"
112   - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
113   - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
114   -
115   -fs-extra@^9.1.0:
116   - version "9.1.0"
117   - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
118   - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
119   - dependencies:
120   - at-least-node "^1.0.0"
121   - graceful-fs "^4.2.0"
122   - jsonfile "^6.0.1"
123   - universalify "^2.0.0"
124   -
125   -graceful-fs@^4.1.6, graceful-fs@^4.2.0:
126   - version "4.2.6"
127   - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
128   - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
129   -
130   -http-assert@^1.3.0:
131   - version "1.4.1"
132   - resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878"
133   - integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw==
134   - dependencies:
135   - deep-equal "~1.0.1"
136   - http-errors "~1.7.2"
137   -
138   -http-errors@^1.6.3:
139   - version "1.8.0"
140   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
141   - integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
142   - dependencies:
143   - depd "~1.1.2"
144   - inherits "2.0.4"
145   - setprototypeof "1.2.0"
146   - statuses ">= 1.5.0 < 2"
147   - toidentifier "1.0.0"
148   -
149   -http-errors@~1.7.2:
150   - version "1.7.3"
151   - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
152   - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
153   - dependencies:
154   - depd "~1.1.2"
155   - inherits "2.0.4"
156   - setprototypeof "1.1.1"
157   - statuses ">= 1.5.0 < 2"
158   - toidentifier "1.0.0"
159   -
160   -inherits@2.0.4:
161   - version "2.0.4"
162   - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
163   - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
164   -
165   -is-generator-function@^1.0.7:
166   - version "1.0.8"
167   - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b"
168   - integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==
169   -
170   -isarray@0.0.1:
171   - version "0.0.1"
172   - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
173   - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
174   -
175   -jsonfile@^6.0.1:
176   - version "6.1.0"
177   - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
178   - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
179   - dependencies:
180   - universalify "^2.0.0"
181   - optionalDependencies:
182   - graceful-fs "^4.1.6"
183   -
184   -keygrip@~1.1.0:
185   - version "1.1.0"
186   - resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
187   - integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==
188   - dependencies:
189   - tsscmp "1.0.6"
190   -
191   -koa-compose@^3.0.0:
192   - version "3.2.1"
193   - resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
194   - integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=
195   - dependencies:
196   - any-promise "^1.1.0"
197   -
198   -koa-compose@^4.1.0:
199   - version "4.1.0"
200   - resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
201   - integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
202   -
203   -koa-convert@^1.2.0:
204   - version "1.2.0"
205   - resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
206   - integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=
207   - dependencies:
208   - co "^4.6.0"
209   - koa-compose "^3.0.0"
210   -
211   -koa-route@^3.2.0:
212   - version "3.2.0"
213   - resolved "https://registry.npmjs.org/koa-route/-/koa-route-3.2.0.tgz#76298b99a6bcfa9e38cab6fe5c79a8733e758bce"
214   - integrity sha1-dimLmaa8+p44yrb+XHmocz51i84=
215   - dependencies:
216   - debug "*"
217   - methods "~1.1.0"
218   - path-to-regexp "^1.2.0"
219   -
220   -koa-websocket@^6.0.0:
221   - version "6.0.0"
222   - resolved "https://registry.npmjs.org/koa-websocket/-/koa-websocket-6.0.0.tgz#7fb7698a7004c07aac663b15e84bf4bc99901352"
223   - integrity sha512-pGTaB+aXILD/q+bQNh+Ejrg8zSxf6QRpiUQoh2TFQSmUZo2hrt6KGk4qlyxfHxFH40bVtyKeo4x1u0kKgJDOWA==
224   - dependencies:
225   - co "^4.4.0"
226   - debug "^4.0.1"
227   - koa-compose "^4.1.0"
228   - ws "^7.0.1"
229   -
230   -koa@^2.13.1:
231   - version "2.13.1"
232   - resolved "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051"
233   - integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w==
234   - dependencies:
235   - accepts "^1.3.5"
236   - cache-content-type "^1.0.0"
237   - content-disposition "~0.5.2"
238   - content-type "^1.0.4"
239   - cookies "~0.8.0"
240   - debug "~3.1.0"
241   - delegates "^1.0.0"
242   - depd "^2.0.0"
243   - destroy "^1.0.4"
244   - encodeurl "^1.0.2"
245   - escape-html "^1.0.3"
246   - fresh "~0.5.2"
247   - http-assert "^1.3.0"
248   - http-errors "^1.6.3"
249   - is-generator-function "^1.0.7"
250   - koa-compose "^4.1.0"
251   - koa-convert "^1.2.0"
252   - on-finished "^2.3.0"
253   - only "~0.0.2"
254   - parseurl "^1.3.2"
255   - statuses "^1.5.0"
256   - type-is "^1.6.16"
257   - vary "^1.1.2"
258   -
259   -media-typer@0.3.0:
260   - version "0.3.0"
261   - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
262   - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
263   -
264   -methods@~1.1.0:
265   - version "1.1.2"
266   - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
267   - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
268   -
269   -mime-db@1.46.0:
270   - version "1.46.0"
271   - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee"
272   - integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==
273   -
274   -mime-types@^2.1.18, mime-types@~2.1.24:
275   - version "2.1.29"
276   - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2"
277   - integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==
278   - dependencies:
279   - mime-db "1.46.0"
280   -
281   -ms@2.0.0:
282   - version "2.0.0"
283   - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
284   - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
285   -
286   -ms@2.1.2:
287   - version "2.1.2"
288   - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
289   - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
290   -
291   -negotiator@0.6.2:
292   - version "0.6.2"
293   - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
294   - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
295   -
296   -on-finished@^2.3.0:
297   - version "2.3.0"
298   - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
299   - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
300   - dependencies:
301   - ee-first "1.1.1"
302   -
303   -only@~0.0.2:
304   - version "0.0.2"
305   - resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
306   - integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=
307   -
308   -parseurl@^1.3.2:
309   - version "1.3.3"
310   - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
311   - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
312   -
313   -path-to-regexp@^1.2.0:
314   - version "1.8.0"
315   - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
316   - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
317   - dependencies:
318   - isarray "0.0.1"
319   -
320   -safe-buffer@5.1.2:
321   - version "5.1.2"
322   - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
323   - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
324   -
325   -setprototypeof@1.1.1:
326   - version "1.1.1"
327   - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
328   - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
329   -
330   -setprototypeof@1.2.0:
331   - version "1.2.0"
332   - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
333   - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
334   -
335   -"statuses@>= 1.5.0 < 2", statuses@^1.5.0:
336   - version "1.5.0"
337   - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
338   - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
339   -
340   -toidentifier@1.0.0:
341   - version "1.0.0"
342   - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
343   - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
344   -
345   -tsscmp@1.0.6:
346   - version "1.0.6"
347   - resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
348   - integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
349   -
350   -type-is@^1.6.16:
351   - version "1.6.18"
352   - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
353   - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
354   - dependencies:
355   - media-typer "0.3.0"
356   - mime-types "~2.1.24"
357   -
358   -universalify@^2.0.0:
359   - version "2.0.0"
360   - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
361   - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
362   -
363   -vary@^1.1.2:
364   - version "1.1.2"
365   - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
366   - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
367   -
368   -ws@^7.0.1:
369   - version "7.4.3"
370   - resolved "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd"
371   - integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==
372   -
373   -ylru@^1.2.0:
374   - version "1.2.1"
375   - resolved "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f"
376   - integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==