{"_id":"sveltekit-rate-limiter","_rev":"32-789143394c7f301a90cfa0b4e81b647f","name":"sveltekit-rate-limiter","dist-tags":{"latest":"0.8.0"},"versions":{"0.1.0":{"name":"sveltekit-rate-limiter","version":"0.1.0","_id":"sveltekit-rate-limiter@0.1.0","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"dist":{"shasum":"a1d3e5ff61491c63cb3ce5f96be668e8981dd936","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.1.0.tgz","fileCount":6,"integrity":"sha512-d0usoRO1TB+m65NpdEaIy2z+6Mgj7SjmUtW0+ZP/cMwKrNkLfyHNg7bml4AcSu2btJiUUjcvRMgbCGyNer2GjQ==","signatures":[{"sig":"MEYCIQCFRLQT59TvCUzSY6R02n4kf/YB8okZ8UDQ6ysjh+vtYAIhALIT1aozBaGWsq64sbDFZHd9lc0CiYI5+YxNo8UQmcgr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkA8ubACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpMNQ/+KgAbqoPZk+iTBEgat0FHNX1Tqb7C8wvN8OA8eHg5cCIdhYqx\r\nNvqAPmeYaVUndmQOGNoY1rPpQF7NS/Aq/P6wpiKdWC0IB9nnX8IezEP8H0yV\r\nCSw9L/GcH4x6lNEXjgWP7OPux5Cfgw+oCLxDyp9m5xVEE1Y1UP4ynK0hdwUC\r\nRladBSy1UeYIwxqLQ4st0uALEp+0LCcgFO9L6INb0P73MSJbUWnzZmTtF9Xu\r\nHWp59cq5yfom5L4XBmxQGP4v0FUeEcTHbGThmFdHPT+/RdYaaE9rg6QDwIjH\r\nQGiccyGlR2qKFQwJTX+pyHha0iXtzKrCPwYMnUrdFfcoxUVeH+ncGkwPp4n+\r\nmG7Pe1+17k2HQBQ+Pxq5Plu19HgIz4mqokDQNaY9IurlyKxBUQl3jUmHQOq6\r\nhM7akCyS3AtVE04V8P7I8Qx32I4Np1W9jR3QJWESBEGzRC/c6f4BcjC5DUAq\r\nb+FoRtcl2Od9kho+g+uD81aFyBc7oAy53x6yAHlbU+EClKQOKHfO42TaZQqX\r\nyG8BWSjhdaEvdJIxBBPUp63mW86WedQdQNDFLIcjCgjuzNE2SfmyXL0eoDVs\r\ntozjXNfi8GV14Iy2Y/2/L9/H5T5Q9nhZjA4F5qe4PjE/cyUkJ6xYk6NjwoDZ\r\nD23heKEmqF6OczYCv4TdiFoctq0Ny6TVcYQ=\r\n=JXZ4\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:sveltekit-rate-limiter-0.1.0.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\e25cbce5811d26d62e0ff393e5ff24ce\\sveltekit-rate-limiter-0.1.0.tgz","_integrity":"sha512-d0usoRO1TB+m65NpdEaIy2z+6Mgj7SjmUtW0+ZP/cMwKrNkLfyHNg7bml4AcSu2btJiUUjcvRMgbCGyNer2GjQ==","_npmVersion":"9.3.1","description":"Everything you need to build a Svelte library, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).","directories":{},"_nodeVersion":"18.10.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.4","tslib":"^2.5.0","eslint":"^8.35.0","nanoid":"^4.0.1","svelte":"^3.55.1","vitest":"^0.29.2","publint":"^0.1.10","prettier":"^2.8.4","typescript":"^4.9.5","svelte-check":"^3.0.4","@sveltejs/kit":"^1.10.0","@isaacs/ttlcache":"^1.2.1","@sveltejs/package":"^2.0.2","vitest-mock-extended":"^1.0.9","eslint-plugin-svelte3":"^4.0.0","@sveltejs/adapter-auto":"^2.0.0","eslint-config-prettier":"^8.6.0","prettier-plugin-svelte":"^2.9.0","@typescript-eslint/parser":"^5.54.0","@typescript-eslint/eslint-plugin":"^5.54.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.1.0_1677970331341_0.6580474610494214","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"sveltekit-rate-limiter","version":"0.1.1","_id":"sveltekit-rate-limiter@0.1.1","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"dist":{"shasum":"f1b496516148c002a2920d301857cdb4a9e72df5","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.1.1.tgz","fileCount":6,"integrity":"sha512-L8IciC9RXp2jTw4k/fb2RY5y40HUJodtj71e/VMxJ7qkvhXu1oNGWLG6QZ53VxVi5S+0sgH5qnt3/A9604DmGA==","signatures":[{"sig":"MEUCIQD0bh46l8D7oiJrUzT11841pWrRDugXDRxaRuDJHogl/AIgIEDnCWAZpDnY/gXawkzy9cJkRtBosoOy2za7y3MJOM4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkA8y5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqO1RAAhmloCy+wZ6X18WbPwUOS/QIqOegK483SWkThDfHsxbAVOygO\r\nbHYed8qlGCkWSbA8sekkcyFBey+8JUFzszoKO22U0P7Dqhms42PFHZxp9hfR\r\nl7DH+xz2qsrkKttVSnLyN19frnMecVNJL2mf0DTzRgT7P8zXEmOPiVlA/51m\r\nRoayao9znWLJrlZL7gc2ZOVwn9t5c9QK+THEoQX52/mbu4Y0uOjNa87Cnfd9\r\ni4fDB7x3zwqUrqzLh/DYEBk/z7WL5qvZWkT4qsEzTMirRRqKFJBPMzcV8Wt0\r\nVoMiLt6JjsYCDB4Ec0zA6KYAKZcuX7uktd4j5D9S7zuGJt4OGVc/B0iXOlLa\r\nEuxEf+cCDIFXxzpvuQozNoq7+pmON+rY/AO9w00HrfJU66pCmKtZYk9p/Dbb\r\nEht5+/t/GCKSwQjD+zl3DV3aeI4Y1yZMxY5/n6iSX21vvaWvt3X2xbu14Qqp\r\nRTAR7qKTxcrKGagrfQGHY2O0fUcaf+KFgToZiSS6lcNqxOO1BLSABETUpR5Q\r\nq4MRCT81lcyp5eIHfSH6a1JouNSyJnkOpmtQDzo9Bi2kL43NhtXrz5Jdcos8\r\n780+7Hdlemu6GMRV6NZr8in4EJIeu2vuHWO6iR3qMdt87JAS8AMUWKWFLVW2\r\nO63EjiLzCXRH4TDWT+6qJeNr4IyeR20qE3I=\r\n=8af4\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:sveltekit-rate-limiter-0.1.1.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\586f46f02524a82d25730aea7ccaf454\\sveltekit-rate-limiter-0.1.1.tgz","_integrity":"sha512-L8IciC9RXp2jTw4k/fb2RY5y40HUJodtj71e/VMxJ7qkvhXu1oNGWLG6QZ53VxVi5S+0sgH5qnt3/A9604DmGA==","_npmVersion":"9.3.1","description":"Everything you need to build a Svelte library, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).","directories":{},"_nodeVersion":"18.10.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.4","tslib":"^2.5.0","eslint":"^8.35.0","nanoid":"^4.0.1","svelte":"^3.55.1","vitest":"^0.29.2","publint":"^0.1.10","prettier":"^2.8.4","typescript":"^4.9.5","svelte-check":"^3.0.4","@sveltejs/kit":"^1.10.0","@isaacs/ttlcache":"^1.2.1","@sveltejs/package":"^2.0.2","vitest-mock-extended":"^1.0.9","eslint-plugin-svelte3":"^4.0.0","@sveltejs/adapter-auto":"^2.0.0","eslint-config-prettier":"^8.6.0","prettier-plugin-svelte":"^2.9.0","@typescript-eslint/parser":"^5.54.0","@typescript-eslint/eslint-plugin":"^5.54.0"},"peerDependencies":{"@sveltejs/kit":"1.x","@isaacs/ttlcache":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.1.1_1677970616988_0.6252058152983777","host":"s3://npm-registry-packages"}},"0.1.2":{"name":"sveltekit-rate-limiter","version":"0.1.2","_id":"sveltekit-rate-limiter@0.1.2","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"dist":{"shasum":"7cba1b7a8d79f993759ee155d928fdb6501799c9","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.1.2.tgz","fileCount":6,"integrity":"sha512-6k52r0GHiuUWgU75MSQDvjBvz6vlFZsxZ8rwFPNcI16slK/mikVueyHJEZdhpLepoYEVYpUa5quWVGR664luNQ==","signatures":[{"sig":"MEUCIQDnCbQPKtMb7i8aZ7NNYr00KMXuG7U4XOs2bbcWVyRHnwIgLyQ3krXf/Ofo/DeHsiiqGL54Qc10jNLQu1oKBvwjvOg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBKVXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGsg//R5ofokffkx2uI+ntPxb31hKqVucVJqT/7hTXVnSxFCXvhHEc\r\nngtkbc8qVlzC3Cf3Laln8l4JzVBHLmR4jQwEKO9F1bd/ZBGtb3fZBnMzuLC8\r\n0s4VNOL8Z4BnLJgBovmg4J8EQsBwfjITVrOVtRo3oVLON+7uLwpKp2kgclcX\r\n5MY8/p+k2twMKs5N0bdFS8MWtsR1JYwyKwT1gebom78XdJsvtHcZ/2THFb62\r\nSrKTMzn4T9dgPKET2H8tH/fYR2qbqXF9/KMB6FuxxNfz9mJ/ZFvgXlidKkYF\r\nfYDwHphjm5/pUukz2auDN89OA65r7icUnuxNEtzciqZ9WVwHCAhpBTR0xO94\r\n3dOTab2ePtL9AlZanM4n8uBDFbZov+yfgtq/lKmL+w1yUEGDrf4t1jn3ZPyA\r\nBxQZ3NLacLy+PgXRsyUcihi2+phH0M7w3aJWK98SdoMVcEkfxLGv/G4uFGEJ\r\nE25ajGrGBFEsOPy2dpVW/vM8kXohQtKoFfQSghaM6ooteuOE1Kqm2X63atzR\r\nlraQoFoZ7dt3XNNfSEQ2/g6r365PeNwnoaZGHGYIwYsc3AfrlgEjbYKdN6tR\r\nTMplmcd1mDxqlW0fjknaZxP/jS8KMKVdihf9Ex5KptEpR641vaSycsJmNAX+\r\nBTpXKrzgd+amMQcslSUAvMrMrg49azfGydg=\r\n=DcPZ\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:sveltekit-rate-limiter-0.1.2.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\4223cd7da19866c5c6e88b91ca1698d4\\sveltekit-rate-limiter-0.1.2.tgz","_integrity":"sha512-6k52r0GHiuUWgU75MSQDvjBvz6vlFZsxZ8rwFPNcI16slK/mikVueyHJEZdhpLepoYEVYpUa5quWVGR664luNQ==","_npmVersion":"9.3.1","description":"Everything you need to build a Svelte library, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).","directories":{},"_nodeVersion":"18.10.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.4","tslib":"^2.5.0","eslint":"^8.35.0","nanoid":"^4.0.1","svelte":"^3.55.1","vitest":"^0.29.2","publint":"^0.1.10","prettier":"^2.8.4","typescript":"^4.9.5","svelte-check":"^3.0.4","@sveltejs/kit":"^1.10.0","@isaacs/ttlcache":"^1.2.1","@sveltejs/package":"^2.0.2","vitest-mock-extended":"^1.0.9","eslint-plugin-svelte3":"^4.0.0","@sveltejs/adapter-auto":"^2.0.0","eslint-config-prettier":"^8.6.0","prettier-plugin-svelte":"^2.9.0","@typescript-eslint/parser":"^5.54.0","@typescript-eslint/eslint-plugin":"^5.54.0"},"peerDependencies":{"@sveltejs/kit":"1.x","@isaacs/ttlcache":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.1.2_1678026071175_0.927783074344039","host":"s3://npm-registry-packages"}},"0.1.3":{"name":"sveltekit-rate-limiter","version":"0.1.3","_id":"sveltekit-rate-limiter@0.1.3","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"dist":{"shasum":"e3ad009c3819389ed47c52cae92e4f784dae4646","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.1.3.tgz","fileCount":7,"integrity":"sha512-856XxHXxfe2yFE+adCnsgAJDlSXkzvaQSVtt1M6iouWWSTUJVuWt5niB9io4pZTA/RLruFQYVlLId82Sqcw/LQ==","signatures":[{"sig":"MEUCIGJBwVnU8a7eyXngmIajMOKRLfoNucCreBJWwr+cBxFRAiEArt9Iv3eD+u5jzwBFwkgGdcC8gd0Hp8zTjgo/cgDmiFU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11153,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBL/eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpOOxAAg4jKgNsyw1reMrrXZv6PxQ9GCZaVcKEXRPGC6TnB5a9tp6Pi\r\nQPt54mGfGOUcT7tSjKcwxUwhu0Lpc6g7b3b8YQLpIm4KkE09rSAFdDhhobi2\r\n1yiD8b+4SL8TMS5yGtXFoVQQn0oEaSZAfQhP/QFxKm5gCpk9iE+bm8j83Ezc\r\nLpbCHsrlM5V32PkE33aGD4fhrwuVJL6Aez10TRFa6C/22TBNSZctgNdY34In\r\nI0RtjJko7jNrwb63Z1JmadQnWQPclcQycd5m+XTAX09B66v8ag2OCITYJXhA\r\ncLKZ2qiGOC6yg7/ljKRUa12DGSQ68ctLoRIzwSbPFYt1sRAizmBGI5E/SdBs\r\n9TWLKYwqtzWn0JsC6ESlY070ABdP903WiT/8EYbSibfYQWl2OQwW0WKm7KU2\r\nTctPAfaDfQQha2Lou1T/MZDUAlyWmU0jHJWPQKoRDahKN00T/gmPl9qd7/vt\r\nJRdblDVCPoJizWgI31rW3JgY1EqQfd2KkvbFsl0sErQjMOTtFtYwMicoKJoC\r\nkbNttupJNJvNSUI8Q9F8HY5m2HB03gAtDWZ4yT7q4qspSNiFrGVE0hrirkeo\r\nt4saGqUe2HDCGBoVbzsRmp+JDNcGxMZ0Wp4ho77kAz1L/resNGLMsyhEafw7\r\n+qS2aYVdlYeacgJLxueZ1G4qHoACrvRPpYc=\r\n=27G2\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:sveltekit-rate-limiter-0.1.3.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\6201ab4385f63618a9853bffc777a60a\\sveltekit-rate-limiter-0.1.3.tgz","_integrity":"sha512-856XxHXxfe2yFE+adCnsgAJDlSXkzvaQSVtt1M6iouWWSTUJVuWt5niB9io4pZTA/RLruFQYVlLId82Sqcw/LQ==","_npmVersion":"9.3.1","description":"A modular rate limiter for password resets, account registration, etc. Use in your `page.server.ts` files, or `hooks.server.ts`.","directories":{},"_nodeVersion":"18.10.0","_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.4","tslib":"^2.5.0","eslint":"^8.35.0","nanoid":"^4.0.1","svelte":"^3.55.1","vitest":"^0.29.2","publint":"^0.1.10","prettier":"^2.8.4","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.0.4","@sveltejs/kit":"^1.10.0","@isaacs/ttlcache":"^1.2.1","@sveltejs/package":"^2.0.2","vitest-mock-extended":"^1.0.9","eslint-plugin-svelte3":"^4.0.0","@sveltejs/adapter-auto":"^2.0.0","eslint-config-prettier":"^8.6.0","prettier-plugin-svelte":"^2.9.0","@typescript-eslint/parser":"^5.54.0","@typescript-eslint/eslint-plugin":"^5.54.0"},"peerDependencies":{"@sveltejs/kit":"1.x","@isaacs/ttlcache":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.1.3_1678032862512_0.23078902580704352","host":"s3://npm-registry-packages"}},"0.1.4":{"name":"sveltekit-rate-limiter","version":"0.1.4","_id":"sveltekit-rate-limiter@0.1.4","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"dist":{"shasum":"6552f64d7a58e79815c810db3f8f01cf33bc1e4c","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.1.4.tgz","fileCount":7,"integrity":"sha512-7gKtWKn5cHHF4+qOWy6Ip4rGXhgmfLqfjwEnKsBOjFbh3vrFkNNM0/Ky6FAwEv5fZtyE872jSD219RIKvtpEcA==","signatures":[{"sig":"MEUCIAOrUEmALNiQcFYGHxDHYPhU39cw5ov1/9aA/GgYxbM1AiEAh4Il/ppKHgZpn1VdUG3L+lusZeaPMyPWvRdzRU7Zo7g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBZ1VACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqhYQ/7BYMc4hWN8xGtyb1pNxuor9VjkNPG6E61REUCYW7CAeUXujM3\r\n2f5a4BrQ7mIklzd+fWKKpwk2EYvLGQWvGJVMky8nrn87diQOzzXqT6y8GN8v\r\nEUCtOIDmVLwfgDnEE85mEK7QHT8smxG/yskuPq1lMKLgc2A5rCbBraI+11kJ\r\nyQfGhsgNyRsDUDql4hWu3rVZjaJqejf2of1N7avYvd27flXLQag770VI/LPP\r\niG/IX4bM99CHMoxqRdNVftEKzUUIH26/Df4aXBclYLkGdJKSAX/7+e6X/UBN\r\nBfkAJ1XB0ysMBRtTymSY9pdq5ZSY/fJA9oZgW9DJLgty7AvcnJ5kbGd6+Md/\r\naBPX3U6rXKVbzfaDfOBlDc03qGoIEj4V/YRgQ8YvXYuIxZgBIaIRZhF0hIN0\r\nT+X7jzDmvqkyeoGPkhnl7S2UpZ+2QHw5KD68GsaEwrPUaIoPfDR3VxE3jYo8\r\nvn9u4o2ioNE2dd4TcGgZ6I2MAikwv83YJDd+1HCLT/vQiB5iLwT8QPCC9v2g\r\n8MP+K2eAHnrct7cPzoTBnB5Kv2AriPR5Rt4ZV5OtbN83tnA62Dj1BqLIVUqX\r\nTK+k3S+h7R9tmhEf2JcmpZioOc74E7JVXxFaD4601McFBA63HXl9O94jAKPv\r\ncY+k013GQMZHn+7NfnSt7rqZ7C1UrY8eZY0=\r\n=M25S\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:sveltekit-rate-limiter-0.1.4.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\53eff8f6e6cd31e41f13e1a55c662d6a\\sveltekit-rate-limiter-0.1.4.tgz","_integrity":"sha512-7gKtWKn5cHHF4+qOWy6Ip4rGXhgmfLqfjwEnKsBOjFbh3vrFkNNM0/Ky6FAwEv5fZtyE872jSD219RIKvtpEcA==","_npmVersion":"9.3.1","description":"A modular rate limiter for password resets, account registration, etc. Use in your `page.server.ts` files, or `hooks.server.ts`.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.4","tslib":"^2.5.0","eslint":"^8.35.0","nanoid":"^4.0.1","svelte":"^3.55.1","vitest":"^0.29.2","publint":"^0.1.10","prettier":"^2.8.4","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.0.4","@sveltejs/kit":"^1.10.0","@sveltejs/package":"^2.0.2","vitest-mock-extended":"^1.0.9","eslint-plugin-svelte3":"^4.0.0","@sveltejs/adapter-auto":"^2.0.0","eslint-config-prettier":"^8.6.0","prettier-plugin-svelte":"^2.9.0","@typescript-eslint/parser":"^5.54.0","@typescript-eslint/eslint-plugin":"^5.54.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.1.4_1678089557602_0.975783555816881","host":"s3://npm-registry-packages"}},"0.1.5":{"name":"sveltekit-rate-limiter","version":"0.1.5","_id":"sveltekit-rate-limiter@0.1.5","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"dist":{"shasum":"7339c1bd7bc44a504642b1d9b5d8a6a7875d9924","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.1.5.tgz","fileCount":7,"integrity":"sha512-yXuQLtYdSS/xJA323S8HmegDtBb7xKcue/CxLqVu58qzF6DEN58a9RPQenFaky5Dn4EHBHzMiV9V87P66goZbQ==","signatures":[{"sig":"MEYCIQDZv5QFlCihhTLf+qqgauKCt0FWafWfhuF5JMSHHs3v7AIhAMCFzdETkuGQk4YBDwjiTs9uvfudj7LczLSY1dadDtRj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBc+eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq45Q/9G36acB7p76bHOHgibO8cErWcYnrlLh5q7ZXPni6ZMSINnMvV\r\nOQ1g4A8Uv/EJ71XXAz5zDw2U5qbAD0D48ILH9gD2r9XAs3uihFOjkvDNxx9E\r\nQtK1kKkIVwDnW+bTculQkpYAMHDo4qK8x1A5DBWcBlBEJhHo2Tkwe3QQZCKe\r\n1xqbvx+2bwk2dMlf57OHN2LQCLCw0o1BL5gwxu1ljLjXcx4b66l40XVI7ZAe\r\nMqjWlpHjkrAgFCHqUyEICiHDGuOgl+DiqZSUsQ817kj2Uu8ZqLY0x1EzidO9\r\n/B/3CMdgczqiNtLU8SOFcqd6O8LD2BBweJuMddIsC1SYqxYKgx0sNnIuwu4E\r\n+25doYq/4Crs/xBmMM0WM9ZDz+MbvMsNpeSfDi5jVGMkJJbIXHrxSWvZYfDi\r\nJoZ5AYDJ0oTpG1wz77XBoeABlmYemLOWRXqv6FjjPJyWLqDsKyAMCL5oMekG\r\nQlt8CBjFA8E0vntQ9xj9nbtOJyusRynkcTNO96g0RES1iBfFgMDaD9QwQeLI\r\nG40dBdV2k6bHl5W0YendOrwvMrl+5fT/9wBdKc/oxyokGNwrswh7/wA17mrM\r\nOcX9/6FGAXgVEOVWYwSQalCNCIlPzyeVG2IgdPxz/0MOBJ6Cl6EcVqWYfivA\r\nCdjFtEuTZ/eLBYYE/CQtv8aaYNV/9j4w2Z4=\r\n=xffz\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:sveltekit-rate-limiter-0.1.5.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\bc72302c21408d1ad1d879e1d024c7c0\\sveltekit-rate-limiter-0.1.5.tgz","_integrity":"sha512-yXuQLtYdSS/xJA323S8HmegDtBb7xKcue/CxLqVu58qzF6DEN58a9RPQenFaky5Dn4EHBHzMiV9V87P66goZbQ==","_npmVersion":"9.3.1","description":"A modular rate limiter for password resets, account registration, etc. Use in your `page.server.ts` files, or `hooks.server.ts`.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.4","tslib":"^2.5.0","eslint":"^8.35.0","nanoid":"^4.0.1","svelte":"^3.55.1","vitest":"^0.29.2","publint":"^0.1.10","prettier":"^2.8.4","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.0.4","@sveltejs/kit":"^1.10.0","@sveltejs/package":"^2.0.2","vitest-mock-extended":"^1.0.9","eslint-plugin-svelte3":"^4.0.0","@sveltejs/adapter-auto":"^2.0.0","eslint-config-prettier":"^8.6.0","prettier-plugin-svelte":"^2.9.0","@typescript-eslint/parser":"^5.54.0","@typescript-eslint/eslint-plugin":"^5.54.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.1.5_1678102430217_0.3881338272764927","host":"s3://npm-registry-packages"}},"0.1.6":{"name":"sveltekit-rate-limiter","version":"0.1.6","_id":"sveltekit-rate-limiter@0.1.6","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"dist":{"shasum":"783997a4d5bea3da2a2d96d9a5ffa9c11002d1f9","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.1.6.tgz","fileCount":7,"integrity":"sha512-VoZj/w/gROarNvtjB7FMGLAgEwPr+oNnyNNi28kY8Xluf9T1sndcLJqJ+gJ2lISklWG852aiOkiqafivxJthUg==","signatures":[{"sig":"MEUCIQCD0lTbhKnbhqvehUbqfMHJdS7n99E/k7ii966D+8TxFQIgDG+/BkjcwGrzVOfmawUewHZK6J0KqGryOpdgs0H298g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11236,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBdjbACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmquag//d4UiyvYDCs/F7aDX9Xxdm2gBXQxXU/iHv7xMcXFCQXDHgcm2\r\nSF65nXQXyrKMY1AdztsVWJ/uxkgjj7pEXfcl7Ie1TThwdZQIQulRsPb26uTM\r\ntaNqDk5x+4BNHW7QcsM7XyFiNaa7vFM9iLDyjm/waPyplIEO5k/xalR608Oz\r\niF2Gq3R+6GSVh78Qq5yZyEZK8Jkyev8LkVg5SA+VXuMHdZzfmuLTAJYeakc0\r\nLkKLEsVYWiHhFNmXPCL2y8FJ4Slw1zx17jTcNLEoMBla2jYN6ryxtGzqy9IE\r\n2j5iAkFSSkySjEGeZTmD+ezi1R75wKI/X+aw/YtB4FidqipL4Mt+ey5MVh1l\r\nJKWeajmvom/3R9xtVVhi+7CTk6u8Qd7eIh8svnK4zLX28crvrPCWlE7/Ld5m\r\nEbWtbr1tigWLRPJqcIrdlHEyqtjWGRZeG1OipfmJVKZAc0bFiX+c1AFsFFzz\r\npwQYPvfN3YmoO7TnVEpdGd7cI/Yk54omhSBG8PqxdphNhByo5xbrbl4JSIt+\r\nZ1yncwQ+jol5RBPRSJt8v4PUIhKv+o4Z5xki1e92+LBM8MuDxJ4DtOKH+noS\r\ngxJFx7OovMnlhWATn72HqGlPyvCVs6mJQwkNq+Im0jJprQ1cvLhnfjzPhmn+\r\nVvTTU3hhcFuzSbx3xd4dv0fL+UNSGwpCXpw=\r\n=cVDt\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:sveltekit-rate-limiter-0.1.6.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\ec9dc568e31630181fbcdf9b3afd62c6\\sveltekit-rate-limiter-0.1.6.tgz","_integrity":"sha512-VoZj/w/gROarNvtjB7FMGLAgEwPr+oNnyNNi28kY8Xluf9T1sndcLJqJ+gJ2lISklWG852aiOkiqafivxJthUg==","_npmVersion":"9.3.1","description":"A modular rate limiter for password resets, account registration, etc. Use in your `page.server.ts` files, or `hooks.server.ts`.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.4","tslib":"^2.5.0","eslint":"^8.35.0","nanoid":"^4.0.1","svelte":"^3.55.1","vitest":"^0.29.2","publint":"^0.1.10","prettier":"^2.8.4","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.0.4","@sveltejs/kit":"^1.10.0","@sveltejs/package":"^2.0.2","vitest-mock-extended":"^1.0.9","eslint-plugin-svelte3":"^4.0.0","@sveltejs/adapter-auto":"^2.0.0","eslint-config-prettier":"^8.6.0","prettier-plugin-svelte":"^2.9.0","@typescript-eslint/parser":"^5.54.0","@typescript-eslint/eslint-plugin":"^5.54.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.1.6_1678104794848_0.42544957306535935","host":"s3://npm-registry-packages"}},"0.1.7":{"name":"sveltekit-rate-limiter","version":"0.1.7","_id":"sveltekit-rate-limiter@0.1.7","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"dist":{"shasum":"1502c1db70e13e0282b31180179fac184cb64eac","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.1.7.tgz","fileCount":7,"integrity":"sha512-O/I+Zlk2HZ7pV/g/apvB0KzpZDBXm6O9CldkAHbeiuZoXe3qy4S9yjjD10/L0w27a14ExN+wwzswI7FEn5V/rQ==","signatures":[{"sig":"MEQCIBrpSKFcCPfFDoe9LTdTSsGqVQQxN0b6AiDhPOpi0wIsAiAdCSNm/YpNKV0hjRoBbdeL437yJTm5fXZKseownduS0Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkBdtwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrXfRAAka2oe8EbCN0JmXkH2n7LnkKpFDmRXUQh0NJAPgI3HbjovIuS\r\nygrTSJZEr4aKPruzFhkhwzc9joUsqXSKCxebudBUaB3ncxR5J/447b0JTf6l\r\nH/Kw0H9wXQ+Y2jUl5lzJhIHTkHWZanyMph5BtrRobQAWgbz23LqwFwU3xoZi\r\nZIJV8K0XTt62P4nGQFVjP5p2LJjr1Ed21NpMN0MgjMQRVtUhSyza/LYaST/H\r\nNPHPP0193nI060JXfjxDx28MvYjexb8bljOl1HOC2mkusTTejgVifwoum27w\r\nl2YonSLEB/I3kyUGrKFhB7gnaDBMVj9oRWISR53iiJV5cT+uV5uAymNfcOt0\r\nGUlG/jQKIhXdmwVBisrebQE2vg55LFiEIVTmnvTrYnr9FA5etWIQ07KiS5ha\r\nnT2uJ/Hej+Nk0xrLSjN4J0STgqkT8k1Bvmh5qgDQWFuX6zbVPythbDu+xVs9\r\n+8438iaYzYNCNHGuK/B8LZtfM/68GQW3LsSp8t+xBeOizQuHi4QTcg/WO16q\r\n04wYH/K8HNiB9oPrDEmKU4NuK+Od67UC9TSBNZ7CEQL4h04ExX7mnXF+5WyF\r\nwyvSX7OcMLJ9ubt2xWyg73KvutaRnk4uXdqDnWDDpPLS1X4X4GjqrCEktv+E\r\nw4yOVMW6HUcikoM3rpuPDBWiPnZTuiJTgis=\r\n=1KOg\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:sveltekit-rate-limiter-0.1.7.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\c8c201f3007b5b57fbeeabe10332b5c6\\sveltekit-rate-limiter-0.1.7.tgz","_integrity":"sha512-O/I+Zlk2HZ7pV/g/apvB0KzpZDBXm6O9CldkAHbeiuZoXe3qy4S9yjjD10/L0w27a14ExN+wwzswI7FEn5V/rQ==","_npmVersion":"9.3.1","description":"A modular rate limiter for password resets, account registration, etc. Use in your `page.server.ts` files, or `hooks.server.ts`.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.4","tslib":"^2.5.0","eslint":"^8.35.0","nanoid":"^4.0.1","svelte":"^3.55.1","vitest":"^0.29.2","publint":"^0.1.10","prettier":"^2.8.4","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.0.4","@sveltejs/kit":"^1.10.0","@sveltejs/package":"^2.0.2","vitest-mock-extended":"^1.0.9","eslint-plugin-svelte3":"^4.0.0","@sveltejs/adapter-auto":"^2.0.0","eslint-config-prettier":"^8.6.0","prettier-plugin-svelte":"^2.9.0","@typescript-eslint/parser":"^5.54.0","@typescript-eslint/eslint-plugin":"^5.54.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.1.7_1678105455941_0.4124702609216042","host":"s3://npm-registry-packages"}},"0.1.8":{"name":"sveltekit-rate-limiter","version":"0.1.8","_id":"sveltekit-rate-limiter@0.1.8","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"dist":{"shasum":"a52277bacf4208434e18328a9c3c9348ef6b475c","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.1.8.tgz","fileCount":7,"integrity":"sha512-A0bmPITW/8/KdXV88NZh/t9uTTaHuZWDa8wqg219GEe1O+M9pCHNg6THxoE519Mi508eoH6xzoP27ZsnDyRbMg==","signatures":[{"sig":"MEUCIA4B09/7wI+8pIzM+LhsW0RdVWUQ7K41ChvZfiuQgAwPAiEAnpftIqEHpal2PSEK2kOSBIUwaBMGiRIbA9UyQDjr0hE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkDE5AACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoU2A/+NdsgYMnKjFGbYUlBvuVTAnr4lOHAb1ZPSGPT7cjzzfNPBpm2\r\nXqi41Hdv1hK4PLErqxSRor3r05WOw687fM2jApmZmW/k5Shyme8jkR0zRoAU\r\nd+B6VplfLoL3DQfzKW+pd7uCwLyUqax34GJyTezNE7+mKisN+i0dtDLWLlbh\r\nWZNKvrFWQqTmA/sH3R6fU4gBVrNq7SHUzXgWeQJaw7RnDkkdg2UvTwA9/2PB\r\n1UGOA4HJTGudP0RfAt/otv21IkpuuExb6QRuG7HPL5GOdIUyquGI0Nd9xncT\r\n/rvL42XvK8CcTjTHX/YWXB/yUel9F7Nh24lT1q9FDbMJmTgMSgXm4eQUolQE\r\nPtjqUCyfSi/OGU93KbeqMzAkoE2y9vvAM8ELs3ze/+LKXlWMDZSgy57bTncr\r\n2RzX8iGBIcAnIvsH9aI7HxfLzA2X7Ge5wUub7SBrey6/Zq4EJ57EfwqPreHc\r\n4OvglUMW2QgT0K+/jQWZd/CD2or+cqgZXDTxZksxds5prH0oYvKk9VK4jiUG\r\n3w79Ajn5NGKHQLysJtMq4vhV0F1e1qJnqk/xp0puyWOAMdx39J8mcs37vxXA\r\nYUjqVV9czIxyL9xt6Sdrfd4I9wbYJAhKR/DV4vPS+woVUwexA0vMyEi5m0sg\r\nTpJROoAFXoUHLMZ7XhSFc/q6PBvowu9L6j0=\r\n=b6nz\r\n-----END PGP SIGNATURE-----\r\n"},"type":"module","_from":"file:sveltekit-rate-limiter-0.1.8.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\a4f31aada112b3aabd4b959aeabe41fd\\sveltekit-rate-limiter-0.1.8.tgz","_integrity":"sha512-A0bmPITW/8/KdXV88NZh/t9uTTaHuZWDa8wqg219GEe1O+M9pCHNg6THxoE519Mi508eoH6xzoP27ZsnDyRbMg==","_npmVersion":"9.3.1","description":"A modular rate limiter for password resets, account registration, etc. Use in your `page.server.ts` files, or `hooks.server.ts`.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.2.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.1.4","tslib":"^2.5.0","eslint":"^8.35.0","nanoid":"^4.0.1","svelte":"^3.55.1","vitest":"^0.29.2","publint":"^0.1.10","prettier":"^2.8.4","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.0.4","@sveltejs/kit":"^1.10.0","@sveltejs/package":"^2.0.2","vitest-mock-extended":"^1.0.9","eslint-plugin-svelte3":"^4.0.0","@sveltejs/adapter-auto":"^2.0.0","eslint-config-prettier":"^8.6.0","prettier-plugin-svelte":"^2.9.0","@typescript-eslint/parser":"^5.54.0","@typescript-eslint/eslint-plugin":"^5.54.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.1.8_1678528064154_0.9520392200456891","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"sveltekit-rate-limiter","version":"0.2.0","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.2.0","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"cf270530e0407edea65436c90a7c0a71e54cff21","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.2.0.tgz","fileCount":7,"integrity":"sha512-XbWbfmY8X4rmtPesl7eSqLYaRErDhZrnVdPWu0nf5ZcP269IXC/s2ZK1p8pWDCEJ7sji1C/LW0eGeCcUswyYMg==","signatures":[{"sig":"MEQCID4Gf4SbNNLwuY6Nmlkwzs7D3ttdjB7/5rPEqG+5oSEuAiAgc/DoLiAIn+NWjlwkWGarBgIoCeXjpy7dWqw8xvE8nA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12427},"type":"module","_from":"file:sveltekit-rate-limiter-0.2.0.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\d5a4118eb407ccb2f9d5b7930d1c0fc7\\sveltekit-rate-limiter-0.2.0.tgz","_integrity":"sha512-XbWbfmY8X4rmtPesl7eSqLYaRErDhZrnVdPWu0nf5ZcP269IXC/s2ZK1p8pWDCEJ7sji1C/LW0eGeCcUswyYMg==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.3.9","tslib":"^2.6.0","eslint":"^8.43.0","nanoid":"^4.0.2","svelte":"^4.0.0","vitest":"^0.29.8","publint":"^0.1.13","prettier":"^2.8.8","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.4.4","@sveltejs/kit":"^1.21.0","@sveltejs/package":"^2.1.0","eslint-plugin-svelte":"^2.32.0","vitest-mock-extended":"^1.1.3","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.8.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.60.1","@typescript-eslint/eslint-plugin":"^5.60.1"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.2.0_1688120923449_0.7642670258957875","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"sveltekit-rate-limiter","version":"0.2.1","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.2.1","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"93b139a707b166b4be3a9c5a943414f322d9bc9a","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.2.1.tgz","fileCount":7,"integrity":"sha512-LLV3iq6rzDBGV+NL5LqRceP2VC5Z6dvD6FUJ79Qg8mo3WTWmvGzZ0+lMFBW9ZUNAJCQJfkZ93UTYz20gzgByGw==","signatures":[{"sig":"MEUCIQD/QW/T6GI6wqglu3yJKF8k8jSpuwNQ3PzPk/1b+sVgfQIgBPGqQ2cD0CsoaLfvMf5LipR1zUZpyfmqzjiUlx3JmfE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13625},"type":"module","_from":"file:sveltekit-rate-limiter-0.2.1.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\4cdba81a8deafb672cb194485f93af49\\sveltekit-rate-limiter-0.2.1.tgz","_integrity":"sha512-LLV3iq6rzDBGV+NL5LqRceP2VC5Z6dvD6FUJ79Qg8mo3WTWmvGzZ0+lMFBW9ZUNAJCQJfkZ93UTYz20gzgByGw==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.3.9","tslib":"^2.6.0","eslint":"^8.43.0","nanoid":"^4.0.2","svelte":"^4.0.0","vitest":"^0.29.8","publint":"^0.1.13","prettier":"^2.8.8","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.4.4","@sveltejs/kit":"^1.21.0","@sveltejs/package":"^2.1.0","eslint-plugin-svelte":"^2.32.0","vitest-mock-extended":"^1.1.3","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.8.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.60.1","@typescript-eslint/eslint-plugin":"^5.60.1"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.2.1_1688124436195_0.46366983956987284","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"sveltekit-rate-limiter","version":"0.3.0","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.3.0","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"7ded6ef163690b6be08f405a7671282e032bd89c","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.3.0.tgz","fileCount":5,"integrity":"sha512-xRHQPSnbC4P9bh1LWDMA/FbbNpwiIdEserj1I5upylcx+wTKBLkmjPCUqOMibRg75iPQ1vObUJWblXn93CxjOg==","signatures":[{"sig":"MEQCIDF3yKmctPiSctejSTuzvsFJzxkaCOI+xqsi+y1+nKx+AiBwkZnHsestc2gCLIg3alxjh8j9BF+KX1ce9LrT0E8YQA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13936},"type":"module","_from":"file:sveltekit-rate-limiter-0.3.0.tgz","exports":{"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\049cbcdb9e658c7db90707fbca39208d\\sveltekit-rate-limiter-0.3.0.tgz","_integrity":"sha512-xRHQPSnbC4P9bh1LWDMA/FbbNpwiIdEserj1I5upylcx+wTKBLkmjPCUqOMibRg75iPQ1vObUJWblXn93CxjOg==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.0"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.3.9","tslib":"^2.6.0","eslint":"^8.43.0","nanoid":"^4.0.2","svelte":"^4.0.0","vitest":"^0.29.8","publint":"^0.1.13","prettier":"^2.8.8","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.4.4","@sveltejs/kit":"^1.21.0","@sveltejs/package":"^2.1.0","eslint-plugin-svelte":"^2.32.0","vitest-mock-extended":"^1.1.3","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.8.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.60.1","@typescript-eslint/eslint-plugin":"^5.60.1"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.3.0_1688320878436_0.5491058517940395","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"sveltekit-rate-limiter","version":"0.3.1","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.3.1","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"c6a7a83d3a2d126b6f96a8e1e53fa08d8dea42c4","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.3.1.tgz","fileCount":5,"integrity":"sha512-cA0M4woynAcBm4d/If5DU9iwS/OZ9JXacYu+Vj/JLLr1KuIbSWr9sRHGPfgSctIeWeHf1v9Qs9y+mlvWA3a1sg==","signatures":[{"sig":"MEUCIGTc4nqFA4dhIbJoh6oBuCgf7Ge4YbOEca1n6xbcgMecAiEA2A28fQHltdQCubqMuqKOd+eJAOE4DwdmNecEFQWXEJI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13957},"type":"module","_from":"file:sveltekit-rate-limiter-0.3.1.tgz","exports":{"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\1941582769d36713412431a92536ce94\\sveltekit-rate-limiter-0.3.1.tgz","_integrity":"sha512-cA0M4woynAcBm4d/If5DU9iwS/OZ9JXacYu+Vj/JLLr1KuIbSWr9sRHGPfgSctIeWeHf1v9Qs9y+mlvWA3a1sg==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.0"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.3.9","tslib":"^2.6.0","eslint":"^8.43.0","nanoid":"^4.0.2","svelte":"^4.0.0","vitest":"^0.29.8","publint":"^0.1.13","prettier":"^2.8.8","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.4.4","@sveltejs/kit":"^1.21.0","@sveltejs/package":"^2.1.0","eslint-plugin-svelte":"^2.32.0","vitest-mock-extended":"^1.1.3","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.8.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.60.1","@typescript-eslint/eslint-plugin":"^5.60.1"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.3.1_1688321452184_0.9580430827444053","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"sveltekit-rate-limiter","version":"0.3.2","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.3.2","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"6e8927e7da6b9a4391883615211d870486e3fb4b","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.3.2.tgz","fileCount":5,"integrity":"sha512-v3NnzGOLCrzI+x7461DLhOyYgpVCYExKFWybSOCWJoYqAT2lBPYjNGGpkOw2YgQkuFyARUZiFYfGkWnAA91IIA==","signatures":[{"sig":"MEYCIQDWza6pDal90nrJD+4+PkW8LnXh2f9rr6Kxy/wTIxRSMQIhAN6I3lC1ru/W/viUMSo+7GsFy7Z25Ara0ygB8wc+W4y6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14953},"type":"module","_from":"file:sveltekit-rate-limiter-0.3.2.tgz","exports":{"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\b275213f9d51b5740dea46a4e2d6f3ac\\sveltekit-rate-limiter-0.3.2.tgz","_integrity":"sha512-v3NnzGOLCrzI+x7461DLhOyYgpVCYExKFWybSOCWJoYqAT2lBPYjNGGpkOw2YgQkuFyARUZiFYfGkWnAA91IIA==","deprecated":"Security fix: Incorrect limit when null is returned","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.0"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.3.9","tslib":"^2.6.0","eslint":"^8.43.0","nanoid":"^4.0.2","svelte":"^4.0.0","vitest":"^0.29.8","publint":"^0.1.13","prettier":"^2.8.8","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.4.4","@sveltejs/kit":"^1.21.0","@sveltejs/package":"^2.1.0","eslint-plugin-svelte":"^2.32.0","vitest-mock-extended":"^1.1.3","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.8.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.60.1","@typescript-eslint/eslint-plugin":"^5.60.1"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.3.2_1689106062939_0.2480251851185673","host":"s3://npm-registry-packages"}},"0.3.3":{"name":"sveltekit-rate-limiter","version":"0.3.3","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.3.3","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"643d3d9d5f80e577353dc5981c40072865696ce1","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.3.3.tgz","fileCount":7,"integrity":"sha512-vo/7N8gZD9OsSYZ3w/Jua/BFTVF/mDMA/zX0DSQTY0em06GnRY3LCQXUm3ikPXwlZEopTHFxBKH8PcOkXCiHEQ==","signatures":[{"sig":"MEUCIQCBROX9YZP3H0gvS07GilfY+FuWwkIY4Q7cElKMv0NJqQIgLBA4PHGB/ZtlqJsnOh+t5dErlKOVGxzOXXOUiBsp/vk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15174},"type":"module","_from":"file:sveltekit-rate-limiter-0.3.3.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\f5ca6c9876654ff480dd9c742ee0fe9e\\sveltekit-rate-limiter-0.3.3.tgz","_integrity":"sha512-vo/7N8gZD9OsSYZ3w/Jua/BFTVF/mDMA/zX0DSQTY0em06GnRY3LCQXUm3ikPXwlZEopTHFxBKH8PcOkXCiHEQ==","deprecated":"Security fix: Incorrect limit when null is returned","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.0"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.3.9","tslib":"^2.6.0","eslint":"^8.43.0","nanoid":"^4.0.2","svelte":"^4.0.0","vitest":"^0.29.8","publint":"^0.1.13","prettier":"^2.8.8","typescript":"^4.9.5","npm-run-all":"^4.1.5","svelte-check":"^3.4.4","@sveltejs/kit":"^1.21.0","@sveltejs/package":"^2.1.0","eslint-plugin-svelte":"^2.32.0","vitest-mock-extended":"^1.1.3","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.8.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.60.1","@typescript-eslint/eslint-plugin":"^5.60.1"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.3.3_1691741514291_0.009232886167097831","host":"s3://npm-registry-packages"}},"0.3.4":{"name":"sveltekit-rate-limiter","version":"0.3.4","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.3.4","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"1fd797cf963d309f653e5dc1444b52e2b1eccf19","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.3.4.tgz","fileCount":7,"integrity":"sha512-mwa2dF+3sXABsH3k+/NF6U6rP5EqSABZJB1CeidPSAuEzuvj9ctkbWzB4rs6i2k5ZQKDpHqg3Sn64DweYKASqA==","signatures":[{"sig":"MEUCIQDGThI4MG3UIX78KcPVKCGs7ghsSM6SJpgIIGVeIQuvOgIgL0ZrnOvriQd3dP9CMFVvxwFobF3JYIOz7Pw4JaNbnXE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15400},"type":"module","_from":"file:sveltekit-rate-limiter-0.3.4.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\26ca471344591b067068e4c4ca139ebf\\sveltekit-rate-limiter-0.3.4.tgz","_integrity":"sha512-mwa2dF+3sXABsH3k+/NF6U6rP5EqSABZJB1CeidPSAuEzuvj9ctkbWzB4rs6i2k5ZQKDpHqg3Sn64DweYKASqA==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.9","tslib":"^2.6.1","eslint":"^8.46.0","nanoid":"^4.0.2","svelte":"^4.1.2","vitest":"^0.34.1","publint":"^0.2.0","prettier":"^2.8.8","typescript":"^5.1.6","npm-run-all":"^4.1.5","svelte-check":"^3.4.6","@sveltejs/kit":"^1.22.5","@sveltejs/package":"^2.2.1","eslint-plugin-svelte":"^2.32.4","vitest-mock-extended":"^1.2.0","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.3.4_1691752635512_0.19897901048284194","host":"s3://npm-registry-packages"}},"0.3.5":{"name":"sveltekit-rate-limiter","version":"0.3.5","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.3.5","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"7e4339ba82071abd1e81b05993edbcfc4331795d","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.3.5.tgz","fileCount":7,"integrity":"sha512-W7XcsVy58bk6F9lqLC+nud65baik24Mb3duWBwpNGQAVgzgK8Zt4ciaBJqNdyzgVWX7f6SF9h9Yer3zPSKl7+w==","signatures":[{"sig":"MEUCIQC6OdZDQupaSL6Ba0fFQCW8vof5T7L0XlZmW3dYtr36egIgdnW7j+xrLQqu/1SygdLIO7b/20SVWvZxLzWUZImW5uI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20276},"type":"module","_from":"file:sveltekit-rate-limiter-0.3.5.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\66bb54707044a0e97879961c86c804e7\\sveltekit-rate-limiter-0.3.5.tgz","_integrity":"sha512-W7XcsVy58bk6F9lqLC+nud65baik24Mb3duWBwpNGQAVgzgK8Zt4ciaBJqNdyzgVWX7f6SF9h9Yer3zPSKl7+w==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.9","tslib":"^2.6.1","eslint":"^8.46.0","nanoid":"^4.0.2","svelte":"^4.1.2","vitest":"^0.34.1","publint":"^0.2.0","prettier":"^2.8.8","typescript":"^5.1.6","npm-run-all":"^4.1.5","svelte-check":"^3.4.6","@sveltejs/kit":"^1.22.5","@sveltejs/package":"^2.2.1","eslint-plugin-svelte":"^2.32.4","vitest-mock-extended":"^1.2.0","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.3.5_1692011033872_0.9406044423183693","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"sveltekit-rate-limiter","version":"0.4.0","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.4.0","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"dff5f1bbd4c271bb7483e5e3b9ae6bfb48a8d653","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.4.0.tgz","fileCount":7,"integrity":"sha512-vEac9G19Edw90jIPdKCa//nDQudA73KVBbijWKex0ke69XVU//aq6puwrMiOwOlct7oQSpB4jzsXIB43kuOJlw==","signatures":[{"sig":"MEQCIBAjXGFeeOWkKaAc+ItL0DFBWjxEI7Q9upNssnSrLIyWAiB6UqH3dPhVj1w/rVwiXHjfNVm8vmsi9fOWAsLQh38guA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22349},"type":"module","_from":"file:sveltekit-rate-limiter-0.4.0.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\fee3d1fcec1bd276c03b0b4cacf2aec5\\sveltekit-rate-limiter-0.4.0.tgz","_integrity":"sha512-vEac9G19Edw90jIPdKCa//nDQudA73KVBbijWKex0ke69XVU//aq6puwrMiOwOlct7oQSpB4jzsXIB43kuOJlw==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.9","tslib":"^2.6.1","eslint":"^8.46.0","nanoid":"^4.0.2","svelte":"^4.1.2","vitest":"^0.34.1","publint":"^0.2.0","prettier":"^2.8.8","typescript":"^5.1.6","npm-run-all":"^4.1.5","svelte-check":"^3.4.6","@sveltejs/kit":"^1.22.5","@sveltejs/package":"^2.2.1","eslint-plugin-svelte":"^2.32.4","vitest-mock-extended":"^1.2.0","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.4.0_1692462421034_0.2675426478726657","host":"s3://npm-registry-packages"}},"0.4.1":{"name":"sveltekit-rate-limiter","version":"0.4.1","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.4.1","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"5407e9e9538a4d382d538b290bed08e016468a13","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.4.1.tgz","fileCount":7,"integrity":"sha512-h9WsgLCqPiJwHx3+oO3XjAiRpJ0G43Xz4yws+J4PQSNjAFmKt8dy/y5DJxz3W3BNYw7Z9PAQYizf2cJagyNyBA==","signatures":[{"sig":"MEUCIGohVhHiZXTwwOvTRk5ExIWWPm2uNCViQa1HCsQEuDpqAiEAwrpp4Dmmz455HMqnvyXk7WG98VcI/REzjPXRXGpVBCw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22671},"type":"module","_from":"file:sveltekit-rate-limiter-0.4.1.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\166ab443e7eb6006e56be60cbe19128b\\sveltekit-rate-limiter-0.4.1.tgz","_integrity":"sha512-h9WsgLCqPiJwHx3+oO3XjAiRpJ0G43Xz4yws+J4PQSNjAFmKt8dy/y5DJxz3W3BNYw7Z9PAQYizf2cJagyNyBA==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"18.10.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.4.9","tslib":"^2.6.1","eslint":"^8.46.0","nanoid":"^4.0.2","svelte":"^4.1.2","vitest":"^0.34.1","publint":"^0.2.0","prettier":"^2.8.8","typescript":"^5.1.6","npm-run-all":"^4.1.5","svelte-check":"^3.4.6","@sveltejs/kit":"^1.22.5","@sveltejs/package":"^2.2.1","eslint-plugin-svelte":"^2.32.4","vitest-mock-extended":"^1.2.0","@sveltejs/adapter-auto":"^2.1.0","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@sveltejs/adapter-cloudflare":"^2.3.2","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.4.1_1692612517235_0.0037159841131737537","host":"s3://npm-registry-packages"}},"0.4.2":{"name":"sveltekit-rate-limiter","version":"0.4.2","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.4.2","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"3e9f18af3b8be2b7dd8158c68b13d17eca772b69","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.4.2.tgz","fileCount":7,"integrity":"sha512-TzeHtEczD1klE8xQJguCbHVQAZk2eYwUdoynmWL2FGENw+iPCwYx0+8wtM+5itaAqwlJbKrcADdV/P/UZr4VIQ==","signatures":[{"sig":"MEYCIQCZ1o8qslrgLB+WB+epG8nt5hrweoI0xoILV/QKVSwq4AIhAL+ustDQCIGDXmRdpZ9B0YbHowiYXcxoECMFvTC4bsuZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":22722},"type":"module","_from":"file:sveltekit-rate-limiter-0.4.2.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\45a8379ed29e66cde1cc0ef629126920\\sveltekit-rate-limiter-0.4.2.tgz","_integrity":"sha512-TzeHtEczD1klE8xQJguCbHVQAZk2eYwUdoynmWL2FGENw+iPCwYx0+8wtM+5itaAqwlJbKrcADdV/P/UZr4VIQ==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"21.4.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","tslib":"^2.6.2","eslint":"^8.56.0","nanoid":"^4.0.2","svelte":"^4.2.8","vitest":"^1.0.0","publint":"^0.2.6","prettier":"^2.8.8","typescript":"^5.3.3","npm-run-all":"^4.1.5","svelte-check":"^3.6.2","@sveltejs/kit":"^2.0.0","@sveltejs/package":"^2.2.3","eslint-plugin-svelte":"^2.35.1","vitest-mock-extended":"^1.3.1","@sveltejs/adapter-auto":"^3.0.0","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@sveltejs/adapter-cloudflare":"^3.0.0","@sveltejs/vite-plugin-svelte":"^3.0.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x || 2.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.4.2_1702920375401_0.8116069696469421","host":"s3://npm-registry-packages"}},"0.4.3":{"name":"sveltekit-rate-limiter","version":"0.4.3","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.4.3","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"a283343852259e1e5b30314763683e0e71b9a41b","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.4.3.tgz","fileCount":7,"integrity":"sha512-BKkD2tvgyz5j4Fn1vt0y7FLF0zZ01f9thjWPGDb6fyX3tBXyMrtZ8ISK8M7zjz9Cik/2KrkvFtmldhXF6/hjqw==","signatures":[{"sig":"MEUCIQCNyPs6t7S+kaf7Iv7h9c4z0E5jh+wELhaL+kCOor/eRAIgcsmtqymVV9Mk6XJRoVpijoiQyrLIrQ/Ts8+VIoS/Yk8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":23941},"type":"module","_from":"file:sveltekit-rate-limiter-0.4.3.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\36f2e3c8502e136f62b602e69cf47f1a\\sveltekit-rate-limiter-0.4.3.tgz","_integrity":"sha512-BKkD2tvgyz5j4Fn1vt0y7FLF0zZ01f9thjWPGDb6fyX3tBXyMrtZ8ISK8M7zjz9Cik/2KrkvFtmldhXF6/hjqw==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"21.4.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.11","tslib":"^2.6.2","eslint":"^8.56.0","nanoid":"^4.0.2","svelte":"^4.2.8","vitest":"^1.2.0","publint":"^0.2.7","prettier":"^2.8.8","typescript":"^5.3.3","npm-run-all":"^4.1.5","svelte-check":"^3.6.3","@sveltejs/kit":"^2.3.2","@sveltejs/package":"^2.2.5","eslint-plugin-svelte":"^2.35.1","vitest-mock-extended":"^1.3.1","@sveltejs/adapter-auto":"^3.1.0","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@sveltejs/adapter-cloudflare":"^3.0.2","@sveltejs/vite-plugin-svelte":"^3.0.1","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x || 2.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.4.3_1705394018733_0.3081780085983219","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"sveltekit-rate-limiter","version":"0.5.0","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.5.0","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"0dbd0b727093c7714c73ca2350c4861d68bcb0d3","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.5.0.tgz","fileCount":7,"integrity":"sha512-q5RnqgAWP3fhDR+InWdOvsmYZ/x27Qojrk00scy+ob3Q+hawzHmLjQSL6XmSJrx82ceGZlw3G/hKyb/952oGWA==","signatures":[{"sig":"MEQCIEeniKobmaoIXGoWpEhiRs0XsaRWD0ORWnulldW/p5GwAiA9jhn3X0cTJmvct+2wZPuSaJJlG3C8aKwr/vIR4dlpuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26022},"type":"module","_from":"file:sveltekit-rate-limiter-0.5.0.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\d26e048d5fe3859b3ec3a9931f0e047e\\sveltekit-rate-limiter-0.5.0.tgz","_integrity":"sha512-q5RnqgAWP3fhDR+InWdOvsmYZ/x27Qojrk00scy+ob3Q+hawzHmLjQSL6XmSJrx82ceGZlw3G/hKyb/952oGWA==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"21.4.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.6","tslib":"^2.6.2","eslint":"^8.57.0","nanoid":"^4.0.2","svelte":"^4.2.12","vitest":"^1.4.0","publint":"^0.2.7","prettier":"^2.8.8","typescript":"^5.4.2","npm-run-all":"^4.1.5","svelte-check":"^3.6.7","@sveltejs/kit":"^2.5.4","@sveltejs/package":"^2.3.0","eslint-plugin-svelte":"^2.35.1","vitest-mock-extended":"^1.3.1","@sveltejs/adapter-auto":"^3.1.1","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@sveltejs/adapter-cloudflare":"^3.0.2","@sveltejs/vite-plugin-svelte":"^3.0.2","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x || 2.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.5.0_1710696251101_0.020418727147492488","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"sveltekit-rate-limiter","version":"0.5.1","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.5.1","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"4b7eaef7272b316ce6ab29307252b398783a5790","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.5.1.tgz","fileCount":7,"integrity":"sha512-Q2C7mT9PdoL6v3VXgxngyXiEg2i3Dp0iVjVvKi722lroTM7oHxAJsmj66607BiSw8mdQk1Me6nhE6uRXrkDVIg==","signatures":[{"sig":"MEQCIEQoT2F/JMm/YNC/tZ0/tABcOYpe93guB60qFW570nweAiABTA4CWqBAXaaKmwX19KkWCJPxj3ZE1d5PyCQx0XMUqA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26044},"type":"module","_from":"file:sveltekit-rate-limiter-0.5.1.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\45a9dbf9ffe0d386cd79e5f9fa593011\\sveltekit-rate-limiter-0.5.1.tgz","_integrity":"sha512-Q2C7mT9PdoL6v3VXgxngyXiEg2i3Dp0iVjVvKi722lroTM7oHxAJsmj66607BiSw8mdQk1Me6nhE6uRXrkDVIg==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"21.4.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.6","tslib":"^2.6.2","eslint":"^8.57.0","nanoid":"^4.0.2","svelte":"^4.2.12","vitest":"^1.4.0","publint":"^0.2.7","prettier":"^2.8.8","typescript":"^5.4.2","npm-run-all":"^4.1.5","svelte-check":"^3.6.7","@sveltejs/kit":"^2.5.4","@sveltejs/package":"^2.3.0","eslint-plugin-svelte":"^2.35.1","vitest-mock-extended":"^1.3.1","@sveltejs/adapter-auto":"^3.1.1","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@sveltejs/adapter-cloudflare":"^3.0.2","@sveltejs/vite-plugin-svelte":"^3.0.2","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x || 2.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.5.1_1710734173753_0.4912695649140626","host":"s3://npm-registry-packages"}},"0.5.2":{"name":"sveltekit-rate-limiter","version":"0.5.2","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.5.2","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"50662bf9f8d8f30ab0cd646a7daa810202ceba34","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.5.2.tgz","fileCount":7,"integrity":"sha512-7CELKmTffNjj0i/RUxT9SKYFA9IO/tQabjgT39clOlkKvlcGozNy8nqoIx+24amWfqEqC/WXYMEIek04PiFdyA==","signatures":[{"sig":"MEQCIAHuirXJw5k9XqzXn118X3C+35NsXfvsE+QNNbzVTwASAiATU+E/TijRRlqp8PUlDoKmJVX3jjuAiqVit3vE4SGfbg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26329},"type":"module","_from":"file:sveltekit-rate-limiter-0.5.2.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\63db7ac79572cbee6e64535f15ee08b3\\sveltekit-rate-limiter-0.5.2.tgz","_integrity":"sha512-7CELKmTffNjj0i/RUxT9SKYFA9IO/tQabjgT39clOlkKvlcGozNy8nqoIx+24amWfqEqC/WXYMEIek04PiFdyA==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"21.4.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.6","tslib":"^2.6.2","eslint":"^8.57.0","nanoid":"^4.0.2","svelte":"^4.2.12","vitest":"^1.4.0","publint":"^0.2.7","prettier":"^2.8.8","typescript":"^5.4.2","npm-run-all":"^4.1.5","svelte-check":"^3.6.7","@sveltejs/kit":"^2.5.4","@sveltejs/package":"^2.3.0","eslint-plugin-svelte":"^2.35.1","vitest-mock-extended":"^1.3.1","@sveltejs/adapter-auto":"^3.1.1","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@sveltejs/adapter-cloudflare":"^3.0.2","@sveltejs/vite-plugin-svelte":"^3.0.2","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x || 2.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.5.2_1721041968694_0.218119718189971","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"sveltekit-rate-limiter","version":"0.6.0","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.6.0","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"e2df83461b5b5df81b74916b9c7074c253bc6d33","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.6.0.tgz","fileCount":33,"integrity":"sha512-s+ZIaaizSeHd/2rOM1dkl8KUbLnd7Mke/OqxZQYDtMRfbtHOmyzoQxEeSy2E2nJyvGu/ErN5TGKpNIDcfDUPkw==","signatures":[{"sig":"MEQCIEzELp68ETlFNaBLIgaOmeeH8WioEdSToZNOiA+zUJiYAiATACTGbmmzIOy4yXEnUVmFshOUaQGbsKQalWRRaxPPhQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":31062},"type":"module","_from":"file:sveltekit-rate-limiter-0.6.0.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"},"./server/stores":{"types":"./dist/server/stores/index.d.ts","svelte":"./dist/server/stores/index.js"},"./server/limiters":{"types":"./dist/server/limiters/index.d.ts","svelte":"./dist/server/limiters/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\d273c8808102c839c31128211327bf07\\sveltekit-rate-limiter-0.6.0.tgz","_integrity":"sha512-s+ZIaaizSeHd/2rOM1dkl8KUbLnd7Mke/OqxZQYDtMRfbtHOmyzoQxEeSy2E2nJyvGu/ErN5TGKpNIDcfDUPkw==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"22.8.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.6","tslib":"^2.6.2","eslint":"^8.57.0","nanoid":"^4.0.2","svelte":"^4.2.12","vitest":"^1.4.0","publint":"^0.2.7","prettier":"^2.8.8","typescript":"^5.4.2","npm-run-all":"^4.1.5","svelte-check":"^3.6.7","@sveltejs/kit":"^2.5.4","@sveltejs/package":"^2.3.0","eslint-plugin-svelte":"^2.35.1","vitest-mock-extended":"^1.3.1","@sveltejs/adapter-auto":"^3.1.1","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@sveltejs/adapter-cloudflare":"^3.0.2","@sveltejs/vite-plugin-svelte":"^3.0.2","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x || 2.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.6.0_1726755313741_0.026374056287766123","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"sveltekit-rate-limiter","version":"0.6.1","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.6.1","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"1ddc9ecf098823d10b5f14c0b334b497373c3c92","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.6.1.tgz","fileCount":35,"integrity":"sha512-5b0ZAuJsGeFt3k8qe+SvPZXeg8f0XVcnUnL/5cOZVh1tLoi8NE9bDOtAkGN3L+66hjSkbBayhd7FVyjN4DV7pw==","signatures":[{"sig":"MEQCIBu6Mi/A9Is8G3QnoFuN7jTVQUq7FR5sb6wbvSK2Ro8QAiBcdMC1CZZ6U/ULfJ1u7MQara03bvO/eB4HsprAx5+21Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":32335},"type":"module","_from":"file:sveltekit-rate-limiter-0.6.1.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"},"./server/stores":{"types":"./dist/server/stores/index.d.ts","svelte":"./dist/server/stores/index.js"},"./server/limiters":{"types":"./dist/server/limiters/index.d.ts","svelte":"./dist/server/limiters/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\7236149487c1ef87b63f1db55d65fc34\\sveltekit-rate-limiter-0.6.1.tgz","_integrity":"sha512-5b0ZAuJsGeFt3k8qe+SvPZXeg8f0XVcnUnL/5cOZVh1tLoi8NE9bDOtAkGN3L+66hjSkbBayhd7FVyjN4DV7pw==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"22.8.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.6","tslib":"^2.6.2","eslint":"^8.57.0","nanoid":"^4.0.2","svelte":"^4.2.12","vitest":"^1.4.0","publint":"^0.2.7","prettier":"^2.8.8","typescript":"^5.4.2","npm-run-all":"^4.1.5","svelte-check":"^3.6.7","@sveltejs/kit":"^2.5.4","@sveltejs/package":"^2.3.0","eslint-plugin-svelte":"^2.35.1","vitest-mock-extended":"^1.3.1","@sveltejs/adapter-auto":"^3.1.1","eslint-config-prettier":"^8.10.0","prettier-plugin-svelte":"^2.10.1","@typescript-eslint/parser":"^5.62.0","@sveltejs/adapter-cloudflare":"^3.0.2","@sveltejs/vite-plugin-svelte":"^3.0.2","@typescript-eslint/eslint-plugin":"^5.62.0"},"peerDependencies":{"@sveltejs/kit":"1.x || 2.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.6.1_1726757722762_0.7457596996654572","host":"s3://npm-registry-packages"}},"0.6.2":{"name":"sveltekit-rate-limiter","version":"0.6.2","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.6.2","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"3e934ed2ceb925969fd197abe492e899f9e8040e","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.6.2.tgz","fileCount":35,"integrity":"sha512-RILpSVmW6YX8g5j1XOvypF8kA2t7vLIV+GSkP2mxvnpB+jwo/Hk2K786ZEiFC5Y/tAaK8qJ02rDLs/ZkBCzg/w==","signatures":[{"sig":"MEUCIDyQkyx9VGeDqMGI58lfaD5pHWBTi2PoMbqbSMVCZwIEAiEAo1mAIYkyI7tMJeqOCxJLeiTFbBKuTK/+U7MLlEqpFqQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32362},"type":"module","_from":"file:sveltekit-rate-limiter-0.6.2.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"},"./server/stores":{"types":"./dist/server/stores/index.d.ts","svelte":"./dist/server/stores/index.js"},"./server/limiters":{"types":"./dist/server/limiters/index.d.ts","svelte":"./dist/server/limiters/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --plugin-search-dir . --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --plugin-search-dir . --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","actor":{"name":"ciscoheat","type":"user","email":"ciscoheat@gmail.com"},"email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\490128e0f784bce28275d9d486b000e8\\sveltekit-rate-limiter-0.6.2.tgz","_integrity":"sha512-RILpSVmW6YX8g5j1XOvypF8kA2t7vLIV+GSkP2mxvnpB+jwo/Hk2K786ZEiFC5Y/tAaK8qJ02rDLs/ZkBCzg/w==","deprecated":"Merged with 0.7.0","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"22.8.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","tslib":"^2.8.1","eslint":"^9.28.0","nanoid":"^5.1.5","svelte":"^5.33.12","vitest":"^3.1.4","publint":"^0.3.12","prettier":"^3.5.3","typescript":"^5.8.3","npm-run-all":"^4.1.5","svelte-check":"^4.2.1","@sveltejs/kit":"^2.21.1","@sveltejs/package":"^2.3.11","eslint-plugin-svelte":"^3.9.0","vitest-mock-extended":"^3.1.0","@sveltejs/adapter-auto":"^6.0.1","eslint-config-prettier":"^10.1.5","prettier-plugin-svelte":"^3.4.0","@typescript-eslint/parser":"^8.33.0","@sveltejs/adapter-cloudflare":"^7.0.3","@sveltejs/vite-plugin-svelte":"^5.0.3","@typescript-eslint/eslint-plugin":"^8.33.0"},"peerDependencies":{"@sveltejs/kit":"1.x || 2.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.6.2_1750142772234_0.11539328685427508","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"sveltekit-rate-limiter","version":"0.7.0","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"author":{"url":"https://blog.encodeart.dev","name":"Andreas Söderlund","email":"ciscoheat@gmail.com"},"license":"MIT","_id":"sveltekit-rate-limiter@0.7.0","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"homepage":"https://github.com/ciscoheat/sveltekit-rate-limiter#readme","bugs":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues"},"dist":{"shasum":"9d88f428b4c03da4f3854a1d1cf48288a6ecdf51","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.7.0.tgz","fileCount":35,"integrity":"sha512-aQI8Y1dTWKsB4YiZMBYORMDwy2SaFA2J5t848dEPVNkXWzhqrHqHUBb7QiNiLWqAeWvOJBwD+MZnsbmvbhGQdg==","signatures":[{"sig":"MEQCIAh3G5H6r7XhToABXZAc3/4TyvI1ECC3GlPE/uKg3cwZAiBlzDf1qR4qyytON8g+plEKOE+NoeMm1FCPohujvuTJ+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34949},"type":"module","_from":"file:sveltekit-rate-limiter-0.7.0.tgz","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"},"./server/stores":{"types":"./dist/server/stores/index.d.ts","svelte":"./dist/server/stores/index.js"},"./server/limiters":{"types":"./dist/server/limiters/index.d.ts","svelte":"./dist/server/limiters/index.js"}},"scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","test":"vitest run","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","test:unit":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"ciscoheat","actor":{"name":"ciscoheat","type":"user","email":"ciscoheat@gmail.com"},"email":"ciscoheat@gmail.com"},"_resolved":"C:\\Users\\Andreas\\AppData\\Local\\Temp\\9eabd154df001593ca6e31911ebd22da\\sveltekit-rate-limiter-0.7.0.tgz","_integrity":"sha512-aQI8Y1dTWKsB4YiZMBYORMDwy2SaFA2J5t848dEPVNkXWzhqrHqHUBb7QiNiLWqAeWvOJBwD+MZnsbmvbhGQdg==","repository":{"url":"git+https://github.com/ciscoheat/sveltekit-rate-limiter.git"},"_npmVersion":"9.3.1","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","directories":{},"_nodeVersion":"22.8.0","dependencies":{"@isaacs/ttlcache":"^1.4.1"},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.3.5","tslib":"^2.8.1","eslint":"^9.29.0","nanoid":"^5.1.5","svelte":"^5.34.3","vitest":"^3.2.3","publint":"^0.3.12","prettier":"^3.5.3","typescript":"^5.8.3","npm-run-all":"^4.1.5","svelte-check":"^4.2.1","@sveltejs/kit":"^2.21.5","@sveltejs/package":"^2.3.11","eslint-plugin-svelte":"^3.9.2","vitest-mock-extended":"^3.1.0","@sveltejs/adapter-auto":"^6.0.1","eslint-config-prettier":"^10.1.5","prettier-plugin-svelte":"^3.4.0","@typescript-eslint/parser":"^8.34.1","@sveltejs/adapter-cloudflare":"^7.0.4","@sveltejs/vite-plugin-svelte":"^5.1.0","@typescript-eslint/eslint-plugin":"^8.34.1"},"peerDependencies":{"@sveltejs/kit":"1.x || 2.x"},"_npmOperationalInternal":{"tmp":"tmp/sveltekit-rate-limiter_0.7.0_1750146385680_0.21023845091237536","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"sveltekit-rate-limiter","version":"0.8.0","author":"Andreas Söderlund <ciscoheat@gmail.com> (https://blog.encodeart.dev)","description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"license":"MIT","bugs":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues","repository":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter"},"exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./server":{"types":"./dist/server/index.d.ts","svelte":"./dist/server/index.js"},"./server/limiters":{"types":"./dist/server/limiters/index.d.ts","svelte":"./dist/server/limiters/index.js"},"./server/stores":{"types":"./dist/server/stores/index.d.ts","svelte":"./dist/server/stores/index.js"}},"typesVersions":{">4.0":{"server":["./dist/server/index.d.ts"]}},"types":"./dist/index.d.ts","svelte":"./dist/index.js","peerDependencies":{"@sveltejs/kit":"2.x || >=3.0.0-next.25 <4.0.0"},"devDependencies":{"@sveltejs/adapter-auto":"8.0.0-next.3","@sveltejs/adapter-cloudflare":"8.0.0-next.6","@sveltejs/kit":"3.0.0-next.25","@sveltejs/package":"^2.5.8","@sveltejs/vite-plugin-svelte":"^5.1.1","@eslint/js":"^10.0.0","@sveltejs/load-config":"^0.2.3","@typescript-eslint/eslint-plugin":"^8.68.0","@typescript-eslint/parser":"^8.68.0","eslint":"^10.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-svelte":"^3.23.0","globals":"^17.3.0","nanoid":"^6.0.1","npm-run-all":"^4.1.5","prettier":"^3.9.6","prettier-plugin-svelte":"^4.1.1","publint":"^0.3.24","svelte":"^5.56.10","svelte-check":"^4.7.6","tslib":"^2.8.1","typescript":"^6.0.3","vite":"^8.2.2","vitest":"^4.1.11","vitest-mock-extended":"^5.1.1"},"dependencies":{"@isaacs/ttlcache":"^2.1.5"},"type":"module","imports":{"#lib/*":"./src/lib/*"},"scripts":{"dev":"vite dev","build":"vite build && npm run package","preview":"vite preview","package":"svelte-kit sync && svelte-package && publint","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch","test:unit":"vitest","test":"vitest run","lint":"prettier --check . && eslint .","format":"prettier --write ."},"_nodeVersion":"26.0.0","_id":"sveltekit-rate-limiter@0.8.0","dist":{"integrity":"sha512-kNF/jc7/3yuinNRR3ewrLm9uGea69WNnrl7Am7q41qrH8gKsaBdl+lEDMNvBOPlox5i83VPYZx7BGhn6KYnn1Q==","shasum":"cfb1659b69574e799ce1d10c958e83395e0a3edf","tarball":"https://registry.npmjs.org/sveltekit-rate-limiter/-/sveltekit-rate-limiter-0.8.0.tgz","fileCount":35,"unpackedSize":35138,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFBa2N1963rkLtqmZoF8I/wrPWN3yH5MU6C0u/rFm+JnAiEAxcm1+lAgowAZ9HWJ4MHtmLYDi1IpfjaWaxOlaRfKlyA="}]},"_npmUser":{"name":"ciscoheat","email":"ciscoheat@gmail.com"},"directories":{},"maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sveltekit-rate-limiter_0.8.0_1787865574573_0.0926250469530685"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-04T22:52:11.339Z","modified":"2026-08-27T21:19:34.864Z","0.1.0":"2023-03-04T22:52:11.562Z","0.1.1":"2023-03-04T22:56:57.135Z","0.1.2":"2023-03-05T14:21:11.432Z","0.1.3":"2023-03-05T16:14:22.701Z","0.1.4":"2023-03-06T07:59:17.764Z","0.1.5":"2023-03-06T11:33:50.364Z","0.1.6":"2023-03-06T12:13:14.987Z","0.1.7":"2023-03-06T12:24:16.084Z","0.1.8":"2023-03-11T09:47:44.354Z","0.2.0":"2023-06-30T10:28:43.669Z","0.2.1":"2023-06-30T11:27:16.369Z","0.3.0":"2023-07-02T18:01:18.667Z","0.3.1":"2023-07-02T18:10:52.329Z","0.3.2":"2023-07-11T20:07:43.176Z","0.3.3":"2023-08-11T08:11:54.434Z","0.3.4":"2023-08-11T11:17:15.663Z","0.3.5":"2023-08-14T11:03:54.062Z","0.4.0":"2023-08-19T16:27:01.266Z","0.4.1":"2023-08-21T10:08:37.377Z","0.4.2":"2023-12-18T17:26:15.579Z","0.4.3":"2024-01-16T08:33:38.894Z","0.5.0":"2024-03-17T17:24:11.248Z","0.5.1":"2024-03-18T03:56:13.937Z","0.5.2":"2024-07-15T11:12:48.859Z","0.6.0":"2024-09-19T14:15:13.959Z","0.6.1":"2024-09-19T14:55:23.003Z","0.6.2":"2025-06-17T06:46:12.411Z","0.7.0":"2025-06-17T07:46:25.848Z","0.8.0":"2026-08-27T21:19:34.712Z"},"bugs":"https://github.com/ciscoheat/sveltekit-rate-limiter/issues","author":"Andreas Söderlund <ciscoheat@gmail.com> (https://blog.encodeart.dev)","license":"MIT","keywords":["sveltekit","rate","limiting","rate limiter","throttle","limiter"],"repository":{"url":"https://github.com/ciscoheat/sveltekit-rate-limiter"},"description":"A modular rate limiter for SvelteKit. Use in password resets, account registration, etc.","maintainers":[{"name":"ciscoheat","email":"ciscoheat@gmail.com"}],"readme":"# sveltekit-rate-limiter\n\nA modular rate limiter for password resets, account registration, API call limiting, etc. Use in your `+page.server.ts`, `+server.ts` or `src/hooks.server.ts`.\n\nUses an in-memory cache ([@isaacs/ttlcache](https://www.npmjs.com/package/@isaacs/ttlcache)), but can be swapped for something else. Same for limiters, which are plugins. The [source file](https://github.com/ciscoheat/sveltekit-rate-limiter/blob/main/src/lib/server/index.ts#L24-L32) lists both interfaces.\n\n## Installation\n\n```\nnpm i -D sveltekit-rate-limiter\n```\n\n```\npnpm i -D sveltekit-rate-limiter\n```\n\n## How to use\n\n```ts\nimport { error } from '@sveltejs/kit';\nimport { RateLimiter } from 'sveltekit-rate-limiter/server';\n\nconst limiter = new RateLimiter({\n  // A rate is defined as [number, unit]\n  IP: [10, 'h'], // IP address limiter\n  IPUA: [5, 'm'], // IP + User Agent limiter\n  cookie: {\n    // Cookie limiter\n    name: 'limiterid', // Unique cookie name for this limiter\n    secret: 'SECRETKEY-SERVER-ONLY', // Use $env/static/private\n    rate: [2, 'm'],\n    preflight: true // Require preflight call (see load function)\n  }\n});\n\nexport const load = async (event) => {\n  /**\n   * Preflight prevents direct posting. If preflight option for the\n   * cookie limiter is true and this function isn't called before posting,\n   * request will be limited.\n   *\n   * Remember to await, so the cookie will be set before returning!\n   */\n  await limiter.cookieLimiter?.preflight(event);\n};\n\nexport const actions = {\n  default: async (event) => {\n    // Every call to isLimited counts as a hit towards the rate limit for the event.\n    if (await limiter.isLimited(event)) throw error(429);\n  },\n\n  debug: async (event) => {\n    // Alternatively you can call check to get more details.\n    // (will also count as a hit)\n    const status = await limiter.check(event);\n    if (status.limited) {\n      // 'IP' | 'IPUA' | 'cookie' | number\n      console.log('Limited due to ' + status.reason);\n      throw error(429);\n    }\n  }\n};\n```\n\n## Call order for limiters\n\nThe limiters will be called in smallest unit and rate order, so in the example above:\n\n```\ncookie(2/min) → IPUA(5/min) → IP(10/hour)\n```\n\nFor four consecutive requests from the same source within one minute, the following will happen:\n\n| Request | Cookie    | IPUA  | IP    |\n| ------- | --------- | ----- | ----- |\n| 1       | Hit 1     | Hit 1 | Hit 1 |\n| 2       | Hit 2     | Hit 2 | Hit 2 |\n| 3       | **Limit** | -     | -     |\n| 4       | **Limit** | -     | -     |\n\nIf the cookie is deleted but the User-Agent stays the same, the counter keeps going for the other limiters:\n\n| Request | Cookie    | IPUA  | IP    |\n| ------- | --------- | ----- | ----- |\n| 5       | Hit 1     | Hit 3 | Hit 3 |\n| 6       | Hit 2     | Hit 4 | Hit 4 |\n| 7       | **Limit** | -     | -     |\n\nIf deleted one more time, the User-Agent limiter will reach its limit:\n\n| Request | Cookie    | IPUA      | IP    |\n| ------- | --------- | --------- | ----- |\n| 8       | Hit 1     | Hit 5     | Hit 5 |\n| 9       | Hit 2     | **Limit** | -     |\n| 10      | **Limit** | -         | -     |\n\n## Valid units\n\nValid units are, from smallest to largest:\n\n```\n'100ms' | '250ms' | '500ms'\n's' | '2s' | '5s' | '10s' | '15s' | '30s' | '45s'\n'm' | '2m' | '5m  | '10m' | '15m' | '30m' | '45m'\n'h' | '2h' | '6h' | '12h'\n'd'\n```\n\n## Multiple limits\n\nYou can specify the rates as an array, to handle multiple rates per limiter, like \"Max 1 per second and 100 per hour\": `[[1, 's'], [100, 'h']]`.\n\n## Retry-After limiter\n\nThere is a version of the rate limiter that will return [Retry-After](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) information, the number of seconds before the request should be attempted again. This has been implemented in the `src/hooks.server.ts` file and instead of throwing an error code like other pages, we have to create a new response so that we can add the header.\n\n```ts\nimport type { Handle } from '@sveltejs/kit';\nimport { RetryAfterRateLimiter } from 'sveltekit-rate-limiter/server';\n\nconst limiter = new RetryAfterRateLimiter({\n  IP: [10, 'h'],\n  IPUA: [5, 'm']\n});\n\nexport const handle: Handle = async ({ event, resolve }) => {\n  const status = await limiter.check(event);\n  if (status.limited) {\n    let response = new Response(\n      `You are being rate limited. Please try after ${status.retryAfter} seconds.`,\n      {\n        status: 429,\n        headers: { 'Retry-After': status.retryAfter.toString() }\n      }\n    );\n    return response;\n  }\n  const response = await resolve(event);\n  return response;\n};\n```\n\nA custom store for the `RetryAfterRateLimiter` can also be used, in which the second argument to the constructor should be a [RateLimiterStore](https://github.com/ciscoheat/sveltekit-rate-limiter/blob/main/src/lib/server/index.ts#L24) that returns a unix timestamp describing when the request should be reattempted, based on the unit sent to it.\n\n## Clearing the limits\n\nClearing all rate limits can be done by calling the `clear` method of the rate limiter object.\n\n## Custom hash function\n\nThe default hash function is using `crypto.subtle` to generate a SHA-256 digest, but if isn't available in your environment, you can supply your own with the `hashFunction` option. Here's an example with the NodeJS `crypto` package:\n\n```ts\nimport crypto from 'crypto';\n\n// (input: string) => MaybePromise<string>\nconst hashFunction = (input: string) =>\n  crypto.createHash('sha256').update(input).digest('hex');\n```\n\n## Creating a custom limiter\n\nImplement the `RateLimiterPlugin` interface:\n\n```ts\ninterface RateLimiterPlugin {\n  hash: (event: RequestEvent) => MaybePromise<string | boolean | null>;\n  get rate(): Rate | Rate[];\n}\n```\n\nIn `hash`, return one of the following:\n\n- A `string` based on a [RequestEvent](https://kit.svelte.dev/docs/types#public-types-requestevent), which will be counted and checked against the rate.\n- A `boolean`, to short-circuit the plugin chain and make the request fail (`false`) or succeed (`true`) no matter the current rate.\n- Or `null`, to signify an indeterminate result and move to the next plugin in the chain, or fail the request if it's the last and no previous limiter have passed.\n\n### String hash rules\n\n- **The string will be hashed later**, so you don't need to use a hash function.\n- **The string cannot be empty**, in which case an exception will be thrown.\n\n### Example\n\nHere's the source for the IP + User Agent limiter:\n\n```ts\nimport type { RequestEvent } from '@sveltejs/kit';\nimport type { Rate, RateLimiterPlugin } from 'sveltekit-rate-limiter/server';\n\nclass IPUserAgentRateLimiter implements RateLimiterPlugin {\n  readonly rate: Rate | Rate[];\n\n  constructor(rate: Rate | Rate[]) {\n    this.rate = rate;\n  }\n\n  async hash(event: RequestEvent) {\n    const ua = event.request.headers.get('user-agent');\n    if (!ua) return false;\n    return event.getClientAddress() + ua;\n  }\n}\n```\n\nAdd your limiter to the `plugins` option to use it.\n\n```ts\nimport { RateLimiter } from 'sveltekit-rate-limiter/server';\n\nconst limiter = new RateLimiter({\n  plugins: [new CustomLimiter([5, 'm'])]\n  // The built-in limiters can be added as well.\n});\n```\n\n## Custom data for the limiter\n\nYou can specify a type parameter to `RateLimiter` that expands the `isLimited` method with an extra parameter. There you can add extra data that will be supplied to the custom limiters:\n\n```ts\nclass AllowDomain implements RateLimiterPlugin {\n  // Shortest rate, so it will be executed first\n  readonly rate: Rate = [0, '100ms'];\n  readonly allowedDomain: string;\n\n  constructor(allowedDomain: string) {\n    this.allowedDomain = allowedDomain;\n  }\n\n  async hash(_: RequestEvent, extraData: { email: string }) {\n    // Return true to bypass the rest of the plugin chain\n    return extraData.email.endsWith(this.allowedDomain) ? true : null;\n  }\n}\n```\n\n```ts\nconst limiter = new RateLimiter<{ email: string }>({\n  plugins: [new AllowDomain('company-domain.com')],\n  IP: [10, 'm']\n});\n\nexport const actions = {\n  default: async (event) => {\n    if (await limiter.isLimited(event, { email: event.locals.user.email })) {\n      throw error(429);\n    }\n  }\n};\n```\n","readmeFilename":""}