{"_id":"@swarmmachina/swm-core","_rev":"29-c5fa7f9f4fd52cfb2fc46a4c0d57eb9b","name":"@swarmmachina/swm-core","dist-tags":{"latest":"5.2.2"},"versions":{"1.0.1":{"name":"@swarmmachina/swm-core","version":"1.0.1","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@1.0.1","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"cc6d2f65bf3293831a2b014860fc001db6295a6d","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-1.0.1.tgz","fileCount":7,"integrity":"sha512-Av0UDCUCrPKhJur7mrGrbA0o1Oc0JA61UgPGSZOgYrtd0f9Rfxny2NQWhcyIjFYJOKUz0wLl992HSZXv3kkPDg==","signatures":[{"sig":"MEQCIB5q/GlW21sjtF3to/CxJ65qr1SNhrEpaD5wOBBW8csoAiAg/qO3tdMO+6X1BOhnfN5OkywLerZdXhhZSPO4K+OcFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77353},"main":"src/index.js","type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.js"},"gitHead":"89f9385c5ff88606f128111a3f65e61696f5ba29","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/**/*.test.js","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","bench:base":"node ./benchmark/run-bench.js base all","bench:list":"node ./benchmark/run-bench.js --list-tests","bench:post":"node ./benchmark/run-bench.js post-base all","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/**/*.test.js","prepublishOnly":"npm run fix && npm test","bench:base:profile":"node ./benchmark/run-bench.js base all --profile","bench:post:profile":"node ./benchmark/run-bench.js post-base all --profile"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.4","description":"Zero-dependency high-performance HTTP/WebSocket server built on uWebSockets.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.6.2","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_1.0.1_1768299408819_0.646592057871554","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@swarmmachina/swm-core","version":"1.1.0","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@1.1.0","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"b1ac7181b677641259264e77022c2343980836ca","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-1.1.0.tgz","fileCount":8,"integrity":"sha512-t3Ct7jNvj7fhkXqAT9U1inkOGNRoWqzmvRpHb8NWOr7ePOCMFqQ7jz7NnsgM7CwuNCDWB81e7RZl35Fe3ALvoA==","signatures":[{"sig":"MEUCIQDAez/uR8xVHhDnrTCXCUIi4ghTXyG5ZhR6UpFGzzPC9QIgA5BvdkO/XsUvCAydhLvdKyLn5Qpiub6vPJnl07ZpsGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80315},"main":"src/index.js","type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.js"},"gitHead":"add6bd38569257def9876ec76d3cc5b61025e689","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/**/*.test.js","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","bench:base":"node ./benchmark/run-bench.js base all","bench:list":"node ./benchmark/run-bench.js --list-tests","bench:post":"node ./benchmark/run-bench.js post-base all","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/**/*.test.js","prepublishOnly":"npm run fix && npm test","bench:base:core":"node ./benchmark/run-bench.js base","bench:post:core":"node ./benchmark/run-bench.js base","bench:base:profile":"node ./benchmark/run-bench.js base all --profile","bench:post:profile":"node ./benchmark/run-bench.js post-base all --profile"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.4","description":"Zero-dependency high-performance HTTP/WebSocket server built on uWebSockets.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.6.2","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_1.1.0_1768419202062_0.16453884606908264","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@swarmmachina/swm-core","version":"1.1.1","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@1.1.1","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"838d09c9c6bd4749bf928acd48690cc2a3ed3944","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-1.1.1.tgz","fileCount":10,"integrity":"sha512-0glPEkJwv4ygC28tres1JqJs2uuI+QCJeHTMvBeIuLFnkFSlRvqtOnG0u4mDCmyQerMN/MTfiyzf7OQJ0utZhA==","signatures":[{"sig":"MEUCIQDYAapSVEeC2VpSaXgiLU1CwFFuS2AtNqDSq7QTcSWQdgIgQsbnDwfgTd7EMbv5auilfPblq9LgJ531zMuONfsL/aQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87498},"main":"src/index.js","type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.js"},"gitHead":"2c503355d11995c535ae7dc15502a91875321156","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","test:e2e":"node --test tests/e2e/**/*.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","prepublishOnly":"npm run fix && npm test"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.4","description":"Zero-dependency high-performance HTTP/WebSocket server built on uWebSockets.js","directories":{},"_nodeVersion":"22.21.1","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.6.2","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_1.1.1_1768753089185_0.22991087612515781","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@swarmmachina/swm-core","version":"1.1.2","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@1.1.2","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"7718dec71dd853ec4f546cefd1b4b356e4985941","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-1.1.2.tgz","fileCount":10,"integrity":"sha512-PbRM3r2JeZe1CSQ0Z6bdqEbkA51hEK1HXET0C91RCOBYPaCWILoLQGzHL4aoxAWXab3qGL0FCLE91KB6o7nDNw==","signatures":[{"sig":"MEQCIHehNX3R1bR2oBy/6Uf5uUPNBgs/lqsMUKa7FE5C1QkVAiAdPm32JF7DagYzyTRq/fTv/9BA2u9PWMuWeAJFbgy/ew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87497},"main":"src/index.js","type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.js"},"gitHead":"2c9cd6d26d84c1d0da903d97595f84f8c0d1ee4c","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","test:e2e":"node --test tests/e2e/**/*.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","prepublishOnly":"npm run fix && npm test"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.4","description":"Zero-dependency high-performance HTTP/WebSocket server built on uWebSockets.js","directories":{},"_nodeVersion":"22.22.0","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.6.2","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_1.1.2_1769372118525_0.8916419601634797","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@swarmmachina/swm-core","version":"1.1.3","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@1.1.3","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"143964ae8346c10e2a2636b52f9f2f0975dd43f8","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-1.1.3.tgz","fileCount":10,"integrity":"sha512-7uhsu5B9CBOMf815YT/8kgpWLcHzdzPfgL9R8IZRLzVeUs0Uf9zwEilonOM3RAWYC9wqRQZ6W9vcOuXV+kiSWg==","signatures":[{"sig":"MEYCIQCM6whUbmF/zz/SlJRNihm3EPpvyT+iWs6KK5f43HR0mQIhAOnpuohh8RuE0n16qi9j8OgqTMIuyvUlEHzYf+AnKNrl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89860},"main":"src/index.js","type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.js"},"gitHead":"60276c039c668ef537f757b51ff79b911495adf9","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","test:e2e":"node --test tests/e2e/**/*.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","prepublishOnly":"npm run fix && npm test"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.4","description":"Zero-dependency high-performance HTTP/WebSocket server built on uWebSockets.js","directories":{},"_nodeVersion":"22.22.0","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.6.2","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_1.1.3_1771250607631_0.6952072780536485","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@swarmmachina/swm-core","version":"1.1.4","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@1.1.4","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"d112e717cdad48f39b7f4938f49b83541a66c7ad","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-1.1.4.tgz","fileCount":10,"integrity":"sha512-L5rCa/HY1td4LaKQT9J+fwXlfQuQixYsUukX1fGgnfZYrOxXSL2C4f5F0KUIzD7dkKjDHYc8oypziMVS/uVuEQ==","signatures":[{"sig":"MEYCIQC3G7O4PhSC0qQ9rJ1O8QEFnfaGxcxdIDCZK+1SJN1OuAIhAObfZ26QZLJTZqrmCuWkKq0vrcKy13XC7xrc7tOasLVk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91029},"main":"src/index.js","type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.js"},"gitHead":"d8ef95ecdf34e6d0042ae1af5b2c189fd2cd6c69","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","test:e2e":"node --test tests/e2e/**/*.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","prepublishOnly":"npm run fix && npm test"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.4","description":"Zero-dependency high-performance HTTP/WebSocket server built on uWebSockets.js","directories":{},"_nodeVersion":"22.22.0","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.6.2","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_1.1.4_1771254900514_0.589929858673055","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@swarmmachina/swm-core","version":"1.1.5","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@1.1.5","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"4f14b8144769f09a3fef3ee07c40dc5cbd728a5d","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-1.1.5.tgz","fileCount":10,"integrity":"sha512-Vdl+dbdeC26hNJsu4RZjxicF1it92rO3ufz8T4fv3KRJwa2JS3zmTBWATuiMr4SCNR2wdy/UnfymV3+8rFFIDA==","signatures":[{"sig":"MEYCIQDRyN99g3g3yv/29ZgUqp5f3RWyrBTdzvFYlYqPaQEUqwIhAMRsAh5CS7ZM8WSFoDWSnpmdwEd1qED7R7uWLHYEl+Bk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91661},"main":"src/index.js","type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.js"},"gitHead":"bde3e10f60ad338abbbdd71183dbfeb5060a893d","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","test:e2e":"node --test tests/e2e/**/*.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","prepublishOnly":"npm run fix && npm test"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.4","description":"Zero-dependency high-performance HTTP/WebSocket server built on uWebSockets.js","directories":{},"_nodeVersion":"22.22.0","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.6.2","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_1.1.5_1771436402138_0.6376049796287231","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@swarmmachina/swm-core","version":"1.2.0","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@1.2.0","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"83ac155547402fa23ca84423e2d8ff4fe6e0d02d","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-1.2.0.tgz","fileCount":10,"integrity":"sha512-dQsFv7ensIq+Sav20gc3e0eLHT9VMl1zNAbjgKux1l4JvEB2hXRsqTs/iopjS6J8YYR3e+CC2IPt/uxa2hIbNw==","signatures":[{"sig":"MEUCIFR9cCz7K2nAsw1RQNo3c/BS8LYHomx9W2ex+k+Ew+K3AiEAtxv7Tzv1CJx7M5ZB3U86S/72ZvJ9J7VSnqkveAci658=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97248},"main":"src/index.js","type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.js"},"gitHead":"601dc679ca5b26856070251bc3f06d14701db042","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","test:e2e":"node --test tests/e2e/**/*.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","prepublishOnly":"npm run fix && npm test","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.7","description":"Zero-dependency high-performance HTTP/WebSocket server built on uWebSockets.js","directories":{},"_nodeVersion":"22.22.2","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.56.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.3","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.6.2","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_1.2.0_1775585782813_0.3362988149949293","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@swarmmachina/swm-core","version":"1.3.0","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@1.3.0","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"cec0c123472094675d16747a16a3980f43314345","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-1.3.0.tgz","fileCount":13,"integrity":"sha512-C6Aq++kgCjvvnctYrMvvTd1A25Kl9bBlC4JGqnKaIWKLJmGnJ2/qtU35wupBoq1338ZXkwpF8lXqeZzzVyu/dQ==","signatures":[{"sig":"MEQCICWRYmT/SSiBeemFLAY8P7YqzvsHw1cS8y+Px2Z+G/uVAiA2uNGjZrlqYx1s6Rcsd4mpJZNfDz8a9AOyjZBF8kL4hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116453},"main":"src/index.js","type":"module","types":"./src/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"}},"gitHead":"c6d4c2d024ac0a0ca034624fd45531b7f3921c4a","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","prepublishOnly":"npm run fix && npm test","profile:compare":"node ./benchmark/compare-ci.js","bench:prehandler":"node ./benchmark/prehandler-bench.js","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.8","description":"Zero-dependency high-performance HTTP/WebSocket server built on uWebSockets.js","directories":{},"_nodeVersion":"22.23.0","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.8.5","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.3"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_1.3.0_1782585868980_0.7003730454107291","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@swarmmachina/swm-core","version":"2.0.0","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@2.0.0","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"fa7ad0a568899887c9664d95f91dfbde79a29981","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-2.0.0.tgz","fileCount":23,"integrity":"sha512-Sj/A+ED6pMY8a1flAbjwsSHPdE7B10+RlaHWn9p++uJ1uX8VbXlxaZ2ov6H9QemxKuj/cN6ZM0X1hczv7rPvWA==","signatures":[{"sig":"MEYCIQC65ZPOmnNRkKKq8xMW1ifVhNPPb8vRTyx7E/aAcQ4KwAIhAIq88qKvvfz6UXwgprMzZ6IzQa5AOwHvPc3JzHcydrIe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190572},"main":"src/index.js","type":"module","types":"./src/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"}},"gitHead":"5780a37077db62af025febfeffc7be1a04920138","scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","prepublishOnly":"npm run fix && npm test","profile:compare":"node ./benchmark/compare-ci.js","bench:prehandler":"node ./benchmark/prehandler-bench.js","test:e2e:ws:node":"SWM_BACKEND=node node --test tests/e2e/ws/*.test.js","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","test:e2e:http:node":"SWM_BACKEND=node node --test tests/e2e/http/*.test.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.8","description":"High-performance HTTP/WebSocket server built on uWebSockets.js with an opt-in node:http backend","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.67.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.8.5","autocannon":"^8.0.0","@swarmmachina/standards":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_2.0.0_1783715132695_0.8437689569823785","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@swarmmachina/swm-core","version":"2.0.1","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@2.0.1","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"76b59a30d86d9c6386911c860996df9112a73522","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-2.0.1.tgz","fileCount":23,"integrity":"sha512-0bzLzFsSXarCyDbduXHoA/9fcaecHNwtjdIhjkVVJUUaCahGxynTD3oiHaU+Qej3vra+VpqruZ/Fn1ze4Cxp7w==","signatures":[{"sig":"MEUCIC9CdZaXcURN6b7eck3N1VhUQCljsHtpauMgvsXtb5rZAiEAu5xAtE1hi5Og3hc8WqP2oPs5I6GriABwAnMvrYEP9Iw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197266},"main":"src/index.js","type":"module","types":"./src/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"}},"gitHead":"e0681b7dbf256839fb9f9c2662d197fe71028edc","imports":{"#uws-binding":{"default":"uwebsockets.js","swm-uws-candidate":"@swarmmachina/swm-uws"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","prepublishOnly":"npm run fix && npm test","test:leak:node":"SWM_BACKEND=node node --expose-gc --test tests/leak/*.leak.test.js","profile:compare":"node ./benchmark/compare-ci.js","bench:prehandler":"node ./benchmark/prehandler-bench.js","test:e2e:ws:node":"SWM_BACKEND=node node --test tests/e2e/ws/*.test.js","test:e2e:bindings":"npm run test:e2e && npm run test:e2e:swm-uws-candidate","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","test:e2e:http:node":"SWM_BACKEND=node node --test tests/e2e/http/*.test.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:swm-uws-candidate":"node --conditions=swm-uws-candidate --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.8","description":"High-performance HTTP/WebSocket server built on uWebSockets.js with an opt-in node:http backend","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.8.5","autocannon":"^8.0.0","@swarmmachina/swm-uws":"0.4.0","@swarmmachina/standards":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_2.0.1_1783859139874_0.5361837168935546","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@swarmmachina/swm-core","version":"2.0.2","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@2.0.2","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"0ca48263bfc6e6f203210acaea905e425b0937dc","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-2.0.2.tgz","fileCount":23,"integrity":"sha512-ts4GcU65upf75nT3ANwhrN9Jy+YKRj5xTlzBCKyVVf5HO0D0l4gpQGooDTj98YV27w3ttQCu4T0NNPUaOEi0Ag==","signatures":[{"sig":"MEYCIQCSrPx8jgUoba49P3QoDZyOM6c8MhS2DVq3Y6TDKqFtAwIhAPYGTdCukkeEkSyzyPagfPRm3rHdlkvbaVfXettWPHoh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197761},"main":"src/index.js","type":"module","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"}},"gitHead":"ef6cc2294b27f4c8f4859d160f5b2733017751b7","imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run check && npm test && npm publish","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","prepublishOnly":"npm run check && npm test","test:leak:node":"SWM_BACKEND=node node --expose-gc --test tests/leak/*.leak.test.js","profile:compare":"node ./benchmark/compare-ci.js","bench:prehandler":"node ./benchmark/prehandler-bench.js","test:e2e:ws:node":"SWM_BACKEND=node node --test tests/e2e/ws/*.test.js","test:e2e:bindings":"npm run test:e2e && npm run test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","test:e2e:http:node":"SWM_BACKEND=node node --test tests/e2e/http/*.test.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.8","description":"High-performance HTTP/WebSocket server built on swm-uws with an opt-in node:http backend","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@swarmmachina/swm-uws":"0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.8.5","autocannon":"^8.0.0","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/standards":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_2.0.2_1784231539394_0.6113887664472348","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@swarmmachina/swm-core","version":"2.0.3","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@2.0.3","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"b139e581376a1b81af10923d60a1d443cfed29c3","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-2.0.3.tgz","fileCount":23,"integrity":"sha512-ZLxRp8dfiTV/U9E4xAIVW5VytNbMCxdiw/UnYDekpaDRrlWnmCmhVAa2TWNL/3E85zdfBweVBfUYfYuuYDoqLg==","signatures":[{"sig":"MEQCIHMpBaFAjfsy27Yx5VuiCzjiPV0v5bbPNushYNjmPqw9AiADvr4+10D3rgQ5yrw8XDZqQI4p1FZvfCtgURiebnp2rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200618},"main":"src/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-2.0.3.tgz","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run release:gate && npm run release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","release:gate":"npm run check && npm test && npm run test:e2e && npm run test:e2e:http:node && npm run test:e2e:ws:node && npm run test:e2e:uwebsockets-reference","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","prepublishOnly":"npm run release:gate","test:leak:node":"SWM_BACKEND=node node --expose-gc --test tests/leak/*.leak.test.js","profile:compare":"node ./benchmark/compare-ci.js","bench:prehandler":"node ./benchmark/prehandler-bench.js","release:artifact":"node scripts/build-release-artifact.js","test:e2e:ws:node":"SWM_BACKEND=node node --test tests/e2e/ws/*.test.js","test:e2e:bindings":"npm run test:e2e && npm run test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","release:verify-tag":"node scripts/verify-release.js","test:e2e:http:node":"SWM_BACKEND=node node --test tests/e2e/http/*.test.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-2.0.3.tgz","_integrity":"sha512-ZLxRp8dfiTV/U9E4xAIVW5VytNbMCxdiw/UnYDekpaDRrlWnmCmhVAa2TWNL/3E85zdfBweVBfUYfYuuYDoqLg==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.8","description":"High-performance HTTP/WebSocket server built on swm-uws with an opt-in node:http backend","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@swarmmachina/swm-uws":"0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.8.5","autocannon":"^8.0.0","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/standards":"^1.0.4"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_2.0.3_1784383723146_0.34239457553291097","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@swarmmachina/swm-core","version":"3.0.1","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@3.0.1","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"a97a35007036549f5deb964081009b966e584944","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-3.0.1.tgz","fileCount":22,"integrity":"sha512-SRONXbUmO7jdFp1GE/Fg30ovV9Rxas1kYTawjmVsjRzQXgQ4YKzcgotETIIwIoT0DeQ+8UP5wYXYY/QC80okcA==","signatures":[{"sig":"MEYCIQD/RwKwObQumTtgNtdIsiJ5wi7UEGlJIawlg7UYy0kcYAIhAKALU9qS7i+G1iMQ9kyYhGFDiIJ4CExCxZrHmNJCtXxa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182278},"main":"src/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-3.0.1.tgz","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","default":"./src/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run release:gate && npm run release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","bench:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:before":"node ./benchmark/before-bench.js","release:gate":"npm run check && npm test && npm run test:e2e && npm run test:e2e:uwebsockets-reference","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","prepublishOnly":"npm run release:gate","profile:compare":"node ./benchmark/compare-ci.js","bench:core:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","release:artifact":"node scripts/build-release-artifact.js","bench:body-safety":"node ./benchmark/body-safety-bench.js","test:e2e:bindings":"npm run test:e2e && npm run test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","release:verify-tag":"node scripts/verify-release.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","bench:body-prefetch":"node ./benchmark/body-prefetch-bench.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-3.0.1.tgz","_integrity":"sha512-SRONXbUmO7jdFp1GE/Fg30ovV9Rxas1kYTawjmVsjRzQXgQ4YKzcgotETIIwIoT0DeQ+8UP5wYXYY/QC80okcA==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.8","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@swarmmachina/swm-uws":"0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.8.5","autocannon":"^8.0.0","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/standards":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_3.0.1_1784458017466_0.778494121662844","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@swarmmachina/swm-core","version":"3.0.2","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@3.0.2","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"f18282bf31fa41be3a1f1b1ac43bd24627026670","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-3.0.2.tgz","fileCount":23,"integrity":"sha512-pBUxZjQCZOMLp9Y6ziGrcBH9BPVRjLIyQAg4DXTmEQlGFzMHHxHCWgBhtJoGEKEOj8Iff0FaHASFaJW9ON7l5w==","signatures":[{"sig":"MEYCIQC1/zLXlAzyuTYPyMf2b7fTqi+oFcKKOeLG2Zagbe+BvQIhANYTR5yNdkdw/C1JzoJkvTXn5fhlHiAbHjRKwf2IIfiJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185475},"main":"src/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-3.0.2.tgz","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"npm run release:gate && npm run release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:types":"node scripts/test-packed-types.js","bench:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:before":"node ./benchmark/before-bench.js","release:gate":"npm run check && npm test && npm run test:e2e:bindings && npm run test:types && npm run test:package","test:package":"node scripts/test-package.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","prepublishOnly":"npm run release:gate","profile:compare":"node ./benchmark/compare-ci.js","bench:core:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","release:artifact":"node scripts/build-release-artifact.js","bench:body-safety":"node ./benchmark/body-safety-bench.js","test:e2e:bindings":"npm run test:e2e && npm run test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","release:verify-tag":"node scripts/verify-release.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","bench:body-prefetch":"node ./benchmark/body-prefetch-bench.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-3.0.2.tgz","_integrity":"sha512-pBUxZjQCZOMLp9Y6ziGrcBH9BPVRjLIyQAg4DXTmEQlGFzMHHxHCWgBhtJoGEKEOj8Iff0FaHASFaJW9ON7l5w==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"10.9.8","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"22.23.1","dependencies":{"@swarmmachina/swm-uws":"0.5.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","express":"^5.2.1","fastify":"^5.8.5","autocannon":"^8.0.0","typescript":"5.9.3","@types/node":"24.10.1","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/standards":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_3.0.2_1784662934372_0.8505671821290133","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@swarmmachina/swm-core","version":"4.0.2","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@4.0.2","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"005f1a68635bc1c2d7f22c27e0cb150a56584544","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-4.0.2.tgz","fileCount":23,"integrity":"sha512-N8isTKUtQSCvH9gET7lEUhn+d/hCN2MVj1EZyfGTFgCRIC1O+iKGiW2OzzWmgkUSnkqlWl6JxRnOCrUuZZ6DdQ==","signatures":[{"sig":"MEYCIQDcg1evXJ5oIHU1RDf+bE20qxeBypaFiffkAC3zLjMJ1QIhALsQJ5i3J8mAvjndm9ymVANUlR4g3wSI21knjwOxVfZx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@4.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188554},"main":"src/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.0.2.tgz","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"pnpm release:gate && pnpm release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:types":"node scripts/test-packed-types.js","bench:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:before":"node ./benchmark/before-bench.js","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:types && pnpm test:package","test:package":"node scripts/test-package.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","profile:compare":"node ./benchmark/compare-ci.js","bench:core:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","release:artifact":"node scripts/build-release-artifact.js","bench:body-safety":"node ./benchmark/body-safety-bench.js","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","release:verify-tag":"node scripts/verify-release.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","bench:body-prefetch":"node ./benchmark/body-prefetch-bench.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.0.2.tgz","_integrity":"sha512-N8isTKUtQSCvH9gET7lEUhn+d/hCN2MVj1EZyfGTFgCRIC1O+iKGiW2OzzWmgkUSnkqlWl6JxRnOCrUuZZ6DdQ==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.16.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@swarmmachina/swm-uws":"0.5.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","eslint":"10.7.0","express":"^5.2.1","fastify":"^5.8.5","prettier":"3.8.3","autocannon":"^8.0.0","typescript":"5.9.3","@types/node":"24.10.1","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/standards":"^1.1.2","hdr-histogram-percentiles-obj":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_4.0.2_1784753097027_0.21207064879061188","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@swarmmachina/swm-core","version":"4.1.0","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@4.1.0","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"6dd799eec916cb151124d55270fd4d3f23371779","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-4.1.0.tgz","fileCount":23,"integrity":"sha512-dTbICdzY2FtQc5kzBg4g1x4DX/ONaSK91wRSMbzVGihKzV4tMbRYCLbEq0f/W5HkflM5ZqYL9492Gz0JMsNmVw==","signatures":[{"sig":"MEUCIA7tnhuDCDWYwHRGvvDuSv7NFvLPhs1nVGtYcfkGtwH2AiEA1EU7IkUkEXlM9wBhD4wqpNwwlhRHQoGw1/+jYB9I/aI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225285},"main":"src/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.1.0.tgz","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"pnpm release:gate && pnpm release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:types":"node scripts/test-packed-types.js","bench:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:before":"node ./benchmark/before-bench.js","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:types && pnpm test:package","test:package":"node scripts/test-package.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","profile:compare":"node ./benchmark/compare-ci.js","bench:core:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","release:artifact":"node scripts/build-release-artifact.js","bench:body-safety":"node ./benchmark/body-safety-bench.js","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","release:verify-tag":"node scripts/verify-release.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","bench:body-prefetch":"node ./benchmark/body-prefetch-bench.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.1.0.tgz","_integrity":"sha512-dTbICdzY2FtQc5kzBg4g1x4DX/ONaSK91wRSMbzVGihKzV4tMbRYCLbEq0f/W5HkflM5ZqYL9492Gz0JMsNmVw==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.16.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@swarmmachina/swm-uws":"0.5.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","eslint":"10.7.0","express":"^5.2.1","fastify":"^5.8.5","prettier":"3.8.3","typescript":"5.9.3","@types/node":"24.10.1","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/benchkit":"0.2.0","@swarmmachina/standards":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_4.1.0_1784929411296_0.08561867737983109","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"@swarmmachina/swm-core","version":"4.1.1","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@4.1.1","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"1aedf722b8b4e6748510bb03d89b99e5b8e0f5ef","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-4.1.1.tgz","fileCount":23,"integrity":"sha512-taBF94dryMeq9osD+ol2cRdBtmdPyPPIdUaTRM8sAfSxBCBAdEqvlcNAjqdtm2iVNpUIZm33Nc0ifJcrpu5Tpg==","signatures":[{"sig":"MEUCIQCB5NGlcjftHVnGmqae+bj/VXIaVGjm7WOhORt9UnNlTQIgS038lXYbXKXr5a6boE1Sq6LiOlEZiKhqOatzkT3wq0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@4.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225316},"main":"src/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.1.1.tgz","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"pnpm release:gate && pnpm release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:types":"node scripts/test-packed-types.js","bench:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:before":"node ./benchmark/before-bench.js","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:types && pnpm test:package","test:package":"node scripts/test-package.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","profile:compare":"node ./benchmark/compare-ci.js","bench:core:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","release:artifact":"node scripts/build-release-artifact.js","bench:body-safety":"node ./benchmark/body-safety-bench.js","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","release:verify-tag":"node scripts/verify-release.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","bench:body-prefetch":"node ./benchmark/body-prefetch-bench.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.1.1.tgz","_integrity":"sha512-taBF94dryMeq9osD+ol2cRdBtmdPyPPIdUaTRM8sAfSxBCBAdEqvlcNAjqdtm2iVNpUIZm33Nc0ifJcrpu5Tpg==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.16.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@swarmmachina/swm-uws":"0.5.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","eslint":"10.7.0","express":"^5.2.1","fastify":"^5.8.5","prettier":"3.8.3","typescript":"5.9.3","@types/node":"24.10.1","hyper-express":"^7.0.2","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/benchkit":"0.2.0","@swarmmachina/standards":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_4.1.1_1785004973893_0.8552092261356379","host":"s3://npm-registry-packages-npm-production"}},"4.1.2":{"name":"@swarmmachina/swm-core","version":"4.1.2","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@4.1.2","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"7f5f941f8bef07ed2717c0134cf9f5b2dc78de07","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-4.1.2.tgz","fileCount":23,"integrity":"sha512-MqgnCAZkRY/UJ+/3bh5n6/eptSOI9Kgh6HB6OG+w/M9H0AbJ8qXp4iPKHyHuSn/HAQyfLvY0GD40evZXwI8ZjQ==","signatures":[{"sig":"MEYCIQCUQpOIg4jQ57PehX3eV4qNTR4aqHo2riOnoIam82DNlgIhAMOyGAMave28zGXFimUOna6WuDIIggfnsCOBEDqv3PLK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@4.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225509},"main":"src/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.1.2.tgz","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"pnpm release:gate && pnpm release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"node ./benchmark/ws-bench.js --fw core,ws --runs 1 --warmup 2 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:types":"node scripts/test-packed-types.js","bench:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:before":"node ./benchmark/before-bench.js","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:types && pnpm test:package","test:package":"node scripts/test-package.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","profile:compare":"node ./benchmark/compare-ci.js","bench:core:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","release:artifact":"node scripts/build-release-artifact.js","bench:body-safety":"node ./benchmark/body-safety-bench.js","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","release:verify-tag":"node scripts/verify-release.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","bench:body-prefetch":"node ./benchmark/body-prefetch-bench.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.1.2.tgz","_integrity":"sha512-MqgnCAZkRY/UJ+/3bh5n6/eptSOI9Kgh6HB6OG+w/M9H0AbJ8qXp4iPKHyHuSn/HAQyfLvY0GD40evZXwI8ZjQ==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.16.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@swarmmachina/swm-uws":"0.5.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","eslint":"10.7.0","express":"^5.2.1","fastify":"^5.8.5","prettier":"3.8.3","typescript":"5.9.3","@types/node":"24.10.1","hyper-express":"^7.0.2","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/benchkit":"0.2.0","@swarmmachina/standards":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_4.1.2_1785349273056_0.38071347960435653","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@swarmmachina/swm-core","version":"4.2.0","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@4.2.0","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"a95ef3db568e2fae63472385ca0760d8a550a143","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-4.2.0.tgz","fileCount":23,"integrity":"sha512-umAVdkLRKez0kJzuCSC0ZugTfu0BsxEDkO1ad2A7DerTifvwi5ce49Exw8Vp5PWBibGTg9wjdfh9sKD7VXPx3g==","signatures":[{"sig":"MEUCIQCfejTDVjrDRffhgXGku4fzombzABh5inFxGO51slT4DwIgNe8Ui8rRhzHnPAZqbS3lLpXjIOLmD1vzZLFmHD2F8Hg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":231204},"main":"src/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.2.0.tgz","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"pnpm release:gate && pnpm release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"node ./benchmark/ws-bench.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:types":"node scripts/test-packed-types.js","bench:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:before":"node ./benchmark/before-bench.js","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:types && pnpm test:package","test:package":"node scripts/test-package.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","profile:compare":"node ./benchmark/compare-ci.js","bench:core:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload":"node ./benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:upgrade":"node ./benchmark/ws-upgrade-bench.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","release:artifact":"node scripts/build-release-artifact.js","bench:body-safety":"node ./benchmark/body-safety-bench.js","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","release:verify-tag":"node scripts/verify-release.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","bench:body-prefetch":"node ./benchmark/body-prefetch-bench.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload:measure":"node ./benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.2.0.tgz","_integrity":"sha512-umAVdkLRKez0kJzuCSC0ZugTfu0BsxEDkO1ad2A7DerTifvwi5ce49Exw8Vp5PWBibGTg9wjdfh9sKD7VXPx3g==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.16.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@swarmmachina/swm-uws":"0.5.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","eslint":"10.7.0","express":"^5.2.1","fastify":"^5.8.5","prettier":"3.8.3","typescript":"5.9.3","@types/node":"24.10.1","hyper-express":"^7.0.2","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/benchkit":"0.3.0","@swarmmachina/standards":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_4.2.0_1785705451025_0.5544424564675781","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"@swarmmachina/swm-core","version":"4.3.0","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@4.3.0","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"539f7ee5172c7ec45a6b4d034e227008612bee92","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-4.3.0.tgz","fileCount":24,"integrity":"sha512-7jTT4JnFXlaDg1sCUNGtiFttpm+QJRuiMwSsLErvyor3E0YNiRPrHxyEU4CzoCF6tvpOPKhUS6EVZWu1mI7XsA==","signatures":[{"sig":"MEYCIQDVghxKHYagnOOq/diWleY/3GaAjhKV3/UrA2YRCko8DQIhANIZtqrx24pN1qcT7xeB3M2kofb8OmSgM39LIvst4/3f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@4.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":257731},"main":"src/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.3.0.tgz","types":"./src/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./src/index.d.ts","import":"./src/index.js","default":"./src/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.vue --fix","soak":"node --expose-gc tests/soak/soak.js","test":"node --import ./tests/helpers/register-loader.js --test tests/unit/*.test.js","bench":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","check":"prettier . --check && eslint . --ext .js,.vue","release":"pnpm release:gate && pnpm release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"node ./benchmark/ws-bench.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","test:e2e":"node --test tests/e2e/**/*.test.js","test:leak":"node --expose-gc --test tests/leak/*.leak.test.js","bench:core":"node ./benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:ci":"node ./benchmark/regression-ci.js","test:types":"node scripts/test-packed-types.js","bench:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"node --test tests/e2e/ws/*.test.js","bench:before":"node ./benchmark/before-bench.js","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:e2e:binding-candidate && pnpm test:types && pnpm test:package","test:package":"node scripts/test-package.js","bench:headers":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:autobahn":"node ./tests/autobahn/run.js","test:coverage":"node --import ./tests/helpers/register-loader.js --test --experimental-test-coverage tests/unit/*.test.js","test:e2e:http":"node --test tests/e2e/http/*.test.js","bench:bindings":"node ./benchmark/binding-compare.js","profile:compare":"node ./benchmark/compare-ci.js","bench:core:async":"node ./benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload":"node ./benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:upgrade":"node ./benchmark/ws-upgrade-bench.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","release:artifact":"node scripts/build-release-artifact.js","bench:body-safety":"node ./benchmark/body-safety-bench.js","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"node ./benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"node ./benchmark/compare-ci.js --suite ws","release:verify-tag":"node scripts/verify-release.js","bench:bindings:deep":"node ./benchmark/binding-deep-compare.js","bench:body-prefetch":"node ./benchmark/body-prefetch-bench.js","bench:response-batch":"node ./benchmark/response-batch-bench.js","deps:update:bindings":"node scripts/update-bindings.js","profile:compare:http":"node ./benchmark/compare-ci.js --suite http","bench:headers:prepared":"node ./benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload:measure":"node ./benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","bench:response-batch:gate":"node ./benchmark/response-batch-bench.js --check","test:e2e:binding-candidate":"node scripts/test-runtime-binding.js","test:e2e:uwebsockets-reference":"node --conditions=uwebsockets-reference --test --test-skip-pattern=\"prefetch|req access after async boundary|async ws upgrade|public readable API\" tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-4.3.0.tgz","_integrity":"sha512-7jTT4JnFXlaDg1sCUNGtiFttpm+QJRuiMwSsLErvyor3E0YNiRPrHxyEU4CzoCF6tvpOPKhUS6EVZWu1mI7XsA==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.16.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@swarmmachina/swm-uws":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.0","micro":"^10.0.1","eslint":"10.7.0","express":"^5.2.1","fastify":"^5.8.5","prettier":"3.8.3","typescript":"5.9.3","@types/node":"24.10.1","hyper-express":"^7.0.2","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","@swarmmachina/benchkit":"0.3.0","@swarmmachina/standards":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_4.3.0_1785928466992_0.25766923719755597","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@swarmmachina/swm-core","version":"5.0.0","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@5.0.0","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"3d69144cec9aeb15c8d19b0a6121eab0dde7a9ba","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-5.0.0.tgz","fileCount":25,"integrity":"sha512-Jjlg6fWI8y9fweNmmsu8BlKu35AgQNT7NugeVYxL4VXyf58tmtFKuecuXpOIsm+yqTdNOUicDx8eKkU+NsXGhg==","signatures":[{"sig":"MEYCIQDpOKu3HfgB2zZrKSJ1BRjiTpF2VCpxydwq6EF/zBdJTAIhAIa1cilhXz0SRXaP4ip7wvVrbzFYJJcnyhX67p7go0Vb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":263080},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.ts,.vue --fix","soak":"pnpm build:test && node --expose-gc .test-dist/tests/soak/soak.js","test":"pnpm build:test && node --conditions=swm-core-test --test .test-dist/tests/unit/*.test.js","bench":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build":"pnpm build:scripts && node .scripts-dist/clean-dist.js dist && tsc --project tsconfig.build.json && node .scripts-dist/copy-public-types.js","check":"prettier . --check && eslint . --ext .js,.ts,.vue && tsc --project tsconfig.json && tsc --project tsconfig.test.json && tsc --project tsconfig.benchmark.json && tsc --project tsconfig.scripts.json","release":"pnpm release:gate && pnpm release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-bench.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","test:e2e":"pnpm build:test && node --test .test-dist/tests/e2e/**/*.test.js","test:leak":"pnpm build:test && node --expose-gc --test .test-dist/tests/leak/*.leak.test.js","bench:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","build:test":"pnpm build && node .scripts-dist/clean-dist.js .test-dist && tsc --project tsconfig.test-build.json && node .scripts-dist/copy-test-artifacts.js","profile:ci":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression-ci.js","test:types":"pnpm build && node .scripts-dist/test-packed-types.js","bench:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"pnpm build:test && node --test .test-dist/tests/e2e/ws/*.test.js","bench:before":"pnpm build:benchmark && node .benchmark-dist/benchmark/before-bench.js","bench:stream":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test stream --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 1 --sample-ms 250 --v8prof true","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:e2e:binding-candidate && pnpm test:types && pnpm test:package","test:package":"pnpm build && node .scripts-dist/test-package.js","bench:headers":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build:scripts":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('.scripts-dist', { recursive: true, force: true })\" && tsc --project tsconfig.scripts-build.json","test:autobahn":"pnpm build:test && node .test-dist/tests/autobahn/run.js","test:coverage":"pnpm build:test && node --conditions=swm-core-test --test --experimental-test-coverage .test-dist/tests/unit/*.test.js","test:e2e:http":"pnpm build:test && node --test .test-dist/tests/e2e/http/*.test.js","bench:bindings":"pnpm build:benchmark && node .benchmark-dist/benchmark/binding-compare.js","build:benchmark":"pnpm build && node .scripts-dist/clean-dist.js .benchmark-dist && tsc --project tsconfig.benchmark-build.json && node .scripts-dist/copy-benchmark-artifacts.js","profile:compare":"pnpm build:benchmark && node .benchmark-dist/benchmark/compare-ci.js","bench:core:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --fw core-set-header-append,core-set-header-array --runs 7 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --order balanced --json-out benchmark/profiles/set-header/load.json","bench:static:hit":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test static-cache-hit --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true","bench:ws:payload":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:upgrade":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-upgrade-bench.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","release:artifact":"pnpm build && node .scripts-dist/build-release-artifact.js","bench:body-safety":"pnpm build:benchmark && node .benchmark-dist/benchmark/body-safety-bench.js","bench:static:miss":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test static-cache-miss --fw core --runs 3 --warmup 2 --duration 6 --connections 25 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/compare-ci.js --suite ws","profile:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --fw core-set-header-append --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-append.json && node .benchmark-dist/benchmark/bench.js --test headers --fw core-set-header-array --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-array.json","release:verify-tag":"pnpm build:scripts && node .scripts-dist/verify-release.js","bench:bindings:deep":"pnpm build:benchmark && node .benchmark-dist/benchmark/binding-deep-compare.js","bench:body-prefetch":"pnpm build:benchmark && node .benchmark-dist/benchmark/body-prefetch-bench.js","bench:response-batch":"pnpm build:benchmark && node .benchmark-dist/benchmark/response-batch-bench.js","deps:update:bindings":"pnpm build:scripts && node .scripts-dist/update-bindings.js","profile:compare:http":"pnpm build:benchmark && node .benchmark-dist/benchmark/compare-ci.js --suite http","bench:headers:prepared":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload:measure":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","bench:response-batch:gate":"pnpm build:benchmark && node .benchmark-dist/benchmark/response-batch-bench.js --check","bench:stream:backpressure":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test stream-backpressure --fw core --runs 3 --warmup 2 --duration 6 --connections 10 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:binding-candidate":"pnpm build:test && node .scripts-dist/test-runtime-binding.js","test:e2e:uwebsockets-reference":"pnpm build:test && node --conditions=uwebsockets-reference --test --test-skip-pattern=\"prefetch|req access after async boundary|async ws upgrade|public readable API\" .test-dist/tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.0.0.tgz","_integrity":"sha512-Jjlg6fWI8y9fweNmmsu8BlKu35AgQNT7NugeVYxL4VXyf58tmtFKuecuXpOIsm+yqTdNOUicDx8eKkU+NsXGhg==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.16.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@swarmmachina/swm-uws":"0.6.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.2","micro":"^10.0.1","eslint":"10.8.0","express":"^5.2.1","fastify":"^5.11.2","prettier":"3.9.6","@types/ws":"^8.18.1","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"24.13.3","hyper-express":"^7.0.2","@types/express":"^5.0.6","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","typescript-eslint":"8.66.0","@typescript/native":"npm:typescript@7.0.2","@swarmmachina/benchkit":"0.3.0","@swarmmachina/standards":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_5.0.0_1786311866601_0.7798939169896697","host":"s3://npm-registry-packages-npm-production"}},"5.0.2":{"name":"@swarmmachina/swm-core","version":"5.0.2","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@5.0.2","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"b2f278117fd600222b2c5721aedcae18e9e0875a","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-5.0.2.tgz","fileCount":26,"integrity":"sha512-NKMuOORaZBAVgTzdGHstZmezCJvqaWZCI9bVrZhLbxMSlO2Xg21WLuBZpXUmugvAVFF9ZuFexc5hjyi9WXlAng==","signatures":[{"sig":"MEQCIHWJAa/wbUPQrc5HylACbcMxKWZiJ1MpDP2ZqGebnj8+AiAaTvoarfnR0XWNuve+ReZjDyhDm0zZfNY/opog+lefkQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@5.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":265051},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.0.2.tgz","types":"./dist/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./global":{"types":"./dist/global.d.ts"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.ts,.vue --fix","soak":"pnpm build:test && node --expose-gc .test-dist/tests/soak/soak.js","test":"pnpm build:test && node --conditions=swm-core-test --test .test-dist/tests/unit/*.test.js","bench":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build":"pnpm build:scripts && node .scripts-dist/clean-dist.js dist && tsc --project tsconfig.build.json && node .scripts-dist/copy-public-types.js","check":"prettier . --check && eslint . --ext .js,.ts,.vue && tsc --project tsconfig.json && tsc --project tsconfig.test.json && tsc --project tsconfig.benchmark.json && tsc --project tsconfig.scripts.json","release":"pnpm release:gate && pnpm release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-bench.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","test:e2e":"pnpm build:test && node --test .test-dist/tests/e2e/**/*.test.js","test:leak":"pnpm build:test && node --expose-gc --test .test-dist/tests/leak/*.leak.test.js","bench:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","build:test":"pnpm build && node .scripts-dist/clean-dist.js .test-dist && tsc --project tsconfig.test-build.json && node .scripts-dist/copy-test-artifacts.js","profile:ci":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression-ci.js","test:types":"pnpm build && node .scripts-dist/test-packed-types.js","bench:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"pnpm build:test && node --test .test-dist/tests/e2e/ws/*.test.js","bench:before":"pnpm build:benchmark && node .benchmark-dist/benchmark/before-bench.js","bench:stream":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test stream --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 1 --sample-ms 250 --v8prof true","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:e2e:binding-candidate && pnpm test:types && pnpm test:package","test:package":"pnpm build && node .scripts-dist/test-package.js","bench:headers":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build:scripts":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('.scripts-dist', { recursive: true, force: true })\" && tsc --project tsconfig.scripts-build.json","test:autobahn":"pnpm build:test && node .test-dist/tests/autobahn/run.js","test:coverage":"pnpm build:test && node --conditions=swm-core-test --test --experimental-test-coverage .test-dist/tests/unit/*.test.js","test:e2e:http":"pnpm build:test && node --test .test-dist/tests/e2e/http/*.test.js","bench:bindings":"pnpm build:benchmark && node .benchmark-dist/benchmark/binding-compare.js","build:benchmark":"pnpm build && node .scripts-dist/clean-dist.js .benchmark-dist && tsc --project tsconfig.benchmark-build.json && node .scripts-dist/copy-benchmark-artifacts.js","profile:compare":"pnpm build:benchmark && node .benchmark-dist/benchmark/compare-ci.js","bench:core:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --fw core-set-header-append,core-set-header-array --runs 7 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --order balanced --json-out benchmark/profiles/set-header/load.json","bench:static:hit":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test static-cache-hit --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true","bench:ws:payload":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:upgrade":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-upgrade-bench.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","release:artifact":"pnpm build && node .scripts-dist/build-release-artifact.js","bench:body-safety":"pnpm build:benchmark && node .benchmark-dist/benchmark/body-safety-bench.js","bench:static:miss":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test static-cache-miss --fw core --runs 3 --warmup 2 --duration 6 --connections 25 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/compare-ci.js --suite ws","profile:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --fw core-set-header-append --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-append.json && node .benchmark-dist/benchmark/bench.js --test headers --fw core-set-header-array --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-array.json","release:verify-tag":"pnpm build:scripts && node .scripts-dist/verify-release.js","bench:bindings:deep":"pnpm build:benchmark && node .benchmark-dist/benchmark/binding-deep-compare.js","bench:body-prefetch":"pnpm build:benchmark && node .benchmark-dist/benchmark/body-prefetch-bench.js","bench:response-batch":"pnpm build:benchmark && node .benchmark-dist/benchmark/response-batch-bench.js","deps:update:bindings":"pnpm build:scripts && node .scripts-dist/update-bindings.js","profile:compare:http":"pnpm build:benchmark && node .benchmark-dist/benchmark/compare-ci.js --suite http","bench:headers:prepared":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload:measure":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","bench:response-batch:gate":"pnpm build:benchmark && node .benchmark-dist/benchmark/response-batch-bench.js --check","bench:stream:backpressure":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test stream-backpressure --fw core --runs 3 --warmup 2 --duration 6 --connections 10 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:binding-candidate":"pnpm build:test && node .scripts-dist/test-runtime-binding.js","test:e2e:uwebsockets-reference":"pnpm build:test && node --conditions=uwebsockets-reference --test --test-skip-pattern=\"prefetch|req access after async boundary|async ws upgrade|public readable API\" .test-dist/tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.0.2.tgz","_integrity":"sha512-NKMuOORaZBAVgTzdGHstZmezCJvqaWZCI9bVrZhLbxMSlO2Xg21WLuBZpXUmugvAVFF9ZuFexc5hjyi9WXlAng==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.16.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@swarmmachina/swm-uws":"0.6.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.2","micro":"^10.0.1","eslint":"10.8.0","express":"^5.2.1","fastify":"^5.11.2","prettier":"3.9.6","@types/ws":"^8.18.1","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"24.13.3","hyper-express":"^7.0.2","@types/express":"^5.0.6","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","typescript-eslint":"8.66.0","@typescript/native":"npm:typescript@7.0.2","@swarmmachina/benchkit":"0.3.0","@swarmmachina/standards":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_5.0.2_1786386246246_0.3182378696218391","host":"s3://npm-registry-packages-npm-production"}},"5.0.3":{"name":"@swarmmachina/swm-core","version":"5.0.3","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@5.0.3","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"453f0d5cb12e0248386a35220e73bbcd95b2b935","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-5.0.3.tgz","fileCount":26,"integrity":"sha512-xsP8+rS7Uvv0+Y+/b/JV+/QiSxst0Zpd+Z55Oou+aBFITPdD0jHcNjQc2wBokb4VR7FtoBPQoEWwzTpKfLAkxQ==","signatures":[{"sig":"MEQCIB1f6k7mFnIBC9p5KeX+IbRIF95w7Sdg7YjQRVPgiXECAiB9CA2MEk3LU959yR1ehmXnESEz7wAgIPtGDQbHl+7EBg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@5.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":263790},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.0.3.tgz","types":"./dist/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./global":{"types":"./dist/global.d.ts"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.ts,.vue --fix","soak":"pnpm build:test && node --expose-gc .test-dist/tests/soak/soak.js","test":"pnpm build:test && node --conditions=swm-core-test --test .test-dist/tests/unit/*.test.js","bench":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build":"pnpm build:scripts && node .scripts-dist/clean-dist.js dist && tsc --project tsconfig.build.json && node .scripts-dist/copy-public-types.js","check":"prettier . --check && eslint . --ext .js,.ts,.vue && tsc --project tsconfig.json && tsc --project tsconfig.test.json && tsc --project tsconfig.benchmark.json && tsc --project tsconfig.scripts.json","release":"pnpm release:gate && pnpm release:artifact && node release-artifact/publish-release-artifact.js","bench:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-bench.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","test:e2e":"pnpm build:test && node --test .test-dist/tests/e2e/**/*.test.js","test:leak":"pnpm build:test && node --expose-gc --test .test-dist/tests/leak/*.leak.test.js","bench:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","build:test":"pnpm build && node .scripts-dist/clean-dist.js .test-dist && tsc --project tsconfig.test-build.json && node .scripts-dist/copy-test-artifacts.js","profile:ci":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression-ci.js","test:types":"pnpm build && node .scripts-dist/test-packed-types.js","bench:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"pnpm build:test && node --test .test-dist/tests/e2e/ws/*.test.js","bench:before":"pnpm build:benchmark && node .benchmark-dist/benchmark/before-bench.js","bench:stream":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test stream --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 1 --sample-ms 250 --v8prof true","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:e2e:binding-candidate && pnpm test:types && pnpm test:package","test:package":"pnpm build && node .scripts-dist/test-package.js","bench:headers":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build:scripts":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('.scripts-dist', { recursive: true, force: true })\" && tsc --project tsconfig.scripts-build.json","test:autobahn":"pnpm build:test && node .test-dist/tests/autobahn/run.js","test:coverage":"pnpm build:test && node --conditions=swm-core-test --test --experimental-test-coverage .test-dist/tests/unit/*.test.js","test:e2e:http":"pnpm build:test && node --test .test-dist/tests/e2e/http/*.test.js","bench:bindings":"pnpm build:benchmark && node .benchmark-dist/benchmark/binding-compare.js","build:benchmark":"pnpm build && node .scripts-dist/clean-dist.js .benchmark-dist && tsc --project tsconfig.benchmark-build.json && node .scripts-dist/copy-benchmark-artifacts.js","profile:compare":"pnpm build:benchmark && node .benchmark-dist/benchmark/compare-ci.js","bench:core:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --fw core-set-header-append,core-set-header-array --runs 7 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --order balanced --json-out benchmark/profiles/set-header/load.json","bench:static:hit":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test static-cache-hit --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true","bench:ws:payload":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:upgrade":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-upgrade-bench.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","release:artifact":"pnpm build && node .scripts-dist/build-release-artifact.js","bench:body-safety":"pnpm build:benchmark && node .benchmark-dist/benchmark/body-safety-bench.js","bench:static:miss":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test static-cache-miss --fw core --runs 3 --warmup 2 --duration 6 --connections 25 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/compare-ci.js --suite ws","profile:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers --fw core-set-header-append --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-append.json && node .benchmark-dist/benchmark/bench.js --test headers --fw core-set-header-array --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-array.json","release:verify-tag":"pnpm build:scripts && node .scripts-dist/verify-release.js","bench:bindings:deep":"pnpm build:benchmark && node .benchmark-dist/benchmark/binding-deep-compare.js","bench:body-prefetch":"pnpm build:benchmark && node .benchmark-dist/benchmark/body-prefetch-bench.js","bench:response-batch":"pnpm build:benchmark && node .benchmark-dist/benchmark/response-batch-bench.js","deps:update:bindings":"pnpm build:scripts && node .scripts-dist/update-bindings.js","profile:compare:http":"pnpm build:benchmark && node .benchmark-dist/benchmark/compare-ci.js --suite http","bench:headers:prepared":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload:measure":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws-payload-bench.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","bench:response-batch:gate":"pnpm build:benchmark && node .benchmark-dist/benchmark/response-batch-bench.js --check","bench:stream:backpressure":"pnpm build:benchmark && node .benchmark-dist/benchmark/bench.js --test stream-backpressure --fw core --runs 3 --warmup 2 --duration 6 --connections 10 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:binding-candidate":"pnpm build:test && node .scripts-dist/test-runtime-binding.js","test:e2e:uwebsockets-reference":"pnpm build:test && node --conditions=uwebsockets-reference --test --test-skip-pattern=\"prefetch|req access after async boundary|async ws upgrade|public readable API\" .test-dist/tests/e2e/**/*.test.js"},"_npmUser":{"name":"swm-manager","email":"karmenyuk@yandex.ru"},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.0.3.tgz","_integrity":"sha512-xsP8+rS7Uvv0+Y+/b/JV+/QiSxst0Zpd+Z55Oou+aBFITPdD0jHcNjQc2wBokb4VR7FtoBPQoEWwzTpKfLAkxQ==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.16.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@swarmmachina/swm-uws":"0.6.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.2","micro":"^10.0.1","eslint":"10.8.0","express":"^5.2.1","fastify":"^5.11.2","prettier":"3.9.6","@types/ws":"^8.18.1","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"24.13.3","hyper-express":"^7.0.2","@types/express":"^5.0.6","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","typescript-eslint":"8.66.0","@typescript/native":"npm:typescript@7.0.2","@swarmmachina/benchkit":"0.3.0","@swarmmachina/standards":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_5.0.3_1786447819745_0.45781591300985114","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@swarmmachina/swm-core","version":"5.1.0","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@5.1.0","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"460914ab3314c1dd160b81eb40128848441a5463","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-5.1.0.tgz","fileCount":35,"integrity":"sha512-7cukLK2RVVFzR7Hh/92SoBOLa/FiQY8Ne6IxY0n58/9Levw/7i6zAfjZSrkICYgn9jxCRqz7Sf25xo7Q/yThcg==","signatures":[{"sig":"MEQCIAJY3du6jBN8FYMtp+Hv6xCUUQYbmeoV/QjmWZxra+BVAiB5fBuM3tz8z9pJu0bNG1I0haC8SQUNB4YpdoTcrDVcJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@5.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":311136},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./global":{"types":"./dist/global.d.ts"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.ts,.vue --fix","soak":"pnpm build:test && node --expose-gc .test-dist/tests/soak/soak.js","test":"pnpm build:test && node --conditions=swm-core-test --test .test-dist/tests/unit/*.test.js","bench":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build":"pnpm build:scripts && node .scripts-dist/clean-dist.js dist && tsc --project tsconfig.build.json && node .scripts-dist/copy-public-types.js","check":"prettier . --check && eslint . --ext .js,.ts,.vue && tsc --project tsconfig.json && tsc --project tsconfig.test.json && tsc --project tsconfig.benchmark.json && tsc --project tsconfig.scripts.json","bench:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/runner.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","test:e2e":"pnpm build:test && node --test .test-dist/tests/e2e/**/*.test.js","test:leak":"pnpm build:test && node --expose-gc --test .test-dist/tests/leak/*.leak.test.js","bench:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","build:test":"pnpm build && node .scripts-dist/clean-dist.js .test-dist && tsc --project tsconfig.test-build.json && node .scripts-dist/copy-test-artifacts.js","profile:ci":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/ci.js","test:types":"pnpm build && node .scripts-dist/test-packed-types.js","bench:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"pnpm build:test && node --test .test-dist/tests/e2e/ws/*.test.js","bench:before":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/before.js","bench:stream":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 1 --sample-ms 250 --v8prof true","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:e2e:binding-candidate && pnpm test:types && pnpm test:package","test:package":"pnpm build && node .scripts-dist/test-package.js","bench:headers":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build:scripts":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('.scripts-dist', { recursive: true, force: true })\" && tsc --project tsconfig.scripts-build.json","test:coverage":"pnpm build:test && node --conditions=swm-core-test --test --experimental-test-coverage .test-dist/tests/unit/*.test.js","test:e2e:http":"pnpm build:test && node --test .test-dist/tests/e2e/http/*.test.js","bench:bindings":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/compare.js","build:benchmark":"pnpm build && node .scripts-dist/clean-dist.js .benchmark-dist && tsc --project tsconfig.benchmark-build.json && node .scripts-dist/copy-benchmark-artifacts.js","profile:compare":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js","bench:core:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append,core-set-header-array --runs 7 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --order balanced --json-out benchmark/profiles/set-header/load.json","bench:static:hit":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-hit --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true","bench:ws:payload":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:upgrade":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/upgrade.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","release:artifact":"pnpm build && node .scripts-dist/build-release-artifact.js","bench:body-safety":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-safety.js","bench:static:miss":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-miss --fw core --runs 3 --warmup 2 --duration 6 --connections 25 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite ws","profile:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-append.json && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-array --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-array.json","release:verify-tag":"pnpm build:scripts && node .scripts-dist/verify-release.js","bench:bindings:deep":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/deep-compare.js","bench:body-prefetch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-prefetch.js","bench:response-batch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js","deps:update:bindings":"pnpm build:scripts && node .scripts-dist/update-bindings.js","profile:compare:http":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite http","bench:headers:prepared":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload:measure":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","bench:response-batch:gate":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js --check","bench:stream:backpressure":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream-backpressure --fw core --runs 3 --warmup 2 --duration 6 --connections 10 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:binding-candidate":"pnpm build:test && node .scripts-dist/test-runtime-binding.js","test:e2e:uwebsockets-reference":"pnpm build:test && node --conditions=uwebsockets-reference --test --test-skip-pattern=\"prefetch|req access after async boundary|async ws upgrade|public readable API\" .test-dist/tests/e2e/**/*.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ab6efcd-b75a-4430-8dde-94e9bd55dc80"}},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.1.0.tgz","_integrity":"sha512-7cukLK2RVVFzR7Hh/92SoBOLa/FiQY8Ne6IxY0n58/9Levw/7i6zAfjZSrkICYgn9jxCRqz7Sf25xo7Q/yThcg==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.17.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@swarmmachina/swm-uws":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.2","micro":"^10.0.1","eslint":"10.8.0","express":"^5.2.1","fastify":"^5.11.2","prettier":"3.9.6","@types/ws":"^8.18.1","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"24.13.3","hyper-express":"^7.0.2","@types/express":"^5.0.6","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","typescript-eslint":"8.66.0","@typescript/native":"npm:typescript@7.0.2","@swarmmachina/benchkit":"0.3.0","@swarmmachina/standards":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_5.1.0_1786739130530_0.07856357870334696","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"@swarmmachina/swm-core","version":"5.1.1","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@5.1.1","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"5bfe229d419fafb30ecfd05f8491b73cd2348cdd","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-5.1.1.tgz","fileCount":35,"integrity":"sha512-oSR7YdS0BqenINV6YgHnROO3WCYXcgCMRFAH6bmoh6E3qSlqmTJKM0BPS7NVeTT41SEV55SrRxK3d/A+gJGF1A==","signatures":[{"sig":"MEUCIQDO+qWlxytdm7UgIin3JPlYsTG4v2SdV5QacnfrKEGPcAIgSjWqt3l1iceZ5IutIfq+LvjOAkSazXhfCbiaWcqrxe4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@5.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":313054},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.1.1.tgz","types":"./dist/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./global":{"types":"./dist/global.d.ts"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.ts,.vue --fix","soak":"pnpm build:test && node --expose-gc .test-dist/tests/soak/soak.js","test":"pnpm build:test && node --conditions=swm-core-test --test .test-dist/tests/unit/*.test.js","bench":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build":"pnpm build:scripts && node .scripts-dist/clean-dist.js dist && tsc --project tsconfig.build.json && node .scripts-dist/copy-public-types.js","check":"prettier . --check && eslint . --ext .js,.ts,.vue && tsc --project tsconfig.json && tsc --project tsconfig.test.json && tsc --project tsconfig.benchmark.json && tsc --project tsconfig.scripts.json","bench:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/runner.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","test:e2e":"pnpm build:test && node --test .test-dist/tests/e2e/**/*.test.js","test:leak":"pnpm build:test && node --expose-gc --test .test-dist/tests/leak/*.leak.test.js","bench:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","build:test":"pnpm build && node .scripts-dist/clean-dist.js .test-dist && tsc --project tsconfig.test-build.json && node .scripts-dist/copy-test-artifacts.js","profile:ci":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/ci.js","test:types":"pnpm build && node .scripts-dist/test-packed-types.js","bench:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"pnpm build:test && node --test .test-dist/tests/e2e/ws/*.test.js","bench:before":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/before.js","bench:stream":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 1 --sample-ms 250 --v8prof true","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:e2e:binding-candidate && pnpm test:types && pnpm test:package","test:package":"pnpm build && node .scripts-dist/test-package.js","bench:headers":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build:scripts":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('.scripts-dist', { recursive: true, force: true })\" && tsc --project tsconfig.scripts-build.json","test:coverage":"pnpm build:test && node --conditions=swm-core-test --test --experimental-test-coverage .test-dist/tests/unit/*.test.js","test:e2e:http":"pnpm build:test && node --test .test-dist/tests/e2e/http/*.test.js","bench:bindings":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/compare.js","build:benchmark":"pnpm build && node .scripts-dist/clean-dist.js .benchmark-dist && tsc --project tsconfig.benchmark-build.json && node .scripts-dist/copy-benchmark-artifacts.js","profile:compare":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js","bench:core:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append,core-set-header-array --runs 7 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --order balanced --json-out benchmark/profiles/set-header/load.json","bench:static:hit":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-hit --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true","bench:ws:payload":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:upgrade":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/upgrade.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","release:artifact":"pnpm build && node .scripts-dist/build-release-artifact.js","bench:body-safety":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-safety.js","bench:static:miss":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-miss --fw core --runs 3 --warmup 2 --duration 6 --connections 25 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite ws","profile:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-append.json && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-array --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-array.json","release:verify-tag":"pnpm build:scripts && node .scripts-dist/verify-release.js","bench:bindings:deep":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/deep-compare.js","bench:body-prefetch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-prefetch.js","bench:response-batch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js","deps:update:bindings":"pnpm build:scripts && node .scripts-dist/update-bindings.js","profile:compare:http":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite http","bench:headers:prepared":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload:measure":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","bench:response-batch:gate":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js --check","bench:stream:backpressure":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream-backpressure --fw core --runs 3 --warmup 2 --duration 6 --connections 10 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:binding-candidate":"pnpm build:test && node .scripts-dist/test-runtime-binding.js","test:e2e:uwebsockets-reference":"pnpm build:test && node --conditions=uwebsockets-reference --test --test-skip-pattern=\"prefetch|req access after async boundary|async ws upgrade|public readable API\" .test-dist/tests/e2e/**/*.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ab6efcd-b75a-4430-8dde-94e9bd55dc80"}},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.1.1.tgz","_integrity":"sha512-oSR7YdS0BqenINV6YgHnROO3WCYXcgCMRFAH6bmoh6E3qSlqmTJKM0BPS7NVeTT41SEV55SrRxK3d/A+gJGF1A==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.17.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@swarmmachina/swm-uws":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.2","micro":"^10.0.1","eslint":"10.8.0","express":"^5.2.1","fastify":"^5.11.2","prettier":"3.9.6","@types/ws":"^8.18.1","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"24.13.3","hyper-express":"^7.0.2","@types/express":"^5.0.6","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","typescript-eslint":"8.66.0","@typescript/native":"npm:typescript@7.0.2","@swarmmachina/benchkit":"0.3.0","@swarmmachina/standards":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_5.1.1_1786771661519_0.5277006197482492","host":"s3://npm-registry-packages-npm-production"}},"5.1.2":{"name":"@swarmmachina/swm-core","version":"5.1.2","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@5.1.2","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"90420f38df0587d7bf114bfda7c2c96399da6909","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-5.1.2.tgz","fileCount":36,"integrity":"sha512-pC+uonYZcqHLOv5/3tg3+KfjXdrBKEuImSY8qd0pJ6yMDFFH2uv/fCoKvi3KOEsU6MRiCpcbd1fAUmm5XtFVNg==","signatures":[{"sig":"MEUCIAFQs6mGI4j6SF8RO8EJJ8FkCVoVTuEDNlZR6TLjprRKAiEA+SU/B/7rIFgSqHJZ/JVjjs/SYaukwolma8EB5A2bRqM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@5.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":326110},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.1.2.tgz","types":"./dist/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./global":{"types":"./dist/global.d.ts"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.ts,.vue --fix","soak":"pnpm build:test && node --expose-gc .test-dist/tests/soak/soak.js","test":"pnpm build:test && node --conditions=swm-core-test --test .test-dist/tests/unit/*.test.js","bench":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build":"pnpm build:scripts && node .scripts-dist/clean-dist.js dist && tsc --project tsconfig.build.json && node .scripts-dist/copy-public-types.js","check":"prettier . --check && eslint . --ext .js,.ts,.vue && tsc --project tsconfig.json && tsc --project tsconfig.test.json && tsc --project tsconfig.benchmark.json && tsc --project tsconfig.scripts.json","bench:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/runner.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","test:e2e":"pnpm build:test && node --test .test-dist/tests/e2e/**/*.test.js","test:leak":"pnpm build:test && node --expose-gc --test .test-dist/tests/leak/*.leak.test.js","bench:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","build:test":"pnpm build && node .scripts-dist/clean-dist.js .test-dist && tsc --project tsconfig.test-build.json && node .scripts-dist/copy-test-artifacts.js","profile:ci":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/ci.js","test:types":"pnpm build && node .scripts-dist/test-packed-types.js","bench:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"pnpm build:test && node --test .test-dist/tests/e2e/ws/*.test.js","bench:before":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/before.js","bench:stream":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 1 --sample-ms 250 --v8prof true","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:e2e:binding-candidate && pnpm test:types && pnpm test:package","test:package":"pnpm build && node .scripts-dist/test-package.js","bench:headers":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build:scripts":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('.scripts-dist', { recursive: true, force: true })\" && tsc --project tsconfig.scripts-build.json","test:coverage":"pnpm build:test && node --conditions=swm-core-test --test --experimental-test-coverage .test-dist/tests/unit/*.test.js","test:e2e:http":"pnpm build:test && node --test .test-dist/tests/e2e/http/*.test.js","bench:bindings":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/compare.js","build:benchmark":"pnpm build && node .scripts-dist/clean-dist.js .benchmark-dist && tsc --project tsconfig.benchmark-build.json && node .scripts-dist/copy-benchmark-artifacts.js","profile:compare":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js","bench:core:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append,core-set-header-array --runs 7 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --order balanced --json-out benchmark/profiles/set-header/load.json","bench:static:hit":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-hit --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true","bench:ws:payload":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:upgrade":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/upgrade.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","release:artifact":"pnpm build && node .scripts-dist/build-release-artifact.js","bench:body-safety":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-safety.js","bench:static:miss":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-miss --fw core --runs 3 --warmup 2 --duration 6 --connections 25 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite ws","profile:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-append.json && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-array --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-array.json","release:verify-tag":"pnpm build:scripts && node .scripts-dist/verify-release.js","bench:bindings:deep":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/deep-compare.js","bench:body-prefetch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-prefetch.js","bench:response-batch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js","deps:update:bindings":"pnpm build:scripts && node .scripts-dist/update-bindings.js","profile:compare:http":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite http","bench:headers:prepared":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload:measure":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","bench:response-batch:gate":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js --check","bench:stream:backpressure":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream-backpressure --fw core --runs 3 --warmup 2 --duration 6 --connections 10 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:binding-candidate":"pnpm build:test && node .scripts-dist/test-runtime-binding.js","test:e2e:uwebsockets-reference":"pnpm build:test && node --conditions=uwebsockets-reference --test --test-skip-pattern=\"prefetch|req access after async boundary|async ws upgrade|public readable API\" .test-dist/tests/e2e/**/*.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ab6efcd-b75a-4430-8dde-94e9bd55dc80"}},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.1.2.tgz","_integrity":"sha512-pC+uonYZcqHLOv5/3tg3+KfjXdrBKEuImSY8qd0pJ6yMDFFH2uv/fCoKvi3KOEsU6MRiCpcbd1fAUmm5XtFVNg==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.17.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@swarmmachina/swm-uws":"0.7.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.2","micro":"^10.0.1","eslint":"10.8.0","express":"^5.2.1","fastify":"^5.11.2","prettier":"3.9.6","@types/ws":"^8.18.1","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"24.13.3","hyper-express":"^7.0.2","@types/express":"^5.0.6","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","typescript-eslint":"8.66.0","@typescript/native":"npm:typescript@7.0.2","@swarmmachina/benchkit":"0.3.0","@swarmmachina/standards":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_5.1.2_1788201232596_0.6357438982246775","host":"s3://npm-registry-packages-npm-production"}},"5.1.3":{"name":"@swarmmachina/swm-core","version":"5.1.3","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","_id":"@swarmmachina/swm-core@5.1.3","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"homepage":"https://github.com/SwarmMachina/swm-core#readme","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"dist":{"shasum":"4f6114d787ea3845ef2a56c1d1240798a8a92b05","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-5.1.3.tgz","fileCount":37,"integrity":"sha512-KEyOzTOyOYWu1eX2fyluH/rhXqu0BhSxecyiDhm4TM6In6fhvvsfDD5B6pr0JN0JQsJ0/ccZ97GGXOhtZcMWoQ==","signatures":[{"sig":"MEUCIHiQoxmnuCN+3LvKFnP9aPP75OwY7dh0Dz0RTUbToFGyAiEA93NBTlX8lLcjTfB/izzxA53vnd6JeOc1YEG+fQqgYG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@5.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":329051},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.1.3.tgz","types":"./dist/index.d.ts","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./global":{"types":"./dist/global.d.ts"}},"imports":{"#uws-binding":{"default":"@swarmmachina/swm-uws","uwebsockets-reference":"uwebsockets.js"}},"scripts":{"fix":"prettier . --write && eslint . --ext .js,.ts,.vue --fix","soak":"pnpm build:test && node --expose-gc .test-dist/tests/soak/soak.js","test":"pnpm build:test && node --conditions=swm-core-test --test .test-dist/tests/unit/*.test.js","bench":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build":"pnpm build:scripts && node .scripts-dist/clean-dist.js dist && tsc --project tsconfig.build.json && node .scripts-dist/copy-public-types.js","check":"prettier . --check && eslint . --ext .js,.ts,.vue && tsc --project tsconfig.json && tsc --project tsconfig.test.json && tsc --project tsconfig.benchmark.json && tsc --project tsconfig.scripts.json","bench:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/runner.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","test:e2e":"pnpm build:test && node --test .test-dist/tests/e2e/**/*.test.js","test:leak":"pnpm build:test && node --expose-gc --test .test-dist/tests/leak/*.leak.test.js","bench:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","build:test":"pnpm build && node .scripts-dist/clean-dist.js .test-dist && tsc --project tsconfig.test-build.json && node .scripts-dist/copy-test-artifacts.js","profile:ci":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/ci.js","test:types":"pnpm build && node .scripts-dist/test-packed-types.js","bench:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","test:e2e:ws":"pnpm build:test && node --test .test-dist/tests/e2e/ws/*.test.js","bench:before":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/before.js","bench:stream":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 1 --sample-ms 250 --v8prof true","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:e2e:binding-candidate && pnpm test:types && pnpm test:package","test:package":"pnpm build && node .scripts-dist/test-package.js","bench:headers":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","build:scripts":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('.scripts-dist', { recursive: true, force: true })\" && tsc --project tsconfig.scripts-build.json","test:coverage":"pnpm build:test && node --conditions=swm-core-test --test --experimental-test-coverage .test-dist/tests/unit/*.test.js","test:e2e:http":"pnpm build:test && node --test .test-dist/tests/e2e/http/*.test.js","bench:bindings":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/compare.js","build:benchmark":"pnpm build && node .scripts-dist/clean-dist.js .benchmark-dist && tsc --project tsconfig.benchmark-build.json && node .scripts-dist/copy-benchmark-artifacts.js","profile:compare":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js","bench:core:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append,core-set-header-array --runs 7 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --order balanced --json-out benchmark/profiles/set-header/load.json","bench:static:hit":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-hit --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true","bench:ws:payload":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:upgrade":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/upgrade.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","release:artifact":"pnpm build && node .scripts-dist/build-release-artifact.js","bench:body-safety":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-safety.js","bench:static:miss":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-miss --fw core --runs 3 --warmup 2 --duration 6 --connections 25 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","bench:headers:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","profile:compare:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite ws","profile:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-append.json && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-array --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-array.json","release:verify-tag":"pnpm build:scripts && node .scripts-dist/verify-release.js","bench:bindings:deep":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/deep-compare.js","bench:body-prefetch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-prefetch.js","bench:response-batch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js","deps:update:bindings":"pnpm build:scripts && node .scripts-dist/update-bindings.js","profile:compare:http":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite http","bench:headers:prepared":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:ws:payload:measure":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","bench:response-batch:gate":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js --check","bench:stream:backpressure":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream-backpressure --fw core --runs 3 --warmup 2 --duration 6 --connections 10 --pipelining 1 --sample-ms 250 --v8prof true","test:e2e:binding-candidate":"pnpm build:test && node .scripts-dist/test-runtime-binding.js","test:e2e:uwebsockets-reference":"pnpm build:test && node --conditions=uwebsockets-reference --test --test-skip-pattern=\"prefetch|req access after async boundary|async ws upgrade|public readable API\" .test-dist/tests/e2e/**/*.test.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ab6efcd-b75a-4430-8dde-94e9bd55dc80"}},"_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.1.3.tgz","_integrity":"sha512-KEyOzTOyOYWu1eX2fyluH/rhXqu0BhSxecyiDhm4TM6In6fhvvsfDD5B6pr0JN0JQsJ0/ccZ97GGXOhtZcMWoQ==","repository":{"url":"git+https://github.com/SwarmMachina/swm-core.git","type":"git"},"_npmVersion":"11.17.0","description":"High-performance HTTP/WebSocket server built on swm-uws","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@swarmmachina/swm-uws":"0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.21.2","micro":"^10.0.1","eslint":"10.8.0","express":"^5.2.1","fastify":"^5.11.2","prettier":"3.9.6","@types/ws":"^8.18.1","typescript":"npm:@typescript/typescript6@6.0.2","@types/node":"24.13.3","hyper-express":"^7.0.2","@types/express":"^5.0.6","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","typescript-eslint":"8.66.0","@typescript/native":"npm:typescript@7.0.2","@swarmmachina/benchkit":"0.3.0","@swarmmachina/standards":"^3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/swm-core_5.1.3_1788341577995_0.07583911571555602","host":"s3://npm-registry-packages-npm-production"}},"5.2.2":{"name":"@swarmmachina/swm-core","version":"5.2.2","description":"High-performance HTTP/WebSocket server built on swm-uws","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","main":"./dist/index.js","types":"./dist/index.d.ts","type":"module","engines":{"node":"22.x || 24.x"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./global":{"types":"./dist/global.d.ts"}},"imports":{"#uws-binding":{"uwebsockets-reference":"uwebsockets.js","default":"@swarmmachina/swm-uws"}},"repository":{"type":"git","url":"git+https://github.com/SwarmMachina/swm-core.git"},"publishConfig":{"access":"public"},"devDependencies":{"@swarmmachina/benchkit":"0.3.1","@swarmmachina/standards":"^3.1.0","@types/express":"^5.0.6","@types/node":"24.13.3","@types/ws":"^8.18.1","@typescript/native":"npm:typescript@7.0.2","eslint":"10.8.0","express":"^5.2.1","fastify":"^5.11.2","hyper-express":"^7.0.2","micro":"^10.0.1","prettier":"3.9.6","typescript":"npm:@typescript/typescript6@6.0.2","typescript-eslint":"8.66.0","uwebsockets.js":"github:uNetworking/uWebSockets.js#v20.69.0","ws":"^8.21.2"},"dependencies":{"@swarmmachina/swm-uws":"0.8.3"},"scripts":{"build:scripts":"node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('.scripts-dist', { recursive: true, force: true })\" && tsc --project tsconfig.scripts-build.json","build":"pnpm build:scripts && node .scripts-dist/clean-dist.js dist && tsc --project tsconfig.build.json && node .scripts-dist/copy-public-types.js","build:test":"pnpm build && node .scripts-dist/clean-dist.js .test-dist && tsc --project tsconfig.test-build.json && node .scripts-dist/copy-test-artifacts.js","build:benchmark":"pnpm build && node .scripts-dist/clean-dist.js .benchmark-dist && tsc --project tsconfig.benchmark-build.json && node .scripts-dist/copy-benchmark-artifacts.js","check":"prettier . --check && eslint . --ext .js,.ts,.vue && tsc --project tsconfig.json && tsc --project tsconfig.test.json && tsc --project tsconfig.benchmark.json && tsc --project tsconfig.scripts.json","fix":"prettier . --write && eslint . --ext .js,.ts,.vue --fix","test":"pnpm build:test && node --conditions=swm-core-test --test .test-dist/tests/unit/*.test.js","test:coverage":"pnpm build:test && node --conditions=swm-core-test --test --experimental-test-coverage .test-dist/tests/unit/*.test.js","test:e2e":"pnpm build:test && node --test .test-dist/tests/e2e/**/*.test.js","test:e2e:http":"pnpm build:test && node --test .test-dist/tests/e2e/http/*.test.js","test:e2e:ws":"pnpm build:test && node --test .test-dist/tests/e2e/ws/*.test.js","test:e2e:uwebsockets-reference":"pnpm build:test && node --conditions=uwebsockets-reference --test --test-skip-pattern=\"prefetch|req access after async boundary|async ws upgrade|public readable API\" .test-dist/tests/e2e/**/*.test.js","test:e2e:bindings":"pnpm test:e2e && pnpm test:e2e:uwebsockets-reference","test:e2e:binding-candidate":"pnpm build:test && node .scripts-dist/test-runtime-binding.js","test:types":"pnpm build && node .scripts-dist/test-packed-types.js","test:package":"pnpm build && node .scripts-dist/test-package.js","test:leak":"pnpm build:test && node --expose-gc --test .test-dist/tests/leak/*.leak.test.js","soak":"pnpm build:test && node --expose-gc .test-dist/tests/soak/soak.js","bench":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true","bench:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-sync --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true","bench:core:async":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test base-async --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:headers":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true","bench:headers:core":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append,core-set-header-array --runs 7 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --order balanced --json-out benchmark/profiles/set-header/load.json","profile:set-header":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-append --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-append.json && node .benchmark-dist/benchmark/http/runner.js --test headers --fw core-set-header-array --runs 1 --warmup 2 --duration 10 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true --json-out benchmark/profiles/set-header/profile-array.json","bench:headers:prepared":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test headers-prepared --runs 1 --warmup 10 --sample-ms 250 --v8prof true --fw core","bench:static:hit":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-hit --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 10 --sample-ms 250 --v8prof true","bench:static:miss":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test static-cache-miss --fw core --runs 3 --warmup 2 --duration 6 --connections 25 --pipelining 1 --sample-ms 250 --v8prof true","bench:stream":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 1 --sample-ms 250 --v8prof true","bench:stream:backpressure":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test stream-backpressure --fw core --runs 3 --warmup 2 --duration 6 --connections 10 --pipelining 1 --sample-ms 250 --v8prof true","bench:upload-stream":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test upload-stream --fw core --runs 3 --warmup 2 --duration 6 --connections 100 --pipelining 1 --sample-ms 250 --v8prof true","bench:upload-stream:backpressure":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/runner.js --test upload-stream-backpressure --fw core --runs 3 --warmup 2 --duration 6 --connections 10 --pipelining 1 --sample-ms 250 --v8prof true","bench:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/runner.js --fw core,hyperexpress,ws --runs 1 --warmup 2 --workers 4 --v8prof true","bench:ws:upgrade":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/upgrade.js --fw core,hyperexpress --scenario sync,async --runs 1 --warmup 1 --duration 2 --concurrency 20 --v8prof true","bench:ws:payload":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 1 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof true","bench:ws:payload:measure":"pnpm build:benchmark && node .benchmark-dist/benchmark/ws/payload.js --fw core,hyperexpress --sizes 64,1024,16384,65536 --runs 3 --warmup 2 --duration 6 --connections 50 --workers 4 --depth 16 --v8prof false","bench:bindings":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/compare.js","bench:bindings:deep":"pnpm build:benchmark && node .benchmark-dist/benchmark/transport/deep-compare.js","bench:before":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/before.js","bench:body-prefetch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-prefetch.js","bench:body-safety":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/body-safety.js","bench:response-batch":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js","bench:response-batch:gate":"pnpm build:benchmark && node .benchmark-dist/benchmark/http/response-batch.js --check","profile:ci":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/ci.js","profile:compare":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js","profile:compare:http":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite http","profile:compare:ws":"pnpm build:benchmark && node .benchmark-dist/benchmark/regression/compare.js --suite ws","deps:update:bindings":"pnpm build:scripts && node .scripts-dist/update-bindings.js","release:verify-tag":"pnpm build:scripts && node .scripts-dist/verify-release.js","release:artifact":"pnpm build && node .scripts-dist/build-release-artifact.js","release:gate":"pnpm check && pnpm test && pnpm test:e2e:bindings && pnpm test:e2e:binding-candidate && pnpm test:types && pnpm test:package"},"_id":"@swarmmachina/swm-core@5.2.2","bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"homepage":"https://github.com/SwarmMachina/swm-core#readme","_integrity":"sha512-UkTuQ15RtVHiHPVzQvuadupRnqYlHqDcmsk/zizbp18IYI0sYlgYijR1/NiEIx7ImRoKzJiPbhkx9f0RjA90Vg==","_resolved":"/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.2.2.tgz","_from":"file:/home/runner/work/swm-core/swm-core/release-artifact/swarmmachina-swm-core-5.2.2.tgz","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-UkTuQ15RtVHiHPVzQvuadupRnqYlHqDcmsk/zizbp18IYI0sYlgYijR1/NiEIx7ImRoKzJiPbhkx9f0RjA90Vg==","shasum":"afccb21b967dda72a31d67f46598b59fb651721d","tarball":"https://registry.npmjs.org/@swarmmachina/swm-core/-/swm-core-5.2.2.tgz","fileCount":39,"unpackedSize":344998,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@swarmmachina%2fswm-core@5.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFd3y/KPWUhKYNCpDU13P2irMPS1cUcBiKUnWEqO+8raAiEAxD4vLX1qChi3PZ48r/u1TFRLx4x0g09PcOiorMqQvH4="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0ab6efcd-b75a-4430-8dde-94e9bd55dc80"}},"directories":{},"maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/swm-core_5.2.2_1789471494787_0.11593750458003593"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-13T10:16:48.647Z","modified":"2026-09-15T11:24:55.234Z","1.0.1":"2026-01-13T10:16:49.052Z","1.1.0":"2026-01-14T19:33:22.208Z","1.1.1":"2026-01-18T16:18:09.339Z","1.1.2":"2026-01-25T20:15:18.675Z","1.1.3":"2026-02-16T14:03:27.801Z","1.1.4":"2026-02-16T15:15:00.648Z","1.1.5":"2026-02-18T17:40:02.291Z","1.2.0":"2026-04-07T18:16:23.017Z","1.3.0":"2026-06-27T18:44:29.117Z","2.0.0":"2026-07-10T20:25:32.835Z","2.0.1":"2026-07-12T12:25:40.020Z","2.0.2":"2026-07-16T19:52:19.548Z","2.0.3":"2026-07-18T14:08:43.275Z","3.0.1":"2026-07-19T10:46:57.625Z","3.0.2":"2026-07-21T19:42:14.525Z","4.0.2":"2026-07-22T20:44:57.162Z","4.1.0":"2026-07-24T21:43:31.557Z","4.1.1":"2026-07-25T18:42:54.029Z","4.1.2":"2026-07-29T18:21:13.221Z","4.2.0":"2026-08-02T21:17:31.163Z","4.3.0":"2026-08-05T11:14:27.148Z","5.0.0":"2026-08-09T21:44:26.754Z","5.0.2":"2026-08-10T18:24:06.406Z","5.0.3":"2026-08-11T11:30:19.887Z","5.1.0":"2026-08-14T20:25:30.695Z","5.1.1":"2026-08-15T05:27:41.669Z","5.1.2":"2026-08-31T18:33:52.791Z","5.1.3":"2026-09-02T09:32:58.136Z","5.2.2":"2026-09-15T11:24:54.931Z"},"bugs":{"url":"https://github.com/SwarmMachina/swm-core/issues"},"author":{"name":"SwarmMachina Team"},"license":"MPL-2.0","homepage":"https://github.com/SwarmMachina/swm-core#readme","keywords":["http","websocket","server","zero-dependency","performance","swarmmachina","uwebsockets","fast"],"repository":{"type":"git","url":"git+https://github.com/SwarmMachina/swm-core.git"},"description":"High-performance HTTP/WebSocket server built on swm-uws","maintainers":[{"name":"vaskadegama","email":"vasr161095@gmail.com"},{"name":"swm-manager","email":"karmenyuk@yandex.ru"}],"readme":"# @swarmmachina/swm-core\n\n[![CI](https://github.com/SwarmMachina/swm-core/actions/workflows/ci.yml/badge.svg)](https://github.com/SwarmMachina/swm-core/actions/workflows/ci.yml)\n[![License: MPL 2.0](https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg)](https://opensource.org/licenses/MPL-2.0)\n[![Node.js](https://img.shields.io/badge/node-22%20%7C%2024-brightgreen.svg)](https://nodejs.org/)\n[![runtime dependencies](https://img.shields.io/badge/runtime_dependencies-1-brightgreen.svg)](#runtime-requirements)\n[![stability](https://img.shields.io/badge/stability-experimental-orange.svg)](#stability)\n\nA high-performance HTTP/WebSocket server built on the\n[`@swarmmachina/swm-uws`](https://www.npmjs.com/package/@swarmmachina/swm-uws)\nnative binding.\n\n## Features\n\n- **Native uWS transport** - HTTP/WebSocket transport through `swm-uws`.\n- **HTTP + WebSocket** - Both protocols in a single server instance.\n- **Resource pooling** - Reuses HTTP resources while keeping each request's context isolated.\n- **Graceful shutdown** - Cleanly closes active connections.\n- **Streaming support** - Efficient handling of large payloads.\n- **Auto Content-Type detection** - Automatically sets headers based on response type.\n- **Modern ES modules** - Native ESM support for Node.js 22 and 24.\n\n## Installation\n\n```bash\n# Install the package and its swm-uws runtime dependency\npnpm add @swarmmachina/swm-core\n```\n\n### Migrating from 4.x\n\nVersion 5 removes the short request aliases that duplicated the explicit\n`HttpContext` API. Update calls as follows:\n\n| 4.x alias                          | 5.x method               |\n| ---------------------------------- | ------------------------ |\n| `ctx.getHeader(name)` / `header()` | `ctx.getReqHeader(name)` |\n| `ctx.ip()`                         | `ctx.getIP()`            |\n| `ctx.method()`                     | `ctx.getMethod()`        |\n| `ctx.url()`                        | `ctx.getUrl()`           |\n| `ctx.fullQuery()`                  | `ctx.getQuery()`         |\n| `ctx.query(name)`                  | `ctx.getQuery(name)`     |\n| `ctx.param(name)`                  | `ctx.getParameter(name)` |\n| `ctx.contentLength()`              | `ctx.getContentLength()` |\n| `ctx.status(code)`                 | `ctx.setStatus(code)`    |\n\nThe package now publishes compiled files from `dist/`. Root imports remain\nunchanged; unsupported deep imports from `@swarmmachina/swm-core/src/*` must be\nreplaced with exports from the package root.\n\n### Runtime requirements\n\nThe server depends on the native `@swarmmachina/swm-uws` addon, which\nships platform-specific prebuilds:\n\n- **Node.js 22 or 24** — other majors are rejected by the package engine constraint.\n- **Linux x64 with glibc** — use a `bookworm`/`slim` image rather than Alpine/musl.\n- **Windows x64** and **macOS arm64/x64** are supported.\n- **Linux ARM64, Windows ARM64 and musl are not supported.**\n- **TLS and `permessage-deflate` are disabled** in the native binding; terminate\n  TLS before the application.\n\n## Quick Start\n\n### Basic HTTP Server\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\n\nconst server = new Server({\n  port: 3000,\n  http: {\n    onRequest: (ctx) => {\n      return { message: 'Hello World' }\n    }\n  }\n})\n\nawait server.listen()\nconsole.log('Server listening on port 3000')\n```\n\nKeep a request handler synchronous when it has no real asynchronous work. An\n`async` handler always enters the Promise path, which preserves request state\nfor use after the native callback and adds work even when the returned value is\nalready available:\n\n```javascript\n// Prefer this when the result is available immediately.\nonRequest: (ctx) => ({ ok: true })\n\n// Use async only when the handler actually awaits asynchronous work.\nonRequest: async (ctx) => ({ user: await loadUser(ctx.getParameter('id')) })\n```\n\n### Async Work Before Using the Request Body\n\nThe default request body mode is `lazy`. With the native uWS transport, a lazy\nbody reader must be started before the first asynchronous operation. Enable the\nopt-in `prefetch` mode when a handler should be able to authenticate a user in a\ndatabase before it asks for the body:\n\n```javascript\nconst server = new Server({\n  http: {\n    prefetch: true,\n\n    // Body-size values are expressed in bytes. The omitted maxBodyBudget uses\n    // the finite 256 MiB process-wide default in both lazy and prefetch modes.\n    maxBodySize: 16 * 1024 * 1024, // 16 MiB per request\n\n    onRequest: async (ctx) => {\n      if (ctx.getMethod() !== 'post') {\n        return null\n      }\n\n      const token = ctx.getReqHeader('authorization')\n      const user = await findUserByToken(token)\n\n      if (!user) {\n        ctx.setStatus(401)\n        return { error: 'Unauthorized' }\n      }\n\n      // Safe after await: raw bytes have been collected by the framework.\n      // JSON parsing itself remains lazy and happens here.\n      const data = await ctx.json()\n\n      return { userId: user.id, data }\n    }\n  }\n})\n```\n\nDeclarative routes can enable or disable prefetch individually. An omitted\nroute `prefetch` inherits `http.prefetch`:\n\n```javascript\nconst server = new Server({\n  http: {\n    routes: [\n      {\n        method: 'post',\n        path: '/users',\n        prefetch: true,\n        before: async (ctx) => {\n          const user = await findUserByToken(ctx.getReqHeader('authorization'))\n\n          if (!user) {\n            ctx.setStatus(401).send({ error: 'Unauthorized' })\n            return\n          }\n\n          ctx.user = user\n        },\n        handler: async (ctx) => ({ user: ctx.user, data: await ctx.json() })\n      }\n    ]\n  }\n})\n```\n\nPrefetch starts collecting raw bytes before `before` and `handler` run. It does\nnot eagerly decode text or parse JSON. The trade-off is additional work for\nrequests that never use their body and memory proportional to concurrent\nrequest bodies. `http.maxBodySize` bounds one request; `http.maxBodyBudget`\nbounds aggregate retained and in-flight body storage. When the budget is\nomitted, `swm-core` applies the same finite 256 MiB safety-net in both lazy and\nprefetch modes. Use `null` only as an intentional opt-out.\n\nWhen keeping the default lazy mode, start the reader manually before the first\n`await`. The body is then collected while the user is checked, but it is not\nparsed or used until the check succeeds:\n\n```javascript\nhttp: {\n  onRequest: async (ctx) => {\n    console.log(`http ${ctx.getMethod()} ${ctx.getUrl()}`)\n\n    if (ctx.getMethod() !== 'post') {\n      return null // 204 No Content\n    }\n\n    // Register the body reader synchronously, before the first await.\n    const dataPromise = ctx.text(1024 * 1024) // 1 MiB limit, expressed in bytes\n\n    // The body can fail while the database call is still pending. Attach a\n    // rejection handler immediately; awaiting the original promise below still\n    // propagates the error when the user is allowed.\n    void dataPromise.catch(() => {})\n\n    const token = ctx.getReqHeader('authorization')\n    const isBlocked = await checkUserInDatabase(token)\n\n    if (isBlocked) {\n      return null // 204 No Content\n    }\n\n    const data = JSON.parse(await dataPromise)\n    console.log({ data })\n\n    ctx.setStatus(404)\n    return { status: false }\n  }\n}\n```\n\n> **Warning (lazy mode):** call `ctx.body()`, `ctx.buffer()`, `ctx.text()`, or\n> `ctx.json()` before awaiting any other asynchronous work. Otherwise uWS body\n> events may arrive before the reader is registered, leaving its Promise pending.\n> A route handler runs too late to guarantee this after an asynchronous `before`.\n> Either enable `prefetch`, or start the reader synchronously inside `before`,\n> before its first `await`, and retain the returned Promise for the handler.\n\n> **Streaming:** call `ctx.bodyStream()` before the first `await`. It cannot be\n> combined with body prefetch. If a route has an asynchronous `before`, create\n> the stream there before its first `await` and retain it for the handler.\n\n### HTTP Server with Routing (Traditional API)\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\n\nconst server = new Server({\n  port: 3000,\n  http: {\n    onRequest: async (ctx) => {\n      // Simple routing\n      if (ctx.getUrl() === '/' && ctx.getMethod() === 'get') {\n        return { message: 'Welcome to the API' }\n      }\n\n      if (ctx.getUrl() === '/users' && ctx.getMethod() === 'get') {\n        return { users: await getUsers() }\n      }\n\n      if (ctx.getUrl() === '/users' && ctx.getMethod() === 'post') {\n        const data = await ctx.json()\n        return await createUser(data)\n      }\n\n      // 404 Not Found\n      ctx.setStatus(404)\n      return { error: 'Not found' }\n    },\n    onError: (event, error) => {\n      console.error(`HTTP Error [${event.method} ${event.url}]:`, error)\n    }\n  }\n})\n\nawait server.listen()\n```\n\n### HTTP Server with Declarative Routing (`routes` API)\n\nThe `routes` API provides method-specific routing, URL parameters and wildcard\nmatching. Routes are registered directly with uWebSockets.js.\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\n\nconst server = new Server({\n  port: 3000,\n  http: {\n    routes: [\n      {\n        method: 'get',\n        path: '/',\n        handler: () => ({ message: 'Welcome to the API' })\n      },\n      {\n        method: 'get',\n        path: '/users',\n        handler: async () => ({ users: await getUsers() })\n      },\n      {\n        method: 'get',\n        path: '/users/:id',\n        handler: (ctx) => {\n          const id = ctx.getParameter('id') // or ctx.getParameter(0)\n          return getUserById(id)\n        }\n      },\n      {\n        method: 'post',\n        path: '/users',\n        handler: async (ctx) => {\n          const data = await ctx.json()\n          return await createUser(data)\n        }\n      },\n      {\n        method: 'put',\n        path: '/users/:id',\n        handler: async (ctx) => {\n          const id = ctx.getParameter('id')\n          const data = await ctx.json()\n          return await updateUser(id, data)\n        }\n      },\n      {\n        method: 'delete',\n        path: '/users/:id',\n        handler: (ctx) => {\n          const id = ctx.getParameter('id')\n          return deleteUser(id)\n        }\n      }\n    ],\n    onError: (event, error) => {\n      console.error(`HTTP Error [${event.method} ${event.url}]:`, error)\n    }\n  }\n})\n\nawait server.listen()\n```\n\n**Benefits of Declarative Routing:**\n\n- **Direct uWS registration** - Routes are registered with the native engine\n- **URL Parameters** - Built-in support for `:param` syntax\n- **Cleaner Code** - Declarative route definitions\n- **Method-specific** - Automatic HTTP method routing\n- **Wildcard catch-all** - A `{ method: 'any', path: '/*' }` route matches anything not matched by a more specific route (useful as a 404 handler or static-file fallback). Specific routes always win over `/*`.\n\n### WebSocket Server\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\n\nconst server = new Server({\n  port: 3000,\n  http: {\n    onRequest: (ctx) => {\n      return { message: 'HTTP endpoint' }\n    }\n  },\n  ws: {\n    maxPayloadLength: 1024 * 32, // 32 KiB per incoming message, in bytes\n    maxBackpressure: 1024 * 64, // 64 KiB per slow WebSocket, in bytes\n    closeOnBackpressureLimit: true,\n    idleTimeoutSec: 30,\n    onUpgrade: (meta) => ({ ip: meta.ip() }),\n    onOpen: (ctx) => {\n      console.log('Client connected:', ctx.data.ip)\n      ctx.send('Welcome!')\n    },\n    onMessage: (ctx, message, isBinary) => {\n      const text = Buffer.from(message).toString()\n      console.log('Received:', text)\n      ctx.send(`Echo: ${text}`)\n    },\n    onDropped: (ctx, message, isBinary) => {\n      console.warn('Dropped outgoing message for slow client:', message.byteLength, isBinary)\n    },\n    onClose: (ctx, code, message) => {\n      console.log('Client disconnected:', ctx.data.ip)\n    },\n    onError: (ctx, error) => {\n      console.error('WebSocket error:', error)\n    }\n  }\n})\n\nawait server.listen()\n```\n\n## API Documentation\n\n### Server Constructor\n\n```javascript\nnew Server(options)\n```\n\n**Options:**\n\n| Option          | Type            | Default       | Description                                     |\n| --------------- | --------------- | ------------- | ----------------------------------------------- |\n| `http`          | `Object`/`null` | `null`        | HTTP application configuration (see below)      |\n| `ws`            | `Object`/`null` | `null`        | WebSocket application configuration (see below) |\n| `transport`     | `Object`/`null` | `null`        | Explicit native HTTP parser/connection policy   |\n| `onServerError` | `Function`      | `() => {}`    | Post-listen transport error handler             |\n| `host`          | `String`        | `'127.0.0.1'` | Address or hostname to bind                     |\n| `port`          | `Number`        | `6000`        | Server port (1-65535)                           |\n\nAt least one of `http` or `ws` must be an object. A nullish value disables that\napplication layer. `http: null` with a configured `ws` still creates the minimal\nHTTP transport required for WebSocket upgrades; ordinary HTTP requests receive\na fixed `404` without allocating an `HttpContext`.\n\n| `http` | `ws`   | Result                                        |\n| ------ | ------ | --------------------------------------------- |\n| object | object | HTTP + WebSocket                              |\n| object | `null` | HTTP only                                     |\n| `null` | object | WebSocket with minimal HTTP upgrade transport |\n| `null` | `null` | Configuration error                           |\n\n**HTTP Options (`http` object):**\n\n| Option              | Type                       | Default       | Description                                                          |\n| ------------------- | -------------------------- | ------------- | -------------------------------------------------------------------- |\n| `maxBodySize`       | `Number`                   | `1048576`     | Maximum HTTP request body size in bytes (1 MiB default, 64 MiB max). |\n| `maxStreamBodySize` | `Number`                   | `maxBodySize` | Maximum `bodyStream()` size in bytes (non-negative safe integer).    |\n| `maxBodyBudget`     | `Number`/`null`            | `268435456`   | Aggregate retained/in-flight body-memory budget in bytes (256 MiB).  |\n| `requestTimeoutMs`  | `Number`                   | `30000`       | Async handler timeout in ms (100-300000); explicit `0` disables it.  |\n| `prefetch`          | `Boolean`                  | `false`       | Collect request bodies before user handlers run.                     |\n| `prefetchHeaders`   | `false`/`'all'`/`String[]` | omitted       | Retain selected request headers before handlers run.                 |\n| `onRequest`         | `Function`                 | default 404   | Universal request handler `(ctx) => any`                             |\n| `routes`            | `Array`                    | default 404   | Declarative route definitions                                        |\n| `errorDelivery`     | `Object`                   | see below     | Bounded async error-delivery policy                                  |\n| `onError`           | `Function`                 | omitted       | Request error handler `(event, error, { signal }) => any`            |\n\n`http.onRequest` and `http.routes` are mutually exclusive. `http: {}` enables\nHTTP with a deterministic default `404` response.\n\n`prefetchHeaders` is independent from body `prefetch`. A string list is\nnormalized once and retains only those fields in native-owned storage. `false`\nexplicitly retains none and `'all'` retains every field. When the option is\nomitted, no headers are retained automatically. Fields remain readable\nsynchronously and successful reads populate `ctx.headers`, but they are\nunavailable after the native callback returns unless read and cached before\ndetach. Use a selective list for the usual async case and `'all'` only when the\ncomplete set is actually required after an `await`.\n\n`ctx.headers` is a stable view of headers already retained or read. Accessing it\ndoes not enumerate the native request: without header prefetch it starts empty,\nand each successful `ctx.getReqHeader(name)` adds that field. `ctx.getHeaders()`\ncollects the complete set and fills the same view.\n\n```javascript\nnew Server({\n  http: {\n    prefetchHeaders: ['authorization', 'traceparent'],\n    onRequest: async (ctx) => {\n      await authorize(ctx.headers.authorization)\n      return { trace: ctx.headers.traceparent }\n    }\n  }\n})\n```\n\nThe native binding capability is checked during `listen()`. Configuration\nfails instead of silently falling back to a full JavaScript header scan.\n\n#### Bounded asynchronous error delivery\n\n`http.onError` receives an immutable, body-free event rather than the request's\n`HttpContext`. The request context and its body budget are released independently\nof remote logging, tracing, or metrics delivery.\n\nThis is the `5.1` contract and intentionally replaces the earlier\n`onError(ctx, error)` signature. Migrate context reads to the event fields and\nconfigure explicit `errorDelivery.headers`, `errorDelivery.query`, or\n`errorDelivery.includeIp` selection when that metadata is required.\n\n```javascript\nconst server = new Server({\n  http: {\n    onRequest,\n    errorDelivery: {\n      concurrency: 4,\n      queueLimit: 256,\n      timeoutMs: 5_000,\n      headers: ['x-request-id', 'traceparent'],\n      query: ['requestId', 'operation'],\n      includeIp: false\n    },\n    async onError(event, error, { signal }) {\n      await fetch(logEndpoint, {\n        method: 'POST',\n        headers: { 'content-type': 'application/json' },\n        body: JSON.stringify({ event, error: error.message }),\n        signal\n      })\n    }\n  }\n})\n```\n\nDefaults are `concurrency: 4`, `queueLimit: 256`, `timeoutMs: 5000`, no\nheaders, no query parameters, and no IP lookup. Selected headers are retained\nfor error reporting without widening the handler's `prefetchHeaders` policy.\n`errorDelivery.query` is a case-sensitive allowlist; only present selected\nvalues appear in `event.query`. `event.url` remains the path without the query\nstring. The allowlist accepts at most 100 unique names of 1–256 characters.\nRequest bodies, native request/response handles, and mutable context state are\nnever copied.\n\nThe delivery `AbortSignal` fires at the deadline. Arbitrary Promises cannot be\nforce-cancelled in JavaScript, so a timed-out attempt keeps its dispatcher slot\nuntil it actually settles. This prevents code that ignores cancellation from\ndefeating the concurrency bound; once the bounded queue is full, later events\nare counted as dropped. Use APIs such as `fetch` that honor the signal. Inspect\n`server.httpErrorDeliveryStats` for `inFlight`, `queued`, `completed`,\n`timedOut`, `aborted`, `rejected`, `dropped`, and `oldestInFlightMs`.\n\nGraceful shutdown stops accepting new error events after request/WebSocket\nlifecycle drain, then waits for accepted delivery work. The server-wide shutdown\ndeadline drops queued events and aborts active delivery signals. A callback that\nignores its signal cannot be force-cancelled; shutdown still resolves at its\ndeadline and the unsettled callback remains visible in delivery stats.\n\n**Native HTTP transport options (`transport` object):**\n\n| Option                   | Type            | Description                                      |\n| ------------------------ | --------------- | ------------------------------------------------ |\n| `maxHeaderSize`          | `Number`        | Request line plus all request headers, in bytes. |\n| `maxHeaderCount`         | `Number`        | Maximum number of request header fields.         |\n| `headersTimeoutMs`       | `Number`        | Deadline for receiving a complete request head.  |\n| `keepAliveTimeoutMs`     | `Number`        | Idle wait for the next keep-alive request.       |\n| `bodyIdleTimeoutMs`      | `Number`        | Idle timeout while receiving request body bytes. |\n| `minBodyRateBytesPerSec` | `Number`/`null` | Minimum body receive rate; `null` disables it.   |\n| `responseWriteTimeoutMs` | `Number`        | Timeout for outbound backpressure stalls.        |\n\nOnly explicitly configured values are passed to `swm-uws`; binding defaults\nremain binding-owned. Transport values are positive safe integers, timeout\nvalues are capped at 300000 ms, and `maxHeaderCount` is capped at the native\ncapacity of 100.\n\n`http.maxBodySize` and `ws.maxPayloadLength` are independent. Changing one does\nnot change the limit for the other protocol. `ws.maxPayloadLength` must be at\nleast one byte.\n\n#### Configuration examples\n\nThe following configurations cover every public `Server` option. Choose either\n`http.onRequest` or `http.routes`; they cannot be used together.\n\n**HTTP, transport policy, and root options**\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\n\nconst server = new Server({\n  host: '127.0.0.1',\n  port: 3000,\n  onServerError: (error) => {\n    console.error('Transport error:', error)\n  },\n  transport: {\n    maxHeaderSize: 32 * 1024,\n    maxHeaderCount: 64,\n    headersTimeoutMs: 10_000,\n    keepAliveTimeoutMs: 60_000,\n    bodyIdleTimeoutMs: 15_000,\n    minBodyRateBytesPerSec: 1024,\n    responseWriteTimeoutMs: 30_000\n  },\n  http: {\n    prefetch: true,\n    prefetchHeaders: ['authorization', 'traceparent'],\n    maxBodySize: 2 * 1024 * 1024,\n    maxBodyBudget: 64 * 1024 * 1024,\n    requestTimeoutMs: 15_000,\n    errorDelivery: {\n      concurrency: 4,\n      queueLimit: 256,\n      timeoutMs: 5_000,\n      headers: ['x-request-id', 'traceparent'],\n      query: ['requestId']\n    },\n    onRequest: async (ctx) => {\n      const body = await ctx.json()\n\n      return {\n        trace: ctx.headers.traceparent,\n        body\n      }\n    },\n    onError: (event, error) => {\n      console.error(`Request failed: ${event.method} ${event.url}`, error)\n    }\n  },\n  ws: null\n})\n\nawait server.listen()\n```\n\nSet `minBodyRateBytesPerSec: null` when the trusted ingress already enforces a\nbody receive-rate policy. Omit `transport` to use the binding defaults.\n\n**Declarative routes**\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\n\n// db is the application's database client.\nconst routeServer = new Server({\n  http: {\n    maxBodySize: 2 * 1024 * 1024,\n    maxStreamBodySize: 16 * 1024 * 1024,\n    maxBodyBudget: 32 * 1024 * 1024,\n    requestTimeoutMs: 10_000,\n    routes: [\n      {\n        method: 'post',\n        path: '/accounts/:accountId',\n        prefetch: true,\n        prefetchHeaders: ['authorization'],\n        maxBodySize: 256 * 1024,\n        before: [\n          async (ctx) => {\n            const token = ctx.headers.authorization\n\n            if (!token) {\n              return ctx.setStatus(401).send({ error: 'Unauthorized' })\n            }\n\n            const user = await db.users.findByAccessToken(token)\n            const accountId = ctx.getParameter('accountId')\n            const canWrite = user && (await db.accounts.canWrite(user.id, accountId))\n\n            if (!canWrite) {\n              return ctx.setStatus(403).send({ error: 'Forbidden' })\n            }\n          }\n        ],\n        handler: async (ctx) => {\n          const update = await ctx.json()\n\n          return db.accounts.update(ctx.getParameter('accountId'), update)\n        }\n      },\n      {\n        method: 'get',\n        path: '/health',\n        prefetch: false,\n        prefetchHeaders: false,\n        maxBodySize: 0,\n        handler: () => ({ ok: true })\n      }\n    ],\n    onError: (event, error) => {\n      console.error(`Route failed: ${event.url}`, error)\n    }\n  },\n  ws: null\n})\n\nawait routeServer.listen()\n```\n\n`before` may be one function or an ordered array. A route limit may lower, but\ncannot exceed, `http.maxBodySize`.\n\n**WebSocket options and callbacks**\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\n\nconst wsServer = new Server({\n  host: '127.0.0.1',\n  port: 3001,\n  http: null,\n  ws: {\n    maxPayloadLength: 64 * 1024,\n    maxBackpressure: 128 * 1024,\n    closeOnBackpressureLimit: true,\n    idleTimeoutSec: 30,\n    upgradeTimeoutMs: 5_000,\n    prefetchHeaders: ['authorization'],\n    onUpgrade: async (meta) => {\n      const token = meta.headers.authorization\n\n      if (!token) {\n        return null\n      }\n\n      const user = await authenticate(token)\n      return user ? { userId: user.id } : null\n    },\n    selectProtocol: (requested) => (requested.includes('chat.v1') ? 'chat.v1' : undefined),\n    connectionKey: (ctx) => ctx.data.userId,\n    onOpen: (ctx) => {\n      ctx.subscribe(`user:${ctx.key}`)\n    },\n    onMessage: (ctx, message, isBinary) => {\n      if (!isBinary) {\n        ctx.publish('chat', ctx.decode(message))\n      }\n    },\n    onDropped: (ctx, message, isBinary) => {\n      console.warn('Dropped message:', ctx.key, message.byteLength, isBinary)\n    },\n    onDrain: (ctx) => {\n      console.log('Writable again:', ctx.key)\n    },\n    onSubscription: (ctx, topic, newCount, oldCount) => {\n      console.log(ctx.key, ctx.decode(topic), oldCount, '->', newCount)\n    },\n    onClose: (ctx, code, reason) => {\n      console.log('Closed:', ctx.key, code, ctx.decode(reason))\n    },\n    onError: (ctx, error) => {\n      console.error('WebSocket error:', ctx?.key, error)\n    }\n  }\n})\n\nawait wsServer.listen()\n```\n\n`onUpgrade` is required and must return an object to accept or `null` to reject\nthe upgrade. `connectionKey` is optional; return `null` or `undefined` when a\nconnection must not be addressable through `server.sendTo()`.\n\n#### JavaScript configuration typing\n\nIDE types load automatically from the package root import. For a configuration\ndeclared separately, use `defineConfig()` to retain completion without JSDoc:\n\n```javascript\nimport Server, { defineConfig } from '@swarmmachina/swm-core'\n\nconst options = defineConfig({\n  http: { maxBodyBudget: 256 * 1024 * 1024 }\n})\n\nconst server = new Server(options)\n```\n\n`defineConfig()` returns the same object; constructor validation is unchanged.\nGlobal declarations and a `compilerOptions.types` entry are not required.\nAvoid deep imports from `@swarmmachina/swm-core/src/*`.\n\nFor an existing JSDoc codebase that uses `Swm.*`, opt in to the type-only\nnamespace once per project or entry point:\n\n```javascript\n/// <reference types=\"@swarmmachina/swm-core/global\" />\n\n/**\n * @typedef {object} ContextState\n * @property {?Swm.HttpContext} req\n * @property {?Swm.HttpContext} res\n */\n```\n\nThe namespace contains types only. It does not create or declare a runtime\n`globalThis.Swm` value.\n\n### HTTP body memory limits\n\nAll values are byte counts. `maxBodySize` defaults to 1 MiB and cannot exceed\n64 MiB; it limits one request. `maxBodyBudget` defaults to 256 MiB and limits\nthe aggregate retained and in-flight body memory across requests.\n\n`maxStreamBodySize` defaults to `maxBodySize` and limits `ctx.bodyStream()`.\nIt accepts any non-negative safe integer.\n\n```javascript\nconst server = new Server({\n  http: {\n    maxBodySize: 16 * 1024 * 1024,\n    maxStreamBodySize: 512 * 1024 * 1024,\n    maxBodyBudget: 256 * 1024 * 1024,\n    onRequest\n  }\n})\n```\n\nA valid `Content-Length` above `maxBodySize` is rejected before allocation.\nExceeding `maxBodySize` returns `413`; exhausting `maxBodyBudget` returns `503`.\n`maxBodyBudget: 0` permits only empty bodies, while `null` disables the\naggregate limit. The budget accounts for bodies only, not total process RSS.\n\nBody accessors materialize a `Buffer`; use a streaming or object-storage upload\nflow for larger uploads. `requestTimeoutMs` defaults to 30 seconds. Before a\nresponse starts it releases the body reservation and returns `408`. After an\nearly response it only releases the retained body bytes: an answered request is\nnot reported as an error, receives no second response, and stays active until\nits handler settles. It does not cancel application work.\n\n`ctx.bodyStream(maxSize)` does not retain the complete body or use\n`maxBodyBudget`. Its per-call and route limits can only lower\n`http.maxStreamBodySize`.\nThe normalized values are available on `server.effectiveConfig.http`.\n\n**Route Definition (for `routes` array):**\n\n| Property            | Type                       | Description                                                                                                           |\n| ------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------- |\n| `method`            | `String`                   | HTTP method: `'get'`, `'post'`, `'put'`, `'delete'`/`'del'`, `'patch'`, `'options'`, `'head'`, `'any'`                |\n| `path`              | `String`                   | URL path pattern. Supports `:param` segments and a `/*` wildcard catch-all                                            |\n| `handler`           | `Function`                 | Handler function `(ctx) => any \\| Promise<any>`                                                                       |\n| `before`            | `Function`/`Array`         | Optional. One function or an array, run before `handler` (see [Route before hooks](#route-before-hooks))              |\n| `prefetch`          | `Boolean`                  | Optional route body-prefetch override. Omitted inherits `http.prefetch`.                                              |\n| `prefetchHeaders`   | `false`/`'all'`/`String[]` | Optional header-retention override. Omitted inherits `http.prefetchHeaders`.                                          |\n| `maxBodySize`       | `Number`                   | Optional route body limit in bytes; cannot exceed `http.maxBodySize`.                                                 |\n| `maxStreamBodySize` | `Number`                   | Optional `bodyStream()` limit; defaults to explicit route `maxBodySize`, otherwise inherits `http.maxStreamBodySize`. |\n\n**WebSocket Options (`ws` object):**\n\n| Option                     | Type                       | Default                                  | Description                                                                                                                                                                                                                                                              |\n| -------------------------- | -------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `maxPayloadLength`         | `Number`                   | `1048576`                                | Maximum bytes in one incoming WebSocket message (1 MiB default, 64 MiB max).                                                                                                                                                                                             |\n| `maxBackpressure`          | `Number`                   | `65536`                                  | Maximum permitted outgoing backpressure in bytes per WebSocket.                                                                                                                                                                                                          |\n| `closeOnBackpressureLimit` | `Boolean`                  | `true`                                   | Close a slow WebSocket when an outgoing message is dropped at the backpressure limit.                                                                                                                                                                                    |\n| `idleTimeoutSec`           | `Number`                   | `15`                                     | Idle timeout in seconds (integer: 8-960).                                                                                                                                                                                                                                |\n| `upgradeTimeoutMs`         | `Number`                   | `10000`                                  | Deadline for an asynchronous `onUpgrade` decision in milliseconds (0-300000). `0` schedules a zero-delay timeout; it does not disable the deadline.                                                                                                                      |\n| `prefetchHeaders`          | `false`/`'all'`/`String[]` | omitted                                  | Retain selected HTTP upgrade headers for asynchronous `onUpgrade` authorization.                                                                                                                                                                                         |\n| `onOpen`                   | `Function`                 | `(ctx) => {}`                            | Called when client connects.                                                                                                                                                                                                                                             |\n| `onMessage`                | `Function`                 | `(ctx, message, isBinary) => {}`         | Called when message received.                                                                                                                                                                                                                                            |\n| `onDropped`                | `Function`                 | `(ctx, message, isBinary) => {}`         | Called when an outgoing message is dropped because the connection exceeded its backpressure limit. Copy `message` synchronously if it is needed after the callback returns or across an `await`.                                                                         |\n| `onClose`                  | `Function`                 | `(ctx, code, message) => {}`             | Called when client disconnects. `message` is copied and remains readable across `await`.                                                                                                                                                                                 |\n| `onDrain`                  | `Function`                 | `(ctx) => {}`                            | Called when socket is writable again.                                                                                                                                                                                                                                    |\n| `onError`                  | `Function`                 | `(ctx, error) => {}`                     | Called on WebSocket error.                                                                                                                                                                                                                                               |\n| `onUpgrade`                | `Function`                 | **required**                             | Authorize the upgrade. Return `null` to reject with `403`, or a flat object to accept; that exact object becomes `ctx.data`. Async handlers can safely use `meta` after an `await`.                                                                                      |\n| `selectProtocol`           | `Function`                 | `undefined`                              | Optional synchronous `(requested, userData) => string \\| undefined` subprotocol selector. The returned token must be present in the client-requested list.                                                                                                               |\n| `onSubscription`           | `Function`                 | `(ctx, topic, newCount, oldCount) => {}` | Called on topic subscription change.                                                                                                                                                                                                                                     |\n| `connectionKey`            | `Function`                 | `undefined`                              | Opt-in. `(ctx) => string \\| number \\| null`. Derive a stable key (e.g. a user id) so the connection can be addressed via [`server.sendTo()`](#serversendtokey-message-isbinary). Computed once in `onOpen`; return nullish to skip. Unset = no registry (zero overhead). |\n\n`ws.onUpgrade` is required. Use `onUpgrade: () => ({})` only for intentionally\nanonymous endpoints; use `ws: null` to disable WebSocket.\n\n`ws.prefetchHeaders` runs on the HTTP request before `onUpgrade` is called, so\nthe selected fields remain available from `meta.headers` and\n`meta.getHeader()` after an `await`. Without prefetch, `meta.headers` starts\nempty and is populated by successful `meta.getHeader(name)` calls without\nenumerating the native request. Those reads must happen synchronously to remain\navailable after detach. Fields outside a selective list are available only\nduring the synchronous part of `onUpgrade`. The protocol-required `sec-websocket-key`,\n`sec-websocket-protocol`, and `sec-websocket-extensions` fields are captured\ndirectly by swm-core and do not need to be included in the list.\n\n### WebSocket payload and backpressure limits\n\nWebSocket input uses `maxPayloadLength`, not HTTP `maxBodySize`. All limits are\nbyte counts:\n\n```javascript\nconst server = new Server({\n  http: null,\n  ws: {\n    maxPayloadLength: 1024 * 32, // 32 KiB per incoming message\n    maxBackpressure: 1024 * 64, // 64 KiB per slow connection\n    closeOnBackpressureLimit: true,\n    onUpgrade: () => ({}) // Explicitly allow anonymous connections.\n  }\n})\n```\n\n`maxPayloadLength` applies to each reconstructed text or binary message;\noversized messages close before `onMessage`. `maxBackpressure` applies per\nsocket. `send()` and `sendTo()` report backpressure or dropped messages;\n`onDropped` observes drops and `onDrain` signals recovery. With the default\n`closeOnBackpressureLimit: true`, a dropped message closes the slow socket.\nSet it to `false` only when dropping messages is acceptable.\n\n`selectProtocol` runs synchronously after `onUpgrade` accepts. Return one of the\nrequested tokens; returning `undefined` (or omitting the selector) negotiates no\nsubprotocol.\n\n```javascript\nconst server = new Server({\n  http: null,\n  ws: {\n    onUpgrade: async (meta) => {\n      const token = meta.getHeader('authorization')\n      const user = await authenticate(token)\n\n      return user ? { userId: user.id, role: user.role } : null\n    },\n    selectProtocol: (requested, userData) => {\n      if (userData.role === 'admin' && requested.includes('admin.v1')) {\n        return 'admin.v1'\n      }\n\n      return requested.includes('chat.v1') ? 'chat.v1' : undefined\n    }\n  }\n})\n\n// Browser/client: offer the protocols the client supports.\nconst socket = new WebSocket('wss://example.com', ['chat.v1', 'admin.v1'])\n```\n\nThe negotiated value is available as `socket.protocol`. Async upgrades capture\nURL, IP, headers, query, and the `/*` parameter before the native request\nexpires, so `UpgradeMeta` remains safe after an `await`. This capture is\nunrelated to `http.prefetch`.\n\n### Server Methods\n\n#### `server.listen()`\n\nStart the server and begin accepting connections.\n\n```javascript\nawait server.listen()\n```\n\n#### `server.shutdown([timeout])`\n\nGracefully shutdown the server. Waits for active connections to finish.\n\n```javascript\nserver.shutdown(10000) // 10 second timeout\n```\n\n#### `server.close()`\n\nForcefully close the server immediately.\n\n```javascript\nserver.close()\n```\n\n#### `server.publish(topic, message, [isBinary])`\n\nPublish message to all WebSocket clients subscribed to a topic.\n\n```javascript\nserver.publish('news', 'Breaking news!', false)\n```\n\n**Returns:** `boolean` - Success status\n\n#### `server.getSubscribersCount(topic)`\n\nGet number of subscribers for a topic.\n\n```javascript\nconst count = server.getSubscribersCount('news')\n```\n\n**Returns:** `number` - Subscriber count\n\n#### `server.sendTo(key, message, [isBinary])`\n\nSend a message directly to the single connection registered under `key` (the\nvalue returned from `ws.connectionKey`). For 1:1 messaging where topic pub/sub\nwould be overkill. Requires `ws.connectionKey` to be configured.\n\n```javascript\nserver.sendTo('user-42', 'private message')\n```\n\n**Returns:** `boolean` - `true` if a live connection was found and the transport\ndid not report the message as dropped; `false` when the key is unknown or the\nbackpressure limit was exceeded.\n\nKeys are matched with strict `Map` identity: `42` and `'42'` are different keys.\nPick one type for `connectionKey` return values and `sendTo()` arguments.\n\n#### `server.closeConnection(key, [code], [reason])`\n\nGracefully close the WebSocket registered under `key`. A close frame is sent,\nso the client receives the status code and reason. The connection is removed\nfrom the addressable registry before its `onClose` callback runs.\n\n```javascript\nserver.closeConnection('user-42', 1008, 'policy violation')\n```\n\n**Returns:** `boolean` - `true` when a live registered connection was found and\nclosing was initiated; `false` for an unknown key.\n\nThe close reason is limited to 123 UTF-8 bytes. Reserved wire codes such as\n`1005`, `1006`, and `1015` are rejected. Use `1008` for policy violations,\n`1013` for temporary overload, or an application code in the `3000`-`4999`\nrange.\n\n#### `server.terminateConnection(key)`\n\nImmediately force-close the WebSocket registered under `key` without sending a\nclose frame. Use this for abusive or unresponsive peers when graceful shutdown\nis not appropriate.\n\n```javascript\nserver.terminateConnection('user-42')\n```\n\n**Returns:** `boolean` - `true` when a live registered connection was found and\nterminated; `false` for an unknown key. The client observes an abnormal close\n(typically code `1006`) and receives no reason.\n\n#### `server.hasConnection(key)` / `server.getConnection(key)` / `server.connectionCount`\n\nInspect the connection registry. `hasConnection` returns a `boolean`;\n`getConnection` returns the raw WebSocket handle (or `undefined`);\n`connectionCount` is the number of registered connections. The package types\nonly guarantee the methods declared by `RawWebSocket`; the native handle may\nprovide additional uWS methods.\n\n```javascript\nif (server.hasConnection('user-42')) {\n  /* ... */\n}\nconst raw = server.getConnection('user-42') // raw uWS handle or undefined\nconsole.log(server.connectionCount)\n```\n\n### HttpContext API\n\nThe `ctx` object passed to `http.onRequest` and route handlers:\n\nRequest metadata uses explicit `get*` readers. `ctx.getReqHeader()` reads an\nincoming request header; `ctx.setHeader()` stages\nan outgoing response header.\n\n#### Properties\n\n| Property      | Type                     | Description                                                |\n| ------------- | ------------------------ | ---------------------------------------------------------- |\n| `ctx.headers` | `Record<string, string>` | Stable view of prefetched or already-read request headers. |\n| `ctx.replied` | `Boolean`                | Whether response has been sent                             |\n| `ctx.aborted` | `Boolean`                | Whether request was aborted                                |\n\n#### Methods\n\n##### `ctx.getMethod()`\n\nGet request lowercased method.\n\n```javascript\nconst method = ctx.getMethod()\n```\n\n**Returns:** `string`\n\n##### `ctx.getUrl()`\n\nGet request url.\n\n```javascript\nconst url = ctx.getUrl()\n```\n\n**Returns:** `string`\n\n##### `ctx.getIP()`\n\nGet network source metadata. A valid PROXY Protocol source address is preferred;\notherwise the TCP peer address is returned. IPv4-mapped IPv6 is normalized and\nthe value is cached only for the current context generation. `X-Forwarded-For`\nis not automatically trusted or parsed.\n\n```javascript\nconst ip = ctx.getIP()\n```\n\n**Returns:** `string`\n\n`ctx.getIP()` is not authenticated identity. Accept PROXY Protocol only on a\nlistener reachable exclusively through a trusted ingress or load balancer;\notherwise a public client can spoof the source address in its PROXY header.\nAuthorization, rate limiting, and audit attribution need an explicit proxy\ntrust policy.\n\n```text\nRecommended:\nInternet -> trusted ingress/load balancer -> private PROXY-enabled swm-core listener\n```\n\n```text\nUnsafe:\nInternet -> public listener accepting arbitrary PROXY headers\n```\n\nThe same trust boundary applies to `ws.onUpgrade(meta).ip()`.\n\n##### `ctx.getQuery(name)`\n\nGet query parameter value.\n\n```javascript\nconst page = ctx.getQuery('page') // ?page=1\n```\n\n**Returns:** `string | undefined` - `undefined` when the parameter is absent\n\n##### `ctx.getQuery()`\n\nGet full raw query string.\n\n```javascript\nconst q = ctx.getQuery() // page=1&limit=20\n```\n\n**Returns:** `string`\n\n##### `ctx.getParameter(indexOrName)`\n\nGet URL parameter by index or name (for pattern matching in the `routes` API).\n\n```javascript\n// By index\nconst id = ctx.getParameter(0) // First parameter\n\n// By name (routes API only)\nconst id = ctx.getParameter('id') // /users/:id\n\n// Multiple parameters\nconst userId = ctx.getParameter('userId') // /users/:userId/posts/:postId\nconst postId = ctx.getParameter('postId')\n```\n\n**Returns:** `string | undefined` - `undefined` when the parameter is absent\n\n##### `ctx.getReqHeader(name)`\n\nGet request header value.\n\n```javascript\nconst auth = ctx.getReqHeader('authorization')\n```\n\nHeader names are case-insensitive. A missing header returns an empty string.\n\n**Returns:** `string`\n\n##### `ctx.getHeaders()`\n\nGet a shallow copy of all incoming request headers. Names are lowercase and\nthe returned object has a `null` prototype. Mutating it does not affect the\ncontext's internal request cache. This method always requests the complete\nheader set; it never returns only the selective `ctx.headers` view. As a side\neffect, it fills the stable `ctx.headers` object with the complete set.\n\nWith selective or disabled header prefetch, call `getHeaders()` synchronously\nbefore the handler yields. After an async boundary, the complete set is\navailable only if it was already collected or `prefetchHeaders: 'all'` was\nconfigured; otherwise the method throws with code\n`REQUEST_HEADERS_NOT_RETAINED`.\n\n```javascript\nconst headers = ctx.getHeaders()\nconst auth = headers.authorization\n```\n\n**Returns:** `Record<string, string>`\n\n##### `ctx.getContentLength()`\n\nGet a valid non-negative `Content-Length` value. Returns `null` when the header\nis absent or invalid.\n\n```javascript\nconst length = ctx.getContentLength()\n```\n\n**Returns:** `number | null`\n\n##### `ctx.body([maxSize])`\n\nRead request body as Buffer.\n\n```javascript\nconst buffer = await ctx.body()\nconst buffer = await ctx.body(5 * 1024 * 1024) // 5 MiB, expressed in bytes\n```\n\n**Returns:** `Promise<Buffer>`\n\nIn `prefetch` mode, `http.maxBodySize` is the hard collection limit. A smaller\nper-call `maxSize` is still enforced when the accessor resolves; a larger value\ncannot raise the server limit. If `http.maxBodyBudget` is enabled, the same\naggregate budget also applies to manually started lazy readers.\n\nEvery `maxSize` argument is a non-negative safe integer byte count. The first\nbody accessor (or prefetch) fixes the collection limit; later calls reuse one\ncollector. A smaller later value checks the same materialized bytes, while a\nlarger value does not restart or expand an in-flight or failed collection.\n\n##### `ctx.bodyStream([maxSize])`\n\nStream the request body as a Node.js `Readable` of owned `Buffer` chunks with\nbackpressure. Set `prefetch: false` and call it synchronously before any hook\nor handler yields.\n\n```javascript\nimport { createWriteStream } from 'node:fs'\nimport { pipeline } from 'node:stream/promises'\n\nconst upload = ctx.bodyStream()\nawait pipeline(upload, createWriteStream('./uploads/video.mp4'))\n```\n\n**Returns:** `RequestBodyStream` with readonly `contentLength`: the declared\nlength in bytes, or `null`.\n\n`maxSize` is a non-negative safe integer in bytes and can only narrow route\nand `http.maxStreamBodySize` limits. Streaming bypasses `http.maxBodyBudget`;\nbackpressure bounds the stream queue, not total process memory.\n\nDo not combine it with other body readers. Creation errors throw synchronously;\nstream errors reject `pipeline()` or asynchronous iteration. If you stop reading\nearly, call `upload.destroy()` before returning.\n\n##### `ctx.buffer([maxSize])`\n\nAlias for `ctx.body([maxSize])`.\n\n```javascript\nconst buffer = await ctx.buffer()\n```\n\n**Returns:** `Promise<Buffer>`\n\n##### `ctx.json([maxSize])`\n\nParse request body as JSON.\n\n```javascript\nconst data = await ctx.json()\n```\n\n**Returns:** `Promise<any>`\n\n##### `ctx.text([maxSize])`\n\nRead request body as text.\n\n```javascript\nconst text = await ctx.text()\n```\n\n**Returns:** `Promise<string>`\n\n##### `ctx.setStatus(code)`\n\nSet response status code. Returns context for chaining.\n\n```javascript\nctx.setStatus(201).send({ created: true })\n```\n\n**Returns:** `HttpContext`\n\n##### `ctx.setHeader(key, value)`\n\nSet or replace a staged response header. Header names are case-insensitive HTTP tokens; invalid names and CR/LF in values throw before crossing into the native transport. Repeated `setHeader()` calls replace previously staged values for the same header. An array emits one header field per item in order, which is useful for repeatable fields such as `Set-Cookie`; matching `node:http`, `Cookie` array values are joined with `; `. Null or undefined scalar values are silently ignored.\n\n```javascript\nctx.setHeader('x-header-any', 'string-value').setStatus(201).send({ created: true })\n\nctx.setHeader('set-cookie', ['access=...; Path=/; HttpOnly', 'refresh=...; Path=/refresh; HttpOnly'])\n```\n\n**Returns:** `HttpContext`\n\n##### `ctx.appendHeader(key, value)`\n\nAppend another staged response header line without replacing existing values. Useful for repeated headers such as `Set-Cookie`. Null or undefined values are silently ignored.\n\n```javascript\nctx.appendHeader('set-cookie', 'access=...; Path=/; HttpOnly')\nctx.appendHeader('set-cookie', 'refresh=...; Path=/refresh; HttpOnly')\n```\n\n**Returns:** `HttpContext`\n\n##### `ctx.setHeaders(headers)`\n\nSet multiple response headers at once. Equivalent to calling `setHeader()` for each key. Header values may be strings or arrays of strings. A block returned by `prepareHeaders()` is also accepted.\n\n```javascript\nctx.setHeaders({\n  'x-request-id': '123',\n  'cache-control': 'no-cache',\n  'set-cookie': ['a=1; Path=/', 'b=2; Path=/refresh']\n})\n```\n\n##### `ctx.flushHeaders([headers])`\n\nFlush all staged headers (and optionally stage additional ones) to the underlying response. Called automatically by `reply()` and `startStreaming()` — only needed for advanced use cases.\n\n```javascript\nctx.flushHeaders({ 'x-extra': 'value' })\n```\n\n##### `ctx.send(data)`\n\nSend response with automatic content-type detection.\n\n```javascript\nctx.send({ message: 'OK' }) // application/json\nctx.send('Hello') // text/plain\nctx.send(Buffer.from('data')) // application/octet-stream\nctx.send(null) // 204 No Content\n```\n\n**Supported types:** Objects and arrays (JSON), strings and other primitive\nvalues (text), `Buffer`/`ArrayBuffer`/typed-array views (binary), and nullish\nvalues (`204 No Content`).\n\n##### `ctx.sendJson(data, [status])`\n\nSend a JSON response with explicit status code. Defaults to `200`.\n\n```javascript\nctx.sendJson({ users: [] })\nctx.sendJson({ error: 'Not found' }, 404)\n```\n\n##### `ctx.sendText(text, [status])`\n\nSend a plain text response with explicit status code. Defaults to `200`.\n\n```javascript\nctx.sendText('OK')\nctx.sendText('Created', 201)\n```\n\n##### `ctx.sendBuffer(buffer, [status])`\n\nSend a binary response with explicit status code. Defaults to `200`.\n\n```javascript\nctx.sendBuffer(Buffer.from('data'))\nctx.sendBuffer(imageBuffer, 201)\n```\n\n##### `ctx.sendError(error)`\n\nSend an error response. If `error.status` is a finite number, uses that as the HTTP status with `error.message` as the body. Otherwise responds with `500 Internal Server Error`.\n\n```javascript\nctx.sendError(new Error('Something broke'))\n\n// With custom status\nconst err = new Error('Not found')\nerr.status = 404\nctx.sendError(err)\n```\n\n##### `ctx.reply(status, headers, body)`\n\nSend response with full control over status, headers, and body. Header values may be strings or arrays of strings. Array values are written as separate header lines.\n\n```javascript\nctx.reply(\n  200,\n  {\n    'content-type': 'application/json',\n    'set-cookie': ['a=1; Path=/', 'b=2; Path=/refresh']\n  },\n  '{\"ok\":true}'\n)\n```\n\n##### `ctx.replyAndClose([status], [headers], [body])`\n\nSend a complete HTTP response, then close the underlying connection instead of\nallowing keep-alive reuse. The response is flushed before the transport closes.\n\n```javascript\nctx.replyAndClose(403, { 'content-type': 'text/plain' }, 'Forbidden')\n```\n\nUse this for rejected requests where the client should still receive a valid\nHTTP response. Closing the connection does not prevent the client from opening\na new one; authentication, bans, and rate limits remain separate policies.\n\n##### `ctx.terminate()`\n\nImmediately force-close the underlying HTTP connection. No response delivery is\nguaranteed.\n\n```javascript\nctx.terminate()\n```\n\nUse this for protocol abuse or peers that should not consume more transport\nresources. The context follows the normal aborted-request cleanup path.\n\n##### `ctx.stream(readable, [status], [headers])`\n\nStream a readable stream to the response.\n\n```javascript\nimport fs from 'fs'\n\nconst stream = fs.createReadStream('./large-file.mp4')\nawait ctx.stream(stream, 200, { 'content-type': 'video/mp4' })\n```\n\n**Returns:** `Promise<void>`\n\n##### `ctx.startStreaming([status], [headers])`\n\nStart streaming response manually (for advanced use cases). Header values may be strings or arrays of strings.\n\n```javascript\nctx.startStreaming(200, {\n  'content-type': 'text/plain',\n  'set-cookie': ['a=1; Path=/', 'b=2; Path=/refresh']\n})\n```\n\n##### `ctx.write(chunk)`\n\nWrite chunk to streaming response.\n\n```javascript\nconst ok = ctx.write('chunk of data')\nif (!ok) {\n  // backpressure, pause writing\n}\n```\n\n**Returns:** `boolean` - `false` if backpressure detected\n\n##### `ctx.end([chunk])`\n\nEnd streaming response.\n\n```javascript\nctx.end('final chunk')\n```\n\n##### `ctx.onWritable(callback)`\n\nRegister callback to be called when the response stream becomes writable again (for backpressure handling). The callback\nreceives the current write offset.\n\n```javascript\nctx.onWritable((offset) => {\n  // Socket is writable again, can resume writing\n  // offset is the current write offset\n})\n```\n\n**Returns:** `void`\n\n##### `ctx.tryEnd(chunk, totalSize)`\n\nTry to finish a streaming response whose total byte size is known. `totalSize`\nis required and is passed to the transport's `tryEnd` implementation.\n\n```javascript\nconst finalChunk = Buffer.from('final chunk')\nconst totalSize = ctx.getWriteOffset() + finalChunk.byteLength\nconst [ok, done] = ctx.tryEnd(finalChunk, totalSize)\nif (done) {\n  // Response is complete\n}\n```\n\n**Returns:** `[boolean, boolean]` - `[ok, done]` where `ok` indicates success and `done` indicates completion\n\n##### `ctx.getWriteOffset()`\n\nGet the current write offset (useful for `tryEnd` and backpressure handling).\n\n```javascript\nconst offset = ctx.getWriteOffset()\n```\n\n**Returns:** `number` - Current write offset\n\n### WSContext API\n\nThe `ctx` object passed to WebSocket handlers:\n\n#### Properties\n\n| Property   | Type              | Description                                                                                                                                                                                     |\n| ---------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `ctx.data` | `Object`          | Exact user data object returned by `onUpgrade` (`ctx.data === dataFromOnUpgrade`)                                                                                                               |\n| `ctx.ws`   | `RawWebSocket`    | Raw uWS WebSocket handle. Identity-stable for the connection; the exported `RawWebSocket` type documents the supported surface (see [Context lifetime & pooling](#wscontext-lifetime--pooling)) |\n| `ctx.key`  | `string`/`number` | Key this connection is registered under (from `connectionKey`), or `null`. Read-only.                                                                                                           |\n\n#### Methods\n\n##### `ctx.send(data, [isBinary])`\n\nSend message to this client.\n\n```javascript\nctx.send('Hello client!')\nctx.send(Buffer.from([1, 2, 3]), true) // binary\n```\n\n**Returns:** `number` — send status mirroring uWS: `1` success,\n`0` backpressure (queued behind backpressure), `2` dropped (not sent —\nbackpressure limit exceeded). Check it to react to backpressure.\n\n##### `ctx.end([code], [reason])`\n\nClose this WebSocket connection.\n\n```javascript\nctx.end(1000, 'Goodbye')\n```\n\nThe reason must fit in 123 UTF-8 bytes. Reserved wire codes cannot be sent.\n\n##### `ctx.terminate()`\n\nImmediately force-close this WebSocket without sending a close frame. The peer\nobserves an abnormal close and receives no close reason.\n\n```javascript\nctx.terminate()\n```\n\n##### `ctx.subscribe(topic)`\n\nSubscribe this client to a topic.\n\n```javascript\nctx.subscribe('news')\n```\n\n**Returns:** `boolean` - Success status\n\n##### `ctx.unsubscribe(topic)`\n\nUnsubscribe this client from a topic.\n\n```javascript\nctx.unsubscribe('news')\n```\n\n**Returns:** `boolean` - Success status\n\n##### `ctx.publish(topic, message, [isBinary])`\n\nPublish message to all subscribers of a topic.\n\n```javascript\nctx.publish('news', 'Breaking news!')\n```\n\n**Returns:** `boolean` - Success status\n\n##### `ctx.decode(message)`\n\nDecode a received binary message to a UTF-8 string — an opt-in convenience for\nthe common `Buffer.from(message).toString()`. Not called automatically, so\nhandlers that work with raw bytes pay nothing.\n\n```javascript\nonMessage: (ctx, message) => {\n  const text = ctx.decode(message)\n}\n```\n\n**Returns:** `string`\n\nCall it synchronously inside the handler: uWS neuters the `message`\n`ArrayBuffer` at the first `await`/return, so decoding it later throws. Unlike\n`ctx`, the `message` argument does **not** survive `await` — decode first, then\nawait.\n\n#### WSContext lifetime & pooling\n\n`HttpContext` is allocated fresh per request; its internal body and response\nresources are pooled. Hooks and the handler receive the same context, including\nacross `await`. Application properties such as `ctx.user`, symbols and\nnon-enumerable or non-configurable properties belong only to that request.\nFreezing the context is supported. Cleanup detaches its internal resources\nwithout enumerating or deleting application properties.\n\nThe context remains active until the returned handler Promise settles and the\nresponse lifecycle finishes. After cleanup, its HTTP methods throw\n`HTTP context is no longer active`; an old reference cannot act on another\nrequest. Application properties remain accessible while the application retains\nthe context, so drop those references when background work finishes. Raw native\nrequest/response handles retain their own, shorter transport lifetimes.\n\nContext identity across requests, enumeration of internal fields, and replacing\nframework methods or lifecycle fields are not supported extension points. Add\napplication properties under separate names instead.\n\n`WSContext` is allocated fresh per connection and **never reused**.\n\n| Context          | Allocated per…            | Valid for…                    | Safe to retain?                              |\n| ---------------- | ------------------------- | ----------------------------- | -------------------------------------------- |\n| `HttpContext`    | request (never reused)    | request/response lifecycle    | Data only after cleanup; HTTP methods expire |\n| `HttpErrorEvent` | reported HTTP error       | independent immutable value   | Yes — it contains bounded metadata, no body  |\n| `WSContext`      | connection (never reused) | the whole connection lifetime | Yes, for the connection; not past `onClose`  |\n\n- **One instance per connection.** The _same_ `WSContext` is passed to every\n  callback of a given connection (`onOpen`, `onMessage`, `onClose`, `onDrain`,\n  `onSubscription`). Instances are **not** shared between connections, so `ctx`\n  never silently switches sockets — you can hold it across an `await` and use it\n  as a stable per-connection identity.\n- **Don't use it past `onClose`.** After close the instance is cleared, so a\n  retained reference fails loudly (`ws is null`) instead of acting on a stale\n  socket. Don't stash `ctx` in a structure that outlives the connection.\n- **Address other connections by key, not by `ctx`.** To reach a _different_\n  connection (from another handler, a timer, an HTTP route), set `connectionKey`\n  and use [`server.sendTo()`](#serversendtokey-message-isbinary), or keep the raw\n  `ctx.ws` handle yourself. See\n  [Direct messaging between connections](#direct-messaging-between-connections).\n\n## Examples\n\n### REST API with Error Handling\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\n\nconst users = new Map()\n\nconst server = new Server({\n  port: 3000,\n  http: {\n    onRequest: async (ctx) => {\n      try {\n        // GET /users\n        if (ctx.getUrl() === '/users' && ctx.getMethod() === 'get') {\n          return Array.from(users.values())\n        }\n\n        // GET /users/:id\n        if (ctx.getUrl().startsWith('/users/') && ctx.getMethod() === 'get') {\n          const id = ctx.getUrl().split('/')[2]\n          const user = users.get(id)\n\n          if (!user) {\n            return ctx.setStatus(404).send({ error: 'User not found' })\n          }\n\n          return user\n        }\n\n        // POST /users\n        if (ctx.getUrl() === '/users' && ctx.getMethod() === 'post') {\n          const data = await ctx.json()\n\n          if (!data.name || !data.email) {\n            return ctx.setStatus(400).send({ error: 'Missing required fields' })\n          }\n\n          const user = { id: Date.now().toString(), ...data }\n          users.set(user.id, user)\n\n          return ctx.setStatus(201).send(user)\n        }\n\n        // 404\n        return ctx.setStatus(404).send({ error: 'Not found' })\n      } catch (error) {\n        console.error('Route error:', error)\n        return ctx.setStatus(500).send({ error: 'Internal server error' })\n      }\n    },\n    onError: (event, error) => {\n      console.error(`HTTP Error [${event.method} ${event.url}]:`, error)\n    }\n  }\n})\n\nawait server.listen()\nconsole.log('REST API running on http://localhost:3000')\n```\n\n### File Upload\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\nimport fs from 'fs/promises'\n\nconst server = new Server({\n  port: 3000,\n  http: {\n    maxBodySize: 10 * 1024 * 1024, // 10 MiB, expressed in bytes\n    onRequest: async (ctx) => {\n      if (ctx.getUrl() === '/upload' && ctx.getMethod() === 'post') {\n        const filename = ctx.getQuery('filename') || 'upload.bin'\n        const body = await ctx.body()\n\n        await fs.writeFile(`./uploads/${filename}`, body)\n\n        return ctx.setStatus(201).send({\n          success: true,\n          filename,\n          size: body.length\n        })\n      }\n\n      return ctx.setStatus(404).send({ error: 'Not found' })\n    }\n  }\n})\n\nawait server.listen()\n```\n\n### File Streaming\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\nimport fs from 'fs'\n\nconst server = new Server({\n  port: 3000,\n  http: {\n    onRequest: async (ctx) => {\n      if (ctx.getUrl() === '/download' && ctx.getMethod() === 'get') {\n        const filename = ctx.getQuery('file')\n\n        if (!filename) {\n          return ctx.setStatus(400).send({ error: 'Missing file parameter' })\n        }\n\n        const stream = fs.createReadStream(`./files/${filename}`)\n\n        await ctx.stream(stream, 200, {\n          'content-type': 'application/octet-stream',\n          'content-disposition': `attachment; filename=\"${filename}\"`\n        })\n\n        return\n      }\n\n      return ctx.setStatus(404).send({ error: 'Not found' })\n    }\n  }\n})\n\nawait server.listen()\n```\n\n### WebSocket Chat Room\n\n```javascript\nimport Server from '@swarmmachina/swm-core'\n\nconst server = new Server({\n  port: 3000,\n  http: null,\n  ws: {\n    onUpgrade: (meta) => ({ username: meta.getQuery('username') || 'Anonymous' }),\n    onOpen: (ctx) => {\n      console.log('User joined:', ctx.data.username)\n      ctx.subscribe('chat')\n      ctx.publish(\n        'chat',\n        JSON.stringify({\n          type: 'join',\n          user: ctx.data.username\n        })\n      )\n    },\n    onMessage: (ctx, message, isBinary) => {\n      const text = Buffer.from(message).toString()\n\n      // Broadcast to all clients in the chat room\n      ctx.publish(\n        'chat',\n        JSON.stringify({\n          type: 'message',\n          user: ctx.data.username,\n          text\n        })\n      )\n    },\n    onClose: (ctx, code, message) => {\n      console.log('User left:', ctx.data.username)\n      ctx.publish(\n        'chat',\n        JSON.stringify({\n          type: 'leave',\n          user: ctx.data.username\n        })\n      )\n    }\n  }\n})\n\nawait server.listen()\nconsole.log('Chat server running on ws://localhost:3000')\n```","readmeFilename":"README.md"}