{"_id":"@open-draft/test-server","_rev":"19-7a2602b521938490137fe64480af428c","name":"@open-draft/test-server","dist-tags":{"latest":"0.7.2"},"versions":{"0.1.0":{"name":"@open-draft/test-server","version":"0.1.0","author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.1.0","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"7c749d64c26e5ff9337e3ce8b8b902ad414d0008","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.1.0.tgz","fileCount":8,"integrity":"sha512-X48PMgNA4NIET+20rtfiMInLTd8F8DnD2vREN3HMV1QdSkrdDv6/BOq7tHKZ5qfd4rgv51KtGpzy/z1gsQk/DA==","signatures":[{"sig":"MEUCIAZexVVP/TlwO+xOYxQg5k6suHQ2tkTOI6EUa2aCGQ/1AiEAwHwRSHrBobISPxWeUkw/lv5I8lshHcs4CpuKbSa5AO0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBq1ECRA9TVsSAnZWagAAvpAP/RvggCgyIgFdWq3TRh/4\n3oJaxcPUhmuL/vKylu8SmVNeNy5gX1ft7U7FgVMYKg2c8uxIhQC017mIBdF8\nUfPEf5BVHM3Alj7JdXBLWB8BAd3WQXRKLEi4D6SPNGU1mnmlYN+2JUNXIaMA\nXFn9ZZtGBql3fEmmSDMZJUxeUjy2oVXDxiCtq0OktbtPggrHF6HAhTe6DJlt\nSuPbdhRY8xJxGWs//kSbDjkBPIbuGCV//6OO/kgBnyHk0+wfFzmtUSWmrg/j\nLRSuKWaiC2/L7gLvRZp4HKS13jDM/GhlkSnS9WV5s/2zwv4lMifzr24RIlSn\n5xGwqQeKq8sGUGuLc4h4XEmu2xHy5SBHCSf++IX33mxcMa6u4qJkPOwJWQ98\n8yvSi3KY/7KoGChxUwfmTcZflNc4mAcSar8tfolLMh5lGNRj64koZdn+1e6C\nS/IWavKuukrLzaZY70d6B96Wf5wK3Melh2Xs6aMz8kWuhJPkycAvRv15Hg+1\nrXfFCMAJtUixlaLgU1LKkNC4Uz35LB0wmICvDpH+EQytQvv9IJ2E2sLQ5eMk\nWoo0X0S6qlk09qWzUJohC+EfJe8TNTeJNfsOykuTFuSsDVntxAJQ09HkqdS8\nO0NULK6GINjz7ItJnfY5BpA0wq2UKhjX/qwIenZEwSIyvTm3BbbXMAJDTcqU\nMjcs\r\n=UFM1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"jest","build":"tsc --build","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","@types/cors":"^2.8.9","@types/express":"^4.17.11"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","ts-jest":"^26.4.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^26.0.20","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.1.0_1611050307278_0.7390453151276106","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@open-draft/test-server","version":"0.2.0","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.2.0","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"4ef48bc7811e6b74def38631d9962840fafb2390","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.2.0.tgz","fileCount":8,"integrity":"sha512-Wnx+zKBGWyZrt6vh4TEoS0yLigtf0IxJkVrWdrTUZMK+PX8eBbl/kLKpzUTtEvQeCDMXBrL8COZ+vITaNg/73w==","signatures":[{"sig":"MEQCIFMNUtbOxyifbRQWKJfqrTzEIteLwlpyskRSoMRQaeDXAiBZbKzuZGjoJTP5OPwU93EcJbuNC6+xx/RJkSR8TSsbkQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8834,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBrV/CRA9TVsSAnZWagAAUxIP/RywOGSI5/e/3yifU6rg\n/wOW0JvD6zvWoV5TNBth+dPHKVnCYW9Onj44+D2/l+lwGtGVqb6e49csucCe\nP4/iDjoASDanReibqiFShVQdG3r5sB1qcqlqKLb3NW0pA6dvhn3JZfT3AIH5\nxKh13iyg7VcpWNVrRmsQ6A5Ag0dcBEj7IiUTNwTgLW4xm0RO5oAHIjSHTCgF\nN4FQUUKNva7XhjIT4JVROY/o8Z8EcZzMsnc38iZNsSIE36STpW9gpcz3TCd7\nGtJCXqZi4LCx1brvJhmVRwd1rcpa1alCKQwoNfyOdTHVg0eMKY0kV/DgjY48\nw1mK5HBqw3CjxaOJa9j9NoWEmrI6KFYghLrBWsloHdkXK5SRt3YJSY14qjVO\nxyd+Mxd1zpHaK7Gt8deHuWblPT+Ii8utQ7NTyu3TTAOgVhawRi1fa7dcJhv3\n3clDVmPqEnLdxX6LgDDDKceJO+N0PtTsz5HbjlpxjgW6Namt7kj1qPKCcuRb\ntYeKCFrbFcWimx1o4NtWxbe1DifQoOdSjmNGAde/NUZQsm/CcS5AZUggABnz\nBKqPZFk0IgsHGknX0+mwwYhY5XWKNSMY3j3C72EVKB6yiZouIEFQ0lmbgsD3\nlGwRRpyU0JLWcJb/mJxJSBhJSnJwDpzcUX4qlD2SctcIikKuTUBHdpTjrT2a\nGDzL\r\n=M9z6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","@types/cors":"^2.8.9","@types/express":"^4.17.11"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","rimraf":"^3.0.2","ts-jest":"^26.4.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^26.0.20","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.2.0_1611052414830_0.7695995246561997","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@open-draft/test-server","version":"0.2.1","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.2.1","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"1b364fc62fbaf97897ee7de3e587dbe827ab3986","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.2.1.tgz","fileCount":8,"integrity":"sha512-4sl9eAjj2PAtscssY0R9zCsAiiw+E/e/wqjZhBCMtJL9X0l6RzGZW/PKpirJEkZsymbQw/6kOPj1W2EeRql+4A==","signatures":[{"sig":"MEYCIQDnvz4Ebr9kwwERbymsaP8KaKhdayWqUpOzVX5vQi4agwIhAPoEIRbvkgw0kWA8EM33WZgBsag7j9ADBI51WHKqOTlj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9101,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBrn1CRA9TVsSAnZWagAA+oUP+QCRTdmcF+OqHtE3GnHI\ndyahl2NSqVXsxG9LgrNy1Cz+5UnhgPT2azlyVYIVjSck1edB+bmsfydqMQ1B\npmRpJjouilFtoVmpgEhEQMoNTu/6tK6qsxyKmIBkR/ZOiIiKMGrKVIMH4Fbn\ncZYMNkJmLDnR/VeJ7tM4h8SAqVCwiNfHiRSJ7PRladIqsgDb+zYeJp4MSdlM\nu6yWCovWGL23mOikLd0x5TOyynzgICgrWbQKwJ4k3Vq1qlc80AlzHxz8UaWZ\nxpvpxYN53ddSP0wrsDticLqvVASUNgcTxyGjXCgZj77IyyjOlsKBukbzSoa9\noZpVw20Dx5gnxXjzHL/TT0BJP5lmKlUkpSSTwxjLhWH+URbp8GR88GcC4Aj5\nYrKLVzplqiGMy6cSFipc+LowVrPUC48GgMGGHN36RYMJ/MvFjVSlIpS/lqLi\n982YxPtSw/DAe5h9j1RxQ0rzeqV7Rc2kU7JkursrNI1iKYSXMXbnsIcyMyxo\nqYbggrY611ZKDRloTaE6gOG+OEUIScbd35WG7CNXOqP2oUcK7wlyrsE/e/yV\nperLUvj7appJl/3mVp0LluLMr/DGe+ZjnkHMGh6Nwt6u/LalD4wMo0t5jXi7\nop8v+/plh2mypbQua3UxTIEl8FodQzFHg77sfRWy9Qs5gwhaotk2EPHL94I7\nGpIV\r\n=t5yc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","@types/cors":"^2.8.9","@types/express":"^4.17.11"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","rimraf":"^3.0.2","ts-jest":"^26.4.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^26.0.20","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.2.1_1611053557510_0.26557718154413945","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"@open-draft/test-server","version":"0.2.2","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.2.2","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"859387f6c266be39a9325a8d0fb88be9877375fb","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.2.2.tgz","fileCount":8,"integrity":"sha512-HeNhyHzp7FySNA+Kuf1CA0YgrpB5f73MUwbQAVypuYB+UWXNxW2qZXW0w2iXANyn1qt1S5UQwL7RSqLDxyvIDQ==","signatures":[{"sig":"MEUCIDS32YRGuNruAaGxJOaYWygFcpZrNB0fTod2ESjbES2TAiEA+Z6XR41Dz1bKmjeUcCvKEEu7JHUBUb10WQlKFKEGQ5E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9243,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgB/PRCRA9TVsSAnZWagAAf8IP/1EBCB3gL15Ig6x+DqIB\nM8NFicj7kmufBhsSat9yqJNULzoZee9AuY4qcJCkP9ZF05VNkpGFSwuvMNWv\nTKBta3Y3L501o2GcwHx3PU85zPFPOmuHDHUluatR+QEFobZlMoTTZTMqJRdY\n23tTUL7Zxz2Xol7muJP+OMwNXMzkJQ+ZY29xGCeSGFwHIiaPlIpYxUKROKPh\nURNA9YmbfNJJAM5f0zQh4HYaKed4/lfyWwvUAilGsRlzZfMHwbwpHjFRLCvk\nYrlEsednGXF1W7oM5VcgBP/sAIikwbcIArG3CzRk3eSIf+3sgWOOb9gpS998\nYorY1Ny6Cxoh7zR28i4yej580nJW6mKRm7yeUsDPxcUqdaHfIVFpBUPWGoYx\nz/tnH5T7QSI1JBSFyQ2xWgsg+7Vs1vOZuBEAWwOcn1FN4v5I+rzNkfijNX/8\nnZwQGTwyHMxjmdbHe+gAiOrQjAi8Wah+0eJYvUtvs/ux9gf8ohd1wHz8Xcoc\nfeSwWtw0jkcHAE6dTGVI9tNfkhqju7ihBDIGOI5odz2QLsl2GhzuRoLe6FXr\n9bIQVHXTMNpwXo3aUqjdsGpKbMVQhKUxnoEc0aMk7FVWoOKZOMXnwIPSUGoa\nQ8Gcs0EcGkqbxl4vQsOIuVucmMBbtW2T/0squ5dhSn7BSNK2gl8HrHCIR9YG\nQy6L\r\n=ZJ1x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","@types/cors":"^2.8.9","body-parser":"^1.19.0","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","rimraf":"^3.0.2","ts-jest":"^26.4.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^26.0.20","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.2.2_1611133904675_0.59462216992345","host":"s3://npm-registry-packages"}},"0.2.3":{"name":"@open-draft/test-server","version":"0.2.3","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.2.3","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"5074f257db4dcfd20cdef59ad2ad5d842262821f","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.2.3.tgz","fileCount":8,"integrity":"sha512-vURlfBwFEuUOjvqSzICo3Q5Q0CF9/44dM0MuOFpGtl2iriTe3LuzR1dppYvT3A157WH4ejxVVNH0PIeyGhE55w==","signatures":[{"sig":"MEUCIQD2pPSVGPprsYqZBhctR4y8iHhpy2Y/9V8lv4QCO4EvnAIgPe1hHD03yB2rtLEMO7edFbBh8Z5c3yUFqIb3xg+Pocg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQmJECRA9TVsSAnZWagAACTcQAKTwBsr5eVHdCMGX+uzj\nr2f9C/JWjaGLkhQglwDGBLr3NVU9OQgMps27MoZyy9xKg1DKvCEBHBCu4dwD\nmSTr15I0oY1iFdk3/B6Hv67IO6pp4S+5dNg3V9cHF22Nrm0BRgKYumC2N/uj\nTIsAahOgyimmNozeQu80uh3AWsijamWRMRwKBSx0qE9He4VpHeT42K90paUT\nMLPUi3zQHSiuL4R/56+S33qwDPG6eJABo7Ifq0yvdEBKJvfCOxZr1pB6r4Fz\n1sI3mPD+CSx+l5YaQgdCQWNSt5uo5788T7tpjwnvqsY0e+CMhaZ3tkxhUNjA\nKEduvGaEbG0T8fEa/bQ71QmgifENKS7pKBZ5H3waX1MeRtgJN379CDzpAfWF\nyrhAZavUicenIql2t7e3v8ityerc8sx8bsYq5wfFyrjPkwVUsvQIMI3yP/sU\nCzT40iK4LYpTfL5hGCANOECziSE9qMIByEniK21HL4TE5CJKRI6CpCYq7jvF\ndXm7ZNFhdxqEi/j0OqEFECt6Namq2x2Mb8G2U0Gqc+9k6pVZfFJlKCMsU7DI\nO3hYvFJLmAI1uW9D916/ZoEz5Uv3fD8iAoQfx1likehCZ5wzpS8p4b1LmJ6I\nJEHz4Y4Odkew/B+Cg/K4Ofo5vjtwq2UPtKO9ozrRvXGQrpAJPlAWTHzH2myY\n5T7h\r\n=OUDL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","@types/cors":"^2.8.9","body-parser":"^1.19.0","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","rimraf":"^3.0.2","ts-jest":"^26.4.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^26.0.20","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.2.3_1614963267614_0.26981803275868876","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@open-draft/test-server","version":"0.3.0","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.3.0","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"da104b50eb8a16917d681d8863f02ec5c64320fe","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.3.0.tgz","fileCount":8,"integrity":"sha512-9EGqKZIqB8DTaybt/AmuKaO/OqxoE6eJy/hpooqhnEUVBm3NGAsF6VWctlwCIdX5SN67EaNzjt7GHbx1YpuLEQ==","signatures":[{"sig":"MEYCIQCxFjT46nlPKMAitXfovP7gg/mO5TzWEPOxgsJ/ToP9YQIhAPbB0xj7a3lPIGwPmi/GY9uv0a4IgxiMmNFtTkHVJ1/u","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12551,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiO7pFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpOzw/8CKgqFPpgM2oKuKHA2qoaiDqAbHYgOula7O1g6ZE/IaykLRxd\r\n0NlXMwRUSFXaA1esb1MqANhdFujp0/tRVpGK719HmZg32B7fkUovgJgsCuID\r\nqEX94Cj5mn+iMW7YIgFiK/DJ8WJZfJsvgs8VYtC9G0PC55AfgbvWV8xOHMNA\r\nsNkDj9RSVGHGzYmGr2RbXoJQwZ2YKSzVugvfzKKClAZpKhQshCrGf1/r+uPE\r\nOYA3cg3CGCchGE+R0aQU+IZaj4CgEvH0Z5zcxPfySKqNeD9+dLP0q5qPPHVw\r\nP+xyvnfyOF1AvqgwEBLfztMxHxkm5QtOkPVzYu+aGnGUdpi4F7WFNAUzkJ/4\r\n+9jfR03+bEDMqUrQt+U9evNjBJzDE9gILh9nR5dx/O0hZq6qwkfST++5l+S4\r\nSoHObSDltRCLqSFDwwTws9YXmoYcovDutU0V185XJTNy0N8BnVOnUtAMM6iS\r\nlSFtC6MZeXV8ljxtNcEy+UFIl2RKfBaWdkXjhlXgFo12AawS6zOXibLQbey9\r\nzkHK8F1NLXnhi+g+QruIAiBaAlHs1hXUW3is0hX0f7pw+Nbe3zQCo8QYEAXJ\r\nOSaIQwrPlIjQxdwpCdDqWrqWqXHAq3nxraUEfAPe0D+AgT/8E/BRy7lhmvbB\r\nUYSRwyDG6eb70JNknG4+daC3Bnznb2tRV6g=\r\n=JSHi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","socket.io":"^4.4.1","@types/cors":"^2.8.9","body-parser":"^1.19.0","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","rimraf":"^3.0.2","ts-jest":"^26.4.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^26.0.20","socket.io-client":"^4.4.1","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.3.0_1648081477586_0.21795771721096768","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"@open-draft/test-server","version":"0.3.1","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.3.1","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"52c4b93a56bd6cdf4f11eb32ddeb0b72ef997032","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.3.1.tgz","fileCount":8,"integrity":"sha512-uYCv5EAdFhBVJAE2Qr7UxdGHRk4SYmpb543awNgSnlArRjCCVsQThW+ajQzcxkUzzRzbb+iAXvWDni5ilIMlXw==","signatures":[{"sig":"MEUCIFEovjYsJM7vTivE17kYGlzMn8/ujxDx6MYgXasXaEq9AiEA2RHKzfRWVIeJBQyzbQe/NvaSQAQtItrzRalvtrD7n78=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiPgQcACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmriIw/5ALwf8oESi84PhKvw1nixvWr/11rM5uVWfe7y4O7GzTh2dJMj\r\nP4SBjUjyMUeJu3CrpA7n8CeN+bSHCjlaIUpd27uRM3FG27hB2zXKq7k5mG54\r\n8MCFQdekmjR8SUQ1sViXzitY3Qh8IJP/7gqvpPYxYvFFAWhfJtVbbEPgmWdL\r\nOUyWoWIRYthcYj1mhazd8YQTvE7i3t1n9cNwsuc4qCnV+F82KQl5E9hzblKT\r\nAWTNyDRGrVEn4NT1Hd14j4PMp6IYARmA4F8fr+d6kRBP8ToaLmcSYrjIabTt\r\nVeOiouIUa4/7SvXZx0CYTj29CpCPl087VFcxxq7TpPfDYkhBwIWzvhkFow34\r\nMxCiPPxOO7PgvZHzsWkW3oHsA7fqmM2afWC+LqoBPOVj/hQb55jHs9NaK9Hy\r\nM5/HTiZSJOzKxiDjlwmZBRuiD5Z3Zzk1Uhc5xW0eV8qVRhiRTVBeCRifCfIU\r\nP1Kf5NeE68k8H0gxS7jMk6U5uazgenZLmrDmKOD6+F+g+bPAN/FtO4jI5tNp\r\nGEovfTn2hW0LPEwbaRMvcCgqKtpgIf/JQc7A+TlSTanhz1u3Gq5/PYpVCNh/\r\nRwESO8QdAPmMM8KILIhmwJQKomMzIpu1Unbvz7qoYDUOAx2ILtYDBYSybW1u\r\n0YDHrM0vr+DwwHjvFiWZQWDI05YaXh9k/W8=\r\n=Fuke\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","socket.io":"^4.4.1","@types/cors":"^2.8.9","body-parser":"^1.19.0","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","rimraf":"^3.0.2","ts-jest":"^26.4.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^26.0.20","socket.io-client":"^4.4.1","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.3.1_1648231452766_0.8849337917479161","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@open-draft/test-server","version":"0.4.0","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.4.0","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"0f49b6ba53712e465072360a42b85b3e927b9eb8","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.4.0.tgz","fileCount":10,"integrity":"sha512-WGEbWSlE/4XgoF9wJiDBP+FwZK2KYb34JpQMzWqDHyvwRUFrP0OFvEWJ3p0s7vuQN23jK47MTx4zAnk6JCg4NQ==","signatures":[{"sig":"MEQCIFh6ILllQABWEpgaTFkVHCBfqr9Zee5FkouOjkwttj5aAiABNNEEC4QcSMhgpVDTZnllsmXsnOLKOUxlRq/CwoQM/w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14071,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTt6CACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpbCA//fEFMa5wSXEreTThPAWKreOAHa1OSb01MGTqVvwwXhRJMfh47\r\n8JC+GcoBxIKugo/nKBs/HGgts7LpjXIIZ1A7BHK+bV52Tj6KWVYHfukeqy4V\r\nREiJ6/YeNS8EvsbsjADkOZJtCM9OvBuWhCVS2wLGzg3Vyfwcc3AxqLSqZJls\r\nlkuDlahv0cvZUMZszsj+/499323EgEdn+sc5k2HcaNHg+Gkg/vSSpnzfQUw7\r\npahoKfnMqU1cf1hagSwSbrgWIlNOFaG7NeBPDpIIMgevKB5Tg2meOlrZx1HT\r\nbj/Dgopr7VoHfC9/vJa1RTnQCNdOezm6mUndzpYTcLQsSUl58eVTfFwEKlzd\r\ngYi4zk+7GlOzB8u8G+9v9vpgAHqlSePB77SZP9lObJtyW0TQ3lw31/mLh8En\r\nCqpx+3voT1jR5ZIp4FjNEyO+czUNPstjnLN+g618US6XU2OxA6Jve3pr+u3t\r\nrepNrkJMeippZWE3CgvaoPdglbakicF54baBMmdm5Vf4pmXPb9DUhFxXWO8P\r\nTHPf7r8KxO7EX6wbcwg2DvR2gXpaZsmXs34lDLCT6ns/vqjjPojSEEN2iKjX\r\nMDjTgQl3YXxuguxOwM201X12svtGq5eMu/2JN6Ers2rtqiKby0e24kSN4yMp\r\n8ZZ1nhdjkZbk4H/tjoNgNgBxCf59Ew7DrJU=\r\n=lO4c\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","start":"tsc -w","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","socket.io":"^4.4.1","outvariant":"^1.3.0","@types/cors":"^2.8.9","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rimraf":"^3.0.2","ts-jest":"^27.1.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^27.4.1","@types/node":"14.18.1","socket.io-client":"^4.4.1","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.4.0_1649335938546_0.3407199961849168","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"@open-draft/test-server","version":"0.4.1","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.4.1","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"1ed4cdb0ad1fcd84cee62bf5d991fbb24024a530","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.4.1.tgz","fileCount":10,"integrity":"sha512-QtVt8D5JiEFKQTqGSTuqa+hJtt65nGNKobrgtXSnCpNmNQdygPxGpOl6gZaCwqJ88+YaRYMQn+I9TlMWJ8g3Pg==","signatures":[{"sig":"MEYCIQCbTVwGGCuBPxcagY68HdaNWGUtB0/Dks0hfYyP5gwsjQIhAKH5VkAnLf3q0Zizvc3Ma4SDeYWoWScsybfmrKXQdXYX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTt76ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqkRg//bVtVzOSpHdHiibXx9Zu9sii9DUBi6Rol7Ebfag2jNL0vZof+\r\nYIll8A5AIx05jq1YKwXRUZ+NqvMbVnGSLNmzmBoXen/GZtlV6C6d0dJS6AS/\r\n4ZYKy+yoJ44Ni/IJcaCy4jHkGyN8vDcaArJjIWT3gxezcrcAzSUDzeiwr9u4\r\nwCyP46zVhxVwg03+twhl6N5H6nQ7ovsYm8XAL3gAH37vlt9srzFVMSL2txdg\r\nKK1nNe5VZA5tRXD2cu2yAOLmsFhXYF7hOqn2yELYZIjftpVsGKHd/ADUtOvO\r\n5HlpIqpXtAC4yx9Lg/Jj959ZOLhDDvSgcLH1e5szU53/fn6x8eWnUAuijX9f\r\nXACjOrOzR2o2ToCqnpM77ykT1O58zHww6hBAwKe7T0lfovBM0Y2QyFHUF1vd\r\n48x7Tt/GYoAO7rVX4GWR5P01xjypQK2Rmw9pcxaDZG7IArFV7LecW2Mx0+5Y\r\naN2OFzRnpUMJjabzJs7reym89KsAMJYi5iJyqGtnKNz80As1BgKHiRxfcumT\r\n4/7ke4CCgr64sGivUuykL8PUCkw61WsoD3DQpk7Ef+Franmf46BSae1O0Qx/\r\n8ySA1IEc7yo4LbVYIljZeySGNk4YE1kxpKX9/VJ1hv/5KZhngaAXqbaWmgfy\r\nvdomZHSwEuZwt4ghaKyn4Q/VIzeZvcBddoo=\r\n=xEEB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","start":"tsc -w","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","socket.io":"^4.4.1","outvariant":"^1.3.0","@types/cors":"^2.8.9","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rimraf":"^3.0.2","ts-jest":"^27.1.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^27.4.1","@types/node":"14.18.1","socket.io-client":"^4.4.1","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.4.1_1649336057880_0.453135474985241","host":"s3://npm-registry-packages"}},"0.4.2":{"name":"@open-draft/test-server","version":"0.4.2","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.4.2","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"45bef308e72209cccd2778c821834621d99db790","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.4.2.tgz","fileCount":14,"integrity":"sha512-J9wbdQkPx5WKcDNtgfnXsx5ew4UJd6BZyGr89YlHeaUkOShkO2iO5QIyCCsG4qpjIvr2ZTkEYJA9ujOXXyO6Pg==","signatures":[{"sig":"MEUCIQDzU17sZkBln0oK1RDF+9MaqLyCFaV/zif3MMPhwjeBVAIgPrbJE73DsiGsXuTUnj1enSMQmtoX0GBuzHJHwIxuVPs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTt+RACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3hxAAjr//WpyTXEdOMr8pQwo9yhhdgYBjrwBkdRjDjdzApFoHQlit\r\nVp2cqih9ZhAHs1Ej1MY7KqmeXbnGh8B0vt3yWlGTGqTCiOsYuUdbuXAGojTu\r\n8Y6dgPGlt6+I3+JFGFRfliuSatn/cXbs0ds+KxxP2+mDSuzE0zpjgWWtXY7+\r\nmplT42ZAiND5Ank52vspVKCSKJmnySp+Sk6ubXjvTcMlsEgXq7B55We315hi\r\nkPaSI1Sr4pTBkqS9oeFOm/G/EHk7cFm/rKRmqFvIwg1HyP/g9MPKjKAnZlvy\r\n6zlUPZavNeBjCc3zySOqOJv0ZI4KFJ+5NKX8PsNWuDJt22z2qyouh2QElglP\r\nzW4HfueVtEfw21pwRdMwiS92x5+ITGfKeRlvnMRmfcl5u7KHFengG0QoZhYX\r\nQFUxjYnCUIxIDAJaiG1LuZrp0wfbyZgpM04np8kzskUFJeEZC5Gy6RcFG8gc\r\nh4a5qZqEyrGfF8qqV6nTpti0zEiFQsGaV+c4rt66HyY/QU6JWysDEnVQQ8sa\r\nvs4YgJnYa+Kuwyvfg9WRaxoNZo6QPM645Ei+x6NG5J6wfqGSKhtsqM/j73ee\r\nCQ2lDdiq7KTy7x7KFz6p93HKWf7pTsW+mOEyynMlHsnrP+XwA3Qk39P5pt59\r\nNIYUlLb8RfBNZIoxtH2VVwcMx265mcF49n4=\r\n=PcaR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","start":"tsc -w","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","socket.io":"^4.4.1","outvariant":"^1.3.0","@types/cors":"^2.8.9","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rimraf":"^3.0.2","ts-jest":"^27.1.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^27.4.1","@types/node":"14.18.1","socket.io-client":"^4.4.1","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.4.2_1649336209739_0.44527044170359953","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@open-draft/test-server","version":"0.5.0","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.5.0","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"e67a9f3db00bb163c66b2e5b1b6ef06b1c576e24","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.5.0.tgz","fileCount":14,"integrity":"sha512-E0cWfWsWR3MqpyO2tBWYmPoTMe7Xlsa2X8+IDs7TGHWspn7ryLa9OQmVnUdeDgNRlTOMyVJGhAwQSrP9yKzH2Q==","signatures":[{"sig":"MEUCIFNZEBc8orwWqQwZLvtAdnjQmBv59Q1rppQfEnLZQJvmAiEAlXNnNVCc43OpVb+AgPY3idsRK7zhgp4R2F+e/VPaoCI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjGxH2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoZAg/+OLQF2zI7GAY1/IJE+rJEzpbSE1eoh92h2cUmdKIURYS6qasB\r\nxwNHyviy8KKPpyODllW8FdQw6P/+SyMO35bcBrKLpaRz2+8+Ec+Jjd+RWdkK\r\nmclSvwPhsq8l2DQntpio4opigvQJlYyuOoOHepIaQNljmiHcJ+vE3EykSCX6\r\nUCwc7hPRzcXP4vXjBOdLllj7qb05Pdfs01nbaBi9tugTIcNSBn9mKoN7e1Fp\r\nIDya03kJcPaFHH5zVa7VhEkSRbJ3ANJ5PcaiR77zET71C5BttBIgyBJXVALX\r\n/wHfXndL9aeqaapNnbxwgX+MX9FcJfi0GaV9feKKVgPifDYX9hFRn588PuNk\r\nBbM4S8dgRpbt9Y71hvtY28/Dj5Rg+EnNp08sDWQW1pll/7Pr6qnKKrgJnXuD\r\nGsd7BgN1NnH97JtsAmFIM7RlIwfeyNZW6a4SiDc82rV8suxQnMu5Gog1caWt\r\nhh+tFIBIFoutJOBycBUZttBECDEx6gIfr34dIGDTm9MdTIJu6yn39KE6uySj\r\nHcc2nIXSawwpX9M8iyLp/b3WLd1PKppb3VRKZzgrMLRKtpB2sZeS11Nyv3Bz\r\n0HBpS3wMggo6CcVPV/YMvRGAwU4OVrSaB6UphIqBsWikWmXtcZyzUJdEaiHj\r\nzJeGvQShw3ciQAFrwIYo6blsPfakdNovExo=\r\n=dx5O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","start":"tsc -w","release":"release publish","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","socket.io":"^4.4.1","outvariant":"^1.3.0","@types/cors":"^2.8.9","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rimraf":"^3.0.2","ts-jest":"^27.1.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^27.4.1","@types/node":"14.18.1","@ossjs/release":"^0.3.2","socket.io-client":"^4.4.1","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.5.0_1662718454167_0.11869667595048372","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"@open-draft/test-server","version":"0.5.1","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.5.1","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"dist":{"shasum":"e9aa5ae61b16185a8893e36f80b133b74ccbb5fb","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.5.1.tgz","fileCount":14,"integrity":"sha512-RYyjRVfddPMmVWePP49OQ/zmJL5D0kr+/LsLILYftC067LDPdZwUm75s9h+2+gqyVHU8qcWiWPXwYouDHUmVNw==","signatures":[{"sig":"MEUCIChBo7ID5tKgj6Pi7OgnvOvcFx9ZXGWffmdFIsGY/LnKAiEAsf2fm4a4JHSpkn/Z+S8w1IAxJ6NqkR9oO1ZmbxfgLdM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14807,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjj06kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmomHhAAlbVniamtXDr7cbHwAbUePU0Q+vCdJ01ffuLZ6PjFkEQKGh4w\r\nbpWycCIXiqV5KMS1/63ll6Z/7jgBYKpuMSrbKGppbFtO1mqUh/2n7qFsUIUB\r\nnkdPgTiGuEUGUUaFC31l8wm4SrWslzJbditUJ+x+4HvwKF4KoVxB5IMc72jh\r\n0BN8r55mDp9Bem4s94LrImQiqSJpoxVUpXGJVK/qsjAhnz4DTfNpcYKO7v5+\r\nqobOftqWzA6ksZ2u+S7O/KoblGESBwI1EnVDUKOd8Lqb/K/9rA4YBsAzvrjB\r\nsTSauXjIpa6MalOVjxP8CssOfoU7vkZTfIKNAQOADaJx+HHDd/uZT/DZKwd7\r\nCybAq1N187jXf7fzEtqu5u8JyVDM0SiogV3ZqBGqldSThmoFBuZplywYZYgs\r\nBZGspc0LwCC+FnDfsvRaVVP+dm+o1GFm4NO6pB0F3oXzkyAaUVX9paxPWr6K\r\nxVg6PTOqVWqJqmwEmv4iuJi8r6QxTncOiv0/zQ7sQOBOKePYH+89zVz2jYpw\r\nfVGFGyepd5hC8qopttKLy5J8r+WqU5U2C2jLWScXRZPyukJzMeAGb6xUGudM\r\n4l47moM75t7PxUgRQeHQ1K2FWR6BjVo/QH1ih9o3xvrzYmzl/w8155XCr0Bz\r\nmS3RPU1XOZ1YXGv58U9NYdiWpLXViKfv774=\r\n=/qGK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib","scripts":{"test":"jest","build":"yarn clean && tsc --build","clean":"rimraf lib","start":"tsc -w","release":"release publish","prepublishOnly":"yarn test && yarn build"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"repository":{"url":"https://github.com/open-draft/test-server","type":"git"},"description":"HTTP/HTTPS testing server for your tests.","directories":{},"dependencies":{"cors":"^2.8.5","express":"^4.17.1","socket.io":"^4.4.1","outvariant":"^1.3.0","@types/cors":"^2.8.9","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^27.5.1","rimraf":"^3.0.2","ts-jest":"^27.1.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^27.4.1","@types/node":"14.18.1","@ossjs/release":"^0.3.2","socket.io-client":"^4.4.1","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.5.1_1670336164649_0.3094972049101312","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@open-draft/test-server","version":"0.6.0","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.6.0","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"homepage":"https://github.com/open-draft/test-server#readme","bugs":{"url":"https://github.com/open-draft/test-server/issues"},"dist":{"shasum":"112462b161a8338b6f9babe542918dcca7409d28","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.6.0.tgz","fileCount":11,"integrity":"sha512-MwUzRqCZ+92UbNPO85sxmGqNVuk4yvwZI1ugLBrEpu4gPeJOh1gWEvdeCJovnTJ14EMMnjJx3ZNeJM+PIHeMgg==","signatures":[{"sig":"MEQCIHNJJSaH431qILSVc6eM/HZnQGCNR8TYjbRnYrMiOwg0AiALh+rU0rLpXEQ+DANtH/+gBuyHtgTAQz/sEteROlPaqQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40812},"main":"lib","_from":"file:open-draft-test-server-0.6.0.tgz","scripts":{"test":"vitest","build":"pnpm clean && tsc --build","clean":"rimraf lib","start":"tsc -w","release":"release publish"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"_resolved":"/tmp/9e37e0c0ffcc35c112f23874e15ed6a3/open-draft-test-server-0.6.0.tgz","_integrity":"sha512-MwUzRqCZ+92UbNPO85sxmGqNVuk4yvwZI1ugLBrEpu4gPeJOh1gWEvdeCJovnTJ14EMMnjJx3ZNeJM+PIHeMgg==","repository":{"url":"git+https://github.com/open-draft/test-server.git","type":"git"},"_npmVersion":"9.8.1","description":"HTTP/HTTPS testing server for your tests.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"ws":"^8.14.2","cors":"^2.8.5","express":"^4.17.1","@types/ws":"^8.5.9","outvariant":"^1.3.0","@types/cors":"^2.8.9","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^3.0.2","vitest":"^0.34.6","ts-jest":"^27.1.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^27.4.1","@types/node":"14.18.1","@ossjs/release":"^0.8.0","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.6.0_1699975319895_0.541893451182093","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@open-draft/test-server","version":"0.6.1","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.6.1","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"homepage":"https://github.com/open-draft/test-server#readme","bugs":{"url":"https://github.com/open-draft/test-server/issues"},"dist":{"shasum":"ac88bd8f2e9d37c514f564598f70ce5e7b60fa53","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.6.1.tgz","fileCount":10,"integrity":"sha512-/eOet/0rJ14Jt5dUb6uY+Iqsr0LRAgdssrmwxruzJSkS3QCLSpIodG/7jKJmfZvBqAOhrpGyiKrqefKFuaKtpw==","signatures":[{"sig":"MEYCIQDdXdIzXVhoKJMSGS7AJXfnN58/NPyoh3PBaYKKIKr7PQIhAI37EpA0awiE0OfNjocF6t8OWeBxJzedd5xYlcKWQ/pK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15527},"main":"lib","_from":"file:open-draft-test-server-0.6.1.tgz","scripts":{"test":"vitest","build":"pnpm clean && tsc --build","clean":"rimraf lib","start":"tsc -w","release":"release publish"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"_resolved":"/tmp/b28b61d5577d15a47c46e0acbbbdd3a3/open-draft-test-server-0.6.1.tgz","_integrity":"sha512-/eOet/0rJ14Jt5dUb6uY+Iqsr0LRAgdssrmwxruzJSkS3QCLSpIodG/7jKJmfZvBqAOhrpGyiKrqefKFuaKtpw==","repository":{"url":"git+https://github.com/open-draft/test-server.git","type":"git"},"_npmVersion":"9.8.1","description":"HTTP/HTTPS testing server for your tests.","directories":{},"_nodeVersion":"18.18.2","dependencies":{"ws":"^8.14.2","cors":"^2.8.5","express":"^4.17.1","@types/ws":"^8.5.9","outvariant":"^1.3.0","@types/cors":"^2.8.9","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^3.0.2","vitest":"^0.34.6","ts-jest":"^27.1.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^27.4.1","@types/node":"14.18.1","@ossjs/release":"^0.8.0","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.6.1_1699980562921_0.45396267563044757","host":"s3://npm-registry-packages"}},"0.6.2":{"name":"@open-draft/test-server","version":"0.6.2","keywords":["test","server","http","https","locally"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.6.2","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"homepage":"https://github.com/open-draft/test-server#readme","bugs":{"url":"https://github.com/open-draft/test-server/issues"},"dist":{"shasum":"58cbdafa8322342bae9eb30e6464e932599941ed","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.6.2.tgz","fileCount":10,"integrity":"sha512-1v5Y3ynnPzwMMyzyYgIep3okW1R1RZSRPa4My2dJG8xDrdndQGibXvwaxjPg22WDU0u+27AaLSMK6kOgEc1C9w==","signatures":[{"sig":"MEUCIHNAZbJxBTbyAKD+AIP+hFvUjgCswZ5mBU0xrIZMsXVdAiEA+ese1LZGOuAyJSz/nC7OAums+Ft0im0eAdTZ9y6yr1g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16118},"main":"lib","_from":"file:open-draft-test-server-0.6.2.tgz","scripts":{"test":"vitest","build":"pnpm clean && tsc --build","clean":"rimraf lib","start":"tsc -w","release":"release publish"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"_resolved":"/tmp/bd750f029d896863af0d9d248c18e7a4/open-draft-test-server-0.6.2.tgz","_integrity":"sha512-1v5Y3ynnPzwMMyzyYgIep3okW1R1RZSRPa4My2dJG8xDrdndQGibXvwaxjPg22WDU0u+27AaLSMK6kOgEc1C9w==","repository":{"url":"git+https://github.com/open-draft/test-server.git","type":"git"},"_npmVersion":"10.2.3","description":"HTTP/HTTPS testing server for your tests.","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ws":"^8.14.2","cors":"^2.8.5","express":"^4.17.1","@types/ws":"^8.5.9","outvariant":"^1.3.0","@types/cors":"^2.8.9","@types/express":"^4.17.11","@types/body-parser":"^1.19.0"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^3.0.2","vitest":"^0.34.6","ts-jest":"^27.1.4","ts-node":"^9.1.1","node-fetch":"^2.6.1","typescript":"^4.1.3","@types/jest":"^27.4.1","@types/node":"14.18.1","@ossjs/release":"^0.8.0","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.6.2_1706896234626_0.16603708244523596","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"@open-draft/test-server","version":"0.7.0","keywords":["test","server","http","https","ws","websocket","local"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.7.0","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"homepage":"https://github.com/open-draft/test-server#readme","bugs":{"url":"https://github.com/open-draft/test-server/issues"},"dist":{"shasum":"2ed2f0c4f9086eab3f40740931409252f01cda73","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.7.0.tgz","fileCount":17,"integrity":"sha512-8nBiac2PqMSUNbnZpYpKIG0ZLE/U4lpyz0dS79K7PbdTCdQIWpptFnoN+pS2IA3DerV4UatJ0/I1nRAZUccmeg==","signatures":[{"sig":"MEYCIQDRxLB0IFvSuxeMVJOVOycAoJQ7rmUubfDwSaiEbW/dWAIhAJQx+aNBYRTboHxjdw3IZx8TU/gciiU7mrw7xp8d4YA6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39695},"main":"./lib","type":"module","_from":"file:open-draft-test-server-0.7.0.tgz","scripts":{"test":"vitest","build":"pnpm clean && tsc -p ./tsconfig.build.json","clean":"rimraf lib","start":"tsc -p ./tsconfig.src.json -w","release":"release publish"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"_resolved":"/tmp/afb091ad93b921987976682b99f5e20c/open-draft-test-server-0.7.0.tgz","_integrity":"sha512-8nBiac2PqMSUNbnZpYpKIG0ZLE/U4lpyz0dS79K7PbdTCdQIWpptFnoN+pS2IA3DerV4UatJ0/I1nRAZUccmeg==","repository":{"url":"git+https://github.com/open-draft/test-server.git","type":"git"},"_npmVersion":"10.8.1","description":"HTTP/HTTPS testing server for your tests.","directories":{},"_nodeVersion":"20.16.0","dependencies":{"ws":"^8.14.2","hono":"^4.5.4","express":"^4.17.1","@types/ws":"^8.5.9","outvariant":"^1.3.0","@hono/node-ws":"^1.0.4","@types/express":"^4.17.11","@hono/node-server":"^1.12.0","@open-draft/deferred-promise":"^2.2.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.7","devDependencies":{"rimraf":"^3.0.2","undici":"^6.19.5","vitest":"^0.34.6","typescript":"^5.5.4","@types/node":"20.14.14","@ossjs/release":"^0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.7.0_1723563824039_0.5824325175014657","host":"s3://npm-registry-packages"}},"0.7.1":{"name":"@open-draft/test-server","version":"0.7.1","keywords":["test","server","http","https","ws","websocket","local"],"author":{"name":"Artem Zakharchenko"},"license":"MIT","_id":"@open-draft/test-server@0.7.1","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"homepage":"https://github.com/open-draft/test-server#readme","bugs":{"url":"https://github.com/open-draft/test-server/issues"},"dist":{"shasum":"bc0a7df3e430fba715e14702cccf47ed705e3bde","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.7.1.tgz","fileCount":17,"integrity":"sha512-jwxYmA75Bwer/ZYDUdAUh9bnWfTq4FfQkofj/8dcr+TNN4Oba0Lq/HqxVPlEYClB5fR7DMs5Man/1XMXQPKwkQ==","signatures":[{"sig":"MEUCIEPoPUiZrwcySQIgaigo6QBegA3kzIgUn9AHxGBumJDyAiEA8p46pZpYAla72cGBB8fOE+1vGejSfw+n6wG080IJ6DA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40187},"main":"./lib","type":"module","_from":"file:open-draft-test-server-0.7.1.tgz","scripts":{"test":"vitest","build":"pnpm clean && tsc -p ./tsconfig.build.json","clean":"rimraf lib","start":"tsc -p ./tsconfig.src.json -w","release":"release publish"},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"_resolved":"/tmp/1dc7f9971f677ffd2f58aabe820580ac/open-draft-test-server-0.7.1.tgz","_integrity":"sha512-jwxYmA75Bwer/ZYDUdAUh9bnWfTq4FfQkofj/8dcr+TNN4Oba0Lq/HqxVPlEYClB5fR7DMs5Man/1XMXQPKwkQ==","repository":{"url":"git+https://github.com/open-draft/test-server.git","type":"git"},"_npmVersion":"10.8.1","description":"HTTP/HTTPS testing server for your tests.","directories":{},"_nodeVersion":"20.16.0","dependencies":{"ws":"^8.14.2","hono":"^4.5.4","express":"^4.17.1","@types/ws":"^8.5.9","outvariant":"^1.3.0","@hono/node-ws":"^1.0.4","@types/express":"^4.17.11","@hono/node-server":"^1.12.0","@open-draft/deferred-promise":"^2.2.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@8.15.7","devDependencies":{"rimraf":"^3.0.2","undici":"^6.19.5","vitest":"^0.34.6","typescript":"^5.5.4","@types/node":"20.14.14","@ossjs/release":"^0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/test-server_0.7.1_1724414896222_0.030215455120250923","host":"s3://npm-registry-packages"}},"0.7.2":{"type":"module","name":"@open-draft/test-server","version":"0.7.2","description":"HTTP/HTTPS testing server for your tests.","main":"./lib","exports":{"./http":{"types":"./lib/http.d.ts","default":"./lib/http.js"},"./ws":{"types":"./lib/ws.d.ts","default":"./lib/ws.js"},"./package.json":"./package.json"},"repository":{"type":"git","url":"git+https://github.com/open-draft/test-server.git"},"author":{"name":"Artem Zakharchenko"},"license":"MIT","packageManager":"pnpm@8.15.7","keywords":["test","server","http","https","ws","websocket","local"],"devDependencies":{"@ossjs/release":"^0.8.0","@types/node":"20.14.14","rimraf":"^3.0.2","typescript":"^5.5.4","undici":"^6.19.5","vitest":"^0.34.6"},"dependencies":{"@hono/node-server":"^1.12.0","@hono/node-ws":"^1.0.4","@open-draft/deferred-promise":"^2.2.0","@types/express":"^4.17.11","@types/ws":"^8.5.9","express":"^4.17.1","hono":"^4.5.4","outvariant":"^1.3.0","ws":"^8.14.2"},"scripts":{"start":"tsc -p ./tsconfig.src.json -w","test":"vitest","clean":"rimraf lib","build":"pnpm clean && tsc -p ./tsconfig.build.json","release":"release publish"},"_id":"@open-draft/test-server@0.7.2","bugs":{"url":"https://github.com/open-draft/test-server/issues"},"homepage":"https://github.com/open-draft/test-server#readme","_integrity":"sha512-0OxuOe9b7aqkLKOB6p7bh/ktRfpSIgWvvQfKsG8JRTVzuA4EFXyPX+OSCsNZDhTWdNYByX/NrsS1lblTytoogQ==","_resolved":"/tmp/f86198b6ed2b795b8ed51cb077e09a53/open-draft-test-server-0.7.2.tgz","_from":"file:open-draft-test-server-0.7.2.tgz","_nodeVersion":"20.19.1","_npmVersion":"10.8.2","dist":{"integrity":"sha512-0OxuOe9b7aqkLKOB6p7bh/ktRfpSIgWvvQfKsG8JRTVzuA4EFXyPX+OSCsNZDhTWdNYByX/NrsS1lblTytoogQ==","shasum":"0eec90a83a6df693a6d0b3c0deed0b47af566900","tarball":"https://registry.npmjs.org/@open-draft/test-server/-/test-server-0.7.2.tgz","fileCount":17,"unpackedSize":40420,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCrVcgeDTdBjeDaF4sJsuUnizJp1oAxf8XBAit8NE4JqQIhALOwdmfhM9+Q4FdtsV43UUw0ubjhAyupfeW/zVglxaLw"}]},"_npmUser":{"name":"kettanaito","email":"kettanaito@gmail.com"},"directories":{},"maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/test-server_0.7.2_1746301922197_0.8523711511506662"},"_hasShrinkwrap":false}},"time":{"created":"2021-01-19T09:58:27.027Z","modified":"2025-05-03T19:52:02.563Z","0.1.0":"2021-01-19T09:58:27.601Z","0.2.0":"2021-01-19T10:33:35.001Z","0.2.1":"2021-01-19T10:52:37.640Z","0.2.2":"2021-01-20T09:11:44.925Z","0.2.3":"2021-03-05T16:54:27.737Z","0.3.0":"2022-03-24T00:24:37.747Z","0.3.1":"2022-03-25T18:04:12.914Z","0.4.0":"2022-04-07T12:52:18.766Z","0.4.1":"2022-04-07T12:54:18.052Z","0.4.2":"2022-04-07T12:56:49.857Z","0.5.0":"2022-09-09T10:14:14.311Z","0.5.1":"2022-12-06T14:16:04.782Z","0.6.0":"2023-11-14T15:22:00.084Z","0.6.1":"2023-11-14T16:49:23.094Z","0.6.2":"2024-02-02T17:50:34.912Z","0.7.0":"2024-08-13T15:43:44.222Z","0.7.1":"2024-08-23T12:08:16.471Z","0.7.2":"2025-05-03T19:52:02.399Z"},"bugs":{"url":"https://github.com/open-draft/test-server/issues"},"author":{"name":"Artem Zakharchenko"},"license":"MIT","homepage":"https://github.com/open-draft/test-server#readme","keywords":["test","server","http","https","ws","websocket","local"],"repository":{"type":"git","url":"git+https://github.com/open-draft/test-server.git"},"description":"HTTP/HTTPS testing server for your tests.","maintainers":[{"name":"kettanaito","email":"kettanaito@gmail.com"}],"readme":"# Test Server\n\nSpawns HTTP/HTTPS/WS/WSS local servers for testing.\n\n## Motivation\n\nI happened to do a lot of network testing. In my test suites, I often need to perform requests against actual HTTP/WebSocket servers, but need the flexibility to model whatever scenarios I want, including on a per-test basis. Traditional server packages likes `express` or `fastify` are great but too verbose for this particular use case.\n\nSo I've built this utility. I've been using this library for years to help me perfect the test suite for [Mock Service Worker](https://mswjs.io). But why build it at all?\n\n- **Compact**. I can spawn actual servers in tests while keeping the test setup to the minimum.\n- **Practical**. I can _configure_ test servers first, _spawn_ later. This adds a ton of reusability while also keeping my tests clean. I can also use the test servers as _disposables_, which means they will automatically clean after themselves even if I establish a server within a particular test.\n- **Universal**. This library gives you the means to create test HTTP and WebSocket servers to test the network to your heart's content.\n\n> It's also a bit silly that in 2024 some server libraries don't return a connection promise and don't give you any adequate means to get the server's actual URL. Those two are quite essential when testing the network.\n\nThis library is built on top of [Hono](https://hono.dev/), and you should definitely check it out! For once, it's an incredible environment-agnostic server library. But also, because you can attach existing Hono middleware to your test serves to send them to the moon.\n\n## Install\n\n```bash\nnpm install @open-draft/test-server\n```\n\n## Usage\n\n### HTTP server\n\n```js\nimport { createTestHttpServer } from '@open-draft/test-server/http'\n\nconst server = createTestHttpServer({\n  defineRoutes(router) {\n    router.get('/numbers', () => {\n      return Response.json([1, 2, 3])\n    })\n  },\n})\n\nbeforeAll(async () => {\n  await server.listen()\n})\n\nafterAll(async () => {\n  await server.close()\n})\n\ntest('fetches all the numbers', async () => {\n  const response = await fetch(server.http.url('/numbers'))\n  expect(response.status).toBe(200)\n  await expect(response.json()).resolves.toEqual([1, 2, 3])\n})\n```\n\n### WebSocket server\n\n```js\nimport { createTestHttpServer } from '@open-draft/test-server/http'\nimport { createTestWebSocketServer } from '@open-draft/test-server/ws'\n\nconst server = createTestHttpServer()\nconst wss = createTestWebSocketServer({\n  // Attach the test WebSocket server to an existing HTTP server.\n  server,\n  pathname: '/ws',\n})\n\n// Running the HTTP server will establish the WebSocket middleware as well.\nawait server.listen()\n\nconsole.log('WebSocket server is running at:', wss.ws.url())\n\nwss.ws.on('connect', (socket) => {\n  console.log('new connection:', socket.id)\n})\n```\n\n### As disposable utilities\n\nBoth the `createTestHttpServer()` and `createTestWebSocketServer()` utilities are [disposable](https://tc39.es/proposal-explicit-resource-management/), which means they can be created within function closures (e.g. your test cases) and will be automatically cleaned up once that closure is garbage-collected.\n\n```js\n// my.test.js\nimport { createTestHttpServer } from '@open-draft/test-server/http'\n\nit('fetches a resource by id', async () => {\n  await using server = createTestHttpServer({\n    defineRoutes(router) {\n      router.get('/resource/:id', () => {\n        return Response.json({ a: 1 })\n      })\n    }\n  })\n\n  await fetch(server.http.url('/resource/abc-123'))\n})\n```\n\n> In the test case above, the test HTTP server will automatically be closed once the test case is done!\n\nThe \"rooms\" you can create in the test HTTP server are also disposable, which allows you to append additional behaviors to an already existing test server instance.\n\n```js\nconst server = createTestHttpServer()\n\nbeforeAll(async () => await server.listen())\nafterAll(async () => await server.listen())\n\nit('handles errors when fetching a resource', async () => {\n  await using room = server.http.createRoom({\n    defineRoutes(router) {\n      router.get('/resource', () => {\n        return new Response(null, { status: 404 })\n      })\n    }\n  })\n\n  await fetch(room.url('/resource'))\n})\n```\n\n> Note that the request references the `/resource` pathname nested under the room (`room.url()`).\n\n## API\n\n### `createTestHttpServer([options])`\n\nCreates a test HTTP server instance. The server instance is _not running_ until you call `server.listen()`\n\n- `options` (optional)\n  - `protocols`, (optional) `Array<'http' | 'htts'`, the list of protocols to spawn corresponding test servers. For example, providing `['http', 'https']` will spawn _two_ test servers (HTTP and HTTPS) with the same route handlers.\n  - `defineRoutes`, (optional) `(router: Hono) => void`, a function describing the initial route handlers.\n\n```ts\nconst server = createTestHttpServer({\n  protocols: ['http', 'https'],\n  defineRoutes(router) {\n    router.get('/user', () => {\n      return Response.json(userFixture)\n    })\n  },\n})\n```\n\n### `TestHttpServer`\n\n#### `TestHttpServer.listen([options])`\n\n- `options` (optional)\n  - `hostname`, (optional) `string`, the exact hostname to use for this server.\n\n#### `TestHttpServer.close()`\n\nCloses the HTTP server, aborting any pending requests.\n\n#### `TestHttpServer.http.url([pathname])`\n\n- `pathname` (optional) `string`, a pathname to rebase against the server URL.\n\n```ts\nconst server = createTestHttpServer()\nawait server.listen()\n\nserver.http.url() // \"http://localhost:57834\"\nserver.http.url('/resource') // \"http://localhost:57834/resource\"\n```\n\n#### `TestHttpServer.http.createRoom([options])`\n\nCreate a new room on this server. Room is a set of route handlers scoped under a random base path.\n\n- `options` (optional)\n  - `defineRoutes`, (optional) `(router: Hono) => void`, a function describing the routes for this room. Note that all room routes are scoped to the random room base path.\n\n```ts\nconst server = createTestHttpServer()\nawait server.listen()\n\nconst room = server.http.creaetRoom({\n  defineRouter(router) {\n    router.get('/resource', () => new Response())\n  },\n})\nroom.url() // \"http://localhost:57834/48e34ef7-13d0-4b6b-862f-4a29475c3396\"\n\nawait fetch(room.url('/resource'))\n```\n\n> Creating rooms with their own route handlers allows you to reuse the same running server instance while imbuing it with different functionality on a per-test basis.\n\n### `createTestWebSocketServer(options)`\n\n- `options`\n  - `server`, `TestHttpServer`, a reference to the server instance created by calling the `createTestHttpServer()` utility.\n  - `pathname`, `string`, a pathname of the given HTTP `server` where the WebSocket connection must be established.\n\n#### `TestWebSocketServer.ws.url()`\n\n#### `TestWebSocketServer.wss.url()`\n\nReturns an absolute URL to this WebSocket connection.\n\n> Note that the `.url()` method on the WebSocket server does _not_ accept a `pathname`. The WebSocket protocol does not define the concept of sub-resources, so there is no point in referencing nested paths that point at nothing.\n\n#### `TestWebSocketServer.on(type, listener)`\n\nAdds an event listener to the underlying WebSocket connection.\n\n```js\nconst wss = createTestWebSocketServer({\n  server,\n  pathname: '/ws',\n})\n\nwss.ws.on('connection', (socket) => {\n  // Handle any incoming WebSocket client connections\n  // to this test WebSocket server under HTTP.\n})\n```\n\n#### `TestWebSocketServer.once(type, listener)`\n\nAdds a one-time event listener to this WebSocket connection.\n\n#### `TestWebSocketServer.off(type, listener)`\n\nRemoves the event listener for the given event type from this WebSocket connection.\n\n#### `TestWebSocketServer.close()`\n\nCloses the WebSocket server, closing any active clients.\n\n> [!IMPORTANT]\n> Note that closing the WebSocket server does _not_ close the parent HTTP server. Closing the parent HTTP server, however, will automatically close any attached WebSocket servers.\n","readmeFilename":"README.md"}