16 changed files with 733 additions and 74 deletions
@ -0,0 +1,130 @@ |
|||
<template> |
|||
<PageWrapper title="WebSocket 示例"> |
|||
<div class="flex"> |
|||
<div class="w-1/3 bg-white p-4"> |
|||
<div class="flex items-center"> |
|||
<span class="text-lg font-medium mr-4"> 连接状态: </span> |
|||
<Tag :color="getTagColor">{{ status }}</Tag> |
|||
</div> |
|||
<hr class="my-4" /> |
|||
|
|||
<div class="flex"> |
|||
<a-input v-model:value="server" disabled> |
|||
<template #addonBefore> 服务地址 </template> |
|||
</a-input> |
|||
<a-button :type="getIsOpen ? 'danger' : 'primary'" @click="toggle"> |
|||
{{ getIsOpen ? '关闭连接' : '开启连接' }} |
|||
</a-button> |
|||
</div> |
|||
<p class="text-lg font-medium mt-4">设置</p> |
|||
<hr class="my-4" /> |
|||
|
|||
<InputTextArea |
|||
placeholder="需要发送到服务器的内容" |
|||
:disabled="!getIsOpen" |
|||
v-model:value="sendValue" |
|||
allowClear |
|||
/> |
|||
|
|||
<a-button type="primary" block class="mt-4" :disabled="!getIsOpen" @click="handlerSend"> |
|||
发送 |
|||
</a-button> |
|||
</div> |
|||
|
|||
<div class="w-2/3 bg-white ml-4 p-4"> |
|||
<span class="text-lg font-medium mr-4"> 消息记录: </span> |
|||
<hr class="my-4" /> |
|||
|
|||
<div class="max-h-80 overflow-auto"> |
|||
<ul> |
|||
<li v-for="item in getList" class="border-b-1 mt-2" :key="item.time"> |
|||
<div class="flex items-center"> |
|||
<span class="mr-2 text-primary font-medium">收到消息:</span> |
|||
<span>{{ formatToDateTime(item.time) }}</span> |
|||
</div> |
|||
<div> |
|||
{{ item.res }} |
|||
</div> |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</PageWrapper> |
|||
</template> |
|||
<script lang="ts"> |
|||
import { defineComponent, reactive, watchEffect, computed, toRefs } from 'vue'; |
|||
import { Alert, Tag, Input } from 'ant-design-vue'; |
|||
|
|||
import { PageWrapper } from '/@/components/Page'; |
|||
|
|||
import { useWebSocket } from '@vueuse/core'; |
|||
|
|||
import { formatToDateTime } from '/@/utils/dateUtil'; |
|||
export default defineComponent({ |
|||
components: { |
|||
PageWrapper, |
|||
[Input.name]: Input, |
|||
InputTextArea: Input.TextArea, |
|||
Alert, |
|||
Tag, |
|||
}, |
|||
setup() { |
|||
const state = reactive({ |
|||
server: 'ws://localhost:3380/test', |
|||
sendValue: '', |
|||
recordList: [] as { id: number; time: number; res: string }[], |
|||
}); |
|||
|
|||
const { status, data, send, close, open } = useWebSocket(state.server, { |
|||
autoReconnect: true, |
|||
heartbeat: true, |
|||
}); |
|||
|
|||
watchEffect(() => { |
|||
if (data.value) { |
|||
try { |
|||
const res = JSON.parse(data.value); |
|||
state.recordList.push(res); |
|||
} catch (error) { |
|||
state.recordList.push({ |
|||
res: data.value, |
|||
id: Math.ceil(Math.random() * 1000), |
|||
time: new Date().getTime(), |
|||
}); |
|||
} |
|||
} |
|||
}); |
|||
|
|||
const getIsOpen = computed(() => status.value === 'OPEN'); |
|||
const getTagColor = computed(() => (getIsOpen.value ? 'success' : 'red')); |
|||
|
|||
const getList = computed(() => { |
|||
return [...state.recordList].reverse(); |
|||
}); |
|||
|
|||
function handlerSend() { |
|||
send(state.sendValue); |
|||
state.sendValue = ''; |
|||
} |
|||
|
|||
function toggle() { |
|||
if (getIsOpen.value) { |
|||
close(); |
|||
} else { |
|||
open(); |
|||
} |
|||
} |
|||
return { |
|||
status, |
|||
formatToDateTime, |
|||
...toRefs(state), |
|||
handlerSend, |
|||
getList, |
|||
toggle, |
|||
getIsOpen, |
|||
getTagColor, |
|||
}; |
|||
}, |
|||
}); |
|||
</script> |
|||
@ -0,0 +1,33 @@ |
|||
const Koa = require('koa'); |
|||
const route = require('koa-route'); |
|||
const websockify = require('koa-websocket'); |
|||
|
|||
const app = websockify(new Koa()); |
|||
|
|||
app.ws.use(function (ctx, next) { |
|||
ctx.websocket.send('connection succeeded!'); |
|||
return next(ctx); |
|||
}); |
|||
|
|||
app.ws.use( |
|||
route.all('/test', function (ctx) { |
|||
// ctx.websocket.send('Hello World');
|
|||
ctx.websocket.on('message', function (message) { |
|||
// do something with the message from client
|
|||
|
|||
if (message !== 'ping') { |
|||
let data = JSON.stringify({ |
|||
id: Math.ceil(Math.random() * 1000), |
|||
time: new Date().getTime(), |
|||
res: `${message}`, |
|||
}); |
|||
ctx.websocket.send(data); |
|||
} |
|||
console.log(message); |
|||
}); |
|||
}) |
|||
); |
|||
|
|||
app.listen(3380, () => { |
|||
console.log('websocket server is listen in: ' + 3380); |
|||
}); |
|||
@ -0,0 +1,15 @@ |
|||
{ |
|||
"name": "websocket-server", |
|||
"version": "1.0.0", |
|||
"main": "app.js", |
|||
"license": "MIT", |
|||
"scripts": { |
|||
"start": "node app.js" |
|||
}, |
|||
"dependencies": { |
|||
"fs-extra": "^9.1.0", |
|||
"koa": "^2.13.1", |
|||
"koa-route": "^3.2.0", |
|||
"koa-websocket": "^6.0.0" |
|||
} |
|||
} |
|||
@ -0,0 +1,376 @@ |
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. |
|||
# yarn lockfile v1 |
|||
|
|||
|
|||
accepts@^1.3.5: |
|||
version "1.3.7" |
|||
resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" |
|||
integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== |
|||
dependencies: |
|||
mime-types "~2.1.24" |
|||
negotiator "0.6.2" |
|||
|
|||
any-promise@^1.1.0: |
|||
version "1.3.0" |
|||
resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" |
|||
integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= |
|||
|
|||
at-least-node@^1.0.0: |
|||
version "1.0.0" |
|||
resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" |
|||
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== |
|||
|
|||
cache-content-type@^1.0.0: |
|||
version "1.0.1" |
|||
resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" |
|||
integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== |
|||
dependencies: |
|||
mime-types "^2.1.18" |
|||
ylru "^1.2.0" |
|||
|
|||
co@^4.4.0, co@^4.6.0: |
|||
version "4.6.0" |
|||
resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" |
|||
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= |
|||
|
|||
content-disposition@~0.5.2: |
|||
version "0.5.3" |
|||
resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" |
|||
integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== |
|||
dependencies: |
|||
safe-buffer "5.1.2" |
|||
|
|||
content-type@^1.0.4: |
|||
version "1.0.4" |
|||
resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" |
|||
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== |
|||
|
|||
cookies@~0.8.0: |
|||
version "0.8.0" |
|||
resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90" |
|||
integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow== |
|||
dependencies: |
|||
depd "~2.0.0" |
|||
keygrip "~1.1.0" |
|||
|
|||
debug@*, debug@^4.0.1: |
|||
version "4.3.1" |
|||
resolved "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" |
|||
integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== |
|||
dependencies: |
|||
ms "2.1.2" |
|||
|
|||
debug@~3.1.0: |
|||
version "3.1.0" |
|||
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" |
|||
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== |
|||
dependencies: |
|||
ms "2.0.0" |
|||
|
|||
deep-equal@~1.0.1: |
|||
version "1.0.1" |
|||
resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" |
|||
integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= |
|||
|
|||
delegates@^1.0.0: |
|||
version "1.0.0" |
|||
resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" |
|||
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= |
|||
|
|||
depd@^2.0.0, depd@~2.0.0: |
|||
version "2.0.0" |
|||
resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" |
|||
integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== |
|||
|
|||
depd@~1.1.2: |
|||
version "1.1.2" |
|||
resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" |
|||
integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= |
|||
|
|||
destroy@^1.0.4: |
|||
version "1.0.4" |
|||
resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" |
|||
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= |
|||
|
|||
ee-first@1.1.1: |
|||
version "1.1.1" |
|||
resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" |
|||
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= |
|||
|
|||
encodeurl@^1.0.2: |
|||
version "1.0.2" |
|||
resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" |
|||
integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= |
|||
|
|||
escape-html@^1.0.3: |
|||
version "1.0.3" |
|||
resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" |
|||
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= |
|||
|
|||
fresh@~0.5.2: |
|||
version "0.5.2" |
|||
resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" |
|||
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= |
|||
|
|||
fs-extra@^9.1.0: |
|||
version "9.1.0" |
|||
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" |
|||
integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== |
|||
dependencies: |
|||
at-least-node "^1.0.0" |
|||
graceful-fs "^4.2.0" |
|||
jsonfile "^6.0.1" |
|||
universalify "^2.0.0" |
|||
|
|||
graceful-fs@^4.1.6, graceful-fs@^4.2.0: |
|||
version "4.2.6" |
|||
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" |
|||
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== |
|||
|
|||
http-assert@^1.3.0: |
|||
version "1.4.1" |
|||
resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" |
|||
integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== |
|||
dependencies: |
|||
deep-equal "~1.0.1" |
|||
http-errors "~1.7.2" |
|||
|
|||
http-errors@^1.6.3: |
|||
version "1.8.0" |
|||
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507" |
|||
integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A== |
|||
dependencies: |
|||
depd "~1.1.2" |
|||
inherits "2.0.4" |
|||
setprototypeof "1.2.0" |
|||
statuses ">= 1.5.0 < 2" |
|||
toidentifier "1.0.0" |
|||
|
|||
http-errors@~1.7.2: |
|||
version "1.7.3" |
|||
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" |
|||
integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== |
|||
dependencies: |
|||
depd "~1.1.2" |
|||
inherits "2.0.4" |
|||
setprototypeof "1.1.1" |
|||
statuses ">= 1.5.0 < 2" |
|||
toidentifier "1.0.0" |
|||
|
|||
inherits@2.0.4: |
|||
version "2.0.4" |
|||
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" |
|||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== |
|||
|
|||
is-generator-function@^1.0.7: |
|||
version "1.0.8" |
|||
resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz#dfb5c2b120e02b0a8d9d2c6806cd5621aa922f7b" |
|||
integrity sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ== |
|||
|
|||
isarray@0.0.1: |
|||
version "0.0.1" |
|||
resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" |
|||
integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= |
|||
|
|||
jsonfile@^6.0.1: |
|||
version "6.1.0" |
|||
resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" |
|||
integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== |
|||
dependencies: |
|||
universalify "^2.0.0" |
|||
optionalDependencies: |
|||
graceful-fs "^4.1.6" |
|||
|
|||
keygrip@~1.1.0: |
|||
version "1.1.0" |
|||
resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226" |
|||
integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ== |
|||
dependencies: |
|||
tsscmp "1.0.6" |
|||
|
|||
koa-compose@^3.0.0: |
|||
version "3.2.1" |
|||
resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" |
|||
integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= |
|||
dependencies: |
|||
any-promise "^1.1.0" |
|||
|
|||
koa-compose@^4.1.0: |
|||
version "4.1.0" |
|||
resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" |
|||
integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== |
|||
|
|||
koa-convert@^1.2.0: |
|||
version "1.2.0" |
|||
resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" |
|||
integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= |
|||
dependencies: |
|||
co "^4.6.0" |
|||
koa-compose "^3.0.0" |
|||
|
|||
koa-route@^3.2.0: |
|||
version "3.2.0" |
|||
resolved "https://registry.npmjs.org/koa-route/-/koa-route-3.2.0.tgz#76298b99a6bcfa9e38cab6fe5c79a8733e758bce" |
|||
integrity sha1-dimLmaa8+p44yrb+XHmocz51i84= |
|||
dependencies: |
|||
debug "*" |
|||
methods "~1.1.0" |
|||
path-to-regexp "^1.2.0" |
|||
|
|||
koa-websocket@^6.0.0: |
|||
version "6.0.0" |
|||
resolved "https://registry.npmjs.org/koa-websocket/-/koa-websocket-6.0.0.tgz#7fb7698a7004c07aac663b15e84bf4bc99901352" |
|||
integrity sha512-pGTaB+aXILD/q+bQNh+Ejrg8zSxf6QRpiUQoh2TFQSmUZo2hrt6KGk4qlyxfHxFH40bVtyKeo4x1u0kKgJDOWA== |
|||
dependencies: |
|||
co "^4.4.0" |
|||
debug "^4.0.1" |
|||
koa-compose "^4.1.0" |
|||
ws "^7.0.1" |
|||
|
|||
koa@^2.13.1: |
|||
version "2.13.1" |
|||
resolved "https://registry.npmjs.org/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051" |
|||
integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w== |
|||
dependencies: |
|||
accepts "^1.3.5" |
|||
cache-content-type "^1.0.0" |
|||
content-disposition "~0.5.2" |
|||
content-type "^1.0.4" |
|||
cookies "~0.8.0" |
|||
debug "~3.1.0" |
|||
delegates "^1.0.0" |
|||
depd "^2.0.0" |
|||
destroy "^1.0.4" |
|||
encodeurl "^1.0.2" |
|||
escape-html "^1.0.3" |
|||
fresh "~0.5.2" |
|||
http-assert "^1.3.0" |
|||
http-errors "^1.6.3" |
|||
is-generator-function "^1.0.7" |
|||
koa-compose "^4.1.0" |
|||
koa-convert "^1.2.0" |
|||
on-finished "^2.3.0" |
|||
only "~0.0.2" |
|||
parseurl "^1.3.2" |
|||
statuses "^1.5.0" |
|||
type-is "^1.6.16" |
|||
vary "^1.1.2" |
|||
|
|||
media-typer@0.3.0: |
|||
version "0.3.0" |
|||
resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" |
|||
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= |
|||
|
|||
methods@~1.1.0: |
|||
version "1.1.2" |
|||
resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" |
|||
integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= |
|||
|
|||
mime-db@1.46.0: |
|||
version "1.46.0" |
|||
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" |
|||
integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== |
|||
|
|||
mime-types@^2.1.18, mime-types@~2.1.24: |
|||
version "2.1.29" |
|||
resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" |
|||
integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== |
|||
dependencies: |
|||
mime-db "1.46.0" |
|||
|
|||
ms@2.0.0: |
|||
version "2.0.0" |
|||
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" |
|||
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= |
|||
|
|||
ms@2.1.2: |
|||
version "2.1.2" |
|||
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" |
|||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== |
|||
|
|||
negotiator@0.6.2: |
|||
version "0.6.2" |
|||
resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" |
|||
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== |
|||
|
|||
on-finished@^2.3.0: |
|||
version "2.3.0" |
|||
resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" |
|||
integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= |
|||
dependencies: |
|||
ee-first "1.1.1" |
|||
|
|||
only@~0.0.2: |
|||
version "0.0.2" |
|||
resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" |
|||
integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= |
|||
|
|||
parseurl@^1.3.2: |
|||
version "1.3.3" |
|||
resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" |
|||
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== |
|||
|
|||
path-to-regexp@^1.2.0: |
|||
version "1.8.0" |
|||
resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" |
|||
integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== |
|||
dependencies: |
|||
isarray "0.0.1" |
|||
|
|||
safe-buffer@5.1.2: |
|||
version "5.1.2" |
|||
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" |
|||
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== |
|||
|
|||
setprototypeof@1.1.1: |
|||
version "1.1.1" |
|||
resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" |
|||
integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== |
|||
|
|||
setprototypeof@1.2.0: |
|||
version "1.2.0" |
|||
resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" |
|||
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== |
|||
|
|||
"statuses@>= 1.5.0 < 2", statuses@^1.5.0: |
|||
version "1.5.0" |
|||
resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" |
|||
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= |
|||
|
|||
toidentifier@1.0.0: |
|||
version "1.0.0" |
|||
resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" |
|||
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== |
|||
|
|||
tsscmp@1.0.6: |
|||
version "1.0.6" |
|||
resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" |
|||
integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA== |
|||
|
|||
type-is@^1.6.16: |
|||
version "1.6.18" |
|||
resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" |
|||
integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== |
|||
dependencies: |
|||
media-typer "0.3.0" |
|||
mime-types "~2.1.24" |
|||
|
|||
universalify@^2.0.0: |
|||
version "2.0.0" |
|||
resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" |
|||
integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== |
|||
|
|||
vary@^1.1.2: |
|||
version "1.1.2" |
|||
resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" |
|||
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= |
|||
|
|||
ws@^7.0.1: |
|||
version "7.4.3" |
|||
resolved "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" |
|||
integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== |
|||
|
|||
ylru@^1.2.0: |
|||
version "1.2.1" |
|||
resolved "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" |
|||
integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== |
|||
Loading…
Reference in new issue