diff --git a/package-lock.json b/package-lock.json index edd7574..3cf7324 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "@stylistic/eslint-plugin": "^5.10.0", "@types/node": "^20.19.39", "@types/ws": "^8.18.1", - "oxfmt": "^0.48.0", + "oxfmt": "^0.50.0", "oxlint": "^1.60.0", "rimraf": "^6.1.3", "typescript": "^5.0.0", @@ -217,9 +217,9 @@ } }, "node_modules/@oxfmt/binding-android-arm-eabi": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.48.0.tgz", - "integrity": "sha512-uwqk+/KhQvBIpULD8SMM/zAafMRC/+DV/xsEQjkkIsJ/kLmEI/2bxonVowcYTiXqqZ/a0FEW8DPkZY3VvwELDA==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm-eabi/-/binding-android-arm-eabi-0.50.0.tgz", + "integrity": "sha512-ICXQVKrDvsWUtfx6EiVJxfWrajKTwTfRV8vz2XiMkxZeuCKJLgD4YAj6dE3BWvpqDlkVkie4VSTAtMUWO9LDXg==", "cpu": [ "arm" ], @@ -234,9 +234,9 @@ } }, "node_modules/@oxfmt/binding-android-arm64": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.48.0.tgz", - "integrity": "sha512-VUCiKuXK5+McVssgHEJdrcGK7hRJzrRb36zm9/jwzMholyYt4BgXhw5Nm1V1DX6Ce717Zi/1jk432b/tgmQgtQ==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-android-arm64/-/binding-android-arm64-0.50.0.tgz", + "integrity": "sha512-quwjLQFkuW6OwLHeDeIXsTzOmipQFQbqsYN9HLk2B5I01IlAQZHP1UiLIg0O7pP+dUgPD2AD7SCYA3gs6NH5/g==", "cpu": [ "arm64" ], @@ -251,9 +251,9 @@ } }, "node_modules/@oxfmt/binding-darwin-arm64": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.48.0.tgz", - "integrity": "sha512-IkKp8rnIyQLW6Jt+6jragCbUVYSayk55lapiprLjIVvt4NczLyO/nwX2GgefLQ5iaBdfS8UEAFgCs/pLO6Cl0w==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-arm64/-/binding-darwin-arm64-0.50.0.tgz", + "integrity": "sha512-ikU5umElcMi78/TNI334wtjr5WZ5F4nWa1aIDseAKKGL0W3ygxeYKkrIJ0fggWa8MOon66BmG3xCqmX1m9YAOw==", "cpu": [ "arm64" ], @@ -268,9 +268,9 @@ } }, "node_modules/@oxfmt/binding-darwin-x64": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.48.0.tgz", - "integrity": "sha512-+aFuhsGIuvnoOjXyKVHMhPKJZR1kQkAl8QyrKoMlA7yJsSTC3N0Asl53La8TChSHhW8epToQ/Q0nvLmEmfNmLg==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-darwin-x64/-/binding-darwin-x64-0.50.0.tgz", + "integrity": "sha512-WT4MOYG4mv9IXrH0m60vHsJh+rRMPSOKTQmwDpwmgQ+DuW/i5dU4pqc0HDO5uclO5vjz5IFX5z/taW86LSVe/g==", "cpu": [ "x64" ], @@ -285,9 +285,9 @@ } }, "node_modules/@oxfmt/binding-freebsd-x64": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.48.0.tgz", - "integrity": "sha512-fbqzQL8FjI9gGnktI7RIo0dksDziTAYBy7xlI7jU7eID5fxLF/25fS4Xj6GydD8Y5oWHL83U4NK160QaOAxtyg==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-freebsd-x64/-/binding-freebsd-x64-0.50.0.tgz", + "integrity": "sha512-gH0rycVXqV4juWkvLs2uPMtTyppDc7qEUVzXAxnQ7FpcSZNXqKowUgtjH8q67ngj416r8+4NnAlyR/D35zwwhQ==", "cpu": [ "x64" ], @@ -302,9 +302,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm-gnueabihf": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.48.0.tgz", - "integrity": "sha512-hn4i0zhAyTiB3ZHjQfYUZkDvrbVkohw1S7pySWxWUoZ87HnkDoTFThj7QTxk40hNPOTUP0vHbPRNamFIv1HBJQ==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-0.50.0.tgz", + "integrity": "sha512-wL/k+o0hiTeRvi/gPzeC1L/yTHTXIeHDKWU09s2zTBmv7ma59wTm+fADNSGYxhJQDxyavQbwTf1QpW3Zj924tQ==", "cpu": [ "arm" ], @@ -319,9 +319,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm-musleabihf": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.48.0.tgz", - "integrity": "sha512-R4WBD9qF3QM9hqgdAa+fBGXmquTvDUujrPQ36t2Sjk8RPOSKGHDeN7l/khr10hqbQaOq9KCgPHG9ubNET/X/RQ==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-0.50.0.tgz", + "integrity": "sha512-Y59FKqoUM3Gf00E395b4ixfWyJGwO2GzaZawF5MZoVWcb3f6CkWUXyao0jyOvoIxDMzMybcVRuXyG7ih/Nxweg==", "cpu": [ "arm" ], @@ -336,9 +336,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm64-gnu": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.48.0.tgz", - "integrity": "sha512-5bVdwSwlm1M8wbYCorLOxWxUBw/8tBvHYyQNIfwWVPwOJaj5vg1APSGJQVpwJfV5VNE9PSrR91UKEpoNwHhqUA==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-0.50.0.tgz", + "integrity": "sha512-OvXbfTjMignXWyJXg/NOFsiy996vFe8wb9tkxJaUq8ylq0XrzJg3ttavC5Tcmm6F8/GUs2r3XFJWWu9q/27uYw==", "cpu": [ "arm64" ], @@ -353,9 +353,9 @@ } }, "node_modules/@oxfmt/binding-linux-arm64-musl": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.48.0.tgz", - "integrity": "sha512-vCS3Fk7gFslTqE1lUE2IlroyVV7u/9SmMA/uBqDoshuck2psGWcjW0ePyPZI3rM3+qtf2pDaMVIKMHozraifuw==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-arm64-musl/-/binding-linux-arm64-musl-0.50.0.tgz", + "integrity": "sha512-rqmvHZm7vMa3NLYa0khwkhReCmp9tqKnF23TFZ7S5cYJLvIE4b0k8famWE7kO897/DXznJe675n5SohFBggbxA==", "cpu": [ "arm64" ], @@ -370,9 +370,9 @@ } }, "node_modules/@oxfmt/binding-linux-ppc64-gnu": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.48.0.tgz", - "integrity": "sha512-gKtfFfueUClXDumyoHUbymqRf7prHejOOyzJK0eIJn93GF9JBdFHdo60TM1ZBHxkEwZvjuOgHmKtneKbEOc/Eg==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-0.50.0.tgz", + "integrity": "sha512-49bAdYbMSde42tzPDtuHnBWzOgmoS0PT9THCjvMnDVYMQYiHzPc2Mv5rkpBHVQOXM+PHfafJlxgK0anXSWBVvw==", "cpu": [ "ppc64" ], @@ -387,9 +387,9 @@ } }, "node_modules/@oxfmt/binding-linux-riscv64-gnu": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.48.0.tgz", - "integrity": "sha512-SYt0UhOvZD/UwZz9sXq6J2uAw8o24f5VZpLB2DH01f6MevshmlgakQlZe2lwek2sZJkd07eLu7mZa0g7yeiw7Q==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-0.50.0.tgz", + "integrity": "sha512-VFT25/6kckkIM62KeWB2bi+xCEmC/zC+DcMaIpEfaio8ulkGDLSiTz11TyK0eqgTl3x5OklYEGDWohvAgOr8Bw==", "cpu": [ "riscv64" ], @@ -404,9 +404,9 @@ } }, "node_modules/@oxfmt/binding-linux-riscv64-musl": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.48.0.tgz", - "integrity": "sha512-JLbrwck2AopG4ud/XklZO5N+qxGC7cS7ROvXZVNfx0MCLDDL2kGOLvzuWORkVjnjAM0CMAfIMU2zNBtQbM+4dw==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-0.50.0.tgz", + "integrity": "sha512-BBJMuNy6jjkXjUUINF5UTQqb/nvjmtJad43Gp7bab0AAURAdthhJvduR7rHpWInpWYiaMzYsdrmURNcrmpxdZA==", "cpu": [ "riscv64" ], @@ -421,9 +421,9 @@ } }, "node_modules/@oxfmt/binding-linux-s390x-gnu": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.48.0.tgz", - "integrity": "sha512-mdxt5L8OQLxkQH+JVpdC/lknZNe0lX4hlO3d8+xvw2wToo+iDrid9tiGOd5bmHfUVd5wVhrUry0qlu5vq66NkQ==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-0.50.0.tgz", + "integrity": "sha512-Xd4y+yjAYHKmryXhyUUwbyRD01iKfcvI74iE01L6p4F8SwjhZQXDshK+T8PcrPZLiFqH263P5xqJk94amjkjzQ==", "cpu": [ "s390x" ], @@ -438,9 +438,9 @@ } }, "node_modules/@oxfmt/binding-linux-x64-gnu": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.48.0.tgz", - "integrity": "sha512-oEz1BQwMrV7OMEFx/3VPDU3n9TM0AnxpktDYXjEg5i6nTX87wo18wSfBvkl4tzAICdKtoAQAdBIl7Y7hsPlx5w==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-gnu/-/binding-linux-x64-gnu-0.50.0.tgz", + "integrity": "sha512-Qp96rYJru7l++7mk4R+eh8qq9GFfFAMdmoN6VGoRHI8AA1XMnUIzH4u+zOcKZZwY+irHdsaBldDearwB4nOH7A==", "cpu": [ "x64" ], @@ -455,9 +455,9 @@ } }, "node_modules/@oxfmt/binding-linux-x64-musl": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.48.0.tgz", - "integrity": "sha512-g2SKTTurP5mWjd8Ecait0erYqmltL4IqW1EwttM25BxM6NiTt4ubobJYMR1uox1V2QgG4UfHH10CGRvWlUixjw==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-linux-x64-musl/-/binding-linux-x64-musl-0.50.0.tgz", + "integrity": "sha512-5XLGp+yd5w2Key5LMqJO+X3XVsJKgeeUKljy32+MBF/J/JZ5m8WHl6dI5eOQOr3ixopxPiXIyDAxn3slI3UXiQ==", "cpu": [ "x64" ], @@ -472,9 +472,9 @@ } }, "node_modules/@oxfmt/binding-openharmony-arm64": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.48.0.tgz", - "integrity": "sha512-CIg24VgheEpvolHL2gQuax5qcQ602bRMHrJ9g8XsQr3iVj9aSPgopigBKuMqrXsupwkrU+RQCn5cG8PgFntR6w==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-openharmony-arm64/-/binding-openharmony-arm64-0.50.0.tgz", + "integrity": "sha512-QAxwzh7+GHugCD7WuERolVs8TKQwXNIAZXAHHTecbKVc9oWBkWzOiLauQuezXS57tVcof5zhi1IjZ8tOV0htTg==", "cpu": [ "arm64" ], @@ -489,9 +489,9 @@ } }, "node_modules/@oxfmt/binding-win32-arm64-msvc": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.48.0.tgz", - "integrity": "sha512-zeaWkcxcEULwkGF3I/HgEvcDPN8buYDrxibBUa/IFh5Vmwyge+KpLO+hEwSovW349H0O/C0Z2kaFmEzEDm00/Q==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-0.50.0.tgz", + "integrity": "sha512-3nKN/kqClm9iCFWTwtJ9UpR5SGyExp5l3nw6uIiBt+3XitQtszin+vjHrL7JHfDksZ7Svigdaow2zqz/IKCfqw==", "cpu": [ "arm64" ], @@ -506,9 +506,9 @@ } }, "node_modules/@oxfmt/binding-win32-ia32-msvc": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.48.0.tgz", - "integrity": "sha512-yiEKnIAGvx5CyZQOlMaNlZkAbwT7/Quk0j3WLt+PR5hK+qYjPTRRJYDfD77wCBPLvEYAG41v4KG3iL0H+uxoxg==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-0.50.0.tgz", + "integrity": "sha512-3r6XZ8+X6qlLbXaPW2NygfiAWSpKbkE36pAVzS83mY+cYY+pSMalJ+qnCgkr92tr+Iqv988XKQ1CpARTg9ITbQ==", "cpu": [ "ia32" ], @@ -523,9 +523,9 @@ } }, "node_modules/@oxfmt/binding-win32-x64-msvc": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.48.0.tgz", - "integrity": "sha512-GSD2+7t2UoVMV2NgxXypa4bKewflPMAjYnF0Xw9/ht82ZfafAHhb8STwrEd7wlH2PFogt5zw3WVCxYJaHUdbeQ==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/@oxfmt/binding-win32-x64-msvc/-/binding-win32-x64-msvc-0.50.0.tgz", + "integrity": "sha512-BSE8D8KsvquMG9vU+Qt4qGuoOcZ36rxU5S6ZkHNguj+MlWkXWCBETnno3yJ9CfWvfCrbmieaN9LK6hdcdHNZ/w==", "cpu": [ "x64" ], @@ -993,9 +993,9 @@ } }, "node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", "dev": true, "license": "MIT", "dependencies": { @@ -1557,9 +1557,9 @@ } }, "node_modules/oxfmt": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.48.0.tgz", - "integrity": "sha512-AVaLh+7XeGx+R1zfFV+f6VV61nT2MWVJXVUDhbTm5LBWGyNt64xAyh3NYYyjeY2WykNt9AvqSQLPHcbWquYF9g==", + "version": "0.50.0", + "resolved": "https://registry.npmjs.org/oxfmt/-/oxfmt-0.50.0.tgz", + "integrity": "sha512-owwjTnhfM5aCOJhYeqDvk7iM504OeYFZpdRU7cxx7xtZMo4uVpjlryTUon+Cf76CugsvnqA32e6rC73pr1hXaw==", "dev": true, "license": "MIT", "dependencies": { @@ -1575,25 +1575,33 @@ "url": "https://github.com/sponsors/Boshen" }, "optionalDependencies": { - "@oxfmt/binding-android-arm-eabi": "0.48.0", - "@oxfmt/binding-android-arm64": "0.48.0", - "@oxfmt/binding-darwin-arm64": "0.48.0", - "@oxfmt/binding-darwin-x64": "0.48.0", - "@oxfmt/binding-freebsd-x64": "0.48.0", - "@oxfmt/binding-linux-arm-gnueabihf": "0.48.0", - "@oxfmt/binding-linux-arm-musleabihf": "0.48.0", - "@oxfmt/binding-linux-arm64-gnu": "0.48.0", - "@oxfmt/binding-linux-arm64-musl": "0.48.0", - "@oxfmt/binding-linux-ppc64-gnu": "0.48.0", - "@oxfmt/binding-linux-riscv64-gnu": "0.48.0", - "@oxfmt/binding-linux-riscv64-musl": "0.48.0", - "@oxfmt/binding-linux-s390x-gnu": "0.48.0", - "@oxfmt/binding-linux-x64-gnu": "0.48.0", - "@oxfmt/binding-linux-x64-musl": "0.48.0", - "@oxfmt/binding-openharmony-arm64": "0.48.0", - "@oxfmt/binding-win32-arm64-msvc": "0.48.0", - "@oxfmt/binding-win32-ia32-msvc": "0.48.0", - "@oxfmt/binding-win32-x64-msvc": "0.48.0" + "@oxfmt/binding-android-arm-eabi": "0.50.0", + "@oxfmt/binding-android-arm64": "0.50.0", + "@oxfmt/binding-darwin-arm64": "0.50.0", + "@oxfmt/binding-darwin-x64": "0.50.0", + "@oxfmt/binding-freebsd-x64": "0.50.0", + "@oxfmt/binding-linux-arm-gnueabihf": "0.50.0", + "@oxfmt/binding-linux-arm-musleabihf": "0.50.0", + "@oxfmt/binding-linux-arm64-gnu": "0.50.0", + "@oxfmt/binding-linux-arm64-musl": "0.50.0", + "@oxfmt/binding-linux-ppc64-gnu": "0.50.0", + "@oxfmt/binding-linux-riscv64-gnu": "0.50.0", + "@oxfmt/binding-linux-riscv64-musl": "0.50.0", + "@oxfmt/binding-linux-s390x-gnu": "0.50.0", + "@oxfmt/binding-linux-x64-gnu": "0.50.0", + "@oxfmt/binding-linux-x64-musl": "0.50.0", + "@oxfmt/binding-openharmony-arm64": "0.50.0", + "@oxfmt/binding-win32-arm64-msvc": "0.50.0", + "@oxfmt/binding-win32-ia32-msvc": "0.50.0", + "@oxfmt/binding-win32-x64-msvc": "0.50.0" + }, + "peerDependencies": { + "svelte": "^5.0.0" + }, + "peerDependenciesMeta": { + "svelte": { + "optional": true + } } }, "node_modules/oxlint": { @@ -1882,9 +1890,9 @@ } }, "node_modules/ws": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", - "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index eb2814a..dfddccf 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@stylistic/eslint-plugin": "^5.10.0", "@types/node": "^20.19.39", "@types/ws": "^8.18.1", - "oxfmt": "^0.48.0", + "oxfmt": "^0.50.0", "oxlint": "^1.60.0", "rimraf": "^6.1.3", "typescript": "^5.0.0", diff --git a/src/test/helpers/local-server.ts b/src/test/helpers/local-server.ts index 238e2c8..b5f4a72 100644 --- a/src/test/helpers/local-server.ts +++ b/src/test/helpers/local-server.ts @@ -44,6 +44,10 @@ export function setupLocalTestServer() { response.end(JSON.stringify(body)); } + function readQuery(url: URL): Record { + return Object.fromEntries(url.searchParams.entries()); + } + async function readRequestBody(request: IncomingMessage): Promise { const chunks: Buffer[] = []; @@ -220,8 +224,39 @@ export function setupLocalTestServer() { return; } + if (url.pathname === '/get' || url.pathname === '/headers') { + sendJson(response, 200, { + args: readQuery(url), + headers: request.headers, + }); + + return; + } + + if (url.pathname === '/user-agent') { + sendJson(response, 200, { + 'user-agent': request.headers['user-agent'] ?? '', + }); + + return; + } + + if (url.pathname === '/anything') { + const body = await readRequestBody(request); + + sendJson(response, 200, { + args: readQuery(url), + data: body.toString('utf8'), + headers: request.headers, + method: request.method, + }); + + return; + } + if (url.pathname === '/headers/raw') { sendJson(response, 200, { + args: readQuery(url), rawHeaders: request.rawHeaders, headers: request.headers, }); diff --git a/src/test/hooks-retries.spec.ts b/src/test/hooks-retries.spec.ts index 4f31266..50eb5fa 100644 --- a/src/test/hooks-retries.spec.ts +++ b/src/test/hooks-retries.spec.ts @@ -7,7 +7,7 @@ describe('hooks and retries', () => { const { getBaseUrl, retryAttempts } = setupLocalTestServer(); test('should run init and beforeRequest hooks', async () => { - const response = await fetch('https://httpbin.org/anything', { + const response = await fetch(`${getBaseUrl()}/anything`, { browser: 'chrome_137', timeout: 15000, hooks: { @@ -31,7 +31,7 @@ describe('hooks and retries', () => { assert.strictEqual(body.args.from, 'init-hook', 'Init hook should mutate query'); assert.strictEqual( - body.headers['X-Hook-Header'], + body.headers['x-hook-header'], 'active', 'beforeRequest should mutate headers' ); @@ -64,7 +64,7 @@ describe('hooks and retries', () => { }); test('should allow afterResponse to replace the response', async () => { - const response = await fetch('https://httpbin.org/status/201', { + const response = await fetch(`${getBaseUrl()}/status/201`, { browser: 'chrome_137', timeout: 15000, hooks: { @@ -88,7 +88,7 @@ describe('hooks and retries', () => { test('should allow beforeError to rewrite thrown errors', async () => { await assert.rejects( async () => { - await fetch('https://httpbin.org/status/418', { + await fetch(`${getBaseUrl()}/status/418`, { browser: 'chrome_137', timeout: 15000, throwHttpErrors: true, diff --git a/src/test/http-client.spec.ts b/src/test/http-client.spec.ts index 096efd2..a38890b 100644 --- a/src/test/http-client.spec.ts +++ b/src/test/http-client.spec.ts @@ -20,7 +20,7 @@ describe('http client', () => { }); test('should make a simple GET request', async () => { - const response = await fetch('https://httpbin.org/get', { + const response = await fetch(`${getBaseUrl()}/get`, { browser: 'chrome_131', timeout: 15000, }); @@ -30,11 +30,11 @@ describe('http client', () => { const body = await response.json<{ headers: Record }>(); - assert.ok(body.headers['User-Agent'], 'Should have User-Agent header'); + assert.ok(body.headers['user-agent'], 'Should have User-Agent header'); }); test('should work with different browser profiles', async () => { - const testUrl = 'https://httpbin.org/user-agent'; + const testUrl = `${getBaseUrl()}/user-agent`; const browsers = ['chrome_137', 'firefox_139', 'safari_18']; for (const browser of browsers) { @@ -54,7 +54,7 @@ describe('http client', () => { test('should handle timeout errors', async () => { await assert.rejects( async () => { - await fetch('https://httpbin.org/delay/10', { + await fetch(`${getBaseUrl()}/timings/delay?ms=10000`, { browser: 'chrome_137', timeout: 1000, }); @@ -222,7 +222,7 @@ describe('http client', () => { }); test('should support fetch-style requests', async () => { - const response = await fetch('https://httpbin.org/get', { + const response = await fetch(`${getBaseUrl()}/get`, { browser: 'chrome_137', query: { source: 'fetch' }, throwHttpErrors: true, @@ -239,7 +239,7 @@ describe('http client', () => { test('should support createClient defaults', async () => { const client = createClient({ browser: 'chrome_137', - baseURL: 'https://httpbin.org', + baseURL: getBaseUrl(), timeout: 15000, headers: { 'X-Test-Client': 'node-wreq', @@ -250,7 +250,7 @@ describe('http client', () => { const body = await response.json<{ headers: Record }>(); assert.strictEqual( - body.headers['X-Test-Client'], + body.headers['x-test-client'], 'node-wreq', 'Client defaults should be merged into outgoing requests' ); @@ -388,7 +388,7 @@ describe('http client', () => { }); test('should support native-like Request instances', async () => { - const request = new WreqRequest('https://httpbin.org/anything', { + const request = new WreqRequest(`${getBaseUrl()}/anything`, { method: 'POST', headers: { 'content-type': 'application/json',