@discordeno/utils 22.0.1-next.df8cc46 → 22.0.1-next.e5063e1

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/base64.d.ts CHANGED
@@ -4,6 +4,12 @@
4
4
  * @param data
5
5
  */
6
6
  export declare function encode(data: Uint8Array | ArrayBuffer | string): string;
7
+ /**
8
+ * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64url representation
9
+ * @param data The data to encode
10
+ * @returns The base64url encoded string
11
+ */
12
+ export declare function encodeBase64Url(data: Uint8Array | ArrayBuffer | string): string;
7
13
  /**
8
14
  * CREDIT: https://gist.github.com/enepomnyaschih/72c423f727d395eeaa09697058238727
9
15
  * Decodes RFC4648 base64 string into an Uint8Array
@@ -1 +1 @@
1
- {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAyBtE;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAuB/C"}
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../src/base64.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAGtE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAG/E;AA6BD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAuB/C"}
package/dist/base64.js CHANGED
@@ -4,27 +4,38 @@
4
4
  * @param data
5
5
  */ export function encode(data) {
6
6
  const uint8 = typeof data === 'string' ? new TextEncoder().encode(data) : data instanceof Uint8Array ? data : new Uint8Array(data);
7
+ return _encode(uint8, base64abc, false);
8
+ }
9
+ /**
10
+ * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64url representation
11
+ * @param data The data to encode
12
+ * @returns The base64url encoded string
13
+ */ export function encodeBase64Url(data) {
14
+ const uint8 = typeof data === 'string' ? new TextEncoder().encode(data) : data instanceof Uint8Array ? data : new Uint8Array(data);
15
+ return _encode(uint8, base64urlAbc, true);
16
+ }
17
+ /** @private */ function _encode(data, alpha, skipPadding) {
7
18
  let result = '';
8
19
  let i;
9
- const l = uint8.length;
20
+ const l = data.length;
10
21
  for(i = 2; i < l; i += 3){
11
- result += base64abc[uint8[i - 2] >> 2];
12
- result += base64abc[(uint8[i - 2] & 0x03) << 4 | uint8[i - 1] >> 4];
13
- result += base64abc[(uint8[i - 1] & 0x0f) << 2 | uint8[i] >> 6];
14
- result += base64abc[uint8[i] & 0x3f];
22
+ result += alpha[data[i - 2] >> 2];
23
+ result += alpha[(data[i - 2] & 0x03) << 4 | data[i - 1] >> 4];
24
+ result += alpha[(data[i - 1] & 0x0f) << 2 | data[i] >> 6];
25
+ result += alpha[data[i] & 0x3f];
15
26
  }
16
27
  if (i === l + 1) {
17
28
  // 1 octet yet to write
18
- result += base64abc[uint8[i - 2] >> 2];
19
- result += base64abc[(uint8[i - 2] & 0x03) << 4];
20
- result += '==';
29
+ result += alpha[data[i - 2] >> 2];
30
+ result += alpha[(data[i - 2] & 0x03) << 4];
31
+ if (!skipPadding) result += '==';
21
32
  }
22
33
  if (i === l) {
23
34
  // 2 octets yet to write
24
- result += base64abc[uint8[i - 2] >> 2];
25
- result += base64abc[(uint8[i - 2] & 0x03) << 4 | uint8[i - 1] >> 4];
26
- result += base64abc[(uint8[i - 1] & 0x0f) << 2];
27
- result += '=';
35
+ result += alpha[data[i - 2] >> 2];
36
+ result += alpha[(data[i - 2] & 0x03) << 4 | data[i - 1] >> 4];
37
+ result += alpha[(data[i - 1] & 0x0f) << 2];
38
+ if (!skipPadding) result += '=';
28
39
  }
29
40
  return result;
30
41
  }
@@ -132,6 +143,72 @@ const base64abc = [
132
143
  '+',
133
144
  '/'
134
145
  ];
146
+ const base64urlAbc = [
147
+ 'A',
148
+ 'B',
149
+ 'C',
150
+ 'D',
151
+ 'E',
152
+ 'F',
153
+ 'G',
154
+ 'H',
155
+ 'I',
156
+ 'J',
157
+ 'K',
158
+ 'L',
159
+ 'M',
160
+ 'N',
161
+ 'O',
162
+ 'P',
163
+ 'Q',
164
+ 'R',
165
+ 'S',
166
+ 'T',
167
+ 'U',
168
+ 'V',
169
+ 'W',
170
+ 'X',
171
+ 'Y',
172
+ 'Z',
173
+ 'a',
174
+ 'b',
175
+ 'c',
176
+ 'd',
177
+ 'e',
178
+ 'f',
179
+ 'g',
180
+ 'h',
181
+ 'i',
182
+ 'j',
183
+ 'k',
184
+ 'l',
185
+ 'm',
186
+ 'n',
187
+ 'o',
188
+ 'p',
189
+ 'q',
190
+ 'r',
191
+ 's',
192
+ 't',
193
+ 'u',
194
+ 'v',
195
+ 'w',
196
+ 'x',
197
+ 'y',
198
+ 'z',
199
+ '0',
200
+ '1',
201
+ '2',
202
+ '3',
203
+ '4',
204
+ '5',
205
+ '6',
206
+ '7',
207
+ '8',
208
+ '9',
209
+ '-',
210
+ '_'
211
+ ];
135
212
  // CREDIT: https://gist.github.com/enepomnyaschih/72c423f727d395eeaa09697058238727
136
213
  const base64codes = [
137
214
  255,
@@ -259,4 +336,4 @@ const base64codes = [
259
336
  51
260
337
  ];
261
338
 
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlNjQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDUkVESVQ6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2VuZXBvbW55YXNjaGloLzcyYzQyM2Y3MjdkMzk1ZWVhYTA5Njk3MDU4MjM4NzI3XG4gKiBFbmNvZGVzIGEgZ2l2ZW4gVWludDhBcnJheSwgQXJyYXlCdWZmZXIgb3Igc3RyaW5nIGludG8gUkZDNDY0OCBiYXNlNjQgcmVwcmVzZW50YXRpb25cbiAqIEBwYXJhbSBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGUoZGF0YTogVWludDhBcnJheSB8IEFycmF5QnVmZmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdWludDggPSB0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycgPyBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZGF0YSkgOiBkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSA/IGRhdGEgOiBuZXcgVWludDhBcnJheShkYXRhKVxuICBsZXQgcmVzdWx0ID0gJydcbiAgbGV0IGlcbiAgY29uc3QgbCA9IHVpbnQ4Lmxlbmd0aFxuICBmb3IgKGkgPSAyOyBpIDwgbDsgaSArPSAzKSB7XG4gICAgcmVzdWx0ICs9IGJhc2U2NGFiY1t1aW50OFtpIC0gMl0gPj4gMl1cbiAgICByZXN1bHQgKz0gYmFzZTY0YWJjWygodWludDhbaSAtIDJdICYgMHgwMykgPDwgNCkgfCAodWludDhbaSAtIDFdID4+IDQpXVxuICAgIHJlc3VsdCArPSBiYXNlNjRhYmNbKCh1aW50OFtpIC0gMV0gJiAweDBmKSA8PCAyKSB8ICh1aW50OFtpXSA+PiA2KV1cbiAgICByZXN1bHQgKz0gYmFzZTY0YWJjW3VpbnQ4W2ldICYgMHgzZl1cbiAgfVxuICBpZiAoaSA9PT0gbCArIDEpIHtcbiAgICAvLyAxIG9jdGV0IHlldCB0byB3cml0ZVxuICAgIHJlc3VsdCArPSBiYXNlNjRhYmNbdWludDhbaSAtIDJdID4+IDJdXG4gICAgcmVzdWx0ICs9IGJhc2U2NGFiY1sodWludDhbaSAtIDJdICYgMHgwMykgPDwgNF1cbiAgICByZXN1bHQgKz0gJz09J1xuICB9XG4gIGlmIChpID09PSBsKSB7XG4gICAgLy8gMiBvY3RldHMgeWV0IHRvIHdyaXRlXG4gICAgcmVzdWx0ICs9IGJhc2U2NGFiY1t1aW50OFtpIC0gMl0gPj4gMl1cbiAgICByZXN1bHQgKz0gYmFzZTY0YWJjWygodWludDhbaSAtIDJdICYgMHgwMykgPDwgNCkgfCAodWludDhbaSAtIDFdID4+IDQpXVxuICAgIHJlc3VsdCArPSBiYXNlNjRhYmNbKHVpbnQ4W2kgLSAxXSAmIDB4MGYpIDw8IDJdXG4gICAgcmVzdWx0ICs9ICc9J1xuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuLyoqXG4gKiBDUkVESVQ6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2VuZXBvbW55YXNjaGloLzcyYzQyM2Y3MjdkMzk1ZWVhYTA5Njk3MDU4MjM4NzI3XG4gKiBEZWNvZGVzIFJGQzQ2NDggYmFzZTY0IHN0cmluZyBpbnRvIGFuIFVpbnQ4QXJyYXlcbiAqIEBwYXJhbSBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGUoZGF0YTogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGlmIChkYXRhLmxlbmd0aCAlIDQgIT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBwYXJzZSBiYXNlNjQgc3RyaW5nLicpXG4gIH1cbiAgY29uc3QgaW5kZXggPSBkYXRhLmluZGV4T2YoJz0nKVxuICBpZiAoaW5kZXggIT09IC0xICYmIGluZGV4IDwgZGF0YS5sZW5ndGggLSAyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcGFyc2UgYmFzZTY0IHN0cmluZy4nKVxuICB9XG4gIGNvbnN0IG1pc3NpbmdPY3RldHMgPSBkYXRhLmVuZHNXaXRoKCc9PScpID8gMiA6IGRhdGEuZW5kc1dpdGgoJz0nKSA/IDEgOiAwXG4gIGNvbnN0IG4gPSBkYXRhLmxlbmd0aFxuICBjb25zdCByZXN1bHQgPSBuZXcgVWludDhBcnJheSgzICogKG4gLyA0KSlcbiAgbGV0IGJ1ZmZlclxuICBmb3IgKGxldCBpID0gMCwgaiA9IDA7IGkgPCBuOyBpICs9IDQsIGogKz0gMykge1xuICAgIGJ1ZmZlciA9XG4gICAgICAoZ2V0QmFzZTY0Q29kZShkYXRhLmNoYXJDb2RlQXQoaSkpIDw8IDE4KSB8XG4gICAgICAoZ2V0QmFzZTY0Q29kZShkYXRhLmNoYXJDb2RlQXQoaSArIDEpKSA8PCAxMikgfFxuICAgICAgKGdldEJhc2U2NENvZGUoZGF0YS5jaGFyQ29kZUF0KGkgKyAyKSkgPDwgNikgfFxuICAgICAgZ2V0QmFzZTY0Q29kZShkYXRhLmNoYXJDb2RlQXQoaSArIDMpKVxuICAgIHJlc3VsdFtqXSA9IGJ1ZmZlciA+PiAxNlxuICAgIHJlc3VsdFtqICsgMV0gPSAoYnVmZmVyID4+IDgpICYgMHhmZlxuICAgIHJlc3VsdFtqICsgMl0gPSBidWZmZXIgJiAweGZmXG4gIH1cbiAgcmV0dXJuIHJlc3VsdC5zdWJhcnJheSgwLCByZXN1bHQubGVuZ3RoIC0gbWlzc2luZ09jdGV0cylcbn1cblxuLyoqXG4gKiBDUkVESVQ6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2VuZXBvbW55YXNjaGloLzcyYzQyM2Y3MjdkMzk1ZWVhYTA5Njk3MDU4MjM4NzI3XG4gKiBAcGFyYW0gY2hhckNvZGVcbiAqL1xuZnVuY3Rpb24gZ2V0QmFzZTY0Q29kZShjaGFyQ29kZTogbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKGNoYXJDb2RlID49IGJhc2U2NGNvZGVzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHBhcnNlIGJhc2U2NCBzdHJpbmcuJylcbiAgfVxuICBjb25zdCBjb2RlID0gYmFzZTY0Y29kZXNbY2hhckNvZGVdXG4gIGlmIChjb2RlID09PSAyNTUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBwYXJzZSBiYXNlNjQgc3RyaW5nLicpXG4gIH1cbiAgcmV0dXJuIGNvZGVcbn1cblxuLy8gQ29weXJpZ2h0IDIwMTgtMjAyMSB0aGUgRGVubyBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBNSVQgbGljZW5zZS5cbmNvbnN0IGJhc2U2NGFiYyA9IFtcbiAgJ0EnLFxuICAnQicsXG4gICdDJyxcbiAgJ0QnLFxuICAnRScsXG4gICdGJyxcbiAgJ0cnLFxuICAnSCcsXG4gICdJJyxcbiAgJ0onLFxuICAnSycsXG4gICdMJyxcbiAgJ00nLFxuICAnTicsXG4gICdPJyxcbiAgJ1AnLFxuICAnUScsXG4gICdSJyxcbiAgJ1MnLFxuICAnVCcsXG4gICdVJyxcbiAgJ1YnLFxuICAnVycsXG4gICdYJyxcbiAgJ1knLFxuICAnWicsXG4gICdhJyxcbiAgJ2InLFxuICAnYycsXG4gICdkJyxcbiAgJ2UnLFxuICAnZicsXG4gICdnJyxcbiAgJ2gnLFxuICAnaScsXG4gICdqJyxcbiAgJ2snLFxuICAnbCcsXG4gICdtJyxcbiAgJ24nLFxuICAnbycsXG4gICdwJyxcbiAgJ3EnLFxuICAncicsXG4gICdzJyxcbiAgJ3QnLFxuICAndScsXG4gICd2JyxcbiAgJ3cnLFxuICAneCcsXG4gICd5JyxcbiAgJ3onLFxuICAnMCcsXG4gICcxJyxcbiAgJzInLFxuICAnMycsXG4gICc0JyxcbiAgJzUnLFxuICAnNicsXG4gICc3JyxcbiAgJzgnLFxuICAnOScsXG4gICcrJyxcbiAgJy8nLFxuXVxuXG4vLyBDUkVESVQ6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2VuZXBvbW55YXNjaGloLzcyYzQyM2Y3MjdkMzk1ZWVhYTA5Njk3MDU4MjM4NzI3XG5jb25zdCBiYXNlNjRjb2RlcyA9IFtcbiAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsXG4gIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCA2MiwgMjU1LCAyNTUsIDI1NSwgNjMsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCAyNTUsIDI1NSwgMjU1LFxuICAwLCAyNTUsIDI1NSwgMjU1LCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjYsXG4gIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTAsIDUxLFxuXVxuIl0sIm5hbWVzIjpbImVuY29kZSIsImRhdGEiLCJ1aW50OCIsIlRleHRFbmNvZGVyIiwiVWludDhBcnJheSIsInJlc3VsdCIsImkiLCJsIiwibGVuZ3RoIiwiYmFzZTY0YWJjIiwiZGVjb2RlIiwiRXJyb3IiLCJpbmRleCIsImluZGV4T2YiLCJtaXNzaW5nT2N0ZXRzIiwiZW5kc1dpdGgiLCJuIiwiYnVmZmVyIiwiaiIsImdldEJhc2U2NENvZGUiLCJjaGFyQ29kZUF0Iiwic3ViYXJyYXkiLCJjaGFyQ29kZSIsImJhc2U2NGNvZGVzIiwiY29kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQyxHQUNELE9BQU8sU0FBU0EsT0FBT0MsSUFBdUM7SUFDNUQsTUFBTUMsUUFBUSxPQUFPRCxTQUFTLFdBQVcsSUFBSUUsY0FBY0gsTUFBTSxDQUFDQyxRQUFRQSxnQkFBZ0JHLGFBQWFILE9BQU8sSUFBSUcsV0FBV0g7SUFDN0gsSUFBSUksU0FBUztJQUNiLElBQUlDO0lBQ0osTUFBTUMsSUFBSUwsTUFBTU0sTUFBTTtJQUN0QixJQUFLRixJQUFJLEdBQUdBLElBQUlDLEdBQUdELEtBQUssRUFBRztRQUN6QkQsVUFBVUksU0FBUyxDQUFDUCxLQUFLLENBQUNJLElBQUksRUFBRSxJQUFJLEVBQUU7UUFDdENELFVBQVVJLFNBQVMsQ0FBQyxBQUFFUCxDQUFBQSxLQUFLLENBQUNJLElBQUksRUFBRSxHQUFHLElBQUcsS0FBTSxJQUFNSixLQUFLLENBQUNJLElBQUksRUFBRSxJQUFJLEVBQUc7UUFDdkVELFVBQVVJLFNBQVMsQ0FBQyxBQUFFUCxDQUFBQSxLQUFLLENBQUNJLElBQUksRUFBRSxHQUFHLElBQUcsS0FBTSxJQUFNSixLQUFLLENBQUNJLEVBQUUsSUFBSSxFQUFHO1FBQ25FRCxVQUFVSSxTQUFTLENBQUNQLEtBQUssQ0FBQ0ksRUFBRSxHQUFHLEtBQUs7SUFDdEM7SUFDQSxJQUFJQSxNQUFNQyxJQUFJLEdBQUc7UUFDZix1QkFBdUI7UUFDdkJGLFVBQVVJLFNBQVMsQ0FBQ1AsS0FBSyxDQUFDSSxJQUFJLEVBQUUsSUFBSSxFQUFFO1FBQ3RDRCxVQUFVSSxTQUFTLENBQUMsQUFBQ1AsQ0FBQUEsS0FBSyxDQUFDSSxJQUFJLEVBQUUsR0FBRyxJQUFHLEtBQU0sRUFBRTtRQUMvQ0QsVUFBVTtJQUNaO0lBQ0EsSUFBSUMsTUFBTUMsR0FBRztRQUNYLHdCQUF3QjtRQUN4QkYsVUFBVUksU0FBUyxDQUFDUCxLQUFLLENBQUNJLElBQUksRUFBRSxJQUFJLEVBQUU7UUFDdENELFVBQVVJLFNBQVMsQ0FBQyxBQUFFUCxDQUFBQSxLQUFLLENBQUNJLElBQUksRUFBRSxHQUFHLElBQUcsS0FBTSxJQUFNSixLQUFLLENBQUNJLElBQUksRUFBRSxJQUFJLEVBQUc7UUFDdkVELFVBQVVJLFNBQVMsQ0FBQyxBQUFDUCxDQUFBQSxLQUFLLENBQUNJLElBQUksRUFBRSxHQUFHLElBQUcsS0FBTSxFQUFFO1FBQy9DRCxVQUFVO0lBQ1o7SUFDQSxPQUFPQTtBQUNUO0FBRUE7Ozs7Q0FJQyxHQUNELE9BQU8sU0FBU0ssT0FBT1QsSUFBWTtJQUNqQyxJQUFJQSxLQUFLTyxNQUFNLEdBQUcsTUFBTSxHQUFHO1FBQ3pCLE1BQU0sSUFBSUcsTUFBTTtJQUNsQjtJQUNBLE1BQU1DLFFBQVFYLEtBQUtZLE9BQU8sQ0FBQztJQUMzQixJQUFJRCxVQUFVLENBQUMsS0FBS0EsUUFBUVgsS0FBS08sTUFBTSxHQUFHLEdBQUc7UUFDM0MsTUFBTSxJQUFJRyxNQUFNO0lBQ2xCO0lBQ0EsTUFBTUcsZ0JBQWdCYixLQUFLYyxRQUFRLENBQUMsUUFBUSxJQUFJZCxLQUFLYyxRQUFRLENBQUMsT0FBTyxJQUFJO0lBQ3pFLE1BQU1DLElBQUlmLEtBQUtPLE1BQU07SUFDckIsTUFBTUgsU0FBUyxJQUFJRCxXQUFXLElBQUtZLENBQUFBLElBQUksQ0FBQTtJQUN2QyxJQUFJQztJQUNKLElBQUssSUFBSVgsSUFBSSxHQUFHWSxJQUFJLEdBQUdaLElBQUlVLEdBQUdWLEtBQUssR0FBR1ksS0FBSyxFQUFHO1FBQzVDRCxTQUNFLEFBQUNFLGNBQWNsQixLQUFLbUIsVUFBVSxDQUFDZCxPQUFPLEtBQ3JDYSxjQUFjbEIsS0FBS21CLFVBQVUsQ0FBQ2QsSUFBSSxPQUFPLEtBQ3pDYSxjQUFjbEIsS0FBS21CLFVBQVUsQ0FBQ2QsSUFBSSxPQUFPLElBQzFDYSxjQUFjbEIsS0FBS21CLFVBQVUsQ0FBQ2QsSUFBSTtRQUNwQ0QsTUFBTSxDQUFDYSxFQUFFLEdBQUdELFVBQVU7UUFDdEJaLE1BQU0sQ0FBQ2EsSUFBSSxFQUFFLEdBQUcsQUFBQ0QsVUFBVSxJQUFLO1FBQ2hDWixNQUFNLENBQUNhLElBQUksRUFBRSxHQUFHRCxTQUFTO0lBQzNCO0lBQ0EsT0FBT1osT0FBT2dCLFFBQVEsQ0FBQyxHQUFHaEIsT0FBT0csTUFBTSxHQUFHTTtBQUM1QztBQUVBOzs7Q0FHQyxHQUNELFNBQVNLLGNBQWNHLFFBQWdCO0lBQ3JDLElBQUlBLFlBQVlDLFlBQVlmLE1BQU0sRUFBRTtRQUNsQyxNQUFNLElBQUlHLE1BQU07SUFDbEI7SUFDQSxNQUFNYSxPQUFPRCxXQUFXLENBQUNELFNBQVM7SUFDbEMsSUFBSUUsU0FBUyxLQUFLO1FBQ2hCLE1BQU0sSUFBSWIsTUFBTTtJQUNsQjtJQUNBLE9BQU9hO0FBQ1Q7QUFFQSwwRUFBMEU7QUFDMUUsTUFBTWYsWUFBWTtJQUNoQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU1jLGNBQWM7SUFDbEI7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUM1STtJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSTtJQUFLO0lBQUs7SUFBSztJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSztJQUFLO0lBQy9JO0lBQUc7SUFBSztJQUFLO0lBQUs7SUFBRztJQUFHO0lBQUc7SUFBRztJQUFHO0lBQUc7SUFBRztJQUFHO0lBQUc7SUFBRztJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQzlJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0NBQ2pHIn0=
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlNjQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDUkVESVQ6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2VuZXBvbW55YXNjaGloLzcyYzQyM2Y3MjdkMzk1ZWVhYTA5Njk3MDU4MjM4NzI3XG4gKiBFbmNvZGVzIGEgZ2l2ZW4gVWludDhBcnJheSwgQXJyYXlCdWZmZXIgb3Igc3RyaW5nIGludG8gUkZDNDY0OCBiYXNlNjQgcmVwcmVzZW50YXRpb25cbiAqIEBwYXJhbSBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGUoZGF0YTogVWludDhBcnJheSB8IEFycmF5QnVmZmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdWludDggPSB0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycgPyBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZGF0YSkgOiBkYXRhIGluc3RhbmNlb2YgVWludDhBcnJheSA/IGRhdGEgOiBuZXcgVWludDhBcnJheShkYXRhKVxuICByZXR1cm4gX2VuY29kZSh1aW50OCwgYmFzZTY0YWJjLCBmYWxzZSlcbn1cblxuLyoqXG4gKiBFbmNvZGVzIGEgZ2l2ZW4gVWludDhBcnJheSwgQXJyYXlCdWZmZXIgb3Igc3RyaW5nIGludG8gUkZDNDY0OCBiYXNlNjR1cmwgcmVwcmVzZW50YXRpb25cbiAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIGVuY29kZVxuICogQHJldHVybnMgVGhlIGJhc2U2NHVybCBlbmNvZGVkIHN0cmluZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlQmFzZTY0VXJsKGRhdGE6IFVpbnQ4QXJyYXkgfCBBcnJheUJ1ZmZlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHVpbnQ4ID0gdHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnID8gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGRhdGEpIDogZGF0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkgPyBkYXRhIDogbmV3IFVpbnQ4QXJyYXkoZGF0YSlcbiAgcmV0dXJuIF9lbmNvZGUodWludDgsIGJhc2U2NHVybEFiYywgdHJ1ZSlcbn1cblxuLyoqIEBwcml2YXRlICovXG5mdW5jdGlvbiBfZW5jb2RlKGRhdGE6IFVpbnQ4QXJyYXksIGFscGhhOiBzdHJpbmdbXSwgc2tpcFBhZGRpbmc6IGJvb2xlYW4pOiBzdHJpbmcge1xuICBsZXQgcmVzdWx0ID0gJydcbiAgbGV0IGlcbiAgY29uc3QgbCA9IGRhdGEubGVuZ3RoXG4gIGZvciAoaSA9IDI7IGkgPCBsOyBpICs9IDMpIHtcbiAgICByZXN1bHQgKz0gYWxwaGFbZGF0YVtpIC0gMl0gPj4gMl1cbiAgICByZXN1bHQgKz0gYWxwaGFbKChkYXRhW2kgLSAyXSAmIDB4MDMpIDw8IDQpIHwgKGRhdGFbaSAtIDFdID4+IDQpXVxuICAgIHJlc3VsdCArPSBhbHBoYVsoKGRhdGFbaSAtIDFdICYgMHgwZikgPDwgMikgfCAoZGF0YVtpXSA+PiA2KV1cbiAgICByZXN1bHQgKz0gYWxwaGFbZGF0YVtpXSAmIDB4M2ZdXG4gIH1cbiAgaWYgKGkgPT09IGwgKyAxKSB7XG4gICAgLy8gMSBvY3RldCB5ZXQgdG8gd3JpdGVcbiAgICByZXN1bHQgKz0gYWxwaGFbZGF0YVtpIC0gMl0gPj4gMl1cbiAgICByZXN1bHQgKz0gYWxwaGFbKGRhdGFbaSAtIDJdICYgMHgwMykgPDwgNF1cbiAgICBpZiAoIXNraXBQYWRkaW5nKSByZXN1bHQgKz0gJz09J1xuICB9XG4gIGlmIChpID09PSBsKSB7XG4gICAgLy8gMiBvY3RldHMgeWV0IHRvIHdyaXRlXG4gICAgcmVzdWx0ICs9IGFscGhhW2RhdGFbaSAtIDJdID4+IDJdXG4gICAgcmVzdWx0ICs9IGFscGhhWygoZGF0YVtpIC0gMl0gJiAweDAzKSA8PCA0KSB8IChkYXRhW2kgLSAxXSA+PiA0KV1cbiAgICByZXN1bHQgKz0gYWxwaGFbKGRhdGFbaSAtIDFdICYgMHgwZikgPDwgMl1cbiAgICBpZiAoIXNraXBQYWRkaW5nKSByZXN1bHQgKz0gJz0nXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vKipcbiAqIENSRURJVDogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZW5lcG9tbnlhc2NoaWgvNzJjNDIzZjcyN2QzOTVlZWFhMDk2OTcwNTgyMzg3MjdcbiAqIERlY29kZXMgUkZDNDY0OCBiYXNlNjQgc3RyaW5nIGludG8gYW4gVWludDhBcnJheVxuICogQHBhcmFtIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZShkYXRhOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgaWYgKGRhdGEubGVuZ3RoICUgNCAhPT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHBhcnNlIGJhc2U2NCBzdHJpbmcuJylcbiAgfVxuICBjb25zdCBpbmRleCA9IGRhdGEuaW5kZXhPZignPScpXG4gIGlmIChpbmRleCAhPT0gLTEgJiYgaW5kZXggPCBkYXRhLmxlbmd0aCAtIDIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBwYXJzZSBiYXNlNjQgc3RyaW5nLicpXG4gIH1cbiAgY29uc3QgbWlzc2luZ09jdGV0cyA9IGRhdGEuZW5kc1dpdGgoJz09JykgPyAyIDogZGF0YS5lbmRzV2l0aCgnPScpID8gMSA6IDBcbiAgY29uc3QgbiA9IGRhdGEubGVuZ3RoXG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBVaW50OEFycmF5KDMgKiAobiAvIDQpKVxuICBsZXQgYnVmZmVyXG4gIGZvciAobGV0IGkgPSAwLCBqID0gMDsgaSA8IG47IGkgKz0gNCwgaiArPSAzKSB7XG4gICAgYnVmZmVyID1cbiAgICAgIChnZXRCYXNlNjRDb2RlKGRhdGEuY2hhckNvZGVBdChpKSkgPDwgMTgpIHxcbiAgICAgIChnZXRCYXNlNjRDb2RlKGRhdGEuY2hhckNvZGVBdChpICsgMSkpIDw8IDEyKSB8XG4gICAgICAoZ2V0QmFzZTY0Q29kZShkYXRhLmNoYXJDb2RlQXQoaSArIDIpKSA8PCA2KSB8XG4gICAgICBnZXRCYXNlNjRDb2RlKGRhdGEuY2hhckNvZGVBdChpICsgMykpXG4gICAgcmVzdWx0W2pdID0gYnVmZmVyID4+IDE2XG4gICAgcmVzdWx0W2ogKyAxXSA9IChidWZmZXIgPj4gOCkgJiAweGZmXG4gICAgcmVzdWx0W2ogKyAyXSA9IGJ1ZmZlciAmIDB4ZmZcbiAgfVxuICByZXR1cm4gcmVzdWx0LnN1YmFycmF5KDAsIHJlc3VsdC5sZW5ndGggLSBtaXNzaW5nT2N0ZXRzKVxufVxuXG4vKipcbiAqIENSRURJVDogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZW5lcG9tbnlhc2NoaWgvNzJjNDIzZjcyN2QzOTVlZWFhMDk2OTcwNTgyMzg3MjdcbiAqIEBwYXJhbSBjaGFyQ29kZVxuICovXG5mdW5jdGlvbiBnZXRCYXNlNjRDb2RlKGNoYXJDb2RlOiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoY2hhckNvZGUgPj0gYmFzZTY0Y29kZXMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcGFyc2UgYmFzZTY0IHN0cmluZy4nKVxuICB9XG4gIGNvbnN0IGNvZGUgPSBiYXNlNjRjb2Rlc1tjaGFyQ29kZV1cbiAgaWYgKGNvZGUgPT09IDI1NSkge1xuICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHBhcnNlIGJhc2U2NCBzdHJpbmcuJylcbiAgfVxuICByZXR1cm4gY29kZVxufVxuXG4vLyBDb3B5cmlnaHQgMjAxOC0yMDIxIHRoZSBEZW5vIGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIE1JVCBsaWNlbnNlLlxuY29uc3QgYmFzZTY0YWJjID0gW1xuICAnQScsXG4gICdCJyxcbiAgJ0MnLFxuICAnRCcsXG4gICdFJyxcbiAgJ0YnLFxuICAnRycsXG4gICdIJyxcbiAgJ0knLFxuICAnSicsXG4gICdLJyxcbiAgJ0wnLFxuICAnTScsXG4gICdOJyxcbiAgJ08nLFxuICAnUCcsXG4gICdRJyxcbiAgJ1InLFxuICAnUycsXG4gICdUJyxcbiAgJ1UnLFxuICAnVicsXG4gICdXJyxcbiAgJ1gnLFxuICAnWScsXG4gICdaJyxcbiAgJ2EnLFxuICAnYicsXG4gICdjJyxcbiAgJ2QnLFxuICAnZScsXG4gICdmJyxcbiAgJ2cnLFxuICAnaCcsXG4gICdpJyxcbiAgJ2onLFxuICAnaycsXG4gICdsJyxcbiAgJ20nLFxuICAnbicsXG4gICdvJyxcbiAgJ3AnLFxuICAncScsXG4gICdyJyxcbiAgJ3MnLFxuICAndCcsXG4gICd1JyxcbiAgJ3YnLFxuICAndycsXG4gICd4JyxcbiAgJ3knLFxuICAneicsXG4gICcwJyxcbiAgJzEnLFxuICAnMicsXG4gICczJyxcbiAgJzQnLFxuICAnNScsXG4gICc2JyxcbiAgJzcnLFxuICAnOCcsXG4gICc5JyxcbiAgJysnLFxuICAnLycsXG5dXG5cbmNvbnN0IGJhc2U2NHVybEFiYyA9IFtcbiAgJ0EnLFxuICAnQicsXG4gICdDJyxcbiAgJ0QnLFxuICAnRScsXG4gICdGJyxcbiAgJ0cnLFxuICAnSCcsXG4gICdJJyxcbiAgJ0onLFxuICAnSycsXG4gICdMJyxcbiAgJ00nLFxuICAnTicsXG4gICdPJyxcbiAgJ1AnLFxuICAnUScsXG4gICdSJyxcbiAgJ1MnLFxuICAnVCcsXG4gICdVJyxcbiAgJ1YnLFxuICAnVycsXG4gICdYJyxcbiAgJ1knLFxuICAnWicsXG4gICdhJyxcbiAgJ2InLFxuICAnYycsXG4gICdkJyxcbiAgJ2UnLFxuICAnZicsXG4gICdnJyxcbiAgJ2gnLFxuICAnaScsXG4gICdqJyxcbiAgJ2snLFxuICAnbCcsXG4gICdtJyxcbiAgJ24nLFxuICAnbycsXG4gICdwJyxcbiAgJ3EnLFxuICAncicsXG4gICdzJyxcbiAgJ3QnLFxuICAndScsXG4gICd2JyxcbiAgJ3cnLFxuICAneCcsXG4gICd5JyxcbiAgJ3onLFxuICAnMCcsXG4gICcxJyxcbiAgJzInLFxuICAnMycsXG4gICc0JyxcbiAgJzUnLFxuICAnNicsXG4gICc3JyxcbiAgJzgnLFxuICAnOScsXG4gICctJyxcbiAgJ18nLFxuXVxuXG4vLyBDUkVESVQ6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2VuZXBvbW55YXNjaGloLzcyYzQyM2Y3MjdkMzk1ZWVhYTA5Njk3MDU4MjM4NzI3XG5jb25zdCBiYXNlNjRjb2RlcyA9IFtcbiAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsXG4gIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCA2MiwgMjU1LCAyNTUsIDI1NSwgNjMsIDUyLCA1MywgNTQsIDU1LCA1NiwgNTcsIDU4LCA1OSwgNjAsIDYxLCAyNTUsIDI1NSwgMjU1LFxuICAwLCAyNTUsIDI1NSwgMjU1LCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjYsXG4gIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgNDEsIDQyLCA0MywgNDQsIDQ1LCA0NiwgNDcsIDQ4LCA0OSwgNTAsIDUxLFxuXVxuIl0sIm5hbWVzIjpbImVuY29kZSIsImRhdGEiLCJ1aW50OCIsIlRleHRFbmNvZGVyIiwiVWludDhBcnJheSIsIl9lbmNvZGUiLCJiYXNlNjRhYmMiLCJlbmNvZGVCYXNlNjRVcmwiLCJiYXNlNjR1cmxBYmMiLCJhbHBoYSIsInNraXBQYWRkaW5nIiwicmVzdWx0IiwiaSIsImwiLCJsZW5ndGgiLCJkZWNvZGUiLCJFcnJvciIsImluZGV4IiwiaW5kZXhPZiIsIm1pc3NpbmdPY3RldHMiLCJlbmRzV2l0aCIsIm4iLCJidWZmZXIiLCJqIiwiZ2V0QmFzZTY0Q29kZSIsImNoYXJDb2RlQXQiLCJzdWJhcnJheSIsImNoYXJD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SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRUQsTUFBTUUsZUFBZTtJQUNuQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU1vQixjQUFjO0lBQ2xCO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFDNUk7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUk7SUFBSztJQUFLO0lBQUs7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUs7SUFBSztJQUMvSTtJQUFHO0lBQUs7SUFBSztJQUFLO0lBQUc7SUFBRztJQUFHO0lBQUc7SUFBRztJQUFHO0lBQUc7SUFBRztJQUFHO0lBQUc7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFLO0lBQUs7SUFBSztJQUFLO0lBQUs7SUFBSztJQUM5STtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtJQUFJO0lBQUk7SUFBSTtDQUNqRyJ9
package/dist/oauth2.d.ts CHANGED
@@ -1,5 +1,28 @@
1
1
  import type { BigString, DiscordApplicationIntegrationType, OAuth2Scope, PermissionStrings } from '@discordeno/types';
2
2
  export declare function createOAuth2Link(options: CreateOAuth2LinkOptions): string;
3
+ /**
4
+ * Generates a code verifier for use in the PKCE extension to OAuth2.
5
+ *
6
+ * @param octetLength - The length of the code verifier in octets (default is 32).
7
+ * @return The base64url encoded code verifier
8
+ *
9
+ * @remarks
10
+ * The entropy of the code verifier should be between 256 and 768 bits (32 to 96 octets), as the resulting base64url encoded string has to be between 43 and 128 characters long.
11
+ *
12
+ * @see https://datatracker.ietf.org/doc/html/rfc7636#section-7.1 for the octet length
13
+ * @see https://datatracker.ietf.org/doc/html/rfc7636#section-4.1 for why 32 octets is the default
14
+ */
15
+ export declare function generateCodeVerifier(octetLength?: number): string;
16
+ /**
17
+ * Creates a code challenge from the code verifier using the specified method.
18
+ *
19
+ * @param verifier - The code verifier to use.
20
+ * @returns The code challenge.
21
+ *
22
+ * @remarks
23
+ * This performs a SHA-256 hash on the verifier and encodes it using base64url encoding. Discord only supports 'S256' as the code challenge method.
24
+ */
25
+ export declare function createCodeChallenge(verifier: string): Promise<string>;
3
26
  export interface CreateOAuth2LinkOptions {
4
27
  /**
5
28
  * The type of response
@@ -65,5 +88,20 @@ export interface CreateOAuth2LinkOptions {
65
88
  * The application must be configured in the Developer Portal to support the provided `integrationType`.
66
89
  */
67
90
  integrationType?: DiscordApplicationIntegrationType;
91
+ /**
92
+ * The code challenge used to verify the authorization request
93
+ *
94
+ * @see https://datatracker.ietf.org/doc/html/rfc7636#section-4.1
95
+ */
96
+ codeChallenge?: string;
97
+ /**
98
+ * The challenge method used to generate the code challenge
99
+ *
100
+ * @remarks
101
+ * While the RFC allows for the 'plain' value to be set, discord does not allow it
102
+ *
103
+ * @see https://datatracker.ietf.org/doc/html/rfc7636#section-4.2
104
+ */
105
+ codeChallengeMethod?: 'S256';
68
106
  }
69
107
  //# sourceMappingURL=oauth2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../src/oauth2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAiC,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGrH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAezE;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,SAAS,CAAA;IACnB,qCAAqC;IACrC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,iBAAiB,EAAE,CAAA;IAC7C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,iCAAiC,CAAA;CACpD"}
1
+ {"version":3,"file":"oauth2.d.ts","sourceRoot":"","sources":["../src/oauth2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAiC,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAIrH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAmBzE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,GAAE,MAAW,UAI5D;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,mBAGzD;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,SAAS,CAAA;IACnB,qCAAqC;IACrC,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAA;IAC3B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,GAAG,iBAAiB,EAAE,CAAA;IAC7C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,iCAAiC,CAAA;IACnD;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B"}
package/dist/oauth2.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { encodeBase64Url } from './base64.js';
1
2
  import { calculateBits } from './permissions.js';
2
3
  export function createOAuth2Link(options) {
3
4
  const joinedScopeString = options.scope.join('%20');
@@ -10,7 +11,38 @@ export function createOAuth2Link(options) {
10
11
  if (options.guildId) url += `&guild_id=${options.guildId}`;
11
12
  if (options.disableGuildSelect !== undefined) url += `&disable_guild_select=${options.disableGuildSelect}`;
12
13
  if (options.integrationType) url += `&integration_type=${options.integrationType}`;
14
+ // Options defined by RFC 7636 (https://datatracker.ietf.org/doc/html/rfc7636)
15
+ if (options.codeChallenge) url += `&code_challenge=${options.codeChallenge}`;
16
+ if (options.codeChallengeMethod) url += `&code_challenge_method=${options.codeChallengeMethod}`;
13
17
  return url;
14
18
  }
19
+ /**
20
+ * Generates a code verifier for use in the PKCE extension to OAuth2.
21
+ *
22
+ * @param octetLength - The length of the code verifier in octets (default is 32).
23
+ * @return The base64url encoded code verifier
24
+ *
25
+ * @remarks
26
+ * The entropy of the code verifier should be between 256 and 768 bits (32 to 96 octets), as the resulting base64url encoded string has to be between 43 and 128 characters long.
27
+ *
28
+ * @see https://datatracker.ietf.org/doc/html/rfc7636#section-7.1 for the octet length
29
+ * @see https://datatracker.ietf.org/doc/html/rfc7636#section-4.1 for why 32 octets is the default
30
+ */ export function generateCodeVerifier(octetLength = 32) {
31
+ const randomBytes = new Uint8Array(octetLength);
32
+ crypto.getRandomValues(randomBytes);
33
+ return encodeBase64Url(randomBytes);
34
+ }
35
+ /**
36
+ * Creates a code challenge from the code verifier using the specified method.
37
+ *
38
+ * @param verifier - The code verifier to use.
39
+ * @returns The code challenge.
40
+ *
41
+ * @remarks
42
+ * This performs a SHA-256 hash on the verifier and encodes it using base64url encoding. Discord only supports 'S256' as the code challenge method.
43
+ */ export async function createCodeChallenge(verifier) {
44
+ const hashed = await crypto.subtle.digest('SHA-256', new TextEncoder().encode(verifier));
45
+ return encodeBase64Url(hashed);
46
+ }
15
47
 
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9vYXV0aDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaWdTdHJpbmcsIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSwgT0F1dGgyU2NvcGUsIFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBjYWxjdWxhdGVCaXRzIH0gZnJvbSAnLi9wZXJtaXNzaW9ucy5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU9BdXRoMkxpbmsob3B0aW9uczogQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMpOiBzdHJpbmcge1xuICBjb25zdCBqb2luZWRTY29wZVN0cmluZyA9IG9wdGlvbnMuc2NvcGUuam9pbignJTIwJylcblxuICBsZXQgdXJsID0gYGh0dHBzOi8vZGlzY29yZC5jb20vb2F1dGgyL2F1dGhvcml6ZT9jbGllbnRfaWQ9JHtvcHRpb25zLmNsaWVudElkfSZzY29wZT0ke2pvaW5lZFNjb3BlU3RyaW5nfWBcblxuICBpZiAob3B0aW9ucy5yZXNwb25zZVR5cGUpIHVybCArPSBgJnJlc3BvbnNlX3R5cGU9JHtvcHRpb25zLnJlc3BvbnNlVHlwZX1gXG4gIGlmIChvcHRpb25zLnN0YXRlKSB1cmwgKz0gYCZzdGF0ZT0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLnN0YXRlKX1gXG4gIGlmIChvcHRpb25zLnJlZGlyZWN0VXJpKSB1cmwgKz0gYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQob3B0aW9ucy5yZWRpcmVjdFVyaSl9YFxuICBpZiAob3B0aW9ucy5wcm9tcHQpIHVybCArPSBgJnByb21wdD0ke29wdGlvbnMucHJvbXB0fWBcbiAgaWYgKG9wdGlvbnMucGVybWlzc2lvbnMpIHVybCArPSBgJnBlcm1pc3Npb25zPSR7QXJyYXkuaXNBcnJheShvcHRpb25zLnBlcm1pc3Npb25zKSA/IGNhbGN1bGF0ZUJpdHMob3B0aW9ucy5wZXJtaXNzaW9ucykgOiBvcHRpb25zLnBlcm1pc3Npb25zfWBcbiAgaWYgKG9wdGlvbnMuZ3VpbGRJZCkgdXJsICs9IGAmZ3VpbGRfaWQ9JHtvcHRpb25zLmd1aWxkSWR9YFxuICBpZiAob3B0aW9ucy5kaXNhYmxlR3VpbGRTZWxlY3QgIT09IHVuZGVmaW5lZCkgdXJsICs9IGAmZGlzYWJsZV9ndWlsZF9zZWxlY3Q9JHtvcHRpb25zLmRpc2FibGVHdWlsZFNlbGVjdH1gXG4gIGlmIChvcHRpb25zLmludGVncmF0aW9uVHlwZSkgdXJsICs9IGAmaW50ZWdyYXRpb25fdHlwZT0ke29wdGlvbnMuaW50ZWdyYXRpb25UeXBlfWBcblxuICByZXR1cm4gdXJsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzcG9uc2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVzcG9uc2VUeXBlPzogJ2NvZGUnIHwgJ3Rva2VuJ1xuICAvKiogVGhlIGlkIG9mIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBjbGllbnRJZDogQmlnU3RyaW5nXG4gIC8qKiBUaGUgc2NvcGVzIGZvciB0aGUgYXBwbGljYXRpb24gKi9cbiAgc2NvcGU6IE9BdXRoMlNjb3BlW11cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBzdGF0ZSBmb3Igc2VjdXJpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI3N0YXRlLWFuZC1zZWN1cml0eVxuICAgKi9cbiAgc3RhdGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSByZWRpcmVjdCB1cmkgZm9yIGFmdGVyIHRoZSBhdXRoZW50aWNhdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGlmIHVzaW5nIGVpdGhlciBPQXV0aDIgYXV0aG9yaXphdGlvbiwgaW1wbGljaXQgb3Igbm90LCBvciBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pXG4gICAqL1xuICByZWRpcmVjdFVyaT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcHJvbXB0IHRvIGdpdmUgdG8gdGhlIHVzZXJcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSWYgc2V0IHRvIGBub25lYCwgaXQgd2lsbCBza2lwIHRoZSBhdXRob3JpemF0aW9uIHNjcmVlbiBhbmQgcmVkaXJlY3QgdGhlbSBiYWNrIHRvIHlvdXIgcmVkaXJlY3QgVVJJIHdpdGhvdXQgcmVxdWVzdGluZyB0aGVpciBhdXRob3JpemF0aW9uLlxuICAgKiBGb3IgcGFzc3Rocm91Z2ggc2NvcGVzLCBsaWtlIGJvdCBhbmQgd2ViaG9vay5pbmNvbWluZywgYXV0aG9yaXphdGlvbiBpcyBhbHdheXMgcmVxdWlyZWQuXG4gICAqL1xuICBwcm9tcHQ/OiAnY29uc2VudCcgfCAnbm9uZSdcbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgaW52aXRlZCBib3RcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpIG9yIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcGVybWlzc2lvbnM/OiBCaWdTdHJpbmcgfCBQZXJtaXNzaW9uU3RyaW5nc1tdXG4gIC8qKlxuICAgKiBQcmUtZmlsbHMgdGhlIGRyb3Bkb3duIHBpY2tlciB3aXRoIGEgZ3VpbGQgZm9yIHRoZSB1c2VyXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFNob3VsZCBiZSBkZWZpbmVkIG9ubHkgaW4gYSBbYm90IGF1dGhvcml6YXRpb24gZmxvd10oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNib3QtYXV0aG9yaXphdGlvbi1mbG93KSBvciB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBndWlsZElkPzogQmlnU3RyaW5nXG4gIC8qKlxuICAgKiBEaXNhbGxvd3MgdGhlIHVzZXIgZnJvbSBjaGFuZ2luZyB0aGUgZ3VpbGQgZHJvcGRvd24gaWYgc2V0IHRvIHRydWVcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpLCB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBkaXNhYmxlR3VpbGRTZWxlY3Q/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluc3RhbGxhdGlvbiBjb250ZXh0IGZvciB0aGUgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IHdoZW4ge0BsaW5rIHNjb3BlfSBpbmNsdWRlcyB7QGxpbmsgT0F1dGgyU2NvcGUuQXBwbGljYXRpb25zQ29tbWFuZHN9LlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBHdWlsZEluc3RhbGwgKDApIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGF1dGhvcml6ZWQgZm9yIGluc3RhbGxhdGlvbiB0byBhIHNlcnZlciwgYW5kIHdoZW4gc2V0IHRvIFVzZXJJbnN0YWxsICgxKSB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBhdXRob3JpemVkIGZvciBpbnN0YWxsYXRpb24gdG8gYSB1c2VyLlxuICAgKlxuICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBjb25maWd1cmVkIGluIHRoZSBEZXZlbG9wZXIgUG9ydGFsIHRvIHN1cHBvcnQgdGhlIHByb3ZpZGVkIGBpbnRlZ3JhdGlvblR5cGVgLlxuICAgKi9cbiAgaW50ZWdyYXRpb25UeXBlPzogRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlXG59XG4iXSwibmFtZXMiOlsiY2FsY3VsYXRlQml0cyIsImNyZWF0ZU9BdXRoMkxpbmsiLCJvcHRpb25zIiwiam9pbmVkU2NvcGVTdHJpbmciLCJzY29wZSIsImpvaW4iLCJ1cmwiLCJjbGllbnRJZCIsInJlc3BvbnNlVHlwZSIsInN0YXRlIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVkaXJlY3RVcmkiLCJwcm9tcHQiLCJwZXJtaXNzaW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImd1aWxkSWQiLCJkaXNhYmxlR3VpbGRTZWxlY3QiLCJ1bmRlZmluZWQiLCJpbnRlZ3JhdGlvblR5cGUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGFBQWEsUUFBUSxtQkFBa0I7QUFFaEQsT0FBTyxTQUFTQyxpQkFBaUJDLE9BQWdDO0lBQy9ELE1BQU1DLG9CQUFvQkQsUUFBUUUsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFFN0MsSUFBSUMsTUFBTSxDQUFDLCtDQUErQyxFQUFFSixRQUFRSyxRQUFRLENBQUMsT0FBTyxFQUFFSixtQkFBbUI7SUFFekcsSUFBSUQsUUFBUU0sWUFBWSxFQUFFRixPQUFPLENBQUMsZUFBZSxFQUFFSixRQUFRTSxZQUFZLEVBQUU7SUFDekUsSUFBSU4sUUFBUU8sS0FBSyxFQUFFSCxPQUFPLENBQUMsT0FBTyxFQUFFSSxtQkFBbUJSLFFBQVFPLEtBQUssR0FBRztJQUN2RSxJQUFJUCxRQUFRUyxXQUFXLEVBQUVMLE9BQU8sQ0FBQyxjQUFjLEVBQUVJLG1CQUFtQlIsUUFBUVMsV0FBVyxHQUFHO0lBQzFGLElBQUlULFFBQVFVLE1BQU0sRUFBRU4sT0FBTyxDQUFDLFFBQVEsRUFBRUosUUFBUVUsTUFBTSxFQUFFO0lBQ3RELElBQUlWLFFBQVFXLFdBQVcsRUFBRVAsT0FBTyxDQUFDLGFBQWEsRUFBRVEsTUFBTUMsT0FBTyxDQUFDYixRQUFRVyxXQUFXLElBQUliLGNBQWNFLFFBQVFXLFdBQVcsSUFBSVgsUUFBUVcsV0FBVyxFQUFFO0lBQy9JLElBQUlYLFFBQVFjLE9BQU8sRUFBRVYsT0FBTyxDQUFDLFVBQVUsRUFBRUosUUFBUWMsT0FBTyxFQUFFO0lBQzFELElBQUlkLFFBQVFlLGtCQUFrQixLQUFLQyxXQUFXWixPQUFPLENBQUMsc0JBQXNCLEVBQUVKLFFBQVFlLGtCQUFrQixFQUFFO0lBQzFHLElBQUlmLFFBQVFpQixlQUFlLEVBQUViLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRUosUUFBUWlCLGVBQWUsRUFBRTtJQUVsRixPQUFPYjtBQUNUIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9vYXV0aDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBCaWdTdHJpbmcsIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSwgT0F1dGgyU2NvcGUsIFBlcm1pc3Npb25TdHJpbmdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBlbmNvZGVCYXNlNjRVcmwgfSBmcm9tICcuL2Jhc2U2NC5qcydcbmltcG9ydCB7IGNhbGN1bGF0ZUJpdHMgfSBmcm9tICcuL3Blcm1pc3Npb25zLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT0F1dGgyTGluayhvcHRpb25zOiBDcmVhdGVPQXV0aDJMaW5rT3B0aW9ucyk6IHN0cmluZyB7XG4gIGNvbnN0IGpvaW5lZFNjb3BlU3RyaW5nID0gb3B0aW9ucy5zY29wZS5qb2luKCclMjAnKVxuXG4gIGxldCB1cmwgPSBgaHR0cHM6Ly9kaXNjb3JkLmNvbS9vYXV0aDIvYXV0aG9yaXplP2NsaWVudF9pZD0ke29wdGlvbnMuY2xpZW50SWR9JnNjb3BlPSR7am9pbmVkU2NvcGVTdHJpbmd9YFxuXG4gIGlmIChvcHRpb25zLnJlc3BvbnNlVHlwZSkgdXJsICs9IGAmcmVzcG9uc2VfdHlwZT0ke29wdGlvbnMucmVzcG9uc2VUeXBlfWBcbiAgaWYgKG9wdGlvbnMuc3RhdGUpIHVybCArPSBgJnN0YXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuc3RhdGUpfWBcbiAgaWYgKG9wdGlvbnMucmVkaXJlY3RVcmkpIHVybCArPSBgJnJlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLnJlZGlyZWN0VXJpKX1gXG4gIGlmIChvcHRpb25zLnByb21wdCkgdXJsICs9IGAmcHJvbXB0PSR7b3B0aW9ucy5wcm9tcHR9YFxuICBpZiAob3B0aW9ucy5wZXJtaXNzaW9ucykgdXJsICs9IGAmcGVybWlzc2lvbnM9JHtBcnJheS5pc0FycmF5KG9wdGlvbnMucGVybWlzc2lvbnMpID8gY2FsY3VsYXRlQml0cyhvcHRpb25zLnBlcm1pc3Npb25zKSA6IG9wdGlvbnMucGVybWlzc2lvbnN9YFxuICBpZiAob3B0aW9ucy5ndWlsZElkKSB1cmwgKz0gYCZndWlsZF9pZD0ke29wdGlvbnMuZ3VpbGRJZH1gXG4gIGlmIChvcHRpb25zLmRpc2FibGVHdWlsZFNlbGVjdCAhPT0gdW5kZWZpbmVkKSB1cmwgKz0gYCZkaXNhYmxlX2d1aWxkX3NlbGVjdD0ke29wdGlvbnMuZGlzYWJsZUd1aWxkU2VsZWN0fWBcbiAgaWYgKG9wdGlvbnMuaW50ZWdyYXRpb25UeXBlKSB1cmwgKz0gYCZpbnRlZ3JhdGlvbl90eXBlPSR7b3B0aW9ucy5pbnRlZ3JhdGlvblR5cGV9YFxuXG4gIC8vIE9wdGlvbnMgZGVmaW5lZCBieSBSRkMgNzYzNiAoaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2KVxuICBpZiAob3B0aW9ucy5jb2RlQ2hhbGxlbmdlKSB1cmwgKz0gYCZjb2RlX2NoYWxsZW5nZT0ke29wdGlvbnMuY29kZUNoYWxsZW5nZX1gXG4gIGlmIChvcHRpb25zLmNvZGVDaGFsbGVuZ2VNZXRob2QpIHVybCArPSBgJmNvZGVfY2hhbGxlbmdlX21ldGhvZD0ke29wdGlvbnMuY29kZUNoYWxsZW5nZU1ldGhvZH1gXG5cbiAgcmV0dXJuIHVybFxufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBhIGNvZGUgdmVyaWZpZXIgZm9yIHVzZSBpbiB0aGUgUEtDRSBleHRlbnNpb24gdG8gT0F1dGgyLlxuICpcbiAqIEBwYXJhbSBvY3RldExlbmd0aCAtIFRoZSBsZW5ndGggb2YgdGhlIGNvZGUgdmVyaWZpZXIgaW4gb2N0ZXRzIChkZWZhdWx0IGlzIDMyKS5cbiAqIEByZXR1cm4gVGhlIGJhc2U2NHVybCBlbmNvZGVkIGNvZGUgdmVyaWZpZXJcbiAqXG4gKiBAcmVtYXJrc1xuICogVGhlIGVudHJvcHkgb2YgdGhlIGNvZGUgdmVyaWZpZXIgc2hvdWxkIGJlIGJldHdlZW4gMjU2IGFuZCA3NjggYml0cyAoMzIgdG8gOTYgb2N0ZXRzKSwgYXMgdGhlIHJlc3VsdGluZyBiYXNlNjR1cmwgZW5jb2RlZCBzdHJpbmcgaGFzIHRvIGJlIGJldHdlZW4gNDMgYW5kIDEyOCBjaGFyYWN0ZXJzIGxvbmcuXG4gKlxuICogQHNlZSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzc2MzYjc2VjdGlvbi03LjEgZm9yIHRoZSBvY3RldCBsZW5ndGhcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3NjM2I3NlY3Rpb24tNC4xIGZvciB3aHkgMzIgb2N0ZXRzIGlzIHRoZSBkZWZhdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUNvZGVWZXJpZmllcihvY3RldExlbmd0aDogbnVtYmVyID0gMzIpIHtcbiAgY29uc3QgcmFuZG9tQnl0ZXMgPSBuZXcgVWludDhBcnJheShvY3RldExlbmd0aClcbiAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhyYW5kb21CeXRlcylcbiAgcmV0dXJuIGVuY29kZUJhc2U2NFVybChyYW5kb21CeXRlcylcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgY29kZSBjaGFsbGVuZ2UgZnJvbSB0aGUgY29kZSB2ZXJpZmllciB1c2luZyB0aGUgc3BlY2lmaWVkIG1ldGhvZC5cbiAqXG4gKiBAcGFyYW0gdmVyaWZpZXIgLSBUaGUgY29kZSB2ZXJpZmllciB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgY29kZSBjaGFsbGVuZ2UuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgcGVyZm9ybXMgYSBTSEEtMjU2IGhhc2ggb24gdGhlIHZlcmlmaWVyIGFuZCBlbmNvZGVzIGl0IHVzaW5nIGJhc2U2NHVybCBlbmNvZGluZy4gRGlzY29yZCBvbmx5IHN1cHBvcnRzICdTMjU2JyBhcyB0aGUgY29kZSBjaGFsbGVuZ2UgbWV0aG9kLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ29kZUNoYWxsZW5nZSh2ZXJpZmllcjogc3RyaW5nKSB7XG4gIGNvbnN0IGhhc2hlZCA9IGF3YWl0IGNyeXB0by5zdWJ0bGUuZGlnZXN0KCdTSEEtMjU2JywgbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHZlcmlmaWVyKSlcbiAgcmV0dXJuIGVuY29kZUJhc2U2NFVybChoYXNoZWQpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlT0F1dGgyTGlua09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcmVzcG9uc2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpZiB1c2luZyBlaXRoZXIgT0F1dGgyIGF1dGhvcml6YXRpb24sIGltcGxpY2l0IG9yIG5vdCwgb3IgW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcmVzcG9uc2VUeXBlPzogJ2NvZGUnIHwgJ3Rva2VuJ1xuICAvKiogVGhlIGlkIG9mIHRoZSBhcHBsaWNhdGlvbiAqL1xuICBjbGllbnRJZDogQmlnU3RyaW5nXG4gIC8qKiBUaGUgc2NvcGVzIGZvciB0aGUgYXBwbGljYXRpb24gKi9cbiAgc2NvcGU6IE9BdXRoMlNjb3BlW11cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBzdGF0ZSBmb3Igc2VjdXJpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI3N0YXRlLWFuZC1zZWN1cml0eVxuICAgKi9cbiAgc3RhdGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSByZWRpcmVjdCB1cmkgZm9yIGFmdGVyIHRoZSBhdXRoZW50aWNhdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IGlmIHVzaW5nIGVpdGhlciBPQXV0aDIgYXV0aG9yaXphdGlvbiwgaW1wbGljaXQgb3Igbm90LCBvciBbYWR2YW5jZWQgYm90IGF1dGhvcml6YXRpb25dKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3RvcGljcy9vYXV0aDIjYWR2YW5jZWQtYm90LWF1dGhvcml6YXRpb24pXG4gICAqL1xuICByZWRpcmVjdFVyaT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgcHJvbXB0IHRvIGdpdmUgdG8gdGhlIHVzZXJcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogSWYgc2V0IHRvIGBub25lYCwgaXQgd2lsbCBza2lwIHRoZSBhdXRob3JpemF0aW9uIHNjcmVlbiBhbmQgcmVkaXJlY3QgdGhlbSBiYWNrIHRvIHlvdXIgcmVkaXJlY3QgVVJJIHdpdGhvdXQgcmVxdWVzdGluZyB0aGVpciBhdXRob3JpemF0aW9uLlxuICAgKiBGb3IgcGFzc3Rocm91Z2ggc2NvcGVzLCBsaWtlIGJvdCBhbmQgd2ViaG9vay5pbmNvbWluZywgYXV0aG9yaXphdGlvbiBpcyBhbHdheXMgcmVxdWlyZWQuXG4gICAqL1xuICBwcm9tcHQ/OiAnY29uc2VudCcgfCAnbm9uZSdcbiAgLyoqXG4gICAqIFRoZSBwZXJtaXNzaW9ucyBvZiB0aGUgaW52aXRlZCBib3RcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpIG9yIHdpdGggW2FkdmFuY2VkIGJvdCBhdXRob3JpemF0aW9uXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2FkdmFuY2VkLWJvdC1hdXRob3JpemF0aW9uKVxuICAgKi9cbiAgcGVybWlzc2lvbnM/OiBCaWdTdHJpbmcgfCBQZXJtaXNzaW9uU3RyaW5nc1tdXG4gIC8qKlxuICAgKiBQcmUtZmlsbHMgdGhlIGRyb3Bkb3duIHBpY2tlciB3aXRoIGEgZ3VpbGQgZm9yIHRoZSB1c2VyXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFNob3VsZCBiZSBkZWZpbmVkIG9ubHkgaW4gYSBbYm90IGF1dGhvcml6YXRpb24gZmxvd10oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNib3QtYXV0aG9yaXphdGlvbi1mbG93KSBvciB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBndWlsZElkPzogQmlnU3RyaW5nXG4gIC8qKlxuICAgKiBEaXNhbGxvd3MgdGhlIHVzZXIgZnJvbSBjaGFuZ2luZyB0aGUgZ3VpbGQgZHJvcGRvd24gaWYgc2V0IHRvIHRydWVcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogU2hvdWxkIGJlIGRlZmluZWQgb25seSBpbiBhIFtib3QgYXV0aG9yaXphdGlvbiBmbG93XShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy90b3BpY3Mvb2F1dGgyI2JvdC1hdXRob3JpemF0aW9uLWZsb3cpLCB3aXRoIFthZHZhbmNlZCBib3QgYXV0aG9yaXphdGlvbl0oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvdG9waWNzL29hdXRoMiNhZHZhbmNlZC1ib3QtYXV0aG9yaXphdGlvbikgb3Igd2l0aCB0aGUgYHdlYmhvb2suaW5jb21pbmdgIHNjb3BlXG4gICAqL1xuICBkaXNhYmxlR3VpbGRTZWxlY3Q/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGluc3RhbGxhdGlvbiBjb250ZXh0IGZvciB0aGUgYXV0aG9yaXphdGlvblxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBTaG91bGQgYmUgZGVmaW5lZCBvbmx5IHdoZW4ge0BsaW5rIHNjb3BlfSBpbmNsdWRlcyB7QGxpbmsgT0F1dGgyU2NvcGUuQXBwbGljYXRpb25zQ29tbWFuZHN9LlxuICAgKlxuICAgKiBXaGVuIHNldCB0byBHdWlsZEluc3RhbGwgKDApIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGJlIGF1dGhvcml6ZWQgZm9yIGluc3RhbGxhdGlvbiB0byBhIHNlcnZlciwgYW5kIHdoZW4gc2V0IHRvIFVzZXJJbnN0YWxsICgxKSB0aGUgYXBwbGljYXRpb24gd2lsbCBiZSBhdXRob3JpemVkIGZvciBpbnN0YWxsYXRpb24gdG8gYSB1c2VyLlxuICAgKlxuICAgKiBUaGUgYXBwbGljYXRpb24gbXVzdCBiZSBjb25maWd1cmVkIGluIHRoZSBEZXZlbG9wZXIgUG9ydGFsIHRvIHN1cHBvcnQgdGhlIHByb3ZpZGVkIGBpbnRlZ3JhdGlvblR5cGVgLlxuICAgKi9cbiAgaW50ZWdyYXRpb25UeXBlPzogRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlXG4gIC8qKlxuICAgKiBUaGUgY29kZSBjaGFsbGVuZ2UgdXNlZCB0byB2ZXJpZnkgdGhlIGF1dGhvcml6YXRpb24gcmVxdWVzdFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNiNzZWN0aW9uLTQuMVxuICAgKi9cbiAgY29kZUNoYWxsZW5nZT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIGNoYWxsZW5nZSBtZXRob2QgdXNlZCB0byBnZW5lcmF0ZSB0aGUgY29kZSBjaGFsbGVuZ2VcbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogV2hpbGUgdGhlIFJGQyBhbGxvd3MgZm9yIHRoZSAncGxhaW4nIHZhbHVlIHRvIGJlIHNldCwgZGlzY29yZCBkb2VzIG5vdCBhbGxvdyBpdFxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNzYzNiNzZWN0aW9uLTQuMlxuICAgKi9cbiAgY29kZUNoYWxsZW5nZU1ldGhvZD86ICdTMjU2J1xufVxuIl0sIm5hbWVzIjpbImVuY29kZUJhc2U2NFVybCIsImNhbGN1bGF0ZUJpdHMiLCJjcmVhdGVPQXV0aDJMaW5rIiwib3B0aW9ucyIsImpvaW5lZFNjb3BlU3RyaW5nIiwic2NvcGUiLCJqb2luIiwidXJsIiwiY2xpZW50SWQiLCJyZXNwb25zZVR5cGUiLCJzdGF0ZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInJlZGlyZWN0VXJpIiwicHJvbXB0IiwicGVybWlzc2lvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJndWlsZElkIiwiZGlzYWJsZUd1aWxkU2VsZWN0IiwidW5kZWZpbmVkIiwiaW50ZWdyYXRpb25UeXBlIiwiY29kZUNoYWxsZW5nZSIsImNvZGVDaGFsbGVuZ2VNZXRob2QiLCJnZW5lcmF0ZUNvZGVWZXJpZmllciIsIm9jdGV0TGVuZ3RoIiwicmFuZG9tQnl0ZXMiLCJVaW50OEFycmF5IiwiY3J5cHRvIiwiZ2V0UmFuZG9tVmFsdWVzIiwiY3JlYXRlQ29kZUNoYWxsZW5nZSIsInZlcmlmaWVyIiwiaGFzaGVkIiwic3VidGxlIiwiZGlnZXN0IiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGVBQWUsUUFBUSxjQUFhO0FBQzdDLFNBQVNDLGFBQWEsUUFBUSxtQkFBa0I7QUFFaEQsT0FBTyxTQUFTQyxpQkFBaUJDLE9BQWdDO0lBQy9ELE1BQU1DLG9CQUFvQkQsUUFBUUUsS0FBSyxDQUFDQyxJQUFJLENBQUM7SUFFN0MsSUFBSUMsTUFBTSxDQUFDLCtDQUErQyxFQUFFSixRQUFRSyxRQUFRLENBQUMsT0FBTyxFQUFFSixtQkFBbUI7SUFFekcsSUFBSUQsUUFBUU0sWUFBWSxFQUFFRixPQUFPLENBQUMsZUFBZSxFQUFFSixRQUFRTSxZQUFZLEVBQUU7SUFDekUsSUFBSU4sUUFBUU8sS0FBSyxFQUFFSCxPQUFPLENBQUMsT0FBTyxFQUFFSSxtQkFBbUJSLFFBQVFPLEtBQUssR0FBRztJQUN2RSxJQUFJUCxRQUFRUyxXQUFXLEVBQUVMLE9BQU8sQ0FBQyxjQUFjLEVBQUVJLG1CQUFtQlIsUUFBUVMsV0FBVyxHQUFHO0lBQzFGLElBQUlULFFBQVFVLE1BQU0sRUFBRU4sT0FBTyxDQUFDLFFBQVEsRUFBRUosUUFBUVUsTUFBTSxFQUFFO0lBQ3RELElBQUlWLFFBQVFXLFdBQVcsRUFBRVAsT0FBTyxDQUFDLGFBQWEsRUFBRVEsTUFBTUMsT0FBTyxDQUFDYixRQUFRVyxXQUFXLElBQUliLGNBQWNFLFFBQVFXLFdBQVcsSUFBSVgsUUFBUVcsV0FBVyxFQUFFO0lBQy9JLElBQUlYLFFBQVFjLE9BQU8sRUFBRVYsT0FBTyxDQUFDLFVBQVUsRUFBRUosUUFBUWMsT0FBTyxFQUFFO0lBQzFELElBQUlkLFFBQVFlLGtCQUFrQixLQUFLQyxXQUFXWixPQUFPLENBQUMsc0JBQXNCLEVBQUVKLFFBQVFlLGtCQUFrQixFQUFFO0lBQzFHLElBQUlmLFFBQVFpQixlQUFlLEVBQUViLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRUosUUFBUWlCLGVBQWUsRUFBRTtJQUVsRiw4RUFBOEU7SUFDOUUsSUFBSWpCLFFBQVFrQixhQUFhLEVBQUVkLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRUosUUFBUWtCLGFBQWEsRUFBRTtJQUM1RSxJQUFJbEIsUUFBUW1CLG1CQUFtQixFQUFFZixPQUFPLENBQUMsdUJBQXVCLEVBQUVKLFFBQVFtQixtQkFBbUIsRUFBRTtJQUUvRixPQUFPZjtBQUNUO0FBRUE7Ozs7Ozs7Ozs7O0NBV0MsR0FDRCxPQUFPLFNBQVNnQixxQkFBcUJDLGNBQXNCLEVBQUU7SUFDM0QsTUFBTUMsY0FBYyxJQUFJQyxXQUFXRjtJQUNuQ0csT0FBT0MsZUFBZSxDQUFDSDtJQUN2QixPQUFPekIsZ0JBQWdCeUI7QUFDekI7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNELE9BQU8sZUFBZUksb0JBQW9CQyxRQUFnQjtJQUN4RCxNQUFNQyxTQUFTLE1BQU1KLE9BQU9LLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLFdBQVcsSUFBSUMsY0FBY0MsTUFBTSxDQUFDTDtJQUM5RSxPQUFPOUIsZ0JBQWdCK0I7QUFDekIifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@discordeno/utils",
3
- "version": "22.0.1-next.df8cc46",
3
+ "version": "22.0.1-next.e5063e1",
4
4
  "exports": "./dist/index.js",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -26,22 +26,22 @@
26
26
  "test:test-type": "tsc --project tests/tsconfig.json"
27
27
  },
28
28
  "dependencies": {
29
- "@discordeno/types": "22.0.1-next.df8cc46"
29
+ "@discordeno/types": "22.0.1-next.e5063e1"
30
30
  },
31
31
  "devDependencies": {
32
- "@biomejs/biome": "2.2.5",
33
- "@swc/cli": "^0.7.8",
34
- "@swc/core": "^1.13.5",
35
- "@types/chai": "^5.2.2",
32
+ "@biomejs/biome": "2.3.1",
33
+ "@swc/cli": "^0.7.9",
34
+ "@swc/core": "^1.15.2",
35
+ "@types/chai": "^5.2.3",
36
36
  "@types/mocha": "^10.0.10",
37
- "@types/node": "^24.6.1",
37
+ "@types/node": "^24.9.1",
38
38
  "@types/sinon": "^17.0.4",
39
39
  "c8": "^10.1.3",
40
- "chai": "^6.0.1",
41
- "mocha": "^11.7.2",
40
+ "chai": "^6.2.0",
41
+ "mocha": "^11.7.4",
42
42
  "sinon": "^21.0.0",
43
43
  "ts-node": "^10.9.2",
44
44
  "tsconfig": "*",
45
- "typescript": "^5.9.2"
45
+ "typescript": "^5.9.3"
46
46
  }
47
47
  }