{"_id":"signed","_rev":"25-3dfe0ccde789cc7af292b2be11011766","name":"signed","dist-tags":{"latest":"2.1.0"},"versions":{"0.0.1":{"name":"signed","version":"0.0.1","keywords":["express","url signification"],"author":{"name":"Roman Ditchuk","email":"me@ototak.net"},"_id":"signed@0.0.1","maintainers":[{"name":"roman","email":"me@ototak.net"}],"dist":{"shasum":"ef5efc964ccfe0a67a05072e206de1dd5ba29c48","tarball":"https://registry.npmjs.org/signed/-/signed-0.0.1.tgz","integrity":"sha512-Me+TmWbJiyhRjdZcCMCCpMLAIN6teDgrKXZc9BmxV2k9LR0DAigbLzZ0yBLiTOgHr5JLUYr34bExXRIUIjESBw==","signatures":[{"sig":"MEQCIB4Ky5sXxLn8qmpCiwrLW5MIbGDiKCrCGpy5mg1WQeerAiAGaXu7NycJwQwFUzyEZPgw8+LGwdfxipobqDob5GFl/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/signed","_from":".","_npmUser":{"name":"roman","email":"me@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"_npmVersion":"1.2.32","description":"Tiny express library for signing urls and validating them based on secret key","directories":{}},"0.0.2":{"name":"signed","version":"0.0.2","keywords":["express","url signature"],"author":{"name":"Roman Ditchuk","email":"me@ototak.net"},"_id":"signed@0.0.2","maintainers":[{"name":"roman","email":"me@ototak.net"}],"dist":{"shasum":"6ecfeeb7f24b19141aec00418a985c149ec7461b","tarball":"https://registry.npmjs.org/signed/-/signed-0.0.2.tgz","integrity":"sha512-9jeBal+9AznccUSPKJN3eZl6GLq7mf0H+cnAOWOCipEbrtEC1FKDejKVi/XS3zc8wnOA6V6HitmWmsYJHWqQVw==","signatures":[{"sig":"MEQCIAQpSdo8Hrd/qCduHRwF3lEJ1MV0LMwKyx0iQi2ZuKzFAiANjDFrcJ34u4cZ6z0qvzzjBcJRG5rjymMaLrpKrIQHxw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/signed","_from":".","_npmUser":{"name":"roman","email":"me@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"_npmVersion":"1.2.32","description":"Tiny express library for signing urls and validating them based on secret key","directories":{}},"0.0.3":{"name":"signed","version":"0.0.3","keywords":["express","url signature"],"author":{"name":"Roman Ditchuk","email":"me@ototak.net"},"_id":"signed@0.0.3","maintainers":[{"name":"roman","email":"me@ototak.net"}],"dist":{"shasum":"a1fada9278135b3edf4d0c98474fbef9004b50b1","tarball":"https://registry.npmjs.org/signed/-/signed-0.0.3.tgz","integrity":"sha512-/B+7vGh/8R4Tbe4TSVwJv5kbcQwI0dh53ipIkXZpWEh/Fh2xAMv1GsQhl/Xjrm6094YB28VZ73BuNoBYZXMKpw==","signatures":[{"sig":"MEYCIQDhOVSrWYYxpZDuemFCKFHzX9ab4p0tM57o6F7IqUygygIhAPM128CM297EroJ2RIKfL0D+f3fggdUOi1SP0UhGRuGY","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/signed","_from":".","_npmUser":{"name":"roman","email":"me@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"_npmVersion":"1.2.32","description":"Tiny express library for signing urls and validating them based on secret key","directories":{}},"0.0.4":{"name":"signed","version":"0.0.4","keywords":["express","url signature"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"me@ototak.net"},"_id":"signed@0.0.4","maintainers":[{"name":"roman","email":"me@ototak.net"}],"bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"054e65bd05c13bd1681bab9b104ef43a92c98c13","tarball":"https://registry.npmjs.org/signed/-/signed-0.0.4.tgz","integrity":"sha512-pycwQL2FTAjHrxAw0oNZtpuMAgEMVNc/hyCz330454IEwhLg9vmZ01ZeVtzveTpTrMq6OCGnZXh01LCSj7tOlA==","signatures":[{"sig":"MEUCIHvHKFHH/SAndTWppbaC7D1bwCdrCqJYm72m2ywTV5tcAiEA+Cq6HTJGETHv4woo+qkKV6jqDPZEuBCg+/lwxyEFDlQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/signed","_from":".","_npmUser":{"name":"roman","email":"me@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"1.2.32","description":"Tiny express library for signing urls and validating them based on secret key","directories":{}},"0.0.5":{"name":"signed","version":"0.0.5","keywords":["express","url signature"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"me@ototak.net"},"_id":"signed@0.0.5","maintainers":[{"name":"roman","email":"me@ototak.net"}],"bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"919e835b7154101eaee5b0c7e4063aaa9ff9b20a","tarball":"https://registry.npmjs.org/signed/-/signed-0.0.5.tgz","integrity":"sha512-Be7RAWdvjPR7WPyOGqKHuXjO8KrIF/aVF3hTV/7uRZmkAshHCoUs6pbN+cgsfhIwrPU8icJSN2Ol8VlAPBepag==","signatures":[{"sig":"MEQCIAwncXfykpDJro6XVfTkwoPylOIUB0sQYBwixQ6Ou23PAiBvA8psarSbf4QKcsMBt5FBrv2GwaeqlRrYtjwShwO/aw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/signed","_from":".","_npmUser":{"name":"roman","email":"me@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"1.3.6","description":"Tiny express library for signing urls and validating them based on secret key","directories":{}},"1.0.0":{"name":"signed","version":"1.0.0","keywords":["express","url","signature","sign"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"me@ototak.net"},"_id":"signed@1.0.0","maintainers":[{"name":"roman","email":"me@ototak.net"}],"homepage":"https://github.com/smbwain/signed#readme","bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"fce81cd1c7290fc785a22612ade9a514d6ecf7ae","tarball":"https://registry.npmjs.org/signed/-/signed-1.0.0.tgz","integrity":"sha512-fMY3smpJNDeY9Mfld8QIbcJVyuPvq+2oTHY+HwFtKeYPnfX0sTzbYUJvixJE6v82cB9GJuwau21RYI+QBz95lA==","signatures":[{"sig":"MEMCH05Muyb8HzjlNHd1DVkzAOkgkilbs2b9C3A9dylYv8UCIBTRrZPD40WAUsY/L5daWaO4y0JksqGtIAlfaht/B57T","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./dist/index","_from":".","types":"./types.d.ts","_shasum":"fce81cd1c7290fc785a22612ade9a514d6ecf7ae","gitHead":"17ebad700ce6b875576684dc53e0af4929835f06","scripts":{"build":"tsc","tests":"mocha dist/tests"},"_npmUser":{"name":"roman","email":"roman@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"git+https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"3.10.3","description":"Tiny express library for signing urls and validating them based on secret key","directories":{},"_nodeVersion":"6.6.0","dependencies":{"@types/express":"4.0.36"},"devDependencies":{"mocha":"3.5.0","express":"4.15.3","request":"2.81.0","typescript":"2.4.2","@types/node":"8.0.19","@types/mocha":"2.2.41"},"_npmOperationalInternal":{"tmp":"tmp/signed-1.0.0.tgz_1502029388250_0.7620539150666445","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"signed","version":"1.0.1","keywords":["express","url","signature","sign"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"me@ototak.net"},"_id":"signed@1.0.1","maintainers":[{"name":"roman","email":"me@ototak.net"}],"homepage":"https://github.com/smbwain/signed#readme","bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"25482d19971ad934545e3bc06404a09030128a6d","tarball":"https://registry.npmjs.org/signed/-/signed-1.0.1.tgz","fileCount":8,"integrity":"sha512-i8qz1ZU8WDrsRj+HeM6TU9ojtV1LzJV35QWxPo6fp/gtYpYccDOMpXTKpqE7U1ejBk8s6SXQvDIYoZhQcKerOg==","signatures":[{"sig":"MEYCIQDHQz6AtRUNYEOPgCKYkbjfAwocms2a54vFYpnrPDlimAIhAJqrIsnwbx2bUtKi23BvN8S9bNjI7F/HFJNzGrOew5s7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15198,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdA4VhCRA9TVsSAnZWagAAbeAQAJLGRavgRDYQdC5r8IyP\ndQ/zUMya36xkLEXJ2U8F60UkmpZpapSBBMIBWe49A06mUvtQfR5sQgXVxUm1\nWOPKAGTwJoWwhcnlGNjrggJefBdx2n4xwZZ34wAqsjuIU7S0cJOKV+gZk9zA\nxQ4HLdESnMbFYXPORds3HYEktsrFfo4R0heh1LiwkxQgrOm7pdh2o97rq4D3\ngf6SYPIkdFv5DQGZd7lAd1DZeVUTOyH4dczxlb3PnZLeN4BGxTzCu+4YH10D\nHqAAYzpPbJB9eH97X3K1OSpsJPDNsGYkYKaHC1lbDqAR9LzN1EzX8+/F86Kq\ndD/JzMitk2gWJxhYa1UZN8en7k1vwLDnT+LcPA2FsnBG0PFP3JtrI0J1H7a2\n0iDkB1dyRzOcTkdc5ocCtdWPUCtFZehR1ZEDqjqR2eSldDddIUjmnT3ST8bK\nXCOH+5EiEz7a/bSs//FHK0Vw0CkfUhNLr22BDytMda3I6lwrwswQacD9H/PC\nD4fbqCFqQ649/OQJHXJxaWVCiIzpGbyfXCgJm7ffqxgv8jgvZXZAcURRm1HM\nb95fQXRFwhjG/eGXnwIaL8/s2EBSfYGhYJ9f74Bd2bQUwIdNpAGtWknzjmt4\nv1mDL4loIm+yWjdBDt9upBZiR54X8EQJPNFM1raq0A//mlwdawTnmMJ/6U2i\n6Mc3\r\n=H9fX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index","types":"./types.d.ts","gitHead":"1053afdd250eb413b0bb6a18bb89382341a963b4","scripts":{"build":"tsc","tests":"mocha dist/tests"},"_npmUser":{"name":"roman","email":"roman@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"git+https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"6.4.1","description":"Tiny express library for signing urls and validating them based on secret key","directories":{},"_nodeVersion":"10.15.2","dependencies":{"@types/express":"4.0.36"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"3.5.0","express":"4.15.3","request":"2.81.0","typescript":"2.4.2","@types/node":"8.0.19","@types/mocha":"2.2.41"},"_npmOperationalInternal":{"tmp":"tmp/signed_1.0.1_1560511840648_0.4490409577529393","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"signed","version":"1.0.2","keywords":["express","url","signature","sign"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"me@ototak.net"},"_id":"signed@1.0.2","maintainers":[{"name":"roman","email":"me@ototak.net"}],"homepage":"https://github.com/smbwain/signed#readme","bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"af6423e7d8343b00d56e98d76c618271dcda1ee0","tarball":"https://registry.npmjs.org/signed/-/signed-1.0.2.tgz","fileCount":16,"integrity":"sha512-Ae7VBTni2dNZ74ibOZ2anFAP6nCz/uffPJfhou9jiqFm9YeygAXnw3Mds3421uljjrybXfcPBLgsAN7YqTG/bw==","signatures":[{"sig":"MEUCICmfi7wuwLlbae74wLieh2wEdrIpUKZ3D+GA3kLmdiORAiEA14RqFWKaXHB1gIVPYcGG6mgfg8jwZZnVX7rLWC7d5O8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34571,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/oG4CRA9TVsSAnZWagAAsq0P/3H2WI0tByWkkCPqC/y/\nSLeOjsdmUDBJoMwFH5kAjWcXM64yT6BUuKLljpJTNfEWPlv37ZIBjOZhqjLl\nQD3yPNuHTFN4jy5vqm5sPMGzxNxyG7G9fDb4TpPL/UHVMt/TIQ8mixQs74YX\nNOQy9aKI1vUpNOO65dZTrEoHYaCtDO20F4pdsx0ul82J3328E0E355xn7Ori\n77vyilVhAIMr3CoUwRgE7LhOd4XVHJaHCthSd8O1U2/uM/533RhnX30NLhKQ\n1WrZWWkw4dtYmp0pFGVUku1Va9nnop7IvnBVdPcLytSlAYtd57KdiBv7uMjh\n0JLA0lI8OpiLEKQ9KJEiRWg/7o+k9lFE19HgENU01hPhAzNTmIupTdGfI/qD\nXFQ0nmvNGVhBNFRN52QgvuMyWS2quYRQ1u/VBpuh1Hk8w1crqWx9pO0dq6+u\njZtmoA5EOAUZmh5wFIDmKt0Pbv7ZO8htz8QvZY1gIxU3Jhcqy4H16xogK8LM\nIMT9VG8YZzTNo7sIpbJF8kYaXuEqbAkXrmzf3EtJRjqHuagQIBA3IKmbfQIP\naYkzPomvwL/T6L+Dy3uECfQWPvX+nnxeWDT/Fysw0siBY8r+Rz/k4XQswfv/\n+uERD5yL9L+QL7/yrt31jCE+BJbHQdUmI3bMb2ywyjCFtSqvTrap+6Li2r4G\nzjRX\r\n=uQk0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index","types":"./types.d.ts","gitHead":"7adad7902407ce9b7aa2e9dea163ed73f9b220dc","scripts":{"test":"mocha dist/tests","build":"tsc"},"_npmUser":{"name":"roman","email":"roman@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"git+https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"6.13.4","description":"Tiny express library for signing urls and validating them based on secret key","directories":{},"_nodeVersion":"12.14.0","dependencies":{"@types/express":"4.0.36"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"3.5.0","express":"4.15.3","request":"2.81.0","typescript":"2.4.2","@types/node":"8.0.19","@types/mocha":"2.2.41"},"_npmOperationalInternal":{"tmp":"tmp/signed_1.0.2_1576960440180_0.39977858549740186","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"signed","version":"1.0.3","keywords":["express","url","signature","sign"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"me@ototak.net"},"_id":"signed@1.0.3","maintainers":[{"name":"roman","email":"me@ototak.net"}],"homepage":"https://github.com/smbwain/signed#readme","bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"ff305a3f21ac9d311c822875a6f15101646b4d07","tarball":"https://registry.npmjs.org/signed/-/signed-1.0.3.tgz","fileCount":16,"integrity":"sha512-snjdJaN1GIuMeylZRITxjSIbAUZeEpiyGmMhWa/fW06ijia1daro1YYhYqNADqHN4bDTidAVEoE3ctHT+nLswg==","signatures":[{"sig":"MEYCIQCclN10IujN++4nGdkqQLhmPZ2HMxFVPS0aIYMBpVKIpwIhAIm/BbUku7Ts+XTFSz/cPMJKNx1pkQWDNnGLWi7WA3m8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":34572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd/9E7CRA9TVsSAnZWagAAH8AP/iQqfuVTZt21hZF5F6Pa\nHlheRYWymYuALvlR/7/LW1WKWuUkpR9VVPewfB/+k/y1U2Lq4Relbqa/QF9N\ndQXZmj0pEtZfOua9RavHnSJlLWtwaiVVMGmz9qlFAm5kUAfF2GJB/6GIHfkN\nPSEts+tNignKBiLpmlLQlXlflNCR+sVHnXHiZAnqUm6PGU94sGs4EANxsnW2\nJga9WKRL5+1kdUj7YD1sXoNCrVMSDbTnIwXszeYu2IAA9A5kLymltQ7jhjqc\nUI0HPTvANp3nyGhWDwDiw+1JLpFY2H8tf1rdYYS40eY4ajhHld0P4aHpmHxb\naDD/lb/N6kYVKyhP0BY/oUsQfJWw4DquuvtnWccFjiAhP8Ep6VDvqUoWnBy6\nm6euHFfNkvhk24OWhXHbJPKXO0PlDs9Y9b5btxW9F0Hb/OoTMoABQtfpn672\nbdMxB4uMYnp77mpdHqvdHge5f5FA8ZheW37quDXKnCWOtB2960/h0fDgV9wd\nadGqg+3iYs1sFkoS1slbjWQqSk37SR4jk/xTEUIyoNdeNpHvncy5sD9/VAff\n4bCVwt8+Kw9VHXixdkOjK7x4yFHoCGXN1n1uoa538CRDy05+BdHxdRLpnTsP\ndB86HOoHIyeWPwZIWRDkc0sIG6JxC/4qjf6OSydY5WPS5NSVW7fzOnVmykb0\neF0d\r\n=+0ay\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index","types":"./types.d.ts","gitHead":"730d71fc0f7f0fd0638eeef0f834dbfe9a8d7426","scripts":{"test":"mocha dist/tests","build":"tsc"},"_npmUser":{"name":"roman","email":"roman@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"git+https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"6.13.4","description":"Tiny express library for signing urls and validating them based on secret key","directories":{},"_nodeVersion":"12.14.0","dependencies":{"@types/express":"4.0.36"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"3.5.0","express":"4.15.3","request":"2.81.0","typescript":"2.4.2","@types/node":"8.0.19","@types/mocha":"2.2.41"},"_npmOperationalInternal":{"tmp":"tmp/signed_1.0.3_1577046330847_0.9776623827218955","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"signed","version":"2.0.0","keywords":["express","url","signature","sign"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"roman@ototak.net"},"_id":"signed@2.0.0","maintainers":[{"name":"roman","email":"roman@ototak.net"}],"homepage":"https://github.com/smbwain/signed#readme","bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"c64321c4bb63749abc7167ffd24750c10504f509","tarball":"https://registry.npmjs.org/signed/-/signed-2.0.0.tgz","fileCount":15,"integrity":"sha512-r4mIIhErSEphRRizBhkhr4OfCV2MA/hZCFo4JZkrRD4G1MLCvRsS4z0Fqke68d+1Rl1gqHhiHJ2e1iKlTZaIXA==","signatures":[{"sig":"MEQCIA67pUDnbAql68IrCOLJodvmqBdRbaF6lcNwdm3MSLOlAiA6UpKK/RyRuy3cxWwWhwSw51E4kuDbP60WQWmk49WIMg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39213,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4tYTCRA9TVsSAnZWagAAV7QP/A+toe8pYCuros8YdHus\nLurWmcX5vMQey03u9cwlGQvad7i8kCVbKqj9ZxLLUSpCMwV92Gn6d4EB+DIN\n7n4wfzoMHwZeo0bA87f/4dK4v/GEVz7lhoxFPbDcCKBD2npMiPeyAuEBB6vH\n4XAhppr1n3PBZJ6Jr83LbbXO3/8jDheEjXSqBs9uyjLDNNnMzwVx7dnAMFSH\nyKQsdaCRVGYAN7sJv4r+60quqfhnDGMQN1aHngme+4YUuNhZUE4/M7qu5Gji\nsIEuMtAYiyaKQEH//mhcsSy5LjbY/pmBbYxWhi9WKEajZT7VorqUb3NFyPqU\nr0GgMH4BHNeotjdPPk0wsxwfkbmI1jLgaDIVdS60MR601DUVpwuP/Ylgyfsx\nIdNRfxZim5ywUzkZInET2gVGA45dImVaaabCLgtJdp6O+3/DzOo5ab/R99X/\nu5Z1cVrMhZv6fDHBL43gxcWJVA2YKwUsVwAv78sm362YVPvcRUaZk2y03Mq6\n+uWTenDSQbKcPwxNp0xG22NJeXaMqno2kP7rqVg+awyvWHQ6tcEHoi564IyQ\nt6CCRpbyHe9vcxq2u2U0fRE9UjnQgtZ7lJ3YK+9melntcHP8z0eAsxV3Kfzd\nCPa7U62lNTUW8NnNKox0TsUjyIyRIpEOb+IKyNp+xYNkV4pk4OIGNB4F782M\n/CIw\r\n=V5DZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index","types":"./dist/index.d.ts","gitHead":"af302d46b18952835569740690e9e2306d76705c","scripts":{"test":"mocha dist/tests","build":"tsc"},"_npmUser":{"name":"roman","email":"roman@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"git+https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"6.14.15","description":"Tiny express library for signing urls and validating them based on secret key","directories":{},"_nodeVersion":"14.18.3","_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.1.4","express":"^4.17.2","node-fetch":"^2.6.1","typescript":"^4.5.4","@types/node":"^17.0.8","@types/mocha":"^9.0.0","@types/express":"^4.17.2","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/signed_2.0.0_1642255891698_0.5521361997595848","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"signed","version":"2.0.1","keywords":["express","url","signature","sign"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"roman@ototak.net"},"_id":"signed@2.0.1","maintainers":[{"name":"roman","email":"roman@ototak.net"}],"homepage":"https://github.com/smbwain/signed#readme","bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"67a90ed1887905bc6878a5aea19a9437a53c4abf","tarball":"https://registry.npmjs.org/signed/-/signed-2.0.1.tgz","fileCount":15,"integrity":"sha512-Iv7QXEiEw7TJFzvuAqZtWLUXgyKzid20rzTXTNb6K+IaCQtkcdNl86WuMsN9v+gQjQagiMOgRCxRbA3EZfQ7EA==","signatures":[{"sig":"MEYCIQDjQueXB7LNUR5vGNPrbMyCsna0jeR02bVCqK5x9UUOLAIhAO7/b89v+ViIJI2wkxIU4KRsAO0GlKo41SUA/zPohnTk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39237,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4txqCRA9TVsSAnZWagAAKyoP/Ar7yBcfEAdTKRE+S33U\nb8r86+YZZhhS2Ryb+iiTI7IYoFA0AROSM08dg9c7oW6Epu3Wh5ThfjYGb5VV\nrZ1+pbDPtdpzKbWqbDcVA6JX+XtAP5yz7IfukqXXJqKw62D8Kq+Uzug1UIbC\njTKSlZIEHgfTk7iCRBqRbelqFmeG/qAsO/id0lUmLHYqL5iptL9qipIjh5Hx\nWQVTC5YIOAiUeJGmh4c1V5RZjhoXOJ2IGRMtyFtVmQq/z4Lxg3Ds/bngg4wA\n+GtdSNE09MUo2+/6fRMFhq8PJe8l0m5k8Y1nsPp+0yvlU53pgG737fXl3v/y\nEUWTduzvFZpzUZHHLPAz18/WjkaJuHl7/GNKY5u65A8eHrSz67uEgS+WVOSQ\nJPG12DxG7yzI6G/ALGszVtRf1gcyO5SJoQK37ot/mROmufs7XhIUe/MDGiDt\noa9atTvDlvB5QkXCjGzKtS86wdFiRfKyUzrf5Zs3juijQk+4Ie2bYk+Th8XD\nFua0cKzBhigsvGDxZma+bmnYIWWWLoj41jGU09ZEG2W4re7GOS8418zN9S6j\nXDtlSTd2I1ZAMZkwMkbM8RpHeaz8qBzpw9hQ7hihenmrkRk5d1iovO/2q6w9\ntvEfnxQ02Wq+mrJfLtzDscTZfrwlgco8BoBfQ+9TsqoRfBOB85N3bwBCfDrl\n7aZI\r\n=HkdY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index","types":"./dist/index.d.ts","gitHead":"0fe23fa49b18697a0a667b83a8289457f50014a2","scripts":{"test":"mocha dist/tests","build":"tsc"},"_npmUser":{"name":"roman","email":"roman@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"git+https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"6.14.15","description":"Tiny express library for signing urls and validating them based on secret key","directories":{},"_nodeVersion":"14.18.3","dependencies":{"@types/express":"^4.17.2"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.1.4","express":"^4.17.2","node-fetch":"^2.6.1","typescript":"^4.5.4","@types/node":"^17.0.8","@types/mocha":"^9.0.0","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/signed_2.0.1_1642257514544_0.9261270571219264","host":"s3://npm-registry-packages"}},"2.0.2":{"name":"signed","version":"2.0.2","keywords":["express","url","signature","sign"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"roman@ototak.net"},"_id":"signed@2.0.2","maintainers":[{"name":"roman","email":"roman@ototak.net"}],"homepage":"https://github.com/smbwain/signed#readme","bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"4bd28bdafe311f758ce164f505cf9cba01e97a06","tarball":"https://registry.npmjs.org/signed/-/signed-2.0.2.tgz","fileCount":15,"integrity":"sha512-IXTDgYsCrftKqNP8NTyGIQxhF2Zs3dq8XBE7e5EJ9YoHgs+toCacRpiBudXnwHcZEIJZsmfDW3Xx21h3dOxOVQ==","signatures":[{"sig":"MEUCIQCl/jH6Xu7uAnJo6pP6t1O4I2B5cxNeKnDILGLk+SkDQQIgeVDjaQpq+6aQEaYkGKHw8c0Xdkt1ZwSkb/Y/QZMb01Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39330,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh4t3ZCRA9TVsSAnZWagAAMwYP/1i9P+Aps/8FVHfn4ldN\n7sGwI+wY3WoZ8BDo1PxMFZtdGfRtdhVr/5cQkrprDbjDrWT4jEyijhdn81IL\nIoKmZoRcFa0dSve1apk9U5m41Jcrv0JfLG/H0GM4HYW0Nnme+2N67EWKAa1w\n6kXbwswkgW83vt5iDaVUkAzGVPHASsHrPzKDqDVc6L3nuBTELTuB5OJfKJGg\nQjiREBunijIjf2WipAtPoqoMlLEldf+UxzIhNML8aJ+t8OzFY5wWLYwopniZ\nTDOCPilXFeeZl1duOC/XULD1a1pu2yxj5dGfNCmjDCDpdRBTpDmvYGuqfTJ1\nt2oSx7T28XGbaPCuKuo8zk/KqWKZFeRZu+d1Az+n9TLiLhHyv1mcF9EM3KKm\nzaLvYxd+6uMel2Uma35ekenjotdE0Em3NNScVr7x3IjdmeNSKQ8BwIPhW3p/\nzg2mnOWnt7/FvD0qjFM4RgME8l7e49WKRSFvmOJgVl2ixF1yV+ouRVADCDaG\nkqD31YQNIdiyT6+ZIbcOKYNL0uX26qUvUsQ9iCfmEC8XH6Iojj0XvtZoG3fb\nN+zELtKaZRtB+7w3KFl1dqLyuhb2F6FuVT3Ngl0N+4tsYUIGtrOrWDfsJHXt\nZR2lfWXmcoZ5mQVdNoBNtOKdgfP35pcQJ81MGh5zfc6e/jtKgXM4OBG9ifmz\n4n5t\r\n=FyyO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index","types":"./dist/index.d.ts","gitHead":"b9c1b0404c8bb4fec3fce9dbf26edb94bfd9b712","scripts":{"test":"mocha dist/tests","build":"tsc"},"_npmUser":{"name":"roman","email":"roman@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"git+https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"6.14.15","description":"Tiny express library for signing urls and validating them based on secret key","directories":{},"_nodeVersion":"14.18.3","dependencies":{"@types/express":"^4.17.2"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.1.4","express":"^4.17.2","node-fetch":"^2.6.1","typescript":"^4.5.4","@types/node":"^17.0.8","@types/mocha":"^9.0.0","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/signed_2.0.2_1642257881317_0.6701873928635163","host":"s3://npm-registry-packages"}},"2.0.3":{"name":"signed","version":"2.0.3","keywords":["express","url","signature","sign"],"author":{"url":"http://ototak.net","name":"Roman Ditchuk","email":"roman@ototak.net"},"_id":"signed@2.0.3","maintainers":[{"name":"roman","email":"roman@ototak.net"}],"homepage":"https://github.com/smbwain/signed#readme","bugs":{"url":"https://github.com/smbwain/signed/issues"},"dist":{"shasum":"e7108607ed0eba554134d13a5a78815d35b198a4","tarball":"https://registry.npmjs.org/signed/-/signed-2.0.3.tgz","fileCount":15,"integrity":"sha512-fZWf2TDZJOKkXmBphwwmWpY+hXVyTAFipzcZRdAczmsrtmfvO4r6ZDs627e2iVBO/X9UoYOMcZyNRFOitPoSXw==","signatures":[{"sig":"MEUCIQDRAMLTaRDJmBDSC1feIZDL6drORRvcImLYYt5UslXiUAIgWUi1BiMytuhBolN0edzMOVk+DkfAoBTRieu6Pqxdp64=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":44295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5I7UCRA9TVsSAnZWagAAWdAP/jqbTCmuJyqRhMNwcuHO\nsdJl0pzbf1wk7UXqTc9GGh6pRA+MAbiMlYVF848bEpYujVWOVqbP7hesqsxa\naqMkjsY6Xn0ZTj02z9iVJHX+91aIUKMfCufY3ehqMLZ/X6FfthUNffs3fZ4d\n+QBSdPwnM6yPKchWspaZ5EB6LS3a4HQiX9by0b0ZBbzvHGWAfP/HxkkR7AX1\n3FpkKNCywHbFcZQ3t9YHMFSRDOeV7MFABQENonSAo1eXnp9Qy6/ucIIwqj4f\nOVyvq7R3vFbWWpGqxHJjlyDzFk7CNa5uM+RYX9UrLTbnxxiNDaqTq1E1Rrzv\nhCdpuj5PU2P62xosQHfUK+Sa514S77CYXW/JVe2sXIP2Nu+Qlp5hTonf3ikM\nSP32K90Oh9MUIBmGXov3hH2PeA0c2p4RC6Gbh3CF1N8DwFBGAC9ll8JuD6dG\nOS9zHQNbciCaTKLaI3FfoDDGxWLMgQgQ/PmbxYSyz221hGjvBs0U9TNM4KYy\nY1/dL1YoWv/9kUt0AP+HxLdRVCHvV4pSRv4VdB3Tw9nXOrZO0mmqLC1eyulH\nDswoNzQGdbUxFLFlrFpO15qQj31yfTj6pCPG6hckfXs1uS/9EMVFLjvh9hEa\n6N2B1MiwxV+uSxY+kFbXBTMKSgvVzkwuwx0h9aYkFmUasTbovvtGavWMiEk8\nN7Pe\r\n=3ZhL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index","types":"./dist/index.d.ts","gitHead":"d905f863eecd124a0ad9eb1b176413a1e271f7b8","scripts":{"test":"mocha dist/tests","build":"tsc"},"_npmUser":{"name":"roman","email":"roman@ototak.net"},"licenses":[{"url":"http://www.opensource.org/licenses/MIT","type":"MIT"}],"repository":{"url":"git+https://github.com/smbwain/signed.git","type":"git"},"_npmVersion":"6.14.15","description":"Tiny express library for signing urls and validating them based on secret key","directories":{},"_nodeVersion":"14.18.3","dependencies":{"@types/express":"^4.17.2"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^9.1.4","express":"^4.17.2","node-fetch":"^2.6.1","typescript":"^4.5.4","@types/node":"^17.0.8","@types/mocha":"^9.0.0","@types/node-fetch":"^2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/signed_2.0.3_1642368724325_0.7496391742639015","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"signed","version":"2.1.0","description":"Tiny express library for signing urls and validating them based on secret key","keywords":["express","url","signature","sign"],"scripts":{"build":"tsc","test":"jest"},"bugs":{"url":"https://github.com/smbwain/signed/issues"},"licenses":[{"type":"MIT","url":"http://www.opensource.org/licenses/MIT"}],"author":{"name":"Roman Ditchuk","email":"roman@ototak.net","url":"http://ototak.net"},"repository":{"type":"git","url":"git+https://github.com/smbwain/signed.git"},"main":"./dist/index","types":"./dist/index.d.ts","dependencies":{"@types/express":"^4.17.2"},"devDependencies":{"@types/jest":"^29.5.13","@types/node":"^22.5.5","@types/node-fetch":"^2.5.8","express":"^4.17.2","jest":"^29.7.0","node-fetch":"^2.6.1","ts-jest":"^29.2.5","typescript":"^5.6.2"},"_id":"signed@2.1.0","gitHead":"2c0bf6001f595a267fd795405bb9f0a414a5b073","homepage":"https://github.com/smbwain/signed#readme","_nodeVersion":"20.17.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-QEw2xsFVbR+4xy+7OeUpMCHlJdR+UDikzJuDrrHXtTgcVvXDWDgbcbvgZV13aVkHVyosuuZPAUQtxgTthb0vRA==","shasum":"f27bab1b1698f706a892f529bb74812d39b27419","tarball":"https://registry.npmjs.org/signed/-/signed-2.1.0.tgz","fileCount":13,"unpackedSize":33609,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHxe5AAzyoYtlT734aNzZ6pfmKjeT2XAuIV97LN80MThAiA0MOZtEuK3X9ey4/r1NqzyXtGVL9TF/XqIKuoKXVMOzA=="}]},"_npmUser":{"name":"roman","email":"roman@ototak.net"},"directories":{},"maintainers":[{"name":"roman","email":"roman@ototak.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/signed_2.1.0_1726823642350_0.2494127507582562"},"_hasShrinkwrap":false}},"time":{"created":"2013-07-19T21:12:32.539Z","modified":"2024-09-20T09:14:02.792Z","0.0.1":"2013-07-19T21:12:36.150Z","0.0.2":"2013-07-19T21:17:02.855Z","0.0.3":"2013-07-19T21:25:49.706Z","0.0.4":"2013-07-20T09:44:55.636Z","0.0.5":"2014-03-03T22:33:08.130Z","1.0.0":"2017-08-06T14:23:09.313Z","1.0.1":"2019-06-14T11:30:40.784Z","1.0.2":"2019-12-21T20:34:00.394Z","1.0.3":"2019-12-22T20:25:30.941Z","2.0.0":"2022-01-15T14:11:31.869Z","2.0.1":"2022-01-15T14:38:34.831Z","2.0.2":"2022-01-15T14:44:41.545Z","2.0.3":"2022-01-16T21:32:04.460Z","2.1.0":"2024-09-20T09:14:02.534Z"},"bugs":{"url":"https://github.com/smbwain/signed/issues"},"author":{"name":"Roman Ditchuk","email":"roman@ototak.net","url":"http://ototak.net"},"homepage":"https://github.com/smbwain/signed#readme","keywords":["express","url","signature","sign"],"repository":{"type":"git","url":"git+https://github.com/smbwain/signed.git"},"description":"Tiny express library for signing urls and validating them based on secret key","maintainers":[{"name":"roman","email":"roman@ototak.net"}],"readme":"Signed\n======\n\n_signed_ is tiny node.js library for signing urls and validating them based on secret key.\n\nIn short:\n\n- With the help of this library, you can sign url, which will be used by user later.\n- It verifies signature, when user uses this signed url. Ready to go \"verify\" express middleware included. (Although you can use this library without express.js as well)\n- No session needed. No additional server storage needed.\n- You can sign url and verify signature in different services/applications (as long as secret and hashing algorithm are the same).\n- When signing an url, you can specify some additional limitations: allowed http method(s), user's ip and expiration time.\n\n> Important!!!\n> \n> Urls signed by version 1.x.x of this library are not valid with 2.x.x\n\nHow to use\n===========\n\n```bash\nnpm i signed\n```\n\n### Let's create signature object based on secret.\n\nSignature object will be needed later to sign url, or to validate it.\n\n```ts\nimport signed from 'signed';\nconst signature = signed({\n    secret: 'secret string',\n});\n```\n\nPossible options:\n  - `secret: string` It MUST NOT be known for anyone else except you servers.\n  - `ttl?: number` Default time to live for signed url (in seconds). If not set, signed url will be valid forever by default\n  - `hash: string | HashFunction` What type of hash function should be used to sign url. `sha1` is used by default.\n    But you can pass any other algorithm supported by [crypto.createHash()](https://nodejs.org/api/crypto.html#cryptocreatehashalgorithm-options).\n    You can also pass your own hashing function `(input: string, secret: string) => string`.\n\n### Let's sign url\n\n```ts\nconst signedUrl = signature.sign('http://example.com/resource');\n```\nYou also can optionally pass object with options:\n\n```ts\nconst signedUrl = signature.sign('http://example.com/resource', {\n    method: 'get',\n});\n```\n\nPossible options:\n\n - `method?: string | string[]` List of http methods (as array, or separated by comma), which can be used.\n   If not passed - any http method will be allowed.\n - `ttl?: number` Time to live for url starting from now (in seconds).\n - `exp?: number` Expiration unix timestamp (in seconds). Can be passed instead of ttl \n - `addr?: string` Only this user's address will be allowed.\n   You can pass user's address here to prevent sharing signed url with anyone else.\n   \n### Let's verify signature\n\nSo now, when you sent signed url to user, it's time to add verification for endpoints which should be accessible only with valid signature.\n\n```ts\napp.get('/resource', signature.verifier(), (req, res, next) => {\n    res.send('ok');\n});\n```\n\nYou can also pass object with additional options to _verifier_ method.\nPossible options:\n\n - `urlReader?: (req: Request) => string`\n \n    By default verifier constructs original url as `${req.protocol}://${req.get('host')}${req.originalUrl}`.\n \n    But if you use some kind of reverse proxy/load balancer/etc, external protocol/host/port can be different from those used by application.\n    In that case you can pass you own method to build right correct external url to verify signature.\n\n    e.g. `req => https://api.exmaple.com${req.originalUrl}`\n - `addressReader?: (req: Request) => string` Function which will be used to retrieve user's address (for the cases when you added address to signature).\n   By default, `req => req.socket.remoteAddress` is used.\n - `blackholed?: RequestHandler` Handler to use in the case of wrong signature.\n\n      (It's added for backward compatibility. It's better to not use it. See [Error handling](#error-handling)).\n \n - `expired?: RequestHandler` Handler to use in the case of valid, but expired signature.\n\n     (It's added for backward compatibility. It's better to not use it. See [Error handling](#error-handling)).\n\n### Using without express middleware\n\nIf you don't want to use it with express, you can just validate url with .verify(url, options) method:\n\n```ts\nconst url = signature.sign('http://localhost:8080');\n\n// ...\n\nsignature.verify(url); // returns \"http://localhost:8080\" or throws error\n```\n\nor:\n\n```ts\nconst url = signature.sign('http://localhost:8080', {\n    method: ['get', 'post'],\n    addr: '127.0.0.1',\n});\n\n// ...\n\nsignature.verify(url, {\n    method: 'get',\n    addr: '127.0.0.1',\n}); // returns \"http://localhost:8080\" or throws error\n```\n\n### Error handling\n\nBy default, if there is bad signature, verifier middleware throws SignatureError to the express _next_ function.\n\n403 http status will be sent for bad signature and 410 if signature is expired.\n\nYou can handle these errors yourself, using express error handler middleware:  \n\n```ts\nimport {SignatureError} from 'signed';\n\n// ...\n\napp.use((err, req, res, next) => {\n    if (err instanceof SignatureError) {\n        // signature is not valid or expired\n    }\n});\n```\n\nOr you can differentiate bad signature and expired signature this way:\n\n```ts\nimport {BlackholedSignatureError, ExpiredSignatureError} from 'signed';\n\n// ...\n\napp.use((err, req, res, next) => {\n    if (err instanceof BlackholedSignatureError) {\n        // signature is not valid\n    }\n    if (err instanceof ExpiredSignatureError) {\n        // signature is expired\n    }\n});\n```\n\nExample of application\n----------------------\n\n```ts\nimport * as express from 'express';\nimport signed from 'signed';\n\n// Create signature\nconst signature = signed({\n    secret: 'Xd<dMf72sj;6'\n});\n\nconst app = express();\n\n// Index with signed link\napp.get('/', (req, res, next) => {\n    const s = signature.sign('http://localhost:8080/source/a');\n    res.send('<a href=\"'+s+'\">'+s+'</a><br/>');\n    // It prints something like http://localhost:8080/source/a?signed=r_1422553972-e8d071f5ae64338e3d3ac8ff0bcc583b\n});\n\n// Validating\napp.get('/source/:a', signature.verifier(), (req, res, next) => {\n    res.send(req.params.a);\n});\n\napp.listen(8080);\n```\n\nLicense\n=======\n\nMIT\n","readmeFilename":"README.md"}