{"_id":"@aland20/url-signer","_rev":"9-da3071c252d531abf9ea37072f730240","name":"@aland20/url-signer","dist-tags":{"latest":"0.2.8"},"versions":{"0.2.3":{"name":"@aland20/url-signer","version":"0.2.3","keywords":["signature","sign","url-signer","security","hmac"],"author":{"name":"AlanD20"},"license":"MIT","_id":"@aland20/url-signer@0.2.3","maintainers":[{"name":"aland20","email":"alandkurdy2013@gmail.com"}],"homepage":"https://github.com/AlanD20/url-signer","dist":{"shasum":"f57e822711b69f17769b0cfc6a9e952859ea82c2","tarball":"https://registry.npmjs.org/@aland20/url-signer/-/url-signer-0.2.3.tgz","fileCount":12,"integrity":"sha512-bO1i/WvXSrvDrcQ5fSL7HAB8MiyWIr5meEpf3JnwpiV5AbpARqTcvu1mPqdE3JxcRo2N3FvaJglQ86Hl+wrygA==","signatures":[{"sig":"MEQCIHBU/zsYAhLCagYTl3WIii+CbqO6Np/bYBofwPNHVrSSAiBg4BbUPjil7X9U+bARCXcwvrnWz7XHhnt1FxQoyTULNA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24735,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjfoaDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqMoA/9H3FFT+Lz63xUAJDB3le7Zaf15ValqDiUwdkYwaXhOl/X/QKW\r\nNNL5Xkm8IIeYbHvTKohBHNrzTCX3CB8y5ZrxUyYVaz72W2KYiI0cOpXyK8pe\r\nIdUfGd9GAinIMolR8xc2sIcHeZgRRI6EYUy6igoC5Bko4EDr7eDWjh/Z2hAS\r\nXEsTQmi8n+rqxJ9yOs0qcQRc51yab/lPgEI4R+CGSE58TExZmh4wNCdYd6Zk\r\n0Rqf8mzQ4UmJEaHOEAYmZqLC4soSIY/oskmWR93QlRJse8hWVuX4XroQ+TbO\r\ncAYcCBSBZSuRQcYvGQxHrm9JYkUtgtDZDcbRNALCou69VW+Va6LIZFKrYPH0\r\niYWSiekBP1TkjDmVncTrQhoeYX0YcJVAImMXfa7/cNnCT3YFyd+yMRge61uA\r\nfqDNVBo/JmxmqV4u71slL+GF3Ib1U7k2qpWy53+YTey/9E5uS3SXNtG8UNkx\r\nwPQMOUFWLhe3+3G1aLeEWYR0fu/6iSBp/mYu+fffR9IbvrEgNau/X4yEKmKK\r\n3MosGQrblTPS6PGxi2bwJxBkXAbBfn0JGV/osmSErxSHrKPrhSA3G16Di6jV\r\n+H2EfI6kojzUFycEAgp6eVam0ZCoOVCmfbErEL+dSzByEJivtm9jZ73HAdhQ\r\nbcnhp5ZSDFKR6UEb3pAXRRlVnX26Jcq5WMs=\r\n=sCWo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","husky":{"hooks":{"pre-commit":"tsdx lint"}},"module":"dist/url-signer.esm.js","engines":{"node":">=14"},"gitHead":"743f776c50bc3b751f59f1d89ae2e54a85e81670","private":false,"scripts":{"test":"tsdx test","build":"tsdx build","start":"tsdx watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"aland20","email":"alandkurdy2013@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"_npmVersion":"9.1.2","description":"Simple, light-weight package to sign URL using HMAC hash function and in-memory caching.","directories":{},"_nodeVersion":"16.18.1","dependencies":{"@isaacs/ttlcache":"^1.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsdx":"^0.14.1","husky":"^8.0.1","tslib":"^2.4.0","typescript":"^4.7.3"},"_npmOperationalInternal":{"tmp":"tmp/url-signer_0.2.3_1669236355299_0.1596685948574832","host":"s3://npm-registry-packages"}},"0.2.4":{"name":"@aland20/url-signer","version":"0.2.4","keywords":["signature","sign","url-signer","security","hmac"],"author":{"name":"AlanD20"},"license":"MIT","_id":"@aland20/url-signer@0.2.4","maintainers":[{"name":"aland20","email":"alandkurdy2013@gmail.com"}],"homepage":"https://github.com/AlanD20/url-signer","dist":{"shasum":"e55d7f0323545304a53b53ea927d8a4205de1fee","tarball":"https://registry.npmjs.org/@aland20/url-signer/-/url-signer-0.2.4.tgz","fileCount":9,"integrity":"sha512-NEkryGjpnsvK5MCDgs7bDvHVHU7KkOg6ncjo5u2RqjnEPIQWnJHzwKRi//yHPl9iWnOt7mS0V61aANMC86Pa8g==","signatures":[{"sig":"MEQCIEhirrygrkgwzYdj25Bk65cIPp5FxwpLQ9UG+vgobuBzAiB2hsT2iiRIvmF+R4daa8O3n7hJzzYMGqctKr7vGDPx5A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtVhXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmofBBAAkyXWbCVLnoGD/S7QWg5Mc0B24RtWRK3KZLVrUDIUlg+crAYG\r\nj7fxbnXJ4PF7WaHw+g2mpj7jIm8aSmDbtFF6Vpim158IkM1zK8RYdOlNjGkc\r\nAjDc37xjEdWlZxWG8UxNyEUYCVb5ArYlmJcw1oSPvHSy0RtXpUDir0WfX+W5\r\niJ5NCV7RH4IjkFyNZAmfU495Gid3WhqGQlMvSHft4TuYmUfR9BUwo41//FNo\r\n0CZsA+Dl5dFWzqawVFLjy/l6guVNMLoCKxyg2GM1uM/CRFkCK5ToaKPMhrhW\r\nSG5BOsslgxzEUvfuoOJZUBBXf0KlvuZ87f8GV2wcva+KgQEbBTMvWs8A0p+z\r\nUyp+hPLIV1joybkbyEYM2CdEoXsZ7RLGCCmNZVl/WbriRMEdRFZMGKMqImF/\r\nKCZPs1GR2G2kkIBTqTyl1R1O0G3omVS0jn5VtwPp21pkQQVRfOtsv/Qjmv2R\r\nUMuI17Wkj+9YTVxYBbSY1ZXT+tI+FH34Gfwfq7ihJyveJz7ZL0sly+X2B1Rh\r\nyClGmyI784H8dxB1HPmwkmvLjAoIRCH2mZsBqJkirrs/V2d7RoeeYQXqb0S1\r\nCDaRxIfLuU8ho9ePoN73xwktIP8vaPdxJOft9BlzBnAUab5outqZCxYVjZrD\r\nyDMpFaBhsdF/HYcg5OkB0XiEOGIXpG+cJfY=\r\n=qrJH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/url-signer.cjs","husky":{"hooks":{"pre-commit":"tsdx lint"}},"module":"./dist/url-signer.esm","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/url-signer.esm","require":"./dist/url-signer.cjs"},"./package.json":"./package.json"},"gitHead":"d2a53ef95336602ee048eef0224766c66ac66c43","private":false,"scripts":{"test":"tsdx test","build":"tsdx build","start":"tsdx watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"aland20","email":"alandkurdy2013@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"_npmVersion":"9.2.0","description":"Simple, light-weight package to sign URL using HMAC hash function and in-memory caching.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"@isaacs/ttlcache":"^1.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsdx":"^0.14.1","husky":"^8.0.1","tslib":"^2.4.0","typescript":"^4.7.3"},"_npmOperationalInternal":{"tmp":"tmp/url-signer_0.2.4_1672829014824_0.7398188510188908","host":"s3://npm-registry-packages"}},"0.2.5":{"name":"@aland20/url-signer","version":"0.2.5","keywords":["signature","sign","url-signer","security","hmac"],"author":{"name":"AlanD20"},"license":"MIT","_id":"@aland20/url-signer@0.2.5","maintainers":[{"name":"aland20","email":"alandkurdy2013@gmail.com"}],"homepage":"https://github.com/AlanD20/url-signer","dist":{"shasum":"6faaaf493391e34d5dec2b33d7d8cdecb6965839","tarball":"https://registry.npmjs.org/@aland20/url-signer/-/url-signer-0.2.5.tgz","fileCount":9,"integrity":"sha512-tBoKwrLCR++p/jsB7vso7z7zLWR05bKmilBj6fTS5IbsYiPTHqxpS5RI/PWbURC1Z9As184ddzeQAMTeCuIB+Q==","signatures":[{"sig":"MEUCIQC5TBWcvW0xGBkXk5Ywg0NlDFBgODlWJUN/ztEsB29xJQIgb9SMHGwlQNeICaoN9s2GxkOKEe4zOufHMTSnpS7qoYw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14382,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjtVyqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmom8w//SrZlgTdCpQgTdZKFzhM7EaO4Jr0xPphNDtgnvb2FT53pU4pQ\r\njBy/Sj511vcWf1EJ85aV0gny1JKEsc4VDKN+whxTnfCuO7Jog8z8Q0R1YDM3\r\n/5V8PQkgmlw797EgGqy8do421zQvrTYDK6qBwcWFQ6hHE9JBlah3z3GClLa2\r\nZOrDdS5w+oxaz4PcDgPnAOEx2PljzjJo44dugvIwNpLKNnReCoPw/Fcy6DgI\r\nWUM53kUcAfDb2vvkTunpZXJttMy0liAUxSIXPALLriU/8ZAw1ml4Xz5gcNVB\r\nADH2Q97U+Igietp9zI13cU5fc79/S1M55ZtS2H5yLLPqF9WPbOKhFrrMyJ8x\r\nNWCxkNVIIO6eZDylNOJ1sWxGhXiZX8syS/4+IqCarpFliu2P9Ilo93gJMf1a\r\n3M+WxRhnPQ+yJaoH6yd8JCqF675W8mjJ7M/BogefZlbZ/JsH4bsMYQMCO7Z8\r\nvJj3IHyVStzM2nHtuEUgKRy3ExmKP7ThMXxtWgdc0BTkR1uvD70ZdmRYb5hP\r\nBFlseBMXZIT9242+DDSWfsXZPJR1HDEfHHcB7eseOxnIu9GaYTtyfosq22h5\r\nMEQnVqro3AfKG57h6/RPfpNkgb1fOqu5IObyp3kbxiuS5dKcFrC2r1K7eBdu\r\n/zDZ2VYinyqgYH2lE6Efvayye0EqjvTmgdA=\r\n=K3lG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/url-signer.cjs","husky":{"hooks":{"pre-commit":"tsdx lint"}},"module":"./dist/url-signer.esm","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/url-signer.esm","require":"./dist/url-signer.cjs"},"./package.json":"./package.json"},"gitHead":"d2a53ef95336602ee048eef0224766c66ac66c43","private":false,"scripts":{"test":"tsdx test","build":"tsdx build","start":"tsdx watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"aland20","email":"alandkurdy2013@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"_npmVersion":"9.2.0","description":"Simple, light-weight package to sign URL using HMAC hash function and in-memory caching.","directories":{},"_nodeVersion":"16.19.0","dependencies":{"@isaacs/ttlcache":"^1.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsdx":"^0.14.1","husky":"^8.0.1","tslib":"^2.4.0","typescript":"^4.7.3"},"_npmOperationalInternal":{"tmp":"tmp/url-signer_0.2.5_1672830122549_0.902818330888637","host":"s3://npm-registry-packages"}},"0.2.6":{"name":"@aland20/url-signer","version":"0.2.6","keywords":["signature","sign","url-signer","security","hmac"],"author":{"name":"AlanD20"},"license":"MIT","_id":"@aland20/url-signer@0.2.6","maintainers":[{"name":"aland20","email":"alandkurdy2013@gmail.com"}],"homepage":"https://github.com/AlanD20/url-signer","dist":{"shasum":"5e2df4a4cc2e908a983170ff2bccd7376c27e073","tarball":"https://registry.npmjs.org/@aland20/url-signer/-/url-signer-0.2.6.tgz","fileCount":5,"integrity":"sha512-yxAFGJZ0Xk4bDqa47oe+M7VZJxlfopWYTKXmu0nxMl7RPQXpn7pm5Os6FdydEQwMmH6/Qa4ZiusnU8LvzXemlg==","signatures":[{"sig":"MEUCIQDOL/lwFVO1KN3jz8EjKDF1Pl7ygJ6yp1gwSLN9jxNtcgIgYythZzdKsaapfZWCFiREEoyJzhO3rbjzqZlpLcHwXzY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9195},"main":"./dist/url-signer.cjs","husky":{"hooks":{"pre-commit":"tsdx lint"}},"module":"./dist/url-signer.esm","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/url-signer.esm","require":"./dist/url-signer.cjs"},"./package.json":"./package.json"},"gitHead":"f706131a241a0302f68e363b6304ba868bded1f7","private":false,"scripts":{"test":"tsdx test","build":"tsdx build","start":"tsdx watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"aland20","email":"alandkurdy2013@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"_npmVersion":"10.2.0","description":"Simple, light-weight package to sign URL using HMAC hash function and in-memory caching.","directories":{},"_nodeVersion":"18.17.1","dependencies":{"@isaacs/ttlcache":"^1.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsdx":"^0.14.1","husky":"^8.0.1","tslib":"^2.4.0","typescript":"^4.7.3"},"_npmOperationalInternal":{"tmp":"tmp/url-signer_0.2.6_1697968731403_0.9597888942265882","host":"s3://npm-registry-packages"}},"0.2.7":{"name":"@aland20/url-signer","version":"0.2.7","keywords":["signature","sign","url-signer","security","hmac"],"author":{"name":"AlanD20"},"license":"MIT","_id":"@aland20/url-signer@0.2.7","maintainers":[{"name":"aland20","email":"alandkurdy2013@gmail.com"}],"homepage":"https://github.com/AlanD20/url-signer","dist":{"shasum":"7b320dd9bd26f0c7272363c2a0e8c391e2fb97b5","tarball":"https://registry.npmjs.org/@aland20/url-signer/-/url-signer-0.2.7.tgz","fileCount":14,"integrity":"sha512-eX3a/XWGI4AG8qpc+r9D074+bs0EELw2ThM2lm3fsIsQgK21b/kUV7eQOLRIp5u55td0qTqTvgcxXW63KTtWUA==","signatures":[{"sig":"MEYCIQCWJ++aQ7z4m0V7Iu/xNnSxFpu4NC5GVquKqclMhqr5qgIhAOwcEPPDdymeKnY3gwHmYqEpcgjWCkpxKFqiNHhKqa6q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":35040},"main":"./dist/url-signer.cjs","husky":{"hooks":{"pre-commit":"tsdx lint"}},"module":"./dist/url-signer.esm","engines":{"node":">=14"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/url-signer.esm","require":"./dist/url-signer.cjs"},"./package.json":"./package.json"},"gitHead":"58fabb9f6c933207bdb4c0ea7559631c3d78fbaa","private":false,"scripts":{"test":"tsdx test","build":"tsdx build","start":"tsdx watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"aland20","email":"alandkurdy2013@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"_npmVersion":"10.8.2","description":"Simple, light-weight package to sign URL using HMAC hash function and in-memory caching.","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsdx":"^0.14.1","husky":"^9.1.4","tslib":"^2.6.3","typescript":"^4.9.5","@types/jest":"^29.5.12","@types/node":"^22.2.0"},"_npmOperationalInternal":{"tmp":"tmp/url-signer_0.2.7_1723360096617_0.4419055694268572","host":"s3://npm-registry-packages"}},"0.2.8":{"name":"@aland20/url-signer","author":{"name":"AlanD20"},"private":false,"description":"Simple, light-weight package to sign URL using HMAC hash function and in-memory caching.","version":"0.2.8","license":"MIT","main":"./dist/url-signer.cjs","module":"./dist/url-signer.esm","typings":"dist/index.d.ts","engines":{"node":">=14"},"keywords":["signature","sign","url-signer","security","hmac"],"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test"},"homepage":"https://github.com/AlanD20/url-signer","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/url-signer.cjs","import":"./dist/url-signer.esm"},"./package.json":"./package.json"},"devDependencies":{"@types/jest":"^29.5.12","@types/node":"^22.2.0","husky":"^9.1.4","jest":"^29.7.0","tsdx":"^0.14.1","tslib":"^2.6.3","typescript":"^4.9.5"},"dependencies":{"@isaacs/ttlcache":"^1.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":true,"singleQuote":true,"trailingComma":"es5"},"_id":"@aland20/url-signer@0.2.8","gitHead":"c9100379a24dc93323bee33b0e020bec8ea69d80","_nodeVersion":"18.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-/PK8FLIfYaMJaXk0Ui5ggdvn39NC3qFYmiTXMgZbrJMnV3tECNRqEyTqoAtjS/DZkmnuhNqn+JbR+IERW6uOAg==","shasum":"ac286d2ede8c58373069f96564036930352074c9","tarball":"https://registry.npmjs.org/@aland20/url-signer/-/url-signer-0.2.8.tgz","fileCount":14,"unpackedSize":35040,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJ23gnKxfNe+XNsPye2q7BJc6beRfoicAF+sWyKDhXpAIhANu6oIc3SDHgUszRsiIaAIx9+mY9lf8goKfRlES5+Huf"}]},"_npmUser":{"name":"aland20","email":"alandkurdy2013@gmail.com"},"directories":{},"maintainers":[{"name":"aland20","email":"alandkurdy2013@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/url-signer_0.2.8_1723361226125_0.5087470205737297"},"_hasShrinkwrap":false}},"time":{"created":"2022-11-23T20:45:55.229Z","modified":"2024-08-11T07:27:06.488Z","0.2.0":"2022-11-23T20:00:42.207Z","0.2.1":"2022-11-23T20:04:24.048Z","0.2.3":"2022-11-23T20:45:55.466Z","0.2.4":"2023-01-04T10:43:34.965Z","0.2.5":"2023-01-04T11:02:02.720Z","0.2.6":"2023-10-22T09:58:51.573Z","0.2.7":"2024-08-11T07:08:16.775Z","0.2.8":"2024-08-11T07:27:06.312Z"},"author":{"name":"AlanD20"},"license":"MIT","homepage":"https://github.com/AlanD20/url-signer","keywords":["signature","sign","url-signer","security","hmac"],"description":"Simple, light-weight package to sign URL using HMAC hash function and in-memory caching.","maintainers":[{"name":"aland20","email":"alandkurdy2013@gmail.com"}],"readme":"# URL Signer\n\nSimple, light-weight package to sign URL using HMAC hash function and in-memory\ncaching using [@isaacs/ttlcache](https://www.npmjs.com/package/@isaacs/ttlcache)\npackage.\n\n- `HMAC` is an authentication hash function which can be used to check the\n  validity and correctness of the encrypted data.\n\n> This package is useful when it's paired with database. Or, if you have access\n> to the same UrlSigner instance throughout your project. The new version\n> provides additional optional arguments to verify incoming url without having\n> access to the previous instance.\n\n## Usage\n\n### Install\n\nInstall the package.\n\n```bash\nnpm install @aland20/url-signer\npnpm install @aland20/url-signer\nyarn add @aland20/url-signer\n```\n\n### Import\n\nFirst Import the class.\n\n```js\n// CommonJs\nconst UrlSigner = require('@aland20/url-signer');\n\n// ES Modules\nimport UrlSigner from '@aland20/url-signer';\n```\n\n### Create an Instance\n\nYou can create an instance of the class by passing the following:\n\n- `ttl` (required): Expiration Time in seconds.\n- `secret` (required): Secret key from server-side. Client-side must not have\n  access to the secret key.\n- `payload` (required): Data to be encrypted can be a Javascript object or\n  primitive data types.\n- `keyPrefix` (optional): adds prefix to the `signature` query key. For example,\n  if we set `keyPrefix` to `mx`, the signed url will be\n  `example.com/?mx_signature=<random-hmac>`.\n\n```js\nconst signer = new UrlSigner({\n  ttl: 120, // 2 minutes\n  secret: 'SUPER_SECRET_KEY',\n  payload: {\n    name: 'aland',\n    email: 'aland20@pm.me',\n  },\n  keyPrefix: 'ad', // Optional\n});\n```\n\n### Sign Your Url\n\nTo sign url, simply pass the url to the `signUrl` function which takes:\n\n- `url` (string): Your desired url to sign.\n- `payload` (optional): Update the previous payload if needed.\n\n`signUrl` function returns an object that has the following properties:\n\n- `hmac` (string): hmac hash.\n- `url` (string): signed url.\n\n```js\nconst exampleUrl = 'https://api.example.com/users/confirmation?email=test@example.com';\n\nconst { url, hmac } = signer.signUrl(exampleUrl); // signer is the class instance\n\n// The object contains following values:\n{\n  hmac: 'jE7zP9qE+VHs9Zt4Gqwc8/svJ23z92h3w2P+8Tou8YE=',\n  url: 'https://api.example.com/users/confirmation?email=test%40example.com&ad_signature=jE7zP9qE%2BVHs9Zt4Gqwc8%2FsvJ23z92h3w2P%2B8Tou8YE%3D'\n}\n```\n\n### Verify Signed Url\n\nTo verify a signed url, you have to access the same instance of UrlSigner that\nsigned the url, and use `verifyUrl` function.\n\n~~- **Notice**: Without having access to the same instance causes the\nverification to fail.~~\n\nSince version `0.2.3`, the package provides additional argument that you may pass the exact same\n`payload` and `secret` to get the desired result.\n\nAnother feature is that you can pass the signature value or full url. If you\npass the full url, don't forget to also pass the `keyPrefix` if set during the\nurl signing.\n\nExample to verify your incoming signature with three different methods.\n\n```js\n// First Method:\nconst signature = 'jE7zP9qE+VHs9Zt4Gqwc8/svJ23z92h3w2P+8Tou8YE=';\n\nsigner.verifyUrl(signature); // true\n\n// Second Method:\nconst fullUrl =\n  'https://api.example.com/users/confirmation?email=test%40example.com&ad_signature=jE7zP9qE%2BVHs9Zt4Gqwc8%2FsvJ23z92h3w2P%2B8Tou8YE%3D';\n\nsigner.verifyUrl({ url: fullUrl, keyPrefix: 'ad' }); // true\n\n// Third Method:\nconst mySecureObject = {\n  secret: 'SUPER_SECRET_KEY',\n  payload: {\n    name: 'aland',\n    email: 'aland20@pm.me',\n  },\n};\n\nsigner.verifyUrl(signature, mySecureObject); // true\n```\n\n### Expired Signed Url\n\n> This feature works only when you have access to the same instance. Otherwise,\n> there is no way to find out the exact timing.\n\nIf you verify the url after the `ttl` has passed during the instance creation,\nit returns false.\n\n```js\n...{\n    ttl: 120, // 2 minutes\n...}\n\n// after 2 minutes and 1 second\nsigner.verifyUrl(signature); // false\n```\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}