/var/www/greso.tech/server/nsm/node_modules/jwks-rsa/src/wrappers
NameSizeModeActions
cache.js5210644editdlrm
callbackSupport.js3580644editdlrm
index.js2770644editdlrm
interceptor.js7840644editdlrm
rateLimit.js11020644editdlrm
request.js14380644editdlrm
Edit: /var/www/greso.tech/server/nsm/node_modules/jwks-rsa/src/wrappers/rateLimit.js (1102B)
const logger = require('debug')('jwks'); const { RateLimiter } = require('limiter'); const JwksRateLimitError = require('../errors/JwksRateLimitError'); function rateLimitWrapper(client, { jwksRequestsPerMinute = 10 }) { const getSigningKey = client.getSigningKey.bind(client); const limiter = new RateLimiter(jwksRequestsPerMinute, 'minute', true); logger(`Configured rate limiting to JWKS endpoint at ${jwksRequestsPerMinute}/minute`); return async (kid) => await new Promise((resolve, reject) => { limiter.removeTokens(1, async (err, remaining) => { if (err) { reject(err); } logger('Requests to the JWKS endpoint available for the next minute:', remaining); if (remaining < 0) { logger('Too many requests to the JWKS endpoint'); reject(new JwksRateLimitError('Too many requests to the JWKS endpoint')); } else { try { const key = await getSigningKey(kid); resolve(key); } catch (error) { reject(error); } } }); }); } module.exports.default = rateLimitWrapper;