@discordeno/utils 22.0.1-next.cf02481 → 22.0.1-next.cf0fec0

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/bucket.js CHANGED
@@ -14,7 +14,7 @@ export class LeakyBucket {
14
14
  return this.max < this.used ? 0 : this.max - this.used;
15
15
  }
16
16
  /** Refills the bucket as needed. */ refillBucket() {
17
- this.logger.debug(`[LeakyBucket] Timeout for leaky bucket requests executed. Refilling bucket.`);
17
+ this.logger.debug(`[LeakyBucket] Refilling bucket.`);
18
18
  // Lower the used amount by the refill amount
19
19
  this.used = this.refillAmount > this.used ? 0 : this.used - this.refillAmount;
20
20
  // Reset the refillsAt timestamp since it just got refilled
@@ -78,4 +78,4 @@ export class LeakyBucket {
78
78
  }
79
79
  }
80
80
 
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWNrZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlci5qcyc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJy4vdXRpbHMuanMnO1xuXG5leHBvcnQgY2xhc3MgTGVha3lCdWNrZXQgaW1wbGVtZW50cyBMZWFreUJ1Y2tldE9wdGlvbnMge1xuICBtYXg6IG51bWJlcjtcbiAgcmVmaWxsSW50ZXJ2YWw6IG51bWJlcjtcbiAgcmVmaWxsQW1vdW50OiBudW1iZXI7XG5cbiAgLyoqIFRoZSBhbW91bnQgb2YgcmVxdWVzdHMgdGhhdCBoYXZlIGJlZW4gdXNlZCB1cCBhbHJlYWR5LiAqL1xuICB1c2VkOiBudW1iZXIgPSAwO1xuICAvKiogVGhlIHF1ZXVlIG9mIHJlcXVlc3RzIHRvIGFjcXVpcmUgYW4gYXZhaWxhYmxlIHJlcXVlc3QuIE1hcHBlZCBieSA8c2hhcmRJZCwgcmVzb2x2ZSgpPiAqL1xuICBxdWV1ZTogQXJyYXk8KHZhbHVlOiB2b2lkIHwgUHJvbWlzZUxpa2U8dm9pZD4pID0+IHZvaWQ+ID0gW107XG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgcXVldWUgaXMgYWxyZWFkeSBwcm9jZXNzaW5nLiAqL1xuICBwcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBUaGUgdGltZW91dCBpZCBmb3IgdGhlIHRpbWVyIHRvIHJlZHVjZSB0aGUgdXNlZCBhbW91bnQgYnkgdGhlIHJlZmlsbCBhbW91bnQuICovXG4gIHRpbWVvdXRJZD86IE5vZGVKUy5UaW1lb3V0O1xuICAvKiogVGhlIHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMgd2hlbiB0aGUgbmV4dCByZWZpbGwgaXMgc2NoZWR1bGVkLiAqL1xuICByZWZpbGxzQXQ/OiBudW1iZXI7XG4gIC8qKiBMb2dnZXIgdXNlZCBpbiB0aGUgbGVha3kgYnVja2V0ICovXG4gIGxvZ2dlcjogUGljazx0eXBlb2YgbG9nZ2VyLCAnZGVidWcnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJyB8ICdmYXRhbCc+O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBMZWFreUJ1Y2tldE9wdGlvbnMpIHtcbiAgICB0aGlzLm1heCA9IG9wdGlvbnM/Lm1heCA/PyAxO1xuICAgIHRoaXMucmVmaWxsQW1vdW50ID0gb3B0aW9ucz8ucmVmaWxsQW1vdW50ID8gKG9wdGlvbnMucmVmaWxsQW1vdW50ID4gdGhpcy5tYXggPyB0aGlzLm1heCA6IG9wdGlvbnMucmVmaWxsQW1vdW50KSA6IDE7XG4gICAgdGhpcy5yZWZpbGxJbnRlcnZhbCA9IG9wdGlvbnM/LnJlZmlsbEludGVydmFsID8/IDUwMDA7XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRpb25zPy5sb2dnZXIgPz8gbG9nZ2VyO1xuICB9XG5cbiAgLyoqIFRoZSBhbW91bnQgb2YgcmVxdWVzdHMgdGhhdCBzdGlsbCByZW1haW4uICovXG4gIGdldCByZW1haW5pbmcoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tYXggPCB0aGlzLnVzZWQgPyAwIDogdGhpcy5tYXggLSB0aGlzLnVzZWQ7XG4gIH1cblxuICAvKiogUmVmaWxscyB0aGUgYnVja2V0IGFzIG5lZWRlZC4gKi9cbiAgcmVmaWxsQnVja2V0KCk6IHZvaWQge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBbTGVha3lCdWNrZXRdIFRpbWVvdXQgZm9yIGxlYWt5IGJ1Y2tldCByZXF1ZXN0cyBleGVjdXRlZC4gUmVmaWxsaW5nIGJ1Y2tldC5gKTtcbiAgICAvLyBMb3dlciB0aGUgdXNlZCBhbW91bnQgYnkgdGhlIHJlZmlsbCBhbW91bnRcbiAgICB0aGlzLnVzZWQgPSB0aGlzLnJlZmlsbEFtb3VudCA+IHRoaXMudXNlZCA/IDAgOiB0aGlzLnVzZWQgLSB0aGlzLnJlZmlsbEFtb3VudDtcbiAgICAvLyBSZXNldCB0aGUgcmVmaWxsc0F0IHRpbWVzdGFtcCBzaW5jZSBpdCBqdXN0IGdvdCByZWZpbGxlZFxuICAgIHRoaXMucmVmaWxsc0F0ID0gdW5kZWZpbmVkO1xuICAgIC8vIFJlc2V0IHRoZSB0aW1lb3V0SWRcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0SWQpO1xuICAgIHRoaXMudGltZW91dElkID0gdW5kZWZpbmVkO1xuXG4gICAgaWYgKHRoaXMudXNlZCA+IDApIHtcbiAgICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVmaWxsQnVja2V0KCk7XG4gICAgICB9LCB0aGlzLnJlZmlsbEludGVydmFsKTtcbiAgICAgIHRoaXMucmVmaWxsc0F0ID0gRGF0ZS5ub3coKSArIHRoaXMucmVmaWxsSW50ZXJ2YWw7XG4gICAgfVxuICB9XG5cbiAgLyoqIEJlZ2luIHByb2Nlc3NpbmcgdGhlIHF1ZXVlLiAqL1xuICBhc3luYyBwcm9jZXNzUXVldWUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ1tMZWFreUJ1Y2tldF0gUHJvY2Vzc2luZyBxdWV1ZScpO1xuXG4gICAgLy8gVGhlcmUgaXMgYWxyZWFkeSBhIHF1ZXVlIHRoYXQgaXMgcHJvY2Vzc2luZ1xuICAgIGlmICh0aGlzLnByb2Nlc3NpbmcpIHJldHVybiB0aGlzLmxvZ2dlci5kZWJ1ZygnW0xlYWt5QnVja2V0XSBRdWV1ZSBpcyBhbHJlYWR5IHByb2Nlc3NpbmcuJyk7XG5cbiAgICB0aGlzLnByb2Nlc3NpbmcgPSB0cnVlO1xuXG4gICAgLy8gQmVnaW4gZ29pbmcgdGhyb3VnaCB0aGUgcXVldWUuXG4gICAgd2hpbGUgKHRoaXMucXVldWUubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5yZW1haW5pbmcpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFtMZWFreUJ1Y2tldF0gUHJvY2Vzc2luZyBxdWV1ZS4gUmVtYWluaW5nOiAke3RoaXMucmVtYWluaW5nfSBMZW5ndGg6ICR7dGhpcy5xdWV1ZS5sZW5ndGh9YCk7XG4gICAgICAgIC8vIFJlc29sdmVzIHRoZSBwcm9taXNlIGFsbG93aW5nIHRoZSBwYXVzZWQgZXhlY3V0aW9uIG9mIHRoaXMgcmVxdWVzdCB0byByZXNvbHZlIGFuZCBjb250aW51ZS5cbiAgICAgICAgdGhpcy5xdWV1ZS5zaGlmdCgpPy4oKTtcbiAgICAgICAgLy8gQSByZXF1ZXN0IGNhbiBiZSBtYWRlXG4gICAgICAgIHRoaXMudXNlZCsrO1xuXG4gICAgICAgIC8vIENyZWF0ZSBhIG5ldyB0aW1lb3V0IGZvciB0aGlzIHJlcXVlc3QgaWYgbm9uZSBleGlzdHMuXG4gICAgICAgIGlmICghdGhpcy50aW1lb3V0SWQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgW0xlYWt5QnVja2V0XSBDcmVhdGluZyBuZXcgdGltZW91dCBmb3IgbGVha3kgYnVja2V0IHJlcXVlc3RzLmApO1xuXG4gICAgICAgICAgdGhpcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVmaWxsQnVja2V0KCk7XG4gICAgICAgICAgfSwgdGhpcy5yZWZpbGxJbnRlcnZhbCk7XG4gICAgICAgICAgLy8gU2V0IHRoZSB0aW1lIGZvciB3aGVuIHRoaXMgcmVmaWxsIHdpbGwgb2NjdXIuXG4gICAgICAgICAgdGhpcy5yZWZpbGxzQXQgPSBEYXRlLm5vdygpICsgdGhpcy5yZWZpbGxJbnRlcnZhbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBhIHJlZmlsbCBpcyBzY2hlZHVsZWQsIHNpbmNlIHdlIGhhdmUgdXNlZCB1cCBhbGwgYXZhaWxhYmxlIHJlcXVlc3RzXG4gICAgICBlbHNlIGlmICh0aGlzLnJlZmlsbHNBdCkge1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICAvLyBJZiB0aGVyZSBpcyB0aW1lIGxlZnQgdW50aWwgbmV4dCByZWZpbGwsIGp1c3QgZGVsYXkgZXhlY3V0aW9uLlxuICAgICAgICBpZiAodGhpcy5yZWZpbGxzQXQgPiBub3cpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgW0xlYWt5QnVja2V0XSBEZWxheWluZyBleGVjdXRpb24gb2YgbGVha3kgYnVja2V0IHJlcXVlc3RzIGZvciAke3RoaXMucmVmaWxsc0F0IC0gbm93fW1zYCk7XG4gICAgICAgICAgYXdhaXQgZGVsYXkodGhpcy5yZWZpbGxzQXQgLSBub3cpO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBbTGVha3lCdWNrZXRdIFJlc3VtaW5nIGV4ZWN1dGlvbmApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIHJlZmlsbHNBdCBoYXMgcGFzc2VkIGJ1dCB0aGUgdGltZW91dCBkaWRuJ3QgeWV0IGV4ZWN1dGUgZGVsYXkgdGhlIGV4ZWN1dGlvblxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgW0xlYWt5QnVja2V0XSBEZWxheWluZyBleGVjdXRpb24gb2YgbGVha3kgYnVja2V0IHJlcXVlc3RzIGZvciAxMDAwbXNgKTtcbiAgICAgICAgICBhd2FpdCBkZWxheSgxMDAwKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIExvb3AgaGFzIGVuZGVkIG1hcmsgZmFsc2Ugc28gaXQgY2FuIHJlc3RhcnQgbGF0ZXIgd2hlbiBuZWVkZWRcbiAgICB0aGlzLnByb2Nlc3NpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIC8qKiBQYXVzZXMgdGhlIGV4ZWN1dGlvbiB1bnRpbCB0aGUgcmVxdWVzdCBpcyBhdmFpbGFibGUgdG8gYmUgbWFkZS4gKi9cbiAgYXN5bmMgYWNxdWlyZShoaWdoUHJpb3JpdHk/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAvLyBIaWdoIHByaW9yaXR5IHJlcXVlc3RzIGdldCBhZGRlZCB0byB0aGUgc3RhcnQgb2YgdGhlIHF1ZXVlXG4gICAgICBpZiAoaGlnaFByaW9yaXR5KSB0aGlzLnF1ZXVlLnVuc2hpZnQocmVzb2x2ZSk7XG4gICAgICAvLyBBbGwgb3RoZXIgcmVxdWVzdHMgZ2V0IHB1c2hlZCB0byB0aGUgZW5kLlxuICAgICAgZWxzZSB0aGlzLnF1ZXVlLnB1c2gocmVzb2x2ZSk7XG5cbiAgICAgIC8vIEVhY2ggcmVxdWVzdCBzaG91bGQgdHJpZ2dlciB0aGUgcXVldWUgdG8gYmUgcHJvY2Vzc2VkLlxuICAgICAgdm9pZCB0aGlzLnByb2Nlc3NRdWV1ZSgpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGVha3lCdWNrZXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIE1heCByZXF1ZXN0cyBhbGxvd2VkIGF0IG9uY2UuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIG1heD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEludGVydmFsIGluIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHJlZmlsbHMuXG4gICAqIEBkZWZhdWx0IDUwMDBcbiAgICovXG4gIHJlZmlsbEludGVydmFsPzogbnVtYmVyO1xuICAvKipcbiAgICogQW1vdW50IG9mIHJlcXVlc3RzIHRvIHJlZmlsbCBhdCBlYWNoIGludGVydmFsLlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWZpbGxBbW91bnQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbG9nZ2VyIHRoYXQgdGhlIGxlYWt5IGJ1Y2tldCB3aWxsIHVzZVxuICAgKiBAZGVmYXVsdCBsb2dnZXIgLy8gVGhlIGxvZ2dlciBleHBvcnRlZCBieSBgQGRpc2NvcmRlbm8vdXRpbHNgXG4gICAqL1xuICBsb2dnZXI/OiBQaWNrPHR5cGVvZiBsb2dnZXIsICdkZWJ1ZycgfCAnaW5mbycgfCAnd2FybicgfCAnZXJyb3InIHwgJ2ZhdGFsJz47XG59XG4iXSwibmFtZXMiOlsibG9nZ2VyIiwiZGVsYXkiLCJMZWFreUJ1Y2tldCIsIm9wdGlvbnMiLCJ1c2VkIiwicXVldWUiLCJwcm9jZXNzaW5nIiwibWF4IiwicmVmaWxsQW1vdW50IiwicmVmaWxsSW50ZXJ2YWwiLCJyZW1haW5pbmciLCJyZWZpbGxCdWNrZXQiLCJkZWJ1ZyIsInJlZmlsbHNBdCIsInVuZGVmaW5lZCIsImNsZWFyVGltZW91dCIsInRpbWVvdXRJZCIsInNldFRpbWVvdXQiLCJEYXRlIiwibm93IiwicHJvY2Vzc1F1ZXVlIiwibGVuZ3RoIiwic2hpZnQiLCJhY3F1aXJlIiwiaGlnaFByaW9yaXR5IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ1bnNoaWZ0IiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsWUFBWSxjQUFjO0FBQ2pDLFNBQVNDLEtBQUssUUFBUSxhQUFhO0FBRW5DLE9BQU8sTUFBTUM7SUFrQlgsWUFBWUMsT0FBNEIsQ0FBRTtRQWIxQywyREFBMkQsUUFDM0RDLE9BQWU7UUFDZiwwRkFBMEYsUUFDMUZDLFFBQTBELEVBQUU7UUFDNUQsb0RBQW9ELFFBQ3BEQyxhQUFzQjtRQVNwQixJQUFJLENBQUNDLEdBQUcsR0FBR0osU0FBU0ksT0FBTztRQUMzQixJQUFJLENBQUNDLFlBQVksR0FBR0wsU0FBU0ssZUFBZ0JMLFFBQVFLLFlBQVksR0FBRyxJQUFJLENBQUNELEdBQUcsR0FBRyxJQUFJLENBQUNBLEdBQUcsR0FBR0osUUFBUUssWUFBWSxHQUFJO1FBQ2xILElBQUksQ0FBQ0MsY0FBYyxHQUFHTixTQUFTTSxrQkFBa0I7UUFDakQsSUFBSSxDQUFDVCxNQUFNLEdBQUdHLFNBQVNILFVBQVVBO0lBQ25DO0lBRUEsOENBQThDLEdBQzlDLElBQUlVLFlBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDSCxHQUFHLEdBQUcsSUFBSSxDQUFDSCxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUNHLEdBQUcsR0FBRyxJQUFJLENBQUNILElBQUk7SUFDeEQ7SUFFQSxrQ0FBa0MsR0FDbENPLGVBQXFCO1FBQ25CLElBQUksQ0FBQ1gsTUFBTSxDQUFDWSxLQUFLLENBQUMsQ0FBQywyRUFBMkUsQ0FBQztRQUMvRiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDUixJQUFJLEdBQUcsSUFBSSxDQUFDSSxZQUFZLEdBQUcsSUFBSSxDQUFDSixJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUNBLElBQUksR0FBRyxJQUFJLENBQUNJLFlBQVk7UUFDN0UsMkRBQTJEO1FBQzNELElBQUksQ0FBQ0ssU0FBUyxHQUFHQztRQUNqQixzQkFBc0I7UUFDdEJDLGFBQWEsSUFBSSxDQUFDQyxTQUFTO1FBQzNCLElBQUksQ0FBQ0EsU0FBUyxHQUFHRjtRQUVqQixJQUFJLElBQUksQ0FBQ1YsSUFBSSxHQUFHLEdBQUc7WUFDakIsSUFBSSxDQUFDWSxTQUFTLEdBQUdDLFdBQVc7Z0JBQzFCLElBQUksQ0FBQ04sWUFBWTtZQUNuQixHQUFHLElBQUksQ0FBQ0YsY0FBYztZQUN0QixJQUFJLENBQUNJLFNBQVMsR0FBR0ssS0FBS0MsR0FBRyxLQUFLLElBQUksQ0FBQ1YsY0FBYztRQUNuRDtJQUNGO0lBRUEsZ0NBQWdDLEdBQ2hDLE1BQU1XLGVBQThCO1FBQ2xDLElBQUksQ0FBQ3BCLE1BQU0sQ0FBQ1ksS0FBSyxDQUFDO1FBRWxCLDhDQUE4QztRQUM5QyxJQUFJLElBQUksQ0FBQ04sVUFBVSxFQUFFLE9BQU8sSUFBSSxDQUFDTixNQUFNLENBQUNZLEtBQUssQ0FBQztRQUU5QyxJQUFJLENBQUNOLFVBQVUsR0FBRztRQUVsQixpQ0FBaUM7UUFDakMsTUFBTyxJQUFJLENBQUNELEtBQUssQ0FBQ2dCLE1BQU0sQ0FBRTtZQUN4QixJQUFJLElBQUksQ0FBQ1gsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUNWLE1BQU0sQ0FBQ1ksS0FBSyxDQUFDLENBQUMsMkNBQTJDLEVBQUUsSUFBSSxDQUFDRixTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQ0wsS0FBSyxDQUFDZ0IsTUFBTSxFQUFFO2dCQUM3Ryw4RkFBOEY7Z0JBQzlGLElBQUksQ0FBQ2hCLEtBQUssQ0FBQ2lCLEtBQUs7Z0JBQ2hCLHdCQUF3QjtnQkFDeEIsSUFBSSxDQUFDbEIsSUFBSTtnQkFFVCx3REFBd0Q7Z0JBQ3hELElBQUksQ0FBQyxJQUFJLENBQUNZLFNBQVMsRUFBRTtvQkFDbkIsSUFBSSxDQUFDaEIsTUFBTSxDQUFDWSxLQUFLLENBQUMsQ0FBQyw2REFBNkQsQ0FBQztvQkFFakYsSUFBSSxDQUFDSSxTQUFTLEdBQUdDLFdBQVc7d0JBQzFCLElBQUksQ0FBQ04sWUFBWTtvQkFDbkIsR0FBRyxJQUFJLENBQUNGLGNBQWM7b0JBQ3RCLGdEQUFnRDtvQkFDaEQsSUFBSSxDQUFDSSxTQUFTLEdBQUdLLEtBQUtDLEdBQUcsS0FBSyxJQUFJLENBQUNWLGNBQWM7Z0JBQ25EO1lBQ0YsT0FHSyxJQUFJLElBQUksQ0FBQ0ksU0FBUyxFQUFFO2dCQUN2QixNQUFNTSxNQUFNRCxLQUFLQyxHQUFHO2dCQUNwQixpRUFBaUU7Z0JBQ2pFLElBQUksSUFBSSxDQUFDTixTQUFTLEdBQUdNLEtBQUs7b0JBQ3hCLElBQUksQ0FBQ25CLE1BQU0sQ0FBQ1ksS0FBSyxDQUFDLENBQUMsOERBQThELEVBQUUsSUFBSSxDQUFDQyxTQUFTLEdBQUdNLElBQUksRUFBRSxDQUFDO29CQUMzRyxNQUFNbEIsTUFBTSxJQUFJLENBQUNZLFNBQVMsR0FBR007b0JBQzdCLElBQUksQ0FBQ25CLE1BQU0sQ0FBQ1ksS0FBSyxDQUFDLENBQUMsZ0NBQWdDLENBQUM7Z0JBQ3RELE9BR0s7b0JBQ0gsSUFBSSxDQUFDWixNQUFNLENBQUNZLEtBQUssQ0FBQyxDQUFDLG9FQUFvRSxDQUFDO29CQUN4RixNQUFNWCxNQUFNO2dCQUNkO1lBQ0Y7UUFDRjtRQUVBLGdFQUFnRTtRQUNoRSxJQUFJLENBQUNLLFVBQVUsR0FBRztJQUNwQjtJQUVBLG9FQUFvRSxHQUNwRSxNQUFNaUIsUUFBUUMsWUFBc0IsRUFBaUI7UUFDbkQsT0FBTyxNQUFNLElBQUlDLFFBQVEsQ0FBQ0M7WUFDeEIsNkRBQTZEO1lBQzdELElBQUlGLGNBQWMsSUFBSSxDQUFDbkIsS0FBSyxDQUFDc0IsT0FBTyxDQUFDRDtpQkFFaEMsSUFBSSxDQUFDckIsS0FBSyxDQUFDdUIsSUFBSSxDQUFDRjtZQUVyQix5REFBeUQ7WUFDekQsS0FBSyxJQUFJLENBQUNOLFlBQVk7UUFDeEI7SUFDRjtBQUNGIn0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWNrZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZ2dlciBmcm9tICcuL2xvZ2dlci5qcyc7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJy4vdXRpbHMuanMnO1xuXG5leHBvcnQgY2xhc3MgTGVha3lCdWNrZXQgaW1wbGVtZW50cyBMZWFreUJ1Y2tldE9wdGlvbnMge1xuICBtYXg6IG51bWJlcjtcbiAgcmVmaWxsSW50ZXJ2YWw6IG51bWJlcjtcbiAgcmVmaWxsQW1vdW50OiBudW1iZXI7XG5cbiAgLyoqIFRoZSBhbW91bnQgb2YgcmVxdWVzdHMgdGhhdCBoYXZlIGJlZW4gdXNlZCB1cCBhbHJlYWR5LiAqL1xuICB1c2VkOiBudW1iZXIgPSAwO1xuICAvKiogVGhlIHF1ZXVlIG9mIHJlcXVlc3RzIHRvIGFjcXVpcmUgYW4gYXZhaWxhYmxlIHJlcXVlc3QuIE1hcHBlZCBieSA8c2hhcmRJZCwgcmVzb2x2ZSgpPiAqL1xuICBxdWV1ZTogQXJyYXk8KHZhbHVlOiB2b2lkIHwgUHJvbWlzZUxpa2U8dm9pZD4pID0+IHZvaWQ+ID0gW107XG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgcXVldWUgaXMgYWxyZWFkeSBwcm9jZXNzaW5nLiAqL1xuICBwcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBUaGUgdGltZW91dCBpZCBmb3IgdGhlIHRpbWVyIHRvIHJlZHVjZSB0aGUgdXNlZCBhbW91bnQgYnkgdGhlIHJlZmlsbCBhbW91bnQuICovXG4gIHRpbWVvdXRJZD86IE5vZGVKUy5UaW1lb3V0O1xuICAvKiogVGhlIHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMgd2hlbiB0aGUgbmV4dCByZWZpbGwgaXMgc2NoZWR1bGVkLiAqL1xuICByZWZpbGxzQXQ/OiBudW1iZXI7XG4gIC8qKiBMb2dnZXIgdXNlZCBpbiB0aGUgbGVha3kgYnVja2V0ICovXG4gIGxvZ2dlcjogUGljazx0eXBlb2YgbG9nZ2VyLCAnZGVidWcnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJyB8ICdmYXRhbCc+O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBMZWFreUJ1Y2tldE9wdGlvbnMpIHtcbiAgICB0aGlzLm1heCA9IG9wdGlvbnM/Lm1heCA/PyAxO1xuICAgIHRoaXMucmVmaWxsQW1vdW50ID0gb3B0aW9ucz8ucmVmaWxsQW1vdW50ID8gKG9wdGlvbnMucmVmaWxsQW1vdW50ID4gdGhpcy5tYXggPyB0aGlzLm1heCA6IG9wdGlvbnMucmVmaWxsQW1vdW50KSA6IDE7XG4gICAgdGhpcy5yZWZpbGxJbnRlcnZhbCA9IG9wdGlvbnM/LnJlZmlsbEludGVydmFsID8/IDUwMDA7XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRpb25zPy5sb2dnZXIgPz8gbG9nZ2VyO1xuICB9XG5cbiAgLyoqIFRoZSBhbW91bnQgb2YgcmVxdWVzdHMgdGhhdCBzdGlsbCByZW1haW4uICovXG4gIGdldCByZW1haW5pbmcoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tYXggPCB0aGlzLnVzZWQgPyAwIDogdGhpcy5tYXggLSB0aGlzLnVzZWQ7XG4gIH1cblxuICAvKiogUmVmaWxscyB0aGUgYnVja2V0IGFzIG5lZWRlZC4gKi9cbiAgcmVmaWxsQnVja2V0KCk6IHZvaWQge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBbTGVha3lCdWNrZXRdIFJlZmlsbGluZyBidWNrZXQuYCk7XG4gICAgLy8gTG93ZXIgdGhlIHVzZWQgYW1vdW50IGJ5IHRoZSByZWZpbGwgYW1vdW50XG4gICAgdGhpcy51c2VkID0gdGhpcy5yZWZpbGxBbW91bnQgPiB0aGlzLnVzZWQgPyAwIDogdGhpcy51c2VkIC0gdGhpcy5yZWZpbGxBbW91bnQ7XG4gICAgLy8gUmVzZXQgdGhlIHJlZmlsbHNBdCB0aW1lc3RhbXAgc2luY2UgaXQganVzdCBnb3QgcmVmaWxsZWRcbiAgICB0aGlzLnJlZmlsbHNBdCA9IHVuZGVmaW5lZDtcbiAgICAvLyBSZXNldCB0aGUgdGltZW91dElkXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcbiAgICB0aGlzLnRpbWVvdXRJZCA9IHVuZGVmaW5lZDtcblxuICAgIGlmICh0aGlzLnVzZWQgPiAwKSB7XG4gICAgICB0aGlzLnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlZmlsbEJ1Y2tldCgpO1xuICAgICAgfSwgdGhpcy5yZWZpbGxJbnRlcnZhbCk7XG4gICAgICB0aGlzLnJlZmlsbHNBdCA9IERhdGUubm93KCkgKyB0aGlzLnJlZmlsbEludGVydmFsO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBCZWdpbiBwcm9jZXNzaW5nIHRoZSBxdWV1ZS4gKi9cbiAgYXN5bmMgcHJvY2Vzc1F1ZXVlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdbTGVha3lCdWNrZXRdIFByb2Nlc3NpbmcgcXVldWUnKTtcblxuICAgIC8vIFRoZXJlIGlzIGFscmVhZHkgYSBxdWV1ZSB0aGF0IGlzIHByb2Nlc3NpbmdcbiAgICBpZiAodGhpcy5wcm9jZXNzaW5nKSByZXR1cm4gdGhpcy5sb2dnZXIuZGVidWcoJ1tMZWFreUJ1Y2tldF0gUXVldWUgaXMgYWxyZWFkeSBwcm9jZXNzaW5nLicpO1xuXG4gICAgdGhpcy5wcm9jZXNzaW5nID0gdHJ1ZTtcblxuICAgIC8vIEJlZ2luIGdvaW5nIHRocm91Z2ggdGhlIHF1ZXVlLlxuICAgIHdoaWxlICh0aGlzLnF1ZXVlLmxlbmd0aCkge1xuICAgICAgaWYgKHRoaXMucmVtYWluaW5nKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBbTGVha3lCdWNrZXRdIFByb2Nlc3NpbmcgcXVldWUuIFJlbWFpbmluZzogJHt0aGlzLnJlbWFpbmluZ30gTGVuZ3RoOiAke3RoaXMucXVldWUubGVuZ3RofWApO1xuICAgICAgICAvLyBSZXNvbHZlcyB0aGUgcHJvbWlzZSBhbGxvd2luZyB0aGUgcGF1c2VkIGV4ZWN1dGlvbiBvZiB0aGlzIHJlcXVlc3QgdG8gcmVzb2x2ZSBhbmQgY29udGludWUuXG4gICAgICAgIHRoaXMucXVldWUuc2hpZnQoKT8uKCk7XG4gICAgICAgIC8vIEEgcmVxdWVzdCBjYW4gYmUgbWFkZVxuICAgICAgICB0aGlzLnVzZWQrKztcblxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgdGltZW91dCBmb3IgdGhpcyByZXF1ZXN0IGlmIG5vbmUgZXhpc3RzLlxuICAgICAgICBpZiAoIXRoaXMudGltZW91dElkKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFtMZWFreUJ1Y2tldF0gQ3JlYXRpbmcgbmV3IHRpbWVvdXQgZm9yIGxlYWt5IGJ1Y2tldCByZXF1ZXN0cy5gKTtcblxuICAgICAgICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZmlsbEJ1Y2tldCgpO1xuICAgICAgICAgIH0sIHRoaXMucmVmaWxsSW50ZXJ2YWwpO1xuICAgICAgICAgIC8vIFNldCB0aGUgdGltZSBmb3Igd2hlbiB0aGlzIHJlZmlsbCB3aWxsIG9jY3VyLlxuICAgICAgICAgIHRoaXMucmVmaWxsc0F0ID0gRGF0ZS5ub3coKSArIHRoaXMucmVmaWxsSW50ZXJ2YWw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgYSByZWZpbGwgaXMgc2NoZWR1bGVkLCBzaW5jZSB3ZSBoYXZlIHVzZWQgdXAgYWxsIGF2YWlsYWJsZSByZXF1ZXN0c1xuICAgICAgZWxzZSBpZiAodGhpcy5yZWZpbGxzQXQpIHtcbiAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgdGltZSBsZWZ0IHVudGlsIG5leHQgcmVmaWxsLCBqdXN0IGRlbGF5IGV4ZWN1dGlvbi5cbiAgICAgICAgaWYgKHRoaXMucmVmaWxsc0F0ID4gbm93KSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFtMZWFreUJ1Y2tldF0gRGVsYXlpbmcgZXhlY3V0aW9uIG9mIGxlYWt5IGJ1Y2tldCByZXF1ZXN0cyBmb3IgJHt0aGlzLnJlZmlsbHNBdCAtIG5vd31tc2ApO1xuICAgICAgICAgIGF3YWl0IGRlbGF5KHRoaXMucmVmaWxsc0F0IC0gbm93KTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgW0xlYWt5QnVja2V0XSBSZXN1bWluZyBleGVjdXRpb25gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIHRoZSByZWZpbGxzQXQgaGFzIHBhc3NlZCBidXQgdGhlIHRpbWVvdXQgZGlkbid0IHlldCBleGVjdXRlIGRlbGF5IHRoZSBleGVjdXRpb25cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFtMZWFreUJ1Y2tldF0gRGVsYXlpbmcgZXhlY3V0aW9uIG9mIGxlYWt5IGJ1Y2tldCByZXF1ZXN0cyBmb3IgMTAwMG1zYCk7XG4gICAgICAgICAgYXdhaXQgZGVsYXkoMTAwMCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBMb29wIGhhcyBlbmRlZCBtYXJrIGZhbHNlIHNvIGl0IGNhbiByZXN0YXJ0IGxhdGVyIHdoZW4gbmVlZGVkXG4gICAgdGhpcy5wcm9jZXNzaW5nID0gZmFsc2U7XG4gIH1cblxuICAvKiogUGF1c2VzIHRoZSBleGVjdXRpb24gdW50aWwgdGhlIHJlcXVlc3QgaXMgYXZhaWxhYmxlIHRvIGJlIG1hZGUuICovXG4gIGFzeW5jIGFjcXVpcmUoaGlnaFByaW9yaXR5PzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgLy8gSGlnaCBwcmlvcml0eSByZXF1ZXN0cyBnZXQgYWRkZWQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBxdWV1ZVxuICAgICAgaWYgKGhpZ2hQcmlvcml0eSkgdGhpcy5xdWV1ZS51bnNoaWZ0KHJlc29sdmUpO1xuICAgICAgLy8gQWxsIG90aGVyIHJlcXVlc3RzIGdldCBwdXNoZWQgdG8gdGhlIGVuZC5cbiAgICAgIGVsc2UgdGhpcy5xdWV1ZS5wdXNoKHJlc29sdmUpO1xuXG4gICAgICAvLyBFYWNoIHJlcXVlc3Qgc2hvdWxkIHRyaWdnZXIgdGhlIHF1ZXVlIHRvIGJlIHByb2Nlc3NlZC5cbiAgICAgIHZvaWQgdGhpcy5wcm9jZXNzUXVldWUoKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlYWt5QnVja2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNYXggcmVxdWVzdHMgYWxsb3dlZCBhdCBvbmNlLlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBtYXg/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbnRlcnZhbCBpbiBtaWxsaXNlY29uZHMgYmV0d2VlbiByZWZpbGxzLlxuICAgKiBAZGVmYXVsdCA1MDAwXG4gICAqL1xuICByZWZpbGxJbnRlcnZhbD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEFtb3VudCBvZiByZXF1ZXN0cyB0byByZWZpbGwgYXQgZWFjaCBpbnRlcnZhbC5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVmaWxsQW1vdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGxvZ2dlciB0aGF0IHRoZSBsZWFreSBidWNrZXQgd2lsbCB1c2VcbiAgICogQGRlZmF1bHQgbG9nZ2VyIC8vIFRoZSBsb2dnZXIgZXhwb3J0ZWQgYnkgYEBkaXNjb3JkZW5vL3V0aWxzYFxuICAgKi9cbiAgbG9nZ2VyPzogUGljazx0eXBlb2YgbG9nZ2VyLCAnZGVidWcnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJyB8ICdmYXRhbCc+O1xufVxuIl0sIm5hbWVzIjpbImxvZ2dlciIsImRlbGF5IiwiTGVha3lCdWNrZXQiLCJvcHRpb25zIiwidXNlZCIsInF1ZXVlIiwicHJvY2Vzc2luZyIsIm1heCIsInJlZmlsbEFtb3VudCIsInJlZmlsbEludGVydmFsIiwicmVtYWluaW5nIiwicmVmaWxsQnVja2V0IiwiZGVidWciLCJyZWZpbGxzQXQiLCJ1bmRlZmluZWQiLCJjbGVhclRpbWVvdXQiLCJ0aW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiRGF0ZSIsIm5vdyIsInByb2Nlc3NRdWV1ZSIsImxlbmd0aCIsInNoaWZ0IiwiYWNxdWlyZSIsImhpZ2hQcmlvcml0eSIsIlByb21pc2UiLCJyZXNvbHZlIiwidW5zaGlmdCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksY0FBYztBQUNqQyxTQUFTQyxLQUFLLFFBQVEsYUFBYTtBQUVuQyxPQUFPLE1BQU1DO0lBa0JYLFlBQVlDLE9BQTRCLENBQUU7UUFiMUMsMkRBQTJELFFBQzNEQyxPQUFlO1FBQ2YsMEZBQTBGLFFBQzFGQyxRQUEwRCxFQUFFO1FBQzVELG9EQUFvRCxRQUNwREMsYUFBc0I7UUFTcEIsSUFBSSxDQUFDQyxHQUFHLEdBQUdKLFNBQVNJLE9BQU87UUFDM0IsSUFBSSxDQUFDQyxZQUFZLEdBQUdMLFNBQVNLLGVBQWdCTCxRQUFRSyxZQUFZLEdBQUcsSUFBSSxDQUFDRCxHQUFHLEdBQUcsSUFBSSxDQUFDQSxHQUFHLEdBQUdKLFFBQVFLLFlBQVksR0FBSTtRQUNsSCxJQUFJLENBQUNDLGNBQWMsR0FBR04sU0FBU00sa0JBQWtCO1FBQ2pELElBQUksQ0FBQ1QsTUFBTSxHQUFHRyxTQUFTSCxVQUFVQTtJQUNuQztJQUVBLDhDQUE4QyxHQUM5QyxJQUFJVSxZQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQ0gsR0FBRyxHQUFHLElBQUksQ0FBQ0gsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDRyxHQUFHLEdBQUcsSUFBSSxDQUFDSCxJQUFJO0lBQ3hEO0lBRUEsa0NBQWtDLEdBQ2xDTyxlQUFxQjtRQUNuQixJQUFJLENBQUNYLE1BQU0sQ0FBQ1ksS0FBSyxDQUFDLENBQUMsK0JBQStCLENBQUM7UUFDbkQsNkNBQTZDO1FBQzdDLElBQUksQ0FBQ1IsSUFBSSxHQUFHLElBQUksQ0FBQ0ksWUFBWSxHQUFHLElBQUksQ0FBQ0osSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDQSxJQUFJLEdBQUcsSUFBSSxDQUFDSSxZQUFZ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
@@ -1,4 +1,4 @@
1
- import type { DiscordEmbed, DiscordEmbedAuthor, DiscordEmbedField, DiscordEmbedFooter, DiscordEmbedImage, DiscordEmbedThumbnail, DiscordEmbedVideo } from '@discordeno/types';
1
+ import type { DiscordEmbed, DiscordEmbedAuthor, DiscordEmbedField, DiscordEmbedFooter, DiscordEmbedImage, DiscordEmbedVideo } from '@discordeno/types';
2
2
  /**
3
3
  * A builder to help create Discord embeds.
4
4
  *
@@ -120,10 +120,10 @@ export declare class EmbedsBuilder extends Array<DiscordEmbed> {
120
120
  * Set the thumbnail of the current embed.
121
121
  *
122
122
  * @param {string} url - URL of the image
123
- * @param {?Omit<DiscordEmbedThumbnail, 'url'>} [options]
123
+ * @param {?Omit<DiscordEmbedImage, 'url'>} [options]
124
124
  * @returns {EmbedsBuilder}
125
125
  */
126
- setThumbnail(url: string, options?: Omit<DiscordEmbedThumbnail, 'url'>): this;
126
+ setThumbnail(url: string, options?: Omit<DiscordEmbedImage, 'url'>): this;
127
127
  /**
128
128
  * Set the URL of the current embed title.
129
129
  *
@@ -1 +1 @@
1
- {"version":3,"file":"embeds.d.ts","sourceRoot":"","sources":["../../src/builders/embeds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,YAAY,CAAC;;IAGpD;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAc7D;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAU5C;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAWhB;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,IAAI;IAUzE;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAetC;;;;;;;OAOG;IACH,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBrC;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAMzC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAM5C;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,IAAI;IAUzE;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,IAAI;IAUrE;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAS7C;;;;OAIG;IACH,cAAc,IAAI,IAAI;IAItB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAU3C;;;;;OAKG;IACH,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI;IAMtD;;;;;;OAMG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,GAAG,IAAI;IAU7E;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMzB;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,IAAI;IAUrE;;;;OAIG;IACH,QAAQ,IAAI,IAAI;CA4FjB"}
1
+ {"version":3,"file":"embeds.d.ts","sourceRoot":"","sources":["../../src/builders/embeds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,YAAY,CAAC;;IAGpD;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAc7D;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAU5C;;;;OAIG;IACH,QAAQ,IAAI,IAAI;IAWhB;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,IAAI;IAUzE;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAetC;;;;;;;OAOG;IACH,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBrC;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAMzC;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAM5C;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG,IAAI;IAUzE;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,IAAI;IAUrE;;;;;;OAMG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAS7C;;;;OAIG;IACH,cAAc,IAAI,IAAI;IAItB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAU3C;;;;;OAKG;IACH,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI;IAMtD;;;;;;OAMG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,IAAI;IAUzE;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMzB;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GAAG,IAAI;IAUrE;;;;OAIG;IACH,QAAQ,IAAI,IAAI;CA4FjB"}
@@ -191,7 +191,7 @@
191
191
  * Set the thumbnail of the current embed.
192
192
  *
193
193
  * @param {string} url - URL of the image
194
- * @param {?Omit<DiscordEmbedThumbnail, 'url'>} [options]
194
+ * @param {?Omit<DiscordEmbedImage, 'url'>} [options]
195
195
  * @returns {EmbedsBuilder}
196
196
  */ setThumbnail(url, options) {
197
197
  this.#currentEmbed.thumbnail = {
@@ -302,4 +302,4 @@
302
302
  }
303
303
  }
304
304
 
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVycy9lbWJlZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBEaXNjb3JkRW1iZWQsXG4gIERpc2NvcmRFbWJlZEF1dGhvcixcbiAgRGlzY29yZEVtYmVkRmllbGQsXG4gIERpc2NvcmRFbWJlZEZvb3RlcixcbiAgRGlzY29yZEVtYmVkSW1hZ2UsXG4gIERpc2NvcmRFbWJlZFRodW1ibmFpbCxcbiAgRGlzY29yZEVtYmVkVmlkZW8sXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcblxuLyoqXG4gKiBBIGJ1aWxkZXIgdG8gaGVscCBjcmVhdGUgRGlzY29yZCBlbWJlZHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGVtYmVkcyA9IG5ldyBFbWJlZHNCdWlsZGVyKClcbiAqICAuc2V0VGl0bGUoJ015IEVtYmVkJylcbiAqICAuc2V0RGVzY3JpcHRpb24oJ1RoaXMgaXMgbXkgbmV3IGVtYmVkJylcbiAqICAubmV3RW1iZWQoKVxuICogIC5zZXRUaXRsZSgnTXkgU2Vjb25kIEVtYmVkJylcbiAqL1xuZXhwb3J0IGNsYXNzIEVtYmVkc0J1aWxkZXIgZXh0ZW5kcyBBcnJheTxEaXNjb3JkRW1iZWQ+IHtcbiAgI2N1cnJlbnRFbWJlZEluZGV4OiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgbmV3IGZpZWxkIHRvIHRoZSBjdXJyZW50IGVtYmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIEZpZWxkIG5hbWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gRmllbGQgdmFsdWVcbiAgICogQHBhcmFtIHs/Ym9vbGVhbn0gW2lubGluZT1mYWxzZV0gLSBGaWVsZCBzaG91bGQgYmUgaW5saW5lIG9yIG5vdC5cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBhZGRGaWVsZChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGlubGluZT86IGJvb2xlYW4pOiB0aGlzIHtcbiAgICBpZiAodGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLiNjdXJyZW50RW1iZWQuZmllbGRzID0gW107XG4gICAgfVxuXG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcy5wdXNoKHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIGlubGluZSxcbiAgICB9KTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgbXVsdGlwbGUgbmV3IGZpZWxkcyB0byB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtEaXNjb3JkRW1iZWRGaWVsZFtdfSBmaWVsZHMgLSBUaGUgZmllbGRzIHRvIGFkZFxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIGFkZEZpZWxkcyhmaWVsZHM6IERpc2NvcmRFbWJlZEZpZWxkW10pOiB0aGlzIHtcbiAgICBpZiAodGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLiNjdXJyZW50RW1iZWQuZmllbGRzID0gW107XG4gICAgfVxuXG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcy5wdXNoKC4uLmZpZWxkcyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgYmxhbmsgZW1iZWQuXG4gICAqXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgbmV3RW1iZWQoKTogdGhpcyB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID49IDEwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01heGltdW0gZW1iZWQgY291bnQgZXhjZWVkZWQuIFlvdSBjYW4gbm90IGhhdmUgbW9yZSB0aGFuIDEwIGVtYmVkcy4nKTtcbiAgICB9XG5cbiAgICB0aGlzLnB1c2goe30pO1xuICAgIHRoaXMuc2V0Q3VycmVudEVtYmVkKCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGN1cnJlbnQgZW1iZWQgYXV0aG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIE5hbWUgb2YgdGhlIGF1dGhvclxuICAgKiBAcGFyYW0gez9PbWl0PERpc2NvcmRFbWJlZEF1dGhvciwgJ25hbWUnPn0gW29wdGlvbnNdIC0gRXh0cmEgYXV0aG9yIG9wdGlvbnNcbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRBdXRob3IobmFtZTogc3RyaW5nLCBvcHRpb25zPzogT21pdDxEaXNjb3JkRW1iZWRBdXRob3IsICduYW1lJz4pOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQuYXV0aG9yID0ge1xuICAgICAgLi4udGhpcy4jY3VycmVudEVtYmVkLmF1dGhvcixcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbG9yIG9uIHRoZSBzaWRlIG9mIHRoZSBjdXJyZW50IGVtYmVkLlxuICAgKlxuICAgKiBAcGFyYW0geyhudW1iZXIgfCBzdHJpbmcpfSBjb2xvciAtIFRoZSBjb2xvciwgaW4gYmFzZTE2IG9yIGhleCBjb2xvciBjb2RlXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0Q29sb3IoY29sb3I6IG51bWJlciB8IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0eXBlb2YgY29sb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoY29sb3IudG9Mb3dlckNhc2UoKSA9PT0gJ3JhbmRvbScpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0UmFuZG9tQ29sb3IoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udmVydGVkVmFsdWUgPSBwYXJzZUludChjb2xvci5yZXBsYWNlKCcjJywgJycpLCAxNik7XG4gICAgICBjb2xvciA9IE51bWJlci5pc05hTihjb252ZXJ0ZWRWYWx1ZSkgPyAwIDogY29udmVydGVkVmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmNvbG9yID0gY29sb3I7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGN1cnJlbnQgZW1iZWQgdG8gYSBkaWZmZXJlbnQgaW5kZXguXG4gICAqXG4gICAqIFdBUk5JTkc6IE9ubHkgdXNlIHRoaXMgbWV0aG9kIGlmIHlvdSBrbm93IHdoYXQgeW91J3JlIGRvaW5nLiBNYWtlIHN1cmUgdG8gc2V0IGl0IGJhY2sgdG8gdGhlIGxhdGVzdCB3aGVuIHlvdSdyZSBkb25lLlxuICAgKlxuICAgKiBAcGFyYW0gez9udW1iZXJ9IFtpbmRleF0gLSBUaGUgaW5kZXggb2YgdGhlIGVtYmVkIGluIHRoZSBFbWJlZHNCdWlsZGVyIGFycmF5XG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0Q3VycmVudEVtYmVkKGluZGV4PzogbnVtYmVyKTogdGhpcyB7XG4gICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuI2N1cnJlbnRFbWJlZEluZGV4ID0gdGhpcy5sZW5ndGggLSAxO1xuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPj0gdGhpcy5sZW5ndGggfHwgaW5kZXggPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBub3Qgc2V0IHRoZSBjdXJyZW50IGVtYmVkIHRvIGEgaW5kZXggb3V0IG9mIGJvdW5kcy4nKTtcbiAgICB9XG5cbiAgICB0aGlzLiNjdXJyZW50RW1iZWRJbmRleCA9IGluZGV4O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRlc2NyaXB0aW9uIC0gRGVzY3JpcHRpb25cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVyd3JpdGUgYWxsIGZpZWxkcyBvbiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtEaXNjb3JkRW1iZWRGaWVsZFtdfSBmaWVsZHNcbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRGaWVsZHMoZmllbGRzOiBEaXNjb3JkRW1iZWRGaWVsZFtdKTogdGhpcyB7XG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcyA9IGZpZWxkcztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZm9vdGVyIGluIHRoZSBjdXJyZW50IGVtYmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCAtIFRoZSB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGZvb3RlclxuICAgKiBAcGFyYW0gez9PbWl0PERpc2NvcmRFbWJlZEZvb3RlciwgJ3RleHQnPn0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0Rm9vdGVyKHRleHQ6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8RGlzY29yZEVtYmVkRm9vdGVyLCAndGV4dCc+KTogdGhpcyB7XG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmZvb3RlciA9IHtcbiAgICAgIC4uLnRoaXMuI2N1cnJlbnRFbWJlZC5mb290ZXIsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgdGV4dCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBpbWFnZSBpbiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCAtIFVSTCBvZiB0aGUgaW1hZ2VcbiAgICogQHBhcmFtIHs/T21pdDxEaXNjb3JkRW1iZWRJbWFnZSwgJ3VybCc+fSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRJbWFnZSh1cmw6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8RGlzY29yZEVtYmVkSW1hZ2UsICd1cmwnPik6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5pbWFnZSA9IHtcbiAgICAgIC4uLnRoaXMuI2N1cnJlbnRFbWJlZC5pbWFnZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB1cmwsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcHJvdmlkZXIgb2YgdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gW3VybF1cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRQcm92aWRlcihuYW1lOiBzdHJpbmcsIHVybD86IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5wcm92aWRlciA9IHtcbiAgICAgIG5hbWUsXG4gICAgICB1cmwsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY29sb3Igb2YgdGhlIGN1cnJlbnQgZW1iZWQgdG8gYSByYW5kb20gdmFsdWUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0UmFuZG9tQ29sb3IoKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuc2V0Q29sb3IoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDB4ZmZmZmZmICsgMSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRpdGxlIG9mIHRoZSBjdXJyZW50IGVtYmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGVcbiAgICogQHBhcmFtIHs/c3RyaW5nfSBbdXJsXVxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcsIHVybD86IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC50aXRsZSA9IHRpdGxlO1xuXG4gICAgaWYgKHVybCkge1xuICAgICAgdGhpcy5zZXRVcmwodXJsKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRpbWVzdGFtcCBvZiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHs/KHN0cmluZyB8IG51bWJlciB8IERhdGUpfSBbdGltZXN0YW1wXVxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldFRpbWVzdGFtcCh0aW1lc3RhbXA/OiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlKTogdGhpcyB7XG4gICAgdGhpcy4jY3VycmVudEVtYmVkLnRpbWVzdGFtcCA9IG5ldyBEYXRlKHRpbWVzdGFtcCA/PyBEYXRlLm5vdygpKS50b0lTT1N0cmluZygpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0aHVtYm5haWwgb2YgdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBVUkwgb2YgdGhlIGltYWdlXG4gICAqIEBwYXJhbSB7P09taXQ8RGlzY29yZEVtYmVkVGh1bWJuYWlsLCAndXJsJz59IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldFRodW1ibmFpbCh1cmw6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8RGlzY29yZEVtYmVkVGh1bWJuYWlsLCAndXJsJz4pOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQudGh1bWJuYWlsID0ge1xuICAgICAgLi4udGhpcy4jY3VycmVudEVtYmVkLnRodW1ibmFpbCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB1cmwsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgVVJMIG9mIHRoZSBjdXJyZW50IGVtYmVkIHRpdGxlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0VXJsKHVybDogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy4jY3VycmVudEVtYmVkLnVybCA9IHVybDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdmlkZW8gb2YgdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmxcbiAgICogQHBhcmFtIHs/T21pdDxEaXNjb3JkRW1iZWRWaWRlbywgJ3VybCc+fSBbb3B0aW9uc11cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRWaWRlbyh1cmw6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8RGlzY29yZEVtYmVkVmlkZW8sICd1cmwnPik6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC52aWRlbyA9IHtcbiAgICAgIC4uLnRoaXMuI2N1cnJlbnRFbWJlZC52aWRlbyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB1cmwsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGFsbCBlbWJlZHMgYXZhaWxhYmxlIGFnYWluc3QgY3VycmVudCBrbm93biBEaXNjb3JkIGxpbWl0cyB0byBoZWxwIHByZXZlbnQgYmFkIHJlcXVlc3RzLlxuICAgKlxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHZhbGlkYXRlKCk6IHRoaXMge1xuICAgIGxldCB0b3RhbENoYXJhY3RlcnMgPSAwO1xuXG4gICAgaWYgKHRoaXMubGVuZ3RoID4gMTApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGNhbiBub3QgaGF2ZSBtb3JlIHRoYW4gMTAgZW1iZWRzIG9uIGEgc2luZ2xlIG1lc3NhZ2UuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5mb3JFYWNoKCh7IGF1dGhvciwgZGVzY3JpcHRpb24sIGZpZWxkcywgZm9vdGVyLCB0aXRsZSB9LCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHRpdGxlKSB7XG4gICAgICAgIGNvbnN0IHRyaW1tZWRUaXRsZSA9IHRpdGxlLnRyaW0oKTtcblxuICAgICAgICBpZiAodHJpbW1lZFRpdGxlLmxlbmd0aCA+IDI1Nikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGl0bGUgb2YgZW1iZWQgJHtpbmRleH0gY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAyNTYgY2hhcmFjdGVycy5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvdGFsQ2hhcmFjdGVycyArPSB0cmltbWVkVGl0bGUubGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZERlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24udHJpbSgpO1xuXG4gICAgICAgIGlmICh0cmltbWVkRGVzY3JpcHRpb24ubGVuZ3RoID4gNDA5Nikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRGVzY3JpcHRpb24gb2YgZW1iZWQgJHtpbmRleH0gY2FuIG5vdCBiZSBsb25nZXIgdGhhbiA0MDk2IGNoYXJhY3RlcnMuYCk7XG4gICAgICAgIH1cblxuICAgICAgICB0b3RhbENoYXJhY3RlcnMgKz0gdHJpbW1lZERlc2NyaXB0aW9uLmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkcykge1xuICAgICAgICBpZiAoZmllbGRzLmxlbmd0aCA+IDI1KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBlbWJlZCAke2luZGV4fSBjYW4gbm90IGhhdmUgbW9yZSB0aGFuIDI1IGZpZWxkcy5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpZWxkcy5mb3JFYWNoKCh7IG5hbWUsIHZhbHVlIH0sIGZpZWxkSW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCB0cmltbWVkTmFtZSA9IG5hbWUudHJpbSgpO1xuICAgICAgICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHZhbHVlLnRyaW0oKTtcblxuICAgICAgICAgIGlmICh0cmltbWVkTmFtZS5sZW5ndGggPiAyNTYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTmFtZSBvZiBmaWVsZCAke2ZpZWxkSW5kZXh9IG9uIGVtYmVkICR7aW5kZXh9IGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMjU2IGNoYXJhY3RlcnMuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRyaW1tZWRWYWx1ZS5sZW5ndGggPiA0MDk2KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFZhbHVlIG9mIGZpZWxkICR7ZmllbGRJbmRleH0gb24gZW1iZWQgJHtpbmRleH0gY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAxMDI0IGNoYXJhY3RlcnMuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdG90YWxDaGFyYWN0ZXJzICs9IHRyaW1tZWROYW1lLmxlbmd0aDtcbiAgICAgICAgICB0b3RhbENoYXJhY3RlcnMgKz0gdHJpbW1lZFZhbHVlLmxlbmd0aDtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChmb290ZXIpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZEZvb3RlclRleHQgPSBmb290ZXIudGV4dC50cmltKCk7XG5cbiAgICAgICAgaWYgKHRyaW1tZWRGb290ZXJUZXh0Lmxlbmd0aCA+IDIwNDgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZvb3RlciB0ZXh0IG9mIGVtYmVkICR7aW5kZXh9IGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMjA0OCBjaGFyYWN0ZXJzLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgdG90YWxDaGFyYWN0ZXJzICs9IHRyaW1tZWRGb290ZXJUZXh0Lmxlbmd0aDtcbiAgICAgIH1cblxuICAgICAgaWYgKGF1dGhvcikge1xuICAgICAgICBjb25zdCB0cmltbWVkQXV0aG9yTmFtZSA9IGF1dGhvci5uYW1lLnRyaW0oKTtcblxuICAgICAgICBpZiAodHJpbW1lZEF1dGhvck5hbWUubGVuZ3RoID4gMjU2KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdXRob3IgbmFtZSBvZiBlbWJlZCAke2luZGV4fSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDI1NiBjaGFyYWN0ZXJzLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgdG90YWxDaGFyYWN0ZXJzICs9IHRyaW1tZWRBdXRob3JOYW1lLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0b3RhbENoYXJhY3RlcnMgPiA2MDAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RvdGFsIGNoYXJhY3RlciBsZW5ndGggb2YgYWxsIGVtYmVkcyBjYW4gbm90IGV4Y2VlZCA2MDAwIGNoYXJhY3RlcnMuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHJlYWRvbmx5XG4gICAqIEB0eXBlIHtEaXNjb3JkRW1iZWR9XG4gICAqL1xuICBnZXQgI2N1cnJlbnRFbWJlZCgpOiBEaXNjb3JkRW1iZWQge1xuICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5uZXdFbWJlZCgpO1xuICAgICAgdGhpcy5zZXRDdXJyZW50RW1iZWQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1t0aGlzLiNjdXJyZW50RW1iZWRJbmRleF07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFbWJlZHNCdWlsZGVyIiwiQXJyYXkiLCJhZGRGaWVsZCIsIm5hbWUiLCJ2YWx1ZSIsImlubGluZSIsImZpZWxkcyIsInVuZGVmaW5lZCIsInB1c2giLCJhZGRGaWVsZHMiLCJuZXdFbWJlZCIsImxlbmd0aCIsIkVycm9yIiwic2V0Q3VycmVudEVtYmVkIiwic2V0QXV0aG9yIiwib3B0aW9ucyIsImF1dGhvciIsInNldENvbG9yIiwiY29sb3IiLCJ0b0xvd2VyQ2FzZSIsInNldFJhbmRvbUNvbG9yIiwiY29udmVydGVkVmFsdWUiLCJwYXJzZUludCIsInJlcGxhY2UiLCJOdW1iZXIiLCJpc05hTiIsImluZGV4Iiwic2V0RGVzY3JpcHRpb24iLCJkZXNjcmlwdGlvbiIsInNldEZpZWxkcyIsInNldEZvb3RlciIsInRleHQiLCJmb290ZXIiLCJzZXRJbWFnZSIsInVybCIsImltYWdlIiwic2V0UHJvdmlkZXIiLCJwcm92aWRlciIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsInNldFRpdGxlIiwidGl0bGUiLCJzZXRVcmwiLCJzZXRUaW1lc3RhbXAiLCJ0aW1lc3RhbXAiLCJEYXRlIiwibm93IiwidG9JU09TdHJpbmciLCJzZXRUaHVtYm5haWwiLCJ0aHVtYm5haWwiLCJzZXRWaWRlbyIsInZpZGVvIiwidmFsaWRhdGUiLCJ0b3RhbENoYXJhY3RlcnMiLCJmb3JFYWNoIiwidHJpbW1lZFRpdGxlIiwidHJpbSIsInRyaW1tZWREZXNjcmlwdGlvbiIsImZpZWxkSW5kZXgiLCJ0cmltbWVkTmFtZSIsInRyaW1tZWRWYWx1ZSIsInRyaW1tZWRGb290ZXJUZXh0IiwidHJpbW1lZEF1dGhvck5hbWUiXSwibWFwcGluZ3MiOiJBQVVBOzs7Ozs7Ozs7Q0FTQyxHQUNELE9BQU8sTUFBTUEsc0JBQXNCQztJQUNqQyxDQUFBLGlCQUFrQixDQUFhO0lBRS9COzs7Ozs7O0dBT0MsR0FDREMsU0FBU0MsSUFBWSxFQUFFQyxLQUFhLEVBQUVDLE1BQWdCLEVBQVE7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
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVycy9lbWJlZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBEaXNjb3JkRW1iZWQsXG4gIERpc2NvcmRFbWJlZEF1dGhvcixcbiAgRGlzY29yZEVtYmVkRmllbGQsXG4gIERpc2NvcmRFbWJlZEZvb3RlcixcbiAgRGlzY29yZEVtYmVkSW1hZ2UsXG4gIERpc2NvcmRFbWJlZFZpZGVvLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcyc7XG5cbi8qKlxuICogQSBidWlsZGVyIHRvIGhlbHAgY3JlYXRlIERpc2NvcmQgZW1iZWRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBlbWJlZHMgPSBuZXcgRW1iZWRzQnVpbGRlcigpXG4gKiAgLnNldFRpdGxlKCdNeSBFbWJlZCcpXG4gKiAgLnNldERlc2NyaXB0aW9uKCdUaGlzIGlzIG15IG5ldyBlbWJlZCcpXG4gKiAgLm5ld0VtYmVkKClcbiAqICAuc2V0VGl0bGUoJ015IFNlY29uZCBFbWJlZCcpXG4gKi9cbmV4cG9ydCBjbGFzcyBFbWJlZHNCdWlsZGVyIGV4dGVuZHMgQXJyYXk8RGlzY29yZEVtYmVkPiB7XG4gICNjdXJyZW50RW1iZWRJbmRleDogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogQWRkcyBhIG5ldyBmaWVsZCB0byB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBGaWVsZCBuYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIEZpZWxkIHZhbHVlXG4gICAqIEBwYXJhbSB7P2Jvb2xlYW59IFtpbmxpbmU9ZmFsc2VdIC0gRmllbGQgc2hvdWxkIGJlIGlubGluZSBvciBub3QuXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgYWRkRmllbGQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBpbmxpbmU/OiBib29sZWFuKTogdGhpcyB7XG4gICAgaWYgKHRoaXMuI2N1cnJlbnRFbWJlZC5maWVsZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcyA9IFtdO1xuICAgIH1cblxuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5maWVsZHMucHVzaCh7XG4gICAgICBuYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBpbmxpbmUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIG11bHRpcGxlIG5ldyBmaWVsZHMgdG8gdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7RGlzY29yZEVtYmVkRmllbGRbXX0gZmllbGRzIC0gVGhlIGZpZWxkcyB0byBhZGRcbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBhZGRGaWVsZHMoZmllbGRzOiBEaXNjb3JkRW1iZWRGaWVsZFtdKTogdGhpcyB7XG4gICAgaWYgKHRoaXMuI2N1cnJlbnRFbWJlZC5maWVsZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy4jY3VycmVudEVtYmVkLmZpZWxkcyA9IFtdO1xuICAgIH1cblxuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5maWVsZHMucHVzaCguLi5maWVsZHMpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGJsYW5rIGVtYmVkLlxuICAgKlxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIG5ld0VtYmVkKCk6IHRoaXMge1xuICAgIGlmICh0aGlzLmxlbmd0aCA+PSAxMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXhpbXVtIGVtYmVkIGNvdW50IGV4Y2VlZGVkLiBZb3UgY2FuIG5vdCBoYXZlIG1vcmUgdGhhbiAxMCBlbWJlZHMuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5wdXNoKHt9KTtcbiAgICB0aGlzLnNldEN1cnJlbnRFbWJlZCgpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjdXJyZW50IGVtYmVkIGF1dGhvci5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBOYW1lIG9mIHRoZSBhdXRob3JcbiAgICogQHBhcmFtIHs/T21pdDxEaXNjb3JkRW1iZWRBdXRob3IsICduYW1lJz59IFtvcHRpb25zXSAtIEV4dHJhIGF1dGhvciBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0QXV0aG9yKG5hbWU6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8RGlzY29yZEVtYmVkQXV0aG9yLCAnbmFtZSc+KTogdGhpcyB7XG4gICAgdGhpcy4jY3VycmVudEVtYmVkLmF1dGhvciA9IHtcbiAgICAgIC4uLnRoaXMuI2N1cnJlbnRFbWJlZC5hdXRob3IsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbmFtZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb2xvciBvbiB0aGUgc2lkZSBvZiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHsobnVtYmVyIHwgc3RyaW5nKX0gY29sb3IgLSBUaGUgY29sb3IsIGluIGJhc2UxNiBvciBoZXggY29sb3IgY29kZVxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldENvbG9yKGNvbG9yOiBudW1iZXIgfCBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGNvbG9yLnRvTG93ZXJDYXNlKCkgPT09ICdyYW5kb20nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldFJhbmRvbUNvbG9yKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnZlcnRlZFZhbHVlID0gcGFyc2VJbnQoY29sb3IucmVwbGFjZSgnIycsICcnKSwgMTYpO1xuICAgICAgY29sb3IgPSBOdW1iZXIuaXNOYU4oY29udmVydGVkVmFsdWUpID8gMCA6IGNvbnZlcnRlZFZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5jb2xvciA9IGNvbG9yO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjdXJyZW50IGVtYmVkIHRvIGEgZGlmZmVyZW50IGluZGV4LlxuICAgKlxuICAgKiBXQVJOSU5HOiBPbmx5IHVzZSB0aGlzIG1ldGhvZCBpZiB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZy4gTWFrZSBzdXJlIHRvIHNldCBpdCBiYWNrIHRvIHRoZSBsYXRlc3Qgd2hlbiB5b3UncmUgZG9uZS5cbiAgICpcbiAgICogQHBhcmFtIHs/bnVtYmVyfSBbaW5kZXhdIC0gVGhlIGluZGV4IG9mIHRoZSBlbWJlZCBpbiB0aGUgRW1iZWRzQnVpbGRlciBhcnJheVxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldEN1cnJlbnRFbWJlZChpbmRleD86IG51bWJlcik6IHRoaXMge1xuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLiNjdXJyZW50RW1iZWRJbmRleCA9IHRoaXMubGVuZ3RoIC0gMTtcblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ID49IHRoaXMubGVuZ3RoIHx8IGluZGV4IDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW4gbm90IHNldCB0aGUgY3VycmVudCBlbWJlZCB0byBhIGluZGV4IG91dCBvZiBib3VuZHMuJyk7XG4gICAgfVxuXG4gICAgdGhpcy4jY3VycmVudEVtYmVkSW5kZXggPSBpbmRleDtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBkZXNjcmlwdGlvbiAtIERlc2NyaXB0aW9uXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcndyaXRlIGFsbCBmaWVsZHMgb24gdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7RGlzY29yZEVtYmVkRmllbGRbXX0gZmllbGRzXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0RmllbGRzKGZpZWxkczogRGlzY29yZEVtYmVkRmllbGRbXSk6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5maWVsZHMgPSBmaWVsZHM7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGZvb3RlciBpbiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgLSBUaGUgdGV4dCB0byBkaXNwbGF5IGluIHRoZSBmb290ZXJcbiAgICogQHBhcmFtIHs/T21pdDxEaXNjb3JkRW1iZWRGb290ZXIsICd0ZXh0Jz59IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldEZvb3Rlcih0ZXh0OiBzdHJpbmcsIG9wdGlvbnM/OiBPbWl0PERpc2NvcmRFbWJlZEZvb3RlciwgJ3RleHQnPik6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC5mb290ZXIgPSB7XG4gICAgICAuLi50aGlzLiNjdXJyZW50RW1iZWQuZm9vdGVyLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHRleHQsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgaW1hZ2UgaW4gdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSBVUkwgb2YgdGhlIGltYWdlXG4gICAqIEBwYXJhbSB7P09taXQ8RGlzY29yZEVtYmVkSW1hZ2UsICd1cmwnPn0gW29wdGlvbnNdXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0SW1hZ2UodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBPbWl0PERpc2NvcmRFbWJlZEltYWdlLCAndXJsJz4pOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQuaW1hZ2UgPSB7XG4gICAgICAuLi50aGlzLiNjdXJyZW50RW1iZWQuaW1hZ2UsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgdXJsLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHByb3ZpZGVyIG9mIHRoZSBjdXJyZW50IGVtYmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgKiBAcGFyYW0gez9zdHJpbmd9IFt1cmxdXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgc2V0UHJvdmlkZXIobmFtZTogc3RyaW5nLCB1cmw/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQucHJvdmlkZXIgPSB7XG4gICAgICBuYW1lLFxuICAgICAgdXJsLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbG9yIG9mIHRoZSBjdXJyZW50IGVtYmVkIHRvIGEgcmFuZG9tIHZhbHVlLlxuICAgKlxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldFJhbmRvbUNvbG9yKCk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLnNldENvbG9yKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICgweGZmZmZmZiArIDEpKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0aXRsZSBvZiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlXG4gICAqIEBwYXJhbSB7P3N0cmluZ30gW3VybF1cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRUaXRsZSh0aXRsZTogc3RyaW5nLCB1cmw/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQudGl0bGUgPSB0aXRsZTtcblxuICAgIGlmICh1cmwpIHtcbiAgICAgIHRoaXMuc2V0VXJsKHVybCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0aW1lc3RhbXAgb2YgdGhlIGN1cnJlbnQgZW1iZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7PyhzdHJpbmcgfCBudW1iZXIgfCBEYXRlKX0gW3RpbWVzdGFtcF1cbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRUaW1lc3RhbXAodGltZXN0YW1wPzogc3RyaW5nIHwgbnVtYmVyIHwgRGF0ZSk6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC50aW1lc3RhbXAgPSBuZXcgRGF0ZSh0aW1lc3RhbXAgPz8gRGF0ZS5ub3coKSkudG9JU09TdHJpbmcoKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdGh1bWJuYWlsIG9mIHRoZSBjdXJyZW50IGVtYmVkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVVJMIG9mIHRoZSBpbWFnZVxuICAgKiBAcGFyYW0gez9PbWl0PERpc2NvcmRFbWJlZEltYWdlLCAndXJsJz59IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldFRodW1ibmFpbCh1cmw6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8RGlzY29yZEVtYmVkSW1hZ2UsICd1cmwnPik6IHRoaXMge1xuICAgIHRoaXMuI2N1cnJlbnRFbWJlZC50aHVtYm5haWwgPSB7XG4gICAgICAuLi50aGlzLiNjdXJyZW50RW1iZWQudGh1bWJuYWlsLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHVybCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBVUkwgb2YgdGhlIGN1cnJlbnQgZW1iZWQgdGl0bGUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1cmxcbiAgICogQHJldHVybnMge0VtYmVkc0J1aWxkZXJ9XG4gICAqL1xuICBzZXRVcmwodXJsOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLiNjdXJyZW50RW1iZWQudXJsID0gdXJsO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB2aWRlbyBvZiB0aGUgY3VycmVudCBlbWJlZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICAgKiBAcGFyYW0gez9PbWl0PERpc2NvcmRFbWJlZFZpZGVvLCAndXJsJz59IFtvcHRpb25zXVxuICAgKiBAcmV0dXJucyB7RW1iZWRzQnVpbGRlcn1cbiAgICovXG4gIHNldFZpZGVvKHVybDogc3RyaW5nLCBvcHRpb25zPzogT21pdDxEaXNjb3JkRW1iZWRWaWRlbywgJ3VybCc+KTogdGhpcyB7XG4gICAgdGhpcy4jY3VycmVudEVtYmVkLnZpZGVvID0ge1xuICAgICAgLi4udGhpcy4jY3VycmVudEVtYmVkLnZpZGVvLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHVybCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgYWxsIGVtYmVkcyBhdmFpbGFibGUgYWdhaW5zdCBjdXJyZW50IGtub3duIERpc2NvcmQgbGltaXRzIHRvIGhlbHAgcHJldmVudCBiYWQgcmVxdWVzdHMuXG4gICAqXG4gICAqIEByZXR1cm5zIHtFbWJlZHNCdWlsZGVyfVxuICAgKi9cbiAgdmFsaWRhdGUoKTogdGhpcyB7XG4gICAgbGV0IHRvdGFsQ2hhcmFjdGVycyA9IDA7XG5cbiAgICBpZiAodGhpcy5sZW5ndGggPiAxMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdZb3UgY2FuIG5vdCBoYXZlIG1vcmUgdGhhbiAxMCBlbWJlZHMgb24gYSBzaW5nbGUgbWVzc2FnZS4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvckVhY2goKHsgYXV0aG9yLCBkZXNjcmlwdGlvbiwgZmllbGRzLCBmb290ZXIsIHRpdGxlIH0sIGluZGV4KSA9PiB7XG4gICAgICBpZiAodGl0bGUpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZFRpdGxlID0gdGl0bGUudHJpbSgpO1xuXG4gICAgICAgIGlmICh0cmltbWVkVGl0bGUubGVuZ3RoID4gMjU2KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaXRsZSBvZiBlbWJlZCAke2luZGV4fSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDI1NiBjaGFyYWN0ZXJzLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgdG90YWxDaGFyYWN0ZXJzICs9IHRyaW1tZWRUaXRsZS5sZW5ndGg7XG4gICAgICB9XG5cbiAgICAgIGlmIChkZXNjcmlwdGlvbikge1xuICAgICAgICBjb25zdCB0cmltbWVkRGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbi50cmltKCk7XG5cbiAgICAgICAgaWYgKHRyaW1tZWREZXNjcmlwdGlvbi5sZW5ndGggPiA0MDk2KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZXNjcmlwdGlvbiBvZiBlbWJlZCAke2luZGV4fSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDQwOTYgY2hhcmFjdGVycy5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRvdGFsQ2hhcmFjdGVycyArPSB0cmltbWVkRGVzY3JpcHRpb24ubGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGRzKSB7XG4gICAgICAgIGlmIChmaWVsZHMubGVuZ3RoID4gMjUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGVtYmVkICR7aW5kZXh9IGNhbiBub3QgaGF2ZSBtb3JlIHRoYW4gMjUgZmllbGRzLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGRzLmZvckVhY2goKHsgbmFtZSwgdmFsdWUgfSwgZmllbGRJbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHRyaW1tZWROYW1lID0gbmFtZS50cmltKCk7XG4gICAgICAgICAgY29uc3QgdHJpbW1lZFZhbHVlID0gdmFsdWUudHJpbSgpO1xuXG4gICAgICAgICAgaWYgKHRyaW1tZWROYW1lLmxlbmd0aCA+IDI1Nikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBOYW1lIG9mIGZpZWxkICR7ZmllbGRJbmRleH0gb24gZW1iZWQgJHtpbmRleH0gY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAyNTYgY2hhcmFjdGVycy5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHJpbW1lZFZhbHVlLmxlbmd0aCA+IDQwOTYpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVmFsdWUgb2YgZmllbGQgJHtmaWVsZEluZGV4fSBvbiBlbWJlZCAke2luZGV4fSBjYW4gbm90IGJlIGxvbmdlciB0aGFuIDEwMjQgY2hhcmFjdGVycy5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0b3RhbENoYXJhY3RlcnMgKz0gdHJpbW1lZE5hbWUubGVuZ3RoO1xuICAgICAgICAgIHRvdGFsQ2hhcmFjdGVycyArPSB0cmltbWVkVmFsdWUubGVuZ3RoO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZvb3Rlcikge1xuICAgICAgICBjb25zdCB0cmltbWVkRm9vdGVyVGV4dCA9IGZvb3Rlci50ZXh0LnRyaW0oKTtcblxuICAgICAgICBpZiAodHJpbW1lZEZvb3RlclRleHQubGVuZ3RoID4gMjA0OCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRm9vdGVyIHRleHQgb2YgZW1iZWQgJHtpbmRleH0gY2FuIG5vdCBiZSBsb25nZXIgdGhhbiAyMDQ4IGNoYXJhY3RlcnMuYCk7XG4gICAgICAgIH1cblxuICAgICAgICB0b3RhbENoYXJhY3RlcnMgKz0gdHJpbW1lZEZvb3RlclRleHQubGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAoYXV0aG9yKSB7XG4gICAgICAgIGNvbnN0IHRyaW1tZWRBdXRob3JOYW1lID0gYXV0aG9yLm5hbWUudHJpbSgpO1xuXG4gICAgICAgIGlmICh0cmltbWVkQXV0aG9yTmFtZS5sZW5ndGggPiAyNTYpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEF1dGhvciBuYW1lIG9mIGVtYmVkICR7aW5kZXh9IGNhbiBub3QgYmUgbG9uZ2VyIHRoYW4gMjU2IGNoYXJhY3RlcnMuYCk7XG4gICAgICAgIH1cblxuICAgICAgICB0b3RhbENoYXJhY3RlcnMgKz0gdHJpbW1lZEF1dGhvck5hbWUubGVuZ3RoO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRvdGFsQ2hhcmFjdGVycyA+IDYwMDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVG90YWwgY2hhcmFjdGVyIGxlbmd0aCBvZiBhbGwgZW1iZWRzIGNhbiBub3QgZXhjZWVkIDYwMDAgY2hhcmFjdGVycy4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGVtYmVkLlxuICAgKlxuICAgKiBAcmVhZG9ubHlcbiAgICogQHR5cGUge0Rpc2NvcmRFbWJlZH1cbiAgICovXG4gIGdldCAjY3VycmVudEVtYmVkKCk6IERpc2NvcmRFbWJlZCB7XG4gICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm5ld0VtYmVkKCk7XG4gICAgICB0aGlzLnNldEN1cnJlbnRFbWJlZCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzW3RoaXMuI2N1cnJlbnRFbWJlZEluZGV4XTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVtYmVkc0J1aWxkZXIiLCJBcnJheSIsImFkZEZpZWxkIiwibmFtZSIsInZhbHVlIiwiaW5saW5lIiwiZmllbGRzIiwidW5kZWZpbmVkIiwicHVzaCIsImFkZEZpZWxkcyIsIm5ld0VtYmVkIiwibGVuZ3RoIiwiRXJyb3IiLCJzZXRDdXJyZW50RW1iZWQiLCJzZXRBdXRob3IiLCJvcHRpb25zIiwiYXV0aG9yIiwic2V0Q29sb3IiLCJjb2xvciIsInRvTG93ZXJDYXNlIiwic2V0UmFuZG9tQ29sb3IiLCJjb252ZXJ0ZWRWYWx1ZSIsInBhcnNlSW50IiwicmVwbGFjZSIsIk51bWJlciIsImlzTmFOIiwiaW5kZXgiLCJzZXREZXNjcmlwdGlvbiIsImRlc2NyaXB0aW9uIiwic2V0RmllbGRzIiwic2V0Rm9vdGVyIiwidGV4dCIsImZvb3RlciIsInNldEltYWdlIiwidXJsIiwiaW1hZ2UiLCJzZXRQcm92aWRlciIsInByb3ZpZGVyIiwiTWF0aCIsImZsb29yIiwicmFuZG9tIiwic2V0VGl0bGUiLCJ0aXRsZSIsInNldFVybCIsInNldFRpbWVzdGFtcCIsInRpbWVzdGFtcCIsIkRhdGUiLCJub3ciLCJ0b0lTT1N0cmluZyIsInNldFRodW1ibmFpbCIsInRodW1ibmFpbCIsInNldFZpZGVvIiwidmlkZW8iLCJ2YWxpZGF0ZSIsInRvdGFsQ2hhcmFjdGVycyIsImZvckVhY2giLCJ0cmltbWVkVGl0bGUiLCJ0cmltIiwidHJpbW1lZERlc2NyaXB0aW9uIiwiZmllbGRJbmRleCIsInRyaW1tZWROYW1lIiwidHJpbW1lZFZhbHVlIiwidHJpbW1lZEZvb3RlclRleHQiLCJ0cmltbWVkQXV0aG9yTmFtZSJdLCJtYXBwaW5ncyI6IkFBU0E7Ozs7Ozs7OztDQVNDLEdBQ0QsT0FBTyxNQUFNQSxzQkFBc0JDO0lBQ2pDLENBQUEsaUJBQWtCLENBQWE7SUFFL0I7Ozs7Ozs7R0FPQyxHQUNEQyxTQUFTQyxJQUFZLEVBQUVDLEtBQWEsRUFBRUMsTUFBZ0IsRUFBUTtRQUM1RCxJQUFJLElBQUksQ0FBQyxDQUFBLFlBQWEsQ0FB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
package/dist/colors.d.ts CHANGED
@@ -3,12 +3,6 @@ export interface Code {
3
3
  close: string;
4
4
  regexp: RegExp;
5
5
  }
6
- /** RGB 8-bits per channel. Each in range `0->255` or `0x00->0xff` */
7
- export interface Rgb {
8
- r: number;
9
- g: number;
10
- b: number;
11
- }
12
6
  /**
13
7
  * Set changing text color to enabled or disabled
14
8
  * @param value
@@ -16,46 +10,16 @@ export interface Rgb {
16
10
  export declare function setColorEnabled(value: boolean): void;
17
11
  /** Get whether text color change is enabled or disabled. */
18
12
  export declare function getColorEnabled(): boolean;
19
- /**
20
- * Reset the text modified
21
- * @param str text to reset
22
- */
23
- export declare function reset(str: string): string;
24
13
  /**
25
14
  * Make the text bold.
26
15
  * @param str text to make bold
27
16
  */
28
17
  export declare function bold(str: string): string;
29
- /**
30
- * The text emits only a small amount of light.
31
- * @param str text to dim
32
- */
33
- export declare function dim(str: string): string;
34
18
  /**
35
19
  * Make the text italic.
36
20
  * @param str text to make italic
37
21
  */
38
22
  export declare function italic(str: string): string;
39
- /**
40
- * Make the text underline.
41
- * @param str text to underline
42
- */
43
- export declare function underline(str: string): string;
44
- /**
45
- * Invert background color and text color.
46
- * @param str text to invert its color
47
- */
48
- export declare function inverse(str: string): string;
49
- /**
50
- * Make the text hidden.
51
- * @param str text to hide
52
- */
53
- export declare function hidden(str: string): string;
54
- /**
55
- * Put horizontal line through the center of the text.
56
- * @param str text to strike through
57
- */
58
- export declare function strikethrough(str: string): string;
59
23
  /**
60
24
  * Set text color to black.
61
25
  * @param str text to make black
@@ -66,210 +30,24 @@ export declare function black(str: string): string;
66
30
  * @param str text to make red
67
31
  */
68
32
  export declare function red(str: string): string;
69
- /**
70
- * Set text color to green.
71
- * @param str text to make green
72
- */
73
- export declare function green(str: string): string;
74
33
  /**
75
34
  * Set text color to yellow.
76
35
  * @param str text to make yellow
77
36
  */
78
37
  export declare function yellow(str: string): string;
79
- /**
80
- * Set text color to blue.
81
- * @param str text to make blue
82
- */
83
- export declare function blue(str: string): string;
84
- /**
85
- * Set text color to magenta.
86
- * @param str text to make magenta
87
- */
88
- export declare function magenta(str: string): string;
89
38
  /**
90
39
  * Set text color to cyan.
91
40
  * @param str text to make cyan
92
41
  */
93
42
  export declare function cyan(str: string): string;
94
- /**
95
- * Set text color to white.
96
- * @param str text to make white
97
- */
98
- export declare function white(str: string): string;
99
- /**
100
- * Set text color to gray.
101
- * @param str text to make gray
102
- */
103
- export declare function gray(str: string): string;
104
43
  /**
105
44
  * Set text color to bright black.
106
45
  * @param str text to make bright-black
107
46
  */
108
- export declare function brightBlack(str: string): string;
109
- /**
110
- * Set text color to bright red.
111
- * @param str text to make bright-red
112
- */
113
- export declare function brightRed(str: string): string;
114
- /**
115
- * Set text color to bright green.
116
- * @param str text to make bright-green
117
- */
118
- export declare function brightGreen(str: string): string;
119
- /**
120
- * Set text color to bright yellow.
121
- * @param str text to make bright-yellow
122
- */
123
- export declare function brightYellow(str: string): string;
124
- /**
125
- * Set text color to bright blue.
126
- * @param str text to make bright-blue
127
- */
128
- export declare function brightBlue(str: string): string;
129
- /**
130
- * Set text color to bright magenta.
131
- * @param str text to make bright-magenta
132
- */
133
- export declare function brightMagenta(str: string): string;
134
- /**
135
- * Set text color to bright cyan.
136
- * @param str text to make bright-cyan
137
- */
138
- export declare function brightCyan(str: string): string;
139
- /**
140
- * Set text color to bright white.
141
- * @param str text to make bright-white
142
- */
143
- export declare function brightWhite(str: string): string;
144
- /**
145
- * Set background color to black.
146
- * @param str text to make its background black
147
- */
148
- export declare function bgBlack(str: string): string;
149
- /**
150
- * Set background color to red.
151
- * @param str text to make its background red
152
- */
153
- export declare function bgRed(str: string): string;
154
- /**
155
- * Set background color to green.
156
- * @param str text to make its background green
157
- */
158
- export declare function bgGreen(str: string): string;
159
- /**
160
- * Set background color to yellow.
161
- * @param str text to make its background yellow
162
- */
163
- export declare function bgYellow(str: string): string;
164
- /**
165
- * Set background color to blue.
166
- * @param str text to make its background blue
167
- */
168
- export declare function bgBlue(str: string): string;
169
- /**
170
- * Set background color to magenta.
171
- * @param str text to make its background magenta
172
- */
173
- export declare function bgMagenta(str: string): string;
174
- /**
175
- * Set background color to cyan.
176
- * @param str text to make its background cyan
177
- */
178
- export declare function bgCyan(str: string): string;
179
- /**
180
- * Set background color to white.
181
- * @param str text to make its background white
182
- */
183
- export declare function bgWhite(str: string): string;
184
- /**
185
- * Set background color to bright black.
186
- * @param str text to make its background bright-black
187
- */
188
- export declare function bgBrightBlack(str: string): string;
189
- /**
190
- * Set background color to bright red.
191
- * @param str text to make its background bright-red
192
- */
193
- export declare function bgBrightRed(str: string): string;
194
- /**
195
- * Set background color to bright green.
196
- * @param str text to make its background bright-green
197
- */
198
- export declare function bgBrightGreen(str: string): string;
199
- /**
200
- * Set background color to bright yellow.
201
- * @param str text to make its background bright-yellow
202
- */
203
- export declare function bgBrightYellow(str: string): string;
204
- /**
205
- * Set background color to bright blue.
206
- * @param str text to make its background bright-blue
207
- */
208
- export declare function bgBrightBlue(str: string): string;
47
+ export declare function gray(str: string): string;
209
48
  /**
210
49
  * Set background color to bright magenta.
211
50
  * @param str text to make its background bright-magenta
212
51
  */
213
52
  export declare function bgBrightMagenta(str: string): string;
214
- /**
215
- * Set background color to bright cyan.
216
- * @param str text to make its background bright-cyan
217
- */
218
- export declare function bgBrightCyan(str: string): string;
219
- /**
220
- * Set background color to bright white.
221
- * @param str text to make its background bright-white
222
- */
223
- export declare function bgBrightWhite(str: string): string;
224
- /**
225
- * Set text color using paletted 8bit colors.
226
- * https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
227
- * @param str text color to apply paletted 8bit colors to
228
- * @param color code
229
- */
230
- export declare function rgb8(str: string, color: number): string;
231
- /**
232
- * Set background color using paletted 8bit colors.
233
- * https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit
234
- * @param str text color to apply paletted 8bit background colors to
235
- * @param color code
236
- */
237
- export declare function bgRgb8(str: string, color: number): string;
238
- /**
239
- * Set text color using 24bit rgb.
240
- * `color` can be a number in range `0x000000` to `0xffffff` or
241
- * an `Rgb`.
242
- *
243
- * To produce the color magenta:
244
- *
245
- * ```ts
246
- * import { rgb24 } from "./colors.ts";
247
- * rgb24("foo", 0xff00ff);
248
- * rgb24("foo", {r: 255, g: 0, b: 255});
249
- * ```
250
- * @param str text color to apply 24bit rgb to
251
- * @param color code
252
- */
253
- export declare function rgb24(str: string, color: number | Rgb): string;
254
- /**
255
- * Set background color using 24bit rgb.
256
- * `color` can be a number in range `0x000000` to `0xffffff` or
257
- * an `Rgb`.
258
- *
259
- * To produce the color magenta:
260
- *
261
- * ```ts
262
- * import { bgRgb24 } from "./colors.ts";
263
- * bgRgb24("foo", 0xff00ff);
264
- * bgRgb24("foo", {r: 255, g: 0, b: 255});
265
- * ```
266
- * @param str text color to apply 24bit rgb to
267
- * @param color code
268
- */
269
- export declare function bgRgb24(str: string, color: number | Rgb): string;
270
- /**
271
- * Remove ANSI escape codes from the string.
272
- * @param string to remove ANSI escape codes from
273
- */
274
- export declare function stripColor(string: string): string;
275
53
  //# sourceMappingURL=colors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../src/colors.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,QAE7C;AAED,4DAA4D;AAC5D,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAwBD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;GAGG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD"}