mirror of
https://github.com/LukeHagar/crossws.git
synced 2025-12-06 04:19:26 +00:00
test: run tests with web standard WebSocket and EventSource (#67)
This commit is contained in:
@@ -83,7 +83,7 @@
|
||||
"uncrypto": "^0.1.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudflare/workers-types": "^4.20240729.0",
|
||||
"@cloudflare/workers-types": "^4.20240806.0",
|
||||
"@deno/types": "^0.0.1",
|
||||
"@types/bun": "^1.1.6",
|
||||
"@types/eventsource": "^1.1.15",
|
||||
@@ -105,9 +105,10 @@
|
||||
"prettier": "^3.3.3",
|
||||
"typescript": "^5.5.4",
|
||||
"uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.44.0",
|
||||
"unbuild": "^3.0.0-rc.7",
|
||||
"unbuild": "3.0.0-rc.7",
|
||||
"undici": "^6.19.5",
|
||||
"vitest": "^2.0.5",
|
||||
"wrangler": "^3.68.0",
|
||||
"wrangler": "^3.69.1",
|
||||
"ws": "^8.18.0"
|
||||
},
|
||||
"packageManager": "pnpm@9.6.0"
|
||||
|
||||
308
pnpm-lock.yaml
generated
308
pnpm-lock.yaml
generated
@@ -16,8 +16,8 @@ importers:
|
||||
version: 0.1.3
|
||||
devDependencies:
|
||||
'@cloudflare/workers-types':
|
||||
specifier: ^4.20240729.0
|
||||
version: 4.20240729.0
|
||||
specifier: ^4.20240806.0
|
||||
version: 4.20240806.0
|
||||
'@deno/types':
|
||||
specifier: ^0.0.1
|
||||
version: 0.0.1
|
||||
@@ -82,14 +82,17 @@ importers:
|
||||
specifier: github:uNetworking/uWebSockets.js#v20.44.0
|
||||
version: https://codeload.github.com/uNetworking/uWebSockets.js/tar.gz/8fa05571bf6ea95be8966ad313d9d39453e381ae
|
||||
unbuild:
|
||||
specifier: ^3.0.0-rc.7
|
||||
specifier: 3.0.0-rc.7
|
||||
version: 3.0.0-rc.7(typescript@5.5.4)
|
||||
undici:
|
||||
specifier: ^6.19.5
|
||||
version: 6.19.5
|
||||
vitest:
|
||||
specifier: ^2.0.5
|
||||
version: 2.0.5(@types/node@22.1.0)
|
||||
wrangler:
|
||||
specifier: ^3.68.0
|
||||
version: 3.68.0(@cloudflare/workers-types@4.20240729.0)
|
||||
specifier: ^3.69.1
|
||||
version: 3.69.1(@cloudflare/workers-types@4.20240806.0)
|
||||
ws:
|
||||
specifier: ^8.18.0
|
||||
version: 8.18.0
|
||||
@@ -228,8 +231,11 @@ packages:
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@cloudflare/workers-types@4.20240729.0':
|
||||
resolution: {integrity: sha512-wfe44YQkv5T9aBr/z95P706r2/Ydg32weJYyBOhvge7FqtdY6mM7l39rybNiJrbJoyN16dd0xxyQMf23aJNC6Q==}
|
||||
'@cloudflare/workers-shared@0.1.0':
|
||||
resolution: {integrity: sha512-SyD4iw6jM4anZaG+ujgVETV4fulF2KHBOW31eavbVN7TNpk2l4aJgwY1YSPK00IKSWsoQuH2TigR446KuT5lqQ==}
|
||||
|
||||
'@cloudflare/workers-types@4.20240806.0':
|
||||
resolution: {integrity: sha512-8lvgrwXGTZEBsUQJ8YUnMk72Anh9omwr6fqWLw/EwVgcw1nQxs/bfdadBEbdP48l9fWXjE4E5XERLUrrFuEpsg==}
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
|
||||
@@ -1233,8 +1239,8 @@ packages:
|
||||
caniuse-api@3.0.0:
|
||||
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
|
||||
|
||||
caniuse-lite@1.0.30001649:
|
||||
resolution: {integrity: sha512-fJegqZZ0ZX8HOWr6rcafGr72+xcgJKI9oWfDW5DrD7ExUtgZC7a7R7ZYmZqplh7XDocFdGeIFn7roAxhOeYrPQ==}
|
||||
caniuse-lite@1.0.30001651:
|
||||
resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==}
|
||||
|
||||
capnp-ts@0.7.0:
|
||||
resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==}
|
||||
@@ -1472,8 +1478,8 @@ packages:
|
||||
eastasianwidth@0.2.0:
|
||||
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
|
||||
|
||||
electron-to-chromium@1.5.4:
|
||||
resolution: {integrity: sha512-orzA81VqLyIGUEA77YkVA1D+N+nNfl2isJVjjmOyrlxuooZ19ynb+dOlaDTqd/idKRS9lDCSBmtzM+kyCsMnkA==}
|
||||
electron-to-chromium@1.5.5:
|
||||
resolution: {integrity: sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==}
|
||||
|
||||
emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
@@ -1650,8 +1656,8 @@ packages:
|
||||
flatted@3.3.1:
|
||||
resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
|
||||
|
||||
foreground-child@3.2.1:
|
||||
resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==}
|
||||
foreground-child@3.3.0:
|
||||
resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
fraction.js@4.3.7:
|
||||
@@ -2300,8 +2306,8 @@ packages:
|
||||
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
|
||||
engines: {node: '>=4'}
|
||||
|
||||
postcss-calc@10.0.0:
|
||||
resolution: {integrity: sha512-OmjhudoNTP0QleZCwl1i6NeBwN+5MZbY5ersLZz69mjJiDVv/p57RjRuKDkHeDWr4T+S97wQfsqRTNoDHB2e3g==}
|
||||
postcss-calc@10.0.1:
|
||||
resolution: {integrity: sha512-pp1Z3FxtxA+xHAoWXcOXgnBN1WPu4ZiJ5LWGjKyf9MMreagAsaTUtnqFK1y1sHhyJddAkYTPu6XSuLgb3oYCjw==}
|
||||
engines: {node: ^18.12 || ^20.9 || >=22.0}
|
||||
peerDependencies:
|
||||
postcss: ^8.4.38
|
||||
@@ -2475,8 +2481,8 @@ packages:
|
||||
postcss-value-parser@4.2.0:
|
||||
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
|
||||
|
||||
postcss@8.4.40:
|
||||
resolution: {integrity: sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==}
|
||||
postcss@8.4.41:
|
||||
resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
|
||||
prelude-ls@1.2.1:
|
||||
@@ -2833,6 +2839,10 @@ packages:
|
||||
resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==}
|
||||
engines: {node: '>=14.0'}
|
||||
|
||||
undici@6.19.5:
|
||||
resolution: {integrity: sha512-LryC15SWzqQsREHIOUybavaIHF5IoL0dJ9aWWxL/PgT1KfqAW5225FZpDUFlt9xiDMS2/S7DOKhFWA7RLksWdg==}
|
||||
engines: {node: '>=18.17'}
|
||||
|
||||
unenv-nightly@1.10.0-1717606461.a117952:
|
||||
resolution: {integrity: sha512-u3TfBX02WzbHTpaEfWEKwDijDSFAHcgXkayUZ+MVDrjhLFvgAJzFGTSTmwlEhwWi2exyRQey23ah9wELMM6etg==}
|
||||
|
||||
@@ -2881,8 +2891,8 @@ packages:
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
|
||||
vite@5.3.5:
|
||||
resolution: {integrity: sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==}
|
||||
vite@5.4.0:
|
||||
resolution: {integrity: sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==}
|
||||
engines: {node: ^18.0.0 || >=20.0.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -2890,6 +2900,7 @@ packages:
|
||||
less: '*'
|
||||
lightningcss: ^1.21.0
|
||||
sass: '*'
|
||||
sass-embedded: '*'
|
||||
stylus: '*'
|
||||
sugarss: '*'
|
||||
terser: ^5.4.0
|
||||
@@ -2902,6 +2913,8 @@ packages:
|
||||
optional: true
|
||||
sass:
|
||||
optional: true
|
||||
sass-embedded:
|
||||
optional: true
|
||||
stylus:
|
||||
optional: true
|
||||
sugarss:
|
||||
@@ -2953,8 +2966,8 @@ packages:
|
||||
engines: {node: '>=16'}
|
||||
hasBin: true
|
||||
|
||||
wrangler@3.68.0:
|
||||
resolution: {integrity: sha512-gsIeglkh5nOn1mHJs0bf1pOq/DvIt+umjO/5a867IYYXaN4j/ar5cRR1+F5ue3S7uEjYCLIZZjs8ESiPTSEt+Q==}
|
||||
wrangler@3.69.1:
|
||||
resolution: {integrity: sha512-lqgPsaxIP564OJE6f7RIS/iLy+WaY0EN89p2g83nkrPN6PjuC6vB3eC7jgeVZO1ntWjD0X+mEU5ggbERHr899w==}
|
||||
engines: {node: '>=16.17.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
@@ -3157,7 +3170,9 @@ snapshots:
|
||||
'@cloudflare/workerd-windows-64@1.20240725.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workers-types@4.20240729.0': {}
|
||||
'@cloudflare/workers-shared@0.1.0': {}
|
||||
|
||||
'@cloudflare/workers-types@4.20240806.0': {}
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
dependencies:
|
||||
@@ -3872,14 +3887,14 @@ snapshots:
|
||||
- magicast
|
||||
- supports-color
|
||||
|
||||
autoprefixer@10.4.20(postcss@8.4.40):
|
||||
autoprefixer@10.4.20(postcss@8.4.41):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
caniuse-lite: 1.0.30001649
|
||||
caniuse-lite: 1.0.30001651
|
||||
fraction.js: 4.3.7
|
||||
normalize-range: 0.1.2
|
||||
picocolors: 1.0.1
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
balanced-match@1.0.2: {}
|
||||
@@ -3911,8 +3926,8 @@ snapshots:
|
||||
|
||||
browserslist@4.23.3:
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001649
|
||||
electron-to-chromium: 1.5.4
|
||||
caniuse-lite: 1.0.30001651
|
||||
electron-to-chromium: 1.5.5
|
||||
node-releases: 2.0.18
|
||||
update-browserslist-db: 1.1.0(browserslist@4.23.3)
|
||||
|
||||
@@ -3968,11 +3983,11 @@ snapshots:
|
||||
caniuse-api@3.0.0:
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
caniuse-lite: 1.0.30001649
|
||||
caniuse-lite: 1.0.30001651
|
||||
lodash.memoize: 4.1.2
|
||||
lodash.uniq: 4.5.0
|
||||
|
||||
caniuse-lite@1.0.30001649: {}
|
||||
caniuse-lite@1.0.30001651: {}
|
||||
|
||||
capnp-ts@0.7.0:
|
||||
dependencies:
|
||||
@@ -4102,9 +4117,9 @@ snapshots:
|
||||
shebang-command: 2.0.0
|
||||
which: 2.0.2
|
||||
|
||||
css-declaration-sorter@7.2.0(postcss@8.4.40):
|
||||
css-declaration-sorter@7.2.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
|
||||
css-select@5.1.0:
|
||||
dependencies:
|
||||
@@ -4128,49 +4143,49 @@ snapshots:
|
||||
|
||||
cssesc@3.0.0: {}
|
||||
|
||||
cssnano-preset-default@7.0.4(postcss@8.4.40):
|
||||
cssnano-preset-default@7.0.4(postcss@8.4.41):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
css-declaration-sorter: 7.2.0(postcss@8.4.40)
|
||||
cssnano-utils: 5.0.0(postcss@8.4.40)
|
||||
postcss: 8.4.40
|
||||
postcss-calc: 10.0.0(postcss@8.4.40)
|
||||
postcss-colormin: 7.0.1(postcss@8.4.40)
|
||||
postcss-convert-values: 7.0.2(postcss@8.4.40)
|
||||
postcss-discard-comments: 7.0.1(postcss@8.4.40)
|
||||
postcss-discard-duplicates: 7.0.0(postcss@8.4.40)
|
||||
postcss-discard-empty: 7.0.0(postcss@8.4.40)
|
||||
postcss-discard-overridden: 7.0.0(postcss@8.4.40)
|
||||
postcss-merge-longhand: 7.0.2(postcss@8.4.40)
|
||||
postcss-merge-rules: 7.0.2(postcss@8.4.40)
|
||||
postcss-minify-font-values: 7.0.0(postcss@8.4.40)
|
||||
postcss-minify-gradients: 7.0.0(postcss@8.4.40)
|
||||
postcss-minify-params: 7.0.1(postcss@8.4.40)
|
||||
postcss-minify-selectors: 7.0.2(postcss@8.4.40)
|
||||
postcss-normalize-charset: 7.0.0(postcss@8.4.40)
|
||||
postcss-normalize-display-values: 7.0.0(postcss@8.4.40)
|
||||
postcss-normalize-positions: 7.0.0(postcss@8.4.40)
|
||||
postcss-normalize-repeat-style: 7.0.0(postcss@8.4.40)
|
||||
postcss-normalize-string: 7.0.0(postcss@8.4.40)
|
||||
postcss-normalize-timing-functions: 7.0.0(postcss@8.4.40)
|
||||
postcss-normalize-unicode: 7.0.1(postcss@8.4.40)
|
||||
postcss-normalize-url: 7.0.0(postcss@8.4.40)
|
||||
postcss-normalize-whitespace: 7.0.0(postcss@8.4.40)
|
||||
postcss-ordered-values: 7.0.1(postcss@8.4.40)
|
||||
postcss-reduce-initial: 7.0.1(postcss@8.4.40)
|
||||
postcss-reduce-transforms: 7.0.0(postcss@8.4.40)
|
||||
postcss-svgo: 7.0.1(postcss@8.4.40)
|
||||
postcss-unique-selectors: 7.0.1(postcss@8.4.40)
|
||||
css-declaration-sorter: 7.2.0(postcss@8.4.41)
|
||||
cssnano-utils: 5.0.0(postcss@8.4.41)
|
||||
postcss: 8.4.41
|
||||
postcss-calc: 10.0.1(postcss@8.4.41)
|
||||
postcss-colormin: 7.0.1(postcss@8.4.41)
|
||||
postcss-convert-values: 7.0.2(postcss@8.4.41)
|
||||
postcss-discard-comments: 7.0.1(postcss@8.4.41)
|
||||
postcss-discard-duplicates: 7.0.0(postcss@8.4.41)
|
||||
postcss-discard-empty: 7.0.0(postcss@8.4.41)
|
||||
postcss-discard-overridden: 7.0.0(postcss@8.4.41)
|
||||
postcss-merge-longhand: 7.0.2(postcss@8.4.41)
|
||||
postcss-merge-rules: 7.0.2(postcss@8.4.41)
|
||||
postcss-minify-font-values: 7.0.0(postcss@8.4.41)
|
||||
postcss-minify-gradients: 7.0.0(postcss@8.4.41)
|
||||
postcss-minify-params: 7.0.1(postcss@8.4.41)
|
||||
postcss-minify-selectors: 7.0.2(postcss@8.4.41)
|
||||
postcss-normalize-charset: 7.0.0(postcss@8.4.41)
|
||||
postcss-normalize-display-values: 7.0.0(postcss@8.4.41)
|
||||
postcss-normalize-positions: 7.0.0(postcss@8.4.41)
|
||||
postcss-normalize-repeat-style: 7.0.0(postcss@8.4.41)
|
||||
postcss-normalize-string: 7.0.0(postcss@8.4.41)
|
||||
postcss-normalize-timing-functions: 7.0.0(postcss@8.4.41)
|
||||
postcss-normalize-unicode: 7.0.1(postcss@8.4.41)
|
||||
postcss-normalize-url: 7.0.0(postcss@8.4.41)
|
||||
postcss-normalize-whitespace: 7.0.0(postcss@8.4.41)
|
||||
postcss-ordered-values: 7.0.1(postcss@8.4.41)
|
||||
postcss-reduce-initial: 7.0.1(postcss@8.4.41)
|
||||
postcss-reduce-transforms: 7.0.0(postcss@8.4.41)
|
||||
postcss-svgo: 7.0.1(postcss@8.4.41)
|
||||
postcss-unique-selectors: 7.0.1(postcss@8.4.41)
|
||||
|
||||
cssnano-utils@5.0.0(postcss@8.4.40):
|
||||
cssnano-utils@5.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
|
||||
cssnano@7.0.4(postcss@8.4.40):
|
||||
cssnano@7.0.4(postcss@8.4.41):
|
||||
dependencies:
|
||||
cssnano-preset-default: 7.0.4(postcss@8.4.40)
|
||||
cssnano-preset-default: 7.0.4(postcss@8.4.41)
|
||||
lilconfig: 3.1.2
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
|
||||
csso@5.0.5:
|
||||
dependencies:
|
||||
@@ -4242,7 +4257,7 @@ snapshots:
|
||||
|
||||
eastasianwidth@0.2.0: {}
|
||||
|
||||
electron-to-chromium@1.5.4: {}
|
||||
electron-to-chromium@1.5.5: {}
|
||||
|
||||
emoji-regex@8.0.0: {}
|
||||
|
||||
@@ -4557,7 +4572,7 @@ snapshots:
|
||||
|
||||
flatted@3.3.1: {}
|
||||
|
||||
foreground-child@3.2.1:
|
||||
foreground-child@3.3.0:
|
||||
dependencies:
|
||||
cross-spawn: 7.0.3
|
||||
signal-exit: 4.1.0
|
||||
@@ -4616,7 +4631,7 @@ snapshots:
|
||||
|
||||
glob@10.4.5:
|
||||
dependencies:
|
||||
foreground-child: 3.2.1
|
||||
foreground-child: 3.3.0
|
||||
jackspeak: 3.4.3
|
||||
minimatch: 9.0.5
|
||||
minipass: 7.1.2
|
||||
@@ -4995,9 +5010,9 @@ snapshots:
|
||||
|
||||
mkdist@1.5.4(typescript@5.5.4):
|
||||
dependencies:
|
||||
autoprefixer: 10.4.20(postcss@8.4.40)
|
||||
autoprefixer: 10.4.20(postcss@8.4.41)
|
||||
citty: 0.1.6
|
||||
cssnano: 7.0.4(postcss@8.4.40)
|
||||
cssnano: 7.0.4(postcss@8.4.41)
|
||||
defu: 6.1.4
|
||||
esbuild: 0.23.0
|
||||
fast-glob: 3.3.2
|
||||
@@ -5005,8 +5020,8 @@ snapshots:
|
||||
mlly: 1.7.1
|
||||
pathe: 1.1.2
|
||||
pkg-types: 1.1.3
|
||||
postcss: 8.4.40
|
||||
postcss-nested: 6.2.0(postcss@8.4.40)
|
||||
postcss: 8.4.41
|
||||
postcss-nested: 6.2.0(postcss@8.4.41)
|
||||
semver: 7.6.3
|
||||
optionalDependencies:
|
||||
typescript: 5.5.4
|
||||
@@ -5179,147 +5194,147 @@ snapshots:
|
||||
|
||||
pluralize@8.0.0: {}
|
||||
|
||||
postcss-calc@10.0.0(postcss@8.4.40):
|
||||
postcss-calc@10.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-selector-parser: 6.1.1
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-colormin@7.0.1(postcss@8.4.40):
|
||||
postcss-colormin@7.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
caniuse-api: 3.0.0
|
||||
colord: 2.9.3
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-convert-values@7.0.2(postcss@8.4.40):
|
||||
postcss-convert-values@7.0.2(postcss@8.4.41):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-discard-comments@7.0.1(postcss@8.4.40):
|
||||
postcss-discard-comments@7.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-selector-parser: 6.1.1
|
||||
|
||||
postcss-discard-duplicates@7.0.0(postcss@8.4.40):
|
||||
postcss-discard-duplicates@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
|
||||
postcss-discard-empty@7.0.0(postcss@8.4.40):
|
||||
postcss-discard-empty@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
|
||||
postcss-discard-overridden@7.0.0(postcss@8.4.40):
|
||||
postcss-discard-overridden@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
|
||||
postcss-merge-longhand@7.0.2(postcss@8.4.40):
|
||||
postcss-merge-longhand@7.0.2(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
stylehacks: 7.0.2(postcss@8.4.40)
|
||||
stylehacks: 7.0.2(postcss@8.4.41)
|
||||
|
||||
postcss-merge-rules@7.0.2(postcss@8.4.40):
|
||||
postcss-merge-rules@7.0.2(postcss@8.4.41):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
caniuse-api: 3.0.0
|
||||
cssnano-utils: 5.0.0(postcss@8.4.40)
|
||||
postcss: 8.4.40
|
||||
cssnano-utils: 5.0.0(postcss@8.4.41)
|
||||
postcss: 8.4.41
|
||||
postcss-selector-parser: 6.1.1
|
||||
|
||||
postcss-minify-font-values@7.0.0(postcss@8.4.40):
|
||||
postcss-minify-font-values@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-minify-gradients@7.0.0(postcss@8.4.40):
|
||||
postcss-minify-gradients@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
colord: 2.9.3
|
||||
cssnano-utils: 5.0.0(postcss@8.4.40)
|
||||
postcss: 8.4.40
|
||||
cssnano-utils: 5.0.0(postcss@8.4.41)
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-minify-params@7.0.1(postcss@8.4.40):
|
||||
postcss-minify-params@7.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
cssnano-utils: 5.0.0(postcss@8.4.40)
|
||||
postcss: 8.4.40
|
||||
cssnano-utils: 5.0.0(postcss@8.4.41)
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-minify-selectors@7.0.2(postcss@8.4.40):
|
||||
postcss-minify-selectors@7.0.2(postcss@8.4.41):
|
||||
dependencies:
|
||||
cssesc: 3.0.0
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-selector-parser: 6.1.1
|
||||
|
||||
postcss-nested@6.2.0(postcss@8.4.40):
|
||||
postcss-nested@6.2.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-selector-parser: 6.1.1
|
||||
|
||||
postcss-normalize-charset@7.0.0(postcss@8.4.40):
|
||||
postcss-normalize-charset@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
|
||||
postcss-normalize-display-values@7.0.0(postcss@8.4.40):
|
||||
postcss-normalize-display-values@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-normalize-positions@7.0.0(postcss@8.4.40):
|
||||
postcss-normalize-positions@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-normalize-repeat-style@7.0.0(postcss@8.4.40):
|
||||
postcss-normalize-repeat-style@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-normalize-string@7.0.0(postcss@8.4.40):
|
||||
postcss-normalize-string@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-normalize-timing-functions@7.0.0(postcss@8.4.40):
|
||||
postcss-normalize-timing-functions@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-normalize-unicode@7.0.1(postcss@8.4.40):
|
||||
postcss-normalize-unicode@7.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-normalize-url@7.0.0(postcss@8.4.40):
|
||||
postcss-normalize-url@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-normalize-whitespace@7.0.0(postcss@8.4.40):
|
||||
postcss-normalize-whitespace@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-ordered-values@7.0.1(postcss@8.4.40):
|
||||
postcss-ordered-values@7.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
cssnano-utils: 5.0.0(postcss@8.4.40)
|
||||
postcss: 8.4.40
|
||||
cssnano-utils: 5.0.0(postcss@8.4.41)
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-reduce-initial@7.0.1(postcss@8.4.40):
|
||||
postcss-reduce-initial@7.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
caniuse-api: 3.0.0
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
|
||||
postcss-reduce-transforms@7.0.0(postcss@8.4.40):
|
||||
postcss-reduce-transforms@7.0.0(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
postcss-selector-parser@6.1.1:
|
||||
@@ -5327,20 +5342,20 @@ snapshots:
|
||||
cssesc: 3.0.0
|
||||
util-deprecate: 1.0.2
|
||||
|
||||
postcss-svgo@7.0.1(postcss@8.4.40):
|
||||
postcss-svgo@7.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-value-parser: 4.2.0
|
||||
svgo: 3.3.2
|
||||
|
||||
postcss-unique-selectors@7.0.1(postcss@8.4.40):
|
||||
postcss-unique-selectors@7.0.1(postcss@8.4.41):
|
||||
dependencies:
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-selector-parser: 6.1.1
|
||||
|
||||
postcss-value-parser@4.2.0: {}
|
||||
|
||||
postcss@8.4.40:
|
||||
postcss@8.4.41:
|
||||
dependencies:
|
||||
nanoid: 3.3.7
|
||||
picocolors: 1.0.1
|
||||
@@ -5552,10 +5567,10 @@ snapshots:
|
||||
|
||||
strip-json-comments@3.1.1: {}
|
||||
|
||||
stylehacks@7.0.2(postcss@8.4.40):
|
||||
stylehacks@7.0.2(postcss@8.4.41):
|
||||
dependencies:
|
||||
browserslist: 4.23.3
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
postcss-selector-parser: 6.1.1
|
||||
|
||||
supports-color@5.5.0:
|
||||
@@ -5687,6 +5702,8 @@ snapshots:
|
||||
dependencies:
|
||||
'@fastify/busboy': 2.1.1
|
||||
|
||||
undici@6.19.5: {}
|
||||
|
||||
unenv-nightly@1.10.0-1717606461.a117952:
|
||||
dependencies:
|
||||
consola: 3.2.3
|
||||
@@ -5755,21 +5772,22 @@ snapshots:
|
||||
debug: 4.3.6
|
||||
pathe: 1.1.2
|
||||
tinyrainbow: 1.2.0
|
||||
vite: 5.3.5(@types/node@22.1.0)
|
||||
vite: 5.4.0(@types/node@22.1.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
- lightningcss
|
||||
- sass
|
||||
- sass-embedded
|
||||
- stylus
|
||||
- sugarss
|
||||
- supports-color
|
||||
- terser
|
||||
|
||||
vite@5.3.5(@types/node@22.1.0):
|
||||
vite@5.4.0(@types/node@22.1.0):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.40
|
||||
postcss: 8.4.41
|
||||
rollup: 4.20.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.1.0
|
||||
@@ -5793,7 +5811,7 @@ snapshots:
|
||||
tinybench: 2.9.0
|
||||
tinypool: 1.0.0
|
||||
tinyrainbow: 1.2.0
|
||||
vite: 5.3.5(@types/node@22.1.0)
|
||||
vite: 5.4.0(@types/node@22.1.0)
|
||||
vite-node: 2.0.5(@types/node@22.1.0)
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
@@ -5802,6 +5820,7 @@ snapshots:
|
||||
- less
|
||||
- lightningcss
|
||||
- sass
|
||||
- sass-embedded
|
||||
- stylus
|
||||
- sugarss
|
||||
- supports-color
|
||||
@@ -5826,9 +5845,10 @@ snapshots:
|
||||
'@cloudflare/workerd-linux-arm64': 1.20240725.0
|
||||
'@cloudflare/workerd-windows-64': 1.20240725.0
|
||||
|
||||
wrangler@3.68.0(@cloudflare/workers-types@4.20240729.0):
|
||||
wrangler@3.69.1(@cloudflare/workers-types@4.20240806.0):
|
||||
dependencies:
|
||||
'@cloudflare/kv-asset-handler': 0.3.4
|
||||
'@cloudflare/workers-shared': 0.1.0
|
||||
'@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19)
|
||||
'@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19)
|
||||
blake3-wasm: 2.1.5
|
||||
@@ -5846,7 +5866,7 @@ snapshots:
|
||||
workerd: 1.20240725.0
|
||||
xxhash-wasm: 1.0.2
|
||||
optionalDependencies:
|
||||
'@cloudflare/workers-types': 4.20240729.0
|
||||
'@cloudflare/workers-types': 4.20240806.0
|
||||
fsevents: 2.3.3
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
import type { OutgoingHttpHeaders } from "node:http";
|
||||
import { Agent, WebSocket } from "undici";
|
||||
import { afterAll, beforeAll, afterEach } from "vitest";
|
||||
import { execa, ResultPromise as ExecaRes } from "execa";
|
||||
import { fileURLToPath } from "node:url";
|
||||
import { getRandomPort, waitForPort } from "get-port-please";
|
||||
import { WebSocket } from "ws";
|
||||
import { wsTests } from "./tests";
|
||||
|
||||
const fixtureDir = fileURLToPath(new URL("fixture", import.meta.url));
|
||||
@@ -18,13 +17,15 @@ afterEach(() => {
|
||||
|
||||
export function wsConnect(
|
||||
url: string,
|
||||
opts?: { skip?: number; headers?: OutgoingHttpHeaders },
|
||||
opts?: { skip?: number; headers?: HeadersInit },
|
||||
) {
|
||||
const ws = new WebSocket(url, { headers: opts?.headers });
|
||||
const inspector = new WebSocketInspector();
|
||||
const ws = new WebSocket(url, {
|
||||
headers: opts?.headers,
|
||||
dispatcher: inspector,
|
||||
});
|
||||
websockets.add(ws);
|
||||
|
||||
const upgradeHeaders: Record<string, string> = Object.create(null);
|
||||
|
||||
const send = async (data: any): Promise<any> => {
|
||||
ws.send(
|
||||
typeof data === "string" ? data : JSON.stringify({ message: data }),
|
||||
@@ -48,13 +49,11 @@ export function wsConnect(
|
||||
nextIndex += count;
|
||||
};
|
||||
|
||||
ws.once("upgrade", (req) => {
|
||||
Object.assign(upgradeHeaders, req.headers);
|
||||
});
|
||||
|
||||
ws.on("message", (data: any) => {
|
||||
ws.addEventListener("message", (event) => {
|
||||
const str =
|
||||
typeof data === "string" ? data : new TextDecoder().decode(data);
|
||||
typeof event.data === "string"
|
||||
? event.data
|
||||
: new TextDecoder().decode(event.data);
|
||||
const payload = str[0] === "{" ? JSON.parse(str) : str;
|
||||
messages.push(payload);
|
||||
const index = messages.length - 1;
|
||||
@@ -70,39 +69,59 @@ export function wsConnect(
|
||||
next,
|
||||
skip,
|
||||
messages,
|
||||
upgradeHeaders,
|
||||
inspector,
|
||||
error: undefined as Error | undefined,
|
||||
};
|
||||
|
||||
const connectPromise = new Promise((resolve, reject) => {
|
||||
ws.once("open", () => resolve(res));
|
||||
ws.once("error", reject);
|
||||
ws.once("unexpected-response", (_req, res) => {
|
||||
const bodyChunks: any[] = [];
|
||||
res.on("data", (chunk) => {
|
||||
bodyChunks.push(chunk);
|
||||
});
|
||||
res.once("end", () => {
|
||||
const body = Buffer.concat(bodyChunks).toString();
|
||||
reject(
|
||||
new Error(
|
||||
`Unexpected response: ${res.statusCode} ${res.statusMessage} (body:${body})`,
|
||||
{
|
||||
cause: {
|
||||
status: res.statusCode!,
|
||||
statusText: res.statusMessage!,
|
||||
headers: res.headers,
|
||||
body,
|
||||
},
|
||||
},
|
||||
),
|
||||
);
|
||||
});
|
||||
ws.addEventListener("open", () => resolve(res));
|
||||
ws.addEventListener("error", (error) => {
|
||||
res.error = error;
|
||||
resolve(res);
|
||||
});
|
||||
});
|
||||
|
||||
return Object.assign(connectPromise, res) as Promise<typeof res>;
|
||||
}
|
||||
|
||||
class WebSocketInspector extends Agent {
|
||||
status?: number;
|
||||
statusText?: string;
|
||||
headers?: Record<string, string>;
|
||||
error?: Error;
|
||||
|
||||
_normalizeHeaders(rawHeaders: string[] | Buffer[] | null) {
|
||||
const headerEntries: [string, string][] = [];
|
||||
for (let i = 0; i < rawHeaders!.length; i += 2) {
|
||||
headerEntries.push([
|
||||
decodeURIComponent(rawHeaders![i].toString()).toLowerCase(),
|
||||
decodeURIComponent(rawHeaders![i + 1].toString()),
|
||||
]);
|
||||
}
|
||||
return Object.fromEntries(headerEntries);
|
||||
}
|
||||
|
||||
dispatch(opts: any, handler: any) {
|
||||
return super.dispatch(opts, {
|
||||
...handler,
|
||||
onHeaders: (statusCode, headers, resume, statusText) => {
|
||||
this.status = statusCode;
|
||||
this.statusText = statusText;
|
||||
this.headers = this._normalizeHeaders(headers);
|
||||
return handler.onHeaders(statusCode, headers, resume, statusText);
|
||||
},
|
||||
onError: (error) => {
|
||||
this.error = error;
|
||||
return handler.onError(error);
|
||||
},
|
||||
onUpgrade: (statusCode, rawHeaders = [], socket) => {
|
||||
this.headers = this._normalizeHeaders(rawHeaders);
|
||||
return handler.onUpgrade(statusCode, rawHeaders, socket);
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export function wsTestsExec(
|
||||
cmd: string,
|
||||
opts: Parameters<typeof wsTests>[1],
|
||||
|
||||
@@ -37,9 +37,9 @@ describe("node", () => {
|
||||
await waitForPort(port);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
afterAll(() => {
|
||||
ws.closeAll();
|
||||
await new Promise<void>((resolve) => server.close(() => resolve()));
|
||||
server.close();
|
||||
});
|
||||
|
||||
wsTests(() => url, {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, test, expect } from "vitest";
|
||||
import { wsTestsExec } from "../_utils";
|
||||
import EventSource from "eventsource";
|
||||
import { EventSource } from "undici";
|
||||
|
||||
describe("sse", () => {
|
||||
wsTestsExec(
|
||||
@@ -15,6 +15,7 @@ describe("sse", () => {
|
||||
messages.push(event.data);
|
||||
});
|
||||
await new Promise((resolve) => ev.addEventListener("open", resolve));
|
||||
await new Promise((resolve) => ev.addEventListener("message", resolve));
|
||||
ev.close();
|
||||
expect(messages[0]).toMatch(/Welcome to the server \w+/);
|
||||
expect(messages.length).toBe(1);
|
||||
|
||||
@@ -51,10 +51,12 @@ export function wsTests(
|
||||
"upgrade response headers",
|
||||
async () => {
|
||||
const ws = await wsConnect(getURL());
|
||||
expect(ws.upgradeHeaders["x-powered-by"]).toBe("cross-ws");
|
||||
expect(ws.upgradeHeaders["set-cookie"]).toMatchObject([
|
||||
"cross-ws=1; SameSite=None; Secure",
|
||||
]);
|
||||
expect(ws.inspector.headers).toMatchObject({
|
||||
connection: expect.stringMatching(/^upgrade$/i),
|
||||
"sec-websocket-accept": expect.any(String),
|
||||
"set-cookie": "cross-ws=1; SameSite=None; Secure",
|
||||
"x-powered-by": "cross-ws",
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
@@ -65,7 +67,7 @@ export function wsTests(
|
||||
});
|
||||
await ws.send("debug");
|
||||
const { headers } = await ws.next();
|
||||
expect(headers["connection"]).toBe("Upgrade");
|
||||
expect(headers["connection"]).toMatch(/^upgrade$/i);
|
||||
expect(headers["x-test"]).toBe("1");
|
||||
});
|
||||
|
||||
@@ -79,12 +81,14 @@ export function wsTests(
|
||||
});
|
||||
|
||||
test("upgrade fail response", async () => {
|
||||
await expect(wsConnect(getURL() + "?unauthorized")).rejects.toMatchObject({
|
||||
cause: {
|
||||
status: 401,
|
||||
statusText: "Unauthorized",
|
||||
body: "unauthorized",
|
||||
headers: { "x-error": "unauthorized" },
|
||||
const ws = await wsConnect(getURL() + "?unauthorized");
|
||||
expect(ws.error).toBeDefined();
|
||||
expect(ws.inspector).toMatchObject({
|
||||
status: 401,
|
||||
statusText: "Unauthorized",
|
||||
headers: {
|
||||
"content-type": expect.stringMatching(/^text\/plain/),
|
||||
"x-error": "unauthorized",
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user