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