@discordeno/rest 22.0.1-next.01a591e → 22.0.1-next.09f2dfd
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.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/invalidBucket.d.ts.map +1 -1
- package/dist/invalidBucket.js +1 -1
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +42 -20
- package/dist/queue.d.ts.map +1 -1
- package/dist/queue.js +14 -6
- package/dist/routes.d.ts +7 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +208 -187
- package/dist/types.d.ts +220 -171
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/typings/routes.d.ts +6 -0
- package/dist/typings/routes.d.ts.map +1 -1
- package/dist/typings/routes.js +1 -1
- package/package.json +17 -19
package/dist/queue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAElE,qBAAa,KAAK;IAChB,uBAAuB;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAK;IACtB,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAK;IAChB,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAK;IACrB,0BAA0B;IAC1B,SAAS,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IACtC,+CAA+C;IAC/C,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAM;IAC/D,+CAA+C;IAC/C,OAAO,EAAE,kBAAkB,EAAE,CAAM;IACnC,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAS;IAC5B,8DAA8D;IAC9D,iBAAiB,EAAE,OAAO,CAAS;IACnC,4CAA4C;IAC5C,YAAY,EAAE,OAAO,CAAS;IAC9B,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,qFAAqF;IACrF,QAAQ,EAAE,MAAM,CAAK;IACrB,iHAAiH;IACjH,gBAAgB,EAAE,MAAM,CAAS;IACjC,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACpC;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY;IAYpD,iEAAiE;IACjE,gBAAgB,IAAI,OAAO;IAI3B,kEAAkE;IAC5D,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAahD,2DAA2D;IACrD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBrC,4DAA4D;IACtD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAyDrC,sBAAsB,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAkB9F,2HAA2H;IACrH,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7D,gFAAgF;IAChF,OAAO,IAAI,IAAI;IA8Bf,mFAAmF;IACnF,gBAAgB,IAAI,OAAO;IAU3B,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC3B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,iHAAiH;IACjH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/queue.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { setTimeout } from 'node:timers';
|
|
1
2
|
import { delay } from '@discordeno/utils';
|
|
2
3
|
export class Queue {
|
|
3
4
|
constructor(rest, options){
|
|
@@ -80,14 +81,21 @@ export class Queue {
|
|
|
80
81
|
this.timeoutId ??= setTimeout(()=>{
|
|
81
82
|
this.remaining = this.max;
|
|
82
83
|
this.timeoutId = undefined;
|
|
83
|
-
}, this.interval);
|
|
84
|
+
}, this.interval).unref();
|
|
84
85
|
}
|
|
85
86
|
// Remove from queue, we are executing it.
|
|
86
87
|
this.pending.shift();
|
|
87
88
|
// Check if this request is able to be made globally
|
|
88
89
|
await this.rest.invalidBucket.waitUntilRequestAvailable();
|
|
89
|
-
await this.rest.sendRequest(request)
|
|
90
|
-
|
|
90
|
+
await this.rest.sendRequest(request).catch((e)=>{
|
|
91
|
+
this.rest.logger.debug(`Queue ${this.queueType} ${this.url} encountered an error when sending a request.`, e);
|
|
92
|
+
request.reject({
|
|
93
|
+
ok: false,
|
|
94
|
+
status: 999,
|
|
95
|
+
error: 'The queue encontered an unexpected error sending a request.',
|
|
96
|
+
errorObject: e
|
|
97
|
+
});
|
|
98
|
+
});
|
|
91
99
|
}
|
|
92
100
|
}
|
|
93
101
|
this.rest.logger.debug(`Queue ${this.queueType} ${this.url} process pending while loop exited with ${this.pending.length}.`);
|
|
@@ -107,7 +115,7 @@ export class Queue {
|
|
|
107
115
|
this.timeoutId ??= setTimeout(()=>{
|
|
108
116
|
this.remaining = this.max;
|
|
109
117
|
this.timeoutId = undefined;
|
|
110
|
-
}, headers.interval);
|
|
118
|
+
}, headers.interval).unref();
|
|
111
119
|
}
|
|
112
120
|
}
|
|
113
121
|
/** Checks if a request is available and adds it to the queue. Also triggers queue processing if not already processing. */ async makeRequest(options) {
|
|
@@ -136,7 +144,7 @@ export class Queue {
|
|
|
136
144
|
this.rest.logger.debug(`[Queue] ${this.queueType} ${this.url}. Deleted! Remaining: (${this.rest.queues.size})`, [
|
|
137
145
|
...this.rest.queues.values()
|
|
138
146
|
].map((queue)=>`${queue.queueType}${queue.url}`));
|
|
139
|
-
}, this.deleteQueueDelay);
|
|
147
|
+
}, this.deleteQueueDelay).unref();
|
|
140
148
|
}
|
|
141
149
|
/** Simply checks if the queue is able to be cleared or it has requests pending. */ isQueueClearable() {
|
|
142
150
|
if (this.firstRequest) return false;
|
|
@@ -151,4 +159,4 @@ export class Queue {
|
|
|
151
159
|
}
|
|
152
160
|
}
|
|
153
161
|
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWV1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWxheSB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBSZXN0TWFuYWdlciwgU2VuZFJlcXVlc3RPcHRpb25zIH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGNsYXNzIFF1ZXVlIHtcbiAgLyoqIFRoZSByZXN0IG1hbmFnZXIgKi9cbiAgcmVzdDogUmVzdE1hbmFnZXJcbiAgLyoqIEFtb3VudCBvZiByZXF1ZXN0cyB0aGF0IGhhdmUgYXJlIHJlbWFpbmluZy4gRGVmYXVsdHMgdG8gMS4gKi9cbiAgcmVtYWluaW5nOiBudW1iZXIgPSAxXG4gIC8qKiBNYXggcmVxdWVzdHMgZm9yIHRoaXMgdGhpcy4gRGVmYXVsdHMgdG8gMS4gKi9cbiAgbWF4OiBudW1iZXIgPSAxXG4gIC8qKiBUaGUgdGltZSB0aGF0IGRpc2NvcmQgYWxsb3dzIHRvIG1ha2UgdGhlIG1heCBudW1iZXIgb2YgcmVxdWVzdHMuIERlZmF1bHRzIHRvIDAgKi9cbiAgaW50ZXJ2YWw6IG51bWJlciA9IDBcbiAgLyoqIHRpbWVyIHRvIHJlc2V0IHRvIDAgKi9cbiAgdGltZW91dElkOiBOb2RlSlMuVGltZW91dCB8IHVuZGVmaW5lZFxuICAvKiogVGhlIHJlcXVlc3RzIHRoYXQgYXJlIGN1cnJlbnRseSBwZW5kaW5nLiAqL1xuICB3YWl0aW5nOiBBcnJheTwodmFsdWU6IHZvaWQgfCBQcm9taXNlTGlrZTx2b2lkPikgPT4gdm9pZD4gPSBbXVxuICAvKiogVGhlIHJlcXVlc3RzIHRoYXQgYXJlIGN1cnJlbnRseSBwZW5kaW5nLiAqL1xuICBwZW5kaW5nOiBTZW5kUmVxdWVzdE9wdGlvbnNbXSA9IFtdXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgd2FpdGluZyBxdWV1ZSBpcyBhbHJlYWR5IHByb2Nlc3NpbmcuICovXG4gIHByb2Nlc3Npbmc6IGJvb2xlYW4gPSBmYWxzZVxuICAvKiogV2hldGhlciBvciBub3QgdGhlIHBlbmRpbmcgcXVldWUgaXMgYWxyZWFkeSBwcm9jZXNzaW5nLiAqL1xuICBwcm9jZXNzaW5nUGVuZGluZzogYm9vbGVhbiA9IGZhbHNlXG4gIC8qKiBXaGV0aGVyIHRoZSBmaXJzdCByZXF1ZXN0IGlzIHBlbmRpbmcuICovXG4gIGZpcnN0UmVxdWVzdDogYm9vbGVhbiA9IGZhbHNlXG4gIC8qKiBUaGUgdXJsIHRoYXQgYWxsIHRoZSByZXF1ZXN0cyBpbiB0aGlzIHF1ZXVlIGFyZSBzZW50IHRvLiAqL1xuICB1cmw6IHN0cmluZ1xuICAvKiogV2hlbiByZXF1ZXN0cyBzdGFydGVkIGJlaW5nIG1hZGUgdG8gZGV0ZXJtaW5lIHdoZW4gdGhlIGludGVydmFsIHdpbGwgcmVzZXQgaXQuICovXG4gIGZyb3plbkF0OiBudW1iZXIgPSAwXG4gIC8qKiBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgZGVsZXRpbmcgdGhpcyBxdWV1ZSBpZiBpdCBpcyBlbXB0eS4gRGVmYXVsdHMgdG8gNjAwMDAob25lIG1pbnV0ZSkuICovXG4gIGRlbGV0ZVF1ZXVlRGVsYXk6IG51bWJlciA9IDYwMDAwXG4gIC8qKiBUaGUgdGltZW91dCBmb3IgdGhlIGRlbGV0aW9uIG9mIHRoaXMgcXVldWUgKi9cbiAgZGVsZXRlUXVldWVUaW1lb3V0PzogTm9kZUpTLlRpbWVvdXRcbiAgLyoqXG4gICAqIFRoZSBpZGVudGlmaWVyIGZvciB0aGlzIHJlcXVlc3QsIG1heSBiZSB0aGUgcmVxdWVzdCBhdXRob3JpemF0aW9uIG9yIGZhbGxiYWNrIHRvIHRoZSBib3QgYXV0aFxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBUaGlzIGlzIHVzZWQgdG8gZ2V0IHRoZSBpZGVudGlmeSB0aGlzIHF1ZXVlIGZyb20gdGhlIHF1ZXVlIG1hcHBpbmcgb2YgdGhlIHJlc3QgbWFuYWdlclxuICAgKi9cbiAgaWRlbnRpZmllcjogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IocmVzdDogUmVzdE1hbmFnZXIsIG9wdGlvbnM6IFF1ZXVlT3B0aW9ucykge1xuICAgIHRoaXMucmVzdCA9IHJlc3RcbiAgICB0aGlzLnVybCA9IG9wdGlvbnMudXJsXG4gICAgdGhpcy5pZGVudGlmaWVyID0gb3B0aW9ucy5pZGVudGlmaWVyXG5cbiAgICBpZiAob3B0aW9ucy5pbnRlcnZhbCkgdGhpcy5pbnRlcnZhbCA9IG9wdGlvbnMuaW50ZXJ2YWxcbiAgICBpZiAob3B0aW9ucy5tYXgpIHRoaXMubWF4ID0gb3B0aW9ucy5tYXhcbiAgICBpZiAob3B0aW9ucy5yZW1haW5pbmcpIHRoaXMucmVtYWluaW5nID0gb3B0aW9ucy5yZW1haW5pbmdcbiAgICBpZiAob3B0aW9ucy50aW1lb3V0SWQpIHRoaXMudGltZW91dElkID0gb3B0aW9ucy50aW1lb3V0SWRcbiAgICBpZiAob3B0aW9ucy5kZWxldGVRdWV1ZURlbGF5KSB0aGlzLmRlbGV0ZVF1ZXVlRGVsYXkgPSBvcHRpb25zLmRlbGV0ZVF1ZXVlRGVsYXlcbiAgfVxuXG4gIC8qKiBDaGVjayBpZiB0aGVyZSBpcyBhbnkgcmVtYWluaW5nIHJlcXVlc3RzIHRoYXQgYXJlIGFsbG93ZWQuICovXG4gIGlzUmVxdWVzdEFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVtYWluaW5nID4gMFxuICB9XG5cbiAgLyoqIFBhdXNlcyB0aGUgZXhlY3V0aW9uIHVudGlsIGEgcmVxdWVzdCBpcyBhbGxvd2VkIHRvIGJlIG1hZGUuICovXG4gIGFzeW5jIHdhaXRVbnRpbFJlcXVlc3RBdmFpbGFibGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICAvLyBJZiB3aGF0ZXZlciBhbW91bnQgb2YgcmVxdWVzdHMgaXMgbGVmdCBpcyBtb3JlIHRoYW4gdGhlIHNhZmV0eSBtYXJnaW4sIGFsbG93IHRoZSByZXF1ZXN0XG4gICAgICBpZiAodGhpcy5pc1JlcXVlc3RBbGxvd2VkKCkpIHtcbiAgICAgICAgLy8gdGhpcy5yZW1haW5pbmcrKztcbiAgICAgICAgcmVzb2x2ZSgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLndhaXRpbmcucHVzaChyZXNvbHZlKVxuICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NXYWl0aW5nKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqIFByb2Nlc3MgdGhlIHF1ZXVlIG9mIHJlcXVlc3RzIHdhaXRpbmcgdG8gYmUgaGFuZGxlZC4gKi9cbiAgYXN5bmMgcHJvY2Vzc1dhaXRpbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gSWYgYWxyZWFkeSBwcm9jZXNzaW5nLCB0aGF0IGxvb3Agd2lsbCBoYW5kbGUgYWxsIHdhaXRpbmcgcmVxdWVzdHMuXG4gICAgaWYgKHRoaXMucHJvY2Vzc2luZykgcmV0dXJuXG4gICAgLy8gTWFyayBhcyBwcm9jZXNzaW5nIHNvIG90aGVyIGxvb3BzIGRvbid0IHN0YXJ0XG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZVxuXG4gICAgd2hpbGUgKHRoaXMud2FpdGluZy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnJlc3QubG9nZ2VyLmRlYnVnKGBbUXVldWVdICR7dGhpcy5xdWV1ZVR5cGV9ICR7dGhpcy51cmx9IHByb2Nlc3Mgd2FpdGluZyB3aGlsZSBsb29wIHJhbi5gKVxuICAgICAgaWYgKHRoaXMuaXNSZXF1ZXN0QWxsb3dlZCgpKSB7XG4gICAgICAgIC8vIFJlc29sdmUgdGhlIG5leHQgaXRlbSBpbiB0aGUgcXVldWVcbiAgICAgICAgdGhpcy53YWl0aW5nLnNoaWZ0KCk/LigpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCBkZWxheSgxMDAwKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1hcmsgYXMgZmFsc2Ugc28gbmV4dCBwZW5kaW5nIHJlcXVlc3QgY2FuIGJlIHRyaWdnZXJlZCBieSBuZXcgbG9vcC5cbiAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZVxuICB9XG5cbiAgLyoqIFByb2Nlc3MgdGhlIHF1ZXVlIG9mIGFsbCByZXF1ZXN0cyBwZW5kaW5nIHRvIGJlIHNlbnQuICovXG4gIGFzeW5jIHByb2Nlc3NQZW5kaW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIElmIGFscmVhZHkgcHJvY2Vzc2luZywgdGhhdCBsb29wIHdpbGwgaGFuZGxlIGFsbCBwZW5kaW5nIHJlcXVlc3RzLlxuICAgIGlmICh0aGlzLnByb2Nlc3NpbmdQZW5kaW5nIHx8ICF0aGlzLnBlbmRpbmcubGVuZ3RoKSByZXR1cm5cblxuICAgIC8vIE1hcmsgYXMgcHJvY2Vzc2luZyBzbyBvdGhlciBsb29wcyBkb24ndCBzdGFydFxuICAgIHRoaXMucHJvY2Vzc2luZ1BlbmRpbmcgPSB0cnVlXG5cbiAgICB3aGlsZSAodGhpcy5wZW5kaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucmVzdC5sb2dnZXIuZGVidWcoYFF1ZXVlICR7dGhpcy5xdWV1ZVR5cGV9ICR7dGhpcy51cmx9IHByb2Nlc3MgcGVuZGluZyB3aGlsZSBsb29wIHJhbiB3aXRoICR7dGhpcy5wZW5kaW5nLmxlbmd0aH0uYClcbiAgICAgIGlmICghdGhpcy5maXJzdFJlcXVlc3QgJiYgIXRoaXMuaXNSZXF1ZXN0QWxsb3dlZCgpKSB7XG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KClcbiAgICAgICAgY29uc3QgZnV0dXJlID0gdGhpcy5mcm96ZW5BdCArIHRoaXMuaW50ZXJ2YWxcbiAgICAgICAgYXdhaXQgZGVsYXkoZnV0dXJlID4gbm93ID8gZnV0dXJlIC0gbm93IDogMTAwMClcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVxdWVzdCA9IHRoaXMucGVuZGluZ1swXVxuICAgICAgaWYgKHJlcXVlc3QpIHtcbiAgICAgICAgY29uc3QgYmFzaWNVUkwgPSB0aGlzLnJlc3Quc2ltcGxpZnlVcmwocmVxdWVzdC5yb3V0ZSwgcmVxdWVzdC5tZXRob2QpXG5cbiAgICAgICAgLy8gSWYgdGhpcyB1cmwgaXMgc3RpbGwgcmF0ZSBsaW1pdGVkLCB0cnkgYWdhaW5cbiAgICAgICAgY29uc3QgdXJsUmVzZXRJbiA9IHRoaXMucmVzdC5jaGVja1JhdGVMaW1pdHMoYmFzaWNVUkwsIHRoaXMuaWRlbnRpZmllcilcbiAgICAgICAgaWYgKHVybFJlc2V0SW4pIGF3YWl0IGRlbGF5KHVybFJlc2V0SW4pXG5cbiAgICAgICAgLy8gSUYgQSBCVUNLRVQgRVhJU1RTLCBDSEVDSyBUSEUgQlVDS0VUJ1MgUkFURSBMSU1JVFNcbiAgICAgICAgY29uc3QgYnVja2V0UmVzZXRJbiA9IHJlcXVlc3QuYnVja2V0SWQgPyB0aGlzLnJlc3QuY2hlY2tSYXRlTGltaXRzKHJlcXVlc3QuYnVja2V0SWQsIHRoaXMuaWRlbnRpZmllcikgOiBmYWxzZVxuICAgICAgICBpZiAoYnVja2V0UmVzZXRJbikgYXdhaXQgZGVsYXkoYnVja2V0UmVzZXRJbilcblxuICAgICAgICB0aGlzLmZpcnN0UmVxdWVzdCA9IGZhbHNlXG4gICAgICAgIHRoaXMucmVtYWluaW5nLS1cblxuICAgICAgICBpZiAodGhpcy5yZW1haW5pbmcgPT09IDAgJiYgdGhpcy5pbnRlcnZhbCAhPT0gMCkge1xuICAgICAgICAgIHRoaXMudGltZW91dElkID8/PSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVtYWluaW5nID0gdGhpcy5tYXhcbiAgICAgICAgICAgIHRoaXMudGltZW91dElkID0gdW5kZWZpbmVkXG4gICAgICAgICAgfSwgdGhpcy5pbnRlcnZhbClcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSBmcm9tIHF1ZXVlLCB3ZSBhcmUgZXhlY3V0aW5nIGl0LlxuICAgICAgICB0aGlzLnBlbmRpbmcuc2hpZnQoKVxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIHJlcXVlc3QgaXMgYWJsZSB0byBiZSBtYWRlIGdsb2JhbGx5XG4gICAgICAgIGF3YWl0IHRoaXMucmVzdC5pbnZhbGlkQnVja2V0LndhaXRVbnRpbFJlcXVlc3RBdmFpbGFibGUoKVxuXG4gICAgICAgIGF3YWl0IHRoaXMucmVzdFxuICAgICAgICAgIC5zZW5kUmVxdWVzdChyZXF1ZXN0KVxuICAgICAgICAgIC8vIFNob3VsZCBiZSBoYW5kbGVkIGluIHNlbmRSZXF1ZXN0LCB0aGlzIGNhdGNoIGp1c3QgcHJldmVudHMgYm90cyBmcm9tIGR5aW5nXG4gICAgICAgICAgLmNhdGNoKCgpID0+IG51bGwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZXN0LmxvZ2dlci5kZWJ1ZyhgUXVldWUgJHt0aGlzLnF1ZXVlVHlwZX0gJHt0aGlzLnVybH0gcHJvY2VzcyBwZW5kaW5nIHdoaWxlIGxvb3AgZXhpdGVkIHdpdGggJHt0aGlzLnBlbmRpbmcubGVuZ3RofS5gKVxuXG4gICAgLy8gTWFyayBhcyBmYWxzZSBzbyBuZXh0IHBlbmRpbmcgcmVxdWVzdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IG5ldyBsb29wLlxuICAgIHRoaXMucHJvY2Vzc2luZ1BlbmRpbmcgPSBmYWxzZVxuICAgIHRoaXMuY2xlYW51cCgpXG4gIH1cblxuICBoYW5kbGVDb21wbGV0ZWRSZXF1ZXN0KGhlYWRlcnM6IHsgbWF4PzogbnVtYmVyOyBpbnRlcnZhbD86IG51bWJlcjsgcmVtYWluaW5nPzogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICBpZiAoaGVhZGVycy5tYXggPT09IDApIHtcbiAgICAgIHRoaXMucmVtYWluaW5nKytcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghdGhpcy5mcm96ZW5BdCkgdGhpcy5mcm96ZW5BdCA9IERhdGUubm93KClcbiAgICBpZiAoaGVhZGVycy5pbnRlcnZhbCAhPT0gdW5kZWZpbmVkKSB0aGlzLmludGVydmFsID0gaGVhZGVycy5pbnRlcnZhbFxuICAgIGlmIChoZWFkZXJzLnJlbWFpbmluZyAhPT0gdW5kZWZpbmVkKSB0aGlzLnJlbWFpbmluZyA9IGhlYWRlcnMucmVtYWluaW5nXG5cbiAgICBpZiAodGhpcy5yZW1haW5pbmcgPD0gMSkge1xuICAgICAgdGhpcy50aW1lb3V0SWQgPz89IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbWFpbmluZyA9IHRoaXMubWF4XG4gICAgICAgIHRoaXMudGltZW91dElkID0gdW5kZWZpbmVkXG4gICAgICB9LCBoZWFkZXJzLmludGVydmFsKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBDaGVja3MgaWYgYSByZXF1ZXN0IGlzIGF2YWlsYWJsZSBhbmQgYWRkcyBpdCB0byB0aGUgcXVldWUuIEFsc28gdHJpZ2dlcnMgcXVldWUgcHJvY2Vzc2luZyBpZiBub3QgYWxyZWFkeSBwcm9jZXNzaW5nLiAqL1xuICBhc3luYyBtYWtlUmVxdWVzdChvcHRpb25zOiBTZW5kUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLndhaXRVbnRpbFJlcXVlc3RBdmFpbGFibGUoKVxuICAgIHRoaXMucGVuZGluZy5wdXNoKG9wdGlvbnMpXG4gICAgdGhpcy5wcm9jZXNzUGVuZGluZygpXG4gIH1cblxuICAvKiogQ2xlYW5zIHVwIHRoZSBxdWV1ZSBieSBjaGVja2luZyBpZiB0aGVyZSBpcyBub3RoaW5nIGxlZnQgYW5kIHJlbW92aW5nIGl0LiAqL1xuICBjbGVhbnVwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1F1ZXVlQ2xlYXJhYmxlKCkpIHtcbiAgICAgIHRoaXMucHJvY2Vzc1BlbmRpbmcoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5yZXN0LmxvZ2dlci5kZWJ1ZyhgW1F1ZXVlXSAke3RoaXMucXVldWVUeXBlfSAke3RoaXMudXJsfS4gRGVsYXlpbmcgZGVsZXRlIGZvciAke3RoaXMuZGVsZXRlUXVldWVEZWxheX1tc2ApXG5cbiAgICAvLyBEZWxldGUgaW4gYSBtaW51dGUgZ2l2aW5nIGEgYml0IG9mIHRpbWUgdG8gYWxsb3cgbmV3IHJlcXVlc3RzIHRoYXQgbWF5IHJldXNlIHRoaXMgcXVldWVcbiAgICBjbGVhclRpbWVvdXQodGhpcy5kZWxldGVRdWV1ZVRpbWVvdXQpXG4gICAgdGhpcy5kZWxldGVRdWV1ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc1F1ZXVlQ2xlYXJhYmxlKCkpIHtcbiAgICAgICAgdGhpcy5yZXN0LmxvZ2dlci5kZWJ1ZyhgW1F1ZXVlXSAke3RoaXMucXVldWVUeXBlfSAke3RoaXMudXJsfS4gaXMgbm90IGNsZWFyYWJsZS4gUmVzdGFydGluZyBwcm9jZXNzaW5nIG9mIHF1ZXVlLmApXG4gICAgICAgIHRoaXMucHJvY2Vzc1BlbmRpbmcoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgdGhpcy5yZXN0LmxvZ2dlci5kZWJ1ZyhgW1F1ZXVlXSAke3RoaXMucXVldWVUeXBlfSAke3RoaXMudXJsfS4gRGVsZXRpbmdgKVxuXG4gICAgICBpZiAodGhpcy50aW1lb3V0SWQpIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZClcblxuICAgICAgLy8gTm8gcmVxdWVzdHMgaGF2ZSBiZWVuIHJlcXVlc3RlZCBmb3IgdGhpcyBxdWV1ZSBzbyB3ZSBudWtlIHRoaXMgcXVldWVcbiAgICAgIHRoaXMucmVzdC5xdWV1ZXMuZGVsZXRlKGAke3RoaXMuaWRlbnRpZmllcn0ke3RoaXMudXJsfWApXG4gICAgICB0aGlzLnJlc3QubG9nZ2VyLmRlYnVnKFxuICAgICAgICBgW1F1ZXVlXSAke3RoaXMucXVldWVUeXBlfSAke3RoaXMudXJsfS4gRGVsZXRlZCEgUmVtYWluaW5nOiAoJHt0aGlzLnJlc3QucXVldWVzLnNpemV9KWAsXG4gICAgICAgIFsuLi50aGlzLnJlc3QucXVldWVzLnZhbHVlcygpXS5tYXAoKHF1ZXVlKSA9PiBgJHtxdWV1ZS5xdWV1ZVR5cGV9JHtxdWV1ZS51cmx9YCksXG4gICAgICApXG4gICAgfSwgdGhpcy5kZWxldGVRdWV1ZURlbGF5KVxuICB9XG5cbiAgLyoqIFNpbXBseSBjaGVja3MgaWYgdGhlIHF1ZXVlIGlzIGFibGUgdG8gYmUgY2xlYXJlZCBvciBpdCBoYXMgcmVxdWVzdHMgcGVuZGluZy4gKi9cbiAgaXNRdWV1ZUNsZWFyYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5maXJzdFJlcXVlc3QpIHJldHVybiBmYWxzZVxuICAgIGlmICh0aGlzLndhaXRpbmcubGVuZ3RoID4gMCkgcmV0dXJuIGZhbHNlXG4gICAgaWYgKHRoaXMucGVuZGluZy5sZW5ndGggPiAwKSByZXR1cm4gZmFsc2VcbiAgICBpZiAodGhpcy5wcm9jZXNzaW5nKSByZXR1cm4gZmFsc2VcbiAgICBpZiAodGhpcy5wcm9jZXNzaW5nUGVuZGluZykgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZ2V0IHF1ZXVlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkZW50aWZpZXIuc2xpY2UoMCwgdGhpcy5pZGVudGlmaWVyLmluZGV4T2YoJyAnKSlcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXVlT3B0aW9ucyB7XG4gIC8qKiBIb3cgbWFueSByZXF1ZXN0cyBhcmUgcmVtYWluaW5nLiBEZWZhdWx0cyB0byAxICovXG4gIHJlbWFpbmluZz86IG51bWJlclxuICAvKiogTWF4IG51bWJlciBvZiByZXF1ZXN0cyBhbGxvd2VkIGluIHRoaXMgdGhpcy4gRGVmYXVsdHMgdG8gMS4gKi9cbiAgbWF4PzogbnVtYmVyXG4gIC8qKiBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCBkaXNjb3JkIGFsbG93cyB0byBtYWtlIHRoZSBtYXggbnVtYmVyIG9mIGludmFsaWQgcmVxdWVzdHMuIERlZmF1bHRzIHRvIDAgKi9cbiAgaW50ZXJ2YWw/OiBudW1iZXJcbiAgLyoqIHRpbWVyIHRvIHJlc2V0IHRvIDAgKi9cbiAgdGltZW91dElkPzogTm9kZUpTLlRpbWVvdXRcbiAgLyoqIFRoZSB1cmwgdGhpcyBxdWV1ZSB3aWxsIGJlIGhhbmRsaW5nLiAqL1xuICB1cmw6IHN0cmluZ1xuICAvKiogVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIGRlbGV0aW5nIHRoaXMgcXVldWUgaWYgaXQgaXMgZW1wdHkuIERlZmF1bHRzIHRvIDYwMDAwKG9uZSBtaW51dGUpLiAqL1xuICBkZWxldGVRdWV1ZURlbGF5PzogbnVtYmVyXG4gIC8qKiBUaGUgYmFzZSBrZXkgdGhhdCBpZGVudGlmaWVzIHRoaXMgcXVldWUgaW4gdGhlIHJlc3QgbWFuYWdlciAqL1xuICBpZGVudGlmaWVyOiBzdHJpbmdcbn1cbiJdLCJuYW1lcyI6WyJkZWxheSIsIlF1ZXVlIiwicmVzdCIsIm9wdGlvbnMiLCJyZW1haW5pbmciLCJtYXgiLCJpbnRlcnZhbCIsIndhaXRpbmciLCJwZW5kaW5nIiwicHJvY2Vzc2luZyIsInByb2Nlc3NpbmdQZW5kaW5nIiwiZmlyc3RSZXF1ZXN0IiwiZnJvemVuQXQiLCJkZWxldGVRdWV1ZURlbGF5IiwidXJsIiwiaWRlbnRpZmllciIsInRpbWVvdXRJZCIsImlzUmVxdWVzdEFsbG93ZWQiLCJ3YWl0VW50aWxSZXF1ZXN0QXZhaWxhYmxlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJwdXNoIiwicHJvY2Vzc1dhaXRpbmciLCJsZW5ndGgiLCJsb2dnZXIiLCJkZWJ1ZyIsInF1ZXVlVHlwZSIsInNoaWZ0IiwicHJvY2Vzc1BlbmRpbmciLCJub3ciLCJEYXRlIiwiZnV0dXJlIiwicmVxdWVzdCIsImJhc2ljVVJMIiwic2ltcGxpZnlVcmwiLCJyb3V0ZSIsIm1ldGhvZCIsInVybFJlc2V0SW4iLCJjaGVja1JhdGVMaW1pdHMiLCJidWNrZXRSZXNldEluIiwiYnVja2V0SWQiLCJzZXRUaW1lb3V0IiwidW5kZWZpbmVkIiwiaW52YWxpZEJ1Y2tldCIsInNlbmRSZXF1ZXN0IiwiY2F0Y2giLCJjbGVhbnVwIiwiaGFuZGxlQ29tcGxldGVkUmVxdWVzdCIsImhlYWRlcnMiLCJtYWtlUmVxdWVzdCIsImlzUXVldWVDbGVhcmFibGUiLCJjbGVhclRpbWVvdXQiLCJkZWxldGVRdWV1ZVRpbWVvdXQiLCJxdWV1ZXMiLCJkZWxldGUiLCJzaXplIiwidmFsdWVzIiwibWFwIiwi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
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9xdWV1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZXRUaW1lb3V0IH0gZnJvbSAnbm9kZTp0aW1lcnMnO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IFJlc3RNYW5hZ2VyLCBTZW5kUmVxdWVzdE9wdGlvbnMgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFF1ZXVlIHtcbiAgLyoqIFRoZSByZXN0IG1hbmFnZXIgKi9cbiAgcmVzdDogUmVzdE1hbmFnZXI7XG4gIC8qKiBBbW91bnQgb2YgcmVxdWVzdHMgdGhhdCBoYXZlIGFyZSByZW1haW5pbmcuIERlZmF1bHRzIHRvIDEuICovXG4gIHJlbWFpbmluZzogbnVtYmVyID0gMTtcbiAgLyoqIE1heCByZXF1ZXN0cyBmb3IgdGhpcyB0aGlzLiBEZWZhdWx0cyB0byAxLiAqL1xuICBtYXg6IG51bWJlciA9IDE7XG4gIC8qKiBUaGUgdGltZSB0aGF0IGRpc2NvcmQgYWxsb3dzIHRvIG1ha2UgdGhlIG1heCBudW1iZXIgb2YgcmVxdWVzdHMuIERlZmF1bHRzIHRvIDAgKi9cbiAgaW50ZXJ2YWw6IG51bWJlciA9IDA7XG4gIC8qKiB0aW1lciB0byByZXNldCB0byAwICovXG4gIHRpbWVvdXRJZDogTm9kZUpTLlRpbWVvdXQgfCB1bmRlZmluZWQ7XG4gIC8qKiBUaGUgcmVxdWVzdHMgdGhhdCBhcmUgY3VycmVudGx5IHBlbmRpbmcuICovXG4gIHdhaXRpbmc6IEFycmF5PCh2YWx1ZTogdm9pZCB8IFByb21pc2VMaWtlPHZvaWQ+KSA9PiB2b2lkPiA9IFtdO1xuICAvKiogVGhlIHJlcXVlc3RzIHRoYXQgYXJlIGN1cnJlbnRseSBwZW5kaW5nLiAqL1xuICBwZW5kaW5nOiBTZW5kUmVxdWVzdE9wdGlvbnNbXSA9IFtdO1xuICAvKiogV2hldGhlciBvciBub3QgdGhlIHdhaXRpbmcgcXVldWUgaXMgYWxyZWFkeSBwcm9jZXNzaW5nLiAqL1xuICBwcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGVuZGluZyBxdWV1ZSBpcyBhbHJlYWR5IHByb2Nlc3NpbmcuICovXG4gIHByb2Nlc3NpbmdQZW5kaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRoZSBmaXJzdCByZXF1ZXN0IGlzIHBlbmRpbmcuICovXG4gIGZpcnN0UmVxdWVzdDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogVGhlIHVybCB0aGF0IGFsbCB0aGUgcmVxdWVzdHMgaW4gdGhpcyBxdWV1ZSBhcmUgc2VudCB0by4gKi9cbiAgdXJsOiBzdHJpbmc7XG4gIC8qKiBXaGVuIHJlcXVlc3RzIHN0YXJ0ZWQgYmVpbmcgbWFkZSB0byBkZXRlcm1pbmUgd2hlbiB0aGUgaW50ZXJ2YWwgd2lsbCByZXNldCBpdC4gKi9cbiAgZnJvemVuQXQ6IG51bWJlciA9IDA7XG4gIC8qKiBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBiZWZvcmUgZGVsZXRpbmcgdGhpcyBxdWV1ZSBpZiBpdCBpcyBlbXB0eS4gRGVmYXVsdHMgdG8gNjAwMDAob25lIG1pbnV0ZSkuICovXG4gIGRlbGV0ZVF1ZXVlRGVsYXk6IG51bWJlciA9IDYwMDAwO1xuICAvKiogVGhlIHRpbWVvdXQgZm9yIHRoZSBkZWxldGlvbiBvZiB0aGlzIHF1ZXVlICovXG4gIGRlbGV0ZVF1ZXVlVGltZW91dD86IE5vZGVKUy5UaW1lb3V0O1xuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgZm9yIHRoaXMgcmVxdWVzdCwgbWF5IGJlIHRoZSByZXF1ZXN0IGF1dGhvcml6YXRpb24gb3IgZmFsbGJhY2sgdG8gdGhlIGJvdCBhdXRoXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFRoaXMgaXMgdXNlZCB0byBnZXQgdGhlIGlkZW50aWZ5IHRoaXMgcXVldWUgZnJvbSB0aGUgcXVldWUgbWFwcGluZyBvZiB0aGUgcmVzdCBtYW5hZ2VyXG4gICAqL1xuICBpZGVudGlmaWVyOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocmVzdDogUmVzdE1hbmFnZXIsIG9wdGlvbnM6IFF1ZXVlT3B0aW9ucykge1xuICAgIHRoaXMucmVzdCA9IHJlc3Q7XG4gICAgdGhpcy51cmwgPSBvcHRpb25zLnVybDtcbiAgICB0aGlzLmlkZW50aWZpZXIgPSBvcHRpb25zLmlkZW50aWZpZXI7XG5cbiAgICBpZiAob3B0aW9ucy5pbnRlcnZhbCkgdGhpcy5pbnRlcnZhbCA9IG9wdGlvbnMuaW50ZXJ2YWw7XG4gICAgaWYgKG9wdGlvbnMubWF4KSB0aGlzLm1heCA9IG9wdGlvbnMubWF4O1xuICAgIGlmIChvcHRpb25zLnJlbWFpbmluZykgdGhpcy5yZW1haW5pbmcgPSBvcHRpb25zLnJlbWFpbmluZztcbiAgICBpZiAob3B0aW9ucy50aW1lb3V0SWQpIHRoaXMudGltZW91dElkID0gb3B0aW9ucy50aW1lb3V0SWQ7XG4gICAgaWYgKG9wdGlvbnMuZGVsZXRlUXVldWVEZWxheSkgdGhpcy5kZWxldGVRdWV1ZURlbGF5ID0gb3B0aW9ucy5kZWxldGVRdWV1ZURlbGF5O1xuICB9XG5cbiAgLyoqIENoZWNrIGlmIHRoZXJlIGlzIGFueSByZW1haW5pbmcgcmVxdWVzdHMgdGhhdCBhcmUgYWxsb3dlZC4gKi9cbiAgaXNSZXF1ZXN0QWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZW1haW5pbmcgPiAwO1xuICB9XG5cbiAgLyoqIFBhdXNlcyB0aGUgZXhlY3V0aW9uIHVudGlsIGEgcmVxdWVzdCBpcyBhbGxvd2VkIHRvIGJlIG1hZGUuICovXG4gIGFzeW5jIHdhaXRVbnRpbFJlcXVlc3RBdmFpbGFibGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlKSA9PiB7XG4gICAgICAvLyBJZiB3aGF0ZXZlciBhbW91bnQgb2YgcmVxdWVzdHMgaXMgbGVmdCBpcyBtb3JlIHRoYW4gdGhlIHNhZmV0eSBtYXJnaW4sIGFsbG93IHRoZSByZXF1ZXN0XG4gICAgICBpZiAodGhpcy5pc1JlcXVlc3RBbGxvd2VkKCkpIHtcbiAgICAgICAgLy8gdGhpcy5yZW1haW5pbmcrKztcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy53YWl0aW5nLnB1c2gocmVzb2x2ZSk7XG4gICAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc1dhaXRpbmcoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBQcm9jZXNzIHRoZSBxdWV1ZSBvZiByZXF1ZXN0cyB3YWl0aW5nIHRvIGJlIGhhbmRsZWQuICovXG4gIGFzeW5jIHByb2Nlc3NXYWl0aW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIElmIGFscmVhZHkgcHJvY2Vzc2luZywgdGhhdCBsb29wIHdpbGwgaGFuZGxlIGFsbCB3YWl0aW5nIHJlcXVlc3RzLlxuICAgIGlmICh0aGlzLnByb2Nlc3NpbmcpIHJldHVybjtcbiAgICAvLyBNYXJrIGFzIHByb2Nlc3Npbmcgc28gb3RoZXIgbG9vcHMgZG9uJ3Qgc3RhcnRcbiAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuXG4gICAgd2hpbGUgKHRoaXMud2FpdGluZy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnJlc3QubG9nZ2VyLmRlYnVnKGBbUXVldWVdICR7dGhpcy5xdWV1ZVR5cGV9ICR7dGhpcy51cmx9IHByb2Nlc3Mgd2FpdGluZyB3aGlsZSBsb29wIHJhbi5gKTtcbiAgICAgIGlmICh0aGlzLmlzUmVxdWVzdEFsbG93ZWQoKSkge1xuICAgICAgICAvLyBSZXNvbHZlIHRoZSBuZXh0IGl0ZW0gaW4gdGhlIHF1ZXVlXG4gICAgICAgIHRoaXMud2FpdGluZy5zaGlmdCgpPy4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IGRlbGF5KDEwMDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1hcmsgYXMgZmFsc2Ugc28gbmV4dCBwZW5kaW5nIHJlcXVlc3QgY2FuIGJlIHRyaWdnZXJlZCBieSBuZXcgbG9vcC5cbiAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKiBQcm9jZXNzIHRoZSBxdWV1ZSBvZiBhbGwgcmVxdWVzdHMgcGVuZGluZyB0byBiZSBzZW50LiAqL1xuICBhc3luYyBwcm9jZXNzUGVuZGluZygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBJZiBhbHJlYWR5IHByb2Nlc3NpbmcsIHRoYXQgbG9vcCB3aWxsIGhhbmRsZSBhbGwgcGVuZGluZyByZXF1ZXN0cy5cbiAgICBpZiAodGhpcy5wcm9jZXNzaW5nUGVuZGluZyB8fCAhdGhpcy5wZW5kaW5nLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgLy8gTWFyayBhcyBwcm9jZXNzaW5nIHNvIG90aGVyIGxvb3BzIGRvbid0IHN0YXJ0XG4gICAgdGhpcy5wcm9jZXNzaW5nUGVuZGluZyA9IHRydWU7XG5cbiAgICB3aGlsZSAodGhpcy5wZW5kaW5nLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucmVzdC5sb2dnZXIuZGVidWcoYFF1ZXVlICR7dGhpcy5xdWV1ZVR5cGV9ICR7dGhpcy51cmx9IHByb2Nlc3MgcGVuZGluZyB3aGlsZSBsb29wIHJhbiB3aXRoICR7dGhpcy5wZW5kaW5nLmxlbmd0aH0uYCk7XG4gICAgICBpZiAoIXRoaXMuZmlyc3RSZXF1ZXN0ICYmICF0aGlzLmlzUmVxdWVzdEFsbG93ZWQoKSkge1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBmdXR1cmUgPSB0aGlzLmZyb3plbkF0ICsgdGhpcy5pbnRlcnZhbDtcbiAgICAgICAgYXdhaXQgZGVsYXkoZnV0dXJlID4gbm93ID8gZnV0dXJlIC0gbm93IDogMTAwMCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5wZW5kaW5nWzBdO1xuICAgICAgaWYgKHJlcXVlc3QpIHtcbiAgICAgICAgY29uc3QgYmFzaWNVUkwgPSB0aGlzLnJlc3Quc2ltcGxpZnlVcmwocmVxdWVzdC5yb3V0ZSwgcmVxdWVzdC5tZXRob2QpO1xuXG4gICAgICAgIC8vIElmIHRoaXMgdXJsIGlzIHN0aWxsIHJhdGUgbGltaXRlZCwgdHJ5IGFnYWluXG4gICAgICAgIGNvbnN0IHVybFJlc2V0SW4gPSB0aGlzLnJlc3QuY2hlY2tSYXRlTGltaXRzKGJhc2ljVVJMLCB0aGlzLmlkZW50aWZpZXIpO1xuICAgICAgICBpZiAodXJsUmVzZXRJbikgYXdhaXQgZGVsYXkodXJsUmVzZXRJbik7XG5cbiAgICAgICAgLy8gSUYgQSBCVUNLRVQgRVhJU1RTLCBDSEVDSyBUSEUgQlVDS0VUJ1MgUkFURSBMSU1JVFNcbiAgICAgICAgY29uc3QgYnVja2V0UmVzZXRJbiA9IHJlcXVlc3QuYnVja2V0SWQgPyB0aGlzLnJlc3QuY2hlY2tSYXRlTGltaXRzKHJlcXVlc3QuYnVja2V0SWQsIHRoaXMuaWRlbnRpZmllcikgOiBmYWxzZTtcbiAgICAgICAgaWYgKGJ1Y2tldFJlc2V0SW4pIGF3YWl0IGRlbGF5KGJ1Y2tldFJlc2V0SW4pO1xuXG4gICAgICAgIHRoaXMuZmlyc3RSZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVtYWluaW5nLS07XG5cbiAgICAgICAgaWYgKHRoaXMucmVtYWluaW5nID09PSAwICYmIHRoaXMuaW50ZXJ2YWwgIT09IDApIHtcbiAgICAgICAgICB0aGlzLnRpbWVvdXRJZCA/Pz0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbWFpbmluZyA9IHRoaXMubWF4O1xuICAgICAgICAgICAgdGhpcy50aW1lb3V0SWQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgfSwgdGhpcy5pbnRlcnZhbCkudW5yZWYoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlbW92ZSBmcm9tIHF1ZXVlLCB3ZSBhcmUgZXhlY3V0aW5nIGl0LlxuICAgICAgICB0aGlzLnBlbmRpbmcuc2hpZnQoKTtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhpcyByZXF1ZXN0IGlzIGFibGUgdG8gYmUgbWFkZSBnbG9iYWxseVxuICAgICAgICBhd2FpdCB0aGlzLnJlc3QuaW52YWxpZEJ1Y2tldC53YWl0VW50aWxSZXF1ZXN0QXZhaWxhYmxlKCk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5yZXN0LnNlbmRSZXF1ZXN0KHJlcXVlc3QpLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXN0LmxvZ2dlci5kZWJ1ZyhgUXVldWUgJHt0aGlzLnF1ZXVlVHlwZX0gJHt0aGlzLnVybH0gZW5jb3VudGVyZWQgYW4gZXJyb3Igd2hlbiBzZW5kaW5nIGEgcmVxdWVzdC5gLCBlKTtcbiAgICAgICAgICByZXF1ZXN0LnJlamVjdCh7IG9rOiBmYWxzZSwgc3RhdHVzOiA5OTksIGVycm9yOiAnVGhlIHF1ZXVlIGVuY29udGVyZWQgYW4gdW5leHBlY3RlZCBlcnJvciBzZW5kaW5nIGEgcmVxdWVzdC4nLCBlcnJvck9iamVjdDogZSB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZXN0LmxvZ2dlci5kZWJ1ZyhgUXVldWUgJHt0aGlzLnF1ZXVlVHlwZX0gJHt0aGlzLnVybH0gcHJvY2VzcyBwZW5kaW5nIHdoaWxlIGxvb3AgZXhpdGVkIHdpdGggJHt0aGlzLnBlbmRpbmcubGVuZ3RofS5gKTtcblxuICAgIC8vIE1hcmsgYXMgZmFsc2Ugc28gbmV4dCBwZW5kaW5nIHJlcXVlc3QgY2FuIGJlIHRyaWdnZXJlZCBieSBuZXcgbG9vcC5cbiAgICB0aGlzLnByb2Nlc3NpbmdQZW5kaW5nID0gZmFsc2U7XG4gICAgdGhpcy5jbGVhbnVwKCk7XG4gIH1cblxuICBoYW5kbGVDb21wbGV0ZWRSZXF1ZXN0KGhlYWRlcnM6IHsgbWF4PzogbnVtYmVyOyBpbnRlcnZhbD86IG51bWJlcjsgcmVtYWluaW5nPzogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICBpZiAoaGVhZGVycy5tYXggPT09IDApIHtcbiAgICAgIHRoaXMucmVtYWluaW5nKys7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZyb3plbkF0KSB0aGlzLmZyb3plbkF0ID0gRGF0ZS5ub3coKTtcbiAgICBpZiAoaGVhZGVycy5pbnRlcnZhbCAhPT0gdW5kZWZpbmVkKSB0aGlzLmludGVydmFsID0gaGVhZGVycy5pbnRlcnZhbDtcbiAgICBpZiAoaGVhZGVycy5yZW1haW5pbmcgIT09IHVuZGVmaW5lZCkgdGhpcy5yZW1haW5pbmcgPSBoZWFkZXJzLnJlbWFpbmluZztcblxuICAgIGlmICh0aGlzLnJlbWFpbmluZyA8PSAxKSB7XG4gICAgICB0aGlzLnRpbWVvdXRJZCA/Pz0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVtYWluaW5nID0gdGhpcy5tYXg7XG4gICAgICAgIHRoaXMudGltZW91dElkID0gdW5kZWZpbmVkO1xuICAgICAgfSwgaGVhZGVycy5pbnRlcnZhbCkudW5yZWYoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hlY2tzIGlmIGEgcmVxdWVzdCBpcyBhdmFpbGFibGUgYW5kIGFkZHMgaXQgdG8gdGhlIHF1ZXVlLiBBbHNvIHRyaWdnZXJzIHF1ZXVlIHByb2Nlc3NpbmcgaWYgbm90IGFscmVhZHkgcHJvY2Vzc2luZy4gKi9cbiAgYXN5bmMgbWFrZVJlcXVlc3Qob3B0aW9uczogU2VuZFJlcXVlc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy53YWl0VW50aWxSZXF1ZXN0QXZhaWxhYmxlKCk7XG4gICAgdGhpcy5wZW5kaW5nLnB1c2gob3B0aW9ucyk7XG4gICAgdGhpcy5wcm9jZXNzUGVuZGluZygpO1xuICB9XG5cbiAgLyoqIENsZWFucyB1cCB0aGUgcXVldWUgYnkgY2hlY2tpbmcgaWYgdGhlcmUgaXMgbm90aGluZyBsZWZ0IGFuZCByZW1vdmluZyBpdC4gKi9cbiAgY2xlYW51cCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNRdWV1ZUNsZWFyYWJsZSgpKSB7XG4gICAgICB0aGlzLnByb2Nlc3NQZW5kaW5nKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZXN0LmxvZ2dlci5kZWJ1ZyhgW1F1ZXVlXSAke3RoaXMucXVldWVUeXBlfSAke3RoaXMudXJsfS4gRGVsYXlpbmcgZGVsZXRlIGZvciAke3RoaXMuZGVsZXRlUXVldWVEZWxheX1tc2ApO1xuXG4gICAgLy8gRGVsZXRlIGluIGEgbWludXRlIGdpdmluZyBhIGJpdCBvZiB0aW1lIHRvIGFsbG93IG5ldyByZXF1ZXN0cyB0aGF0IG1heSByZXVzZSB0aGlzIHF1ZXVlXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuZGVsZXRlUXVldWVUaW1lb3V0KTtcbiAgICB0aGlzLmRlbGV0ZVF1ZXVlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzUXVldWVDbGVhcmFibGUoKSkge1xuICAgICAgICB0aGlzLnJlc3QubG9nZ2VyLmRlYnVnKGBbUXVldWVdICR7dGhpcy5xdWV1ZVR5cGV9ICR7dGhpcy51cmx9LiBpcyBub3QgY2xlYXJhYmxlLiBSZXN0YXJ0aW5nIHByb2Nlc3Npbmcgb2YgcXVldWUuYCk7XG4gICAgICAgIHRoaXMucHJvY2Vzc1BlbmRpbmcoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlc3QubG9nZ2VyLmRlYnVnKGBbUXVldWVdICR7dGhpcy5xdWV1ZVR5cGV9ICR7dGhpcy51cmx9LiBEZWxldGluZ2ApO1xuXG4gICAgICBpZiAodGhpcy50aW1lb3V0SWQpIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZCk7XG5cbiAgICAgIC8vIE5vIHJlcXVlc3RzIGhhdmUgYmVlbiByZXF1ZXN0ZWQgZm9yIHRoaXMgcXVldWUgc28gd2UgbnVrZSB0aGlzIHF1ZXVlXG4gICAgICB0aGlzLnJlc3QucXVldWVzLmRlbGV0ZShgJHt0aGlzLmlkZW50aWZpZXJ9JHt0aGlzLnVybH1gKTtcbiAgICAgIHRoaXMucmVzdC5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBbUXVldWVdICR7dGhpcy5xdWV1ZVR5cGV9ICR7dGhpcy51cmx9LiBEZWxldGVkISBSZW1haW5pbmc6ICgke3RoaXMucmVzdC5xdWV1ZXMuc2l6ZX0pYCxcbiAgICAgICAgWy4uLnRoaXMucmVzdC5xdWV1ZXMudmFsdWVzKCldLm1hcCgocXVldWUpID0+IGAke3F1ZXVlLnF1ZXVlVHlwZX0ke3F1ZXVlLnVybH1gKSxcbiAgICAgICk7XG4gICAgfSwgdGhpcy5kZWxldGVRdWV1ZURlbGF5KS51bnJlZigpO1xuICB9XG5cbiAgLyoqIFNpbXBseSBjaGVja3MgaWYgdGhlIHF1ZXVlIGlzIGFibGUgdG8gYmUgY2xlYXJlZCBvciBpdCBoYXMgcmVxdWVzdHMgcGVuZGluZy4gKi9cbiAgaXNRdWV1ZUNsZWFyYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5maXJzdFJlcXVlc3QpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy53YWl0aW5nLmxlbmd0aCA+IDApIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5wZW5kaW5nLmxlbmd0aCA+IDApIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5wcm9jZXNzaW5nKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKHRoaXMucHJvY2Vzc2luZ1BlbmRpbmcpIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IHF1ZXVlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkZW50aWZpZXIuc2xpY2UoMCwgdGhpcy5pZGVudGlmaWVyLmluZGV4T2YoJyAnKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWV1ZU9wdGlvbnMge1xuICAvKiogSG93IG1hbnkgcmVxdWVzdHMgYXJlIHJlbWFpbmluZy4gRGVmYXVsdHMgdG8gMSAqL1xuICByZW1haW5pbmc/OiBudW1iZXI7XG4gIC8qKiBNYXggbnVtYmVyIG9mIHJlcXVlc3RzIGFsbG93ZWQgaW4gdGhpcyB0aGlzLiBEZWZhdWx0cyB0byAxLiAqL1xuICBtYXg/OiBudW1iZXI7XG4gIC8qKiBUaGUgdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCBkaXNjb3JkIGFsbG93cyB0byBtYWtlIHRoZSBtYXggbnVtYmVyIG9mIGludmFsaWQgcmVxdWVzdHMuIERlZmF1bHRzIHRvIDAgKi9cbiAgaW50ZXJ2YWw/OiBudW1iZXI7XG4gIC8qKiB0aW1lciB0byByZXNldCB0byAwICovXG4gIHRpbWVvdXRJZD86IE5vZGVKUy5UaW1lb3V0O1xuICAvKiogVGhlIHVybCB0aGlzIHF1ZXVlIHdpbGwgYmUgaGFuZGxpbmcuICovXG4gIHVybDogc3RyaW5nO1xuICAvKiogVGhlIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIGRlbGV0aW5nIHRoaXMgcXVldWUgaWYgaXQgaXMgZW1wdHkuIERlZmF1bHRzIHRvIDYwMDAwKG9uZSBtaW51dGUpLiAqL1xuICBkZWxldGVRdWV1ZURlbGF5PzogbnVtYmVyO1xuICAvKiogVGhlIGJhc2Uga2V5IHRoYXQgaWRlbnRpZmllcyB0aGlzIHF1ZXVlIGluIHRoZSByZXN0IG1hbmFnZXIgKi9cbiAgaWRlbnRpZmllcjogc3RyaW5nO1xufVxuIl0sIm5hbWVzIjpbInNldFRpbWVvdXQiLCJkZWxheSIsIlF1ZXVlIiwicmVzdCIsIm9wdGlvbnMiLCJyZW1haW5pbmciLCJtYXgiLCJpbnRlcnZhbCIsIndhaXRpbmciLCJwZW5kaW5nIiwicHJvY2Vzc2luZyIsInByb2Nlc3NpbmdQZW5kaW5nIiwiZmlyc3RSZXF1ZXN0IiwiZnJvemVuQXQiLCJkZWxldGVRdWV1ZURlbGF5IiwidXJsIiwiaWRlbnRpZmllciIsInRpbWVvdXRJZCIsImlzUmVxdWVzdEFsbG93ZWQiLCJ3YWl0VW50aWxSZXF1ZXN0QXZhaWxhYmxlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJwdXNoIiwicHJvY2Vzc1dhaXRpbmciLCJsZW5ndGgiLCJsb2dnZXIiLCJkZWJ1ZyIsInF1ZXVlVHlwZSIsInNoaWZ0IiwicHJvY2Vzc1BlbmRpbmciLCJub3ciLCJEYXRlIiwiZnV0dXJlIiwicmVxdWVzdCIsImJhc2ljVVJMIiwic2ltcGxpZnlVcmwiLCJyb3V0ZSIsIm1ldGhvZCIsInVybFJlc2V0SW4iLCJjaGVja1JhdGVMaW1pdHMiLCJidWNrZXRSZXNldEluIiwiYnVja2V0SWQiLCJ1bmRlZmluZWQiLCJ1bnJlZiIsImludmFsaWRCdWNrZXQiLCJzZW5kUmVxdWVzdCIsImNhdGNoIiwiZSIsInJlamVjdCIsIm9rIiwic3RhdHVzIiwiZXJyb3IiLCJlcnJvck9iamVjdCIsImNsZWFudXAiLCJoYW5kbGVDb21wbGV0ZWRSZXF1ZXN0IiwiaGVhZGVycyIsIm1ha2VSZXF1ZXN0IiwiaXNRdWV1ZUNsZWFyYWJsZSIsImNsZWFyVGltZW91dCIsImRlbGV0ZVF1ZXVlVGltZW91dCIsInF1ZXVlcyIsImRlbGV0ZSIsInNpemUiLCJ2YWx1ZXMiLCJtYXAiLCJxdWV1ZSIsInNsaWNlIiwiaW5kZXhPZiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVSxRQUFRLGNBQWM7QUFDekMsU0FBU0MsS0FBSyxRQUFRLG9CQUFvQjtBQUcxQyxPQUFPLE1BQU1DO0lBcUNYLFlBQVlDLElBQWlCLEVBQUVDLE9BQXFCLENBQUU7UUFsQ3RELCtEQUErRCxRQUMvREMsWUFBb0I7UUFDcEIsK0NBQStDLFFBQy9DQyxNQUFjO1FBQ2QsbUZBQW1GLFFBQ25GQyxXQUFtQjtRQUduQiw2Q0FBNkMsUUFDN0NDLFVBQTRELEVBQUU7UUFDOUQsNkNBQTZDLFFBQzdDQyxVQUFnQyxFQUFFO1FBQ2xDLDREQUE0RCxRQUM1REMsYUFBc0I7UUFDdEIsNERBQTRELFFBQzVEQyxvQkFBNkI7UUFDN0IsMENBQTBDLFFBQzFDQyxlQUF3QjtRQUd4QixtRkFBbUYsUUFDbkZDLFdBQW1CO1FBQ25CLCtHQUErRyxRQUMvR0MsbUJBQTJCO1FBWXpCLElBQUksQ0FBQ1gsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ1ksR0FBRyxHQUFHWCxRQUFRVyxHQUFHO1FBQ3RCLElBQUksQ0FBQ0MsVUFBVSxHQUFHWixRQUFRWSxVQUFV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
|
package/dist/routes.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
1
|
import type { RestRoutes } from './typings/routes.js';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Creates the available discord API routes
|
|
4
|
+
*
|
|
5
|
+
* @param disableURIEncode Don't encode strings, except where required - Danger: disabling URI encoding may lead to path traversal if unsafe strings are used
|
|
6
|
+
* @returns The available discord API routes
|
|
7
|
+
*/
|
|
8
|
+
export declare function createRoutes(disableURIEncode?: boolean): RestRoutes;
|
|
3
9
|
//# sourceMappingURL=routes.d.ts.map
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,gBAAgB,GAAE,OAAe,GAAG,UAAU,CAwtB1E"}
|