{"_id":"servor","_rev":"28-f7c51bb852641041edba058f4f09cf59","name":"servor","dist-tags":{"next":"3.3.0","latest":"4.0.2"},"versions":{"1.0.0":{"name":"servor","version":"1.0.0","author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@1.0.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./servor.js"},"dist":{"shasum":"539874ab89077673e63811e06be871c95fca583a","tarball":"https://registry.npmjs.org/servor/-/servor-1.0.0.tgz","fileCount":11,"integrity":"sha512-ETHznfGHC7OPNIEfo1W8XhLdM5uOVKGmBJL9Vc7nioVNmeZ0OIX/iVOXutLO/eI1cX1Af2cmTY85Z+LLzrxlcA==","signatures":[{"sig":"MEUCIQCkfwcexWoQBvxSj/HBYFGotgu1nC2l1riilGU/gNadAAIgZ51zB+mND9p/75k1i4g12siIuE9VSCRdYL4avafVI74=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb48TECRA9TVsSAnZWagAA7WUP+wUXnjm2ksahR7psT0s9\nGMJAicK2qCGUePjtmtTolDggUpB6dvDiyC9NRR+yaVB1MskDgVQ8phFLa6zF\n9mNVsi3dOetAyvlMNLk2lDedmeb3TJHc6fhRNGOEozjg568E1CsoFZCVSFnZ\nJj0hIv95q3AQiGNt1kz/l03BZxE7iuoRlFzu+OitPOjXRHimbvfatcnYYwC3\n3eDurwhNrDtJ9cUnx8wIb2n25e4XE1KTKu2F9w5NoFy7ZR0peGetRlt8jwcb\nXzLV2H3OVZERFMZtclCEFQE90dmY1oFnEbgOJ9hzzBzzSnUDXdIXzPeVmaSc\ncPo2w6AFMU1d8Jnt5dq1iLhUOakOAax1/I/Et4w8UZEGvrIfLbC4bwIq29tG\nj3CoOPDAkgr3CC2DlRTZoXtFGCOf/r+AgHG7M3NbAaBzkfyxD+ew8Ezv002i\nI6EDmMAzhPr0IhP0Pb23c4uPutDSoS7rYNd5BnKzrBz48uoK7HHle7VrMxMP\n5MsuYjIq0FEdkRRX0gNZDt706kU4oc3xK9UfDnCts4tykDssSu+yNFknLOHi\nvMYriideNUJE8dr4CAnf5QkIwUUbZyzotMODHwSIajyPo3kst4d4n5j8Q/w0\nS56XXnKNZNU79cQpwKPxpHRoQ3O7FUKgZa6fcEfxBLXGy61Yo3Rr5aniGnvf\n5IOh\r\n=1Lkb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node servor test index.html 8080 --live","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"description":"A dependency free dev server for single page applications","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_1.0.0_1541653699652_0.07870544966002058","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"servor","version":"1.1.0","author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@1.1.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./servor.js"},"dist":{"shasum":"eb66962953b05a58ba1a3b7fc4111318521b0f1a","tarball":"https://registry.npmjs.org/servor/-/servor-1.1.0.tgz","fileCount":11,"integrity":"sha512-zk00WS3eE6gD73saFNF2xwReUQeELmBkRQER5Rh9F/yLqqiOiPKdk2FAwyrmmHEUaX70iGMKzgcVz2VvDFCkmA==","signatures":[{"sig":"MEYCIQDM28pSXrfu0RU2DOjlnzs+MTviVB9tZnQsaxQCBEqnCwIhAJ2ubWvEu5x8vxyncx5IBGrUuIkV6xgtzMgE/zZYHszw","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":41990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb49HkCRA9TVsSAnZWagAAmXAP/j02wsywrLH4AlkUFcfD\n5n6CoMX2k/JN220KETwVQWSLWZQZsdsZhj71T8BaNDeySnHnwiU1SNqYHWk+\nVp7AjTll91Tiyfi6kFDnvhV7E7sVY9aKLNA2si68aMX55esjXLIrO0d9qjTj\nQt/VRaiCRs5KxiukicC0jxvxm5lHl5EFrlDhNd/55CPHdIh60kx0iDoLbTEW\nCg+GrXQX//qY3tJdqCSteJSN/NnCSZ0Clmph82lzN2xjCa3uR8/8PoLKWmkO\nNyM6ouf9dr5aHihfJsM2NKjjR9Im0BokVJzoe9vIn40ult5TrI/XQFWM5Kky\nnd+ekP3LoT0Dhtu5Q2omUaRsH5HqPR+LVYJb3R0vourGSJDSF6HF7kpsi59Y\nMSMq6zeFdFteb2k6pRpzMw5JBMsZGX6GF4IWVQf9jSUCazj2e2B5xsw1gkaF\nbjnLYDBmAsFReuEnVap/z905T+5lY0vmfRnJQu4fUoEpBK7LIPwNDLTOCbgf\n6F7B8Oz8hbFzO+0fYzBmk7dcJgAzyAzEzxGG5gCHVD1yFBSmkp2juNcqMntn\nDx1se6NVZ5swnCtwopCANZbpbtjKxNnY7fFXcY8YQlNr6kb2faOfbl4raqKp\nQyKaQPPNUWNpdXe8PjXfmCuSsy0ppEDj9+S3YfZUcNtN1l0k2i5BCTfilh/m\nEff0\r\n=Xg26\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node servor test index.html 8080 --live","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"description":"A dependency free dev server for single page applications","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_1.1.0_1541657059524_0.8302101221782696","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"servor","version":"2.0.0","author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@2.0.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./servor.js"},"dist":{"shasum":"bbbc79b7f20d1d1148a869e936f02ea6bfd139e3","tarball":"https://registry.npmjs.org/servor/-/servor-2.0.0.tgz","fileCount":5,"integrity":"sha512-g67xaMpM0HkSeLn7cyYsPPNID8RXJoiZSateujBd4qE/c/1LwdEJr4WJ6DSgNXIJw46CgVldX7yJkyinHNEi4g==","signatures":[{"sig":"MEQCIBp0jR4BqJB7eI7VuAwma2nod5HqdpRM7/FSM/kU1EckAiB75SIxBs6flfWb0hNrYqQmArlkoWEyUpSFF9NBJi+2PQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37834,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4/THCRA9TVsSAnZWagAALewP/2xLtH2f3pM9Ch89U5Pz\nA9170YhackAuHjDTPLOxaYZRV6EeeXpNaqGoSbguAL590Vt8TzUR9nxMjdvQ\n+8xDpZQWPZWl3eeNVQl/D6s2hEW234jECEEc8fiLwUGWeGNlOy/QOVF0CKyn\n/GRFdHgXU7+F3mW3Csf8K57C5hmwZLehpr/oxQ0XAJL8pWKSWJjbYSlJLur1\ncgWVNBEUjEVrr72VcKgizQ6lpurGPjZenSwhf9f7OTFUZkCsCZ3A2v+lk4o2\neC2UAylO7rtG9JoP4gAupUaa59aIMbNvX3v0Z3OGgqudp5UOuW0xcj2xygJW\n9pkqcB5DbW4YQQaFRf82tD2RLZthwWeJolhRymwPApR6cSqHw05nN+0eXHWv\ncDntn0lDtU1oti9xvOSJfdZLJZHGj2NxvE5ADqla18+4dsh8BLgyB74G2HZu\nPqQIf4Kl9D320WE+ds35L1PdviXRjXsgRXyWO8DFdeckciX/uZU11rUbVvvP\nUW1G5sk4AJr60A3MrNm3y9vTIHh/PmjoLom0cEevtr/h8cQ9drMD6Pba7F+9\nm2yvJCWHtLptCVAggH8dW+S3/2HkOUGMyCgO5gCImBalhMLIwbrcxYxje8At\nEjRYTFbrcfVP0chvKs1IBbTN01sCk4Sy4LofUTX/YFxgcg285umvrq+D1v2b\nwXCd\r\n=wADQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node servor test index.html 8080","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"description":"A dependency free dev server for single page applications","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_2.0.0_1541665990540_0.9769903400793056","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"servor","version":"2.0.1","author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@2.0.1","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./servor.js"},"dist":{"shasum":"aa29c6368e26b0823f394bd24064e9afa7441d2b","tarball":"https://registry.npmjs.org/servor/-/servor-2.0.1.tgz","fileCount":5,"integrity":"sha512-XotfqWEKD8wQ/yRWUvvBlD/bDeWbIc39+V+Wr58F5SkaXkF6EdWSNr1mO4QTkODd9mlAqy/6ZADg4dFQtD0qGA==","signatures":[{"sig":"MEUCIAIQVcyPBRVaiyuFVLB8CGY4Fup7GXH+RqtN1iOzey/OAiEAvvOFK9uxcu9gLpSrxoTKXJcFlM9Eg/aLSLgumIhiOAY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38075,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb5BBiCRA9TVsSAnZWagAA0l8P/RtBHgIQmkOBQa7qojus\niYyBtVfNP2PoUoelM1boXDHOkY5Qj+soW8PgUrU0rmliWSBEWdBDJABIgB+V\n9YpHTddwAmCOAwPH+zAhMVdSO8hi6hveOrerGbCLevoRa/ocuPNX5i/Wnyc6\nXh4cgueGzn7BaULlIiZS4vaMslJFbVspA3wCAscylchmcrDBUTQhUeXhA6D3\nqf+q9V4ekofBUjvYEe7AVrVe4yq1R1kMaw6SW9rolkJCU4PxGDuj5uTlx05h\nCvIqjSRzJtz5z70qtvwJ3xS+7Praz4co+X/tVUAoAMgQHAxMI5oKuaU1aBxl\nqYyH3SBjOtFMNmqreudf9tRFD976K3tA5DlRIA+maOujFnv6jg1hU5aXrQmb\n2vKnkkxOIziScIFnJ0HZDhvvf+ORatkYvrxu9GxEgEfh6rvAcqdnx1jszi6q\nK47DPow2KgPdPSYWNAl9M2bOzyrXB5mB5eDloaT1PPQMEtHnpM3ss4+kWBL/\nZf+CJs6Hh11IjkjdhzVNvt9BQXcjxbL3NEVoB0nNMxsyCDxMcwvv0CQ0Jve7\nsogJ3XTYQbc+T1gJgEQmC0Qo5SlnVDWZjp0zWPm5VauUwbGHkDy03QspEZ/v\nRxEpbcrqdzkGDShas2d5qO29ZW2U74EWWrltbAYb1wtUMABZ4DJWFRJCW56u\nL0gS\r\n=Td/x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node servor test index.html 8080","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"description":"A dependency free dev server for single page applications","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_2.0.1_1541673057936_0.7689125019931102","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"servor","version":"2.0.2","author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@2.0.2","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./servor.js"},"dist":{"shasum":"f4e1372d8010ec7503c2271df63a57579573e437","tarball":"https://registry.npmjs.org/servor/-/servor-2.0.2.tgz","fileCount":5,"integrity":"sha512-lvZVXotOtoSoIaZdImiTHv8ZkO4RjduupbinpHjcbagaT82rkO2StS6uuVcaDHusQqaIx7v6IUj6K9z0BaD+uw==","signatures":[{"sig":"MEQCIBXF4pfHAboTWopGHWH5Ifg6mWEhYCyG2J2tOmsa7sIJAiB1bVinnTSF0smdXjoQYQCLG22On/eoVd5YwfYv/pjveA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb5B2RCRA9TVsSAnZWagAA2XcQAIsYC7fXULRtDCd2mN74\nod74kFhlhkn1KUvmTJNuOynZwcZh7wo/xaMQv90VWltkbHKOBkoTQIAU5ntH\ndYzKM7SKKfACDvU4KgtqYn22Ork5lb6qQWT9ylGNZLPGxrr8GcfasQThdoNf\nD9tMj27mJ8p2jxuPTI53MDhxXLuNeWX1/xnelt/PekAC8KST8HUu9xe6ZVyT\nvIZ1ylq3PSxNdkTov7mUWiRnzMtr0vYEYFuIVtKNXg1kVUNDloI1xl0jsf5+\nfnHx1ww1pQ/vWur9nxUZntiqxaBwcfgVKdkXbNkn+XA3ZjTpD+FtMHnISMqO\na2knOJ0UocWntk7wYZQyNrSPLiBt0LnIGUF1lIvTSMVHUJSaUqn3mM2iCsiP\neOOi5gz12BYpulHoPcDEc1hOXIZyrTCVuQj70B7+rqKkeYhO8YUql6W724hb\n735MpvPMavm9MUIxoHzG/lLAfMkVNb9cA5mwJf8R6wIucwiYxN95Op0aAkGB\n9T8VgRmVW8eW6L2tzgx3EPuy0J8psa+BpOC1hsD0a0dtroWQILr4FTqGxTb1\nLZVvQiWhvrFzdMDCTXk4pVJWLIy/4GO3I4Ylq1l/ZzX5BoTfNIBOGUjzbclP\nJ7+ohmf5wIUtV68NdmNaRpCVuzwOKl6RrgzCWARJLyNhMv5A0AeJiCFnXkKJ\nDuc3\r\n=9U6P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node servor test index.html 8080","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"description":"A dependency free dev server for single page applications","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_2.0.2_1541676432717_0.62435833489742","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"servor","version":"2.0.3","author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@2.0.3","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./servor.js"},"dist":{"shasum":"629c64b778639db8181276441a616942d1eb49af","tarball":"https://registry.npmjs.org/servor/-/servor-2.0.3.tgz","fileCount":5,"integrity":"sha512-LuXdSg+1w/0LnnKjZrwFGcpnHpFLvAQj7t6Kes4h1LUVmeGKA6X/9NdcWnjj25nJDDHXdhRKusMf5ftG/2BGBQ==","signatures":[{"sig":"MEQCIBNiqQL7sSyEre4GaX8GK/QRit6jvwGZ6YFl5j37/xmUAiAHaolc3FZQFPddXt8O3zYok5pnApziGymwCows+bWXLw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":37909,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb5DUcCRA9TVsSAnZWagAAYMkP/R1BsIFPbnmZROZhXj1l\n6tryjpNJFfZo6KcgU1pmwJF6YhA/Jk7hyRBzG3zwU0nxlgcwI7LOZM9QBLwG\nycLKfxasCZ/+blOggdIXHNpDn4s8pPW10IyJ0rwS7KkqNDssJaY/j+4s6XTW\nPE2mw5nvayVdaKoP5/3DtUCLadveH61WJpo8tSilwxZ3QsdyzsIFzjd9XE4K\njNFzaJmcM1utrAewgF+2cG13qIsv26FMZ8mzHTAAxeAtcye5QRx1TzYM6R5C\neVzWfk1Y2ww34KtETxgmLP7CAfrN9v5m7oGM2m9T0LhYksY6bsGmP5+/us3g\n+cAsVTt3xuoqhfwlNmFlKRrPI0rG/b8C4cgz7Iel+NEYWRu69zEVK63bth8m\nXzxNap3k1YG+WZSsN6W9GEPmiUPeiixK/e7LWNM/0y3c90ABCmZWTzhcKIYx\np4OALzRz7djPLKkMuR/7IHc8i6RXybQV7SipvXCnEDGMGhs9/y/DCb/Sby98\nqRLgiEnKeDyM0Oze676YopzJf2o4O7QM/HTT8+tmLd8zKxapsRB50w44z5uj\nMEIid/Z5revdLsbfa7SKNB7mLWDep57XgBctLmsTNXXxp9P2D77EmOjlkpV5\nXSU2fMaqX05j6pqJH4dp1pFMznFGoGsqagGBM/WPDO87mg8oS2zXeZG0z2mM\n/l/y\r\n=eYmX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node servor test index.html 8080","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"description":"A dependency free dev server for single page applications","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_2.0.3_1541682460073_0.04214557956022724","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"servor","version":"2.1.0","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@2.1.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./servor.js"},"dist":{"shasum":"c9a56204abd5c203cf219135c51c159a5eb99dd2","tarball":"https://registry.npmjs.org/servor/-/servor-2.1.0.tgz","fileCount":5,"integrity":"sha512-dc1nRLyFvl/W7vGFLccg8ITq0Jnq5OZCSAIwOsxwisAOOSEsGtqoAHvQYibDVzWQm1Z6GrUwXjtjDR9T8nzxlQ==","signatures":[{"sig":"MEUCIFVWiVH3agntY9lCATzjh3KZjSvpnRRXw5l1ISi1jd7dAiEA3iqj5jILGZUp0CDYQ3c3lLROoP27Trp7b7vSOu3tPiY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxJZ8CRA9TVsSAnZWagAAIf8P/1wZvukeUfjy1VJ6aqQh\n3u1O+EMZY/50jtZfbp1zkXYplygpedEW6XjmCa1cv3V3pkqSZXJNjBrnr8uH\nhK/G2TBsKq7EcJh5X4pIS+x9tH0YGEetsWCV9IW+BLeSSQ+HnWemM4o90ysx\nX2EJNaJPT/odOcgtWZ5JN2h2g4r+ExSFi4S+Oi2QiJh22j7YC80PvBFOLl0c\nFanWasP9/CkihdeVE4ehsI/4HYh4xRRLEJyX1aksYjZAMezkljuIlCK2596b\nr0tawW2X9YNSn3liC3BSaYk9YuIW+3+TnK8Opl4br7ABmuUKqdJ4PXakkNVe\nzR9YJsI2Y+lxBljJPuhMZU1fD1H7Vs8FDll3xjzcdlX+uKgULJ1KAvSIEOEN\nVOLbVW/JUDBrwLTGZREjty4bSFsic7d4apmMxVI5C1aoio6d1nmZSwmsiN8a\nFbEMG0JIEaXj4BqEqU0/U2n8hJrLKPj6yY7iquow7hIVbLuc7/JbsdYRA6/G\nXfg6N54n+OC6ZzoMQwyzfoy49mzJF6KNgKLwOBhV1Mq8eTRANvEiuVfrtXM9\nXls1EbR0V1uh/+cIznj8QPHLpNXNitOQucF94k6SMRsJroqC0N9JtRK1IUYO\ne2S4nZgY6scBtpB7cLO+uohIJXF3WeJRXvvDJKlz6Rl9NqpJ7A7Afow7JFnO\neBeV\r\n=C7Rd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node servor test index.html 8080 5000 --browser no","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_2.1.0_1556387451655_0.41534413581140694","host":"s3://npm-registry-packages"}},"2.2.0":{"name":"servor","version":"2.2.0","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@2.2.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./servor.js"},"dist":{"shasum":"3c7665a4cf5bc8cd92190cc85bf8b40528564e34","tarball":"https://registry.npmjs.org/servor/-/servor-2.2.0.tgz","fileCount":5,"integrity":"sha512-yVQXxzo0XJj54qQoOKBueWwyBvUDkubtEiufNIWnz1mbvnkLnENdCDVklx6exjdarh4Ti7Mo0nmgacg29YQ51g==","signatures":[{"sig":"MEYCIQC6VK4EpZw7FcIobGxn5JCo4fJqwLHqEu95Zl32r7uh1AIhANyK76ZhTObfrakYRgNBlLPz7A1tEA4B9Hqc44FmhGRM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38612,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxLCHCRA9TVsSAnZWagAAK3YP/Rh12qdTudQ0tWzsjc1b\nWtny0C8A83N6ld/d3Q63DNT06yOlSi69jrFUw4QL1LcMZ5xWNl5EAySmNuHy\nw8fJ2kv97BSMk2Oslp7osW3OZcPICBCeVsucs9goIcX9ojmQ/4e+hdE1+SQA\n8n4ZC/95+fPlfHIwjoeAUFZYY/1IM/ltghiAj8UiO1bWdX+38bKZcj6hHmt0\nnGCRrcgXSq2HkXtESiMIbyxW9hOJw5Lm1Dys0YHsKMOhPzDiOeRn4kpueiSp\n0Bpo3zO8SqeH3Ny38m3pZHzP591PDDzOkQweFWb6vHwEIyhLR1tg3fJoH4Nu\nKQ1BmP8kCGsxvQVAyEQCCofx0liLngF98FsMp70HzsGG/WCfJWS8Q6E8iOUp\nk2oPtAS2G+nN5FIWsl1WUEl0daI5AlSFrx/yG1s3cE5rfcXccAi61aQ83crs\ndf7sq7oJIn0EmQyC8EEni+fmhqfyblGbhuO8GKlznG2oVjgJSHMSSuXZkDJs\nb/nJm3OEsVaBBaUgC52BpLPv+TT3/K7sESIB+1At0CRHImZUc68AEvrFLPig\nXDeZuKDtDAsfpyFl0JN7TeIAxSyWUTt83lGZ0XDgGXZyMHu6l7oTsYPIZzzN\nUoK501fG6ma7oW3Kal/tA7811oZTkXnUMBLR3FHp3Tdk8bYEyOB5VR3bHBR/\nxvIc\r\n=2M0X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node servor test index.html 8080 5000","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_2.2.0_1556394118099_0.37833988044463296","host":"s3://npm-registry-packages"}},"2.2.1":{"name":"servor","version":"2.2.1","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@2.2.1","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./servor.js"},"dist":{"shasum":"fe4a9c756de7c529ac263edb678efbc20ff172ae","tarball":"https://registry.npmjs.org/servor/-/servor-2.2.1.tgz","fileCount":5,"integrity":"sha512-eWfiLC6vgpOXGfIVJCHwbPdVcddVX0iFABtZVIATk3xpAfCX9toRWD04I5aB4fhNh+VIR705zo/RhXJPYfpEwQ==","signatures":[{"sig":"MEUCIQCxRhwxHVDIV+ur6bv+y2AU2JcE7TjZKb+l34/YmBojWgIgQVlmk2fEmUSva2VWHhZqqpcIncdk0nPKI9g7KsG/R7E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38602,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxLGTCRA9TVsSAnZWagAABlYP/1gnXAJaLoeoyIeogJyg\nIFJEqdGFWM5ioDchs81O7cuFsBU95UKT/RXa++F9J5Jd8n7/HM+atEClicq5\n+6MM8O56+nCjHh4VKN/SQA6TDvrFr9ZpYecYTOsZ5uaCFfJqSPJIsWadTYdm\n8PMIuf6JVeSQbhFpU2r2vIUktGRO0MT5Vk/gyeM18u3a1fRPq/pO3Wt1Kbhe\nby1Dok32N+NoyGZd6lh0FLPsxPVdJ1juU/hnarQBwE6EYrLzluaiqJlPe1F3\nggLsnbH0IkazWiwFZKhz277eOWFhtbJgtBaAirt3jACNHpNXslUMbMnHgwea\n3kvyxHMXWunodAxAReIwxTcJYoxZ8OyQiGkd39GaoktRmMEt9eFc8zfoAoXd\nmnWToO/izWSfHFJHx4RbUOTAavdGo8fB3Kp2EvCCpr70j6jAr1SI7g9Fu0BZ\nircCuZEC9VlK1133ZbaIQpQG3rlsvxZUpGuIq0KYIyJ5TS9TOZxIXKi4pL31\nUTARZS5/N631zrKw+sbDHCRs4X0OTNYpJ1RFpXUE+9PPpme5A8f3pU/QfVm+\nVCraeGe2bsqBX1ZqWpQEKDHLMEdttgDq8JdHxTHPQwkuXrLx5Qp6GU7YP6KJ\nVhmNHAVwwdeVls7AdN+uSp+nyNbXevE5Y3zlP09GJfqqsggr3i4AQvHJCJN7\nxn9J\r\n=7Fl3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node servor test index.html 8080 5000","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_2.2.1_1556394386633_0.35089998119632004","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"servor","version":"3.0.0","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.0.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"382ef7f57986c27fdd4e6bc4eea71068d2c10db4","tarball":"https://registry.npmjs.org/servor/-/servor-3.0.0.tgz","fileCount":7,"integrity":"sha512-tUpLv3Etbz3oKSx0uJIwoR2O3AAk/D32H/h6hGrBwwp/rRUB4bhdPJXCPnJID7uyCrSXEIyRK68gHo9i5E4mPQ==","signatures":[{"sig":"MEUCIQDruR6wfIFNpGblN/Ell6X2k84ps+tSXZYnEX+bQfqvbAIgCvJYWGZ1W6Zu6DOPS2tmfoBaf9rvIIFr6RGTJaAYcko=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44602,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdj6lRCRA9TVsSAnZWagAATf8P/26C7g9DDIvBkhvdG/oj\nsm9Z6CciAXi56FJCn4ZWzllEKrloBIZeD7sSuwb7QXgR+fe5g0hKUFiPHwbj\n1nqPOLnsj8ureQm7wSkcrrNI/9evZlsPaK9LaZ8EeJuX8O6j9eTeLF1w2fyP\n1wLvQHjROOratKHMllHLJ+uUtLmaFIJzeBfI8r5h7HduNPwyS69HXPeK+IeE\nqdN3agKVlYrZLlbb7+LDoKlcpf9D3qSigA+iWtyg55OK97dZMaEWeo/4mx0U\nX8w9YEV/Ba7V1O7Zr1o3XuLbbHKwPaMQY6FbY4AFlVHqUG0F1YwTtpEZI0/w\ndYWGHpfwvR8Jg1uwe/Z0amA6kAlcFRje4b+K/ynbZDcv8PoWHXpCCFZvO0UM\ntQPdqJcRoKQ2zVGBPYzTQwzxJHaVPv9miiLudh9x58OKzUkY0BwnVXx0fjrO\nsNJJvypVncPKim0BjeLjmqPwFpa87HjbY3+8xO1HgCBrI+zGBucIdl3C6kan\n7CbNQSQLoy3FLYKPhDckEu6wI0VQRAvBQiVx/V13ujR9F7kUsFZ8rWtSstnY\n1Vf9meB167Bv1oBbVmZIx1bH3j//f0q4PyAQnkTHAP1joGxkxXh8WlRpgBcw\n8sAxFCHaVLLAS66NcjM1LHN8d5Wf5uIPjB/NuJcT6HGAwWOconowZkjjYPO7\nkQ4p\r\n=xS+o\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","readme":"# Servør\n\n> A dependency free dev server for web app development\n\nThe new and enhanced version of [http-server-spa](https://npmjs.com/http-server-spa). A very compact, https capable static file server with useful features and sensible defaults to support modern web app development on localhost and over a network. It can be used via the command line or programatically using the node API.\n\nThe motivation here was to write a \"close to the metal\" package from the ground up; employing only native nodejs and browser APIs to do focussed tasks with minimal code (~200LOC).\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/48194482-bf061a00-e37f-11e8-98d3-90d97e639c4e.gif\" width=\"800\">\n\n## Features\n\n- 🗂 Serves static content like scripts, styles, images from a directory\n- 🖥 Reroutes all path requests like `/` or `/admin` to a single file\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🔐 Supports https with self signed and trusted certificates\n- 🚇 Generates secure public urls for localhost with ngrok\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```\nnpx servor <root> <fallback> <port>\n```\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to `8080`)\n\nOptional flags passed as non-positional arguments:\n\n- `--no-browse` prevents the browser from opening when the server starts\n- `--no-reload` prevents the browser from reloading when files change\n- `--no-output` prevents the node process from logging to stdout\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"2.0.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080\"\n  }\n}\n```\n\n#### Creating a public url\n\nOnce the process has started hit the return key; ngrok will be ran via `npx` and the public url will be logged out.\n\n## API Usage\n\nUse servor programatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst ngrok = servor({\n  root: '.',\n  fallback: 'index.html',\n  port: 8080,\n  browse: true,\n  reload: true,\n  silent: true,\n  inject: ''\n});\n\nconst url = await ngrok(); // https://xxxxxxxx.ngrok.io\n```\n\nThe `servor` function accepts an config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a server and returns a function `ngrok` which can be used to generate a public url for the server.\n\n#### Creating a public url\n\nCall the `ngrok` function; it returns a promise that resolves to the public url.\n\n## Enable SSL (MacOS)\n\nServers always attempt to start in `https` mode but this is only possible if the appropriate credentials (certificate and key) exist in the module directory. If the credentials do not exist, then the servers will fallback to the `http` protocol.\n\n### Generating Credentials\n\nTo generate the `servor.crt` and `servor.key` files and upgrade to `https` run:\n\n```\nsudo servor\n```\n\n> **WARNING:** Running any npm module with root privilages is not recommened. Please inspect the code first.\n\nIf you have servor installed globally or as a dependency then **this only needs to be done once** as credentials are stored locally and reused. If running via `npx` then it will require `sudo` everytime to enable `https`.\n\nWhen servor is ran with root privilages a bash script is invoked which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to generate:\n  - a root certificate (pem) so your system will trust your self signed certificate\n  - a public certificate (crt) that your server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt client/server traffic\n- Adds the root certificate to keychain so the browser trusts all self signed certificates\n\nIt is only the final step that requires `sudo`. This step:\n\n- Prevents the \"⚠️ Your connection is not private\" warning\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from https://github.com/kingkool68/generate-ssl-certs-for-local-development\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","scripts":{"test":"node cli test index.html 8080","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/servor_3.0.0_1569696080420_0.35893910774663884","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"servor","version":"3.0.1","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.0.1","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"6bdd094bea6fcdf0cda1271300bc04c161896c8c","tarball":"https://registry.npmjs.org/servor/-/servor-3.0.1.tgz","fileCount":10,"integrity":"sha512-mS6XJrKkDOriItIXVntgKG2p7PB0TqLdWnSdUUXsMUWY/44bI4Kvp0WZHmHYT1prgwjt2+9k+rI9b6GcVIc4jg==","signatures":[{"sig":"MEUCIEh8FcOYzH2CBd2r/mTdqFvRrshUVH1F+hzrnSlG2zuSAiEAnKP94f23d4KdAegt77aRtnWz23DBCXeX6fusg7XkNe0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdj7PDCRA9TVsSAnZWagAAFycP/2AOoqHFzpOKOy0Hyzja\nR7tOezP0HzXPDRojW3hB/QIe/cU8tmiAlnU06MOg/l2+KOnKWJTbjrw7pIEs\nwMoh/XGHJV1FPT0t4FZHffvcdgkfdcfarxnz4xKEKRCs4DYBrdEzq+HRTRzh\nPyVEbt9EiyefcijJEC3xKAYLkvpKZYupRtHUcDdHPrkeLKDQzmI8wenvsYMq\nXKXaYPJOOZR18UglXKN3oCoxoyzjdfDGic3vmiVl8kMvnCvtkrYg1JgGCOEb\nbbgdWQOIHvVVo63dDsdgUejbArriv2bpWyTry0Of4xnXzJgit1mpLAmyV8DH\n6vsUTyJN8Mu9idUPCfrvvypjm+p1Ilpm+e2sG5b5OZJM+WQfjEmK3+M0mirp\nnwYHKjlg5S5ubpnlJ3nmu5Qn/SSi4L1EpSry3GRDu+iOdoz1WPYq8EVLdY2v\nDryyWAGuQij/bAU6JB9I+/3rm1jHth0/gaf4QE2/ZHX43TLltoPxJPRRKv+d\n+YyUZYAKH7ernXfggnDe/MA05pv3Ql3JmjSeMiLlo0MHMsi1dWnzKgAZxF70\npPeSUNWejGFvY2jiRvRtGqrbGikPfBbikKEFX8h9uJhbvIe30le0+Fe7BHoC\nFCdIQL3gBv1JcfuzXxdDY+hBivaueyDG37O8QTp46C++Bh0oqIUligIXiMzf\nHX91\r\n=MmJ/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","readme":"# Servør\n\n> A dependency free dev server for web app development\n\nThe new and enhanced version of [http-server-spa](https://npmjs.com/http-server-spa). A very compact, https capable static file server with useful features and sensible defaults to support modern web app development on localhost and over a network. It can be used via the command line or programatically using the node API.\n\nThe motivation here was to write a \"close to the metal\" package from the ground up; employing only native nodejs and browser APIs to do focussed tasks with minimal code (~200LOC).\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/48194482-bf061a00-e37f-11e8-98d3-90d97e639c4e.gif\" width=\"800\">\n\n## Features\n\n- 🗂 Serves static content like scripts, styles, images from a directory\n- 🖥 Reroutes all path requests like `/` or `/admin` to a single file\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🔐 Supports https with self signed and trusted certificates\n- 🚇 Generates secure public urls for localhost with ngrok\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```\nnpx servor <root> <fallback> <port>\n```\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to `8080`)\n\nOptional flags passed as non-positional arguments:\n\n- `--no-browse` prevents the browser from opening when the server starts\n- `--no-reload` prevents the browser from reloading when files change\n- `--no-output` prevents the node process from logging to stdout\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"2.0.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080\"\n  }\n}\n```\n\n#### Creating a public url\n\nOnce the process has started hit the return key; ngrok will be ran via `npx` and the public url will be logged out.\n\n## API Usage\n\nUse servor programatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst ngrok = servor({\n  root: '.',\n  fallback: 'index.html',\n  port: 8080,\n  browse: true,\n  reload: true,\n  silent: true,\n  inject: ''\n});\n\nconst url = await ngrok(); // https://xxxxxxxx.ngrok.io\n```\n\nThe `servor` function accepts an config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a server and returns a function `ngrok` which can be used to generate a public url for the server.\n\n#### Creating a public url\n\nCall the `ngrok` function; it returns a promise that resolves to the public url.\n\n## Enable SSL (MacOS)\n\nServers always attempt to start in `https` mode but this is only possible if the appropriate credentials (certificate and key) exist in the module directory. If the credentials do not exist, then the servers will fallback to the `http` protocol.\n\n### Generating Credentials\n\nTo generate the `servor.crt` and `servor.key` files and upgrade to `https` run:\n\n```\nsudo servor\n```\n\n> **WARNING:** Running any npm module with root privilages is not recommened. Please inspect the code first.\n\nIf you have servor installed globally or as a dependency then **this only needs to be done once** as credentials are stored locally and reused. If running via `npx` then it will require `sudo` everytime to enable `https`.\n\nWhen servor is ran with root privilages a bash script is invoked which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to generate:\n  - a root certificate (pem) so your system will trust your self signed certificate\n  - a public certificate (crt) that your server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt client/server traffic\n- Adds the root certificate to keychain so the browser trusts all self signed certificates\n\nIt is only the final step that requires `sudo`. This step:\n\n- Prevents the \"⚠️ Your connection is not private\" warning\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from https://github.com/kingkool68/generate-ssl-certs-for-local-development\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","scripts":{"test":"node cli test index.html 8080","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/servor_3.0.1_1569698754434_0.19817788184513518","host":"s3://npm-registry-packages"}},"3.0.2":{"name":"servor","version":"3.0.2","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.0.2","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"5d24aa1f3f85ae600d6530b6f142c4e07258c522","tarball":"https://registry.npmjs.org/servor/-/servor-3.0.2.tgz","fileCount":7,"integrity":"sha512-dK5FJzgcPL0VQNkFiKGAdtX6BrTegdPhVc807pDGC0i+OOXAIpQjEfSbBUEDCMoEEhgN06QjVqUtWcVItOA+0Q==","signatures":[{"sig":"MEYCIQC+n5exIY14bPJMxxQ6Sl88aNvbsIh9KVrY1T1uB6OSGgIhAK5cq8Y8eeBdE0IYZ6++uBYFCtINc8atZ26WszieRqGK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44685,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdj7erCRA9TVsSAnZWagAA+EsQAItnNGcbyUyOmRbBobr1\nX3VrZ8ldn4CqReLRdNaVqC/nbw26aotTr5q5Hrp1Q8Q/QRE9ZKnpdgSo/wdS\nQQnOi04xzhkbI8ikKZIz18vf6TT83NpVFaeuqp1GKqfzQsZCQawteR72k5Is\nUWvKZm/eXRyx58yrKiKEw81Vn16GwjBno9zGvm8AO8xU9O8wMoNsz5OPP+2q\nifOFKKN6nCFp3mYs7psKOjbhdSB/Ag1z1rAxZkqW0uIXuftGBhFst5trbOah\nwcT15G8ctB22UF+cJCB0Mx3++NfaZajMIxq/capokiVN4PIEClt6Wz48J4XN\nXH7wOP0yrcBr9fzDE1Pi6aUHSCNxcwOv6vhlYFzArLGvpcSaSblKuGAqXzEV\nnPWQhUfzAZXPDQtLdyNeie+4funJvu0T9a0/nqxLaHcuYBiJhn/NyN5BZq8j\nu6bAjrl+ZNXNjhwqRVDKw/6qcKQ3yLAWgdiKo87trbqAuIM2cxrX97xUfoCx\njEyGzko6AEkN39aQLomaL8seUc4f5DcAsAN4XkIaMnkzwS423f8ncelYI72G\nosnv2oKwFwe/tdSuFt6Vg7Z4vEIkxrX43shkRQh3l+JmleNKRfoTgDMYzOYL\nE69zxxhKI6ZmYCuLo311XF+JYQf0G5AP95bbklW/1wx1RMpt3RRsBm6dIkcs\nc62b\r\n=yX2F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","readme":"# Servør\n\n> A dependency free dev server for web app development\n\nThe new and enhanced version of [http-server-spa](https://npmjs.com/http-server-spa). A very compact, https capable static file server with useful features and sensible defaults to support modern web app development on localhost and over a network. It can be used via the command line or programatically using the node API.\n\nThe motivation here was to write a \"close to the metal\" package from the ground up; employing only native nodejs and browser APIs to do focussed tasks with minimal code (~200LOC).\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/48194482-bf061a00-e37f-11e8-98d3-90d97e639c4e.gif\" width=\"800\">\n\n## Features\n\n- 🗂 Serves static content like scripts, styles, images from a directory\n- 🖥 Reroutes all path requests like `/` or `/admin` to a single file\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🔐 Supports https with self signed and trusted certificates\n- 🚇 Generates secure public urls for localhost with ngrok\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```\nnpx servor <root> <fallback> <port>\n```\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to `8080`)\n\nOptional flags passed as non-positional arguments:\n\n- `--no-browse` prevents the browser from opening when the server starts\n- `--no-reload` prevents the browser from reloading when files change\n- `--no-output` prevents the node process from logging to stdout\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"2.0.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080\"\n  }\n}\n```\n\n#### Creating a public url\n\nOnce the process has started hit the return key; ngrok will be ran via `npx` and the public url will be logged out.\n\n## API Usage\n\nUse servor programatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst ngrok = servor({\n  root: '.',\n  fallback: 'index.html',\n  port: 8080,\n  browse: true,\n  reload: true,\n  silent: true,\n  inject: ''\n});\n\nconst url = await ngrok(); // https://xxxxxxxx.ngrok.io\n```\n\nThe `servor` function accepts an config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a server and returns a function `ngrok` which can be used to generate a public url for the server.\n\n#### Creating a public url\n\nCall the `ngrok` function; it returns a promise that resolves to the public url.\n\n## Enable SSL (MacOS)\n\nServers always attempt to start in `https` mode but this is only possible if the appropriate credentials (certificate and key) exist in the module directory. If the credentials do not exist, then the servers will fallback to the `http` protocol.\n\n### Generating Credentials\n\nTo generate the `servor.crt` and `servor.key` files and upgrade to `https` run:\n\n```\nsudo servor\n```\n\n> **WARNING:** Running any npm module with root privilages is not recommened. Please inspect the code first.\n\nIf you have servor installed globally or as a dependency then **this only needs to be done once** as credentials are stored locally and reused. If running via `npx` then it will require `sudo` everytime to enable `https`.\n\nWhen servor is ran with root privilages a bash script is invoked which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to generate:\n  - a root certificate (pem) so your system will trust your self signed certificate\n  - a public certificate (crt) that your server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt client/server traffic\n- Adds the root certificate to keychain so the browser trusts all self signed certificates\n\nIt is only the final step that requires `sudo`. This step:\n\n- Prevents the \"⚠️ Your connection is not private\" warning\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from https://github.com/kingkool68/generate-ssl-certs-for-local-development\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","scripts":{"test":"node cli test index.html 8080","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/servor_3.0.2_1569699755132_0.8825198636727554","host":"s3://npm-registry-packages"}},"3.0.3":{"name":"servor","version":"3.0.3","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.0.3","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"eeaeb36ea5fa2f3c9b3fd5bc4df18a2817c6ab32","tarball":"https://registry.npmjs.org/servor/-/servor-3.0.3.tgz","fileCount":7,"integrity":"sha512-Vl5zGk+sYTEblCKOd6CUtSE/Xy7wJDkQch+q1nGJ09pkJtb6sjji92vDxYMEPWFPu4rpAMcBuX7rI+1XAzKUsA==","signatures":[{"sig":"MEUCIF4eh/wJBjnQ2l65cxTarwD72BKBeiCMn/VGRI17I/s9AiEA9JbyeWIapVLmrMpY1f68A2mo//VmJGE1hkuCeN25MIM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44722,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdj7m8CRA9TVsSAnZWagAARjoP/iot+z7TV2/oRCJ4joa+\nRuZcNou5R3hYsBUhQ7NlAcIJIvzW7xMdNZylHXYkK9JKcHcY2O+OJOzveNyH\n/suvblhHbMiScKXqWy8kp/FRD/0xsA9qgYkfgerf1loSvGmKSi03QC5z1tTW\nE6uCcHhGisA4tDGAzck8pzH+gXt7MWaoN9M2moxHiZ2bOdjdlOMHYe9KPcEq\nbTZyb6M1y9HZUXWft+Jlw2QScPWxTkUyl7Mpd0T8yK03AigOkztf22FLHzWr\nBADY0GCcXSNEt3mR8IcRXI2A+S5hA5K2xNLlX+kjT+Pc0/Vr4T6hmmRu/o1S\nGc3QSKLOhx+J/V7gWanAFiY6E7jU9NeJagMJqzgg8HfXuxvw//tf1tE/NvNt\nzQykp7CXZ+gLNbl9pmrnXgZm2DgkhXRW0kBO9BUQ/OSX5120Bf2GhcH446+u\nDZESg1tEXIS/wRwzT1QAwvFb+VeHL7jFvwIOZVJBnju+UUt6BKHchIc2VpAj\ntIKdldwHy9aqUvet188hYx7uIzMFLchfU6/ez0DLyrS9d6mvHEIZFrGlOl7M\nLEycqMzNcu6R2A9nQ37xStkxVC6FT1KTEKt9QBC0GqxSuK0UXqi1zNrWDgVe\nV40/0I48z07mu1Kbzk/MWyQyaJbaJi0NOJrZRWezCikoLb5M1OzOQIE4G36a\nXGXh\r\n=An57\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","readme":"# Servør\n\n> A dependency free dev server for web app development\n\nThe new and enhanced version of [http-server-spa](https://npmjs.com/http-server-spa). A very compact, https capable static file server with useful features and sensible defaults to support modern web app development on localhost and over a network. It can be used via the command line or programatically using the node API.\n\nThe motivation here was to write a \"close to the metal\" package from the ground up; employing only native nodejs and browser APIs to do focussed tasks with minimal code (~200LOC).\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/48194482-bf061a00-e37f-11e8-98d3-90d97e639c4e.gif\" width=\"800\">\n\n## Features\n\n- 🗂 Serves static content like scripts, styles, images from a directory\n- 🖥 Reroutes all path requests like `/` or `/admin` to a single file\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🔐 Supports https with self signed and trusted certificates\n- 🚇 Generates secure public urls for localhost with ngrok\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```\nnpx servor <root> <fallback> <port>\n```\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to `8080`)\n\nOptional flags passed as non-positional arguments:\n\n- `--no-browse` prevents the browser from opening when the server starts\n- `--no-reload` prevents the browser from reloading when files change\n- `--no-output` prevents the node process from logging to stdout\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"2.0.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080\"\n  }\n}\n```\n\n#### Creating a public url\n\nOnce the process has started hit the return key; ngrok will be ran via `npx` and the public url will be logged out.\n\n## API Usage\n\nUse servor programatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst ngrok = servor({\n  root: '.',\n  fallback: 'index.html',\n  port: 8080,\n  browse: true,\n  reload: true,\n  silent: true,\n  inject: ''\n});\n\nconst url = await ngrok(); // https://xxxxxxxx.ngrok.io\n```\n\nThe `servor` function accepts an config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a server and returns a function `ngrok` which can be used to generate a public url for the server.\n\n#### Creating a public url\n\nCall the `ngrok` function; it returns a promise that resolves to the public url.\n\n## Enable SSL (MacOS)\n\nServers always attempt to start in `https` mode but this is only possible if the appropriate credentials (certificate and key) exist in the module directory. If the credentials do not exist, then the servers will fallback to the `http` protocol.\n\n### Generating Credentials\n\nTo generate the `servor.crt` and `servor.key` files and upgrade to `https` run:\n\n```\nsudo servor\n```\n\n> **WARNING:** Running any npm module with root privilages is not recommened. Please inspect the code first.\n\nIf you have servor installed globally or as a dependency then **this only needs to be done once** as credentials are stored locally and reused. If running via `npx` then it will require `sudo` everytime to enable `https`.\n\nWhen servor is ran with root privilages a bash script is invoked which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to generate:\n  - a root certificate (pem) so your system will trust your self signed certificate\n  - a public certificate (crt) that your server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt client/server traffic\n- Adds the root certificate to keychain so the browser trusts all self signed certificates\n\nIt is only the final step that requires `sudo`. This step:\n\n- Prevents the \"⚠️ Your connection is not private\" warning\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from https://github.com/kingkool68/generate-ssl-certs-for-local-development\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","scripts":{"test":"node cli test index.html 8080","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/servor_3.0.3_1569700284013_0.7584366433806384","host":"s3://npm-registry-packages"}},"3.0.4":{"name":"servor","version":"3.0.4","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.0.4","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"5175685871f2a15205ec2467bf5a90e5258c544c","tarball":"https://registry.npmjs.org/servor/-/servor-3.0.4.tgz","fileCount":7,"integrity":"sha512-afX9h4A4AxdZgRY5Mr4tFo4WNdOu3G18g6hzH9nWWdNhqrGNz35i5BeCh/MTFAYh8c9NtCgWK8tCgmWLTdP35A==","signatures":[{"sig":"MEUCIQDdQD3K6xJh8OEQBHoiMLLwvmzphseu4mKnl4vETsNYFQIgfwg1z9P1T6L1aKo89I8NxXST8CobTzLdtE1MvENjFMg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44954,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdj940CRA9TVsSAnZWagAAq7EP/jfqJWD5aYV5RpSzyxaf\nlZRGhkK+rCKbOvyMNS34Q0IX3e7ory+jo1laOWT7VbQxAL4ZgyNjIdkxwz2T\nfsp4LCBn6FM6MPwbdGOoPJptNKvyqqLMmvxQXH6j0heUciow9Aeuf5Q8be7k\nBAIQbRDzYLFKDwiJWuWlTxfT1Xb02pkvx46Nq69GBUTPFAWk0HFEUeaNuhk8\nY/hmIGMvhN4YVscGgSjewahsM9D/rQtc/lQUhza/GW8R3PPspVprYIMz+CU5\nvgOcbkl4YHoHi66+WD6w1wv51nVxHerTSZLaTFvkDhIpibewYQJoTFSfINmG\nUobDF7hCa63YwttMi1GtLbiO7CTs8QBVwPK3iSnnGoWosQFlBhOguB5OFBHV\nmjtEWsoLIrSLUqYxQ0XfLqwavB+EgKJaEmX40qQO7+uMHa+ZCWiMG4dVb+1n\n2WAn5N2FB4WoCIAqVAVNtLwaZ2cyI/n7QsE2Sfana7p7ncp+aEAN74Sgtx0O\nOLYaCKUPde95gkjz8pzlQANxBBLlO2sDfdsWLff9+KlTIqgT1aESbj0u+JxN\nIJViAl24ru3BwcteWGxhUx5HDEgwvcS6KHYpPdsqs0/09+HQbrPeqn2C+A5g\nQ9y7HjZPe9ID7B9QeiB+thuqqbtwQ4cnSKrOIgwJP49Hq+BS7Qd6JbKxeiOb\nEL3p\r\n=oBsN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","readme":"# Servør\n\n> A dependency free dev server for web app development\n\nThe new and enhanced version of [http-server-spa](https://npmjs.com/http-server-spa). A very compact, https capable static file server with useful features and sensible defaults to support modern web app development on localhost and over a network. It can be used via the command line or programatically using the node API.\n\nThe motivation here was to write a \"close to the metal\" package from the ground up; employing only native nodejs and browser APIs to do focussed tasks with minimal code (~200LOC).\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/48194482-bf061a00-e37f-11e8-98d3-90d97e639c4e.gif\" width=\"800\">\n\n## Features\n\n- 🗂 Serves static content like scripts, styles, images from a directory\n- 🖥 Reroutes all path requests like `/` or `/admin` to a single file\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🔐 Supports https with self signed and trusted certificates\n- 🚇 Generates secure public urls for localhost with ngrok\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```\nnpx servor <root> <fallback> <port>\n```\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to `8080`)\n\nOptional flags passed as non-positional arguments:\n\n- `--no-browse` prevents the browser from opening when the server starts\n- `--no-reload` prevents the browser from reloading when files change\n- `--no-output` prevents the node process from logging to stdout\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"2.0.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080\"\n  }\n}\n```\n\n#### Creating a public url\n\nOnce the process has started hit the return key; ngrok will be ran via `npx` and the public url will be logged out.\n\n## API Usage\n\nUse servor programatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst ngrok = servor({\n  root: '.',\n  fallback: 'index.html',\n  port: 8080,\n  browse: true,\n  reload: true,\n  silent: true,\n  inject: ''\n});\n\nconst url = await ngrok(); // https://xxxxxxxx.ngrok.io\n```\n\nThe `servor` function accepts an config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a server and returns a function `ngrok` which can be used to generate a public url for the server.\n\n#### Creating a public url\n\nCall the `ngrok` function; it returns a promise that resolves to the public url.\n\n## Enable SSL (MacOS)\n\nServers always attempt to start in `https` mode but this is only possible if the appropriate credentials (certificate and key) exist in the module directory. If the credentials do not exist, then the servers will fallback to the `http` protocol.\n\n### Generating Credentials\n\nTo generate the `servor.crt` and `servor.key` files and upgrade to `https` run:\n\n```\nsudo servor\n```\n\n> **WARNING:** Running any npm module with root privilages is not recommened. Please inspect the code first.\n\nIf you have servor installed globally or as a dependency then **this only needs to be done once** as credentials are stored locally and reused. If running via `npx` then it will require `sudo` everytime to enable `https`.\n\nWhen servor is ran with root privilages a bash script is invoked which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to generate:\n  - a root certificate (pem) so your system will trust your self signed certificate\n  - a public certificate (crt) that your server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt client/server traffic\n- Adds the root certificate to keychain so the browser trusts all self signed certificates\n\nIt is only the final step that requires `sudo`. This step:\n\n- Prevents the \"⚠️ Your connection is not private\" warning\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from https://github.com/kingkool68/generate-ssl-certs-for-local-development\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","scripts":{"test":"node cli test","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/servor_3.0.4_1569709620227_0.34802478907842604","host":"s3://npm-registry-packages"}},"3.0.5":{"name":"servor","version":"3.0.5","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.0.5","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"15eb47f018e4f0580b3aaf809a75e564387e9061","tarball":"https://registry.npmjs.org/servor/-/servor-3.0.5.tgz","fileCount":7,"integrity":"sha512-SskIvEVf8bfvctT6M4p51yowzwzTxi+gKMYN+YcxX9Cdq62ytBqT8oYulnDj4wk2bdbIoSNWMFB97ApjTx4QUg==","signatures":[{"sig":"MEUCICXvO11SPgSnJmZ7Vycw2ascPia3FGKnc1TQD3Hlhph3AiEAyIEDVHeGpbXvCVDRfhB2JN0Ujta2r8zfx102J/Q4gto=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdl16QCRA9TVsSAnZWagAAp0UP/1f/4PJuyAu8QpEWFbEQ\nWwIAMccvjnL43F/onoA9Pr4lATgGiDK55h6M5wqDHOVuxzsQbCIgVu6x4Nzg\n+j7yFybbql5cuvf+gt4PYOoATw+UGkXj2q3ITAeuq+3+rerVFBSDTWGycmbZ\nL/eqH56ezwhMDUfMkJMbrT2HpcHtIJnDc+T9sNaAa5OUlTC4l7GjplH1ISPm\nK+dJL/8ErL0mQjMrIC+ILmi94s+c/Ouq5LEg16R6kTE9+O4bUMQplWGsVvIn\nGY3Q3xrStauHZoK/G+5ue0YXKRzKqzo7+sGDtKKdUa/0SPlDy4ZDetPwTc/n\nX5O65qXmRtRzWmPsQeS03Mol6uTTOzLtnRqSzyT1YCsGriTvrYgDqEDDE0zo\nEN43iaVMyrXxZFakGUfeMWE4uMEfeZeKqUkUJn6FlOAjfFfe8OjvbYaEpJGZ\nFZHDH2Ld/TMFj8XbCr8zBz80YjP6aSgjC/saZ3iAQoRRzTJ0svgB1H7fSY+g\nw30gu+4+fe/R9t9FLr+K+TwoFMdJK3H2ss9/ypQHPxqBBDfXc3/KFbHyuB5U\njPCyZNjkez7KI9woreUjdgTDKvWoeGz5XpyIezxbowY5qL2tWqr2bVfqfZBz\n0GsjXOftYR33FTt8hfh3WF8tRddTHUXEInqDmecQUT3rzt3yZL+72C2vaMH8\nTuOp\r\n=/oLD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","readme":"# Servør\n\n> A dependency free dev server for web app development\n\nThe new and enhanced version of [http-server-spa](https://npmjs.com/http-server-spa). A very compact, https capable static file server with useful features and sensible defaults to support modern web app development on localhost and over a network. It can be used via the command line or programatically using the node API.\n\nThe motivation here was to write a \"close to the metal\" package from the ground up; employing only native nodejs and browser APIs to do focussed tasks with minimal code (~200LOC).\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/48194482-bf061a00-e37f-11e8-98d3-90d97e639c4e.gif\" width=\"800\">\n\n## Features\n\n- 🗂 Serves static content like scripts, styles, images from a directory\n- 🖥 Reroutes all path requests like `/` or `/admin` to a single file\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🔐 Supports https with self signed and trusted certificates\n- 🚇 Generates secure public urls for localhost with ngrok\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```\nnpx servor <root> <fallback> <port>\n```\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to `8080`)\n\nOptional flags passed as non-positional arguments:\n\n- `--no-browse` prevents the browser from opening when the server starts\n- `--no-reload` prevents the browser from reloading when files change\n- `--no-output` prevents the node process from logging to stdout\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"2.0.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080\"\n  }\n}\n```\n\n#### Creating a public url\n\nOnce the process has started hit the return key; ngrok will be ran via `npx` and the public url will be logged out.\n\n## API Usage\n\nUse servor programatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst ngrok = servor({\n  root: '.',\n  fallback: 'index.html',\n  port: 8080,\n  browse: true,\n  reload: true,\n  silent: true,\n  inject: ''\n});\n\nconst url = await ngrok(); // https://xxxxxxxx.ngrok.io\n```\n\nThe `servor` function accepts an config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a server and returns a function `ngrok` which can be used to generate a public url for the server.\n\n#### Creating a public url\n\nCall the `ngrok` function; it returns a promise that resolves to the public url.\n\n## Enable SSL (MacOS)\n\nServers always attempt to start in `https` mode but this is only possible if the appropriate credentials (certificate and key) exist in the module directory. If the credentials do not exist, then the servers will fallback to the `http` protocol.\n\n### Generating Credentials\n\nTo generate the `servor.crt` and `servor.key` files and upgrade to `https` run:\n\n```\nsudo servor\n```\n\n> **WARNING:** Running any npm module with root privilages is not recommened. Please inspect the code first.\n\nIf you have servor installed globally or as a dependency then **this only needs to be done once** as credentials are stored locally and reused. If running via `npx` then it will require `sudo` everytime to enable `https`.\n\nWhen servor is ran with root privilages a bash script is invoked which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to generate:\n  - a root certificate (pem) so your system will trust your self signed certificate\n  - a public certificate (crt) that your server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt client/server traffic\n- Adds the root certificate to keychain so the browser trusts all self signed certificates\n\nIt is only the final step that requires `sudo`. This step:\n\n- Prevents the \"⚠️ Your connection is not private\" warning\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from https://github.com/kingkool68/generate-ssl-certs-for-local-development\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","scripts":{"test":"node cli test","start":"node servor"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/servor_3.0.5_1570201231456_0.36739002372173757","host":"s3://npm-registry-packages"}},"3.0.6":{"name":"servor","version":"3.0.6","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.0.6","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"61d607d981e28bfcfaaf9e734bc75c0eac0f4ca5","tarball":"https://registry.npmjs.org/servor/-/servor-3.0.6.tgz","fileCount":11,"integrity":"sha512-A1yV6eRzJx4uoLPwZSR6cs52J1r267R7gh7XGK5eskfXKUNpmbvqEAXh7UPyusPQWDjAVeziJTwCmwsfRM/Zcg==","signatures":[{"sig":"MEYCIQCyxI9Vi3fTL0U16rjzGaSn8JkAfo91QmfGR2vYNwIG7wIhAMTqOO1U/YfcdH6BnerMreqKfZNtVobIKn2QH/lKdNGG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45870,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxHY1CRA9TVsSAnZWagAAJ0gP/1j5BSqLMKvOkqhHd+zi\nCCvB9sAYcnGTKzcgWrb78pbHXU7fhN48vgL1FyZqtLVrFIpRQcfHJC1m226G\nNivTdPiUudvAKUpKCAv6S2BtgpDviDUcGe+WnYQ+hxjCCsIZtHhTytypqmOw\n/jX3am2k9O3pJaV21uodr+l4WBzOyBxOsnYxwwMULnOFy9Ifq8fj9aY8+Jh6\nvnlDxlhkdxlGidE+QsObvMWkfzYxmD+4cddAQLvDNSmMA2Hi1zzX4Xl2CEDO\nSStV27FHDxjaMKeV387ynQbMTLnNmEVdzaMzy/+6BDhgK+iMFS0tqGn3q1lY\nQTcvZwOql9SXKNR7VJHqlmB1jwzhP13NRXzLe0y6Rm7WReHjYqR56W8q3HTS\nH69Zqgl+0sYEYhv0OtsZ0BQzA2A4764xtGUSt+6wetOwpdjSTHpa01pPoguV\nirORkgdLi/fXPo33xjQB9lDRtzO2nIbrIGS8+bK/aVbXa2lEsYmXbKx/GfeJ\nTInpIIGd17QOFnLJRX3ougrefcoTi7cA8qvE7fW0JVDWp9xctA113kAvotYb\nwMs5kOSdJ53quwqTCA+w3gXIsg31Q9yxBpJVK10n/+VK3CGLGrqI3gic0Wez\nAkqEq66mezTNGjrcR7+DzkZCErZ4WD90L8JoOeHOXD8EKOhAUnBu/szWwQyr\nI6Jn\r\n=3p8K\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","readme":"# Servør\n\n> A dependency free dev server for modern web application development\n\nThe new and enhanced version of [http-server-spa](https://npmjs.com/http-server-spa). A very compact but capable static file server with https, live reloading and other useful features to support web app development on localhost and over a network.\n\nServør can be invoked via the command line or programmatically using the node API.\n\nThe motivation here was to write a \"close to the metal\" package from the ground up using no dependencies; only native nodejs and browser APIs to do (what should be) a straightforward task with minimal code.\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/68399629-979e8480-016e-11ea-89b3-0f852a018042.gif\" alt=\"servor\" width=\"800\">\n\n## Features\n\n- 🗂 Serves static content like scripts, styles, images from a given directory\n- 🖥 Redirects all path requests to a single file for frontend routing\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🔐 Supports https with self signed and trusted certificates\n- 🚇 Generates secure public urls for localhost using ngrok\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```s\nnpx servor <root> <fallback> <port>\n```\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to any free port)\n\nOptional flags passed as non-positional arguments:\n\n- `--browse` causes the browser to open when the server starts\n- `--reload` causes the browser to reload when files change\n- `--secure` causes the server to generate credentials and use https\n- `--silent` prevents the node process from logging to stdout\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"3.0.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080 --reload --browse\"\n  }\n}\n```\n\n### Creating a public url\n\nOnce the process has started, hit the return key in the terminal window; this will cause [`tunnel.js`](/tunnel.js) to be ran which invokes ngrok via `npx`. A public url will be logged out as soon as a connection has been established.\n\n### Generating Credentials\n\n> NOTE: This process depends on the `openssl` command existing (tested on macOS only)\n\nWhen servor is invoked with the `--secure` flag, it looks for two files `servor.crt` and `servor.key`. If the files are missing then [`certify.sh`](/certify.sh) is ran which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to generate:\n  - a root certificate (pem) so the system will trust the self signed certificate\n  - a public certificate (crt) that the server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt traffic\n\nIf these steps are all successful then the server will start using https. The credentials are valid but are still not trusted, which means that when the server is opened in the browser for the first time there is likely to be a warning displayed which needs to be acknowledged before continuing. Once the warning has been dismissed once it should not return unless the credentials are regenerated.\n\n#### Adding credentials to the trusted store\n\n> NOTE: This process depends on the `sudo` and `security` commands existing (tested on macOS only)\n\nFor the browser to trust self signed certificates the root certificate must be added to the system trusted store. This can be done automatically by running `sudo servor --secure` which:\n\n- Adds the root certificate to the system Keychain Access\n- Prevents the \"⚠️ Your connection is not private\" warning\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from [@kingkool68/generate-ssl-certs-for-local-development](https://github.com/kingkool68/generate-ssl-certs-for-local-development)\n\n## API Usage\n\nUse servor programmatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst instance = servor({\n  root: '.',\n  fallback: 'index.html',\n  port: 8080,\n  reload: false,\n  inject: ''\n  credentials: {},\n});\n```\n\nThe `servor` function accepts a config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a new server and returns an object describing its configuration.\n\n```js\nconst { url, root, protocol, port, ips }; = servor(config);\n```\n\n### Inject\n\nThe `inject` property accepts a string that gets prepended to the servers root document (which is `index.html` by default). This could be used to inject config or extend the development servers behavior and capabilities to suit specific environments.\n\n```js\nconst config = require('package.json');\nservor({ inject: `<script>window.pkg=${config}</script>` });\n```\n\n### Credentials\n\nThe `credentials` property accepts an object containing the entries `cert` and `key` which must both be valid for the server to start successfully. If valid credentials are provided then the server will start serving over https.\n\nIt is possible to generate the appropriate credentials using the `--secure` CLI flag.\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","scripts":{"test":"node cli test --browse --reload","cleanup":"rm -f servor.key servor.crt","test:secure":"yarn test --secure"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/servor_3.0.6_1573156404055_0.2234786878174746","host":"s3://npm-registry-packages"}},"3.0.7":{"name":"servor","version":"3.0.7","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.0.7","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"82b86bcdc3516e55e398a5f2b8d460ddc61d0596","tarball":"https://registry.npmjs.org/servor/-/servor-3.0.7.tgz","fileCount":9,"integrity":"sha512-09+FJMHzMFlDclkQ+3Rc+BFlfa6cRbpyjY5TH7uj8QC4PMvP2V7CCzRXfIiATHtQ4HFuQ44ESacdsxbG/mPBJw==","signatures":[{"sig":"MEUCIQCMDPU7r8UwHhyKL2us0c69kVdDNfW+HCQUJVVoTYLIFAIgFZIttpSRukQIXCHW9oaiIzC/c4bq3HiggFpo1LSu1WM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44410,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxILGCRA9TVsSAnZWagAAVP8QAITPFJz3tsjD1jzs2Ii5\nVQH2q+ntLcHBXpHe2T63W7aAfzSaihLrPtMQVIWF1WdWdMfCha2gKrF5/vsK\nTXzwH1LBpKRjmkNrVzv0dzng/w+NvWa2OonhKBoXGpOiru0SDOQO6Gi+tqMt\ngf6ajQRtdrywfVpg7ois+XDCASZSWSjKM9uiJYBndQIBQ56aySELWC3MRXS3\nnl/gJQ4ypGOvVt953WnRQFOfVzJSDgNc+sieSSjzQTg2TKjWTGl2ImFFSeSK\nliXT8lxvOictiQpSvuCJ8Ny58LhZDGcxMElq4dSyR9wSplFZsGxVpTx37Qot\nuxI99KmgOz1uluC5tD/H+uiAcYMeOT3pvvEAkeqyoc2S2MbydHdvnxI0Z4YA\nJKYPjK2F+20zZyc2FxsRTN0O1ucVt0XRM/vu/fi6JuETq79j9wqLrFYCKi2f\nsGyvs9sl2Q6SuRxT8DsJUCML1uhBqwZdSmhduZZMGy6p2IVNJczoNEuF5/TJ\nq7XcTMkp+HaYJjnWZ/KBQDXxu+1BjdxmmBgIDg6XkyrZOAkKeXDtJF1sst85\nDHY8vhY1ebDFHBrLndsURLsBDR/f5ofUGF1bzmBXQXpBu3G5nVp+9YnQMDvX\n1DL4a4ya8L/Yakn1bhBedOIBl5/x/VUP+9ZTY6KpfZs/0E8LGCNw42b8hwHo\nwCr9\r\n=mCUg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","readme":"# Servør\n\n> A dependency free dev server for modern web application development\n\nThe new and enhanced version of [http-server-spa](https://npmjs.com/http-server-spa). A very compact but capable static file server with https, live reloading and other useful features to support web app development on localhost and over a local network.\n\nServør can be invoked via the command line or programmatically using the node API.\n\nThe motivation here was to write a \"close to the metal\" package from the ground up using no dependencies; only native nodejs and browser APIs to do (what should be) a straightforward task with minimal code.\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/68399629-979e8480-016e-11ea-89b3-0f852a018042.gif\" alt=\"servor\" width=\"800\">\n\n## Features\n\n- 🗂 Serves static content like scripts, styles, images from a given directory\n- 🖥 Redirects all path requests to a single file for frontend routing\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🔐 Supports https with self signed certificates added to the systems trusted store\n- 🔎 Finds available ports to run on if no port is provided\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```s\nnpx servor <root> <fallback> <port>\n```\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to any free port)\n\nOptional flags passed as non-positional arguments:\n\n- `--browse` causes the browser to open when the server starts\n- `--reload` causes the browser to reload when files change\n- `--secure` causes the server to generate credentials and use https\n- `--silent` prevents the node process from logging to stdout\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"3.0.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080 --reload --browse\"\n  }\n}\n```\n\n### Generating Credentials\n\n> NOTE: This process depends on the `openssl` command existing (tested on macOS only)\n\nWhen servor is invoked with the `--secure` flag, it looks for two files `servor.crt` and `servor.key`. If the files are missing then [`certify.sh`](/certify.sh) is ran which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to generate:\n  - a root certificate (pem) so the system will trust the self signed certificate\n  - a public certificate (crt) that the server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt traffic\n\nIf these steps are all successful then the server will start using https. The credentials are valid but are still not trusted, which means that when viewed in the browser for the first time there is likely to be a warning displayed. Dismiss the warning and it should not return unless the credentials are regenerated.\n\n#### Adding credentials to the trusted store\n\n> NOTE: This process depends on the `sudo` and `security` commands existing (tested on macOS only)\n\nFor the browser to trust self signed certificates the root certificate must be added to the system trusted store. This can be done automatically by running `sudo servor --secure` which:\n\n- Adds the root certificate to the system Keychain Access\n- Prevents the \"⚠️ Your connection is not private\" warning\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from [@kingkool68/generate-ssl-certs-for-local-development](https://github.com/kingkool68/generate-ssl-certs-for-local-development)\n\n## API Usage\n\nUse servor programmatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst instance = servor({\n  root: '.',\n  fallback: 'index.html',\n  port: 8080,\n  reload: false,\n  inject: ''\n  credentials: {},\n});\n```\n\nThe `servor` function accepts a config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a new server and returns an object describing its configuration.\n\n```js\nconst { url, root, protocol, port, ips }; = servor(config);\n```\n\n### Inject\n\nThe `inject` property accepts a string that gets prepended to the servers root document (which is `index.html` by default). This could be used to inject config or extend the development servers behavior and capabilities to suit specific environments.\n\n```js\nconst config = require('package.json');\nservor({ inject: `<script>window.pkg=${config}</script>` });\n```\n\n### Credentials\n\nThe `credentials` property accepts an object containing the entries `cert` and `key` which must both be valid for the server to start successfully. If valid credentials are provided then the server will start serving over https.\n\nIt is possible to generate the appropriate credentials using the `--secure` CLI flag.\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","scripts":{"test":"node cli test --browse --reload","cleanup":"rm -f servor.key servor.crt","test:secure":"yarn test --secure"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/servor_3.0.7_1573159621768_0.8897181941571988","host":"s3://npm-registry-packages"}},"3.0.8":{"name":"servor","version":"3.0.8","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.0.8","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"14e933abf79cae51cf2f77e571d13d3335d71647","tarball":"https://registry.npmjs.org/servor/-/servor-3.0.8.tgz","fileCount":9,"integrity":"sha512-XyfrIDlDv/95WdWWkrdot16fQ/Hso+U2zF28JCRwpxTBxJWcAXYwP0LKaEImAYRQ5j6DKCNUPKvSuPl2Den7Cg==","signatures":[{"sig":"MEYCIQD6Q6jnBOJRbr2ganHDumpp98tOL1h3XHButX0iARKJWwIhAKn/ejccvAUaKMnfIbEZijqsQ/fKyRzL3GEYGnDo27Uy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44087,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHHlyCRA9TVsSAnZWagAAf3UP/A8e92Sz76R7f/cE0pY3\ncX/i9m2KP2sFxMMzbv4VtNXOHX9R1WClCuYh5iiBRIeIlgtsGfm+VFvkkIhn\nTLM9eS0h7BbNxYLRuEg75h3hNh5OmpEE14OMUEfY29CAsoypgh3NlShSXsVn\nch2gG0X6mvt2cozC0NekN+kSQcgxrOSkUan2a6PolORRv0+1oHnNZMNxhep7\nLHP6pI2l3QKG4g34SlZ6RQ1mpUjCSG1EZZgcuGtQc35ZImW5S1Xh+Dffc348\ntnhsyEhfaNAle0/xZmwF65GJKvyls9ejmEuW+g+LusuhKke1S5740alUYO/m\nL1Qe5usIKLo5Izg6LD+ItwonKIJKREiNNMNQTFo9jDSA6IgtEkBguLXUbdZT\nRVaMP3N+lYvuz3hU/nq3Yc05CfKIb3EI14ZEetxngDKizUsiBZlUkqi/MjWu\nClbm+qEiY6UkOr+i/ZhSoCyGzvCLEkCKklqjwRkcxUJ6DHugO2MRH4l2X0F+\n4NsSsN1mw5/KHy3s7n+Bnf0VyHbRLiuAIquZP1LRZnC8/lPqOtF9g9GBYMpQ\n+0BfLGUUziHJhB96bMD0TAhN3days7s6atj8L3oCwgB8v0mjH7iRhtPp3yDf\n9luP6JLyG/nzt4/dZ+N3kdIV84SY8KSvcAJc6w6GzaVHJBAqaJwsTSqMsgoq\nsChP\r\n=Pied\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node cli test --browse --reload","cleanup":"rm -f servor.key servor.crt","test:secure":"yarn test --secure"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_3.0.8_1578924401641_0.6033450326033196","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"servor","version":"3.1.0","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.1.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"53f7b1eb4faa834ea86cafed496931ea6145674b","tarball":"https://registry.npmjs.org/servor/-/servor-3.1.0.tgz","fileCount":10,"integrity":"sha512-odm+WXiPqPVtGxx4nr3A8m4cHPITHAVN4iOofV0mxlMV3C8SVzEnzTxBz+ArH4IpqlDtswnPw1tQ9tqa8u5zgw==","signatures":[{"sig":"MEYCIQDa5i+9Zb+KV5uj0H3mHd9uaowcm3dRtYMGusA8ezzvlAIhAOfmv1pdDhHLEwZJNv/kinnM0L51ayfk3P2i4DE13APT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeILMQCRA9TVsSAnZWagAAp/8P/2bvQF8JhnZCDlND8qnj\nvRYewCVybym3S+hHyzKAYYdYFFhRGW18u/reSw/uisPESYKm7V+nnQ0LlaWO\nAe3BP3WogkbjE5ZAavsSbWK84/F+ZV/KNTkXAf++sp4PfNGAHhbrE3ttk55q\neFCi+BXyVasHrO82yfOIxXWdd4RaBWr/lzh5jG39nODtIQROQTj7JhNPEuvc\n8gwXDcf79K3rkrHhSTdgHUQj0BxgSWVJUsEro85vr22dg8+eqPxb4Oo4zRmY\nbOdxs5WShAuSztbO8rQZueewy+4dRv8sEjioWXSsjEpW8TXPvsL+v9alf84e\nBAZ9wsuM2yn72esZAPaf75q9nU3uG/gYYvyJE6AYQybpDBF6RmW7PLoSre/n\nMvRQR5JXDhzaZ9r9SjpgkVEQrKQprJ4UKOmkB0si6bRxXt5gEhxkachjcHFq\nbXyNQS/jI8KUVTS/mZhC1hpKPR9r7ARpFdfLrTZLQFo6WDc32RIvbqbl+8mH\nkR8piiYGQPR5aiB93cUpD4Y7hF5lEY2Mz4O+fvuqHwE0dSczrMMh6fv2L0lA\nTX72SneLKaLUjXj8wcEP00lWfFbyR+NOpIzZKd6zi2Z+G3BK/nwDZm/Vc7qT\ndg/fBSxNpNqrQZJqieRGDoYqOwSJe2SPV1kkMt7/MVgfSuX5Aa7xthnegqOH\nvJ/H\r\n=vRni\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node cli test --browse --reload","cleanup":"rm -f servor.key servor.crt","test:secure":"yarn test --secure"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Luke Jackson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_3.1.0_1579201295521_0.17966623290196693","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"servor","version":"3.2.0","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.2.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"d630025ac69a7da7724bd6e1f02d65f9a56f8cca","tarball":"https://registry.npmjs.org/servor/-/servor-3.2.0.tgz","fileCount":10,"integrity":"sha512-L9wmcl6AMlDN4DOmnjpY2ZoWmC3c6h4dxAug5oNq1uQrV2ZuPc6pKejwsZ23EBo7Sw0nZUZ8zN0qswHc/JZs2g==","signatures":[{"sig":"MEUCIQDpxmEYE6BS2lXrn4vRJBiXPoUcgdTq+tohr79UfntyigIgbGXGw27fFWNr2yrR0hftJqSh45TWpW1enYWFgGAgq1w=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":45908,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeQtXbCRA9TVsSAnZWagAA9/QP/AzCCM8sV6y2RoN6nF7k\nYd7feLtQHrEF5UcNCaT2+bYj7sLIx4sO6bdsDOq/RXQkkFtp34owWqLyTwJJ\nt/TUuilcMuMaW+ooBLBb54ms8BjJZj4ZEQQ09bWRNATBwaHA50w1/LNdlz6T\njpanygSo6SFhQQqxUM/W35WlM03R4zYmaEnO59WWxa31gshUhFZKcyZWL5w7\n7A1ipwv+rsUuXidSqRkiasWGZOUJ8eH7PhEniJMJ5i849VodwgTgNwXKJeG4\nmfVS22Jmg4YOH8uc3+Qm2niHJO6gzk2aZZTY4cVu1a1Huz/dQkQunI94Uqd+\noAjHBvXtkD5/GCL76E6jj+7Q+JDyT9q/Mn+lm5L5oGFaTFArwBjB2WEvm0OQ\nDSJ3V2L73UYKsIyzP2cxnAZ+V1nJQmB9cx4Q+1jRO5wIuPl+lAdeIJft4dKB\nY2xmud0WYG2tlDp9zcJxjpktwjetIYMc9rSHyNzCGKXips9F4gJK6JUeGdjW\nyuR/usJbvQMNpRPUxtua+CZdGv8nwxmqKcRPSizx+6yAOX2DM2nbvCT9xpJS\naw89LPsH9bFLsf1P4iohng5XzQnUWkSGzBN3zwfkv1+akYKKY+BX/0qCCN2Y\ntu5AVEZltKmw1Zh6cxAEtqyKbog0VlNs7RF8FRu/qvzOnbrNJRIWDhwr2hI6\nb0rF\r\n=wPZX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node cli test --browse --reload","cleanup":"rm -f servor.key servor.crt","test:secure":"yarn test --secure"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Luke Jackson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_3.2.0_1581438426684_0.17373943321117657","host":"s3://npm-registry-packages"}},"3.3.0":{"name":"servor","version":"3.3.0","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.3.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"4331db9151c671ec77fbf392aa4cc6c77cc30d98","tarball":"https://registry.npmjs.org/servor/-/servor-3.3.0.tgz","fileCount":10,"integrity":"sha512-b1D0ftoKhkwiOdY0jZEsT+w5bH9PaT9tG7XwXrM0ernarMym2q72Wun3Uq7ybMg/4V05mVeVbOnk+4JfGpEoGQ==","signatures":[{"sig":"MEUCIDG5WziOzFXFQjLnfTn/nMoQFpuh2fr42rXS8ody5rYTAiEAv76zt1Otk9nn54PsifjceN2PnFz9taUXl/dueLBjzMw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":46437,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesyr+CRA9TVsSAnZWagAAsQoP/AuBYqThrXJdfbdbKmnG\nKXNcLsgkHfnSBkJL2mZcNL2kpk+1c/BQyuk1bR1CUUahbfr0lwNYm4C+3wLH\nNJUUlNmvhiA/b3kdtasTQFza2Uzs4N5LHb9oseKYsnOMtchkfXS12Ud9jgCP\n5XLeIJkg+0DsyvXQLPvRYf4Ihp3n8Tj6lw+rm98zfjJR+HvhJJlIHzqHkDdB\nBfh21/5uF1/UZnaqzYvehBOJhu+z3K/OSFzyRxL08QiwpcaBZicytdbt8Q0g\nFzYvVz7wEH2hDLYFutoqD2UQv7kHABOqGChVX/mA8PeaIWgXnfKxbeDiV3BC\n2MiEMhK06jpxeBjy23Zs1oxM2SXoSp+u8BXw2kby1Coyj+Se0j00V2b5V8S0\nFuSOrSsJ8DtcLceSB8CH/ji/KRBCSQHGpoMPOV867UPwffV6ZJmeevq0L7ME\nv21BmUYe3Ymy65guzhsPSemdV64NMEkmHxZa42PhFwD0zUcw0PGIthnwnVkk\n7ViIIcudX/D79TOa6eUTQZg99P7Sr5sTwO5rpjN1H80lkApW4ycnos0zppWV\nXmxYuWI5aVLOyd/KP6B8LrAtEveXGy1Hs3PWoGd4Zib2CTZuUeyn4/1TC9kx\nnt5AwPYhHbQcz9LRJq1zQUxpS7G8B43WfnGu65O7+53XFfDiH++LckGBeu5z\n48m6\r\n=UXSX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","readme":"# Servør\n\n> A dependency free dev server for modern web application development\n\nThe new and enhanced version of [http-server-spa](https://npmjs.com/http-server-spa). A very compact but capable static file server with https, live reloading, gzip and other useful features to support web app development on localhost and over a local network.\n\nServør can be invoked via the command line or programmatically using the node API.\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/68399629-979e8480-016e-11ea-89b3-0f852a018042.gif\" alt=\"servor\" width=\"800\">\n\n## Features\n\nThe motivation here was to write a package from the ground up with no dependencies; using only native node and browser APIs to do a specific task with minimal code.\n\n- 🗂 Serves static content like scripts, styles, images from a given directory\n- 🗜 Uses gzip on common filetypes like html, css and js to give a production feel\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🔐 Supports https with self signed certificates added to the systems trusted store\n- 🖥 Redirects all path requests to a single file for frontend routing\n- 🔎 Discovers freely available ports to serve on if no port is specified\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```s\nnpx servor <root> <fallback> <port>\n```\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to `8080`)\n\nOptional flags passed as non-positional arguments:\n\n- `--browse` causes the browser to open when the server starts\n- `--reload` causes the browser to reload when files change\n- `--secure` starts the server with https using generated credentials\n- `--silent` prevents the node process from logging to stdout\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"3.1.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080 --reload --browse\"\n  }\n}\n```\n\n### Generating Credentials\n\n> NOTE: This process depends on the `openssl` command existing (tested on macOS only)\n\nThe files `servor.crt` and `servor.key` need to exist for the server to start using https. If the files do not exist when the `--secure` flag is passed, then [`certify.sh`](/certify.sh) is invoked which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to produce:\n  - a root certificate (pem) so the system will trust the self signed certificate\n  - a public certificate (crt) that the server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt traffic\n\n#### Adding credentials to the trusted store\n\n> NOTE: This process depends on the `sudo` and `security` commands existing (tested on macOS only)\n\nFor the browser to trust self signed certificates the root certificate must be added to the system trusted store. This can be done automatically by running `sudo servor --secure` which:\n\n- Adds the root certificate to the system Keychain Access\n- Prevents the \"⚠️ Your connection is not private\" screen\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from [@kingkool68/generate-ssl-certs-for-local-development](https://github.com/kingkool68/generate-ssl-certs-for-local-development)\n\n## API Usage\n\nUse servor programmatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst instance = await servor({\n  root: '.',\n  fallback: 'index.html',\n  port: 8080,\n  reload: false,\n  inject: ''\n  credentials: {},\n});\n```\n\nThe `servor` function accepts a config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a new server and returns an object describing its configuration.\n\n```js\nconst { url, root, protocol, port, ips } = await servor(config);\n```\n\n### Inject\n\nThe `inject` property accepts a string that gets prepended to the servers root document (which is `index.html` by default). This could be used to inject config or extend the development servers behavior and capabilities to suit specific environments.\n\n```js\nconst config = require('package.json');\nservor({ inject: `<script>window.pkg=${config}</script>` });\n```\n\n### Credentials\n\nThe `credentials` property accepts an object containing the entries `cert` and `key` which must both be valid for the server to start successfully. If valid credentials are provided then the server will start serving over https.\n\nIt is possible to generate the appropriate credentials using the `--secure` CLI flag.\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","scripts":{"test":"node cli test --browse --reload","cleanup":"rm -f servor.key servor.crt","test:secure":"yarn test --secure"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Luke Jackson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/servor_3.3.0_1588800253493_0.13636967166633962","host":"s3://npm-registry-packages"}},"3.3.1":{"name":"servor","version":"3.3.1","keywords":["development","server","node","spa","reload"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@3.3.1","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"6862a9016837c5bd8c7ab20c05c775d72dfceab2","tarball":"https://registry.npmjs.org/servor/-/servor-3.3.1.tgz","fileCount":10,"integrity":"sha512-3597Ob1ZKGzRYNZSgD/LSpiQcj3JRN6MvIDFUxkcwtWwUvXkrskhPT3Z5FiFFS3RIG0Je94x56Y9AfvY+mcvgA==","signatures":[{"sig":"MEUCIAuy0Lv9hljkVQTzc3yo3TuLwDr1xvqY3dO6t5i6sm84AiEAslix6nEwZ1uOYtYweQin1kNTkGcjghbQbm5G4CS/PUs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":46437,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesy7aCRA9TVsSAnZWagAALGcP/0gGtbKGJrQdUil0/0Fm\neDYQtDzBeP1Me2ZIsSCoIXGO07T+4fXoryf2VPqLS1PggG12MFoK6cub3tmQ\nH/2Pe6YN9yyUEmUdor6x3GZpOYA0d7brArzAuwmVM6xWCvdlGKC6QpV6xSmg\nJjBYlllDkp6oVp+JLZqnimC75u5jGVZ2qF0VHpNAPJ84/ASSAg1wVNUIUYOw\nVF62B/KtSMsxDPs15A8gzO/zxUXp3IJD+qrw+B1Mg5S2D7f++m7cnJai0aBP\nRdC5BaQARCVmFQbGCOQm1RMtzEKenmOGF3x63T+7NohstaFFx22i0mDCWib5\nckw+N8QqitcCCPv7fgLLIm1yY1USqle3DKFerZ7jkt523kxD4QfBUfNljwgf\nV8lBnVjm2DBUrNaokSdt4HWIqKaJv1YPqtmVTpCfCsZoXC1j1SIyIUlFEY3H\nPvnY/9vYAoh/FVgD6Ovkntxq24nC1xKizaOBd58j0xLvtM6uXYzSCfd0qCxG\nHbyd7Xrfp3oyrnfY4cr6LFsbBsIJ0dhQvEUCCWu47WM8NS3txUVoK1dTkdUH\nn6FClTSGrpG5m/eqLhYNeYAXdwJefIeZJGAjXsE3U42LL0IcrWLUnGR5srJd\nyeJ5DHALx614C7Gt4BK9pKpm/l5atog9o55iGSnXu4Ja7E1DFfen+Gd68l1W\nMCll\r\n=08Fe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"node cli test --browse --reload","cleanup":"rm -f servor.key servor.crt","test:secure":"yarn test --secure"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Luke Jackson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/servor_3.3.1_1588801242339_0.6855003482798905","host":"s3://npm-registry-packages"}},"4.0.0-rc.1":{"name":"servor","version":"4.0.0-rc.1","keywords":["server","https","livereload","spa"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@4.0.0-rc.1","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"2982f15f360bfddb78a6dff9ee1b3982eb3ad13a","tarball":"https://registry.npmjs.org/servor/-/servor-4.0.0-rc.1.tgz","fileCount":35,"integrity":"sha512-yo3eNdjq2fAS4Oz7a+uoy8i+b8V7CdsGu3ZxTTRbS139Rw3wipi2x6bN+mHvlG3svQmecdiaoIB+VT6h4tUNPw==","signatures":[{"sig":"MEQCICC7Dj6d4yiKqOdJk0Q4ruule0O3xx5CsPqy98vSG+LoAiB8vt7o3dNf3qwTCUAKlDluisQoYwvkKnMaaWhGMEHTiw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68695,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewmkzCRA9TVsSAnZWagAAG2oP/0D803oNa08v3+I/9qNK\n37EgZVN/w5hPTElF93HLpWAVcUhZAy+qKMqQRkrEMet7Pth+uptbDv7vXZw4\ncKcsZfaZZ/ngzN7v0k9qEKBkybh9CLBlNwtFxCP6ICiMIcaGqG6OWluEzdCT\nQURvXm1kpwSx/NbCP9CgdOhDW3zXIGIvW9RUk2zjC+aWiJwx0FAmEDGrBcR9\niGtbSPPfsAJ6+FHQqvHQhfLedKsjbnltFqD43ZDhZy6MJuISOZE5NW79C07t\ni34wseq2sMcrVX66GXIRu+CiItRCaA050iUD1H1Kn9gVPfyKM59J9OYp0QEj\n1MFAPG7FO7qTXPqFuu5qDqECLenMHCMwmmbXuFuUC2+zvNF+3BfJMps0J48c\nMik5FNV8nm+PtV1/GAxvA2wcZ1O2O34veFyv/e9Ep23QrN4RsVnok2okmtSj\nepzmPnnHwNgdg4NLq9CmMy8Scyz0NqDp1eXUaOcXXKg5V9YNZku80W3PE/fY\na0FHz20JvZWNqlmSMzityQPe3w1CYEr0flQ8Txv6rCryPbMOMbRUuZ+/AtlR\nxJ71hcnUwKH7aObvAQ03ms9BcXYXNgcOXWZ3rIVv6RUiNXWUrGLpVCmk1h6g\nNIuglGWtufCCWqyQCKDWgKzxFVToh7ZwelvBTN/6NHYagVjVecwwQFJDTKTN\n5Coc\r\n=iPZK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"npm run cleanup && cd tests && node index.js","start":"sudo node cli tests/example --reload --browse --secure --static --module","cleanup":"rm -f servor.key servor.crt"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Luke Jackson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"puppeteer":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/servor_4.0.0-rc.1_1589799219288_0.5844432910507675","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"servor","version":"4.0.0","keywords":["server","https","livereload","spa"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@4.0.0","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"50251ee96332de1d495a49505c9b54f7e06323d6","tarball":"https://registry.npmjs.org/servor/-/servor-4.0.0.tgz","fileCount":35,"integrity":"sha512-gwo8+HP/9IYa8t7eYAjCSr2lgKQrFP4ESidiyKI1NiTkpYsJOylc/XtnCFa+NUnVp3BSKkvsIY1cTHvsFB611Q==","signatures":[{"sig":"MEUCIANzcw5LXmP8xZQR1iPvjDDq22sva02O9ZTni1kxmZeQAiEAj5BjkWx48eWgaBAhHEsgect9b5iW9X2lQpKoLoZgBDc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68690,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewmpQCRA9TVsSAnZWagAAtMYP/ighQ+GuaDHgRU0harhW\nul+sj5Xk00d+hduAAKluJ6MCxJn2/Ig5ORgqTrFUk6IMmy/0o2Gsb5SUFRy5\neqD2f5G5h+JkGESFyFYJvkvd5nhy+/ymBp2N9vYwXEdrvT/VVYkY3eMowSJ6\nmPcOzGPNhy1AfMol3tHt/SqM2vqXXGiusbYZiZ6QXtfffIu4FaUxW219Uw+M\n/RtPe5J0aGy9vDW3KPc8tnvqSqS5M8eElW5DTqip424chi0TN22qmskM42p0\nj+AC/dnwWZxlpFa8inKB6VfSFLWo4ZXyn46pUQ6yqXSDfWH74nhQFqAfAt1h\nQFWmLosZNomY7k15IVAQfqvWEynTh25uqs8pd3BA/TMgF14OxHgblHhafV1d\n5EWM92hP5FT5JGQKwK+yWdLMaaAfkEyDs33TDeyxJAwxX7WSBPBaRnGif1EB\ntb4TGhZwKom/ZDYqAYnkCH/xOLXteHO0LnurzFPhLXLdgTv08zoXz1LcEfob\nfMJfiHJgs28EVushTcmUuSC6Oh/iSvJ15UqD2QPsSQuUX0t+ku6sm2eQo82u\ndVh9GfQ99P4r8NjARNwaxSM9AMMv0xehqriuWC/yEQVBQLptfdLhrNl1r2oA\nK3afxxxQlsp6aymwtmEVGCusOh8uIC7RX0j3sWAkzB3wIJl0tuqcX0ydUdiH\nWexd\r\n=xAC1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"npm run cleanup && cd tests && node index.js","start":"sudo node cli tests/example --reload --browse --secure --static --module","cleanup":"rm -f servor.key servor.crt"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Luke Jackson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"puppeteer":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/servor_4.0.0_1589799503767_0.617680298990676","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"servor","version":"4.0.1","keywords":["server","https","livereload","spa"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@4.0.1","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"06448797aaf0ab02bf3943c1c8535e30ebea12a2","tarball":"https://registry.npmjs.org/servor/-/servor-4.0.1.tgz","fileCount":35,"integrity":"sha512-LxeFrUPcnXpt4joziMNDzwlflj317bqoVu2z34pGDmhesYJnOji6CsXAazkZNEwUsPynI9S/syrSoAVDRD529A==","signatures":[{"sig":"MEYCIQCWIwWDy9IVKM6AGgPmqoAS3eIxNqoveLsiWR6ElTLingIhAL5KmUcmbHR5YR0egtObaDFbc5wti99QE23eGXL52uvY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68721,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewsD8CRA9TVsSAnZWagAAo7UP/1VCIUaBWBLmTACG1EuJ\nKIheq3Pboo+tAR0NTq9KSaIz767dajr9w1oRrEZbrnxJp12JFJwE4lo2Qaju\nXSgmC+cpJCHiwQaTYPcnBrWcfC2jWogNv1jG7CeW7+nlTI8FUb5LyM7v/yyn\nY6/qzIA5h+sQ0lT2wKSTZKcRrB8rvIRGAAzs4KZq7TtbWwoVJdr62RZaA1eA\nPA0wm+LNrgzCigbS2N0IXfXsJw6QwnxbwNjYaer5Ppw/VXZQ8X9VpSoyLv8E\n67Ji37P+K3mW1RUl+XOR/fy1ajFg4Ro0IIcQIaj5H/hFhOQLTtmOTbQLhEWE\niUFCLPvwhxwFGyoCtPWrH2NSkoU74YwUtNgK75JsfdSh5V+qz/HM+uO7i6ND\nNn4oSAYhr7CwCy0IlelLRlFSH84zfBwMWH1aPjvxYTC+g+1DL7/ifCp4yGcy\nE6Rkst/xQ4Av9nWXx4BHWDhkupmS9ceYqwIilLjd4xAvTYsp8rKaitn2oblo\nAzDna/vOTz/pithz5UBPyqkluA2rITewTrZNuPC2lcd+p/wPfAMppGUNo2/I\n8DplXwUDqwunDaFo8sHayh4sLX2u5kwmZWE3X+ppv9ScgvSzM9UKzy8qiBYt\nUp4epfBA0Rrvwtfva34vYJjc5CuBe+xhFqNXYzJvwfdxWYZl8SeUbUlo7rqr\n2bvg\r\n=3SlH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"npm run cleanup && cd tests && node index.js","start":"sudo node cli tests/example --reload --browse --secure --static --module","cleanup":"rm -f servor.key servor.crt"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Luke Jackson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"puppeteer":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/servor_4.0.1_1589821692257_0.061985599295106164","host":"s3://npm-registry-packages"}},"4.0.2":{"name":"servor","version":"4.0.2","keywords":["server","https","livereload","spa"],"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","_id":"servor@4.0.2","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"bin":{"servor":"./cli.js"},"dist":{"shasum":"6d5e5c61fbb3d6f4bde72995dbe6745829395971","tarball":"https://registry.npmjs.org/servor/-/servor-4.0.2.tgz","fileCount":35,"integrity":"sha512-MlmQ5Ntv4jDYUN060x/KEmN7emvIqKMZ9OkM+nY8Bf2+KkyLmGsTqWLyAN2cZr5oESAcH00UanUyyrlS1LRjFw==","signatures":[{"sig":"MEYCIQCKD/JHpp0oMhc/aH6tDdRVlvt7UUK/2uI++DAhwC8Y3QIhAI0sqrNA2HPXPWonWnGYSxC4tCn8XgIjdNw2pahRykm/","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":68735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewsUUCRA9TVsSAnZWagAAcVgP/20GVJhdGZWNcjs/KRgo\nLf/btMQsWPeaL2/O+C4MoklLuALASUUKWi4weM+Jqrg9s+ETw99FRsecNSBa\n1ey9AGnZkIJTrqF4W1SezrAARikMvIMzYl+YUXgiRPRWNn33gKZZr7Maj55Z\nOJ/lJI4uAtqydm77TaMYVRTL1rrHr85FeskJlMyQ2cho6irutfB/bcJ20qlK\nJSsDzl+jRxHZ2sJl71m+S/DoKAgLDom0eS7C1ZUPLVlTMkzuV7VSJ//IB31C\nRZ2TPqzUFTLy7cxnuQeBb99aw0vzxSeRs7o9a79sJRHJyHw9mYD5kIFEK+Z6\nFXeWd8qeGuP8juKEdcLfpVavoolpOkgKx8h+lAtdbQEmx+4tPw40WLSwt1Xz\nN0yMnI8fL4MPOS8mG4nBykScWZLegwarcZekghDmoPukS0Osn7NnibMxXCCI\n4rpPhLdW+iwSDamqXYX9+SGpTTtjmssiEaND1CObqgOHXDb3Wbpr8acasD+L\nX8duVon1aHzy2WH1GIBE1tGf7ttCJwqsJumwo3YaFemcjtVNlJDfCET0ldmP\nbmBXylvPWRO4cgOXc40m8sUdY2Wr6j0+z5cXTwOG9g0zsSHp8A2SRvUQL7XO\nmfrsvWdNI2cOq0MA4QfMj4Ih25ZOn0aS98Zada3vSnRzXxQKlGSBNw7njflu\nZohm\r\n=C0sk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./servor.js","scripts":{"test":"npm run cleanup && cd tests && node index.js","start":"sudo node cli tests/example --reload --browse --secure --static --module","cleanup":"rm -f servor.key servor.crt"},"_npmUser":{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"},"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","directories":{},"licenseText":"MIT License\n\nCopyright (c) 2019 Luke Jackson\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","_hasShrinkwrap":false,"devDependencies":{"puppeteer":"^3.0.4"},"_npmOperationalInternal":{"tmp":"tmp/servor_4.0.2_1589822740356_0.25339790897512926","host":"s3://npm-registry-packages"}}},"time":{"created":"2018-11-08T05:08:19.651Z","modified":"2025-05-19T22:51:26.660Z","1.0.0":"2018-11-08T05:08:19.899Z","1.1.0":"2018-11-08T06:04:19.728Z","2.0.0":"2018-11-08T08:33:10.691Z","2.0.1":"2018-11-08T10:30:58.128Z","2.0.2":"2018-11-08T11:27:12.819Z","2.0.3":"2018-11-08T13:07:40.228Z","2.1.0":"2019-04-27T17:50:51.764Z","2.2.0":"2019-04-27T19:41:58.508Z","2.2.1":"2019-04-27T19:46:26.828Z","3.0.0":"2019-09-28T18:41:20.547Z","3.0.1":"2019-09-28T19:25:54.630Z","3.0.2":"2019-09-28T19:42:35.338Z","3.0.3":"2019-09-28T19:51:24.258Z","3.0.4":"2019-09-28T22:27:00.432Z","3.0.5":"2019-10-04T15:00:31.593Z","3.0.6":"2019-11-07T19:53:24.187Z","3.0.7":"2019-11-07T20:47:01.926Z","3.0.8":"2020-01-13T14:06:41.797Z","3.1.0":"2020-01-16T19:01:35.649Z","3.2.0":"2020-02-11T16:27:06.805Z","3.3.0":"2020-05-06T21:24:13.742Z","3.3.1":"2020-05-06T21:40:42.442Z","4.0.0-rc.1":"2020-05-18T10:53:39.434Z","4.0.0":"2020-05-18T10:58:23.904Z","4.0.1":"2020-05-18T17:08:12.396Z","4.0.2":"2020-05-18T17:25:40.502Z"},"author":{"name":"Luke Jackson","email":"lukejacksonn@gmail.com"},"license":"MIT","keywords":["server","https","livereload","spa"],"repository":{"url":"https://github.com/lukejacksonn/servor.git","type":"git"},"description":"A dependency free dev server for single page app development","maintainers":[{"name":"lukejacksonn","email":"lukejacksonn@gmail.com"}],"readme":"# Servør\n\n> A dependency free dev server for modern web application development\n\nA very compact but capable static file server with https, live reloading, gzip and other useful features to support modern web app development on localhost and over a local network. The motivation here was to write a package from the ground up with no dependencies; using only native, node and browser APIs to do some specific tasks with minimal code.\n\nServør can be invoked via the command line or programmatically using the node API.\n\n**Quickstart Example**\n\nThe following command instructs servør to; clone [perflink](https://github.com/lukejacksonn/perflink), start a server at the project root, open the url in a browser, open the source code in an editor and reload the browser when files change.\n\n```s\nnpx servor gh:lukejacksonn/perflink --browse --editor --reload\n```\n\nMost features are disabled by default but you can customize behaviour by passing positional arguments and flags to enable features.\n\n<hr>\n\n<img src=\"https://user-images.githubusercontent.com/1457604/68399629-979e8480-016e-11ea-89b3-0f852a018042.gif\" alt=\"servor\" width=\"800\">\n\n## Features\n\n- 🗂 Serves static content like scripts, styles, images from a given directory\n- ♻️ Reloads the browser when project files get added, removed or modified\n- 🗜 Uses gzip on common filetypes like html, css, js and json\n- 🔐 Supports https and http2 with trusted self signed certificates\n- 🖥 Redirects all path requests to a single file for frontend routing\n- 📦 Accepts both HTML and JavaScript files as the root file for a directory\n- 🔎 Discovers freely available ports to start if the default is in use\n- 📄 Renders directory listing for urls ending with a trailing slash\n- 🗃 Opens browser tab and code editor to streamline quick start\n\n## CLI Usage\n\nRun as a terminal command without adding it as a dependency using `npx`:\n\n```s\nnpx servor <root> <fallback> <port>\n```\n\n> You can pass a GitHub repo as `<root>` using the syntax `gh:<user>/<repository>`\n\n- `<root>` path to serve static files from (defaults to current directory `.`)\n- `<fallback>` the file served for all non-file requests (defaults to `index.html`)\n- `<port>` what port you want to serve the files from (defaults to `8080`)\n\nOptional flags passed as non-positional arguments:\n\n- `--browse` causes the browser to open when the server starts\n- `--reload` causes the browser to reload when files change\n- `--secure` starts the server with https using generated credentials\n- `--silent` prevents the server node process from logging to stdout\n- `--module` causes the server to wrap the root in script type module tags\n- `--static` causes the server to route nested index files if they exist\n- `--editor` opens a code editor (currently only vscode) at the project root\n\nExample usage with npm scripts in a `package.json` file after running `npm i servor -D`:\n\n```json\n{\n  \"devDependencies\": {\n    \"servor\": \"4.0.0\"\n  },\n  \"scripts\": {\n    \"start\": \"servor www index.html 8080 --reload --browse\"\n  }\n}\n```\n\n### Generating Credentials\n\n> NOTE: This process depends on the `openssl` command existing (tested on macOS and linux only)\n\nThe files `servor.crt` and `servor.key` need to exist for the server to start using https. If the files do not exist when the `--secure` flag is passed, then [`certify.sh`](/certify.sh) is invoked which:\n\n- Creates a local certificate authority used to generate self signed SSL certificates\n- Runs the appropriate `openssl` commands to produce:\n  - a root certificate (pem) so the system will trust the self signed certificate\n  - a public certificate (crt) that the server sends to clients\n  - a private key for the certificate (key) to encrypt and decrypt traffic\n\n#### Adding credentials to the trusted store\n\n> NOTE: This process depends on the `sudo` and `security` commands existing (tested on macOS only)\n\nFor the browser to trust self signed certificates the root certificate must be added to the system trusted store. This can be done automatically by running `sudo servor --secure` which:\n\n- Adds the root certificate to the system Keychain Access\n- Prevents the \"⚠️ Your connection is not private\" screen\n- Makes the 🔒 icon appear in the browsers address bar\n\nThe approach was adopted from [@kingkool68/generate-ssl-certs-for-local-development](https://github.com/kingkool68/generate-ssl-certs-for-local-development)\n\n## API Usage\n\nUse servor programmatically with node by requiring it as a module in your script:\n\n```js\nconst servor = require('servor');\nconst instance = await servor({\n  root: '.',\n  fallback: 'index.html',\n  module: false,\n  static: false,\n  reload: false,\n  inject: ''\n  credentials: null,\n  port: 8080,\n});\n```\n\nThe `servor` function accepts a config object with optional props assigned the above default values if none are provided. Calling the `servor` function starts up a new server and returns an object describing its configuration.\n\n```js\nconst { url, root, protocol, port, ips } = await servor(config);\n```\n\n### Inject\n\nThe `inject` property accepts a string that gets appended to the servers root document (which is `index.html` by default). This could be used to inject config or extend the development servers behavior and capabilities to suit specific environments.\n\n```js\nconst config = require('package.json');\nservor({ inject: `<script>window.pkg=${config}</script>` });\n```\n\n### Credentials\n\nThe `credentials` property accepts an object containing the entries `cert` and `key` which must both be valid for the server to start successfully. If valid credentials are provided then the server will start serving over https.\n\nIt is possible to generate the appropriate credentials using the `--secure` CLI flag.\n\n## Notes\n\nThanks to all the contributors to this projects so far. If you find a bug please create an issue or if you have an idea for a new feature then fork the project and create a pull request. Let me know how you are using servør [on twitter](https://twitter.com/lukejacksonn).\n","readmeFilename":"README.md","users":{"peruzzo":true}}