mirror of
https://github.com/LukeHagar/crossws.git
synced 2025-12-06 04:19:26 +00:00
test: add adater tests (#56)
This commit is contained in:
9
.github/workflows/ci.yml
vendored
9
.github/workflows/ci.yml
vendored
@@ -18,9 +18,14 @@ jobs:
|
||||
with:
|
||||
node-version: 20
|
||||
cache: "pnpm"
|
||||
- uses: oven-sh/setup-bun@v2
|
||||
with:
|
||||
bun-version: latest
|
||||
- uses: denoland/setup-deno@v1
|
||||
with:
|
||||
deno-version: v1.x
|
||||
- run: pnpm install
|
||||
- run: pnpm lint
|
||||
- run: pnpm test:types
|
||||
- run: pnpm build
|
||||
# - run: pnpm vitest --coverage
|
||||
- uses: codecov/codecov-action@v4
|
||||
- run: pnpm vitest
|
||||
|
||||
@@ -4,6 +4,7 @@ import unjs from "eslint-config-unjs";
|
||||
export default unjs({
|
||||
ignores: [
|
||||
"types",
|
||||
"**/.wrangler",
|
||||
"**/.docs/**",
|
||||
],
|
||||
rules: {
|
||||
|
||||
21
package.json
21
package.json
@@ -66,15 +66,16 @@
|
||||
],
|
||||
"scripts": {
|
||||
"build": "unbuild",
|
||||
"dev": "pnpm play:node",
|
||||
"lint": "eslint --cache . && prettier -c src",
|
||||
"lint:fix": "eslint --cache . --fix && prettier -c src -w",
|
||||
"dev": "vitest",
|
||||
"lint": "eslint --cache . && prettier -c src test",
|
||||
"lint:fix": "eslint --cache . --fix && prettier -w src test",
|
||||
"prepack": "pnpm run build",
|
||||
"play:bun": "bun playground/bun.ts",
|
||||
"play:cf": "wrangler dev --port 3001",
|
||||
"play:deno": "deno run --unstable-sloppy-imports -A playground/deno.ts",
|
||||
"play:node": "jiti playground/node.ts",
|
||||
"play:uws": "jiti playground/uws.ts",
|
||||
"play:bun": "bun test/fixture/bun.ts",
|
||||
"play:cf": "wrangler dev --port 3001 -c test/fixture/wrangler.toml",
|
||||
"play:cf-durable": "wrangler dev --port 3001 -c test/fixture/wrangler-durable.toml",
|
||||
"play:deno": "deno run -A test/fixture/deno.ts",
|
||||
"play:node": "jiti test/fixture/node.ts",
|
||||
"play:uws": "jiti test/fixture/uws.ts",
|
||||
"release": "pnpm test && pnpm build && changelogen --release && npm publish && git push --follow-tags",
|
||||
"test": "pnpm lint && pnpm test:types && vitest run",
|
||||
"test:types": "tsc --noEmit --skipLibCheck"
|
||||
@@ -95,8 +96,10 @@
|
||||
"consola": "^3.2.3",
|
||||
"eslint": "^9.8.0",
|
||||
"eslint-config-unjs": "^0.3.2",
|
||||
"execa": "^9.3.0",
|
||||
"get-port-please": "^3.1.2",
|
||||
"h3": "^1.12.0",
|
||||
"jiti": "^1.21.6",
|
||||
"jiti": "2.0.0-beta.3",
|
||||
"listhen": "^1.7.2",
|
||||
"prettier": "^3.3.3",
|
||||
"typescript": "^5.5.4",
|
||||
|
||||
421
pnpm-lock.yaml
generated
421
pnpm-lock.yaml
generated
@@ -13,7 +13,7 @@ importers:
|
||||
devDependencies:
|
||||
'@cloudflare/workers-types':
|
||||
specifier: ^4.20240725.0
|
||||
version: 4.20240725.0
|
||||
version: 4.20240729.0
|
||||
'@deno/types':
|
||||
specifier: ^0.0.1
|
||||
version: 0.0.1
|
||||
@@ -22,7 +22,7 @@ importers:
|
||||
version: 1.1.6
|
||||
'@types/node':
|
||||
specifier: ^22.0.1
|
||||
version: 22.0.1
|
||||
version: 22.1.0
|
||||
'@types/web':
|
||||
specifier: ^0.0.152
|
||||
version: 0.0.152
|
||||
@@ -31,7 +31,7 @@ importers:
|
||||
version: 8.5.12
|
||||
'@vitest/coverage-v8':
|
||||
specifier: ^2.0.5
|
||||
version: 2.0.5(vitest@2.0.5(@types/node@22.0.1))
|
||||
version: 2.0.5(vitest@2.0.5(@types/node@22.1.0))
|
||||
automd:
|
||||
specifier: ^0.3.8
|
||||
version: 0.3.8(magicast@0.3.4)
|
||||
@@ -47,12 +47,18 @@ importers:
|
||||
eslint-config-unjs:
|
||||
specifier: ^0.3.2
|
||||
version: 0.3.2(eslint@9.8.0)(typescript@5.5.4)
|
||||
execa:
|
||||
specifier: ^9.3.0
|
||||
version: 9.3.0
|
||||
get-port-please:
|
||||
specifier: ^3.1.2
|
||||
version: 3.1.2
|
||||
h3:
|
||||
specifier: ^1.12.0
|
||||
version: 1.12.0
|
||||
jiti:
|
||||
specifier: ^1.21.6
|
||||
version: 1.21.6
|
||||
specifier: 2.0.0-beta.3
|
||||
version: 2.0.0-beta.3
|
||||
listhen:
|
||||
specifier: ^1.7.2
|
||||
version: 1.7.2
|
||||
@@ -70,10 +76,10 @@ importers:
|
||||
version: 2.0.0(typescript@5.5.4)
|
||||
vitest:
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.5(@types/node@22.0.1)
|
||||
version: 2.0.5(@types/node@22.1.0)
|
||||
wrangler:
|
||||
specifier: ^3.67.1
|
||||
version: 3.67.1(@cloudflare/workers-types@4.20240725.0)
|
||||
version: 3.68.0(@cloudflare/workers-types@4.20240729.0)
|
||||
ws:
|
||||
specifier: ^8.18.0
|
||||
version: 8.18.0
|
||||
@@ -182,38 +188,38 @@ packages:
|
||||
resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==}
|
||||
engines: {node: '>=16.13'}
|
||||
|
||||
'@cloudflare/workerd-darwin-64@1.20240718.0':
|
||||
resolution: {integrity: sha512-BsPZcSCgoGnufog2GIgdPuiKicYTNyO/Dp++HbpLRH+yQdX3x4aWx83M+a0suTl1xv76dO4g9aw7SIB6OSgIyQ==}
|
||||
'@cloudflare/workerd-darwin-64@1.20240725.0':
|
||||
resolution: {integrity: sha512-KpE7eycdZ9ON+tKBuTyqZh8SdFWHGrh2Ru9LcbpeFwb7O9gDQv9ceSdoV/T598qlT0a0yVKM62R6xa5ec0UOWA==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@cloudflare/workerd-darwin-arm64@1.20240718.0':
|
||||
resolution: {integrity: sha512-nlr4gaOO5gcJerILJQph3+2rnas/nx/lYsuaot1ntHu4LAPBoQo1q/Pucj2cSIav4UiMzTbDmoDwPlls4Kteog==}
|
||||
'@cloudflare/workerd-darwin-arm64@1.20240725.0':
|
||||
resolution: {integrity: sha512-/UQlI04FdXLpPlDzzsWGz8TuKrMZKLowTo+8PkxgEiWIaBhE4DIDM5bwj3jM4Bs8yOLiL2ovQNpld5CnAKqA8g==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@cloudflare/workerd-linux-64@1.20240718.0':
|
||||
resolution: {integrity: sha512-LJ/k3y47pBcjax0ee4K+6ZRrSsqWlfU4lbU8Dn6u5tSC9yzwI4YFNXDrKWInB0vd7RT3w4Yqq1S6ZEbfRrqVUg==}
|
||||
'@cloudflare/workerd-linux-64@1.20240725.0':
|
||||
resolution: {integrity: sha512-Z5t12qYLvHz0b3ZRBBm2HQ93RiHrAnjFfdhtjMcgJypAGkiWpOCEn2xar/WqDhMfqnk0sa8aYiYAbMAlP1WN6w==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@cloudflare/workerd-linux-arm64@1.20240718.0':
|
||||
resolution: {integrity: sha512-zBEZvy88EcAMGRGfuVtS00Yl7lJdUM9sH7i651OoL+q0Plv9kphlCC0REQPwzxrEYT1qibSYtWcD9IxQGgx2/g==}
|
||||
'@cloudflare/workerd-linux-arm64@1.20240725.0':
|
||||
resolution: {integrity: sha512-j9gYXLOwOyNehLMzP7KxQ+Y6/nxcL9i6LTDJC6RChoaxLRbm0Y/9Otu+hfyzeNeRpt31ip6vqXZ1QQk6ygzI8A==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@cloudflare/workerd-windows-64@1.20240718.0':
|
||||
resolution: {integrity: sha512-YpCRvvT47XanFum7C3SedOZKK6BfVhqmwdAAVAQFyc4gsCdegZo0JkUkdloC/jwuWlbCACOG2HTADHOqyeolzQ==}
|
||||
'@cloudflare/workerd-windows-64@1.20240725.0':
|
||||
resolution: {integrity: sha512-fkrJLWNN6rrPjZ0eKJx328NVMo4BsainKxAfqaPMEd6uRwjOM8uN8V4sSLsXXP8GQMAx6hAG2hU86givS4GItg==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@cloudflare/workers-types@4.20240725.0':
|
||||
resolution: {integrity: sha512-L6T/Bg50zm9IIACQVQ0CdVcQL+2nLkRXdPz6BsXF3SlzgjyWR5ndVctAbfr/HLV7aKYxWnnEZsIORsTWb+FssA==}
|
||||
'@cloudflare/workers-types@4.20240729.0':
|
||||
resolution: {integrity: sha512-wfe44YQkv5T9aBr/z95P706r2/Ydg32weJYyBOhvge7FqtdY6mM7l39rybNiJrbJoyN16dd0xxyQMf23aJNC6Q==}
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
|
||||
@@ -1003,90 +1009,97 @@ packages:
|
||||
rollup:
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-android-arm-eabi@4.19.1':
|
||||
resolution: {integrity: sha512-XzqSg714++M+FXhHfXpS1tDnNZNpgxxuGZWlRG/jSj+VEPmZ0yg6jV4E0AL3uyBKxO8mO3xtOsP5mQ+XLfrlww==}
|
||||
'@rollup/rollup-android-arm-eabi@4.19.2':
|
||||
resolution: {integrity: sha512-OHflWINKtoCFSpm/WmuQaWW4jeX+3Qt3XQDepkkiFTsoxFc5BpF3Z5aDxFZgBqRjO6ATP5+b1iilp4kGIZVWlA==}
|
||||
cpu: [arm]
|
||||
os: [android]
|
||||
|
||||
'@rollup/rollup-android-arm64@4.19.1':
|
||||
resolution: {integrity: sha512-thFUbkHteM20BGShD6P08aungq4irbIZKUNbG70LN8RkO7YztcGPiKTTGZS7Kw+x5h8hOXs0i4OaHwFxlpQN6A==}
|
||||
'@rollup/rollup-android-arm64@4.19.2':
|
||||
resolution: {integrity: sha512-k0OC/b14rNzMLDOE6QMBCjDRm3fQOHAL8Ldc9bxEWvMo4Ty9RY6rWmGetNTWhPo+/+FNd1lsQYRd0/1OSix36A==}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
|
||||
'@rollup/rollup-darwin-arm64@4.19.1':
|
||||
resolution: {integrity: sha512-8o6eqeFZzVLia2hKPUZk4jdE3zW7LCcZr+MD18tXkgBBid3lssGVAYuox8x6YHoEPDdDa9ixTaStcmx88lio5Q==}
|
||||
'@rollup/rollup-darwin-arm64@4.19.2':
|
||||
resolution: {integrity: sha512-IIARRgWCNWMTeQH+kr/gFTHJccKzwEaI0YSvtqkEBPj7AshElFq89TyreKNFAGh5frLfDCbodnq+Ye3dqGKPBw==}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@rollup/rollup-darwin-x64@4.19.1':
|
||||
resolution: {integrity: sha512-4T42heKsnbjkn7ovYiAdDVRRWZLU9Kmhdt6HafZxFcUdpjlBlxj4wDrt1yFWLk7G4+E+8p2C9tcmSu0KA6auGA==}
|
||||
'@rollup/rollup-darwin-x64@4.19.2':
|
||||
resolution: {integrity: sha512-52udDMFDv54BTAdnw+KXNF45QCvcJOcYGl3vQkp4vARyrcdI/cXH8VXTEv/8QWfd6Fru8QQuw1b2uNersXOL0g==}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.19.1':
|
||||
resolution: {integrity: sha512-MXg1xp+e5GhZ3Vit1gGEyoC+dyQUBy2JgVQ+3hUrD9wZMkUw/ywgkpK7oZgnB6kPpGrxJ41clkPPnsknuD6M2Q==}
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.19.2':
|
||||
resolution: {integrity: sha512-r+SI2t8srMPYZeoa1w0o/AfoVt9akI1ihgazGYPQGRilVAkuzMGiTtexNZkrPkQsyFrvqq/ni8f3zOnHw4hUbA==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.19.1':
|
||||
resolution: {integrity: sha512-DZNLwIY4ftPSRVkJEaxYkq7u2zel7aah57HESuNkUnz+3bZHxwkCUkrfS2IWC1sxK6F2QNIR0Qr/YXw7nkF3Pw==}
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.19.2':
|
||||
resolution: {integrity: sha512-+tYiL4QVjtI3KliKBGtUU7yhw0GMcJJuB9mLTCEauHEsqfk49gtUBXGtGP3h1LW8MbaTY6rSFIQV1XOBps1gBA==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-arm64-gnu@4.19.1':
|
||||
resolution: {integrity: sha512-C7evongnjyxdngSDRRSQv5GvyfISizgtk9RM+z2biV5kY6S/NF/wta7K+DanmktC5DkuaJQgoKGf7KUDmA7RUw==}
|
||||
'@rollup/rollup-linux-arm64-gnu@4.19.2':
|
||||
resolution: {integrity: sha512-OR5DcvZiYN75mXDNQQxlQPTv4D+uNCUsmSCSY2FolLf9W5I4DSoJyg7z9Ea3TjKfhPSGgMJiey1aWvlWuBzMtg==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-arm64-musl@4.19.1':
|
||||
resolution: {integrity: sha512-89tFWqxfxLLHkAthAcrTs9etAoBFRduNfWdl2xUs/yLV+7XDrJ5yuXMHptNqf1Zw0UCA3cAutkAiAokYCkaPtw==}
|
||||
'@rollup/rollup-linux-arm64-musl@4.19.2':
|
||||
resolution: {integrity: sha512-Hw3jSfWdUSauEYFBSFIte6I8m6jOj+3vifLg8EU3lreWulAUpch4JBjDMtlKosrBzkr0kwKgL9iCfjA8L3geoA==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-powerpc64le-gnu@4.19.1':
|
||||
resolution: {integrity: sha512-PromGeV50sq+YfaisG8W3fd+Cl6mnOOiNv2qKKqKCpiiEke2KiKVyDqG/Mb9GWKbYMHj5a01fq/qlUR28PFhCQ==}
|
||||
'@rollup/rollup-linux-powerpc64le-gnu@4.19.2':
|
||||
resolution: {integrity: sha512-rhjvoPBhBwVnJRq/+hi2Q3EMiVF538/o9dBuj9TVLclo9DuONqt5xfWSaE6MYiFKpo/lFPJ/iSI72rYWw5Hc7w==}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.19.1':
|
||||
resolution: {integrity: sha512-/1BmHYh+iz0cNCP0oHCuF8CSiNj0JOGf0jRlSo3L/FAyZyG2rGBuKpkZVH9YF+x58r1jgWxvm1aRg3DHrLDt6A==}
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.19.2':
|
||||
resolution: {integrity: sha512-EAz6vjPwHHs2qOCnpQkw4xs14XJq84I81sDRGPEjKPFVPBw7fwvtwhVjcZR6SLydCv8zNK8YGFblKWd/vRmP8g==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-s390x-gnu@4.19.1':
|
||||
resolution: {integrity: sha512-0cYP5rGkQWRZKy9/HtsWVStLXzCF3cCBTRI+qRL8Z+wkYlqN7zrSYm6FuY5Kd5ysS5aH0q5lVgb/WbG4jqXN1Q==}
|
||||
'@rollup/rollup-linux-s390x-gnu@4.19.2':
|
||||
resolution: {integrity: sha512-IJSUX1xb8k/zN9j2I7B5Re6B0NNJDJ1+soezjNojhT8DEVeDNptq2jgycCOpRhyGj0+xBn7Cq+PK7Q+nd2hxLA==}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-x64-gnu@4.19.1':
|
||||
resolution: {integrity: sha512-XUXeI9eM8rMP8aGvii/aOOiMvTs7xlCosq9xCjcqI9+5hBxtjDpD+7Abm1ZhVIFE1J2h2VIg0t2DX/gjespC2Q==}
|
||||
'@rollup/rollup-linux-x64-gnu@4.19.2':
|
||||
resolution: {integrity: sha512-OgaToJ8jSxTpgGkZSkwKE+JQGihdcaqnyHEFOSAU45utQ+yLruE1dkonB2SDI8t375wOKgNn8pQvaWY9kPzxDQ==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-linux-x64-musl@4.19.1':
|
||||
resolution: {integrity: sha512-V7cBw/cKXMfEVhpSvVZhC+iGifD6U1zJ4tbibjjN+Xi3blSXaj/rJynAkCFFQfoG6VZrAiP7uGVzL440Q6Me2Q==}
|
||||
'@rollup/rollup-linux-x64-musl@4.19.2':
|
||||
resolution: {integrity: sha512-5V3mPpWkB066XZZBgSd1lwozBk7tmOkKtquyCJ6T4LN3mzKENXyBwWNQn8d0Ci81hvlBw5RoFgleVpL6aScLYg==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@rollup/rollup-win32-arm64-msvc@4.19.1':
|
||||
resolution: {integrity: sha512-88brja2vldW/76jWATlBqHEoGjJLRnP0WOEKAUbMcXaAZnemNhlAHSyj4jIwMoP2T750LE9lblvD4e2jXleZsA==}
|
||||
'@rollup/rollup-win32-arm64-msvc@4.19.2':
|
||||
resolution: {integrity: sha512-ayVstadfLeeXI9zUPiKRVT8qF55hm7hKa+0N1V6Vj+OTNFfKSoUxyZvzVvgtBxqSb5URQ8sK6fhwxr9/MLmxdA==}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@rollup/rollup-win32-ia32-msvc@4.19.1':
|
||||
resolution: {integrity: sha512-LdxxcqRVSXi6k6JUrTah1rHuaupoeuiv38du8Mt4r4IPer3kwlTo+RuvfE8KzZ/tL6BhaPlzJ3835i6CxrFIRQ==}
|
||||
'@rollup/rollup-win32-ia32-msvc@4.19.2':
|
||||
resolution: {integrity: sha512-Mda7iG4fOLHNsPqjWSjANvNZYoW034yxgrndof0DwCy0D3FvTjeNo+HGE6oGWgvcLZNLlcp0hLEFcRs+UGsMLg==}
|
||||
cpu: [ia32]
|
||||
os: [win32]
|
||||
|
||||
'@rollup/rollup-win32-x64-msvc@4.19.1':
|
||||
resolution: {integrity: sha512-2bIrL28PcK3YCqD9anGxDxamxdiJAxA+l7fWIwM5o8UqNy1t3d1NdAweO2XhA0KTDJ5aH1FsuiT5+7VhtHliXg==}
|
||||
'@rollup/rollup-win32-x64-msvc@4.19.2':
|
||||
resolution: {integrity: sha512-DPi0ubYhSow/00YqmG1jWm3qt1F8aXziHc/UNy8bo9cpCacqhuWu+iSq/fp2SyEQK7iYTZ60fBU9cat3MXTjIQ==}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@sec-ant/readable-stream@0.4.1':
|
||||
resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
|
||||
|
||||
'@sindresorhus/merge-streams@2.3.0':
|
||||
resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@sindresorhus/merge-streams@4.0.0':
|
||||
resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@trysound/sax@0.2.0':
|
||||
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
@@ -1106,8 +1119,8 @@ packages:
|
||||
'@types/node@20.12.14':
|
||||
resolution: {integrity: sha512-scnD59RpYD91xngrQQLGkE+6UrHUPzeKZWhhjBSa3HSkwjbQc38+q3RoIVEwxQGRw3M+j5hpNAM+lgV3cVormg==}
|
||||
|
||||
'@types/node@22.0.1':
|
||||
resolution: {integrity: sha512-RVKWL+s4ax6syie/ev3FXFIs38mke4ZsCDPBcLF2Gu6MbQXKe9Fo9iU0EPUxDB1mDVvC0vCgkV3lKa2f6xIuHg==}
|
||||
'@types/node@22.1.0':
|
||||
resolution: {integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==}
|
||||
|
||||
'@types/normalize-package-data@2.4.4':
|
||||
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
|
||||
@@ -1302,8 +1315,8 @@ packages:
|
||||
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
browserslist@4.23.2:
|
||||
resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==}
|
||||
browserslist@4.23.3:
|
||||
resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==}
|
||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||
hasBin: true
|
||||
|
||||
@@ -1345,8 +1358,8 @@ packages:
|
||||
caniuse-api@3.0.0:
|
||||
resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
|
||||
|
||||
caniuse-lite@1.0.30001645:
|
||||
resolution: {integrity: sha512-GFtY2+qt91kzyMk6j48dJcwJVq5uTkk71XxE3RtScx7XWRLsO7bU44LOFkOZYR8w9YMS0UhPSYpN/6rAMImmLw==}
|
||||
caniuse-lite@1.0.30001646:
|
||||
resolution: {integrity: sha512-dRg00gudiBDDTmUhClSdv3hqRfpbOnU28IpI1T6PBTLWa+kOj0681C8uML3PifYfREuBrVjDGhL3adYpBT6spw==}
|
||||
|
||||
capnp-ts@0.7.0:
|
||||
resolution: {integrity: sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==}
|
||||
@@ -1712,6 +1725,10 @@ packages:
|
||||
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
|
||||
engines: {node: '>=16.17'}
|
||||
|
||||
execa@9.3.0:
|
||||
resolution: {integrity: sha512-l6JFbqnHEadBoVAVpN5dl2yCyfX28WoBAGaoQcNmLLSedOxTxcn2Qa83s8I/PA5i56vWru2OHOtrwF7Om2vqlg==}
|
||||
engines: {node: ^18.19.0 || >=20.5.0}
|
||||
|
||||
exit-hook@2.2.1:
|
||||
resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -1736,6 +1753,10 @@ packages:
|
||||
fastq@1.17.1:
|
||||
resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
|
||||
|
||||
figures@6.1.0:
|
||||
resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
file-entry-cache@8.0.0:
|
||||
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
|
||||
engines: {node: '>=16.0.0'}
|
||||
@@ -1802,6 +1823,10 @@ packages:
|
||||
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
|
||||
engines: {node: '>=16'}
|
||||
|
||||
get-stream@9.0.1:
|
||||
resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
giget@1.2.3:
|
||||
resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==}
|
||||
hasBin: true
|
||||
@@ -1834,8 +1859,8 @@ packages:
|
||||
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
globals@15.8.0:
|
||||
resolution: {integrity: sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==}
|
||||
globals@15.9.0:
|
||||
resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
globby@11.1.0:
|
||||
@@ -1893,6 +1918,10 @@ packages:
|
||||
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
|
||||
engines: {node: '>=16.17.0'}
|
||||
|
||||
human-signals@7.0.0:
|
||||
resolution: {integrity: sha512-74kytxOUSvNbjrT9KisAbaTZ/eJwD/LrbM/kh5j0IhPuJzwuA19dWvniFGwBzN9rVjg+O/e+F310PjObDXS+9Q==}
|
||||
engines: {node: '>=18.18.0'}
|
||||
|
||||
ignore@5.3.1:
|
||||
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
|
||||
engines: {node: '>= 4'}
|
||||
@@ -1984,6 +2013,10 @@ packages:
|
||||
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
is-plain-obj@4.1.0:
|
||||
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
is-reference@1.2.1:
|
||||
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
|
||||
|
||||
@@ -1995,6 +2028,14 @@ packages:
|
||||
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
|
||||
is-stream@4.0.1:
|
||||
resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
is-unicode-supported@2.0.0:
|
||||
resolution: {integrity: sha512-FRdAyx5lusK1iHG0TWpVtk9+1i+GjrzRffhDg4ovQ7mcidMQ6mj+MhKPmvh7Xwyv5gIS06ns49CA7Sqg7lC22Q==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
is-wsl@2.2.0:
|
||||
resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -2184,8 +2225,8 @@ packages:
|
||||
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
|
||||
engines: {node: '>=4'}
|
||||
|
||||
miniflare@3.20240718.1:
|
||||
resolution: {integrity: sha512-mn3MjGnpgYvarCRTfz4TQyVyY8yW0zz7f8LOAPVai78IGC/lcVcyskZcuIr7Zovb2i+IERmmsJAiEPeZHIIKbA==}
|
||||
miniflare@3.20240725.0:
|
||||
resolution: {integrity: sha512-n9NTLI8J9Xt0Cls6dRpqoIPkVFnxD9gMnU/qDkDX9diKfN16HyxpAdA5mto/hKuRpjW19TxnTMcxBo90vZXemw==}
|
||||
engines: {node: '>=16.13'}
|
||||
hasBin: true
|
||||
|
||||
@@ -2357,6 +2398,10 @@ packages:
|
||||
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
parse-ms@4.0.0:
|
||||
resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
path-exists@4.0.0:
|
||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -2603,6 +2648,10 @@ packages:
|
||||
resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
|
||||
engines: {node: ^14.13.1 || >=16.0.0}
|
||||
|
||||
pretty-ms@9.1.0:
|
||||
resolution: {integrity: sha512-o1piW0n3tgKIKCwk2vpM/vOV13zjJzvP37Ioze54YlTHE06m4tjEbzg9WsKkvTuyYln2DHjo5pY4qrZGI0otpw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
printable-characters@1.0.42:
|
||||
resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==}
|
||||
|
||||
@@ -2680,8 +2729,8 @@ packages:
|
||||
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
|
||||
hasBin: true
|
||||
|
||||
rollup@4.19.1:
|
||||
resolution: {integrity: sha512-K5vziVlg7hTpYfFBI+91zHBEMo6jafYXpkMlqZjg7/zhIG9iHqazBf4xz9AVdjS9BruRn280ROqLI7G3OFRIlw==}
|
||||
rollup@4.19.2:
|
||||
resolution: {integrity: sha512-6/jgnN1svF9PjNYJ4ya3l+cqutg49vOZ4rVgsDKxdl+5gpGPnByFXWGyfH9YGx9i3nfBwSu1Iyu6vGwFFA0BdQ==}
|
||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
||||
hasBin: true
|
||||
|
||||
@@ -2803,6 +2852,10 @@ packages:
|
||||
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
strip-final-newline@4.0.0:
|
||||
resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
strip-indent@3.0.0:
|
||||
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -2934,8 +2987,8 @@ packages:
|
||||
undici-types@5.26.5:
|
||||
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
|
||||
|
||||
undici-types@6.11.1:
|
||||
resolution: {integrity: sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==}
|
||||
undici-types@6.13.0:
|
||||
resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==}
|
||||
|
||||
undici@5.28.4:
|
||||
resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==}
|
||||
@@ -3056,17 +3109,17 @@ packages:
|
||||
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
workerd@1.20240718.0:
|
||||
resolution: {integrity: sha512-w7lOLRy0XecQTg/ujTLWBiJJuoQvzB3CdQ6/8Wgex3QxFhV9Pbnh3UbwIuUfMw3OCCPQc4o7y+1P+mISAgp6yg==}
|
||||
workerd@1.20240725.0:
|
||||
resolution: {integrity: sha512-VZwgejRcHsQ9FEPtc7v25ebINLAR+stL3q1hC1xByE+quskdoWpTXHkZwZ3IdSgvm9vPVbCbJw9p5mGnDByW2A==}
|
||||
engines: {node: '>=16'}
|
||||
hasBin: true
|
||||
|
||||
wrangler@3.67.1:
|
||||
resolution: {integrity: sha512-lLVJxq/OZMfntvZ79WQJNC1OKfxOCs6PLfogqDBuPFEQ3L/Mwqvd9IZ0bB8ahrwUN/K3lSdDPXynk9HfcGZxVw==}
|
||||
wrangler@3.68.0:
|
||||
resolution: {integrity: sha512-gsIeglkh5nOn1mHJs0bf1pOq/DvIt+umjO/5a867IYYXaN4j/ar5cRR1+F5ue3S7uEjYCLIZZjs8ESiPTSEt+Q==}
|
||||
engines: {node: '>=16.17.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@cloudflare/workers-types': ^4.20240718.0
|
||||
'@cloudflare/workers-types': ^4.20240725.0
|
||||
peerDependenciesMeta:
|
||||
'@cloudflare/workers-types':
|
||||
optional: true
|
||||
@@ -3112,6 +3165,10 @@ packages:
|
||||
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
yoctocolors@2.1.1:
|
||||
resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
youch@3.3.3:
|
||||
resolution: {integrity: sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==}
|
||||
|
||||
@@ -3163,7 +3220,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@babel/compat-data': 7.25.2
|
||||
'@babel/helper-validator-option': 7.24.8
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
lru-cache: 5.1.1
|
||||
semver: 6.3.1
|
||||
|
||||
@@ -3249,22 +3306,22 @@ snapshots:
|
||||
dependencies:
|
||||
mime: 3.0.0
|
||||
|
||||
'@cloudflare/workerd-darwin-64@1.20240718.0':
|
||||
'@cloudflare/workerd-darwin-64@1.20240725.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-darwin-arm64@1.20240718.0':
|
||||
'@cloudflare/workerd-darwin-arm64@1.20240725.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-64@1.20240718.0':
|
||||
'@cloudflare/workerd-linux-64@1.20240725.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-arm64@1.20240718.0':
|
||||
'@cloudflare/workerd-linux-arm64@1.20240725.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-windows-64@1.20240718.0':
|
||||
'@cloudflare/workerd-windows-64@1.20240725.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workers-types@4.20240725.0': {}
|
||||
'@cloudflare/workers-types@4.20240729.0': {}
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
dependencies:
|
||||
@@ -3755,56 +3812,60 @@ snapshots:
|
||||
optionalDependencies:
|
||||
rollup: 3.29.4
|
||||
|
||||
'@rollup/rollup-android-arm-eabi@4.19.1':
|
||||
'@rollup/rollup-android-arm-eabi@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-android-arm64@4.19.1':
|
||||
'@rollup/rollup-android-arm64@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-darwin-arm64@4.19.1':
|
||||
'@rollup/rollup-darwin-arm64@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-darwin-x64@4.19.1':
|
||||
'@rollup/rollup-darwin-x64@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.19.1':
|
||||
'@rollup/rollup-linux-arm-gnueabihf@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.19.1':
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm64-gnu@4.19.1':
|
||||
'@rollup/rollup-linux-arm64-gnu@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-arm64-musl@4.19.1':
|
||||
'@rollup/rollup-linux-arm64-musl@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-powerpc64le-gnu@4.19.1':
|
||||
'@rollup/rollup-linux-powerpc64le-gnu@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.19.1':
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-s390x-gnu@4.19.1':
|
||||
'@rollup/rollup-linux-s390x-gnu@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-x64-gnu@4.19.1':
|
||||
'@rollup/rollup-linux-x64-gnu@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-linux-x64-musl@4.19.1':
|
||||
'@rollup/rollup-linux-x64-musl@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-arm64-msvc@4.19.1':
|
||||
'@rollup/rollup-win32-arm64-msvc@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-ia32-msvc@4.19.1':
|
||||
'@rollup/rollup-win32-ia32-msvc@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@rollup/rollup-win32-x64-msvc@4.19.1':
|
||||
'@rollup/rollup-win32-x64-msvc@4.19.2':
|
||||
optional: true
|
||||
|
||||
'@sec-ant/readable-stream@0.4.1': {}
|
||||
|
||||
'@sindresorhus/merge-streams@2.3.0': {}
|
||||
|
||||
'@sindresorhus/merge-streams@4.0.0': {}
|
||||
|
||||
'@trysound/sax@0.2.0': {}
|
||||
|
||||
'@types/bun@1.1.6':
|
||||
@@ -3819,15 +3880,15 @@ snapshots:
|
||||
|
||||
'@types/node-forge@1.3.11':
|
||||
dependencies:
|
||||
'@types/node': 22.0.1
|
||||
'@types/node': 22.1.0
|
||||
|
||||
'@types/node@20.12.14':
|
||||
dependencies:
|
||||
undici-types: 5.26.5
|
||||
|
||||
'@types/node@22.0.1':
|
||||
'@types/node@22.1.0':
|
||||
dependencies:
|
||||
undici-types: 6.11.1
|
||||
undici-types: 6.13.0
|
||||
|
||||
'@types/normalize-package-data@2.4.4': {}
|
||||
|
||||
@@ -3839,7 +3900,7 @@ snapshots:
|
||||
|
||||
'@types/ws@8.5.12':
|
||||
dependencies:
|
||||
'@types/node': 22.0.1
|
||||
'@types/node': 22.1.0
|
||||
|
||||
'@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.8.0)(typescript@5.5.4))(eslint@9.8.0)(typescript@5.5.4)':
|
||||
dependencies:
|
||||
@@ -3922,7 +3983,7 @@ snapshots:
|
||||
'@typescript-eslint/types': 7.18.0
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@vitest/coverage-v8@2.0.5(vitest@2.0.5(@types/node@22.0.1))':
|
||||
'@vitest/coverage-v8@2.0.5(vitest@2.0.5(@types/node@22.1.0))':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@bcoe/v8-coverage': 0.2.3
|
||||
@@ -3936,7 +3997,7 @@ snapshots:
|
||||
std-env: 3.7.0
|
||||
test-exclude: 7.0.1
|
||||
tinyrainbow: 1.2.0
|
||||
vitest: 2.0.5(@types/node@22.0.1)
|
||||
vitest: 2.0.5(@types/node@22.1.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -4044,8 +4105,8 @@ snapshots:
|
||||
|
||||
autoprefixer@10.4.19(postcss@8.4.40):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
caniuse-lite: 1.0.30001645
|
||||
browserslist: 4.23.3
|
||||
caniuse-lite: 1.0.30001646
|
||||
fraction.js: 4.3.7
|
||||
normalize-range: 0.1.2
|
||||
picocolors: 1.0.1
|
||||
@@ -4079,12 +4140,12 @@ snapshots:
|
||||
dependencies:
|
||||
fill-range: 7.1.1
|
||||
|
||||
browserslist@4.23.2:
|
||||
browserslist@4.23.3:
|
||||
dependencies:
|
||||
caniuse-lite: 1.0.30001645
|
||||
caniuse-lite: 1.0.30001646
|
||||
electron-to-chromium: 1.5.4
|
||||
node-releases: 2.0.18
|
||||
update-browserslist-db: 1.1.0(browserslist@4.23.2)
|
||||
update-browserslist-db: 1.1.0(browserslist@4.23.3)
|
||||
|
||||
builtin-modules@3.3.0: {}
|
||||
|
||||
@@ -4137,12 +4198,12 @@ snapshots:
|
||||
|
||||
caniuse-api@3.0.0:
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
caniuse-lite: 1.0.30001645
|
||||
browserslist: 4.23.3
|
||||
caniuse-lite: 1.0.30001646
|
||||
lodash.memoize: 4.1.2
|
||||
lodash.uniq: 4.5.0
|
||||
|
||||
caniuse-lite@1.0.30001645: {}
|
||||
caniuse-lite@1.0.30001646: {}
|
||||
|
||||
capnp-ts@0.7.0:
|
||||
dependencies:
|
||||
@@ -4266,7 +4327,7 @@ snapshots:
|
||||
|
||||
core-js-compat@3.37.1:
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
|
||||
cross-spawn@7.0.3:
|
||||
dependencies:
|
||||
@@ -4302,7 +4363,7 @@ snapshots:
|
||||
|
||||
cssnano-preset-default@7.0.4(postcss@8.4.40):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
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
|
||||
@@ -4542,7 +4603,7 @@ snapshots:
|
||||
eslint: 9.8.0
|
||||
eslint-plugin-markdown: 5.1.0(eslint@9.8.0)
|
||||
eslint-plugin-unicorn: 53.0.0(eslint@9.8.0)
|
||||
globals: 15.8.0
|
||||
globals: 15.9.0
|
||||
typescript: 5.5.4
|
||||
typescript-eslint: 7.18.0(eslint@9.8.0)(typescript@5.5.4)
|
||||
transitivePeerDependencies:
|
||||
@@ -4687,6 +4748,21 @@ snapshots:
|
||||
signal-exit: 4.1.0
|
||||
strip-final-newline: 3.0.0
|
||||
|
||||
execa@9.3.0:
|
||||
dependencies:
|
||||
'@sindresorhus/merge-streams': 4.0.0
|
||||
cross-spawn: 7.0.3
|
||||
figures: 6.1.0
|
||||
get-stream: 9.0.1
|
||||
human-signals: 7.0.0
|
||||
is-plain-obj: 4.1.0
|
||||
is-stream: 4.0.1
|
||||
npm-run-path: 5.3.0
|
||||
pretty-ms: 9.1.0
|
||||
signal-exit: 4.1.0
|
||||
strip-final-newline: 4.0.0
|
||||
yoctocolors: 2.1.1
|
||||
|
||||
exit-hook@2.2.1: {}
|
||||
|
||||
fast-deep-equal@3.1.3: {}
|
||||
@@ -4709,6 +4785,10 @@ snapshots:
|
||||
dependencies:
|
||||
reusify: 1.0.4
|
||||
|
||||
figures@6.1.0:
|
||||
dependencies:
|
||||
is-unicode-supported: 2.0.0
|
||||
|
||||
file-entry-cache@8.0.0:
|
||||
dependencies:
|
||||
flat-cache: 4.0.1
|
||||
@@ -4767,6 +4847,11 @@ snapshots:
|
||||
|
||||
get-stream@8.0.1: {}
|
||||
|
||||
get-stream@9.0.1:
|
||||
dependencies:
|
||||
'@sec-ant/readable-stream': 0.4.1
|
||||
is-stream: 4.0.1
|
||||
|
||||
giget@1.2.3:
|
||||
dependencies:
|
||||
citty: 0.1.6
|
||||
@@ -4809,7 +4894,7 @@ snapshots:
|
||||
|
||||
globals@14.0.0: {}
|
||||
|
||||
globals@15.8.0: {}
|
||||
globals@15.9.0: {}
|
||||
|
||||
globby@11.1.0:
|
||||
dependencies:
|
||||
@@ -4874,6 +4959,8 @@ snapshots:
|
||||
|
||||
human-signals@5.0.0: {}
|
||||
|
||||
human-signals@7.0.0: {}
|
||||
|
||||
ignore@5.3.1: {}
|
||||
|
||||
import-fresh@3.3.0:
|
||||
@@ -4941,6 +5028,8 @@ snapshots:
|
||||
|
||||
is-path-inside@3.0.3: {}
|
||||
|
||||
is-plain-obj@4.1.0: {}
|
||||
|
||||
is-reference@1.2.1:
|
||||
dependencies:
|
||||
'@types/estree': 1.0.5
|
||||
@@ -4949,6 +5038,10 @@ snapshots:
|
||||
|
||||
is-stream@3.0.0: {}
|
||||
|
||||
is-stream@4.0.1: {}
|
||||
|
||||
is-unicode-supported@2.0.0: {}
|
||||
|
||||
is-wsl@2.2.0:
|
||||
dependencies:
|
||||
is-docker: 2.2.1
|
||||
@@ -5140,7 +5233,7 @@ snapshots:
|
||||
|
||||
min-indent@1.0.1: {}
|
||||
|
||||
miniflare@3.20240718.1:
|
||||
miniflare@3.20240725.0:
|
||||
dependencies:
|
||||
'@cspotcode/source-map-support': 0.8.1
|
||||
acorn: 8.12.1
|
||||
@@ -5150,7 +5243,7 @@ snapshots:
|
||||
glob-to-regexp: 0.4.1
|
||||
stoppable: 1.1.0
|
||||
undici: 5.28.4
|
||||
workerd: 1.20240718.0
|
||||
workerd: 1.20240725.0
|
||||
ws: 8.18.0
|
||||
youch: 3.3.3
|
||||
zod: 3.23.8
|
||||
@@ -5337,6 +5430,8 @@ snapshots:
|
||||
json-parse-even-better-errors: 2.3.1
|
||||
lines-and-columns: 1.2.4
|
||||
|
||||
parse-ms@4.0.0: {}
|
||||
|
||||
path-exists@4.0.0: {}
|
||||
|
||||
path-key@3.1.1: {}
|
||||
@@ -5382,7 +5477,7 @@ snapshots:
|
||||
|
||||
postcss-colormin@7.0.1(postcss@8.4.40):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
caniuse-api: 3.0.0
|
||||
colord: 2.9.3
|
||||
postcss: 8.4.40
|
||||
@@ -5390,7 +5485,7 @@ snapshots:
|
||||
|
||||
postcss-convert-values@7.0.2(postcss@8.4.40):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
postcss: 8.4.40
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
@@ -5419,7 +5514,7 @@ snapshots:
|
||||
|
||||
postcss-merge-rules@7.0.2(postcss@8.4.40):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
caniuse-api: 3.0.0
|
||||
cssnano-utils: 5.0.0(postcss@8.4.40)
|
||||
postcss: 8.4.40
|
||||
@@ -5439,7 +5534,7 @@ snapshots:
|
||||
|
||||
postcss-minify-params@7.0.1(postcss@8.4.40):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
cssnano-utils: 5.0.0(postcss@8.4.40)
|
||||
postcss: 8.4.40
|
||||
postcss-value-parser: 4.2.0
|
||||
@@ -5486,7 +5581,7 @@ snapshots:
|
||||
|
||||
postcss-normalize-unicode@7.0.1(postcss@8.4.40):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
postcss: 8.4.40
|
||||
postcss-value-parser: 4.2.0
|
||||
|
||||
@@ -5508,7 +5603,7 @@ snapshots:
|
||||
|
||||
postcss-reduce-initial@7.0.1(postcss@8.4.40):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
caniuse-api: 3.0.0
|
||||
postcss: 8.4.40
|
||||
|
||||
@@ -5547,6 +5642,10 @@ snapshots:
|
||||
|
||||
pretty-bytes@6.1.1: {}
|
||||
|
||||
pretty-ms@9.1.0:
|
||||
dependencies:
|
||||
parse-ms: 4.0.0
|
||||
|
||||
printable-characters@1.0.42: {}
|
||||
|
||||
punycode@2.3.1: {}
|
||||
@@ -5623,26 +5722,26 @@ snapshots:
|
||||
optionalDependencies:
|
||||
fsevents: 2.3.3
|
||||
|
||||
rollup@4.19.1:
|
||||
rollup@4.19.2:
|
||||
dependencies:
|
||||
'@types/estree': 1.0.5
|
||||
optionalDependencies:
|
||||
'@rollup/rollup-android-arm-eabi': 4.19.1
|
||||
'@rollup/rollup-android-arm64': 4.19.1
|
||||
'@rollup/rollup-darwin-arm64': 4.19.1
|
||||
'@rollup/rollup-darwin-x64': 4.19.1
|
||||
'@rollup/rollup-linux-arm-gnueabihf': 4.19.1
|
||||
'@rollup/rollup-linux-arm-musleabihf': 4.19.1
|
||||
'@rollup/rollup-linux-arm64-gnu': 4.19.1
|
||||
'@rollup/rollup-linux-arm64-musl': 4.19.1
|
||||
'@rollup/rollup-linux-powerpc64le-gnu': 4.19.1
|
||||
'@rollup/rollup-linux-riscv64-gnu': 4.19.1
|
||||
'@rollup/rollup-linux-s390x-gnu': 4.19.1
|
||||
'@rollup/rollup-linux-x64-gnu': 4.19.1
|
||||
'@rollup/rollup-linux-x64-musl': 4.19.1
|
||||
'@rollup/rollup-win32-arm64-msvc': 4.19.1
|
||||
'@rollup/rollup-win32-ia32-msvc': 4.19.1
|
||||
'@rollup/rollup-win32-x64-msvc': 4.19.1
|
||||
'@rollup/rollup-android-arm-eabi': 4.19.2
|
||||
'@rollup/rollup-android-arm64': 4.19.2
|
||||
'@rollup/rollup-darwin-arm64': 4.19.2
|
||||
'@rollup/rollup-darwin-x64': 4.19.2
|
||||
'@rollup/rollup-linux-arm-gnueabihf': 4.19.2
|
||||
'@rollup/rollup-linux-arm-musleabihf': 4.19.2
|
||||
'@rollup/rollup-linux-arm64-gnu': 4.19.2
|
||||
'@rollup/rollup-linux-arm64-musl': 4.19.2
|
||||
'@rollup/rollup-linux-powerpc64le-gnu': 4.19.2
|
||||
'@rollup/rollup-linux-riscv64-gnu': 4.19.2
|
||||
'@rollup/rollup-linux-s390x-gnu': 4.19.2
|
||||
'@rollup/rollup-linux-x64-gnu': 4.19.2
|
||||
'@rollup/rollup-linux-x64-musl': 4.19.2
|
||||
'@rollup/rollup-win32-arm64-msvc': 4.19.2
|
||||
'@rollup/rollup-win32-ia32-msvc': 4.19.2
|
||||
'@rollup/rollup-win32-x64-msvc': 4.19.2
|
||||
fsevents: 2.3.3
|
||||
|
||||
run-applescript@5.0.0:
|
||||
@@ -5739,6 +5838,8 @@ snapshots:
|
||||
|
||||
strip-final-newline@3.0.0: {}
|
||||
|
||||
strip-final-newline@4.0.0: {}
|
||||
|
||||
strip-indent@3.0.0:
|
||||
dependencies:
|
||||
min-indent: 1.0.1
|
||||
@@ -5747,7 +5848,7 @@ snapshots:
|
||||
|
||||
stylehacks@7.0.2(postcss@8.4.40):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
postcss: 8.4.40
|
||||
postcss-selector-parser: 6.1.1
|
||||
|
||||
@@ -5874,7 +5975,7 @@ snapshots:
|
||||
|
||||
undici-types@5.26.5: {}
|
||||
|
||||
undici-types@6.11.1: {}
|
||||
undici-types@6.13.0: {}
|
||||
|
||||
undici@5.28.4:
|
||||
dependencies:
|
||||
@@ -5923,9 +6024,9 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
update-browserslist-db@1.1.0(browserslist@4.23.2):
|
||||
update-browserslist-db@1.1.0(browserslist@4.23.3):
|
||||
dependencies:
|
||||
browserslist: 4.23.2
|
||||
browserslist: 4.23.3
|
||||
escalade: 3.1.2
|
||||
picocolors: 1.0.1
|
||||
|
||||
@@ -5942,13 +6043,13 @@ snapshots:
|
||||
spdx-correct: 3.2.0
|
||||
spdx-expression-parse: 3.0.1
|
||||
|
||||
vite-node@2.0.5(@types/node@22.0.1):
|
||||
vite-node@2.0.5(@types/node@22.1.0):
|
||||
dependencies:
|
||||
cac: 6.7.14
|
||||
debug: 4.3.6
|
||||
pathe: 1.1.2
|
||||
tinyrainbow: 1.2.0
|
||||
vite: 5.3.5(@types/node@22.0.1)
|
||||
vite: 5.3.5(@types/node@22.1.0)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
- less
|
||||
@@ -5959,16 +6060,16 @@ snapshots:
|
||||
- supports-color
|
||||
- terser
|
||||
|
||||
vite@5.3.5(@types/node@22.0.1):
|
||||
vite@5.3.5(@types/node@22.1.0):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.40
|
||||
rollup: 4.19.1
|
||||
rollup: 4.19.2
|
||||
optionalDependencies:
|
||||
'@types/node': 22.0.1
|
||||
'@types/node': 22.1.0
|
||||
fsevents: 2.3.3
|
||||
|
||||
vitest@2.0.5(@types/node@22.0.1):
|
||||
vitest@2.0.5(@types/node@22.1.0):
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@vitest/expect': 2.0.5
|
||||
@@ -5986,11 +6087,11 @@ snapshots:
|
||||
tinybench: 2.8.0
|
||||
tinypool: 1.0.0
|
||||
tinyrainbow: 1.2.0
|
||||
vite: 5.3.5(@types/node@22.0.1)
|
||||
vite-node: 2.0.5(@types/node@22.0.1)
|
||||
vite: 5.3.5(@types/node@22.1.0)
|
||||
vite-node: 2.0.5(@types/node@22.1.0)
|
||||
why-is-node-running: 2.3.0
|
||||
optionalDependencies:
|
||||
'@types/node': 22.0.1
|
||||
'@types/node': 22.1.0
|
||||
transitivePeerDependencies:
|
||||
- less
|
||||
- lightningcss
|
||||
@@ -6011,15 +6112,15 @@ snapshots:
|
||||
|
||||
word-wrap@1.2.5: {}
|
||||
|
||||
workerd@1.20240718.0:
|
||||
workerd@1.20240725.0:
|
||||
optionalDependencies:
|
||||
'@cloudflare/workerd-darwin-64': 1.20240718.0
|
||||
'@cloudflare/workerd-darwin-arm64': 1.20240718.0
|
||||
'@cloudflare/workerd-linux-64': 1.20240718.0
|
||||
'@cloudflare/workerd-linux-arm64': 1.20240718.0
|
||||
'@cloudflare/workerd-windows-64': 1.20240718.0
|
||||
'@cloudflare/workerd-darwin-64': 1.20240725.0
|
||||
'@cloudflare/workerd-darwin-arm64': 1.20240725.0
|
||||
'@cloudflare/workerd-linux-64': 1.20240725.0
|
||||
'@cloudflare/workerd-linux-arm64': 1.20240725.0
|
||||
'@cloudflare/workerd-windows-64': 1.20240725.0
|
||||
|
||||
wrangler@3.67.1(@cloudflare/workers-types@4.20240725.0):
|
||||
wrangler@3.68.0(@cloudflare/workers-types@4.20240729.0):
|
||||
dependencies:
|
||||
'@cloudflare/kv-asset-handler': 0.3.4
|
||||
'@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19)
|
||||
@@ -6028,7 +6129,7 @@ snapshots:
|
||||
chokidar: 3.6.0
|
||||
date-fns: 3.6.0
|
||||
esbuild: 0.17.19
|
||||
miniflare: 3.20240718.1
|
||||
miniflare: 3.20240725.0
|
||||
nanoid: 3.3.7
|
||||
path-to-regexp: 6.2.2
|
||||
resolve: 1.22.8
|
||||
@@ -6036,10 +6137,10 @@ snapshots:
|
||||
selfsigned: 2.4.1
|
||||
source-map: 0.6.1
|
||||
unenv: unenv-nightly@1.10.0-1717606461.a117952
|
||||
workerd: 1.20240718.0
|
||||
workerd: 1.20240725.0
|
||||
xxhash-wasm: 1.0.2
|
||||
optionalDependencies:
|
||||
'@cloudflare/workers-types': 4.20240725.0
|
||||
'@cloudflare/workers-types': 4.20240729.0
|
||||
fsevents: 2.3.3
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
@@ -6072,6 +6173,8 @@ snapshots:
|
||||
|
||||
yocto-queue@0.1.0: {}
|
||||
|
||||
yoctocolors@2.1.1: {}
|
||||
|
||||
youch@3.3.3:
|
||||
dependencies:
|
||||
cookie: 0.5.0
|
||||
|
||||
@@ -115,14 +115,17 @@ export default defineWebSocketAdapter<
|
||||
function peerFromDurableEvent(
|
||||
obj: DurableObject,
|
||||
ws: WebSocket | CF.WebSocket,
|
||||
) {
|
||||
return new CloudflareDurablePeer({
|
||||
): CloudflareDurablePeer {
|
||||
if ((ws as any)._crosswsPeer) {
|
||||
return (ws as any)._crosswsPeer;
|
||||
}
|
||||
return ((ws as any)._crosswsPeer = new CloudflareDurablePeer({
|
||||
cloudflare: {
|
||||
ws: ws as CF.WebSocket,
|
||||
env: (obj as DurableObjectPub).env,
|
||||
context: (obj as DurableObjectPub).ctx,
|
||||
},
|
||||
});
|
||||
}));
|
||||
}
|
||||
|
||||
class CloudflareDurablePeer extends Peer<{
|
||||
@@ -156,8 +159,9 @@ class CloudflareDurablePeer extends Peer<{
|
||||
}
|
||||
|
||||
publish(topic: string, message: any): void {
|
||||
const clients =
|
||||
this.ctx.cloudflare.context.getWebSockets() as unknown as (typeof this.ctx.cloudflare.ws)[];
|
||||
const clients = (
|
||||
this.ctx.cloudflare.context.getWebSockets() as unknown as (typeof this.ctx.cloudflare.ws)[]
|
||||
).filter((c) => c !== this.ctx.cloudflare.ws);
|
||||
if (clients.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
// https://deno.land/api?s=Deno.upgradeWebSocket
|
||||
// https://examples.deno.land/http-server-websocket
|
||||
|
||||
import { Message } from "../message";
|
||||
import { WSError } from "../error";
|
||||
import { Peer } from "../peer";
|
||||
import { AdapterOptions, defineWebSocketAdapter } from "../types.js";
|
||||
import { createCrossWS } from "../crossws";
|
||||
import { toBufferLike } from "../_utils";
|
||||
import { Message } from "../message.ts";
|
||||
import { WSError } from "../error.ts";
|
||||
import { Peer } from "../peer.ts";
|
||||
import { AdapterOptions, defineWebSocketAdapter } from "../types.ts";
|
||||
import { createCrossWS } from "../crossws.ts";
|
||||
import { toBufferLike } from "../_utils.ts";
|
||||
|
||||
export interface DenoAdapter {
|
||||
handleUpgrade(req: Request, info: ServeHandlerInfo): Promise<Response>;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Peer } from "./peer";
|
||||
import { Peer } from "./peer.ts";
|
||||
import type {
|
||||
AdapterOptions,
|
||||
Caller,
|
||||
|
||||
10
src/index.ts
10
src/index.ts
@@ -1,5 +1,5 @@
|
||||
export * from "./crossws";
|
||||
export * from "./error";
|
||||
export * from "./message";
|
||||
export * from "./peer";
|
||||
export * from "./types";
|
||||
export * from "./crossws.ts";
|
||||
export * from "./error.ts";
|
||||
export * from "./message.ts";
|
||||
export * from "./peer.ts";
|
||||
export * from "./types.ts";
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { toBufferLike } from "./_utils";
|
||||
import { toBufferLike } from "./_utils.ts";
|
||||
|
||||
export class Message {
|
||||
constructor(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { WSError } from "./error";
|
||||
import type { Message } from "./message";
|
||||
import type { Peer } from "./peer";
|
||||
import { WSError } from "./error.ts";
|
||||
import type { Message } from "./message.ts";
|
||||
import type { Peer } from "./peer.ts";
|
||||
|
||||
// --- Utils ---
|
||||
|
||||
|
||||
91
test/_utils.ts
Normal file
91
test/_utils.ts
Normal file
@@ -0,0 +1,91 @@
|
||||
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 "../src/websocket/node";
|
||||
import { wsTests } from "./tests";
|
||||
|
||||
const fixtureDir = fileURLToPath(new URL("fixture", import.meta.url));
|
||||
|
||||
export function wsConnect(url: string, initialSkip?: number) {
|
||||
const ws = new WebSocket(url);
|
||||
|
||||
const send = async (data: any) => {
|
||||
ws.send(
|
||||
typeof data === "string" ? data : JSON.stringify({ message: data }),
|
||||
);
|
||||
};
|
||||
|
||||
const messages: unknown[] = [];
|
||||
|
||||
const waitCallbacks: Record<string, (message: any) => void> = {};
|
||||
let nextIndex = initialSkip || 0;
|
||||
const next = () => {
|
||||
const index = nextIndex++;
|
||||
if (index < messages.length) {
|
||||
return Promise.resolve(messages[index]);
|
||||
}
|
||||
return new Promise<any>((resolve) => {
|
||||
waitCallbacks[index] = resolve;
|
||||
});
|
||||
};
|
||||
const skip = (count: number = 1) => {
|
||||
nextIndex += count;
|
||||
};
|
||||
|
||||
ws.on("message", (data: any) => {
|
||||
const str =
|
||||
typeof data === "string" ? data : new TextDecoder().decode(data);
|
||||
const msg = str[0] === "{" ? JSON.parse(str).message : str;
|
||||
messages.push(msg);
|
||||
const index = messages.length - 1;
|
||||
if (waitCallbacks[index]) {
|
||||
waitCallbacks[index](msg);
|
||||
delete waitCallbacks[index];
|
||||
}
|
||||
});
|
||||
|
||||
const connectPromise = new Promise<void>((resolve) => ws.on("open", resolve));
|
||||
|
||||
afterEach(() => {
|
||||
ws.close();
|
||||
ws.removeAllListeners("open");
|
||||
ws.removeAllListeners("message");
|
||||
});
|
||||
|
||||
return connectPromise.then(() => ({
|
||||
ws,
|
||||
send,
|
||||
next,
|
||||
skip,
|
||||
messages,
|
||||
}));
|
||||
}
|
||||
|
||||
export function wsTestsExec(cmd: string, pubsub = true) {
|
||||
let childProc: ExecaRes;
|
||||
let url: string;
|
||||
beforeAll(async () => {
|
||||
const port = await getRandomPort("localhost");
|
||||
url = `ws://localhost:${port}/`;
|
||||
const [bin, ...args] = cmd
|
||||
.replace("$PORT", String(port))
|
||||
.replace("./", fixtureDir + "/")
|
||||
.split(" ");
|
||||
childProc = execa(bin, args, { env: { PORT: port.toString() } });
|
||||
childProc.catch((error) => {
|
||||
if (error.signal !== "SIGTERM") {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
childProc.stderr!.on("data", (chunk) => {
|
||||
console.log(chunk.toString());
|
||||
});
|
||||
// childProc.stdout!.on('data', (chunk) => { console.log(chunk.toString()) })
|
||||
await waitForPort(port, { host: "localhost", delay: 50, retries: 100 });
|
||||
});
|
||||
afterAll(async () => {
|
||||
await childProc.kill();
|
||||
});
|
||||
wsTests(() => url, pubsub);
|
||||
}
|
||||
6
test/adapters/bun.test.ts
Normal file
6
test/adapters/bun.test.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { describe } from "vitest";
|
||||
import { wsTestsExec } from "../_utils";
|
||||
|
||||
describe("bun", () => {
|
||||
wsTestsExec("bun run ./bun.ts");
|
||||
});
|
||||
6
test/adapters/cloudflare-durable.test.ts
Normal file
6
test/adapters/cloudflare-durable.test.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { describe } from "vitest";
|
||||
import { wsTestsExec } from "../_utils";
|
||||
|
||||
describe("cloudflare-durable", () => {
|
||||
wsTestsExec("wrangler dev -c ./wrangler-durable.toml --port $PORT");
|
||||
});
|
||||
6
test/adapters/cloudflare.test.ts
Normal file
6
test/adapters/cloudflare.test.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { describe } from "vitest";
|
||||
import { wsTestsExec } from "../_utils";
|
||||
|
||||
describe("cloudflare", () => {
|
||||
wsTestsExec("wrangler dev -c ./wrangler.toml --port $PORT", false);
|
||||
});
|
||||
6
test/adapters/deno.test.ts
Normal file
6
test/adapters/deno.test.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
import { describe } from "vitest";
|
||||
import { wsTestsExec } from "../_utils";
|
||||
|
||||
describe("deno", () => {
|
||||
wsTestsExec("deno run -A ./deno.ts", false);
|
||||
});
|
||||
29
test/adapters/node.test.ts
Normal file
29
test/adapters/node.test.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { afterAll, beforeAll, describe } from "vitest";
|
||||
import { createServer, Server } from "node:http";
|
||||
import { getRandomPort, waitForPort } from "get-port-please";
|
||||
import nodeAdapter from "../../src/adapters/node";
|
||||
import { createDemo } from "../fixture/_shared";
|
||||
import { wsTests } from "../tests";
|
||||
|
||||
describe("node", () => {
|
||||
let server: Server;
|
||||
let url: string;
|
||||
|
||||
beforeAll(async () => {
|
||||
const ws = createDemo(nodeAdapter);
|
||||
server = createServer((_req, res) => {
|
||||
res.end("ok");
|
||||
});
|
||||
server.on("upgrade", ws.handleUpgrade);
|
||||
const port = await getRandomPort("localhost");
|
||||
url = `ws://localhost:${port}/`;
|
||||
await new Promise<void>((resolve) => server.listen(port, resolve));
|
||||
await waitForPort(port);
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
server.close();
|
||||
});
|
||||
|
||||
wsTests(() => url);
|
||||
});
|
||||
44
test/adapters/uws.test.ts
Normal file
44
test/adapters/uws.test.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { afterAll, beforeAll, describe } from "vitest";
|
||||
import { getRandomPort, waitForPort } from "get-port-please";
|
||||
import { App, TemplatedApp } from "uWebSockets.js";
|
||||
import uwsAdapter from "../../src/adapters/uws";
|
||||
import { createDemo } from "../fixture/_shared";
|
||||
import { wsTests } from "../tests";
|
||||
|
||||
describe("uws", () => {
|
||||
let app: TemplatedApp;
|
||||
let url: string;
|
||||
|
||||
beforeAll(async () => {
|
||||
const ws = createDemo(uwsAdapter);
|
||||
|
||||
app = App().ws("/*", ws.websocket);
|
||||
|
||||
app.get("/*", async (res, req) => {
|
||||
let aborted = false;
|
||||
res.onAborted(() => {
|
||||
aborted = true;
|
||||
});
|
||||
const html = "OK";
|
||||
if (aborted) {
|
||||
return;
|
||||
}
|
||||
res.cork(() => {
|
||||
res.writeStatus("200 OK");
|
||||
res.writeHeader("Content-Type", "text/html");
|
||||
res.end(html);
|
||||
});
|
||||
});
|
||||
|
||||
const port = await getRandomPort("localhost");
|
||||
url = `ws://localhost:${port}/`;
|
||||
await new Promise<void>((resolve) => app.listen(port, () => resolve()));
|
||||
await waitForPort(port);
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
app.close();
|
||||
});
|
||||
|
||||
wsTests(() => url);
|
||||
});
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ResolveHooks, Adapter, defineHooks } from "../src/index.ts";
|
||||
import { ResolveHooks, Adapter, defineHooks } from "../../src/index.ts";
|
||||
|
||||
export const getIndexHTML = () =>
|
||||
import("./_index.html.ts").then((r) => r.default);
|
||||
@@ -9,14 +9,14 @@ export function createDemo<T extends Adapter<any, any>>(
|
||||
): ReturnType<T> {
|
||||
const hooks = defineHooks({
|
||||
open(peer) {
|
||||
console.log(`[ws] open ${peer}`);
|
||||
// console.log(`[ws] open ${peer}`);
|
||||
peer.send({ user: "server", message: `Welcome to the server ${peer}!` });
|
||||
peer.send(new TextEncoder().encode("(binary message works!)"));
|
||||
peer.subscribe("chat");
|
||||
peer.publish("chat", { user: "server", message: `${peer} joined!` });
|
||||
},
|
||||
message(peer, message) {
|
||||
console.log(`[ws] message ${peer} ${message.text()}`);
|
||||
// console.log(`[ws] message ${peer} ${message.text()}`);
|
||||
if (message.text() === "ping") {
|
||||
peer.send({ user: "server", message: "pong" });
|
||||
} else {
|
||||
@@ -29,7 +29,7 @@ export function createDemo<T extends Adapter<any, any>>(
|
||||
}
|
||||
},
|
||||
upgrade(req) {
|
||||
console.log("[ws] upgrade", req.url);
|
||||
// console.log("[ws] upgrade", req.url);
|
||||
return {
|
||||
headers: {
|
||||
"x-powered-by": "cross-ws",
|
||||
@@ -38,10 +38,10 @@ export function createDemo<T extends Adapter<any, any>>(
|
||||
};
|
||||
},
|
||||
close(peer, details) {
|
||||
console.log(`[ws] close ${peer}`, details);
|
||||
// console.log(`[ws] close ${peer}`, details);
|
||||
},
|
||||
error(peer, error) {
|
||||
console.log(`[ws] error ${peer}`, error);
|
||||
// console.log(`[ws] error ${peer}`, error);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
// You can run this demo using `bun --bun ./bun.ts` or `npm run play:bun` in repo
|
||||
|
||||
import bunAdapter from "../src/adapters/bun";
|
||||
import bunAdapter from "../../src/adapters/bun";
|
||||
import { createDemo, getIndexHTML } from "./_shared";
|
||||
|
||||
const ws = createDemo(bunAdapter);
|
||||
|
||||
Bun.serve({
|
||||
port: 3001,
|
||||
port: process.env.PORT || 3001,
|
||||
hostname: "localhost",
|
||||
websocket: ws.websocket,
|
||||
async fetch(req, server) {
|
||||
if (await ws.handleUpgrade(req, server)) {
|
||||
@@ -1,6 +1,6 @@
|
||||
// You can run this demo using `npm run play:cf-durable` in repo
|
||||
import { DurableObject } from "cloudflare:workers";
|
||||
import cloudflareAdapter from "../src/adapters/cloudflare-durable.ts";
|
||||
import cloudflareAdapter from "../../src/adapters/cloudflare-durable.ts";
|
||||
import { createDemo, getIndexHTML } from "./_shared.ts";
|
||||
|
||||
const ws = createDemo(cloudflareAdapter);
|
||||
@@ -1,6 +1,6 @@
|
||||
// You can run this demo using `npm run play:cf` in repo
|
||||
import type { Request, ExecutionContext } from "@cloudflare/workers-types";
|
||||
import cloudflareAdapter from "../src/adapters/cloudflare";
|
||||
import cloudflareAdapter from "../../src/adapters/cloudflare";
|
||||
import { createDemo, getIndexHTML } from "./_shared.ts";
|
||||
|
||||
const ws = createDemo(cloudflareAdapter);
|
||||
@@ -1,6 +1,6 @@
|
||||
// You can run this demo using `deno run -A ./deno.ts` or `npm run play:deno` in repo
|
||||
|
||||
import denoAdapter from "../src/adapters/deno.ts";
|
||||
import denoAdapter from "../../src/adapters/deno.ts";
|
||||
|
||||
// @ts-ignore
|
||||
import type * as _Deno from "../types/lib.deno.d.ts";
|
||||
@@ -9,11 +9,12 @@ import { createDemo, getIndexHTML } from "./_shared.ts";
|
||||
|
||||
const ws = createDemo(denoAdapter);
|
||||
|
||||
Deno.serve({ port: 3001 }, async (req, info) => {
|
||||
const port = Number.parseInt(Deno.env.get("PORT") || "") || 3001;
|
||||
|
||||
Deno.serve({ hostname: "localhost", port }, async (req, info) => {
|
||||
if (req.headers.get("upgrade") === "websocket") {
|
||||
return ws.handleUpgrade(req, info);
|
||||
}
|
||||
|
||||
return new Response(await getIndexHTML(), {
|
||||
headers: { "Content-Type": "text/html" },
|
||||
});
|
||||
@@ -1,7 +1,7 @@
|
||||
// You can run this demo using `npm run play:node` in repo
|
||||
|
||||
import { createServer } from "node:http";
|
||||
import nodeAdapter from "../src/adapters/node";
|
||||
import nodeAdapter from "../../src/adapters/node";
|
||||
import { createDemo, getIndexHTML } from "./_shared";
|
||||
|
||||
const ws = createDemo(nodeAdapter);
|
||||
@@ -1,7 +1,7 @@
|
||||
// You can run this demo using `npm run play:node-uws` in repo
|
||||
|
||||
import { App } from "uWebSockets.js";
|
||||
import uwsAdapter from "../src/adapters/uws";
|
||||
import uwsAdapter from "../../src/adapters/uws";
|
||||
import { createDemo, getIndexHTML } from "./_shared.ts";
|
||||
|
||||
const ws = createDemo(uwsAdapter);
|
||||
@@ -3,8 +3,7 @@
|
||||
compatibility_date = "2024-01-01"
|
||||
workers_dev = false
|
||||
|
||||
# main = "playground/cloudflare.ts"
|
||||
main = "playground/cloudflare-durable.ts"
|
||||
main = "cloudflare-durable.ts"
|
||||
|
||||
[[durable_objects.bindings]]
|
||||
name = "$DurableObject"
|
||||
6
test/fixture/wrangler.toml
Normal file
6
test/fixture/wrangler.toml
Normal file
@@ -0,0 +1,6 @@
|
||||
# https://developers.cloudflare.com/workers/wrangler/configuration/
|
||||
|
||||
compatibility_date = "2024-01-01"
|
||||
workers_dev = false
|
||||
|
||||
main = "cloudflare.ts"
|
||||
39
test/tests.ts
Normal file
39
test/tests.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import { expect, test } from "vitest";
|
||||
import { wsConnect } from "./_utils";
|
||||
|
||||
export function wsTests(getURL: () => string, pubsub = true) {
|
||||
test("http works", async () => {
|
||||
const response = await fetch(getURL().replace("ws", "http"));
|
||||
expect(response.status).toBe(200);
|
||||
});
|
||||
|
||||
test("connect to websocket", async () => {
|
||||
const ws = await wsConnect(getURL());
|
||||
expect(await ws.next()).toBe("Welcome to the server #1!");
|
||||
expect(await ws.next()).toBe("(binary message works!)");
|
||||
});
|
||||
|
||||
test("send ping", async () => {
|
||||
const ws = await wsConnect(getURL(), 2);
|
||||
await ws.send("ping");
|
||||
expect(await ws.next()).toBe("pong");
|
||||
});
|
||||
|
||||
test("send message", async () => {
|
||||
const ws1 = await wsConnect(getURL(), 2);
|
||||
const ws2 = await wsConnect(getURL(), 2);
|
||||
if (pubsub) {
|
||||
expect(await ws1.next()).toBe("#4 joined!");
|
||||
}
|
||||
await ws1.send("hello from 1");
|
||||
expect(await ws1.next()).toBe("hello from 1");
|
||||
if (pubsub) {
|
||||
expect(await ws2.next()).toBe("hello from 1");
|
||||
}
|
||||
await ws2.send("hello from 2");
|
||||
if (pubsub) {
|
||||
expect(await ws1.next()).toBe("hello from 2");
|
||||
}
|
||||
expect(await ws2.next()).toBe("hello from 2");
|
||||
});
|
||||
}
|
||||
@@ -7,7 +7,7 @@ test("toBufferLike", () => {
|
||||
expect(toBufferLike(null)).toBe("");
|
||||
expect(toBufferLike("")).toBe("");
|
||||
expect(toBufferLike("hello")).toBe("hello");
|
||||
expect(toBufferLike(123)).toBe(123);
|
||||
expect(toBufferLike(123)).toBe("123");
|
||||
expect(toBufferLike({ a: 1 })).toBe('{"a":1}');
|
||||
expect(toBufferLike(Buffer.from("hello"))).toEqual(Buffer.from("hello"));
|
||||
expect(toBufferLike(new Uint8Array([1, 2, 3]))).toEqual(
|
||||
@@ -10,5 +10,5 @@
|
||||
"noEmit": true,
|
||||
"types": ["node", "@cloudflare/workers-types"]
|
||||
},
|
||||
"include": ["src", "playground"]
|
||||
"include": ["src", "test"],
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user