@discordeno/rest 19.0.0-next.654da9a → 19.0.0-next.7658ebb

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"invalidBucket.d.ts","sourceRoot":"","sources":["../src/invalidBucket.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,oBAAoB,CAiFtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;IAC1B,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAA;IACX,sGAAsG;IACtG,QAAQ,EAAE,MAAM,CAAA;IAChB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAA;IACrC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;IACzD,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAA;IAEnB,+DAA+D;IAC/D,eAAe,EAAE,MAAM,MAAM,CAAA;IAC7B,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,OAAO,CAAA;IAC/B,yCAAyC;IACzC,yBAAyB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,uDAAuD;IACvD,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,iIAAiI;IACjI,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAA;CACrE"}
1
+ {"version":3,"file":"invalidBucket.d.ts","sourceRoot":"","sources":["../src/invalidBucket.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,oBAAoB,CAkFtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sGAAsG;IACtG,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;IAC1B,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAA;IACX,sGAAsG;IACtG,QAAQ,EAAE,MAAM,CAAA;IAChB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAA;IACrC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAA;IACd,6DAA6D;IAC7D,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAA;IACzD,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAA;IAEnB,+DAA+D;IAC/D,eAAe,EAAE,MAAM,MAAM,CAAA;IAC7B,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,OAAO,CAAA;IAC/B,yCAAyC;IACzC,yBAAyB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,uDAAuD;IACvD,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,iIAAiI;IACjI,sBAAsB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAA;CACrE"}
@@ -1,2 +1,2 @@
1
- import{delay as e}from"@discordeno/utils";export function createInvalidRequestBucket(t){let r={current:t.current??0,max:t.max??1e4,interval:t.interval??6e5,timeoutId:t.timeoutId,safety:t.safety??1,errorStatuses:t.errorStatuses??[401,403,429],requested:t.requested??0,processing:!1,waiting:[],requestsAllowed:function(){return r.max-r.current-r.requested-r.safety},isRequestAllowed:function(){return r.requestsAllowed()>0},waitUntilRequestAvailable:async function(){return await new Promise(async e=>{r.isRequestAllowed()?(r.requested++,e()):(r.waiting.push(e),await r.processWaiting())})},processWaiting:async function(){if(!r.processing){for(r.processing=!0;r.waiting.length>0;)r.isRequestAllowed()?(r.requested++,r.waiting.shift()?.()):await e(1e3);r.processing=!1}},handleCompletedRequest:function(e,t){r.requested--,r.errorStatuses.includes(e)&&(429===e&&t||(r.current++,void 0===r.timeoutId&&(r.timeoutId=setTimeout(()=>{r.current=0,r.timeoutId=void 0},r.interval))))}};return r}
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnZhbGlkQnVja2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlbGF5IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5cbi8qKlxuICogQSBpbnZhbGlkIHJlcXVlc3QgYnVja2V0IGlzIHVzZWQgaW4gYSBzaW1pbGFyIG1hbm5lciBhcyBhIGxlYWt5IGJ1Y2tldCBidXQgYSBpbnZhbGlkIHJlcXVlc3QgYnVja2V0IGNhbiBiZSByZWZpbGxlZCBhcyBuZWVkZWQuXG4gKiBJdCdzIHB1cnBvc2UgaXMgdG8gbWFrZSBzdXJlIHRoZSBib3QgZG9lcyBub3QgaGl0IHRoZSBsaW1pdCB0byBnZXR0aW5nIGEgMSBociBiYW4uXG4gKlxuICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgdXNlZCB0byBjb25maWd1cmUgdGhpcyBidWNrZXQuXG4gKiBAcmV0dXJucyBSZWZpbGxpbmdCdWNrZXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUludmFsaWRSZXF1ZXN0QnVja2V0IChcbiAgb3B0aW9uczogSW52YWxpZFJlcXVlc3RCdWNrZXRPcHRpb25zXG4pOiBJbnZhbGlkUmVxdWVzdEJ1Y2tldCB7XG4gIGNvbnN0IGJ1Y2tldDogSW52YWxpZFJlcXVlc3RCdWNrZXQgPSB7XG4gICAgY3VycmVudDogb3B0aW9ucy5jdXJyZW50ID8/IDAsXG4gICAgbWF4OiBvcHRpb25zLm1heCA/PyAxMDAwMCxcbiAgICBpbnRlcnZhbDogb3B0aW9ucy5pbnRlcnZhbCA/PyA2MDAwMDAsXG4gICAgdGltZW91dElkOiBvcHRpb25zLnRpbWVvdXRJZCxcbiAgICBzYWZldHk6IG9wdGlvbnMuc2FmZXR5ID8/IDEsXG4gICAgZXJyb3JTdGF0dXNlczogb3B0aW9ucy5lcnJvclN0YXR1c2VzID8/IFs0MDEsIDQwMywgNDI5XSxcbiAgICByZXF1ZXN0ZWQ6IG9wdGlvbnMucmVxdWVzdGVkID8/IDAsXG4gICAgcHJvY2Vzc2luZzogZmFsc2UsXG5cbiAgICB3YWl0aW5nOiBbXSxcblxuICAgIHJlcXVlc3RzQWxsb3dlZDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1Y2tldC5tYXggLSBidWNrZXQuY3VycmVudCAtIGJ1Y2tldC5yZXF1ZXN0ZWQgLSBidWNrZXQuc2FmZXR5XG4gICAgfSxcblxuICAgIGlzUmVxdWVzdEFsbG93ZWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBidWNrZXQucmVxdWVzdHNBbGxvd2VkKCkgPiAwXG4gICAgfSxcblxuICAgIHdhaXRVbnRpbFJlcXVlc3RBdmFpbGFibGU6IGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yXG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgICAgLy8gSWYgd2hhdGV2ZXIgYW1vdW50IG9mIHJlcXVlc3RzIGlzIGxlZnQgaXMgbW9yZSB0aGFuIHRoZSBzYWZldHkgbWFyZ2luLCBhbGxvdyB0aGUgcmVxdWVzdFxuICAgICAgICBpZiAoYnVja2V0LmlzUmVxdWVzdEFsbG93ZWQoKSkge1xuICAgICAgICAgIGJ1Y2tldC5yZXF1ZXN0ZWQrK1xuICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJ1Y2tldC53YWl0aW5nLnB1c2gocmVzb2x2ZSlcbiAgICAgICAgICBhd2FpdCBidWNrZXQucHJvY2Vzc1dhaXRpbmcoKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sXG5cbiAgICBwcm9jZXNzV2FpdGluZzogYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gSWYgYWxyZWFkeSBwcm9jZXNzaW5nLCB0aGF0IGxvb3Agd2lsbCBoYW5kbGUgYWxsIHdhaXRpbmcgcmVxdWVzdHMuXG4gICAgICBpZiAoYnVja2V0LnByb2Nlc3NpbmcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIE1hcmsgYXMgcHJvY2Vzc2luZyBzbyBvdGhlciBsb29wcyBkb24ndCBzdGFydFxuICAgICAgYnVja2V0LnByb2Nlc3NpbmcgPSB0cnVlXG5cbiAgICAgIHdoaWxlIChidWNrZXQud2FpdGluZy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChidWNrZXQuaXNSZXF1ZXN0QWxsb3dlZCgpKSB7XG4gICAgICAgICAgYnVja2V0LnJlcXVlc3RlZCsrXG4gICAgICAgICAgLy8gUmVzb2x2ZSB0aGUgbmV4dCBpdGVtIGluIHRoZSBxdWV1ZVxuICAgICAgICAgIGJ1Y2tldC53YWl0aW5nLnNoaWZ0KCk/LigpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXdhaXQgZGVsYXkoMTAwMClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBNYXJrIGFzIGZhbHNlIHNvIG5leHQgcGVuZGluZyByZXF1ZXN0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgbmV3IGxvb3AuXG4gICAgICBidWNrZXQucHJvY2Vzc2luZyA9IGZhbHNlXG4gICAgfSxcblxuICAgIGhhbmRsZUNvbXBsZXRlZFJlcXVlc3Q6IGZ1bmN0aW9uIChjb2RlLCBzaGFyZWRTY29wZSkge1xuICAgICAgLy8gU2luY2UgcmVxdWVzdCBpcyBjb21wbGV0ZSwgd2UgY2FuIHJlbW92ZSBvbmUgZnJvbSByZXF1ZXN0ZWQuXG4gICAgICBidWNrZXQucmVxdWVzdGVkLS1cbiAgICAgIC8vIFNpbmNlIGl0IGlzIGFzIGEgdmFsaWQgcmVxdWVzdCwgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZ1xuICAgICAgaWYgKCFidWNrZXQuZXJyb3JTdGF0dXNlcy5pbmNsdWRlcyhjb2RlKSkgcmV0dXJuXG4gICAgICAvLyBTaGFyZWQgc2NvcGUgaXMgbm90IGNvbnNpZGVyZWQgaW52YWxpZFxuICAgICAgaWYgKGNvZGUgPT09IDQyOSAmJiBzaGFyZWRTY29wZSkgcmV0dXJuXG5cbiAgICAgIC8vIElOVkFMSUQgUkVRVUVTVCBXQVMgTUFERVxuXG4gICAgICAvLyBNYXJrIGEgcmVxdWVzdCBoYXMgYmVlbiBpbnZhbGlkXG4gICAgICBidWNrZXQuY3VycmVudCsrXG4gICAgICAvLyBJZiBhIHRpbWVvdXQgd2FzIG5vdCBzdGFydGVkLCBzdGFydCBhIHRpbWVvdXQgdG8gcmVzZXQgdGhpcyBidWNrZXRcbiAgICAgIGlmIChidWNrZXQudGltZW91dElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYnVja2V0LnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGJ1Y2tldC5jdXJyZW50ID0gMFxuICAgICAgICAgIGJ1Y2tldC50aW1lb3V0SWQgPSB1bmRlZmluZWRcbiAgICAgICAgfSwgYnVja2V0LmludGVydmFsKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBidWNrZXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZhbGlkUmVxdWVzdEJ1Y2tldE9wdGlvbnMge1xuICAvKiogY3VycmVudCBpbnZhbGlkIGFtb3VudCAqL1xuICBjdXJyZW50PzogbnVtYmVyXG4gIC8qKiBtYXggaW52YWxpZCByZXF1ZXN0cyBhbGxvd2VkIHVudGlsIGJhbi4gRGVmYXVsdHMgdG8gMTAsMDAwICovXG4gIG1heD86IG51bWJlclxuICAvKiogVGhlIHRpbWUgdGhhdCBkaXNjb3JkIGFsbG93cyB0byBtYWtlIHRoZSBtYXggbnVtYmVyIG9mIGludmFsaWQgcmVxdWVzdHMuIERlZmF1bHRzIHRvIDEwIG1pbnV0ZXMgKi9cbiAgaW50ZXJ2YWw/OiBudW1iZXJcbiAgLyoqIHRpbWVyIHRvIHJlc2V0IHRvIDAgKi9cbiAgdGltZW91dElkPzogTm9kZUpTLlRpbWVvdXRcbiAgLyoqIGhvdyBzYWZlIHRvIGJlIGZyb20gbWF4LiBEZWZhdWx0cyB0byAxICovXG4gIHNhZmV0eT86IG51bWJlclxuICAvKiogVGhlIHJlcXVlc3Qgc3RhdHVzZXMgdGhhdCBjb3VudCBhcyBhbiBpbnZhbGlkIHJlcXVlc3QuICovXG4gIGVycm9yU3RhdHVzZXM/OiBudW1iZXJbXVxuICAvKiogVGhlIGFtb3VudCBvZiByZXF1ZXN0cyB0aGF0IHdlcmUgcmVxdWVzdGVkIGZyb20gdGhpcyBidWNrZXQuICovXG4gIHJlcXVlc3RlZD86IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludmFsaWRSZXF1ZXN0QnVja2V0IHtcbiAgLyoqIGN1cnJlbnQgaW52YWxpZCBhbW91bnQgKi9cbiAgY3VycmVudDogbnVtYmVyXG4gIC8qKiBtYXggaW52YWxpZCByZXF1ZXN0cyBhbGxvd2VkIHVudGlsIGJhbi4gRGVmYXVsdHMgdG8gMTAsMDAwICovXG4gIG1heDogbnVtYmVyXG4gIC8qKiBUaGUgdGltZSB0aGF0IGRpc2NvcmQgYWxsb3dzIHRvIG1ha2UgdGhlIG1heCBudW1iZXIgb2YgaW52YWxpZCByZXF1ZXN0cy4gRGVmYXVsdHMgdG8gMTAgbWludXRlcyAqL1xuICBpbnRlcnZhbDogbnVtYmVyXG4gIC8qKiB0aW1lciB0byByZXNldCB0byAwICovXG4gIHRpbWVvdXRJZDogTm9kZUpTLlRpbWVvdXQgfCB1bmRlZmluZWRcbiAgLyoqIGhvdyBzYWZlIHRvIGJlIGZyb20gbWF4LiBEZWZhdWx0cyB0byAxICovXG4gIHNhZmV0eTogbnVtYmVyXG4gIC8qKiBUaGUgcmVxdWVzdCBzdGF0dXNlcyB0aGF0IGNvdW50IGFzIGFuIGludmFsaWQgcmVxdWVzdC4gKi9cbiAgZXJyb3JTdGF0dXNlczogbnVtYmVyW11cbiAgLyoqIFRoZSBhbW91bnQgb2YgcmVxdWVzdHMgdGhhdCB3ZXJlIHJlcXVlc3RlZCBmcm9tIHRoaXMgYnVja2V0LiAqL1xuICByZXF1ZXN0ZWQ6IG51bWJlclxuICAvKiogVGhlIHJlcXVlc3RzIHRoYXQgYXJlIGN1cnJlbnRseSBwZW5kaW5nLiAqL1xuICB3YWl0aW5nOiBBcnJheTwodmFsdWU6IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZD5cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSB3YWl0aW5nIHF1ZXVlIGlzIGFscmVhZHkgcHJvY2Vzc2luZy4gKi9cbiAgcHJvY2Vzc2luZzogYm9vbGVhblxuXG4gIC8qKiBHaXZlcyB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhbGxvd2VkLiAqL1xuICByZXF1ZXN0c0FsbG93ZWQ6ICgpID0+IG51bWJlclxuICAvKiogQ2hlY2tzIGlmIGEgcmVxdWVzdCBpcyBhbGxvd2VkIGF0IHRoaXMgdGltZS4gKi9cbiAgaXNSZXF1ZXN0QWxsb3dlZDogKCkgPT4gYm9vbGVhblxuICAvKiogV2FpdHMgdW50aWwgYSByZXF1ZXN0IGlzIGF2YWlsYWJsZSAqL1xuICB3YWl0VW50aWxSZXF1ZXN0QXZhaWxhYmxlOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4gIC8qKiBCZWdpbnMgcHJvY2Vzc2luZyB0aGUgd2FpdGluZyBxdWV1ZSBvZiByZXF1ZXN0cy4gKi9cbiAgcHJvY2Vzc1dhaXRpbmc6ICgpID0+IFByb21pc2U8dm9pZD5cbiAgLyoqIEhhbmRsZXIgZm9yIHdoZW5ldmVyIGEgcmVxdWVzdCBpcyB2YWxpZGF0ZWQuIFRoaXMgc2hvdWxkIHVwZGF0ZSB0aGUgcmVxdWVzdGVkIHZhbHVlcyBvciB0cmlnZ2VyIGFueSBvdGhlciBuZWNlc3Nhcnkgc3R1ZmYuICovXG4gIGhhbmRsZUNvbXBsZXRlZFJlcXVlc3Q6IChjb2RlOiBudW1iZXIsIHNoYXJlZFNjb3BlOiBib29sZWFuKSA9PiB2b2lkXG59XG4iXSwibmFtZXMiOlsiZGVsYXkiLCJjcmVhdGVJbnZhbGlkUmVxdWVzdEJ1Y2tldCIsIm9wdGlvbnMiLCJidWNrZXQiLCJjdXJyZW50IiwibWF4IiwiaW50ZXJ2YWwiLCJ0aW1lb3V0SWQiLCJzYWZldHkiLCJlcnJvclN0YXR1c2VzIiwicmVxdWVzdGVkIiwicHJvY2Vzc2luZyIsIndhaXRpbmciLCJyZXF1ZXN0c0FsbG93ZWQiLCJpc1JlcXVlc3RBbGxvd2VkIiwid2FpdFVudGlsUmVxdWVzdEF2YWlsYWJsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicHVzaCIsInByb2Nlc3NXYWl0aW5nIiwibGVuZ3RoIiwic2hpZnQiLCJoYW5kbGVDb21wbGV0ZWRSZXF1ZXN0IiwiY29kZSIsInNoYXJlZFNjb3BlIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJzZXRUaW1lb3V0Il0sIm1hcHBpbmdzIjoiQUFBQSxPQUFTQSxTQUFBQSxDQUFLLEtBQVEsbUJBQW1CLEFBU3pDLFFBQU8sU0FBU0MsMkJBQ2RDLENBQW9DLENBQ2QsQ0FDdEIsSUFBTUMsRUFBK0IsQ0FDbkNDLFFBQVNGLEVBQVFFLE9BQU8sRUFBSSxFQUM1QkMsSUFBS0gsRUFBUUcsR0FBRyxFQUFJLElBQ3BCQyxTQUFVSixFQUFRSSxRQUFRLEVBQUksSUFDOUJDLFVBQVdMLEVBQVFLLFNBQVMsQ0FDNUJDLE9BQVFOLEVBQVFNLE1BQU0sRUFBSSxFQUMxQkMsY0FBZVAsRUFBUU8sYUFBYSxFQUFJLENBQUMsSUFBSyxJQUFLLElBQUksQ0FDdkRDLFVBQVdSLEVBQVFRLFNBQVMsRUFBSSxFQUNoQ0MsV0FBWSxDQUFBLEVBRVpDLFFBQVMsRUFBRSxDQUVYQyxnQkFBaUIsVUFBWSxDQUMzQixPQUFPVixFQUFPRSxHQUFHLENBQUdGLEVBQU9DLE9BQU8sQ0FBR0QsRUFBT08sU0FBUyxDQUFHUCxFQUFPSyxNQUFNLEFBQ3ZFLEVBRUFNLGlCQUFrQixVQUFZLENBQzVCLE9BQU9YLEVBQU9VLGVBQWUsR0FBSyxDQUNwQyxFQUVBRSwwQkFBMkIsZ0JBQWtCLENBRTNDLE9BQU8sTUFBTSxJQUFJQyxRQUFRLE1BQU9DLEdBQVksQ0FFdENkLEVBQU9XLGdCQUFnQixJQUN6QlgsRUFBT08sU0FBUyxHQUNoQk8sTUFFQWQsRUFBT1MsT0FBTyxDQUFDTSxJQUFJLENBQUNELEdBQ3BCLE1BQU1kLEVBQU9nQixjQUFjLEdBRS9CLEVBQ0YsRUFFQUEsZUFBZ0IsZ0JBQWtCLENBRWhDLElBQUloQixFQUFPUSxVQUFVLEVBT3JCLElBRkFSLEVBQU9RLFVBQVUsQ0FBRyxDQUFBLEVBRWJSLEVBQU9TLE9BQU8sQ0FBQ1EsTUFBTSxDQUFHLEdBQ3pCakIsRUFBT1csZ0JBQWdCLElBQ3pCWCxFQUFPTyxTQUFTLEdBRWhCUCxFQUFPUyxPQUFPLENBQUNTLEtBQUssUUFFcEIsTUFBTXJCLEVBQU0sSUFLaEJHLENBQUFBLEVBQU9RLFVBQVUsQ0FBRyxDQUFBLEVBaEJuQixBQWlCSCxFQUVBVyx1QkFBd0IsU0FBVUMsQ0FBSSxDQUFFQyxDQUFXLENBQUUsQ0FFbkRyQixFQUFPTyxTQUFTLEdBRVhQLEVBQU9NLGFBQWEsQ0FBQ2dCLFFBQVEsQ0FBQ0YsS0FFdEIsTUFBVEEsR0FBZ0JDLElBS3BCckIsRUFBT0MsT0FBTyxHQUVXc0IsS0FBQUEsSUFBckJ2QixFQUFPSSxTQUFTLEVBQ2xCSixDQUFBQSxFQUFPSSxTQUFTLENBQUdvQixXQUFXLElBQU0sQ0FDbEN4QixFQUFPQyxPQUFPLENBQUcsRUFDakJELEVBQU9JLFNBQVMsQ0FBR21CLEtBQUFBLENBQ3JCLEVBQUd2QixFQUFPRyxRQUFRLENBQUEsR0FFdEIsQ0FDRixFQUVBLE9BQU9ILENBQ1QsQ0FBQyJ9
1
+ import{delay as e,logger as t}from"@discordeno/utils";export function createInvalidRequestBucket(i){let r={current:i.current??0,max:i.max??1e4,interval:i.interval??6e5,timeoutId:i.timeoutId,safety:i.safety??1,errorStatuses:i.errorStatuses??[401,403,429],requested:i.requested??0,processing:!1,waiting:[],requestsAllowed:function(){return r.max-r.current-r.requested-r.safety},isRequestAllowed:function(){return r.requestsAllowed()>0},waitUntilRequestAvailable:async function(){return await new Promise(async e=>{r.isRequestAllowed()?(r.requested++,e()):(r.waiting.push(e),await r.processWaiting())})},processWaiting:async function(){if(!r.processing){for(r.processing=!0;r.waiting.length>0;)t.info(`[InvalidBucket] processing waiting queue while loop ran with ${r.waiting.length} remaining.`),r.isRequestAllowed()?(r.requested++,r.waiting.shift()?.()):await e(1e3);r.processing=!1}},handleCompletedRequest:function(e,t){r.requested--,r.errorStatuses.includes(e)&&(429===e&&t||(r.current++,void 0===r.timeoutId&&(r.timeoutId=setTimeout(()=>{r.current=0,r.timeoutId=void 0},r.interval))))}};return r}
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnZhbGlkQnVja2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlbGF5LCBsb2dnZXIgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcblxuLyoqXG4gKiBBIGludmFsaWQgcmVxdWVzdCBidWNrZXQgaXMgdXNlZCBpbiBhIHNpbWlsYXIgbWFubmVyIGFzIGEgbGVha3kgYnVja2V0IGJ1dCBhIGludmFsaWQgcmVxdWVzdCBidWNrZXQgY2FuIGJlIHJlZmlsbGVkIGFzIG5lZWRlZC5cbiAqIEl0J3MgcHVycG9zZSBpcyB0byBtYWtlIHN1cmUgdGhlIGJvdCBkb2VzIG5vdCBoaXQgdGhlIGxpbWl0IHRvIGdldHRpbmcgYSAxIGhyIGJhbi5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGlzIGJ1Y2tldC5cbiAqIEByZXR1cm5zIFJlZmlsbGluZ0J1Y2tldFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW52YWxpZFJlcXVlc3RCdWNrZXQgKFxuICBvcHRpb25zOiBJbnZhbGlkUmVxdWVzdEJ1Y2tldE9wdGlvbnNcbik6IEludmFsaWRSZXF1ZXN0QnVja2V0IHtcbiAgY29uc3QgYnVja2V0OiBJbnZhbGlkUmVxdWVzdEJ1Y2tldCA9IHtcbiAgICBjdXJyZW50OiBvcHRpb25zLmN1cnJlbnQgPz8gMCxcbiAgICBtYXg6IG9wdGlvbnMubWF4ID8/IDEwMDAwLFxuICAgIGludGVydmFsOiBvcHRpb25zLmludGVydmFsID8/IDYwMDAwMCxcbiAgICB0aW1lb3V0SWQ6IG9wdGlvbnMudGltZW91dElkLFxuICAgIHNhZmV0eTogb3B0aW9ucy5zYWZldHkgPz8gMSxcbiAgICBlcnJvclN0YXR1c2VzOiBvcHRpb25zLmVycm9yU3RhdHVzZXMgPz8gWzQwMSwgNDAzLCA0MjldLFxuICAgIHJlcXVlc3RlZDogb3B0aW9ucy5yZXF1ZXN0ZWQgPz8gMCxcbiAgICBwcm9jZXNzaW5nOiBmYWxzZSxcblxuICAgIHdhaXRpbmc6IFtdLFxuXG4gICAgcmVxdWVzdHNBbGxvd2VkOiBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gYnVja2V0Lm1heCAtIGJ1Y2tldC5jdXJyZW50IC0gYnVja2V0LnJlcXVlc3RlZCAtIGJ1Y2tldC5zYWZldHlcbiAgICB9LFxuXG4gICAgaXNSZXF1ZXN0QWxsb3dlZDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGJ1Y2tldC5yZXF1ZXN0c0FsbG93ZWQoKSA+IDBcbiAgICB9LFxuXG4gICAgd2FpdFVudGlsUmVxdWVzdEF2YWlsYWJsZTogYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWFzeW5jLXByb21pc2UtZXhlY3V0b3JcbiAgICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgICAvLyBJZiB3aGF0ZXZlciBhbW91bnQgb2YgcmVxdWVzdHMgaXMgbGVmdCBpcyBtb3JlIHRoYW4gdGhlIHNhZmV0eSBtYXJnaW4sIGFsbG93IHRoZSByZXF1ZXN0XG4gICAgICAgIGlmIChidWNrZXQuaXNSZXF1ZXN0QWxsb3dlZCgpKSB7XG4gICAgICAgICAgYnVja2V0LnJlcXVlc3RlZCsrXG4gICAgICAgICAgcmVzb2x2ZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnVja2V0LndhaXRpbmcucHVzaChyZXNvbHZlKVxuICAgICAgICAgIGF3YWl0IGJ1Y2tldC5wcm9jZXNzV2FpdGluZygpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSxcblxuICAgIHByb2Nlc3NXYWl0aW5nOiBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyBJZiBhbHJlYWR5IHByb2Nlc3NpbmcsIHRoYXQgbG9vcCB3aWxsIGhhbmRsZSBhbGwgd2FpdGluZyByZXF1ZXN0cy5cbiAgICAgIGlmIChidWNrZXQucHJvY2Vzc2luZykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gTWFyayBhcyBwcm9jZXNzaW5nIHNvIG90aGVyIGxvb3BzIGRvbid0IHN0YXJ0XG4gICAgICBidWNrZXQucHJvY2Vzc2luZyA9IHRydWVcblxuICAgICAgd2hpbGUgKGJ1Y2tldC53YWl0aW5nLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbG9nZ2VyLmluZm8oYFtJbnZhbGlkQnVja2V0XSBwcm9jZXNzaW5nIHdhaXRpbmcgcXVldWUgd2hpbGUgbG9vcCByYW4gd2l0aCAke2J1Y2tldC53YWl0aW5nLmxlbmd0aH0gcmVtYWluaW5nLmApXG4gICAgICAgIGlmIChidWNrZXQuaXNSZXF1ZXN0QWxsb3dlZCgpKSB7XG4gICAgICAgICAgYnVja2V0LnJlcXVlc3RlZCsrXG4gICAgICAgICAgLy8gUmVzb2x2ZSB0aGUgbmV4dCBpdGVtIGluIHRoZSBxdWV1ZVxuICAgICAgICAgIGJ1Y2tldC53YWl0aW5nLnNoaWZ0KCk/LigpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXdhaXQgZGVsYXkoMTAwMClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBNYXJrIGFzIGZhbHNlIHNvIG5leHQgcGVuZGluZyByZXF1ZXN0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgbmV3IGxvb3AuXG4gICAgICBidWNrZXQucHJvY2Vzc2luZyA9IGZhbHNlXG4gICAgfSxcblxuICAgIGhhbmRsZUNvbXBsZXRlZFJlcXVlc3Q6IGZ1bmN0aW9uIChjb2RlLCBzaGFyZWRTY29wZSkge1xuICAgICAgLy8gU2luY2UgcmVxdWVzdCBpcyBjb21wbGV0ZSwgd2UgY2FuIHJlbW92ZSBvbmUgZnJvbSByZXF1ZXN0ZWQuXG4gICAgICBidWNrZXQucmVxdWVzdGVkLS1cbiAgICAgIC8vIFNpbmNlIGl0IGlzIGFzIGEgdmFsaWQgcmVxdWVzdCwgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZ1xuICAgICAgaWYgKCFidWNrZXQuZXJyb3JTdGF0dXNlcy5pbmNsdWRlcyhjb2RlKSkgcmV0dXJuXG4gICAgICAvLyBTaGFyZWQgc2NvcGUgaXMgbm90IGNvbnNpZGVyZWQgaW52YWxpZFxuICAgICAgaWYgKGNvZGUgPT09IDQyOSAmJiBzaGFyZWRTY29wZSkgcmV0dXJuXG5cbiAgICAgIC8vIElOVkFMSUQgUkVRVUVTVCBXQVMgTUFERVxuXG4gICAgICAvLyBNYXJrIGEgcmVxdWVzdCBoYXMgYmVlbiBpbnZhbGlkXG4gICAgICBidWNrZXQuY3VycmVudCsrXG4gICAgICAvLyBJZiBhIHRpbWVvdXQgd2FzIG5vdCBzdGFydGVkLCBzdGFydCBhIHRpbWVvdXQgdG8gcmVzZXQgdGhpcyBidWNrZXRcbiAgICAgIGlmIChidWNrZXQudGltZW91dElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYnVja2V0LnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGJ1Y2tldC5jdXJyZW50ID0gMFxuICAgICAgICAgIGJ1Y2tldC50aW1lb3V0SWQgPSB1bmRlZmluZWRcbiAgICAgICAgfSwgYnVja2V0LmludGVydmFsKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBidWNrZXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZhbGlkUmVxdWVzdEJ1Y2tldE9wdGlvbnMge1xuICAvKiogY3VycmVudCBpbnZhbGlkIGFtb3VudCAqL1xuICBjdXJyZW50PzogbnVtYmVyXG4gIC8qKiBtYXggaW52YWxpZCByZXF1ZXN0cyBhbGxvd2VkIHVudGlsIGJhbi4gRGVmYXVsdHMgdG8gMTAsMDAwICovXG4gIG1heD86IG51bWJlclxuICAvKiogVGhlIHRpbWUgdGhhdCBkaXNjb3JkIGFsbG93cyB0byBtYWtlIHRoZSBtYXggbnVtYmVyIG9mIGludmFsaWQgcmVxdWVzdHMuIERlZmF1bHRzIHRvIDEwIG1pbnV0ZXMgKi9cbiAgaW50ZXJ2YWw/OiBudW1iZXJcbiAgLyoqIHRpbWVyIHRvIHJlc2V0IHRvIDAgKi9cbiAgdGltZW91dElkPzogTm9kZUpTLlRpbWVvdXRcbiAgLyoqIGhvdyBzYWZlIHRvIGJlIGZyb20gbWF4LiBEZWZhdWx0cyB0byAxICovXG4gIHNhZmV0eT86IG51bWJlclxuICAvKiogVGhlIHJlcXVlc3Qgc3RhdHVzZXMgdGhhdCBjb3VudCBhcyBhbiBpbnZhbGlkIHJlcXVlc3QuICovXG4gIGVycm9yU3RhdHVzZXM/OiBudW1iZXJbXVxuICAvKiogVGhlIGFtb3VudCBvZiByZXF1ZXN0cyB0aGF0IHdlcmUgcmVxdWVzdGVkIGZyb20gdGhpcyBidWNrZXQuICovXG4gIHJlcXVlc3RlZD86IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludmFsaWRSZXF1ZXN0QnVja2V0IHtcbiAgLyoqIGN1cnJlbnQgaW52YWxpZCBhbW91bnQgKi9cbiAgY3VycmVudDogbnVtYmVyXG4gIC8qKiBtYXggaW52YWxpZCByZXF1ZXN0cyBhbGxvd2VkIHVudGlsIGJhbi4gRGVmYXVsdHMgdG8gMTAsMDAwICovXG4gIG1heDogbnVtYmVyXG4gIC8qKiBUaGUgdGltZSB0aGF0IGRpc2NvcmQgYWxsb3dzIHRvIG1ha2UgdGhlIG1heCBudW1iZXIgb2YgaW52YWxpZCByZXF1ZXN0cy4gRGVmYXVsdHMgdG8gMTAgbWludXRlcyAqL1xuICBpbnRlcnZhbDogbnVtYmVyXG4gIC8qKiB0aW1lciB0byByZXNldCB0byAwICovXG4gIHRpbWVvdXRJZDogTm9kZUpTLlRpbWVvdXQgfCB1bmRlZmluZWRcbiAgLyoqIGhvdyBzYWZlIHRvIGJlIGZyb20gbWF4LiBEZWZhdWx0cyB0byAxICovXG4gIHNhZmV0eTogbnVtYmVyXG4gIC8qKiBUaGUgcmVxdWVzdCBzdGF0dXNlcyB0aGF0IGNvdW50IGFzIGFuIGludmFsaWQgcmVxdWVzdC4gKi9cbiAgZXJyb3JTdGF0dXNlczogbnVtYmVyW11cbiAgLyoqIFRoZSBhbW91bnQgb2YgcmVxdWVzdHMgdGhhdCB3ZXJlIHJlcXVlc3RlZCBmcm9tIHRoaXMgYnVja2V0LiAqL1xuICByZXF1ZXN0ZWQ6IG51bWJlclxuICAvKiogVGhlIHJlcXVlc3RzIHRoYXQgYXJlIGN1cnJlbnRseSBwZW5kaW5nLiAqL1xuICB3YWl0aW5nOiBBcnJheTwodmFsdWU6IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZD5cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoZSB3YWl0aW5nIHF1ZXVlIGlzIGFscmVhZHkgcHJvY2Vzc2luZy4gKi9cbiAgcHJvY2Vzc2luZzogYm9vbGVhblxuXG4gIC8qKiBHaXZlcyB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzIHRoYXQgYXJlIGN1cnJlbnRseSBhbGxvd2VkLiAqL1xuICByZXF1ZXN0c0FsbG93ZWQ6ICgpID0+IG51bWJlclxuICAvKiogQ2hlY2tzIGlmIGEgcmVxdWVzdCBpcyBhbGxvd2VkIGF0IHRoaXMgdGltZS4gKi9cbiAgaXNSZXF1ZXN0QWxsb3dlZDogKCkgPT4gYm9vbGVhblxuICAvKiogV2FpdHMgdW50aWwgYSByZXF1ZXN0IGlzIGF2YWlsYWJsZSAqL1xuICB3YWl0VW50aWxSZXF1ZXN0QXZhaWxhYmxlOiAoKSA9PiBQcm9taXNlPHZvaWQ+XG4gIC8qKiBCZWdpbnMgcHJvY2Vzc2luZyB0aGUgd2FpdGluZyBxdWV1ZSBvZiByZXF1ZXN0cy4gKi9cbiAgcHJvY2Vzc1dhaXRpbmc6ICgpID0+IFByb21pc2U8dm9pZD5cbiAgLyoqIEhhbmRsZXIgZm9yIHdoZW5ldmVyIGEgcmVxdWVzdCBpcyB2YWxpZGF0ZWQuIFRoaXMgc2hvdWxkIHVwZGF0ZSB0aGUgcmVxdWVzdGVkIHZhbHVlcyBvciB0cmlnZ2VyIGFueSBvdGhlciBuZWNlc3Nhcnkgc3R1ZmYuICovXG4gIGhhbmRsZUNvbXBsZXRlZFJlcXVlc3Q6IChjb2RlOiBudW1iZXIsIHNoYXJlZFNjb3BlOiBib29sZWFuKSA9PiB2b2lkXG59XG4iXSwibmFtZXMiOlsiZGVsYXkiLCJsb2dnZXIiLCJjcmVhdGVJbnZhbGlkUmVxdWVzdEJ1Y2tldCIsIm9wdGlvbnMiLCJidWNrZXQiLCJjdXJyZW50IiwibWF4IiwiaW50ZXJ2YWwiLCJ0aW1lb3V0SWQiLCJzYWZldHkiLCJlcnJvclN0YXR1c2VzIiwicmVxdWVzdGVkIiwicHJvY2Vzc2luZyIsIndhaXRpbmciLCJyZXF1ZXN0c0FsbG93ZWQiLCJpc1JlcXVlc3RBbGxvd2VkIiwid2FpdFVudGlsUmVxdWVzdEF2YWlsYWJsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicHVzaCIsInByb2Nlc3NXYWl0aW5nIiwibGVuZ3RoIiwiaW5mbyIsInNoaWZ0IiwiaGFuZGxlQ29tcGxldGVkUmVxdWVzdCIsImNvZGUiLCJzaGFyZWRTY29wZSIsImluY2x1ZGVzIiwidW5kZWZpbmVkIiwic2V0VGltZW91dCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBU0EsU0FBQUEsQ0FBSyxDQUFFQyxVQUFBQSxDQUFNLEtBQVEsbUJBQW1CLEFBU2pELFFBQU8sU0FBU0MsMkJBQ2RDLENBQW9DLENBQ2QsQ0FDdEIsSUFBTUMsRUFBK0IsQ0FDbkNDLFFBQVNGLEVBQVFFLE9BQU8sRUFBSSxFQUM1QkMsSUFBS0gsRUFBUUcsR0FBRyxFQUFJLElBQ3BCQyxTQUFVSixFQUFRSSxRQUFRLEVBQUksSUFDOUJDLFVBQVdMLEVBQVFLLFNBQVMsQ0FDNUJDLE9BQVFOLEVBQVFNLE1BQU0sRUFBSSxFQUMxQkMsY0FBZVAsRUFBUU8sYUFBYSxFQUFJLENBQUMsSUFBSyxJQUFLLElBQUksQ0FDdkRDLFVBQVdSLEVBQVFRLFNBQVMsRUFBSSxFQUNoQ0MsV0FBWSxDQUFBLEVBRVpDLFFBQVMsRUFBRSxDQUVYQyxnQkFBaUIsVUFBWSxDQUMzQixPQUFPVixFQUFPRSxHQUFHLENBQUdGLEVBQU9DLE9BQU8sQ0FBR0QsRUFBT08sU0FBUyxDQUFHUCxFQUFPSyxNQUFNLEFBQ3ZFLEVBRUFNLGlCQUFrQixVQUFZLENBQzVCLE9BQU9YLEVBQU9VLGVBQWUsR0FBSyxDQUNwQyxFQUVBRSwwQkFBMkIsZ0JBQWtCLENBRTNDLE9BQU8sTUFBTSxJQUFJQyxRQUFRLE1BQU9DLEdBQVksQ0FFdENkLEVBQU9XLGdCQUFnQixJQUN6QlgsRUFBT08sU0FBUyxHQUNoQk8sTUFFQWQsRUFBT1MsT0FBTyxDQUFDTSxJQUFJLENBQUNELEdBQ3BCLE1BQU1kLEVBQU9nQixjQUFjLEdBRS9CLEVBQ0YsRUFFQUEsZUFBZ0IsZ0JBQWtCLENBRWhDLElBQUloQixFQUFPUSxVQUFVLEVBT3JCLElBRkFSLEVBQU9RLFVBQVUsQ0FBRyxDQUFBLEVBRWJSLEVBQU9TLE9BQU8sQ0FBQ1EsTUFBTSxDQUFHLEdBQzdCcEIsRUFBT3FCLElBQUksQ0FBQyxDQUFDLDZEQUE2RCxFQUFFbEIsRUFBT1MsT0FBTyxDQUFDUSxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQzFHakIsRUFBT1csZ0JBQWdCLElBQ3pCWCxFQUFPTyxTQUFTLEdBRWhCUCxFQUFPUyxPQUFPLENBQUNVLEtBQUssUUFFcEIsTUFBTXZCLEVBQU0sSUFLaEJJLENBQUFBLEVBQU9RLFVBQVUsQ0FBRyxDQUFBLEVBakJuQixBQWtCSCxFQUVBWSx1QkFBd0IsU0FBVUMsQ0FBSSxDQUFFQyxDQUFXLENBQUUsQ0FFbkR0QixFQUFPTyxTQUFTLEdBRVhQLEVBQU9NLGFBQWEsQ0FBQ2lCLFFBQVEsQ0FBQ0YsS0FFdEIsTUFBVEEsR0FBZ0JDLElBS3BCdEIsRUFBT0MsT0FBTyxHQUVXdUIsS0FBQUEsSUFBckJ4QixFQUFPSSxTQUFTLEVBQ2xCSixDQUFBQSxFQUFPSSxTQUFTLENBQUdxQixXQUFXLElBQU0sQ0FDbEN6QixFQUFPQyxPQUFPLENBQUcsRUFDakJELEVBQU9JLFNBQVMsQ0FBR29CLEtBQUFBLENBQ3JCLEVBQUd4QixFQUFPRyxRQUFRLENBQUEsR0FFdEIsQ0FDRixFQUVBLE9BQU9ILENBQ1QsQ0FBQyJ9
package/dist/manager.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Queue } from './queue.js';
2
- import type { ApplicationCommandPermissions, BigString, Camelize, CreateApplicationCommand, CreateAutoModerationRuleOptions, CreateChannelInvite, CreateForumPostWithMessage, CreateGuildChannel, CreateGuildEmoji, CreateMessageOptions, CreateScheduledEvent, CreateStageInstance, DeleteWebhookMessageOptions, DiscordActiveThreads, DiscordApplication, DiscordApplicationCommand, DiscordApplicationCommandPermissions, DiscordArchivedThreads, DiscordAutoModerationRule, DiscordChannel, DiscordEmoji, DiscordFollowedChannel, DiscordGetGatewayBot, DiscordIntegration, DiscordInvite, DiscordInviteMetadata, DiscordMember, DiscordMemberWithUser, DiscordMessage, DiscordScheduledEvent, DiscordStageInstance, DiscordStickerPack, DiscordTemplate, DiscordThreadMember, DiscordUser, DiscordWebhook, EditAutoModerationRuleOptions, EditChannelPermissionOverridesOptions, EditMessage, EditScheduledEvent, EditStageInstanceOptions, ExecuteWebhook, GetGuildPruneCountQuery, GetInvite, GetMessagesOptions, GetScheduledEvents, GetScheduledEventUsers, GetWebhookMessageOptions, InteractionCallbackData, InteractionResponse, ListArchivedThreads, ListGuildMembers, ModifyChannel, ModifyGuildChannelPositions, ModifyGuildEmoji, ModifyWebhook, SearchMembers, StartThreadWithMessage, StartThreadWithoutMessage, WithReason } from '@discordeno/types';
2
+ import type { ApplicationCommandPermissions, BigString, Camelize, CreateApplicationCommand, CreateAutoModerationRuleOptions, CreateChannelInvite, CreateForumPostWithMessage, CreateGuildChannel, CreateGuildEmoji, CreateMessageOptions, CreateScheduledEvent, CreateStageInstance, DeleteWebhookMessageOptions, DiscordActiveThreads, DiscordApplication, DiscordApplicationCommand, DiscordApplicationCommandPermissions, DiscordArchivedThreads, DiscordAutoModerationRule, DiscordChannel, DiscordEmoji, DiscordFollowedChannel, DiscordGetGatewayBot, DiscordIntegration, DiscordInvite, DiscordInviteMetadata, DiscordMember, DiscordMemberWithUser, DiscordMessage, DiscordScheduledEvent, DiscordStageInstance, DiscordStickerPack, DiscordTemplate, DiscordThreadMember, DiscordUser, DiscordWebhook, EditAutoModerationRuleOptions, EditChannelPermissionOverridesOptions, EditMessage, EditScheduledEvent, EditStageInstanceOptions, ExecuteWebhook, GetGuildPruneCountQuery, GetInvite, GetMessagesOptions, GetScheduledEvents, GetScheduledEventUsers, GetWebhookMessageOptions, InteractionCallbackData, InteractionResponse, ListArchivedThreads, ListGuildMembers, ModifyChannel, ModifyGuildChannelPositions, ModifyGuildEmoji, ModifyWebhook, SearchMembers, StartThreadWithMessage, StartThreadWithoutMessage, WithReason, CreateGuild, CreateGuildRole, DiscordGuild, DiscordRole, EditGuildRole, ModifyRolePositions } from '@discordeno/types';
3
3
  import type { InvalidRequestBucket } from './invalidBucket.js';
4
4
  export declare function createRestManager(options: CreateRestManagerOptions): RestManager;
5
5
  export interface CreateRestManagerOptions {
@@ -41,6 +41,8 @@ export interface RestManager {
41
41
  globallyRateLimited: boolean;
42
42
  /** Whether or not the rate limited paths are being processed to allow requests to be made once time is up. Defaults to false. */
43
43
  processingRateLimitedPaths: boolean;
44
+ /** The time in milliseconds to wait before deleting this queue if it is empty. Defaults to 60000(one minute). */
45
+ deleteQueueDelay: number;
44
46
  /** The queues that hold all the requests to be processed. */
45
47
  queues: Map<string, Queue>;
46
48
  /** The paths that are currently rate limited. */
@@ -130,6 +132,8 @@ export interface RestManager {
130
132
  };
131
133
  /** Routes for guild related endpoints. */
132
134
  guilds: {
135
+ /** Routes for handling a non-specific guild. */
136
+ all: () => string;
133
137
  /** Routes for a guilds automoderation. */
134
138
  automod: {
135
139
  /** Route for handling a guild's automoderation. */
@@ -152,6 +156,8 @@ export interface RestManager {
152
156
  emoji: (guildId: BigString, id: BigString) => string;
153
157
  /** Route for handling non-specific emojis. */
154
158
  emojis: (guildId: BigString) => string;
159
+ /** Route for handling a specific guild. */
160
+ guild: (guildId: BigString, withCounts?: boolean) => string;
155
161
  /** Route for handling a specific integration. */
156
162
  integration: (guildId: BigString, integrationId: BigString) => string;
157
163
  /** Route for handling non-specific integrations. */
@@ -188,6 +194,15 @@ export interface RestManager {
188
194
  /** Route for handling non-specific guild's templates. */
189
195
  all: (guildId: BigString) => string;
190
196
  };
197
+ /** Routes for handling a guild's roles. */
198
+ roles: {
199
+ /** Route for handling a specific guild role. */
200
+ one: (guildId: BigString, roleId: BigString) => string;
201
+ /** Route for handling a guild's roles. */
202
+ all: (guildId: BigString) => string;
203
+ /** Route for handling a members roles in a guild. */
204
+ member: (guildId: BigString, memberId: BigString, roleId: BigString) => string;
205
+ };
191
206
  };
192
207
  /** Routes for interaction related endpoints. */
193
208
  interactions: {
@@ -897,6 +912,20 @@ export interface RestManager {
897
912
  rules: (guildId: BigString) => Promise<Camelize<DiscordAutoModerationRule[]>>;
898
913
  };
899
914
  };
915
+ /**
916
+ * Creates a guild.
917
+ *
918
+ * @param options - The parameters for the creation of the guild.
919
+ * @returns An instance of the created {@link DiscordGuild}.
920
+ *
921
+ * @remarks
922
+ * ⚠️ This route can only be used by bots in __fewer than 10 guilds__.
923
+ *
924
+ * Fires a _Guild Create_ gateway event.
925
+ *
926
+ * @see {@link https://discord.com/developers/docs/resources/guild#create-guild}
927
+ */
928
+ create: (options: CreateGuild) => Promise<Camelize<DiscordGuild>>;
900
929
  /**
901
930
  * Gets the list of channels for a guild.
902
931
  *
@@ -909,6 +938,19 @@ export interface RestManager {
909
938
  * @see {@link https://discord.com/developers/docs/resources/guild#get-guild-channels}
910
939
  */
911
940
  channels: (guildId: BigString) => Promise<Camelize<DiscordChannel[]>>;
941
+ /**
942
+ * Deletes a guild.
943
+ *
944
+ * @param guildId - The ID of the guild to delete.
945
+ *
946
+ * @remarks
947
+ * The bot user must be the owner of the guild.
948
+ *
949
+ * Fires a _Guild Delete_ gateway event.
950
+ *
951
+ * @see {@link https://discord.com/developers/docs/resources/guild#delete-guild}
952
+ */
953
+ delete: (guildId: BigString) => Promise<void>;
912
954
  /**
913
955
  * Gets the list of emojis for a guild.
914
956
  *
@@ -1546,7 +1588,7 @@ export interface RestManager {
1546
1588
  *
1547
1589
  * @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#create-followup-message}
1548
1590
  */
1549
- followup: (token: string, options: InteractionResponse) => Promise<Camelize<DiscordMessage>>;
1591
+ followup: (token: string, options: InteractionCallbackData) => Promise<Camelize<DiscordMessage>>;
1550
1592
  /**
1551
1593
  * Sends a response to an interaction.
1552
1594
  *
@@ -1676,6 +1718,111 @@ export interface RestManager {
1676
1718
  };
1677
1719
  };
1678
1720
  };
1721
+ /** Role related helpers methods. */
1722
+ roles: {
1723
+ /**
1724
+ * Adds a role to a member.
1725
+ *
1726
+ * @param guildId - The ID of the guild the member to add the role to is in.
1727
+ * @param userId - The user ID of the member to add the role to.
1728
+ * @param roleId - The ID of the role to add to the member.
1729
+ *
1730
+ * @remarks
1731
+ * Requires the `MANAGE_ROLES` permission.
1732
+ *
1733
+ * Fires a _Guild Member Update_ gateway event.
1734
+ *
1735
+ * @see {@link https://discord.com/developers/docs/resources/guild#add-guild-member-role}
1736
+ */
1737
+ add: (guildId: BigString, userId: BigString, roleId: BigString, reason?: string) => Promise<void>;
1738
+ /**
1739
+ * Creates a role in a guild.
1740
+ *
1741
+ * @param guildId - The ID of the guild to create the role in.
1742
+ * @param options - The parameters for the creation of the role.
1743
+ * @returns An instance of the created {@link DiscordRole}.
1744
+ *
1745
+ * @remarks
1746
+ * Requires the `MANAGE_ROLES` permission.
1747
+ *
1748
+ * Fires a _Guild Role Create_ gateway event.
1749
+ *
1750
+ * @see {@link https://discord.com/developers/docs/resources/guild#create-guild-role}
1751
+ */
1752
+ create: (guildId: BigString, options: CreateGuildRole, reason?: string) => Promise<Camelize<DiscordRole>>;
1753
+ /**
1754
+ * Deletes a role from a guild.
1755
+ *
1756
+ * @param guildId - The ID of the guild to delete the role from.
1757
+ * @param roleId - The ID of the role to delete.
1758
+ *
1759
+ * @remarks
1760
+ * Requires the `MANAGE_ROLES` permission.
1761
+ *
1762
+ * Fires a _Guild Role Delete_ gateway event.
1763
+ *
1764
+ * @see {@link https://discord.com/developers/docs/resources/guild#delete-guild-role}
1765
+ */
1766
+ delete: (guildId: BigString, roleId: BigString) => Promise<void>;
1767
+ /**
1768
+ * Edits a role in a guild.
1769
+ *
1770
+ * @param guildId - The ID of the guild to edit the role in.
1771
+ * @param roleId - The ID of the role to edit.
1772
+ * @param options - The parameters for the edit of the role.
1773
+ * @returns An instance of the edited {@link DiscordRole}.
1774
+ *
1775
+ * @remarks
1776
+ * Requires the `MANAGE_ROLES` permission.
1777
+ *
1778
+ * Fires a _Guild Role Update_ gateway event.
1779
+ *
1780
+ * @see {@link https://discord.com/developers/docs/resources/guild#modify-guild-role}
1781
+ */
1782
+ edit: (guildId: BigString, roleId: BigString, options: EditGuildRole) => Promise<Camelize<DiscordRole>>;
1783
+ /**
1784
+ * Edits the positions of a set of roles.
1785
+ *
1786
+ * @param guildId - The ID of the guild to edit the role positions in.
1787
+ * @param options - The parameters for the edit of the role positions.
1788
+ * @returns A collection of {@link DiscordRole} objects assorted by role ID.
1789
+ *
1790
+ * @remarks
1791
+ * Requires the `MANAGE_ROLES` permission.
1792
+ *
1793
+ * Fires a _Guild Role Update_ gateway event for every role impacted in this change.
1794
+ *
1795
+ * @see {@link https://discord.com/developers/docs/resources/guild#modify-guild-role-positions}
1796
+ */
1797
+ positions: (guildId: BigString, options: ModifyRolePositions[]) => Promise<Camelize<DiscordRole[]>>;
1798
+ /**
1799
+ * Gets the list of roles for a guild.
1800
+ *
1801
+ * @param guildId - The ID of the guild to get the list of roles for.
1802
+ * @returns A collection of {@link DisorcRole} objects assorted by role ID.
1803
+ *
1804
+ * @remarks
1805
+ * ⚠️ This endpoint should be used sparingly due to {@link User} objects already being included in guild payloads.
1806
+ *
1807
+ * @see {@link https://discord.com/developers/docs/resources/guild#get-guild-roles}
1808
+ */
1809
+ list: (guildId: BigString) => Promise<Camelize<DiscordRole[]>>;
1810
+ /**
1811
+ * Removes a role from a member.
1812
+ *
1813
+ * @param guildId - The ID of the guild the member to remove the role from is in.
1814
+ * @param userId - The user ID of the member to remove the role from.
1815
+ * @param roleId - The ID of the role to remove from the member.
1816
+ *
1817
+ * @remarks
1818
+ * Requires the `MANAGE_ROLES` permission.
1819
+ *
1820
+ * Fires a _Guild Member Update_ gateway event.
1821
+ *
1822
+ * @see {@link https://discord.com/developers/docs/resources/guild#remove-guild-member-role}
1823
+ */
1824
+ remove: (guildId: BigString, userId: BigString, roleId: BigString, reason?: string) => Promise<void>;
1825
+ };
1679
1826
  };
1680
1827
  /** Webhook related helper methods. */
1681
1828
  webhooks: {
@@ -1869,6 +2016,21 @@ export interface RestManager {
1869
2016
  */
1870
2017
  channel: (userId: BigString) => Promise<Camelize<DiscordChannel>>;
1871
2018
  };
2019
+ /**
2020
+ * Adds a role to a member.
2021
+ *
2022
+ * @param guildId - The ID of the guild the member to add the role to is in.
2023
+ * @param userId - The user ID of the member to add the role to.
2024
+ * @param roleId - The ID of the role to add to the member.
2025
+ *
2026
+ * @remarks
2027
+ * Requires the `MANAGE_ROLES` permission.
2028
+ *
2029
+ * Fires a _Guild Member Update_ gateway event.
2030
+ *
2031
+ * @see {@link https://discord.com/developers/docs/resources/guild#add-guild-member-role}
2032
+ */
2033
+ addRole: (guildId: BigString, userId: BigString, roleId: BigString, reason?: string) => Promise<void>;
1872
2034
  /**
1873
2035
  * Adds a member to a thread.
1874
2036
  *
@@ -1967,6 +2129,20 @@ export interface RestManager {
1967
2129
  * @see {@link https://discord.com/developers/docs/interactions/application-commands#create-global-application-command}
1968
2130
  */
1969
2131
  createGlobalApplicationCommand: (command: CreateApplicationCommand) => Promise<Camelize<DiscordApplicationCommand>>;
2132
+ /**
2133
+ * Creates a guild.
2134
+ *
2135
+ * @param options - The parameters for the creation of the guild.
2136
+ * @returns An instance of the created {@link DiscordGuild}.
2137
+ *
2138
+ * @remarks
2139
+ * ⚠️ This route can only be used by bots in __fewer than 10 guilds__.
2140
+ *
2141
+ * Fires a _Guild Create_ gateway event.
2142
+ *
2143
+ * @see {@link https://discord.com/developers/docs/resources/guild#create-guild}
2144
+ */
2145
+ createGuild: (options: CreateGuild) => Promise<Camelize<DiscordGuild>>;
1970
2146
  /**
1971
2147
  * Creates an application command only accessible in a specific guild.
1972
2148
  *
@@ -2014,6 +2190,21 @@ export interface RestManager {
2014
2190
  * @see {@link https://discord.com/developers/docs/resources/channel#create-channel-invite}
2015
2191
  */
2016
2192
  createInvite: (channelId: BigString, options?: CreateChannelInvite) => Promise<Camelize<DiscordInvite>>;
2193
+ /**
2194
+ * Creates a role in a guild.
2195
+ *
2196
+ * @param guildId - The ID of the guild to create the role in.
2197
+ * @param options - The parameters for the creation of the role.
2198
+ * @returns An instance of the created {@link DiscordRole}.
2199
+ *
2200
+ * @remarks
2201
+ * Requires the `MANAGE_ROLES` permission.
2202
+ *
2203
+ * Fires a _Guild Role Create_ gateway event.
2204
+ *
2205
+ * @see {@link https://discord.com/developers/docs/resources/guild#create-guild-role}
2206
+ */
2207
+ createRole: (guildId: BigString, options: CreateGuildRole, reason?: string) => Promise<Camelize<DiscordRole>>;
2017
2208
  /**
2018
2209
  * Creates a scheduled event in a guild.
2019
2210
  *
@@ -2151,6 +2342,19 @@ export interface RestManager {
2151
2342
  * @see {@link https://discord.com/developers/docs/interactions/application-commands#delete-global-application-command}
2152
2343
  */
2153
2344
  deleteGlobalApplicationCommand: (commandId: BigString) => Promise<void>;
2345
+ /**
2346
+ * Deletes a guild.
2347
+ *
2348
+ * @param guildId - The ID of the guild to delete.
2349
+ *
2350
+ * @remarks
2351
+ * The bot user must be the owner of the guild.
2352
+ *
2353
+ * Fires a _Guild Delete_ gateway event.
2354
+ *
2355
+ * @see {@link https://discord.com/developers/docs/resources/guild#delete-guild}
2356
+ */
2357
+ deleteGuild: (guildId: BigString) => Promise<void>;
2154
2358
  /**
2155
2359
  * Deletes an application command registered in a guild.
2156
2360
  *
@@ -2232,6 +2436,20 @@ export interface RestManager {
2232
2436
  * @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#delete-original-interaction-response}
2233
2437
  */
2234
2438
  deleteOriginalInteractionResponse: (token: string) => Promise<void>;
2439
+ /**
2440
+ * Deletes a role from a guild.
2441
+ *
2442
+ * @param guildId - The ID of the guild to delete the role from.
2443
+ * @param roleId - The ID of the role to delete.
2444
+ *
2445
+ * @remarks
2446
+ * Requires the `MANAGE_ROLES` permission.
2447
+ *
2448
+ * Fires a _Guild Role Delete_ gateway event.
2449
+ *
2450
+ * @see {@link https://discord.com/developers/docs/resources/guild#delete-guild-role}
2451
+ */
2452
+ deleteRole: (guildId: BigString, roleId: BigString) => Promise<void>;
2235
2453
  /**
2236
2454
  * Deletes a scheduled event from a guild.
2237
2455
  *
@@ -2519,6 +2737,37 @@ export interface RestManager {
2519
2737
  editOriginalWebhookMessage: (webhookId: BigString, token: string, options: InteractionCallbackData & {
2520
2738
  threadId?: BigString;
2521
2739
  }) => Promise<Camelize<DiscordMessage>>;
2740
+ /**
2741
+ * Edits a role in a guild.
2742
+ *
2743
+ * @param guildId - The ID of the guild to edit the role in.
2744
+ * @param roleId - The ID of the role to edit.
2745
+ * @param options - The parameters for the edit of the role.
2746
+ * @returns An instance of the edited {@link DiscordRole}.
2747
+ *
2748
+ * @remarks
2749
+ * Requires the `MANAGE_ROLES` permission.
2750
+ *
2751
+ * Fires a _Guild Role Update_ gateway event.
2752
+ *
2753
+ * @see {@link https://discord.com/developers/docs/resources/guild#modify-guild-role}
2754
+ */
2755
+ editRole: (guildId: BigString, roleId: BigString, options: EditGuildRole) => Promise<Camelize<DiscordRole>>;
2756
+ /**
2757
+ * Edits the positions of a set of roles.
2758
+ *
2759
+ * @param guildId - The ID of the guild to edit the role positions in.
2760
+ * @param options - The parameters for the edit of the role positions.
2761
+ * @returns A collection of {@link DiscordRole} objects assorted by role ID.
2762
+ *
2763
+ * @remarks
2764
+ * Requires the `MANAGE_ROLES` permission.
2765
+ *
2766
+ * Fires a _Guild Role Update_ gateway event for every role impacted in this change.
2767
+ *
2768
+ * @see {@link https://discord.com/developers/docs/resources/guild#modify-guild-role-positions}
2769
+ */
2770
+ editRolePositions: (guildId: BigString, options: ModifyRolePositions[]) => Promise<Camelize<DiscordRole[]>>;
2522
2771
  /**
2523
2772
  * Edits a scheduled event.
2524
2773
  *
@@ -2968,6 +3217,18 @@ export interface RestManager {
2968
3217
  * @see {@link https://discord.com/developers/docs/resources/channel#list-public-archived-threads}
2969
3218
  */
2970
3219
  getPublicArchivedThreads: (channelId: BigString, options?: ListArchivedThreads) => Promise<Camelize<DiscordArchivedThreads>>;
3220
+ /**
3221
+ * Gets the list of roles for a guild.
3222
+ *
3223
+ * @param guildId - The ID of the guild to get the list of roles for.
3224
+ * @returns A collection of {@link DisorcRole} objects assorted by role ID.
3225
+ *
3226
+ * @remarks
3227
+ * ⚠️ This endpoint should be used sparingly due to {@link User} objects already being included in guild payloads.
3228
+ *
3229
+ * @see {@link https://discord.com/developers/docs/resources/guild#get-guild-roles}
3230
+ */
3231
+ getRoles: (guildId: BigString) => Promise<Camelize<DiscordRole[]>>;
2971
3232
  /**
2972
3233
  * Gets a scheduled event by its ID.
2973
3234
  *
@@ -3128,6 +3389,21 @@ export interface RestManager {
3128
3389
  * @see {@link https://discord.com/developers/docs/resources/channel#crosspost-message}
3129
3390
  */
3130
3391
  publishMessage: (channelId: BigString, messageId: BigString) => Promise<Camelize<DiscordMessage>>;
3392
+ /**
3393
+ * Removes a role from a member.
3394
+ *
3395
+ * @param guildId - The ID of the guild the member to remove the role from is in.
3396
+ * @param userId - The user ID of the member to remove the role from.
3397
+ * @param roleId - The ID of the role to remove from the member.
3398
+ *
3399
+ * @remarks
3400
+ * Requires the `MANAGE_ROLES` permission.
3401
+ *
3402
+ * Fires a _Guild Member Update_ gateway event.
3403
+ *
3404
+ * @see {@link https://discord.com/developers/docs/resources/guild#remove-guild-member-role}
3405
+ */
3406
+ removeRole: (guildId: BigString, userId: BigString, roleId: BigString, reason?: string) => Promise<void>;
3131
3407
  /**
3132
3408
  * Removes a member from a thread.
3133
3409
  *
@@ -3192,7 +3468,7 @@ export interface RestManager {
3192
3468
  *
3193
3469
  * @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#create-followup-message}
3194
3470
  */
3195
- sendFollowupMessage: (token: string, options: InteractionResponse) => Promise<Camelize<DiscordMessage>>;
3471
+ sendFollowupMessage: (token: string, options: InteractionCallbackData) => Promise<Camelize<DiscordMessage>>;
3196
3472
  /**
3197
3473
  * Sends a response to an interaction.
3198
3474
  *