{"_id":"roster-server","_rev":"90-c447d3289b8a580b1d561d0985468527","name":"roster-server","dist-tags":{"latest":"2.4.14"},"versions":{"1.1.8":{"name":"roster-server","version":"1.1.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.1.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterExpress#readme","bugs":{"url":"https://github.com/clasen/RosterExpress/issues"},"dist":{"shasum":"864a21b28deff136c7145b0a2a4e1bd6a7eecb30","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.1.8.tgz","fileCount":6,"integrity":"sha512-Ache+56luOGMjEP4g8ZARZk3mpZNG9psCXqZpbxjScBEcfCOq2ddpOqgUh4SYfItrZ4q2lLFVxG3SqQIwMvcgA==","signatures":[{"sig":"MEUCIQCTfI7n+20UYV3P8oGeJvoGDIDGHY3E9iYDLgieRdvNgwIgXqlwvSZh8QHuednhhyW6I+xi2n5yZ53Pqd0JdqAQyl4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14948},"main":"index.js","gitHead":"9894c377998608c334e5c94852274eec0f04a6cf","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterExpress.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.1.8_1731605586842_0.20071660267927105","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"roster-server","version":"1.2.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.2.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"fbfc2fcfac8e1d57eb25fc3a6bf988d82591ea27","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.2.0.tgz","fileCount":6,"integrity":"sha512-sBBskQf8ideevvRTMB3US88JW8bJO2ld3RkgFda2rTLufgtDm+Ohr6FV4v2b6X8X5AJE4BJwiT9EnFeWk32Lyw==","signatures":[{"sig":"MEUCIGbQPqILHA0bIibysozwzR7dI+vs3lN88yop9WeOBca1AiEA8O1f2+PLp9dg3/j10s8JPWJuoiuGt+cDXZwE3yx7RUo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14945},"main":"index.js","gitHead":"debda72c429f8595bb23676a90466d178655ffce","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.2.0_1731606420435_0.03743233532124379","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"roster-server","version":"1.2.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.2.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"4fccbeb8c52d5621d20f6e2529a3a47adbda6f2b","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.2.2.tgz","fileCount":7,"integrity":"sha512-gjeb532+ehFBCLFEA+0VVenf+JbzTYNO5qBWwJWcdJ/56y9A8UtYNswnIoIJm2CkUDY9C/vmmMxd8qwghSe1bw==","signatures":[{"sig":"MEUCIGJfH1EHYfh9XTHY+VM2Ddcm2NUF9LJgZoVa1M29gJDFAiEA1TY/yCM5Hiz4V7d8n/I5LfFMCF36I5hHd9Jv+FmvmlI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15563},"main":"index.js","gitHead":"debda72c429f8595bb23676a90466d178655ffce","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.2.2_1731608999463_0.9901895505016547","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"roster-server","version":"1.2.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.2.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"445aea7528d53c36043db136e3e232e9bb6414a3","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.2.4.tgz","fileCount":9,"integrity":"sha512-B9BeHnReWgMEMsc/icwZMOk8EIYCSxgYJlgJl5plbMOTzoKZaVNBHyEed4RE8OXh96IcxMDhBqJDJ52AH+e4Hw==","signatures":[{"sig":"MEYCIQCQwiJ+IZarS1abm0ftNhPHaug02YBkH6N9YU81Q0LhZQIhAKAIz81zWuezTr066II8D4xfgObRa5XUR8q4icOZGdii","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17036},"main":"index.js","gitHead":"debda72c429f8595bb23676a90466d178655ffce","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.2.4_1731611128319_0.9463447306594934","host":"s3://npm-registry-packages"}},"1.2.6":{"name":"roster-server","version":"1.2.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.2.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"9ccd08de0e53705165ebae47a578e4270d927de9","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.2.6.tgz","fileCount":9,"integrity":"sha512-2oOVSFBrVl8wXeTAqEp5WJT+wXiC6JinI2+PUWH6qCAWFEjok/GsZrwEwWyRP+2A1a6qMDHyNESamY7B7beM0A==","signatures":[{"sig":"MEUCIQCzdhdXFmAGksp/YHySeGXtmV9S8nc83dQ9lEt3itVEUwIgEP/1MYyzSzL9rfDasgaVCo1dnfX+Iu9ssG+QtYcREz0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17389},"main":"index.js","gitHead":"debda72c429f8595bb23676a90466d178655ffce","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.2.6_1731611390254_0.33624588116407716","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"roster-server","version":"1.3.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.3.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"b0f8f3cbdc39c2d7422c22867ebbdc8e0245cef4","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.3.0.tgz","fileCount":9,"integrity":"sha512-0z6ddQ2jboATnNVHljVoUDnrl2vO73+Hwdpydz6b3OwdSHMZpOw0ZW99prHVwPwK65I9+E/4hW6vqiP342gOww==","signatures":[{"sig":"MEUCID7c7AVVl1Xwrq7UpU/EdwvJv5D4rJZmVNnrzoFHEwFEAiEAjaMxq9jSCDvnvOvR0gMVJ+JCrvEI68xn8Sw+M39OraM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17073},"main":"index.js","gitHead":"debda72c429f8595bb23676a90466d178655ffce","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.3.0_1731615019112_0.6105517870825896","host":"s3://npm-registry-packages"}},"1.4.2":{"name":"roster-server","version":"1.4.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.4.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"821cfcd77a70cc869293453d13b844727aa49048","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.4.2.tgz","fileCount":10,"integrity":"sha512-KQh7hsJE2EaElhySlqudBYRUpOsx73HbC1fXpftl5SZIR37ZfpaauijysjbbO+2aQINjtR+YrlSa6XrJ5S+IvA==","signatures":[{"sig":"MEYCIQDZl2LcMzBa8TNnfDxlAGOgFZkK2cMvGvsJmpAsJfAuHwIhANEFndYpaGTe+Vxh86FbkUQC9OdYrmVSLic6Qtqo2ZuQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17645},"main":"index.js","gitHead":"debda72c429f8595bb23676a90466d178655ffce","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.4.2_1731630196948_0.4900060254200935","host":"s3://npm-registry-packages"}},"1.4.4":{"name":"roster-server","version":"1.4.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.4.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"3e22cf0843cbe32d6e02b98b7cfffe5cbbe8e5b0","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.4.4.tgz","fileCount":10,"integrity":"sha512-qeTRJKhAW3tzSGnh6uENOdBx9BRq4ih8WAD3OMcUqNn4zpG7bNuFvu9g5jKUyPDIwKj32bhnWtBzucjWf/d1gw==","signatures":[{"sig":"MEUCIQCWe790B+OOh+4aE/Qt4x62+JmmovM0sMGFDVvQMhVXlQIgZESagYYoOlaROPBOdaF4RRvhDgKd1SDogHWZLNYE0hA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17815},"main":"index.js","gitHead":"9c3b6ca961719345915256dcf7e16b9e72d20edc","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.4.4_1731631163426_0.4922246917098827","host":"s3://npm-registry-packages"}},"1.4.6":{"name":"roster-server","version":"1.4.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.4.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"a0d94f1203e4e06ba8505fb6165f840c371af8f8","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.4.6.tgz","fileCount":10,"integrity":"sha512-PbTFl0YWuN6wB0PYCaEicLj3MyW94LUgovkMnUOXSQBqUFvNo2wrDd49HQzBa7CY00433HrQqaPZ7hl5HhDUEg==","signatures":[{"sig":"MEQCIFiiY3xMdV/L8cAWUnRd+YKcoxc38hr4SRVp23onb01PAiAxCRZ76pGIHyWbiqB0gcnSP/1qDgxXAHesPIKKgOE0OA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18064},"main":"index.js","gitHead":"ca94e6577dbe7f21277bf29d9d2d002d7ef230f0","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.4.6_1731884990511_0.5441510249989749","host":"s3://npm-registry-packages"}},"1.4.8":{"name":"roster-server","version":"1.4.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.4.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"de5dafc9d8bd031fbdeee16717868ba55929859a","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.4.8.tgz","fileCount":10,"integrity":"sha512-qrAERVgh9r6lNwwGOpeFoARUg2NJznuIFJBSUnVdG9EyN0izYb9aO7TDy+Rzfjd8nNxG1sdNrXaSC7m8aSw5eg==","signatures":[{"sig":"MEQCIQDAe5Kv2+MDWbtFwPdvv0ahh7dvOVDo/Kv8fzDTIAE95wIfQ03BCQ0+ervZkEyghZK9CaBrxAtIkROxCjlceIBSSQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18047},"main":"index.js","gitHead":"53b453c7f6cba5d13c3c763316a56f97c3f06766","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.4.8_1731892868684_0.5168598657897747","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"roster-server","version":"1.5.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.5.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"ed75e04f7b7e29edd290f70064fc98b4eda5e191","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.5.0.tgz","fileCount":10,"integrity":"sha512-0Aiv8hR6rVIk1wFh64hp7SZmyopTxXgy9if1Nz+MsOwtAJN5rrXAaTfRQIuTHjodACVDNIMwEuCwBSjNQFVKAg==","signatures":[{"sig":"MEUCICvA5ko7M6Rfk9by5uCJefhVH3uEWtFVQDhlwytJ4OZVAiEAvOj8fDDq1iMepzDRXvvG7MU/5+wBorQmKSSrogA4nmQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18056},"main":"index.js","gitHead":"2c3c61485398d68ee4aadec1f9130e370100e69a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.5.0_1731893067817_0.8738289157710526","host":"s3://npm-registry-packages"}},"1.5.2":{"name":"roster-server","version":"1.5.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.5.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"4f0545f5fa2f2fb5f14325327a52bd2555669f2b","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.5.2.tgz","fileCount":10,"integrity":"sha512-kTQZuclK5S11hgiWzgESpLwbDpE9j/Oeq444vbUIjS6BzeerqZFjhhX7yKa5mSVuTuz+19dzhe+JN2Q4wl+Zfg==","signatures":[{"sig":"MEUCIQDbYcotlsQ/5n+oaSACpwlLMWMUH6VDoqt9kjuggpSI3gIgPW18t6p1uDV3mnw4ZCEZKwKDlxaV9xSIUEMtYOtPunI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17473},"main":"index.js","gitHead":"cca143fcba4bfed69540cd9afa00c2943c743631","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.5.2_1732038710154_0.21534594278666552","host":"s3://npm-registry-packages"}},"1.5.4":{"name":"roster-server","version":"1.5.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.5.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"59b8c352d27f40f2de7bc5c77403cbb040bd8f1f","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.5.4.tgz","fileCount":11,"integrity":"sha512-CM2M153RkOH2Qjio4/YSDqiK/+wwjzuu8NHE8lwK1O/Sa4evWi420DyZJXbyGQL0K1MAUdKrg5pnNDWl88H8Kw==","signatures":[{"sig":"MEUCIAZ/Bwqq+OAgtJ9W95iBXIZOn40+79KMQVNQ79a0c8ZuAiEAoeyvlMRU7gnDqZss51j/HOxWzJ4FYcbbufeQzH0bep0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18585},"main":"index.js","gitHead":"cca143fcba4bfed69540cd9afa00c2943c743631","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.5.4_1732134606869_0.761902648162126","host":"s3://npm-registry-packages"}},"1.5.6":{"name":"roster-server","version":"1.5.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.5.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"35ef3f7ac970ab774ef398f55a226f7f0c1a5643","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.5.6.tgz","fileCount":11,"integrity":"sha512-tLNTJHYjcQOwZ+YcuKy0Ef0+3EcuB8+rLaxzM1jA6Xt4XQEzZYUq3sG9x9WMfDfCnSW2wCHHH2+OznhzTDoOXA==","signatures":[{"sig":"MEQCICEuRyPvAb3ksTM5Z1hDTQ8oEKyUTDu/NATMbMJW2dtRAiAfbC6m4MXF08Un4nXKowoJraIthlqLfW7L/PqknFRHQA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18766},"main":"index.js","gitHead":"cca143fcba4bfed69540cd9afa00c2943c743631","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.5.6_1732135849044_0.2106395980062803","host":"s3://npm-registry-packages"}},"1.5.8":{"name":"roster-server","version":"1.5.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.5.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"24b6a92bde21d6131803f8327c9fbf11dbc93c8d","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.5.8.tgz","fileCount":11,"integrity":"sha512-X8bXamh1iPKL2vHtTrQY//M3zQpxgyBhVQCtOzNBsRiSEpwjLnOYucQjgGMCoTSdrBPaLyc9t2xKz2iY34bOWQ==","signatures":[{"sig":"MEYCIQCKo2RevF4FKc1Vzods3DCZAE3xjQPd8NdnW+TZWIehtwIhAIpHuDlLdhm2Z14C7FETTqaWqN9++l0f+SOM9G7DSIQa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18767},"main":"index.js","gitHead":"cca143fcba4bfed69540cd9afa00c2943c743631","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.5.8_1732135927097_0.16512219636842396","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"roster-server","version":"1.6.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.6.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"c1ebb9a53a6199c16257302304bebe0311133182","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.6.0.tgz","fileCount":11,"integrity":"sha512-OEAbd0zctPvrZxjCEjWITVyA4Zbd0BYXIhs+mItfSV29gYsuBhAzZ0nhGOSCbKbqsOl9WEKX0DEd8rrelHHs3A==","signatures":[{"sig":"MEUCIQDlI1ckztBlR68ETZCddonu799R2JhnrayoDVtTgt+u8wIgEnfnK2NgLyi5Hh59EOLA2Udq4Rg3Ph9zPxTprwbkrns=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18787},"main":"index.js","gitHead":"2943c89071e954b4c5c1e445dc34e32edd97bc08","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.6.0_1732146657976_0.2453688554057658","host":"s3://npm-registry-packages"}},"1.6.2":{"name":"roster-server","version":"1.6.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.6.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"0a417e43cc481426892486c35552cd6d75c38d2d","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.6.2.tgz","fileCount":11,"integrity":"sha512-TGCJMzju9Q6/Wsa9PEbRSiezJYAnXTYIQJw1evWBYCgngZqFfhzd1XTt6n8l5eSMoyUYavs6Wc653cQTO23KwA==","signatures":[{"sig":"MEQCIEDJdnhjCv7n8WBpAF01Qf/eBeS/Su2noKYF4csrks23AiA8sgCPo7wtPorEQIFiFpSPut6j9J94hlu3sV9F9uFshQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19145},"main":"index.js","gitHead":"2943c89071e954b4c5c1e445dc34e32edd97bc08","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.6.2_1732894037635_0.1977747744831131","host":"s3://npm-registry-packages"}},"1.6.4":{"name":"roster-server","version":"1.6.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.6.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"91cc6e94fc5c0e524c5211f5542483f49d3fdfb7","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.6.4.tgz","fileCount":11,"integrity":"sha512-wRDZtSPAeAZk9CzqciQ2nan9Y3uZ9mgDoQeYab49LPDqnobFYf54jw6wEowJdKrO4sjrzZ+D22kdkrH4sLZqEA==","signatures":[{"sig":"MEUCIQDF6tLc1dmF8uomv5RDGeNp05mcXuRuja33vPvtBcZOOAIgba96tkyQhH7IlByGHqjAEMRTUO18+71Fg8z71x1ZM7Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19431},"main":"index.js","gitHead":"56b07dcdf2aa3ab961b2aa3aa5f8fc80db7eff3a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.6.4_1738014450381_0.7690357799460246","host":"s3://npm-registry-packages-npm-production"}},"1.6.6":{"name":"roster-server","version":"1.6.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.6.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"3c4c463f97ca6698d1478486d381b0f2855a0ea8","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.6.6.tgz","fileCount":11,"integrity":"sha512-iivlOKuabvNGl7x7Ptn8yTjGceMEEu4pmNTrhOs+FLsRMTSLHGqyb8jcYdoluTHqI74vwpjojkZ6omx2bZ/OQQ==","signatures":[{"sig":"MEQCIBYdJia2JUBl+QhgNdzhqtcwLwcViTMX+NvUqBiwxbUCAiBNCnqcW3VGrlXgQ8cItEKLhqH/3ShkpJt9gY4q84MJyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19162},"main":"index.js","gitHead":"56b07dcdf2aa3ab961b2aa3aa5f8fc80db7eff3a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.6.6_1738014637111_0.8578672577302477","host":"s3://npm-registry-packages-npm-production"}},"1.6.8":{"name":"roster-server","version":"1.6.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.6.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"74ee338354c18a40fd9b40645720d2edd82c8e0f","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.6.8.tgz","fileCount":11,"integrity":"sha512-m9MYWWaKqXOpbbyzlW03/ngxmL5jKSsb07AknAJkF4NqA7tv00qszPuOtKZeeztxqaQKADVx4VkrQCWcHb+JyA==","signatures":[{"sig":"MEQCIDVS0UkNAKv51MQ74ZR2ihcL4xyqZFlsoE7LNDQVH0+2AiBrVxNu0qAIZAc2EDYUzkjRVJiDdH7GPuZWM1tO9YZH1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19173},"main":"index.js","gitHead":"56b07dcdf2aa3ab961b2aa3aa5f8fc80db7eff3a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.6.8_1738015024167_0.9490609772890002","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"roster-server","version":"1.7.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.7.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"efba35e2a2f42d723f97e595c6ea93ad64412ea9","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.7.0.tgz","fileCount":11,"integrity":"sha512-ai4iyZnNs0U4OCmetg71lH/2LWrlJdLp3lfKmid3PFpYUQEZY/754YYi1PQxtciyw2vy9q9stsHR3sb0EW4geQ==","signatures":[{"sig":"MEUCIQCfOxlrC2UFhx1dRTKABnjg/xRWTGeOS/qrHWDuKFkUSQIgN1j14VHLP5u6GYMJRq8Hd9lnUix3XwDClyXqUtePhxY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19462},"main":"index.js","gitHead":"283c110cbf2c753483b4f51e98284803f9fc9222","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.7.0_1738015577121_0.12705079845920997","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"roster-server","version":"1.7.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.7.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"fe4e0a4816bf53e39dbe0e43f45164c95494a509","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.7.2.tgz","fileCount":11,"integrity":"sha512-FNnNKxAgrKDOM8YASCqpOD44M4fWPmxdigK4dBwiCG7/c8iEw7kjSBMAY8L1Y+VsNXeLtxdiDc++1Mgxi388HA==","signatures":[{"sig":"MEYCIQCElVBJRlPL1k/Oidxu7irS1yde7Cs6PIkuJu49M1UzDwIhAIfBwahufH8PNus7AQK8u+5x85ifd6kfI39R8wQndyX3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19462},"main":"index.js","gitHead":"283c110cbf2c753483b4f51e98284803f9fc9222","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.7.2_1738015844872_0.9642943800233092","host":"s3://npm-registry-packages-npm-production"}},"1.7.4":{"name":"roster-server","version":"1.7.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.7.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"5a3773a01c0cf8be36a09fcc65ea4938f94b0ca8","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.7.4.tgz","fileCount":11,"integrity":"sha512-umtTLBmAFugNF15BUv/FdgdcNduEmqxeEAUcjxRVsnE1mlzZXruryB+ERTsXvxrhzxz96+O2rGM/ANI/3nu58Q==","signatures":[{"sig":"MEUCIQDdKi+4fflffhlB0cUi+rH/Bd1XFItSjPAAcjYtKztLigIgAbZhvxHkJVWvocrk/+hA14KqB89g9rs7Hx1ESL0Qfm8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19598},"main":"index.js","gitHead":"62de8144905d24fe8770d9f080011a16043e55b2","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.2.3","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.7.4_1738016467031_0.24880804713905613","host":"s3://npm-registry-packages-npm-production"}},"1.7.6":{"name":"roster-server","version":"1.7.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.7.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"7932f0e439933abbd6f5e720a633425f522e7394","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.7.6.tgz","fileCount":11,"integrity":"sha512-+J3jmzB63DajnuuEa3EV+PAN9XpeB+bjXG2032xASVlZsdHVcihoeA1EZaIXRUYDMS0t4k5ijQEOwxexyObzAQ==","signatures":[{"sig":"MEYCIQDwp7oVmFq7HqxzHfHMUKkRO1qzWQFnc/DJbdxmp7vEuwIhAIvtROWThHo+9wZzafkz4DAbG1CnCMefkbnDMa8HiA6O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19619},"main":"index.js","gitHead":"62de8144905d24fe8770d9f080011a16043e55b2","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"10.9.2","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.7.6_1748364266653_0.3936150547276822","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"roster-server","version":"1.8.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.8.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"ccbd2893c8303413944740fa6d8e6da1fcea0dc2","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.8.0.tgz","fileCount":12,"integrity":"sha512-FiKNc5h7tW1LGgn5Hmv0EiIkfCBgy1rfGtgk5THkMo/L6yKWwuBJrPqa3aV+YNhVDC/2Lo8dgLMU2C5qwL1vew==","signatures":[{"sig":"MEQCIH9qz9bvbsuqp0ywMXYfzEqyYE87bOy6dFbHDRYyIrA/AiBxVU6tXFsMmm1mCD3VA9aA39hy7CHG9Xah/OZQt33YCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28952},"main":"index.js","gitHead":"457281a90593077c43ce68d9e3c1fcae318d98e0","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.5.1","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.8.0_1753628611498_0.6919328425252365","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"roster-server","version":"1.8.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.8.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"7f15f908aaa62ff0fa495cfb458fb5c9a7afdbc4","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.8.2.tgz","fileCount":12,"integrity":"sha512-yRKUExsorHRG6VIbzgThnLH0IgRDtk5pYPF5dYnp2MzyWqt/g6IB0miRaAOaablip9iOy0fhZjfILPGAx0PKrw==","signatures":[{"sig":"MEQCIB8cXmNJuloELyrTwF5JnfuLE3CXUvsfq1DdAZ+zhx3OAiBSUuFCafT9J0rIWm+SNfG2LvmXvOFdMF7utWsdZFNkjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31691},"main":"index.js","gitHead":"b3c4e426b9a5382d4b977a0e96775e27cfa8ed0b","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.5.1","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.8.2_1755803247092_0.968236372892042","host":"s3://npm-registry-packages-npm-production"}},"1.8.4":{"name":"roster-server","version":"1.8.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.8.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"8c2d2e760785a6c812bc345eed0e84033a8f7b73","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.8.4.tgz","fileCount":12,"integrity":"sha512-aZZUR18yn52P1S4Igkh5278vidq4/YreUOgjjhhhPuq40I9Br53pjEyeyHHV2OpZZv1+/Q1fWxYCIIyT7goGhw==","signatures":[{"sig":"MEUCIA7m3V+le39VKwP3+/KQayzg+m3mI4XXPGPDC9zv+O68AiEAkcZy4P9xC+Rf/sp4mXWoXzrfZK6hXJYauaGYFp5IaVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32484},"main":"index.js","gitHead":"f2c7aa7f8ca72c64ca57c00ca63156fb833838e3","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.5.1","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.8.4_1755813823719_0.4105929754059898","host":"s3://npm-registry-packages-npm-production"}},"1.8.6":{"name":"roster-server","version":"1.8.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.8.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"72c6bb17337e5f2d4067e10d16d98db9e311382c","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.8.6.tgz","fileCount":15,"integrity":"sha512-p/pwaermTAGHA3PFeDeZVuoUGuV8/Qyn27MrjT3O4gmg717nLiktQ0mk1Ne9r7h2YdkucnP0CTIgzNSSp1EFZA==","signatures":[{"sig":"MEUCIAQXaCY0wN/9l56t2Q1VuSskMT6vwjAjCkX5FvZlzcnhAiEAsCfWzgsRiEkfenpAq/Rk3Jk6I9edHxZkFyLdZFl/Tr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43120},"main":"index.js","gitHead":"06dcd64457ae867b3e42d21e16331ac02a3c9449","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.6.4","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.8.6_1765333627849_0.8905676178775164","host":"s3://npm-registry-packages-npm-production"}},"1.8.8":{"name":"roster-server","version":"1.8.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.8.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"8319c9125514b4e97da3620ff22482fd2a89d482","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.8.8.tgz","fileCount":17,"integrity":"sha512-alnUkvFDSbJ5gGASAX7AKyY3vBdhF9j5x/DrxlcvkG82jea+/czuxAqF/KQW3QWXpaZZiAUw3wK6y22KzZV7Sw==","signatures":[{"sig":"MEUCIQDRZIhHQ1OCK7jG678EVLzLpC3uBDdf07l0Nr0Ai167+gIgJYbrAFWm6uwi1kr0DBbpM7aOjCAetH7RPt2TfVKILBc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79462},"main":"index.js","gitHead":"3c89476427e229c8701c10d48456013fdb4d0f6b","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.6.4","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.8.8_1765554782062_0.667683213164906","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"roster-server","version":"1.9.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.9.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"235b56d2bdb5e84de455c20ef1ef9cb1355f0b76","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.9.0.tgz","fileCount":17,"integrity":"sha512-hBz8nplKuR9cGUE13ru+TGgGFheFcIMg+JuseDTwmLPCbOtFGuu0uVRZA/mTJI1LcMzVU0CoZ7uy1Ocn/8jrLA==","signatures":[{"sig":"MEUCIQCvYRopaxU/gKMWNA6GjbzI314qDJ08/EkEYsV1+WH5JwIgEPT2G3tkolhlYphjU4/dFw2YP+qQWthtRpe8tPMdCPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81778},"main":"index.js","gitHead":"95e2702dbb218813e3de5a11462b62fbf825fa32","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.6.4","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.9.0_1767190341070_0.9668205722182084","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"roster-server","version":"1.9.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.9.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"f1a9b2b959c6c3bc7b7f6523716f8e77c31900a7","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.9.2.tgz","fileCount":17,"integrity":"sha512-LKtVZ6taMlun+DE5FchmRmUWuZqJZEbACjRV5KRGmHYcFQGvCaSa7V/cAa6IqnGh2fMxkxZs2aJW4yZ8DKz+MA==","signatures":[{"sig":"MEYCIQCsECQEIB4lkq6TaeAcfeiLFljU/wYcfJB9UIs9syar/AIhAJc3vHSO6QfcQIVSmRsYSfgZm9kiM0b+s6oP368/GHWG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82606},"main":"index.js","gitHead":"eea6c505fb796903f044064132952cb0ccccc089","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.6.4","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.9.2_1769201236846_0.47447709223317425","host":"s3://npm-registry-packages-npm-production"}},"1.9.4":{"name":"roster-server","version":"1.9.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.9.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"ab676b1a2987fd6674c7b59579df5120a7aadc36","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.9.4.tgz","fileCount":19,"integrity":"sha512-6ui0g2jXaF05dqxTJbo468xX5HSBKC1oVQPGkBX4UDlMJqAJTAQhjgkNa4jNhL64W2E0XBeZ0zlZBDlkBPV8kg==","signatures":[{"sig":"MEUCICONS05Y62Y/fpVeSvVhQvrbDDRCEddmBwIf/4bEmPCkAiEA1j0noF3aMo/cUzTL/IbXHaI3O2GDiIjDkhSiECw/pKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":89831},"main":"index.js","gitHead":"eea6c505fb796903f044064132952cb0ccccc089","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.9.4_1771168589291_0.5012019921170527","host":"s3://npm-registry-packages-npm-production"}},"1.9.6":{"name":"roster-server","version":"1.9.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.9.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"e1d00827eefba556559445467c445a0f4edde821","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.9.6.tgz","fileCount":21,"integrity":"sha512-8Dmabmn+yKfzafKwlZMGkI9P+95yMurqV/WAJGThQgI2TchX9WCL828vrWO5WY7RrFDYRBGNUV0hxyW5Hskecg==","signatures":[{"sig":"MEUCIAkgDm+wZSXP2dL79rgHCbhXsmB/4DDuZWOERDHkUv38AiEA7kFvYrpHEQbGqkOu/oCGNwVwrKoVWKrUz1jHbiS0ER4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93349},"main":"index.js","gitHead":"6d385970f90cdec0a078a228f7db579ded685934","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.9.6_1771169318014_0.9181390491828023","host":"s3://npm-registry-packages-npm-production"}},"1.9.8":{"name":"roster-server","version":"1.9.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@1.9.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"b1f97d125d9456c460ff95886e46891431c9700e","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-1.9.8.tgz","fileCount":22,"integrity":"sha512-J1l8gvPSfvv8oylG/gmlm9Sjo2wZntb/mPswe4MEqt2sD52NiRugtFwU53+/QGiVUnSl13RwY5NOGBPGcm7lHA==","signatures":[{"sig":"MEQCICPWOnSDcNe1iAHna9YqC0n+CqG85AT5uyIWKUFc1vWiAiA4sXPjqdJP8skqL0U3Knia1gbYkXA7AenemgNcg1qjSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101150},"main":"index.js","gitHead":"6d385970f90cdec0a078a228f7db579ded685934","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","greenlock-express":"^4.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_1.9.8_1771170307392_0.8123730341577458","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"roster-server","version":"2.0.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.0.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"fce5ca0b5fe8fd103bd8309ec7dbe5950065ab28","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.0.0.tgz","fileCount":54,"integrity":"sha512-Nzn3UeUgh9Xgfd1qVqCCnbYIrzDWZ6UK2WedoryjndbhmDT5Z2FzBbkCb6wW6k+6oJKC6Ka6poR+6TT+VTn9bA==","signatures":[{"sig":"MEUCICmLqClWnfCKsHRtTqmO09+tPSUEaayFW88wK9tMt7ZcAiEAwajdnhOChMC0XwnIfflr9LMu5MzcupW3G78HjbY4hTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199046},"main":"index.js","gitHead":"142384b7ca60bcf09325cf23ca3405f3433b5375","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.0.0_1772482568454_0.5873176359268302","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"roster-server","version":"2.0.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.0.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"4d613fe90cc307519731f6838839bdb4b87e2e80","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.0.2.tgz","fileCount":54,"integrity":"sha512-nlmSAxH8Chnt2xTvuRSzcrRrUgbrxipP4qYoxAhwyqzvo8mQ0wpRd/y86tTA3LmmwACl6FoT1VpKVEWxsOPVgw==","signatures":[{"sig":"MEYCIQD4R5jLEowcTptYqOK6YiZ3SvW5vk4uLwHD1bP9fGkv5gIhAOZCFyqjcxKv/gXjzFoMUHwrV6Ppkmb/1C5+b0Yt1AT9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199055},"main":"index.js","gitHead":"0b52c6534096ce6d077f6caf36fd33900532fdef","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.0.2_1772483553698_0.2384160392157071","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"roster-server","version":"2.0.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.0.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"8ef43111749abcce8e895c35e73cfa6e64915a9d","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.0.4.tgz","fileCount":54,"integrity":"sha512-dnJoY/Xqb9gHCzIgKoZfwXgdcD/2sk8Upbd1lO8vs2fkhAhtmd9RptITb54nhalyHaf6pVjDRj1JzZeik3RRfQ==","signatures":[{"sig":"MEUCIG19WiYKX1ECSNmpZwgAHoyJFys41IIMgomUDlYWwf9TAiEAlEYQCxT5S717AOILGIhuB3DuLDk3n6LLIKJvjGyLF3Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203617},"main":"index.js","gitHead":"89f246ab4f1ad5f4e164a0bd35a892d424cdfb30","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.0.4_1772564087910_0.6879052887507715","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"roster-server","version":"2.0.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.0.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"96ec39c63134b977ee072a12f0b47d192a8a422f","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.0.6.tgz","fileCount":54,"integrity":"sha512-xdUCI/XO3yD+tt4TBdFFVS4LdKjbWjUdrPLP3+YZwNZkNgMPma9/nFfQn2yEHiQRTLI/sAU8i+KH6Uz9aj+pUw==","signatures":[{"sig":"MEUCIQC3eyQdMr7qjG3KBfZQJ4lD8+MUGaKopWQM8tb4QCJPpQIgRIYDc9xa6n2zMRGiV2GtzCPIavWm2Ydly0MG8vDu+RM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201323},"main":"index.js","gitHead":"4d27a9ccaaf0455ba1f1cce7e839427609a09dad","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.0.6_1772564502235_0.2818473380058566","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"roster-server","version":"2.1.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"8a48a4c7ae37d349283fabc400e35442e349311f","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.0.tgz","fileCount":57,"integrity":"sha512-SNmj1TixOe6M+eWVQe+DABfH+uzX37b1+iciuvGqQHZ1QIMaxGzBYUKmzQ7Ecu6306mTR5re4+nlHkS8m2gOVg==","signatures":[{"sig":"MEUCIAVT4V/pAqRkrHCY+MCuq/O9rKl9ikDQZf6H2GGDnkkmAiEA5td6RljQV6JzqcT7gmPjP9YqsW8mfmXb8EZnKCqSEO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238492},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.0_1772737531488_0.2856106693092746","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"roster-server","version":"2.1.1","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.1","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"c88342f3cee8fddac1c1d10f7602cc8a32142963","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.1.tgz","fileCount":57,"integrity":"sha512-SYnvnigDb+SNBKYfKdz9nRy4gq+11iul853PW1IchwY1LH1oSMKV+yN+7CybOr0O2TzbxWW9EYXgTrOClHdUCw==","signatures":[{"sig":"MEQCIHqv4fK2kxT++aerAI+vyII/M4dxh6RrCEPU9IGahw7rAiAqltdIGOoBEl24tyq0XaXLnvGVNwM0E88smo8RkUeyOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241113},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.1_1772738028441_0.7295026652628953","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"roster-server","version":"2.1.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"037cc9a079cfeb7fadf6b0ceb800f844a1c709f1","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.2.tgz","fileCount":57,"integrity":"sha512-lpdpuVwAPHH/K7AVE97GCZ3FxTE1ZmTjWhZUVhR5CL6gfHHCU5lnXuG6VJ7hyrK0rX/zkwBDYsJ5F65R31ewgg==","signatures":[{"sig":"MEYCIQCuV+6RQcCS1jQvxGt0a+yyRQk2oykhx0W5O96H7Pot4AIhAMrVuMU0oFl4JPnVNbLlt3VyCw8q9ENPFB5kP2NW24Ft","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241904},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.2_1772738181243_0.2045858545028385","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"roster-server","version":"2.1.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"a6c7fa0399e3e1fcbdc4cd0cc359951358ba88c0","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.4.tgz","fileCount":57,"integrity":"sha512-obufBV8ihfTJQGG6g+FixVOzjhCezePjy29Dh+L4BLvWPUuWPcjAl/kWAmpcouYGXeDQQVjVOheFX5zgelX+zQ==","signatures":[{"sig":"MEUCIBGSlixAm2I6M6bt7k/S1eN1J1eUtzFojItjv99j6djbAiEA82RourIz/QcqNw7/EXZSwBzhrQvGc4141tkSUS4jCl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244510},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.4_1772738815156_0.47644710641114796","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"roster-server","version":"2.1.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"f7cbf1649753582f8b9a0bf45550f8ad2a1a4cf1","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.6.tgz","fileCount":57,"integrity":"sha512-/Ff9DcMLoZK/ocHhRWNNjRp8P0t/yvfRTi0oFQd1/lX5UgtGt9/bX07K+S29ZczV0p0Ny3tJ2/trWwL9Q5Wmdg==","signatures":[{"sig":"MEYCIQDRDuck2HqJ8bHVf5oSst9t1lORwUBkE5EmQGK2iuPnygIhAJDyTSsFOacDSjGNmjTfUpgpI2GiEhQDgQ6cOogkz+Bo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244510},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.6_1772738923435_0.8357274205332132","host":"s3://npm-registry-packages-npm-production"}},"2.1.8":{"name":"roster-server","version":"2.1.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"8e4cb4c4e95201d19efb20328c8d7444ffb256ad","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.8.tgz","fileCount":57,"integrity":"sha512-f+3DNwPCUSQzxlAt2ISmWFaVxmguRSfCd615ZVOEWyc9QF/V5CeuoPvna/2Hcyl8ZvIHVwhjorfyCKDzImAI7Q==","signatures":[{"sig":"MEUCID05HZuHp4no9G5ZPTsr/xD41TAIwNlgLReLIpheElxHAiEA17we1/dwj3vi74t9LgSehV987DD+zKOt2Z+jlPMEhNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247660},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.8_1772740830332_0.7338617047243894","host":"s3://npm-registry-packages-npm-production"}},"2.1.10":{"name":"roster-server","version":"2.1.10","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.10","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"69414bd8429b40afb7ce1d3073d44c52dd7ffca4","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.10.tgz","fileCount":57,"integrity":"sha512-oUlF+TUP5dYu431PYEcT05EwiDUGgUib2+rQfF5dtObQjCBiD7dOnd0fLWbq8eo9oikRjD7jinGtkGLSFdlaGw==","signatures":[{"sig":"MEUCIQDvn4M5g+o2/nvF3XjwHR3Neh5VSesitPOh9UF+WtqvQAIgezct5buYPJA7raWY0U4qGSVn4Bi49/dslo4WipqCCUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248509},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.10_1772741030097_0.579868963935741","host":"s3://npm-registry-packages-npm-production"}},"2.1.12":{"name":"roster-server","version":"2.1.12","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.12","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"d0edc4b2645585c5e02cc4a018aafc507668ec9b","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.12.tgz","fileCount":57,"integrity":"sha512-F+2iWpDepviEBiUNpmBxIeWXDPfjyr/mxJhxIv43XsU0ZSc4jU0BH0zAMpzlL6JaDbQ5anDAtHRZBjhLourfdg==","signatures":[{"sig":"MEQCIDAC3aWhyw/Mk9jn38Aa4aSi9wudZWbhX2BGVQbFPXIrAiAhniTi6T/h6cfwyjTF7JIJOQSCcDFPdmlNCFURLEUNBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248958},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.12_1772741175104_0.8583971686181597","host":"s3://npm-registry-packages-npm-production"}},"2.1.14":{"name":"roster-server","version":"2.1.14","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.14","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"632a7e24cbe4b18db34f8ef9cf21fc55d7f4a8c7","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.14.tgz","fileCount":57,"integrity":"sha512-KHN5rjRp6plFKK6o/JwgB5hAsa/krJiGtLZbbqRBvxEpIRf88LfR5QiAMFtpVIiss9UAO5TZby/1hGH4i2Vv5w==","signatures":[{"sig":"MEUCIG3gQ+M8nXMSQIL9Nlm7IxsCT6oyVtwzOFM3sY3z4ZB+AiEAoL15bxBMJ5UR+SkIDgG4MNzMUn/iE5qLSFyBCaZX3jg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":250625},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.14_1772742203766_0.25976313086958425","host":"s3://npm-registry-packages-npm-production"}},"2.1.16":{"name":"roster-server","version":"2.1.16","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.16","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"b1e4bcaff1892ee70fd6ff393c2b61f1416b5bc6","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.16.tgz","fileCount":57,"integrity":"sha512-qLT6o90E10scR0pkKx0c5uU+fIw55PWRVL7lsUvuKm2CvMfywXA3kfiNPfCGs98sxIV+bXze99/0X2/DtpxYog==","signatures":[{"sig":"MEUCIQDv5FIBLJLgQUHnbHMpGn+adFlkNv11aSvbEzza+vDPaQIgW1gZKLvzgr0uCMfBFwiXozj1Rssnmp8Qe//P30kK+xg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252924},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.16_1772742773172_0.623245721291847","host":"s3://npm-registry-packages-npm-production"}},"2.1.18":{"name":"roster-server","version":"2.1.18","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.18","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"8d884ba2fe3212c9328423f7051ca19eec6e2d30","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.18.tgz","fileCount":57,"integrity":"sha512-ieFkCXMkFmQYI2WBv3V1h+stv6srMTxqfSyIjwRRNnP7bg/G9yVORxHKbRHmsMh8S+eKt95MqgMbkWmj1gmDiA==","signatures":[{"sig":"MEUCIQDnEdk7Z6dTJ08xAv9DggXtq71X6sd7s31G3812rtwbFgIgHJNRhc7wPjKu9U8F/l1L1bP0nUFzkkwJLSpVF3uwGLM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252825},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.18_1772743350300_0.07312853127383279","host":"s3://npm-registry-packages-npm-production"}},"2.1.20":{"name":"roster-server","version":"2.1.20","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.20","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"b695dcf556dbccdae15e7f028851243d6e7d6af9","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.20.tgz","fileCount":57,"integrity":"sha512-+avBAeBrSz0XBFsWPEQqSlkHSsydHOYadQ8Wg0Gmzm8rKAbL7k8Q7CBdqLUrFrKU6Nozn6SWXlz2yc6j/REcKQ==","signatures":[{"sig":"MEYCIQDrzTPXKqu+vCAyjtILJqplfQL7A6grdiXFfDYvwhS3ZgIhAKuXejlg6lXcQQJwB7L7NmUs0+PkHOQUKaI6ctd5oRID","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253439},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.20_1772744130753_0.12190371133246414","host":"s3://npm-registry-packages-npm-production"}},"2.1.22":{"name":"roster-server","version":"2.1.22","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.22","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"77a016abea75c8ea20d734c405771cf4ee02e6e5","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.22.tgz","fileCount":57,"integrity":"sha512-DnNMrLFrmyM58jIsIjsdOw16hz2l5Px4HIlSnRFLw0Lpr1j2ImRAIMvJfaO+0eL28cMOhwm1SDB8PARbk1DXRg==","signatures":[{"sig":"MEUCIQDjJl5LMVDEhVVOl2C8v4PZOi92kU74f2iT+eQZiRhX8gIgJdiUFu2Mo9BMFTcSuPqeELaYtdB1hCPDoUk8SZUNpec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":254165},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.22_1772744860108_0.11026070466215243","host":"s3://npm-registry-packages-npm-production"}},"2.1.23":{"name":"roster-server","version":"2.1.23","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.23","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"736e124d0b7b68dfaaa158b1b56ad62c4d8cd61f","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.23.tgz","fileCount":57,"integrity":"sha512-DcSBPjxCmcqWqNCvkGCC390nqV+5yppmFy6ZMtXPasOvddqFUixbF8u8CgQySZR/Jjh1ocFhyAdI7riMT7wSZg==","signatures":[{"sig":"MEYCIQDtXxIlhtRvbAPYyYxVJxlrC0omKjSzuetrw2yjefeKAQIhAOP5yX2nvPkWcKw9OOweWysV7AbT0F3d0e7Tbss8o712","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257667},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.23_1772745024732_0.16761671073897855","host":"s3://npm-registry-packages-npm-production"}},"2.1.24":{"name":"roster-server","version":"2.1.24","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.24","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"3d13208badabc3d791267bbc0f13a5f88b0f9e9e","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.24.tgz","fileCount":57,"integrity":"sha512-sSlBTw38VBsTI/8o2ufP1DtuxBrqCete/NsV0flHJcxhRwRQ7/tKg380oXyOfDEOGVt8vF5XrerQEUjGCWnO8g==","signatures":[{"sig":"MEYCIQC8a0nT0hnGVxcRg8j2eaTKO6o9WfaPRkR/rYwi0MK22gIhAJverNMVmvSkpxr6DRSqUeQwofQOecaExJGGr5IkDypF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257441},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.24_1772745107364_0.18366088272235537","host":"s3://npm-registry-packages-npm-production"}},"2.1.25":{"name":"roster-server","version":"2.1.25","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.25","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"83af112da02d56d5652fd5f29385f6f731f092a6","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.25.tgz","fileCount":57,"integrity":"sha512-7Vv4z+XWQIoo6n4L7TYmodZlXLZTBDGen3oBMeEkInsfn3ok7gkG1+kTXl21oPgszfI9j1VFvHnK6CLACUPhsg==","signatures":[{"sig":"MEUCIQDVcsrrMcoVRZ7z3+N4BoCtDONbIz4PKV0VikQ0xeIVrgIgO3vji69ykEVYYfWdE/3WyxQQ8McD2HOL8y17ME5BYkg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257211},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.25_1772746632219_0.5189459772119129","host":"s3://npm-registry-packages-npm-production"}},"2.1.26":{"name":"roster-server","version":"2.1.26","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.26","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"c872753eb5881a40b3c7acd2ae0b8e73af78f3d8","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.26.tgz","fileCount":57,"integrity":"sha512-oBLAiC4MOJFOeGU8RCwmrZMV2k8PsnVA5GpdOA1yW/KcF1tsFSkYoxYkIFj1mPs/RaFRcVGb9FIMOcJj+fYPxA==","signatures":[{"sig":"MEQCIFiqwiExme/gTQ69mXD31a39zkiifnCMT8ATDXx88PXMAiAIyGAyQotXLA9F4PWlrFoK0mP5+H4k7Gz717t8dNrTmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258573},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.26_1772747128333_0.8543150647893452","host":"s3://npm-registry-packages-npm-production"}},"2.1.27":{"name":"roster-server","version":"2.1.27","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.27","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"105afa80fa5595054667fadbeb0043346b87025d","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.27.tgz","fileCount":57,"integrity":"sha512-zfT36bwbBzaQi9ZtSX+G1jhPl38CveOaVt9aHGz8MUXpDh7sgLXYBVVw6av5qy/DQ24aVtlW9rBTKFsP7y93xQ==","signatures":[{"sig":"MEYCIQCjof0zwis150ajANJ7mi66mJqdX7Gzbsoe944/7cQtgwIhAIL7sex+HSQOesQIdRTGMs19A+Bm2qvEwq7y9t90qwtg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258567},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.27_1772747252884_0.25523510228988","host":"s3://npm-registry-packages-npm-production"}},"2.1.28":{"name":"roster-server","version":"2.1.28","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.28","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"0863744e1917664af136a099651c181e21683f89","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.28.tgz","fileCount":57,"integrity":"sha512-GDhEnF2sE1uUPkss9vSMFir+2MmdeT0vzEEIIbecFliJC1q5JgztRMj+oNqiJtxZXlEb6cwdvy5WDx7HuNrLtA==","signatures":[{"sig":"MEYCIQC5IKz9uyYH+HS7pFu89N99hb56FCNtb+Av5LhSVygVWwIhANpm4umG1NgkymWMUXL4o+KD5PabdhURn1+YQ6hMwCpf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258967},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.28_1772748364147_0.6198158734706782","host":"s3://npm-registry-packages-npm-production"}},"2.1.30":{"name":"roster-server","version":"2.1.30","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.30","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"2b7ea81f74588cf37a9d7892bdffcdc048bc8811","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.30.tgz","fileCount":57,"integrity":"sha512-MgmbjrCh9vW63FMkFpUgu3NSAS1ZkI34tKqNAiHZExP3abDOELFCbWUwWEf2vc27BSw/ocoa36a+/QEZ/ePHYw==","signatures":[{"sig":"MEUCIQC9Q4f6oX6+uXDL1QneBEjSK+vtQ1QnTpYMUQvsKPuWlAIgd088KW+8lHSjZM8oAuhmZpXaznLSCWJnsXV2O/a1GH4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260058},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.30_1772754134650_0.5395338809171932","host":"s3://npm-registry-packages-npm-production"}},"2.1.32":{"name":"roster-server","version":"2.1.32","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.32","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"efba3b66151cc63bcf9504c9c74108a56704cd72","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.32.tgz","fileCount":57,"integrity":"sha512-YX9njNAZQbzh9/TIWgD6HceOOnWjoHQb3dmkDesCS5VEu4T/hYDHBF5qQqPvTGITxPsPQv9v/NkTdqepDSIRmw==","signatures":[{"sig":"MEYCIQCAI4ZKDsbANeS9tMVMf89dUWw6fXCw2rgR9Crnmo7pnQIhAJmYMG6XfCTjH3uSxeI6PKPc6eF3GYFW3Ux2ZKnaiEPP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261018},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.32_1772756453915_0.09020135524306228","host":"s3://npm-registry-packages-npm-production"}},"2.1.34":{"name":"roster-server","version":"2.1.34","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.1.34","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"f3118930f157bb045ebbc25825121f60b554aeb4","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.1.34.tgz","fileCount":57,"integrity":"sha512-GEiZ0tax4+OMh3icwWbvu4HCC3gveOoogSMQfu3B9B+G5yo+NZQuHQY35qP66NT5r6pG95hS0ZKFrO+M9wGE4w==","signatures":[{"sig":"MEQCIHonnQ3v/spuDKEP3xdM4Tz3pEHl7kSmTjS7nGjIj9YNAiBfGdd463vJAQ8b2GIOaV0tYXKRaCY79UfiVaZyfKBm6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261027},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.1.34_1772756824897_0.8128738498592876","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"roster-server","version":"2.2.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"579def245283eb0dd7e803688db0aba60065e35a","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.0.tgz","fileCount":57,"integrity":"sha512-SOgQohq7iERclWCMC5qCYGOi0pXaMTQfjr9LPWaPbsXuM0B81/3a1+t/rrn1kgLSSJSxK2uxmzow6E7FVQLUgg==","signatures":[{"sig":"MEUCIDS2/ADUhhkvfL40PlNQbjrX4CS5fQlKasoohTIhCz+GAiEApqPS9H47r9TK7dov1HR7Wl2t2sGVY330uG9smO5fplw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263477},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.0_1772757580908_0.5187533352118188","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"roster-server","version":"2.2.1","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.1","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"b47e15cf6433c620a095daef7a7f24631c0a698a","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.1.tgz","fileCount":57,"integrity":"sha512-FNxbqyGfGYlGi808TfxVj8KXUEh8fY4bJgWJvcblcgi2i3p1HuXVSJOjAK8O+nVjT5M5J1mQoaeYPZGXlLNMAg==","signatures":[{"sig":"MEYCIQDe9oOeboz3GpA/04L6qxhkagX8dCC4d1ldkNxW5RkNowIhALqrHliAecrGCacpu7O6fzN6/M4pF9S06hcj11IeOWnz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264558},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.1_1772757953374_0.4473240153535356","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"roster-server","version":"2.2.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"3a62e1a1cdf73d11426e3bdc013e23dc5e04be79","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.2.tgz","fileCount":58,"integrity":"sha512-4nvnWBWD9delOq8YP+n/bgijdVs0JR9g0rcdgcWpGDsfLndl+pcXTm198hkpfsLMDLKQu76KiXaZgT39UWXz9w==","signatures":[{"sig":"MEUCIQCLkLBwBgWoE/lLwHRllFFfKv+e1yDPr0U5BWSZqlqzxgIgHasK/eNFKaPVVFygyo6SX7TJdAJ9QzkIb97T97kqf7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275593},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.2_1772760398186_0.2822936112069345","host":"s3://npm-registry-packages-npm-production"}},"2.2.4":{"name":"roster-server","version":"2.2.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"b54a6c1133c7ffd2fae337b37f1f9ac6f5d1fbcf","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.4.tgz","fileCount":58,"integrity":"sha512-OtCmVtK9ITHcdrUViJIQAUIzFGtRo5KvNrCG1hEt/PGJmHAi1S8XMSqgFyaSUP35CFzIkWpWwMLFwGo3OG9vgQ==","signatures":[{"sig":"MEUCIEwdPkxugTyjfiXprnOPMtM/Z0p3yRuZ7IilvY5CfIxjAiEAziCq7xSLv0Ve3kdzxvXI625WmpMzPcioL3nixmP3H90=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283087},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.4_1772761118129_0.825947060915226","host":"s3://npm-registry-packages-npm-production"}},"2.2.5":{"name":"roster-server","version":"2.2.5","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.5","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"ba7bf2b06be43b67236250b2e8fd5e03a2bca876","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.5.tgz","fileCount":58,"integrity":"sha512-mqAZ9KP/bjVoUag89/8sK9TNLBLuJ7Y+ftriml2S/tm9hg+8G9S11koYfJmv2f0pc2RjJlxmlEWcwK/lrbc0sg==","signatures":[{"sig":"MEQCIG3EVWlVqji2HeX+hPk4YCmLhjXzmajO5xfOf04ztitKAiAY+TCi1NoyPSYASKpOl+Xbje9RVLTZv6CMoqr5mbAHmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283875},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.5_1772761380730_0.3897039024171278","host":"s3://npm-registry-packages-npm-production"}},"2.2.6":{"name":"roster-server","version":"2.2.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"931a5d8b1d338f372fc3a222bfbaaefebaa87ae5","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.6.tgz","fileCount":58,"integrity":"sha512-/FZeQhRckW9x2C1FzR76uaMqPWniHrjP4fGt1jmn6Zs8vvBVmShFZ3Cu40cMmkX4RMrB6UkZn091ZazENgwDnQ==","signatures":[{"sig":"MEQCIAUbAlKG/b9uvm8m1pZE1TbrY4uk5c3PGs7+EY2L6zGBAiBMwV/MQXiGxX4s3LK2FKVAwDx7pmYbvD0X0z8xgIdFlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286047},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.6_1772761959057_0.24214292182248576","host":"s3://npm-registry-packages-npm-production"}},"2.2.7":{"name":"roster-server","version":"2.2.7","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.7","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"c3ab165fa940b2e8baf40eb317e704fbecd1b844","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.7.tgz","fileCount":58,"integrity":"sha512-bVZ8RymqT9JPPlFRXE279ImeeH0XVoQbshymRdu5iIWvsEnkWQOwwWrdR/aVUGWoQzKSj2fh71KyWPbu17uGaw==","signatures":[{"sig":"MEUCIHn4Xcr1Skoaq3exqRYLqPWgdY4eY4Xw7iii/o9oIfQQAiEAjTqYYB5puq1I3BcGj96y1gMZN4CpDTWipKQ49Xr1afE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288539},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.7_1772762179412_0.28453601743428725","host":"s3://npm-registry-packages-npm-production"}},"2.2.8":{"name":"roster-server","version":"2.2.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"1b61b162358ae0f35d41a061f7832d848342c728","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.8.tgz","fileCount":58,"integrity":"sha512-EBk4pcJhobpX1V1Kv+lnM5bXHcM2GeHQawVZJQwrmv9Hc5gXQfeABrgfT8rmN518QmeKxalJK+yx2lKMS0o1WQ==","signatures":[{"sig":"MEUCIGq/8A7vxwMNJvE85kPG7YZaqLKz36EzTOEkve4cD7a9AiEA27c6kzPqCGI4ljSNp9sygchlUXXRIGZFBgTzg7ZAvzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290172},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.8_1772762578052_0.2959929392423759","host":"s3://npm-registry-packages-npm-production"}},"2.2.9":{"name":"roster-server","version":"2.2.9","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.9","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"239a7657a15a7fd695e4a2f10e63e3b5952714e5","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.9.tgz","fileCount":58,"integrity":"sha512-1BnVaZ5NzC0NAw4bIngPujiw4K5u2YICLvPHOnwoFGPDboC6MR3O2P9Al+GiVHoRfgiIG/80jIk61qd1m0dYgA==","signatures":[{"sig":"MEQCIGFtZFZw+5J/T+egOsIyYX25NgwSZPTNKmscf+U9j1t0AiBxGz5uBQg+bwVXWojCaUBELIskPgyqubxIXyy/trT4+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287997},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.9_1772762811584_0.4321289041971199","host":"s3://npm-registry-packages-npm-production"}},"2.2.10":{"name":"roster-server","version":"2.2.10","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.10","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"2ef68953aed5c36720cb9b5d3e01f67dbb7e54a8","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.10.tgz","fileCount":58,"integrity":"sha512-eIfqYOWqcgJetBtFvyfyWxyq+hA94/Lg76vJ1SbsjUBry9qhBCSOcdWFNdWk6aqjeMYuahCmjHdoJrTniX8Lew==","signatures":[{"sig":"MEUCIBhe9RChhcWu32MP5yh2y/5J8yT/fUDtBwxuE7IuJLPiAiEAwM0/bluB0SyFv1VfY9zPVAQLaQYlDFZ+X9m/NNaaGRs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287985},"main":"index.js","gitHead":"5aeea0a95a5ae29242551e2c64989199447d4a1e","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","redirect-https":"^1.3.1","@root/greenlock":"^4.0.5","acme-dns-01-cli":"^3.0.7"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.10_1772763346543_0.36332602800756986","host":"s3://npm-registry-packages-npm-production"}},"2.2.12":{"name":"roster-server","version":"2.2.12","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.2.12","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"7528684f3ecb2b904b4028143b6467aaed1f4b11","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.2.12.tgz","fileCount":100,"integrity":"sha512-DhFlKsG5gQ+aNO9mste8Lr6aa3B7LnKI1QXJeieJdBKwUNgxxvB4FE96fLt6iLWF35fSXF60HYn6J9alKP+Ofg==","signatures":[{"sig":"MEUCIQDoTrJEJGsX4IRBNT3Bk9S+PF2PsBchnaYh7hI0Lq7InAIgDbFfww9FWiZSSzX7bAGtkIowuitzDZxR48EDY1qttS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550983},"main":"index.js","gitHead":"d0eac930fb1dc0f91d25fbf5d65e6d7bf81f754a","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.2.12_1772818271873_0.05658549991679118","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"roster-server","version":"2.3.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.3.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"c5894b9805d4ed139ad92378cb764fecc023e437","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.3.0.tgz","fileCount":101,"integrity":"sha512-Vsda54HLZc9Ia6LOIGaMu7am8Rzj6BAUKK3nrHha14igaYVqpb7XdzvLKv8qy3fVRbYZXpCH4Es1JdAplXxR5Q==","signatures":[{"sig":"MEQCIC1TCAXPmeurgtgZ7JZ3iqLoVfWi1KHg3SCk7tLzu5iGAiA4m5jNGsZKXCGe1FOwTl7oDRQDIlvxO62qlhcPlOL1SQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":562425},"main":"index.js","gitHead":"a07e4b67a24943676a26e51b25e2438506c57422","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.3.0_1773618237233_0.5820926424588919","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"roster-server","version":"2.3.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.3.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"5497803cae0ba83af7b7af6a70eadfec9c517a46","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.3.2.tgz","fileCount":101,"integrity":"sha512-rDMdyVlhQyBeHe12TS7giYp7kaqsG+hKWkgabFh8M5CPbRH3qP8qH3U22ETHenYivvCKIJbk1Y7o1V9k9lfXpg==","signatures":[{"sig":"MEYCIQDcj0tcEcJGB+uZBdSc4fwoLpCZreLiETf2dh3hJ51j0QIhAJy8noHAkoG/XBpVgPwJHh+mUlU/8LhV05iMl8Aw7vgz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564374},"main":"index.js","gitHead":"a07e4b67a24943676a26e51b25e2438506c57422","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.3.2_1773619476004_0.36022769956952794","host":"s3://npm-registry-packages-npm-production"}},"2.3.4":{"name":"roster-server","version":"2.3.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.3.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"159c8a69b24d4ae038bc2e65b78f6b8862d18211","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.3.4.tgz","fileCount":102,"integrity":"sha512-Bkxil+C0HduXGVDTipvlfwtgwipZmIcYjkFQhbuCJRy0thmGB9c6sVRofYPvHkMfmbbjVImRjfobEPiHNp2yhw==","signatures":[{"sig":"MEUCIAbiJHHdirVM/mWWsiZUBx+GUD1ZWg3+NFw5aGvE5f1VAiEA4QOBFdvmcuxjpiIkgdJNwCXD3/CPd3m9ZOxKl8QfwpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565681},"main":"index.js","gitHead":"9b7fda78b4fa6a44dd1fdada371777f3e20f1e25","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.3.4_1773687278781_0.8291590729891383","host":"s3://npm-registry-packages-npm-production"}},"2.3.6":{"name":"roster-server","version":"2.3.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.3.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"24e054a8f87a3c9db16c1aca46f1e21d84396705","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.3.6.tgz","fileCount":104,"integrity":"sha512-vYZ6Hwq76Ac89q4a1ldqCcgLWw3n6no+EshmlUlWNvlygzUrvDkBVYNh5fhM9vw7QFmF+k5HqWJxaPvm/nxgUQ==","signatures":[{"sig":"MEUCIG2Y0tC+hHEDliPvg9zzdStt9VBAqRShpvHiACmkHUabAiEAnIYe/JigYz2hWWFj3e8Et97VLm4YrvgTt3mnAc2u1VQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":568297},"main":"index.js","gitHead":"bfdb456840b82f1e244eb1ff93a07b3290e9e0b9","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.3.6_1773689296522_0.5788982761213446","host":"s3://npm-registry-packages-npm-production"}},"2.3.8":{"name":"roster-server","version":"2.3.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.3.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"d66c7dbf068df34982b69033f74390f81632c242","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.3.8.tgz","fileCount":105,"integrity":"sha512-ycZ1PrD+zSCBaEhp/1wsIZyhB4/a8jwaP+Hfz5TFX/iikaFQxUKZAO1YT0iBNzQQ5nyDbXy+apaFaqE5w2UQdw==","signatures":[{"sig":"MEQCIDGDRf7DvXJ1NiR1a8FR9YoQ6Ri1SIeMMhqO4hOTTt5nAiA3kIdGbssDDy+sh9WfIFSes/eNmZHkgV5oN4lvYP6aUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":570462},"main":"index.js","gitHead":"7e3d79676cbe972a2587df66500a50f33d84ad3d","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.3.8_1773692129114_0.4895742714619491","host":"s3://npm-registry-packages-npm-production"}},"2.3.10":{"name":"roster-server","version":"2.3.10","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.3.10","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"738bc240a7686c9ca5a5b6bb79997fec27e9aaec","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.3.10.tgz","fileCount":105,"integrity":"sha512-zKAapRoAub6/XSD3RIOnXYwExaG/GtTi3x94duLCBe626Q5hbJDDWA9T0GzwPxZSw1X7m1wlCEmJQKIjzk82Tg==","signatures":[{"sig":"MEQCIH/BnsFH8zKA8a1iD8G4RdzeJNkO06kM6BknkRfG50kfAiAKDcn7zWzI2n6y+zVbj9TMJRu5W2qRgLQnwfKYYXBeUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":570163},"main":"index.js","gitHead":"7e3d79676cbe972a2587df66500a50f33d84ad3d","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.3.10_1773692542951_0.5891223829965424","host":"s3://npm-registry-packages-npm-production"}},"2.3.12":{"name":"roster-server","version":"2.3.12","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.3.12","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"286fcf572f134b6da1fcbf6e2bb1ac8749f067e2","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.3.12.tgz","fileCount":106,"integrity":"sha512-xQfMMe1zN71AIo+JVrluqxEIHTvpJay8AHh5jKc4vKaP4C4WC2Ey+yiTzPXtHxpk/IFlNbxzew17ozdQxDOnkw==","signatures":[{"sig":"MEUCIDmaIpEaD/iFOBp9nm8h5JGz9QNLECcRaM38ax4RFNrQAiEAzRQHy++4biXs2uhbWvInOwqGsY/rvKj0HNHcFupohSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":570517},"main":"index.js","gitHead":"0c025487f76ff9313de03f825b22de25dd82ad2b","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.3.12_1773709096119_0.7753064625443815","host":"s3://npm-registry-packages-npm-production"}},"2.3.14":{"name":"roster-server","version":"2.3.14","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.3.14","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"ed97d5b14eea8d60bdb7cc80679d4c0cd0aa73b4","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.3.14.tgz","fileCount":105,"integrity":"sha512-w2QCmu+H9JkDePaqLJOh9M17uCtSzvsXlxlW+T4JPTWCofJ0UPJ3mulVAhdnViY+Xk250xxmLsT0TxQXzH9ROw==","signatures":[{"sig":"MEQCIBGBlyAfyzzkyWDzfQCvQKvtTr1BMnW5tEGPDSACKDxqAiB6956yJZJ3kOvu6YjgisCjT5jSAMaIVze+YmNPnSFqsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":569511},"main":"index.js","gitHead":"0c025487f76ff9313de03f825b22de25dd82ad2b","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.3.14_1773712383842_0.4804771180375429","host":"s3://npm-registry-packages-npm-production"}},"2.3.16":{"name":"roster-server","version":"2.3.16","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.3.16","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"56057a61eadee420bf33fa70fcb75a02dcf3ee3a","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.3.16.tgz","fileCount":105,"integrity":"sha512-oojSl/S+nbb105lSf9JNrX6VqLSqmwP113ehHo+mUll3/9KC1nUHYgQFWWHG5Cd+iM2iov+cwfBDr0ZOEHm4hw==","signatures":[{"sig":"MEUCIDPQxfNmhpQrG19IjAVeF7OsdxQygdKSQy8YrRIGyBnpAiEA2zTXrbxa1qsc1bqo0Sy60iweo8dFThS/RtSrJiEpG0Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":570189},"main":"index.js","gitHead":"ecb27234ccb454bb1d6a77cf94971afef468c1d5","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.3.16_1773758864448_0.0429790594265278","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"roster-server","version":"2.4.0","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.4.0","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"ee7db3f3a552735b50639572568360ed56b1b0cd","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.0.tgz","fileCount":108,"integrity":"sha512-ChBXKUH3azzRsgo1a7y1MryqespoMa1v3IaiLvdIPval85CWD+237+iLQQxxD9aJ+8jDBtH2JfsY22PqlCZPPg==","signatures":[{"sig":"MEUCIQCU0WZ7YHhpTXCAdSYe/dGZ1Uwbcf/NAiUxu9DLYPB4fgIgGUU349uqnVTzKDEW7aW+SQ/Cyv6tOH0fKhaugTd+rvI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":584953},"main":"index.js","gitHead":"b2c0b1277068e3cff6d2c88ed9f4376ed3569699","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.4.0_1774034657467_0.19238707800618537","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"roster-server","version":"2.4.2","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.4.2","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"34fb478e1af72ae559298ddd934fe469f79e0288","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.2.tgz","fileCount":109,"integrity":"sha512-Ht8ZtqlwljnS3Wfj44sloynAvMy1suRDsX4IlIwiCxBeD8d7C9JqkiKm47usUhrYfi1FrNlARbIFb9uqT9hyGg==","signatures":[{"sig":"MEYCIQDC09OHBFSBQW9VmFm2cQ6C8102A1IV0OrcLZ2jQvaP8gIhALtzTwbQvYYK9aEUvUIh2YBBUmq237IAlsf6O5PO2xV3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591873},"main":"index.js","gitHead":"36c8eee01cce400e4e023ba83c8684d797b355da","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.4.2_1774060456021_0.5450308500590764","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"roster-server","version":"2.4.4","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.4.4","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"b52aa35f67f2881549c5776f9f3be9bb9a0eeb39","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.4.tgz","fileCount":111,"integrity":"sha512-P178BDf13A10N8rhHkkBG1p44UcuagFSuPyu8Rep9zrocrg4Z7Rbw9j8Mes0k5szYus4W8xADtWs6yCfXm7ppg==","signatures":[{"sig":"MEUCIQCzkRlhfi1AiTpqywbkvYZ8DkZ9BCG7qMhV4BaTMqmOnAIgEq0bCxD2+JQQDHvDg3QOdK+0CVx/5cV2BEOLxFLW30A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":598161},"main":"index.js","gitHead":"36c8eee01cce400e4e023ba83c8684d797b355da","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.4.4_1774061695564_0.03132208689838123","host":"s3://npm-registry-packages-npm-production"}},"2.4.6":{"name":"roster-server","version":"2.4.6","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":{"name":"Martin Clasen"},"license":"MIT","_id":"roster-server@2.4.6","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"7f3c45a725a795c45fa0939fff8ab16d3407b90c","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.6.tgz","fileCount":110,"integrity":"sha512-il+1FRvqYcjDZwjcIwBKuX/ke8tTVv4ZciWmFspLH2BVwiGd8o1+vlgYB0XHrACcE+BuE0VjE/9seroqwctxtg==","signatures":[{"sig":"MEQCIH/NE9+Gi9ROfzHV6TjZHBf746GPqVu2171j/sR+ERhLAiBwFVz63tT8+AS5ocr0VTEQBWtz3sH0UB5wL/KIaPhQ7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":604040},"main":"index.js","gitHead":"36c8eee01cce400e4e023ba83c8684d797b355da","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"_npmVersion":"11.10.0","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.4.6_1774063348479_0.6717279693564242","host":"s3://npm-registry-packages-npm-production"}},"2.4.8":{"name":"roster-server","version":"2.4.8","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":"Martin Clasen","license":"MIT","_id":"roster-server@2.4.8","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"c1deb95ef5123c0c94fd51a9b77772ef2140b605","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.8.tgz","fileCount":112,"integrity":"sha512-SwKN5vTVTguDkc6vjs/EPaJR+NBjKdyoAJ5+MYz0yHBEL/TdFjYf2xj1DaFZiQJDJQytL0btPzKnROGnTa9XNw==","signatures":[{"sig":"MEYCIQC7W3u51U5lHSkOPcwsICZELnvtlNEyqjpDW3Lt7bq/kQIhALT8KTF+gLSWn6tku3eGNCGUcWKRZMk8m/9lS0C3H1yo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621208},"main":"index.js","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.4.8_1787684412732_0.6878466372404484","host":"s3://npm-registry-packages-npm-production"}},"2.4.10":{"name":"roster-server","version":"2.4.10","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":"Martin Clasen","license":"MIT","_id":"roster-server@2.4.10","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"68d5fba76e896eb8e90efa9c38b257e0fc298f08","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.10.tgz","fileCount":112,"integrity":"sha512-hD5PhHYSAou7lxIG46OciYJJr6F4IMvTbZ65xKgJqun453B5xNiwgBFdROlrqjxfMznLXmmzVcYx6Ejj882Oug==","signatures":[{"sig":"MEUCIQCLDZZP0T4IB/RRnMCwhLY+3bD9PTZG8SFMaArk4svBQwIgNtBNapHKKDFXE8O+D7b8oIaFr8l8tM9Rq6l6qLgpyEo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":621888},"main":"index.js","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.4.10_1787684767736_0.44554890998361407","host":"s3://npm-registry-packages-npm-production"}},"2.4.11":{"name":"roster-server","version":"2.4.11","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":"Martin Clasen","license":"MIT","_id":"roster-server@2.4.11","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"622fc82bc8746ed18e325bbc4f85af36bc3083fd","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.11.tgz","fileCount":112,"integrity":"sha512-CEyBHd3DC608ntmRFlDCAJIPqHq1+H7vMy7XgaknYdk5vZzI4ZvSnqWEcoWp6aiKKDPmy7lDNqfjNo2T8jkOQw==","signatures":[{"sig":"MEUCIFBugxI+h+EnhLK4Me+7EtNmU7u1QYzDOvKsOhh54cSkAiEAuCoVpnX+rhlZsC7ufHQ4CYGek78IUr0DIPT0EM2i/5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":623195},"main":"index.js","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/encoding":"^1.0.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.4.11_1788395406774_0.3351690489437904","host":"s3://npm-registry-packages-npm-production"}},"2.4.12":{"name":"roster-server","version":"2.4.12","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":"Martin Clasen","license":"MIT","_id":"roster-server@2.4.12","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"ca90cef0be671a0ceb0417086005102e55a7eaba","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.12.tgz","fileCount":112,"integrity":"sha512-qztnCVrG19PmpC2Zu/AMIE7ShFzU7/ZbhdQh58Qws2XnC+pEmoL2SR5Er6Om5T6uLbv00yBaI2FiMIHCdAHzCQ==","signatures":[{"sig":"MEYCIQCO+itdv6LLGaGdBDz8MgF9XJqKbuxZBPW2fKrFk409agIhANMPPQc+2B7974LVrSE8yyn6m4zwBXBAldAWk34K9c3q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":625177},"main":"index.js","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/encoding":"^1.0.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.4.12_1788440852742_0.8580567228652769","host":"s3://npm-registry-packages-npm-production"}},"2.4.13":{"name":"roster-server","version":"2.4.13","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":"Martin Clasen","license":"MIT","_id":"roster-server@2.4.13","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"homepage":"https://github.com/clasen/RosterServer#readme","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"dist":{"shasum":"e095134b1a3442119b6d01ea8799b7861dfdffd7","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.13.tgz","fileCount":115,"integrity":"sha512-mH7CiOPaQksm+ljCitKCmvWi1V3QqqEaTfvjEHN9AOMAecuzNqJrjQkYjH+gAQmeiefSDzDSvgMOZTa/LeWk2g==","signatures":[{"sig":"MEUCIFeaceCbaPZhUomQ/7k1L7ZrrBmkZSKh9iNZT/zQEbgoAiEAmqyJyxxqr1UlDXx5PIwLsUW9p9OFsc7ct7XQ3C3RrMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":669789},"main":"index.js","scripts":{"test":"node --test 'test/**/*.test.js'"},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"repository":{"url":"git+https://github.com/clasen/RosterServer.git","type":"git"},"description":"👾 RosterServer - A domain host router to host multiple HTTPS.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"lemonlog":"^1.2.0","@root/csr":"^0.8.1","cert-info":"^1.5.1","@root/acme":"^3.1.0","@root/mkdirp":"^1.0.0","safe-replace":"^1.1.0","@root/request":"^1.6.1","@root/encoding":"^1.0.1","@root/keypairs":"^0.10.0","redirect-https":"^1.3.1","acme-dns-01-cli":"^3.0.7","@greenlock/manager":"^3.1.0","greenlock-store-fs":"^3.2.2","acme-http-01-standalone":"^3.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/roster-server_2.4.13_1788888221658_0.4513974005721846","host":"s3://npm-registry-packages-npm-production"}},"2.4.14":{"name":"roster-server","version":"2.4.14","description":"👾 RosterServer - A domain host router to host multiple HTTPS.","main":"index.js","repository":{"type":"git","url":"git+https://github.com/clasen/RosterServer.git"},"keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"author":"Martin Clasen","license":"MIT","bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"homepage":"https://github.com/clasen/RosterServer#readme","dependencies":{"@greenlock/manager":"^3.1.0","@root/acme":"^3.1.0","@root/csr":"^0.8.1","@root/encoding":"^1.0.1","@root/keypairs":"^0.10.0","@root/mkdirp":"^1.0.0","@root/request":"^1.6.1","acme-dns-01-cli":"^3.0.7","acme-http-01-standalone":"^3.0.5","cert-info":"^1.5.1","greenlock-store-fs":"^3.2.2","lemonlog":"^1.2.0","redirect-https":"^1.3.1","safe-replace":"^1.1.0"},"scripts":{"test":"node --test 'test/**/*.test.js'"},"_nodeVersion":"22.22.2","_id":"roster-server@2.4.14","dist":{"integrity":"sha512-tyCUmazamnj872WE47xvEzkrTNlYEtR4Cv1fXglbq78ii1tyZQL4Vm8jXh4IMx4O4ORPtkSKGd7bKHmfjH+xwA==","shasum":"2279ff447933ef850ec0a05fa603e975cc61050f","tarball":"https://registry.npmjs.org/roster-server/-/roster-server-2.4.14.tgz","fileCount":116,"unpackedSize":680366,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCB1Ok/cttuRGnjr0Sf3PZRiIXTQ5qdU9d/2ywp7iwMSQIgA9LqO1oHoJszdKFzvIqUIKBQ0GQ4GlgfbDfnBBPRoXQ="}]},"_npmUser":{"name":"clasen","email":"martin.clasen@gmail.com"},"directories":{},"maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/roster-server_2.4.14_1788889668219_0.3714319618255748"},"_hasShrinkwrap":false}},"time":{"created":"2024-11-14T17:33:06.841Z","modified":"2026-09-08T17:47:48.545Z","1.1.8":"2024-11-14T17:33:07.023Z","1.2.0":"2024-11-14T17:47:00.637Z","1.2.2":"2024-11-14T18:29:59.684Z","1.2.4":"2024-11-14T19:05:28.608Z","1.2.6":"2024-11-14T19:09:50.639Z","1.3.0":"2024-11-14T20:10:19.271Z","1.4.2":"2024-11-15T00:23:17.145Z","1.4.4":"2024-11-15T00:39:23.646Z","1.4.6":"2024-11-17T23:09:50.692Z","1.4.8":"2024-11-18T01:21:08.880Z","1.5.0":"2024-11-18T01:24:27.999Z","1.5.2":"2024-11-19T17:51:50.336Z","1.5.4":"2024-11-20T20:30:07.052Z","1.5.6":"2024-11-20T20:50:49.263Z","1.5.8":"2024-11-20T20:52:07.250Z","1.6.0":"2024-11-20T23:50:58.141Z","1.6.2":"2024-11-29T15:27:17.821Z","1.6.4":"2025-01-27T21:47:30.561Z","1.6.6":"2025-01-27T21:50:37.280Z","1.6.8":"2025-01-27T21:57:04.338Z","1.7.0":"2025-01-27T22:06:17.298Z","1.7.2":"2025-01-27T22:10:45.169Z","1.7.4":"2025-01-27T22:21:07.194Z","1.7.6":"2025-05-27T16:44:26.861Z","1.8.0":"2025-07-27T15:03:31.687Z","1.8.2":"2025-08-21T19:07:27.325Z","1.8.4":"2025-08-21T22:03:43.903Z","1.8.6":"2025-12-10T02:27:07.989Z","1.8.8":"2025-12-12T15:53:02.209Z","1.9.0":"2025-12-31T14:12:21.209Z","1.9.2":"2026-01-23T20:47:17.010Z","1.9.4":"2026-02-15T15:16:29.442Z","1.9.6":"2026-02-15T15:28:38.180Z","1.9.8":"2026-02-15T15:45:07.537Z","2.0.0":"2026-03-02T20:16:08.604Z","2.0.2":"2026-03-02T20:32:33.839Z","2.0.4":"2026-03-03T18:54:48.057Z","2.0.6":"2026-03-03T19:01:42.430Z","2.1.0":"2026-03-05T19:05:31.644Z","2.1.1":"2026-03-05T19:13:48.596Z","2.1.2":"2026-03-05T19:16:21.384Z","2.1.4":"2026-03-05T19:26:55.353Z","2.1.6":"2026-03-05T19:28:43.607Z","2.1.8":"2026-03-05T20:00:30.487Z","2.1.10":"2026-03-05T20:03:50.238Z","2.1.12":"2026-03-05T20:06:15.270Z","2.1.14":"2026-03-05T20:23:23.940Z","2.1.16":"2026-03-05T20:32:53.338Z","2.1.18":"2026-03-05T20:42:30.473Z","2.1.20":"2026-03-05T20:55:30.894Z","2.1.22":"2026-03-05T21:07:40.265Z","2.1.23":"2026-03-05T21:10:24.874Z","2.1.24":"2026-03-05T21:11:47.555Z","2.1.25":"2026-03-05T21:37:12.452Z","2.1.26":"2026-03-05T21:45:28.496Z","2.1.27":"2026-03-05T21:47:33.049Z","2.1.28":"2026-03-05T22:06:04.309Z","2.1.30":"2026-03-05T23:42:14.815Z","2.1.32":"2026-03-06T00:20:54.088Z","2.1.34":"2026-03-06T00:27:05.086Z","2.2.0":"2026-03-06T00:39:41.051Z","2.2.1":"2026-03-06T00:45:53.534Z","2.2.2":"2026-03-06T01:26:38.331Z","2.2.4":"2026-03-06T01:38:38.326Z","2.2.5":"2026-03-06T01:43:00.880Z","2.2.6":"2026-03-06T01:52:39.268Z","2.2.7":"2026-03-06T01:56:19.563Z","2.2.8":"2026-03-06T02:02:58.211Z","2.2.9":"2026-03-06T02:06:51.737Z","2.2.10":"2026-03-06T02:15:46.718Z","2.2.12":"2026-03-06T17:31:12.040Z","2.3.0":"2026-03-15T23:43:57.410Z","2.3.2":"2026-03-16T00:04:36.244Z","2.3.4":"2026-03-16T18:54:38.985Z","2.3.6":"2026-03-16T19:28:16.688Z","2.3.8":"2026-03-16T20:15:29.270Z","2.3.10":"2026-03-16T20:22:23.119Z","2.3.12":"2026-03-17T00:58:16.326Z","2.3.14":"2026-03-17T01:53:04.030Z","2.3.16":"2026-03-17T14:47:44.611Z","2.4.0":"2026-03-20T19:24:17.671Z","2.4.2":"2026-03-21T02:34:16.238Z","2.4.4":"2026-03-21T02:54:55.732Z","2.4.6":"2026-03-21T03:22:28.659Z","2.4.8":"2026-08-25T19:00:12.903Z","2.4.10":"2026-08-25T19:06:07.888Z","2.4.11":"2026-09-03T00:30:06.965Z","2.4.12":"2026-09-03T13:07:32.906Z","2.4.13":"2026-09-08T17:23:41.852Z","2.4.14":"2026-09-08T17:47:48.389Z"},"bugs":{"url":"https://github.com/clasen/RosterServer/issues"},"author":"Martin Clasen","license":"MIT","homepage":"https://github.com/clasen/RosterServer#readme","keywords":["greenlock","https","domain","multi-domain","letsencrypt","hosting","ssl","host","vhost","virtual-host","socket.io","websocket","express","greenlock-express","shotx","bun","clasen"],"repository":{"type":"git","url":"git+https://github.com/clasen/RosterServer.git"},"description":"👾 RosterServer - A domain host router to host multiple HTTPS.","maintainers":[{"name":"clasen","email":"martin.clasen@gmail.com"}],"readme":"# 👾 RosterServer\n\nHost multiple domains from one Node.js process, with HTTPS certificates managed through Greenlock, Express and Socket.IO integration, static file serving, and local HTTP development. Each site receives a virtual server for request and upgrade listeners; applications share the process.\n\n## Installation\n\n```sh\npnpm add roster-server\n```\n\n`npm install roster-server` and `bun add roster-server` are also supported installation commands. The package exports a CommonJS constructor that can also be imported as an ESM default. Server examples below use `.mjs`; site examples use `.cjs`.\n\n## Quick start: local HTTP\n\nSave as `server.mjs` and run `node server.mjs` from your application directory:\n\n```javascript\nimport path from 'node:path';\nimport Roster from 'roster-server';\n\nconst roster = new Roster({\n    local: true,\n    wwwPath: path.resolve('www')\n});\n\nroster.register('example.com', () => (req, res) => res.end('Hello'));\nawait roster.start();\nconsole.log(roster.getUrl('example.com'));\n```\n\nLocal mode binds to `localhost`, skips certificates, and assigns domain ports within `minLocalPort`–`maxLocalPort` (default `4000`–`9999`). Assignments use a domain hash and resolve collisions within the instance; they do not probe for available OS ports. A bind failure rejects startup. Read the assigned URL with `getUrl()` instead of hardcoding a sample port.\n\nFor production HTTPS, use a real contact email, public DNS pointing to the host, and explicit storage paths:\n\n```javascript\nimport Roster from 'roster-server';\n\nconst roster = new Roster({\n    email: 'admin@example.com',\n    wwwPath: '/srv/www',\n    greenlockStorePath: '/srv/greenlock.d'\n});\n\nawait roster.start();\n```\n\nStandalone HTTPS opens port `80` for ACME challenges in addition to the configured HTTPS ports. Port `80` cannot be a production site port. Use `staging: true` when testing certificate issuance; staging certificates are not publicly trusted.\n\n## Sites and routing\n\n```text\nwww/\n├── example.com/index.cjs\n├── api.example.com/index.mjs\n├── static.example.com/index.html\n└── *.example.com/index.cjs\n```\n\nFor each directory, discovery checks `index.js`, `index.mjs`, then `index.cjs`. If none exists, `index.html` enables static serving. `filename` changes the script basename; the static entry remains `index.html`. Match `.js` exports to the site's package module type, or use `.cjs`/`.mjs` explicitly.\n\nDiscovery happens during `init()`. Register manual sites before initialization. Discovered sites use HTTPS port **443**, even when the instance's `port` is different; a discovered registration replaces a manual registration for the same domain and port. Loading new sites requires a new instance or process restart.\n\n### Site factory contract\n\nExport a **synchronous factory** `(virtualServer) => requestHandler`. The returned `(req, res)` handler may be asynchronous. Return an Express app directly; do not call `app.listen()` inside a factory.\n\nBasic site, saved as `www/example.com/index.cjs`:\n\n```javascript\nmodule.exports = () => async (req, res) => {\n    res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });\n    res.end('Hello');\n};\n```\n\nExpress site, with Express installed in the consuming application:\n\n```javascript\nconst express = require('express');\n\nmodule.exports = () => {\n    const app = express();\n    app.get('/', (req, res) => res.json({ ok: true }));\n    return app;\n};\n```\n\nThe virtual server supports request/upgrade listener integration; it is not a separately listening TCP server or a process isolation boundary. Request listeners own their requests, including asynchronous responses. Roster does not invoke the returned handler just because a listener has not finished. Wrappers can capture the site's HTTP fallback through `server.listeners('request')`.\n\nThrown or rejected request-handler errors produce a `500`, or destroy the response if headers were already sent.\n\n### Socket.IO and resource cleanup\n\nWith Socket.IO installed in the consuming application:\n\n```javascript\nconst { Server } = require('socket.io');\n\nmodule.exports = (server) => {\n    const io = new Server(server);\n    io.on('connection', socket => {\n        socket.on('chat:message', message => io.emit('chat:message', message));\n    });\n    server.onClose(() => new Promise(resolve => io.close(resolve)));\n\n    return (req, res) => res.end('Socket.IO site');\n};\n```\n\nSocket.IO handles its own endpoint and delegates other requests to the returned handler. No manual path exclusion is required. Use the public `io.path()` method if application code needs its configured path.\n\n### Manual registration and custom ports\n\nAfter creating `roster`, register factories before `init()` or `start()`:\n\n```javascript\nconst site = () => (req, res) => res.end('API');\nroster.register('api.example.com', site);\nroster.register('api.example.com:8443', site);\nroster.register('*.example.com:8443', site);\n```\n\nA registration without an explicit port uses the instance's `port`. Exact hosts take precedence over wildcard matches. `*.example.com` does not match the apex `example.com`; register the apex separately if needed. Wildcard certificates require [DNS-01 configuration](#certificates-and-dns).\n\nRequests to `www` hosts redirect to the host without `www`, preserving the explicit port in the Host header. `getUrl(domain)` normalizes `www` and supports wildcard lookups. In local mode it returns `localhost` or a subdomain such as `api.localhost`, with the assigned port. In production it uses the instance's default port; it is not a per-port URL lookup for registrations made only on non-default ports, which can return `null`.\n\n### Static sites\n\nA directory with `index.html` and no entry script needs no JavaScript factory:\n\n- `GET` streams the requested file; `HEAD` reads metadata without reading the body.\n- `/` and directory requests serve the corresponding `index.html`.\n- Missing files return `404`; there is no SPA fallback. Unsupported methods return `405`.\n- Paths that resolve outside the site root are rejected. Content type is inferred from the file extension.\n\nFilesystem operations are asynchronous, and disconnected downloads close their file handles.\n\n## Startup and shutdown\n\nConcurrent `init()` calls share initialization, so each factory runs once per registered domain/port. Concurrent `start()` calls share startup. In standalone and local modes, `await roster.start()` waits for listeners to bind. Initialization or bind failures reject and clean up resources already initialized by the instance.\n\nRegister `virtualServer.onClose(fn)` in a factory for timers, databases, queues, or other site-owned resources. Hooks may return Promises, run once, and run concurrently after active HTTP requests drain. Put dependent cleanup operations in the same async hook. This is separate from the virtual server's `close` event, which is emitted when shutdown begins so integrations can release long polling requests.\n\n`await roster.close()`:\n\n1. Stops accepting work and cancels Roster's renewal/retry timers.\n2. Closes listeners opened by `start()`, including ACME HTTP, and routed WebSockets; drains active HTTP requests and waits for pending certificate work.\n3. Runs site cleanup hooks. Individual failures do not prevent other hooks from running; failures are reported in an `AggregateError`.\n\n`closeTimeoutMs` (default `30000`) bounds the whole operation. At the deadline Roster destroys remaining owned connections and active routed responses, attempts cleanup hooks, and rejects with a timeout. It cannot forcibly interrupt an application Promise or an ACME operation already in progress.\n\nClosing is **idempotent and terminal**: repeated calls return the same Promise. Create a new instance after closure or failed initialization/startup.\n\nFor automatic shutdown on `SIGINT` or `SIGTERM`, explicitly enable `handleSignals`:\n\n```javascript\nconst roster = new Roster({ handleSignals: true });\nawait roster.start();\n```\n\nThe option defaults to `false`. Listeners are installed once when `init()` or `start()` begins and removed when closure completes, including failed startup or cleanup. Signals call `roster.close()`; repeated signals during closure do not repeat cleanup. Existing application signal listeners remain installed. Shutdown failures are logged and set `process.exitCode = 1`.\n\nRoster does not force process termination or close caller-owned servers. The process exits naturally when its remaining work finishes; other resources or cluster workers still require application coordination. If the application already coordinates shutdown, leave `handleSignals` disabled and connect Roster to that flow:\n\n```javascript\nasync function shutdown() {\n    try {\n        await roster.close();\n    } catch (error) {\n        console.error(error);\n        process.exitCode = 1;\n    }\n}\n\nprocess.once('SIGTERM', shutdown);\nprocess.once('SIGINT', shutdown);\n```\n\n## External servers and workers\n\nUse `init()` when your application or cluster manager owns the listener. It loads sites and invokes factories without binding ports. In production, it also generates certificate configuration and, unless `autoCertificates: false`, creates the certificate runtime and renewal timer.\n\nA serving-only worker with existing certificates:\n\n```javascript\nimport Roster from 'roster-server';\n\nconst roster = new Roster({\n    email: 'admin@example.com',\n    wwwPath: '/srv/www',\n    greenlockStorePath: '/srv/greenlock.d',\n    autoCertificates: false\n});\n\nawait roster.init();\nconst server = await roster.createServingHttpsServer({ servername: 'example.com' });\nserver.listen(8443);\n```\n\nThe caller owns this server's listen/error/close lifecycle. To wire an existing HTTP(S) server instead, call `roster.attach(server, { port: 443 })`. The `port` selects a routing table; it does not change the server's listening port. Attach request handling only where Roster should own dispatch. Repeating the same attachment is a no-op; attaching that server to a different routing port throws.\n\nDuring shutdown, `roster.close()` drains its routed requests, closes its routed upgraded sockets, and removes only listeners added by `attach()`. It **does not close the external server**, including servers returned by the HTTPS helpers. Coordinate both closures in the owning application. Manually wired `requestHandler()`/`upgradeHandler()` listeners must also be removed by their owner.\n\nFor multiple workers, keep certificate issuance in one manager process and use `autoCertificates: false` with `init()` in serving workers. The manager can use `start()` to provide ACME HTTP and `ensureCertificate()` before starting workers. Keep domain/certificate configuration consistent: `init()` still writes configuration even in serving-only mode. `start()` retains the standalone ACME lifecycle even if `autoCertificates` is false.\n\nThe legacy `cluster: true` launcher delegates process management to Greenlock. `close()` applies to the current Roster instance; it does not stop worker processes. External cluster managers should coordinate shutdown in each worker.\n\n## Certificates and DNS\n\nThe default DNS-01 integration is a wrapper around `acme-dns-01-cli`, with `propagationDelay: 120000`, `autoContinue: false`, and `dryRunDelay` matching propagation delay. Without an API provider, DNS challenges require manual TXT records. `dnsChallenge: false` disables this integration, not HTTPS itself.\n\nWildcard sites normally receive a separate wildcard certificate using DNS-01; apex/www use their regular certificate flow. `combineWildcardCerts: true` puts apex, www, and wildcard names on the primary certificate and requires DNS-01. `disableWildcard: true` ignores wildcard site registrations and discovery.\n\nFor Linode, supply `LINODE_API_KEY` through the application's secret configuration and set `ROSTER_DNS_PROVIDER=linode`. A configured Linode key also selects that provider when no provider is specified. The wrapper creates/removes TXT records and checks DNS propagation. API failures can fall back to manual mode by default; for unattended operation that must fail instead, configure:\n\n```javascript\nconst dnsChallenge = {\n    module: 'acme-dns-01-cli',\n    provider: 'linode',\n    dnsApiFallbackToManual: false\n};\n```\n\nPass this as the constructor's `dnsChallenge` option. To use another provider, install its Greenlock DNS plugin in the consuming application and supply its module name and provider options. Configure DNS timing on that object with `propagationDelay`, `dryRunDelay`, `dnsPollIntervalMs`, and `dnsPollTimeoutMs`; the wrapper's polling interval defaults to `15000` ms.\n\nRoster's file-based SNI resolvers cache TLS contexts and detect changed certificate files through metadata, including updates from another process. Concurrent requests for the same certificate name share loads and checks. Standalone startup reuses the initialized certificate runtime and Roster's cancellable renewal loop. Loading an existing certificate does not itself force renewal.\n\n## Configuration reference\n\nPass operational settings through the constructor, using the consuming application's configuration source. Prefer absolute `wwwPath` and `greenlockStorePath`. `basePath` supplies their defaults; it does not rebase explicitly supplied relative paths.\n\n| Option | Default | Meaning |\n| --- | --- | --- |\n| `email` | `admin@example.com` | Replace with the real certificate contact. |\n| `basePath` | Derived from package location | Default parent for `www` and `greenlock.d`; set explicitly when relying on it. |\n| `wwwPath` | `basePath/www` | Discovered sites. |\n| `greenlockStorePath` | `basePath/greenlock.d` | Certificate files and generated configuration. |\n| `filename` | `index` | Script entry basename, without extension. |\n| `local` | `false` | Local HTTP mode with assigned ports and no certificates. |\n| `port` | `443` | Default port for manual registrations and routing helpers. |\n| `hostname` | `::` | Production bind address; local mode uses `localhost`. |\n| `minLocalPort`, `maxLocalPort` | `4000`, `9999` | Inclusive local assignment range. |\n| `staging` | `false` | ACME staging environment. |\n| `autoCertificates` | `true` | Certificate runtime during `init()`; disable for serving-only workers. |\n| `certificateRenewIntervalMs` | `43200000` (12h) | Roster renewal check interval; minimum `60000`. |\n| `closeTimeoutMs` | `30000` | Positive finite total shutdown deadline. |\n| `handleSignals` | `false` | Close this instance on `SIGINT`/`SIGTERM`; does not force process exit. |\n| `tlsMinVersion`, `tlsMaxVersion` | `TLSv1.2`, `TLSv1.3` | Protocol limits for created HTTPS servers. |\n| `skipLocalCheck` | `true` | Skips Greenlock dry-run/local challenge checks. |\n| `dnsChallenge` | CLI wrapper | DNS-01 options or `false`; see [certificates](#certificates-and-dns). |\n| `disableWildcard`, `combineWildcardCerts` | `false`, `false` | Wildcard registration and certificate behavior. |\n| `cluster` | `false` | Legacy Greenlock-managed cluster launcher. |\n\n## API reference\n\n| Method | Contract |\n| --- | --- |\n| `register(domain, factory)` | Register before initialization; accepts `domain:port` and wildcard domains. Returns `Roster`. |\n| `use(plugin)` | Add a synchronous request plugin. Returns `Roster`. |\n| `init()` | `Promise<Roster>`; prepare routing and factories without listening. |\n| `start()` | Start standalone/local listeners; await readiness. |\n| `close()` | `Promise<void>`; drain and clean up the instance. |\n| `getUrl(domain)` | URL or `null`; local assignment is available after startup. See [routing](#manual-registration-and-custom-ports) for port limitations. |\n| `requestHandler(port?)` | HTTP dispatcher for the selected routing port. Requires `init()`. |\n| `upgradeHandler(port?)` | WebSocket upgrade dispatcher. Requires `init()`. |\n| `attach(server, { port }?)` | Add both dispatchers to a caller-owned server. Requires `init()`; returns `Roster`. |\n| `sniCallback()` | TLS SNI callback. Requires production-mode `init()`. |\n| `ensureCertificate(servername)` | `Promise<{ key, cert }>`; load existing PEMs or issue missing ones when enabled. Requires production-mode `init()`. |\n| `loadCertificate(servername)` | Synchronously load `{ key, cert }` without issuance. Requires production-mode `init()`. |\n| `createManagedHttpsServer({ servername, port?, ensureCertificate?, tlsOptions? })` | `Promise<https.Server>` with certificates and dispatchers; does not listen. Certificate assurance defaults to `true`. Requires production-mode `init()`. |\n| `createServingHttpsServer({ servername, port?, tlsOptions? })` | Same helper with `ensureCertificate: false`; set `autoCertificates: false` for a serving-only instance. |\n| `virtualServer.onClose(fn)` | Register a cleanup hook; returns the virtual server. See [shutdown](#startup-and-shutdown). |\n\n## Request plugins\n\nPlugins run before redirects and site dispatch. They receive `(req, res, { host, domain })`; return `true` after handling the response, or `false`/`undefined` to continue. Plugins must be synchronous. Thrown errors or Promise returns produce a `500` response.\n\nEnable the optional scanner blocker before startup:\n\n```javascript\nimport { createScannerBlocker } from 'roster-server/plugins/scanner-blocker.js';\n\nroster.use(createScannerBlocker());\n```\n\nThe blocker rejects common PHP, WordPress, repository, and sensitive-file probes with `404`. Defaults: a `60000` ms strike window, `3` strikes, a `900000` ms ban, `10000` tracked clients, and `trustProxy: false`. Configure `windowMs`, `strikeThreshold`, `banDurationMs`, and `maxTrackedClients` on the plugin. State is bounded, in memory, and per process.\n\nEnable `trustProxy` only behind a trusted proxy that overwrites `X-Forwarded-For`. The optional synchronous `onBlock(event)` callback can integrate the application's logging or enforcement; it does not itself provide shared or persistent bans.\n\n## Troubleshooting and runtime limits\n\n| Symptom | Check |\n| --- | --- |\n| Startup rejects with a port error | Free the conflicting port or change the configured range/port, then create a new instance. Standalone HTTPS also needs port 80. |\n| A site returns `404` | Check the domain, routing port, entry filename, module type, and factory export. Discovered sites stay on 443. |\n| A site import fails with a relative path | Pass an absolute `wwwPath`; explicit paths are not rebased onto `basePath`. |\n| Static deep links return `404` | There is no SPA fallback; use a site handler when that behavior is required. |\n| Socket.IO falls through or double-responds | Attach it to the supplied virtual server, return the ordinary HTTP handler, and let Socket.IO own its endpoint. |\n| Certificates are missing in a worker | Ensure the manager has issued them into the same store before worker startup. `init()` alone does not bind ACME HTTP. |\n| Shutdown times out | Inspect the aggregated errors and site hooks, active requests, and pending certificate operations. |\n\nLocal integration checks cover Node HTTP/TLS and Socket.IO polling/WebSocket shutdown on Node and Bun. In **Bun 1.3.4**, the tested `node:https` serving helper did not invoke `SNICallback`, and changing certificate files did not replace the served default certificate. This also occurred with the previous synchronous resolver; do not assume Node's SNI reload behavior on that runtime.\n\n## Agent skill and development\n\nThe [RosterServer skill](skills/roster-server/SKILL.md) guides application integration:\n\n```sh\nnpx skills add https://github.com/clasen/RosterServer --skill roster-server\n```\n\nContributors can run `pnpm test` for the Node test suite. Examples live in [demo](demo); they are separate from the published API reference above.\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) Martin Clasen\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","readmeFilename":""}