@dotglitch/ngx-common 1.0.49 โ†’ 1.0.50

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.
@@ -70,6 +70,9 @@ export const LogIcon = {
70
70
  bug: new Emoticon("๐Ÿฆ "),
71
71
  bomb: new Emoticon("๐Ÿ’ฃ"),
72
72
  tnt: new Emoticon("๐Ÿงจ"),
73
+ stop: new Emoticon("๐Ÿ›‘"),
74
+ police: new Emoticon("๐Ÿšจ"),
75
+ rocket: new Emoticon("๐Ÿš€"),
73
76
  warning: new Emoticon("โš ๏ธ"),
74
77
  chart: new Emoticon("๐Ÿ“Š"),
75
78
  chart_up: new Emoticon("๐Ÿ“ˆ"),
@@ -98,6 +101,11 @@ class Log {
98
101
  this.context = context;
99
102
  this.contextColor = contextColor;
100
103
  this.textColor = textColor;
104
+ // Force the bindings to stay intact with overloads.
105
+ this.log = this.log.bind(this);
106
+ this.warn = this.warn.bind(this);
107
+ this.err = this.err.bind(this);
108
+ this.error = this.error.bind(this);
101
109
  }
102
110
  log(iconOrMessage, messageText, ...args) {
103
111
  if (iconOrMessage instanceof Emoticon) {
@@ -124,12 +132,8 @@ class Log {
124
132
  }
125
133
  }
126
134
  error(iconOrMessage, messageText, ...args) {
127
- if (iconOrMessage instanceof Emoticon) {
128
- console.error(`${iconOrMessage} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
129
- }
130
- else {
131
- console.error(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
132
- }
135
+ // @ts-ignore
136
+ this.err(iconOrMessage, messageText, ...args);
133
137
  }
134
138
  }
135
139
  /**
@@ -193,4 +197,4 @@ export const getUrlData = (source = window.location.hash) => {
193
197
  let data = new URLSearchParams(query);
194
198
  return [...data.entries()].map(([k, v]) => ({ [k]: v })).reduce((a, b) => ({ ...a, ...b }), {});
195
199
  };
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRS9EOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUTtJQUNWLFlBQW9CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUUsQ0FBQztDQUN0QztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNuQixhQUFhLEVBQUUsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2pDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxJ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QUMsQ0FBQztLQUNqRjtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFO0lBQ3hELE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxJQUFJLElBQUksR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQVEsQ0FBQztJQUM3QyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHNsZWVwID0gbXMgPT4gbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7XG5cbi8qKlxuICogUHJvbXB0IHRoZSB1c2VyIHRvIHNhdmUgYSBqc29uIGZpbGUgb2YgdGhlIGdpdmVuIG9iamVjdC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNhdmVPYmplY3RBc0ZpbGUgPSAobmFtZTogc3RyaW5nLCBkYXRhOiBPYmplY3QpID0+IHtcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgY29uc3QgZmlsZSA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShkYXRhKV0sIHsgdHlwZTogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSk7XG4gICAgYS5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcbiAgICBhLmRvd25sb2FkID0gbmFtZTtcbiAgICBhLmNsaWNrKCk7XG4gICAgYS5yZW1vdmUoKTtcbn07XG5cbmNsYXNzIEVtb3RpY29uIHtcbiAgICBjb25zdHJ1Y3RvciAocHVibGljIGljb246IHN0cmluZyl7fVxufVxuXG4vKipcbiAqIGF1dGhvcml6YXRpb24g8J+UkCBcXFxuICogdXNlciDwn6qqIFxcXG4gKiBzZWN1cml0eSDwn5uhIFxcXG4gKiBzeXN0ZW0g8J+WpSBcXFxuICogdG9vbGJveCDwn6ewIFxcXG4gKiBjaG9yZSDimpkgXFxcbiAqIGNvbmZpZyDwn5ugIFxcXG4gKiByZW5kZXJlciDwn5OQIFxcXG4gKiBwYWNrYWdlIPCfk6YgXFxcbiAqIHRpbWUg4o+zIFxcXG4gKiBkb3dubG9hZCDwn5OlIFxcXG4gKiB1cGxvYWQg8J+TpCBcXFxuICogYnVnIPCfpqAgXFxcbiAqIGJvbWIg8J+SoyBcXFxuICogdG50IPCfp6ggXFxcbiAqIHdhcm5pbmcg4pqg77iPIFxcXG4gKiBjaGFydCDwn5OKIFxcXG4gKiBjaGFydF91cCDwn5OIIFxcXG4gKiBjaGFydF9kb3duIPCfk4kgXFxcbiAqIGNpcmNsZV9yZWQg8J+UtCBcXFxuICogY2lyY2xlX29yYW5nZSDwn5+gIFxcXG4gKiBjaXJjbGVfeWVsbG93IPCfn6EgXFxcbiAqIGNpcmNsZV9ncmVlbiDwn5+iIFxcXG4gKiBjaXJjbGVfYmx1ZSDwn5S1IFxcXG4gKiBjaXJjbGVfdmlvbGV0IPCfn6MgXFxcbiAqIGNpcmNsZV9ibGFjayDimqvvuI8gXFxcbiAqIGNpcmNsZV93aGl0ZSDimqrvuI8gXFxcbiAqIGNpcmNsZV9icm93biDwn5+kIFxcXG4gKiBzcXVhcmVfcmVkIPCfn6UgXFxcbiAqIHNxdWFyZV9vcmFuZ2Ug8J+fpyBcXFxuICogc3F1YXJlX3llbGxvdyDwn5+oIFxcXG4gKiBzcXVhcmVfZ3JlZW4g8J+fqSBcXFxuICogc3F1YXJlX2JsdWUg8J+fpiBcXFxuICogc3F1YXJlX3Zpb2xldCDwn5+qIFxcXG4gKiBzcXVhcmVfYmxhY2sg4qyb77iPIFxcXG4gKiBzcXVhcmVfd2hpdGUg4qyc77iPIFxcXG4gKiBzcXVhcmVfYnJvd24g8J+fq1xuICovXG5leHBvcnQgY29uc3QgTG9nSWNvbiA9IHtcbiAgICBhdXRob3JpemF0aW9uOiBuZXcgRW1vdGljb24oXCLwn5SQXCIpLFxuICAgIHVzZXI6IG5ldyBFbW90aWNvbihcIvCfqqpcIiksXG4gICAgc2VjdXJpdHk6IG5ldyBFbW90aWNvbihcIvCfm6FcIiksXG4gICAgc3lzdGVtOiBuZXcgRW1vdGljb24oXCLwn5alXCIpLFxuICAgIHRvb2xib3g6IG5ldyBFbW90aWNvbihcIvCfp7BcIiksXG4gICAgY2hvcmU6IG5ldyBFbW90aWNvbihcIuKamVwiKSxcbiAgICBjb25maWc6IG5ldyBFbW90aWNvbihcIvCfm6BcIiksXG4gICAgcmVuZGVyZXI6IG5ldyBFbW90aWNvbihcIvCfk5BcIiksXG4gICAgcGFja2FnZTogbmV3IEVtb3RpY29uKFwi8J+TplwiKSxcbiAgICB0aW1lOiBuZXcgRW1vdGljb24oXCLij7NcIiksXG4gICAgZG93bmxvYWQ6IG5ldyBFbW90aWNvbihcIvCfk6VcIiksXG4gICAgdXBsb2FkOiBuZXcgRW1vdGljb24oXCLwn5OkXCIpLFxuICAgIGJ1ZzogbmV3IEVtb3RpY29uKFwi8J+moFwiKSxcbiAgICBib21iOiBuZXcgRW1vdGljb24oXCLwn5KjXCIpLFxuICAgIHRudDogbmV3IEVtb3RpY29uKFwi8J+nqFwiKSxcbiAgICB3YXJuaW5nOiBuZXcgRW1vdGljb24oXCLimqDvuI9cIiksXG4gICAgY2hhcnQ6IG5ldyBFbW90aWNvbihcIvCfk4pcIiksXG4gICAgY2hhcnRfdXA6IG5ldyBFbW90aWNvbihcIvCfk4hcIiksXG4gICAgY2hhcnRfZG93bjogbmV3IEVtb3RpY29uKFwi8J+TiVwiKSxcblxuICAgIGNpcmNsZV9yZWQ6IG5ldyBFbW90aWNvbihcIvCflLRcIiksXG4gICAgY2lyY2xlX29yYW5nZTogbmV3IEVtb3RpY29uKFwi8J+foFwiKSxcbiAgICBjaXJjbGVfeWVsbG93OiBuZXcgRW1vdGljb24oXCLwn5+hXCIpLFxuICAgIGNpcmNsZV9ncmVlbjogbmV3IEVtb3RpY29uKFwi8J+folwiKSxcbiAgICBjaXJjbGVfYmx1ZTogbmV3IEVtb3RpY29uKFwi8J+UtVwiKSxcbiAgICBjaXJjbGVfdmlvbGV0OiBuZXcgRW1vdGljb24oXCLwn5+jXCIpLFxuICAgIGNpcmNsZV9ibGFjazogbmV3IEVtb3RpY29uKFwi4pqr77iPXCIpLFxuICAgIGNpcmNsZV93aGl0ZTogbmV3IEVtb3RpY29uKFwi4pqq77iPXCIpLFxuICAgIGNpcmNsZV9icm93bjogbmV3IEVtb3RpY29uKFwi8J+fpFwiKSxcbiAgICBzcXVhcmVfcmVkOiBuZXcgRW1vdGljb24oXCLwn5+lXCIpLFxuICAgIHNxdWFyZV9vcmFuZ2U6IG5ldyBFbW90aWNvbihcIvCfn6dcIiksXG4gICAgc3F1YXJlX3llbGxvdzogbmV3IEVtb3RpY29uKFwi8J+fqFwiKSxcbiAgICBzcXVhcmVfZ3JlZW46IG5ldyBFbW90aWNvbihcIvCfn6lcIiksXG4gICAgc3F1YXJlX2JsdWU6IG5ldyBFbW90aWNvbihcIvCfn6ZcIiksXG4gICAgc3F1YXJlX3Zpb2xldDogbmV3IEVtb3RpY29uKFwi8J+fqlwiKSxcbiAgICBzcXVhcmVfYmxhY2s6IG5ldyBFbW90aWNvbihcIuKsm++4j1wiKSxcbiAgICBzcXVhcmVfd2hpdGU6IG5ldyBFbW90aWNvbihcIuKsnO+4j1wiKSxcbiAgICBzcXVhcmVfYnJvd246IG5ldyBFbW90aWNvbihcIvCfn6tcIilcbn1cblxuY2xhc3MgTG9nIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb250ZXh0OiBzdHJpbmcsXG4gICAgICAgIHByaXZhdGUgY29udGV4dENvbG9yOiBzdHJpbmcsXG4gICAgICAgIHByaXZhdGUgdGV4dENvbG9yOiBzdHJpbmdcbiAgICApIHsgfVxuXG4gICAgbG9nKGljb246IEVtb3RpY29uLCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgbG9nKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICBsb2coaWNvbk9yTWVzc2FnZTogRW1vdGljb24gfCBzdHJpbmcsIG1lc3NhZ2VUZXh0OiBzdHJpbmcsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGljb25Pck1lc3NhZ2UgaW5zdGFuY2VvZiBFbW90aWNvbikge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCR7aWNvbk9yTWVzc2FnZX0gJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7bWVzc2FnZVRleHR9YCwgJ2NvbG9yOiAnICsgdGhpcy5jb250ZXh0Q29sb3IsICdjb2xvcjogJyArIHRoaXMudGV4dENvbG9yLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAlY1ske3RoaXMuY29udGV4dH1dICVjJHtpY29uT3JNZXNzYWdlfWAsICdjb2xvcjogJyArIHRoaXMuY29udGV4dENvbG9yLCAnY29sb3I6ICcgKyB0aGlzLnRleHRDb2xvciwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3YXJuKGljb246IEVtb3RpY29uLCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgd2FybihtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgd2FybihpY29uT3JNZXNzYWdlOiBFbW90aWNvbiB8IHN0cmluZywgbWVzc2FnZVRleHQ6IHN0cmluZywgLi4uYXJncykge1xuICAgICAgICBpZiAoaWNvbk9yTWVzc2FnZSBpbnN0YW5jZW9mIEVtb3RpY29uKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYCR7aWNvbk9yTWVzc2FnZX0gJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7bWVzc2FnZVRleHR9YCwgJ2NvbG9yOiAnICsgdGhpcy5jb250ZXh0Q29sb3IsICdjb2xvcjogJyArIHRoaXMudGV4dENvbG9yLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7aWNvbk9yTWVzc2FnZX1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXJyKGljb246IEVtb3RpY29uLCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgZXJyKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICBlcnIoaWNvbk9yTWVzc2FnZTogRW1vdGljb24gfCBzdHJpbmcsIG1lc3NhZ2VUZXh0OiBzdHJpbmcsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGljb25Pck1lc3NhZ2UgaW5zdGFuY2VvZiBFbW90aWNvbikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJHtpY29uT3JNZXNzYWdlfSAlY1ske3RoaXMuY29udGV4dH1dICVjJHttZXNzYWdlVGV4dH1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7aWNvbk9yTWVzc2FnZX1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZXJyb3IoaWNvbjogRW1vdGljb24sIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICBlcnJvcihtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3MpXG4gICAgZXJyb3IoaWNvbk9yTWVzc2FnZTogRW1vdGljb24gfCBzdHJpbmcsIG1lc3NhZ2VUZXh0OiBzdHJpbmcsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGljb25Pck1lc3NhZ2UgaW5zdGFuY2VvZiBFbW90aWNvbikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJHtpY29uT3JNZXNzYWdlfSAlY1ske3RoaXMuY29udGV4dH1dICVjJHttZXNzYWdlVGV4dH1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgJWNbJHt0aGlzLmNvbnRleHR9XSAlYyR7aWNvbk9yTWVzc2FnZX1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIEZvcm1hdHRlZCBsb2dnZXIgdGhhdCB3aWxsIHByaW50IGEgYml0IG9mIGNvbnRleHQgYmVmb3JlIHRoZSBtZXNzYWdlLlxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IENvbnNvbGVMb2dnZXIgPSAoY29udGV4dDogc3RyaW5nLCBjb250ZXh0Q29sb3I6IHN0cmluZywgdGV4dENvbG9yOiBzdHJpbmcgPSBcIiMwM2E5ZjRcIikgPT5cbiAgICBuZXcgTG9nKGNvbnRleHQsIGNvbnRleHRDb2xvciwgdGV4dENvbG9yKTtcblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIGBmb29CQVIgYmF6XzE2MDA1NCcnXCIxXVwiYCBpbnRvIGEgc2x1ZzogYGZvb2Jhci1iYXotMTYwMDU0MWBcbiAqL1xuZXhwb3J0IGNvbnN0IHN0cmluZ1RvU2x1ZyA9ICh0ZXh0OiBzdHJpbmcpID0+XG4gICAgKHRleHQgfHwgJycpXG4gICAgICAgIC50cmltKClcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgLnJlcGxhY2UoL1tcXC1fKyBdL2csICctJylcbiAgICAgICAgLnJlcGxhY2UoL1teYS16MC05XFwtXS9nLCAnJyk7XG5cblxuLyoqXG4qIEhlbHBlciB0byB1cGRhdGUgdGhlIHBhZ2UgVVJMLlxuKiBAcGFyYW0gcGFnZSBjb21wb25lbnQgcGFnZSBJRCB0byBsb2FkLlxuKiBAcGFyYW0gZGF0YSBzdHJpbmcgb3IgSlNPTiBkYXRhIGZvciBxdWVyeSBwYXJhbXMuXG4qL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZVVybCA9IChwYWdlPzogc3RyaW5nLCBkYXRhOiBzdHJpbmcgfCBzdHJpbmdbXVtdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiB8IFVSTFNlYXJjaFBhcmFtcyA9IHt9LCByZXBsYWNlU3RhdGUgPSBmYWxzZSkgPT4ge1xuICAgIGNvbnN0IFtvbGRIYXNoLCBxc3RyaW5nXSA9IGxvY2F0aW9uLmhhc2guc3BsaXQoJz8nKTtcblxuICAgIGlmICghcGFnZSlcbiAgICAgICAgcGFnZSA9IG9sZEhhc2guc3BsaXQoJy8nKVsxXTtcblxuICAgIGNvbnN0IGhhc2ggPSBgIy8ke3BhZ2V9YDtcblxuICAgIC8vIENvbnZlcnQgdGhlIGRhdGEgb2JqZWN0IHRvIEpTT04uXG4gICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpIHtcbiAgICAgICAgZGF0YSA9IFsuLi4oZGF0YSBhcyBhbnkpLmVudHJpZXMoKV0ubWFwKChbaywgdl0pID0+ICh7IFtrXTogdiB9KSkucmVkdWNlKChhLCBiKSA9PiAoeyAuLi5hLCAuLi5iIH0pLCB7fSk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGRhdGEgYXMgYW55KSBhcyBhbnk7XG4gICAgY29uc3QgcHJldlBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXN0cmluZykgYXMgYW55O1xuXG4gICAgLy8gSWYgdGhlIGhhc2ggaXMgdGhlIHNhbWUsIHJldGFpbiBwYXJhbXMuXG4gICAgaWYgKGhhc2ggPT0gb2xkSGFzaCkge1xuICAgICAgICByZXBsYWNlU3RhdGUgPSB0cnVlO1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBwcmV2UGFyYW1zLmVudHJpZXMoKSlcbiAgICAgICAgICAgIGlmICghcXVlcnkuaGFzKGtleSkpXG4gICAgICAgICAgICAgICAgcXVlcnkuc2V0KGtleSwgcHJldlBhcmFtcy5nZXQoa2V5KSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWxdIG9mIHF1ZXJ5LmVudHJpZXMoKSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB2YWwgPT0gbnVsbCB8fFxuICAgICAgICAgICAgdmFsID09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgdmFsID09ICcnIHx8XG4gICAgICAgICAgICB2YWwgPT0gJ251bGwnIHx8XG4gICAgICAgICAgICBOdW1iZXIuaXNOYU4odmFsKSB8fFxuICAgICAgICAgICAgdmFsID09ICdOYU4nXG4gICAgICAgIClcbiAgICAgICAgICAgIHF1ZXJ5LmRlbGV0ZShrZXkpO1xuICAgIH1cblxuICAgIGlmICghKGhhc2gudG9Mb3dlckNhc2UoKSA9PSBcIiMvZnJhbWVcIikgfHwgZGF0YVsnaWQnXSA9PSAtMSlcbiAgICAgICAgcXVlcnkuZGVsZXRlKCdpZCcpO1xuXG5cbiAgICBjb25zdCBzdHJRdWVyeSA9IHF1ZXJ5LnRvU3RyaW5nKCk7XG4gICAgY29uc29sZS5sb2coZGF0YSwgaGFzaCwgc3RyUXVlcnkpO1xuICAgIGlmIChyZXBsYWNlU3RhdGUpIHtcbiAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKGRhdGEsICcnLCBoYXNoICsgKHN0clF1ZXJ5ID8gKCc/JyArIHN0clF1ZXJ5KSA6ICcnKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB3aW5kb3cuaGlzdG9yeS5wdXNoU3RhdGUoZGF0YSwgJycsIGhhc2ggKyAoc3RyUXVlcnkgPyAoJz8nICsgc3RyUXVlcnkpIDogJycpKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VXJsRGF0YSA9IChzb3VyY2UgPSB3aW5kb3cubG9jYXRpb24uaGFzaCkgPT4ge1xuICAgIGNvbnN0IFtoYXNoLCBxdWVyeV0gPSBzb3VyY2Uuc3BsaXQoJz8nKTtcbiAgICBsZXQgZGF0YSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnkpIGFzIGFueTtcbiAgICByZXR1cm4gWy4uLmRhdGEuZW50cmllcygpXS5tYXAoKFtrLCB2XSkgPT4gKHsgW2tdOiB2IH0pKS5yZWR1Y2UoKGEsIGIpID0+ICh7IC4uLmEsIC4uLmIgfSksIHt9KTtcbn07XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRS9EOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsSUFBWSxFQUFFLEVBQUU7SUFDM0QsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sUUFBUTtJQUNWLFlBQW9CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO0lBQUUsQ0FBQztDQUN0QztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNuQixhQUFhLEVBQUUsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQ2pDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxJ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O1NBQ0k7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDakY7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRTtJQUN4RCxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFRLENBQUM7SUFDN0MsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3BHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzbGVlcCA9IG1zID0+IG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChyLCBtcykpO1xuXG4vKipcbiAqIFByb21wdCB0aGUgdXNlciB0byBzYXZlIGEganNvbiBmaWxlIG9mIHRoZSBnaXZlbiBvYmplY3QuXG4gKi9cbmV4cG9ydCBjb25zdCBzYXZlT2JqZWN0QXNGaWxlID0gKG5hbWU6IHN0cmluZywgZGF0YTogT2JqZWN0KSA9PiB7XG4gICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICAgIGNvbnN0IGZpbGUgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZGF0YSldLCB7IHR5cGU6IFwiYXBwbGljYXRpb24vanNvblwiIH0pO1xuICAgIGEuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XG4gICAgYS5kb3dubG9hZCA9IG5hbWU7XG4gICAgYS5jbGljaygpO1xuICAgIGEucmVtb3ZlKCk7XG59O1xuXG5jbGFzcyBFbW90aWNvbiB7XG4gICAgY29uc3RydWN0b3IgKHB1YmxpYyBpY29uOiBzdHJpbmcpe31cbn1cblxuLyoqXG4gKiBhdXRob3JpemF0aW9uIPCflJAgXFxcbiAqIHVzZXIg8J+qqiBcXFxuICogc2VjdXJpdHkg8J+boSBcXFxuICogc3lzdGVtIPCflqUgXFxcbiAqIHRvb2xib3gg8J+nsCBcXFxuICogY2hvcmUg4pqZIFxcXG4gKiBjb25maWcg8J+boCBcXFxuICogcmVuZGVyZXIg8J+TkCBcXFxuICogcGFja2FnZSDwn5OmIFxcXG4gKiB0aW1lIOKPsyBcXFxuICogZG93bmxvYWQg8J+TpSBcXFxuICogdXBsb2FkIPCfk6QgXFxcbiAqIGJ1ZyDwn6agIFxcXG4gKiBib21iIPCfkqMgXFxcbiAqIHRudCDwn6eoIFxcXG4gKiB3YXJuaW5nIOKaoO+4jyBcXFxuICogY2hhcnQg8J+TiiBcXFxuICogY2hhcnRfdXAg8J+TiCBcXFxuICogY2hhcnRfZG93biDwn5OJIFxcXG4gKiBjaXJjbGVfcmVkIPCflLQgXFxcbiAqIGNpcmNsZV9vcmFuZ2Ug8J+foCBcXFxuICogY2lyY2xlX3llbGxvdyDwn5+hIFxcXG4gKiBjaXJjbGVfZ3JlZW4g8J+foiBcXFxuICogY2lyY2xlX2JsdWUg8J+UtSBcXFxuICogY2lyY2xlX3Zpb2xldCDwn5+jIFxcXG4gKiBjaXJjbGVfYmxhY2sg4pqr77iPIFxcXG4gKiBjaXJjbGVfd2hpdGUg4pqq77iPIFxcXG4gKiBjaXJjbGVfYnJvd24g8J+fpCBcXFxuICogc3F1YXJlX3JlZCDwn5+lIFxcXG4gKiBzcXVhcmVfb3JhbmdlIPCfn6cgXFxcbiAqIHNxdWFyZV95ZWxsb3cg8J+fqCBcXFxuICogc3F1YXJlX2dyZWVuIPCfn6kgXFxcbiAqIHNxdWFyZV9ibHVlIPCfn6YgXFxcbiAqIHNxdWFyZV92aW9sZXQg8J+fqiBcXFxuICogc3F1YXJlX2JsYWNrIOKsm++4jyBcXFxuICogc3F1YXJlX3doaXRlIOKsnO+4jyBcXFxuICogc3F1YXJlX2Jyb3duIPCfn6tcbiAqL1xuZXhwb3J0IGNvbnN0IExvZ0ljb24gPSB7XG4gICAgYXV0aG9yaXphdGlvbjogbmV3IEVtb3RpY29uKFwi8J+UkFwiKSxcbiAgICB1c2VyOiBuZXcgRW1vdGljb24oXCLwn6qqXCIpLFxuICAgIHNlY3VyaXR5OiBuZXcgRW1vdGljb24oXCLwn5uhXCIpLFxuICAgIHN5c3RlbTogbmV3IEVtb3RpY29uKFwi8J+WpVwiKSxcbiAgICB0b29sYm94OiBuZXcgRW1vdGljb24oXCLwn6ewXCIpLFxuICAgIGNob3JlOiBuZXcgRW1vdGljb24oXCLimplcIiksXG4gICAgY29uZmlnOiBuZXcgRW1vdGljb24oXCLwn5ugXCIpLFxuICAgIHJlbmRlcmVyOiBuZXcgRW1vdGljb24oXCLwn5OQXCIpLFxuICAgIHBhY2thZ2U6IG5ldyBFbW90aWNvbihcIvCfk6ZcIiksXG4gICAgdGltZTogbmV3IEVtb3RpY29uKFwi4o+zXCIpLFxuICAgIGRvd25sb2FkOiBuZXcgRW1vdGljb24oXCLwn5OlXCIpLFxuICAgIHVwbG9hZDogbmV3IEVtb3RpY29uKFwi8J+TpFwiKSxcbiAgICBidWc6IG5ldyBFbW90aWNvbihcIvCfpqBcIiksXG4gICAgYm9tYjogbmV3IEVtb3RpY29uKFwi8J+So1wiKSxcbiAgICB0bnQ6IG5ldyBFbW90aWNvbihcIvCfp6hcIiksXG4gICAgc3RvcDogbmV3IEVtb3RpY29uKFwi8J+bkVwiKSxcbiAgICBwb2xpY2U6IG5ldyBFbW90aWNvbihcIvCfmqhcIiksXG4gICAgcm9ja2V0OiBuZXcgRW1vdGljb24oXCLwn5qAXCIpLFxuICAgIHdhcm5pbmc6IG5ldyBFbW90aWNvbihcIuKaoO+4j1wiKSxcbiAgICBjaGFydDogbmV3IEVtb3RpY29uKFwi8J+TilwiKSxcbiAgICBjaGFydF91cDogbmV3IEVtb3RpY29uKFwi8J+TiFwiKSxcbiAgICBjaGFydF9kb3duOiBuZXcgRW1vdGljb24oXCLwn5OJXCIpLFxuXG4gICAgY2lyY2xlX3JlZDogbmV3IEVtb3RpY29uKFwi8J+UtFwiKSxcbiAgICBjaXJjbGVfb3JhbmdlOiBuZXcgRW1vdGljb24oXCLwn5+gXCIpLFxuICAgIGNpcmNsZV95ZWxsb3c6IG5ldyBFbW90aWNvbihcIvCfn6FcIiksXG4gICAgY2lyY2xlX2dyZWVuOiBuZXcgRW1vdGljb24oXCLwn5+iXCIpLFxuICAgIGNpcmNsZV9ibHVlOiBuZXcgRW1vdGljb24oXCLwn5S1XCIpLFxuICAgIGNpcmNsZV92aW9sZXQ6IG5ldyBFbW90aWNvbihcIvCfn6NcIiksXG4gICAgY2lyY2xlX2JsYWNrOiBuZXcgRW1vdGljb24oXCLimqvvuI9cIiksXG4gICAgY2lyY2xlX3doaXRlOiBuZXcgRW1vdGljb24oXCLimqrvuI9cIiksXG4gICAgY2lyY2xlX2Jyb3duOiBuZXcgRW1vdGljb24oXCLwn5+kXCIpLFxuICAgIHNxdWFyZV9yZWQ6IG5ldyBFbW90aWNvbihcIvCfn6VcIiksXG4gICAgc3F1YXJlX29yYW5nZTogbmV3IEVtb3RpY29uKFwi8J+fp1wiKSxcbiAgICBzcXVhcmVfeWVsbG93OiBuZXcgRW1vdGljb24oXCLwn5+oXCIpLFxuICAgIHNxdWFyZV9ncmVlbjogbmV3IEVtb3RpY29uKFwi8J+fqVwiKSxcbiAgICBzcXVhcmVfYmx1ZTogbmV3IEVtb3RpY29uKFwi8J+fplwiKSxcbiAgICBzcXVhcmVfdmlvbGV0OiBuZXcgRW1vdGljb24oXCLwn5+qXCIpLFxuICAgIHNxdWFyZV9ibGFjazogbmV3IEVtb3RpY29uKFwi4qyb77iPXCIpLFxuICAgIHNxdWFyZV93aGl0ZTogbmV3IEVtb3RpY29uKFwi4qyc77iPXCIpLFxuICAgIHNxdWFyZV9icm93bjogbmV3IEVtb3RpY29uKFwi8J+fq1wiKVxufVxuXG5jbGFzcyBMb2cge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGNvbnRleHQ6IHN0cmluZyxcbiAgICAgICAgcHJpdmF0ZSBjb250ZXh0Q29sb3I6IHN0cmluZyxcbiAgICAgICAgcHJpdmF0ZSB0ZXh0Q29sb3I6IHN0cmluZ1xuICAgICkge1xuICAgICAgICAvLyBGb3JjZSB0aGUgYmluZGluZ3MgdG8gc3RheSBpbnRhY3Qgd2l0aCBvdmVybG9hZHMuXG4gICAgICAgIHRoaXMubG9nID0gdGhpcy5sb2cuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy53YXJuID0gdGhpcy53YXJuLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuZXJyID0gdGhpcy5lcnIuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5lcnJvciA9IHRoaXMuZXJyb3IuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBsb2coaWNvbjogRW1vdGljb24sIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICBsb2cobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzKVxuICAgIGxvZyhpY29uT3JNZXNzYWdlOiBFbW90aWNvbiB8IHN0cmluZywgbWVzc2FnZVRleHQ6IHN0cmluZywgLi4uYXJncykge1xuICAgICAgICBpZiAoaWNvbk9yTWVzc2FnZSBpbnN0YW5jZW9mIEVtb3RpY29uKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgJHtpY29uT3JNZXNzYWdlfSAlY1ske3RoaXMuY29udGV4dH1dICVjJHttZXNzYWdlVGV4dH1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYCVjWyR7dGhpcy5jb250ZXh0fV0gJWMke2ljb25Pck1lc3NhZ2V9YCwgJ2NvbG9yOiAnICsgdGhpcy5jb250ZXh0Q29sb3IsICdjb2xvcjogJyArIHRoaXMudGV4dENvbG9yLCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdhcm4oaWNvbjogRW1vdGljb24sIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICB3YXJuKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICB3YXJuKGljb25Pck1lc3NhZ2U6IEVtb3RpY29uIHwgc3RyaW5nLCBtZXNzYWdlVGV4dDogc3RyaW5nLCAuLi5hcmdzKSB7XG4gICAgICAgIGlmIChpY29uT3JNZXNzYWdlIGluc3RhbmNlb2YgRW1vdGljb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgJHtpY29uT3JNZXNzYWdlfSAlY1ske3RoaXMuY29udGV4dH1dICVjJHttZXNzYWdlVGV4dH1gLCAnY29sb3I6ICcgKyB0aGlzLmNvbnRleHRDb2xvciwgJ2NvbG9yOiAnICsgdGhpcy50ZXh0Q29sb3IsIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGAlY1ske3RoaXMuY29udGV4dH1dICVjJHtpY29uT3JNZXNzYWdlfWAsICdjb2xvcjogJyArIHRoaXMuY29udGV4dENvbG9yLCAnY29sb3I6ICcgKyB0aGlzLnRleHRDb2xvciwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlcnIoaWNvbjogRW1vdGljb24sIG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICBlcnIobWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzKVxuICAgIGVycihpY29uT3JNZXNzYWdlOiBFbW90aWNvbiB8IHN0cmluZywgbWVzc2FnZVRleHQ6IHN0cmluZywgLi4uYXJncykge1xuICAgICAgICBpZiAoaWNvbk9yTWVzc2FnZSBpbnN0YW5jZW9mIEVtb3RpY29uKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGAke2ljb25Pck1lc3NhZ2V9ICVjWyR7dGhpcy5jb250ZXh0fV0gJWMke21lc3NhZ2VUZXh0fWAsICdjb2xvcjogJyArIHRoaXMuY29udGV4dENvbG9yLCAnY29sb3I6ICcgKyB0aGlzLnRleHRDb2xvciwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGAlY1ske3RoaXMuY29udGV4dH1dICVjJHtpY29uT3JNZXNzYWdlfWAsICdjb2xvcjogJyArIHRoaXMuY29udGV4dENvbG9yLCAnY29sb3I6ICcgKyB0aGlzLnRleHRDb2xvciwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlcnJvcihpY29uOiBFbW90aWNvbiwgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzKVxuICAgIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJncylcbiAgICBlcnJvcihpY29uT3JNZXNzYWdlOiBFbW90aWNvbiB8IHN0cmluZywgbWVzc2FnZVRleHQ6IHN0cmluZywgLi4uYXJncykge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuZXJyKGljb25Pck1lc3NhZ2UsIG1lc3NhZ2VUZXh0LCAuLi5hcmdzKTtcbiAgICB9XG59XG5cbi8qKlxuICogRm9ybWF0dGVkIGxvZ2dlciB0aGF0IHdpbGwgcHJpbnQgYSBiaXQgb2YgY29udGV4dCBiZWZvcmUgdGhlIG1lc3NhZ2UuXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgY29uc3QgQ29uc29sZUxvZ2dlciA9IChjb250ZXh0OiBzdHJpbmcsIGNvbnRleHRDb2xvcjogc3RyaW5nLCB0ZXh0Q29sb3I6IHN0cmluZyA9IFwiIzAzYTlmNFwiKSA9PlxuICAgIG5ldyBMb2coY29udGV4dCwgY29udGV4dENvbG9yLCB0ZXh0Q29sb3IpO1xuXG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgYGZvb0JBUiBiYXpfMTYwMDU0JydcIjFdXCJgIGludG8gYSBzbHVnOiBgZm9vYmFyLWJhei0xNjAwNTQxYFxuICovXG5leHBvcnQgY29uc3Qgc3RyaW5nVG9TbHVnID0gKHRleHQ6IHN0cmluZykgPT5cbiAgICAodGV4dCB8fCAnJylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAucmVwbGFjZSgvW1xcLV8rIF0vZywgJy0nKVxuICAgICAgICAucmVwbGFjZSgvW15hLXowLTlcXC1dL2csICcnKTtcblxuXG4vKipcbiogSGVscGVyIHRvIHVwZGF0ZSB0aGUgcGFnZSBVUkwuXG4qIEBwYXJhbSBwYWdlIGNvbXBvbmVudCBwYWdlIElEIHRvIGxvYWQuXG4qIEBwYXJhbSBkYXRhIHN0cmluZyBvciBKU09OIGRhdGEgZm9yIHF1ZXJ5IHBhcmFtcy5cbiovXG5leHBvcnQgY29uc3QgdXBkYXRlVXJsID0gKHBhZ2U/OiBzdHJpbmcsIGRhdGE6IHN0cmluZyB8IHN0cmluZ1tdW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+IHwgVVJMU2VhcmNoUGFyYW1zID0ge30sIHJlcGxhY2VTdGF0ZSA9IGZhbHNlKSA9PiB7XG4gICAgY29uc3QgW29sZEhhc2gsIHFzdHJpbmddID0gbG9jYXRpb24uaGFzaC5zcGxpdCgnPycpO1xuXG4gICAgaWYgKCFwYWdlKVxuICAgICAgICBwYWdlID0gb2xkSGFzaC5zcGxpdCgnLycpWzFdO1xuXG4gICAgY29uc3QgaGFzaCA9IGAjLyR7cGFnZX1gO1xuXG4gICAgLy8gQ29udmVydCB0aGUgZGF0YSBvYmplY3QgdG8gSlNPTi5cbiAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtcykge1xuICAgICAgICBkYXRhID0gWy4uLihkYXRhIGFzIGFueSkuZW50cmllcygpXS5tYXAoKFtrLCB2XSkgPT4gKHsgW2tdOiB2IH0pKS5yZWR1Y2UoKGEsIGIpID0+ICh7IC4uLmEsIC4uLmIgfSksIHt9KTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoZGF0YSBhcyBhbnkpIGFzIGFueTtcbiAgICBjb25zdCBwcmV2UGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhxc3RyaW5nKSBhcyBhbnk7XG5cbiAgICAvLyBJZiB0aGUgaGFzaCBpcyB0aGUgc2FtZSwgcmV0YWluIHBhcmFtcy5cbiAgICBpZiAoaGFzaCA9PSBvbGRIYXNoKSB7XG4gICAgICAgIHJlcGxhY2VTdGF0ZSA9IHRydWU7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHByZXZQYXJhbXMuZW50cmllcygpKVxuICAgICAgICAgICAgaWYgKCFxdWVyeS5oYXMoa2V5KSlcbiAgICAgICAgICAgICAgICBxdWVyeS5zZXQoa2V5LCBwcmV2UGFyYW1zLmdldChrZXkpKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgcXVlcnkuZW50cmllcygpKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHZhbCA9PSBudWxsIHx8XG4gICAgICAgICAgICB2YWwgPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICB2YWwgPT0gJycgfHxcbiAgICAgICAgICAgIHZhbCA9PSAnbnVsbCcgfHxcbiAgICAgICAgICAgIE51bWJlci5pc05hTih2YWwpIHx8XG4gICAgICAgICAgICB2YWwgPT0gJ05hTidcbiAgICAgICAgKVxuICAgICAgICAgICAgcXVlcnkuZGVsZXRlKGtleSk7XG4gICAgfVxuXG4gICAgaWYgKCEoaGFzaC50b0xvd2VyQ2FzZSgpID09IFwiIy9mcmFtZVwiKSB8fCBkYXRhWydpZCddID09IC0xKVxuICAgICAgICBxdWVyeS5kZWxldGUoJ2lkJyk7XG5cblxuICAgIGNvbnN0IHN0clF1ZXJ5ID0gcXVlcnkudG9TdHJpbmcoKTtcbiAgICBjb25zb2xlLmxvZyhkYXRhLCBoYXNoLCBzdHJRdWVyeSk7XG4gICAgaWYgKHJlcGxhY2VTdGF0ZSkge1xuICAgICAgICB3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoZGF0YSwgJycsIGhhc2ggKyAoc3RyUXVlcnkgPyAoJz8nICsgc3RyUXVlcnkpIDogJycpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHdpbmRvdy5oaXN0b3J5LnB1c2hTdGF0ZShkYXRhLCAnJywgaGFzaCArIChzdHJRdWVyeSA/ICgnPycgKyBzdHJRdWVyeSkgOiAnJykpO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcmxEYXRhID0gKHNvdXJjZSA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoKSA9PiB7XG4gICAgY29uc3QgW2hhc2gsIHF1ZXJ5XSA9IHNvdXJjZS5zcGxpdCgnPycpO1xuICAgIGxldCBkYXRhID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhxdWVyeSkgYXMgYW55O1xuICAgIHJldHVybiBbLi4uZGF0YS5lbnRyaWVzKCldLm1hcCgoW2ssIHZdKSA9PiAoeyBba106IHYgfSkpLnJlZHVjZSgoYSwgYikgPT4gKHsgLi4uYSwgLi4uYiB9KSwge30pO1xufTtcbiJdfQ==
@@ -1152,6 +1152,9 @@ const LogIcon = {
1152
1152
  bug: new Emoticon("๐Ÿฆ "),
1153
1153
  bomb: new Emoticon("๐Ÿ’ฃ"),
1154
1154
  tnt: new Emoticon("๐Ÿงจ"),
1155
+ stop: new Emoticon("๐Ÿ›‘"),
1156
+ police: new Emoticon("๐Ÿšจ"),
1157
+ rocket: new Emoticon("๐Ÿš€"),
1155
1158
  warning: new Emoticon("โš ๏ธ"),
1156
1159
  chart: new Emoticon("๐Ÿ“Š"),
1157
1160
  chart_up: new Emoticon("๐Ÿ“ˆ"),
@@ -1180,6 +1183,11 @@ class Log {
1180
1183
  this.context = context;
1181
1184
  this.contextColor = contextColor;
1182
1185
  this.textColor = textColor;
1186
+ // Force the bindings to stay intact with overloads.
1187
+ this.log = this.log.bind(this);
1188
+ this.warn = this.warn.bind(this);
1189
+ this.err = this.err.bind(this);
1190
+ this.error = this.error.bind(this);
1183
1191
  }
1184
1192
  log(iconOrMessage, messageText, ...args) {
1185
1193
  if (iconOrMessage instanceof Emoticon) {
@@ -1206,12 +1214,8 @@ class Log {
1206
1214
  }
1207
1215
  }
1208
1216
  error(iconOrMessage, messageText, ...args) {
1209
- if (iconOrMessage instanceof Emoticon) {
1210
- console.error(`${iconOrMessage} %c[${this.context}] %c${messageText}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
1211
- }
1212
- else {
1213
- console.error(`%c[${this.context}] %c${iconOrMessage}`, 'color: ' + this.contextColor, 'color: ' + this.textColor, ...args);
1214
- }
1217
+ // @ts-ignore
1218
+ this.err(iconOrMessage, messageText, ...args);
1215
1219
  }
1216
1220
  }
1217
1221
  /**