tedious 14.7.0 → 15.0.0-beta.1

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/lib/connector.js CHANGED
@@ -3,60 +3,43 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SequentialConnectionStrategy = exports.ParallelConnectionStrategy = exports.Connector = void 0;
6
+ exports.connectInParallel = connectInParallel;
7
+ exports.connectInSequence = connectInSequence;
8
+ exports.lookupAllAddresses = lookupAllAddresses;
7
9
 
8
10
  var _net = _interopRequireDefault(require("net"));
9
11
 
10
- var _dns = _interopRequireDefault(require("dns"));
11
-
12
12
  var punycode = _interopRequireWildcard(require("punycode"));
13
13
 
14
+ var _abortError = _interopRequireDefault(require("./errors/abort-error"));
15
+
16
+ var _esAggregateError = _interopRequireDefault(require("es-aggregate-error"));
17
+
14
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
19
 
16
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
21
 
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
23
 
20
- class AbortError extends Error {
21
- constructor() {
22
- super('The operation was aborted');
23
- this.code = void 0;
24
- this.code = 'ABORT_ERR';
25
- this.name = 'AbortError';
26
- }
27
-
28
- }
29
-
30
- class ParallelConnectionStrategy {
31
- constructor(addresses, signal, options) {
32
- this.addresses = void 0;
33
- this.options = void 0;
34
- this.signal = void 0;
35
- this.addresses = addresses;
36
- this.options = options;
37
- this.signal = signal;
24
+ async function connectInParallel(options, lookup, signal) {
25
+ if (signal.aborted) {
26
+ throw new _abortError.default();
38
27
  }
39
28
 
40
- connect(callback) {
41
- const signal = this.signal;
42
-
43
- if (signal.aborted) {
44
- return process.nextTick(callback, new AbortError());
45
- }
46
-
47
- const addresses = this.addresses;
29
+ const addresses = await lookupAllAddresses(options.host, lookup, signal);
30
+ return await new Promise((resolve, reject) => {
48
31
  const sockets = new Array(addresses.length);
49
- let errorCount = 0;
32
+ const errors = [];
50
33
 
51
- function onError(_err) {
52
- errorCount += 1;
34
+ function onError(err) {
35
+ errors.push(err);
53
36
  this.removeListener('error', onError);
54
37
  this.removeListener('connect', onConnect);
55
38
  this.destroy();
56
39
 
57
- if (errorCount === addresses.length) {
40
+ if (errors.length === addresses.length) {
58
41
  signal.removeEventListener('abort', onAbort);
59
- callback(new Error('Could not connect (parallel)'));
42
+ reject(new _esAggregateError.default(errors, 'Could not connect (parallel)'));
60
43
  }
61
44
  }
62
45
 
@@ -75,7 +58,7 @@ class ParallelConnectionStrategy {
75
58
  socket.destroy();
76
59
  }
77
60
 
78
- callback(null, this);
61
+ resolve(this);
79
62
  }
80
63
 
81
64
  const onAbort = () => {
@@ -86,11 +69,11 @@ class ParallelConnectionStrategy {
86
69
  socket.destroy();
87
70
  }
88
71
 
89
- callback(new AbortError());
72
+ reject(new _abortError.default());
90
73
  };
91
74
 
92
75
  for (let i = 0, len = addresses.length; i < len; i++) {
93
- const socket = sockets[i] = _net.default.connect({ ...this.options,
76
+ const socket = sockets[i] = _net.default.connect({ ...options,
94
77
  host: addresses[i].address,
95
78
  family: addresses[i].family
96
79
  });
@@ -102,126 +85,99 @@ class ParallelConnectionStrategy {
102
85
  signal.addEventListener('abort', onAbort, {
103
86
  once: true
104
87
  });
105
- }
106
-
88
+ });
107
89
  }
108
90
 
109
- exports.ParallelConnectionStrategy = ParallelConnectionStrategy;
110
-
111
- class SequentialConnectionStrategy {
112
- constructor(addresses, signal, options) {
113
- this.addresses = void 0;
114
- this.options = void 0;
115
- this.signal = void 0;
116
- this.addresses = addresses;
117
- this.options = options;
118
- this.signal = signal;
91
+ async function connectInSequence(options, lookup, signal) {
92
+ if (signal.aborted) {
93
+ throw new _abortError.default();
119
94
  }
120
95
 
121
- connect(callback) {
122
- if (this.signal.aborted) {
123
- return process.nextTick(callback, new AbortError());
124
- }
125
-
126
- const next = this.addresses.shift();
96
+ const errors = [];
97
+ const addresses = await lookupAllAddresses(options.host, lookup, signal);
98
+
99
+ for (const address of addresses) {
100
+ try {
101
+ return await new Promise((resolve, reject) => {
102
+ const socket = _net.default.connect({ ...options,
103
+ host: address.address,
104
+ family: address.family
105
+ });
106
+
107
+ const onAbort = () => {
108
+ socket.removeListener('error', onError);
109
+ socket.removeListener('connect', onConnect);
110
+ socket.destroy();
111
+ reject(new _abortError.default());
112
+ };
113
+
114
+ const onError = err => {
115
+ signal.removeEventListener('abort', onAbort);
116
+ socket.removeListener('error', onError);
117
+ socket.removeListener('connect', onConnect);
118
+ socket.destroy();
119
+ reject(err);
120
+ };
121
+
122
+ const onConnect = () => {
123
+ signal.removeEventListener('abort', onAbort);
124
+ socket.removeListener('error', onError);
125
+ socket.removeListener('connect', onConnect);
126
+ resolve(socket);
127
+ };
128
+
129
+ signal.addEventListener('abort', onAbort, {
130
+ once: true
131
+ });
132
+ socket.on('error', onError);
133
+ socket.on('connect', onConnect);
134
+ });
135
+ } catch (err) {
136
+ if (err instanceof Error && err.name === 'AbortError') {
137
+ throw err;
138
+ }
127
139
 
128
- if (!next) {
129
- return callback(new Error('Could not connect (sequence)'));
140
+ errors.push(err);
141
+ continue;
130
142
  }
131
-
132
- const socket = _net.default.connect({ ...this.options,
133
- host: next.address,
134
- family: next.family
135
- });
136
-
137
- const onAbort = () => {
138
- socket.removeListener('error', onError);
139
- socket.removeListener('connect', onConnect);
140
- socket.destroy();
141
- callback(new AbortError());
142
- };
143
-
144
- const onError = _err => {
145
- this.signal.removeEventListener('abort', onAbort);
146
- socket.removeListener('error', onError);
147
- socket.removeListener('connect', onConnect);
148
- socket.destroy();
149
- this.connect(callback);
150
- };
151
-
152
- const onConnect = () => {
153
- this.signal.removeEventListener('abort', onAbort);
154
- socket.removeListener('error', onError);
155
- socket.removeListener('connect', onConnect);
156
- callback(null, socket);
157
- };
158
-
159
- this.signal.addEventListener('abort', onAbort, {
160
- once: true
161
- });
162
- socket.on('error', onError);
163
- socket.on('connect', onConnect);
164
143
  }
165
144
 
145
+ throw new _esAggregateError.default(errors, 'Could not connect (sequence)');
166
146
  }
147
+ /**
148
+ * Look up all addresses for the given hostname.
149
+ */
167
150
 
168
- exports.SequentialConnectionStrategy = SequentialConnectionStrategy;
169
151
 
170
- class Connector {
171
- constructor(options, signal, multiSubnetFailover) {
172
- var _options$lookup;
173
-
174
- this.options = void 0;
175
- this.multiSubnetFailover = void 0;
176
- this.lookup = void 0;
177
- this.signal = void 0;
178
- this.options = options;
179
- this.lookup = (_options$lookup = options.lookup) !== null && _options$lookup !== void 0 ? _options$lookup : _dns.default.lookup;
180
- this.signal = signal;
181
- this.multiSubnetFailover = multiSubnetFailover;
152
+ async function lookupAllAddresses(host, lookup, signal) {
153
+ if (signal.aborted) {
154
+ throw new _abortError.default();
182
155
  }
183
156
 
184
- execute(cb) {
185
- if (this.signal.aborted) {
186
- return process.nextTick(cb, new AbortError());
187
- }
188
-
189
- this.lookupAllAddresses(this.options.host, (err, addresses) => {
190
- if (this.signal.aborted) {
191
- return cb(new AbortError());
192
- }
193
-
194
- if (err) {
195
- return cb(err);
196
- }
197
-
198
- if (this.multiSubnetFailover) {
199
- new ParallelConnectionStrategy(addresses, this.signal, this.options).connect(cb);
200
- } else {
201
- new SequentialConnectionStrategy(addresses, this.signal, this.options).connect(cb);
202
- }
203
- });
204
- }
205
-
206
- lookupAllAddresses(host, callback) {
207
- if (_net.default.isIPv6(host)) {
208
- process.nextTick(callback, null, [{
209
- address: host,
210
- family: 6
211
- }]);
212
- } else if (_net.default.isIPv4(host)) {
213
- process.nextTick(callback, null, [{
214
- address: host,
215
- family: 4
216
- }]);
217
- } else {
218
- this.lookup.call(null, punycode.toASCII(host), {
157
+ if (_net.default.isIPv6(host)) {
158
+ return [{
159
+ address: host,
160
+ family: 6
161
+ }];
162
+ } else if (_net.default.isIPv4(host)) {
163
+ return [{
164
+ address: host,
165
+ family: 4
166
+ }];
167
+ } else {
168
+ return await new Promise((resolve, reject) => {
169
+ const onAbort = () => {
170
+ reject(new _abortError.default());
171
+ };
172
+
173
+ signal.addEventListener('abort', onAbort);
174
+ lookup(punycode.toASCII(host), {
219
175
  all: true
220
- }, callback);
221
- }
176
+ }, (err, addresses) => {
177
+ signal.removeEventListener('abort', onAbort);
178
+ err ? reject(err) : resolve(addresses);
179
+ });
180
+ });
222
181
  }
223
-
224
182
  }
225
-
226
- exports.Connector = Connector;
227
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBYm9ydEVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImNvZGUiLCJuYW1lIiwiUGFyYWxsZWxDb25uZWN0aW9uU3RyYXRlZ3kiLCJhZGRyZXNzZXMiLCJzaWduYWwiLCJvcHRpb25zIiwiY29ubmVjdCIsImNhbGxiYWNrIiwiYWJvcnRlZCIsInByb2Nlc3MiLCJuZXh0VGljayIsInNvY2tldHMiLCJBcnJheSIsImxlbmd0aCIsImVycm9yQ291bnQiLCJvbkVycm9yIiwiX2VyciIsInJlbW92ZUxpc3RlbmVyIiwib25Db25uZWN0IiwiZGVzdHJveSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvbkFib3J0IiwiaiIsInNvY2tldCIsImkiLCJsZW4iLCJuZXQiLCJob3N0IiwiYWRkcmVzcyIsImZhbWlseSIsIm9uIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uY2UiLCJTZXF1ZW50aWFsQ29ubmVjdGlvblN0cmF0ZWd5IiwibmV4dCIsInNoaWZ0IiwiQ29ubmVjdG9yIiwibXVsdGlTdWJuZXRGYWlsb3ZlciIsImxvb2t1cCIsImRucyIsImV4ZWN1dGUiLCJjYiIsImxvb2t1cEFsbEFkZHJlc3NlcyIsImVyciIsImlzSVB2NiIsImlzSVB2NCIsImNhbGwiLCJwdW55Y29kZSIsInRvQVNDSUkiLCJhbGwiXSwic291cmNlcyI6WyIuLi9zcmMvY29ubmVjdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBuZXQgZnJvbSAnbmV0JztcbmltcG9ydCBkbnMgZnJvbSAnZG5zJztcblxuaW1wb3J0ICogYXMgcHVueWNvZGUgZnJvbSAncHVueWNvZGUnO1xuaW1wb3J0IHsgQWJvcnRTaWduYWwgfSBmcm9tICdub2RlLWFib3J0LWNvbnRyb2xsZXInO1xuXG5jbGFzcyBBYm9ydEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ1RoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQnKTtcblxuICAgIHRoaXMuY29kZSA9ICdBQk9SVF9FUlInO1xuICAgIHRoaXMubmFtZSA9ICdBYm9ydEVycm9yJztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGFyYWxsZWxDb25uZWN0aW9uU3RyYXRlZ3kge1xuICBhZGRyZXNzZXM6IGRucy5Mb29rdXBBZGRyZXNzW107XG4gIG9wdGlvbnM6IHsgcG9ydDogbnVtYmVyLCBsb2NhbEFkZHJlc3M/OiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgc2lnbmFsOiBBYm9ydFNpZ25hbDtcblxuICBjb25zdHJ1Y3RvcihhZGRyZXNzZXM6IGRucy5Mb29rdXBBZGRyZXNzW10sIHNpZ25hbDogQWJvcnRTaWduYWwsIG9wdGlvbnM6IHsgcG9ydDogbnVtYmVyLCBsb2NhbEFkZHJlc3M/OiBzdHJpbmcgfCB1bmRlZmluZWQgfSkge1xuICAgIHRoaXMuYWRkcmVzc2VzID0gYWRkcmVzc2VzO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5zaWduYWwgPSBzaWduYWw7XG4gIH1cblxuICBjb25uZWN0KGNhbGxiYWNrOiAoZXJyOiBFcnJvciB8IG51bGwsIHNvY2tldD86IG5ldC5Tb2NrZXQpID0+IHZvaWQpIHtcbiAgICBjb25zdCBzaWduYWwgPSB0aGlzLnNpZ25hbDtcbiAgICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGNhbGxiYWNrLCBuZXcgQWJvcnRFcnJvcigpKTtcbiAgICB9XG5cbiAgICBjb25zdCBhZGRyZXNzZXMgPSB0aGlzLmFkZHJlc3NlcztcbiAgICBjb25zdCBzb2NrZXRzID0gbmV3IEFycmF5KGFkZHJlc3Nlcy5sZW5ndGgpO1xuXG4gICAgbGV0IGVycm9yQ291bnQgPSAwO1xuICAgIGZ1bmN0aW9uIG9uRXJyb3IodGhpczogbmV0LlNvY2tldCwgX2VycjogRXJyb3IpIHtcbiAgICAgIGVycm9yQ291bnQgKz0gMTtcblxuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICB0aGlzLmRlc3Ryb3koKTtcblxuICAgICAgaWYgKGVycm9yQ291bnQgPT09IGFkZHJlc3Nlcy5sZW5ndGgpIHtcbiAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG5cbiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCdDb3VsZCBub3QgY29ubmVjdCAocGFyYWxsZWwpJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG9uQ29ubmVjdCh0aGlzOiBuZXQuU29ja2V0KSB7XG4gICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzb2NrZXRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGNvbnN0IHNvY2tldCA9IHNvY2tldHNbal07XG5cbiAgICAgICAgaWYgKHRoaXMgPT09IHNvY2tldCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuICAgICAgICBzb2NrZXQuZGVzdHJveSgpO1xuICAgICAgfVxuXG4gICAgICBjYWxsYmFjayhudWxsLCB0aGlzKTtcbiAgICB9XG5cbiAgICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzb2NrZXRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGNvbnN0IHNvY2tldCA9IHNvY2tldHNbal07XG5cbiAgICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgICB9XG5cbiAgICAgIGNhbGxiYWNrKG5ldyBBYm9ydEVycm9yKCkpO1xuICAgIH07XG5cbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gYWRkcmVzc2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBzb2NrZXQgPSBzb2NrZXRzW2ldID0gbmV0LmNvbm5lY3Qoe1xuICAgICAgICAuLi50aGlzLm9wdGlvbnMsXG4gICAgICAgIGhvc3Q6IGFkZHJlc3Nlc1tpXS5hZGRyZXNzLFxuICAgICAgICBmYW1pbHk6IGFkZHJlc3Nlc1tpXS5mYW1pbHlcbiAgICAgIH0pO1xuXG4gICAgICBzb2NrZXQub24oJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICBzb2NrZXQub24oJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuICAgIH1cblxuICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VxdWVudGlhbENvbm5lY3Rpb25TdHJhdGVneSB7XG4gIGFkZHJlc3NlczogZG5zLkxvb2t1cEFkZHJlc3NbXTtcbiAgb3B0aW9uczogeyBwb3J0OiBudW1iZXIsIGxvY2FsQWRkcmVzcz86IHN0cmluZyB8IHVuZGVmaW5lZCB9O1xuICBzaWduYWw6IEFib3J0U2lnbmFsO1xuXG4gIGNvbnN0cnVjdG9yKGFkZHJlc3NlczogZG5zLkxvb2t1cEFkZHJlc3NbXSwgc2lnbmFsOiBBYm9ydFNpZ25hbCwgb3B0aW9uczogeyBwb3J0OiBudW1iZXIsIGxvY2FsQWRkcmVzcz86IHN0cmluZyB8IHVuZGVmaW5lZCB9KSB7XG4gICAgdGhpcy5hZGRyZXNzZXMgPSBhZGRyZXNzZXM7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnNpZ25hbCA9IHNpZ25hbDtcbiAgfVxuXG4gIGNvbm5lY3QoY2FsbGJhY2s6IChlcnI6IEVycm9yIHwgbnVsbCwgc29ja2V0PzogbmV0LlNvY2tldCkgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhjYWxsYmFjaywgbmV3IEFib3J0RXJyb3IoKSk7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dCA9IHRoaXMuYWRkcmVzc2VzLnNoaWZ0KCk7XG4gICAgaWYgKCFuZXh0KSB7XG4gICAgICByZXR1cm4gY2FsbGJhY2sobmV3IEVycm9yKCdDb3VsZCBub3QgY29ubmVjdCAoc2VxdWVuY2UpJykpO1xuICAgIH1cblxuICAgIGNvbnN0IHNvY2tldCA9IG5ldC5jb25uZWN0KHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIGhvc3Q6IG5leHQuYWRkcmVzcyxcbiAgICAgIGZhbWlseTogbmV4dC5mYW1pbHlcbiAgICB9KTtcblxuICAgIGNvbnN0IG9uQWJvcnQgPSAoKSA9PiB7XG4gICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICBzb2NrZXQuZGVzdHJveSgpO1xuXG4gICAgICBjYWxsYmFjayhuZXcgQWJvcnRFcnJvcigpKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25FcnJvciA9IChfZXJyOiBFcnJvcikgPT4ge1xuICAgICAgdGhpcy5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdjb25uZWN0Jywgb25Db25uZWN0KTtcblxuICAgICAgc29ja2V0LmRlc3Ryb3koKTtcblxuICAgICAgdGhpcy5jb25uZWN0KGNhbGxiYWNrKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25Db25uZWN0ID0gKCkgPT4ge1xuICAgICAgdGhpcy5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdjb25uZWN0Jywgb25Db25uZWN0KTtcblxuICAgICAgY2FsbGJhY2sobnVsbCwgc29ja2V0KTtcbiAgICB9O1xuXG4gICAgdGhpcy5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0LCB7IG9uY2U6IHRydWUgfSk7XG5cbiAgICBzb2NrZXQub24oJ2Vycm9yJywgb25FcnJvcik7XG4gICAgc29ja2V0Lm9uKCdjb25uZWN0Jywgb25Db25uZWN0KTtcbiAgfVxufVxuXG50eXBlIExvb2t1cEZ1bmN0aW9uID0gKGhvc3RuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IGRucy5Mb29rdXBBbGxPcHRpb25zLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgYWRkcmVzc2VzOiBkbnMuTG9va3VwQWRkcmVzc1tdKSA9PiB2b2lkKSA9PiB2b2lkO1xuXG5leHBvcnQgY2xhc3MgQ29ubmVjdG9yIHtcbiAgb3B0aW9uczogeyBwb3J0OiBudW1iZXIsIGhvc3Q6IHN0cmluZywgbG9jYWxBZGRyZXNzPzogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG4gIG11bHRpU3VibmV0RmFpbG92ZXI6IGJvb2xlYW47XG4gIGxvb2t1cDogTG9va3VwRnVuY3Rpb247XG4gIHNpZ25hbDogQWJvcnRTaWduYWw7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogeyBwb3J0OiBudW1iZXIsIGhvc3Q6IHN0cmluZywgbG9jYWxBZGRyZXNzPzogc3RyaW5nIHwgdW5kZWZpbmVkLCBsb29rdXA/OiBMb29rdXBGdW5jdGlvbiB8IHVuZGVmaW5lZCB9LCBzaWduYWw6IEFib3J0U2lnbmFsLCBtdWx0aVN1Ym5ldEZhaWxvdmVyOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLmxvb2t1cCA9IG9wdGlvbnMubG9va3VwID8/IGRucy5sb29rdXA7XG4gICAgdGhpcy5zaWduYWwgPSBzaWduYWw7XG4gICAgdGhpcy5tdWx0aVN1Ym5ldEZhaWxvdmVyID0gbXVsdGlTdWJuZXRGYWlsb3ZlcjtcbiAgfVxuXG4gIGV4ZWN1dGUoY2I6IChlcnI6IEVycm9yIHwgbnVsbCwgc29ja2V0PzogbmV0LlNvY2tldCkgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhjYiwgbmV3IEFib3J0RXJyb3IoKSk7XG4gICAgfVxuXG4gICAgdGhpcy5sb29rdXBBbGxBZGRyZXNzZXModGhpcy5vcHRpb25zLmhvc3QsIChlcnIsIGFkZHJlc3NlcykgPT4ge1xuICAgICAgaWYgKHRoaXMuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgcmV0dXJuIGNiKG5ldyBBYm9ydEVycm9yKCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIHJldHVybiBjYihlcnIpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5tdWx0aVN1Ym5ldEZhaWxvdmVyKSB7XG4gICAgICAgIG5ldyBQYXJhbGxlbENvbm5lY3Rpb25TdHJhdGVneShhZGRyZXNzZXMsIHRoaXMuc2lnbmFsLCB0aGlzLm9wdGlvbnMpLmNvbm5lY3QoY2IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3IFNlcXVlbnRpYWxDb25uZWN0aW9uU3RyYXRlZ3koYWRkcmVzc2VzLCB0aGlzLnNpZ25hbCwgdGhpcy5vcHRpb25zKS5jb25uZWN0KGNiKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGxvb2t1cEFsbEFkZHJlc3Nlcyhob3N0OiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBhZGRyZXNzZXM6IGRucy5Mb29rdXBBZGRyZXNzW10pID0+IHZvaWQpIHtcbiAgICBpZiAobmV0LmlzSVB2Nihob3N0KSkge1xuICAgICAgcHJvY2Vzcy5uZXh0VGljayhjYWxsYmFjaywgbnVsbCwgW3sgYWRkcmVzczogaG9zdCwgZmFtaWx5OiA2IH1dKTtcbiAgICB9IGVsc2UgaWYgKG5ldC5pc0lQdjQoaG9zdCkpIHtcbiAgICAgIHByb2Nlc3MubmV4dFRpY2soY2FsbGJhY2ssIG51bGwsIFt7IGFkZHJlc3M6IGhvc3QsIGZhbWlseTogNCB9XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9va3VwLmNhbGwobnVsbCwgcHVueWNvZGUudG9BU0NJSShob3N0KSwgeyBhbGw6IHRydWUgfSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7Ozs7Ozs7O0FBR0EsTUFBTUEsVUFBTixTQUF5QkMsS0FBekIsQ0FBK0I7RUFHN0JDLFdBQVcsR0FBRztJQUNaLE1BQU0sMkJBQU47SUFEWSxLQUZkQyxJQUVjO0lBR1osS0FBS0EsSUFBTCxHQUFZLFdBQVo7SUFDQSxLQUFLQyxJQUFMLEdBQVksWUFBWjtFQUNEOztBQVI0Qjs7QUFXeEIsTUFBTUMsMEJBQU4sQ0FBaUM7RUFLdENILFdBQVcsQ0FBQ0ksU0FBRCxFQUFpQ0MsTUFBakMsRUFBc0RDLE9BQXRELEVBQW9IO0lBQUEsS0FKL0hGLFNBSStIO0lBQUEsS0FIL0hFLE9BRytIO0lBQUEsS0FGL0hELE1BRStIO0lBQzdILEtBQUtELFNBQUwsR0FBaUJBLFNBQWpCO0lBQ0EsS0FBS0UsT0FBTCxHQUFlQSxPQUFmO0lBQ0EsS0FBS0QsTUFBTCxHQUFjQSxNQUFkO0VBQ0Q7O0VBRURFLE9BQU8sQ0FBQ0MsUUFBRCxFQUE2RDtJQUNsRSxNQUFNSCxNQUFNLEdBQUcsS0FBS0EsTUFBcEI7O0lBQ0EsSUFBSUEsTUFBTSxDQUFDSSxPQUFYLEVBQW9CO01BQ2xCLE9BQU9DLE9B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
183
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25uZWN0SW5QYXJhbGxlbCIsIm9wdGlvbnMiLCJsb29rdXAiLCJzaWduYWwiLCJhYm9ydGVkIiwiQWJvcnRFcnJvciIsImFkZHJlc3NlcyIsImxvb2t1cEFsbEFkZHJlc3NlcyIsImhvc3QiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNvY2tldHMiLCJBcnJheSIsImxlbmd0aCIsImVycm9ycyIsIm9uRXJyb3IiLCJlcnIiLCJwdXNoIiwicmVtb3ZlTGlzdGVuZXIiLCJvbkNvbm5lY3QiLCJkZXN0cm95IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9uQWJvcnQiLCJBZ2dyZWdhdGVFcnJvciIsImoiLCJzb2NrZXQiLCJpIiwibGVuIiwibmV0IiwiY29ubmVjdCIsImFkZHJlc3MiLCJmYW1pbHkiLCJvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJvbmNlIiwiY29ubmVjdEluU2VxdWVuY2UiLCJFcnJvciIsIm5hbWUiLCJpc0lQdjYiLCJpc0lQdjQiLCJwdW55Y29kZSIsInRvQVNDSUkiLCJhbGwiXSwic291cmNlcyI6WyIuLi9zcmMvY29ubmVjdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBuZXQgZnJvbSAnbmV0JztcbmltcG9ydCBkbnMsIHsgTG9va3VwQWRkcmVzcyB9IGZyb20gJ2Rucyc7XG5cbmltcG9ydCAqIGFzIHB1bnljb2RlIGZyb20gJ3B1bnljb2RlJztcbmltcG9ydCB7IEFib3J0U2lnbmFsIH0gZnJvbSAnbm9kZS1hYm9ydC1jb250cm9sbGVyJztcbmltcG9ydCBBYm9ydEVycm9yIGZyb20gJy4vZXJyb3JzL2Fib3J0LWVycm9yJztcblxuaW1wb3J0IEFnZ3JlZ2F0ZUVycm9yIGZyb20gJ2VzLWFnZ3JlZ2F0ZS1lcnJvcic7XG5cbnR5cGUgTG9va3VwRnVuY3Rpb24gPSAoaG9zdG5hbWU6IHN0cmluZywgb3B0aW9uczogZG5zLkxvb2t1cEFsbE9wdGlvbnMsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBhZGRyZXNzZXM6IGRucy5Mb29rdXBBZGRyZXNzW10pID0+IHZvaWQpID0+IHZvaWQ7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb25uZWN0SW5QYXJhbGxlbChvcHRpb25zOiB7IGhvc3Q6IHN0cmluZywgcG9ydDogbnVtYmVyLCBsb2NhbEFkZHJlc3M/OiBzdHJpbmcgfCB1bmRlZmluZWQgfSwgbG9va3VwOiBMb29rdXBGdW5jdGlvbiwgc2lnbmFsOiBBYm9ydFNpZ25hbCkge1xuICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICB0aHJvdyBuZXcgQWJvcnRFcnJvcigpO1xuICB9XG5cbiAgY29uc3QgYWRkcmVzc2VzID0gYXdhaXQgbG9va3VwQWxsQWRkcmVzc2VzKG9wdGlvbnMuaG9zdCwgbG9va3VwLCBzaWduYWwpO1xuXG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxuZXQuU29ja2V0PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc29ja2V0cyA9IG5ldyBBcnJheShhZGRyZXNzZXMubGVuZ3RoKTtcblxuICAgIGNvbnN0IGVycm9yczogRXJyb3JbXSA9IFtdO1xuXG4gICAgZnVuY3Rpb24gb25FcnJvcih0aGlzOiBuZXQuU29ja2V0LCBlcnI6IEVycm9yKSB7XG4gICAgICBlcnJvcnMucHVzaChlcnIpO1xuXG4gICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcignY29ubmVjdCcsIG9uQ29ubmVjdCk7XG5cbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gYWRkcmVzc2VzLmxlbmd0aCkge1xuICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgICByZWplY3QobmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgJ0NvdWxkIG5vdCBjb25uZWN0IChwYXJhbGxlbCknKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb25Db25uZWN0KHRoaXM6IG5ldC5Tb2NrZXQpIHtcbiAgICAgIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQpO1xuXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNvY2tldHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgY29uc3Qgc29ja2V0ID0gc29ja2V0c1tqXTtcblxuICAgICAgICBpZiAodGhpcyA9PT0gc29ja2V0KSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignY29ubmVjdCcsIG9uQ29ubmVjdCk7XG4gICAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgICB9XG5cbiAgICAgIHJlc29sdmUodGhpcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc29ja2V0cy5sZW5ndGg7IGorKykge1xuICAgICAgICBjb25zdCBzb2NrZXQgPSBzb2NrZXRzW2pdO1xuXG4gICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdjb25uZWN0Jywgb25Db25uZWN0KTtcblxuICAgICAgICBzb2NrZXQuZGVzdHJveSgpO1xuICAgICAgfVxuXG4gICAgICByZWplY3QobmV3IEFib3J0RXJyb3IoKSk7XG4gICAgfTtcblxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhZGRyZXNzZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IHNvY2tldCA9IHNvY2tldHNbaV0gPSBuZXQuY29ubmVjdCh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIGhvc3Q6IGFkZHJlc3Nlc1tpXS5hZGRyZXNzLFxuICAgICAgICBmYW1pbHk6IGFkZHJlc3Nlc1tpXS5mYW1pbHlcbiAgICAgIH0pO1xuXG4gICAgICBzb2NrZXQub24oJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICBzb2NrZXQub24oJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuICAgIH1cblxuICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb25uZWN0SW5TZXF1ZW5jZShvcHRpb25zOiB7IGhvc3Q6IHN0cmluZywgcG9ydDogbnVtYmVyLCBsb2NhbEFkZHJlc3M/OiBzdHJpbmcgfCB1bmRlZmluZWQgfSwgbG9va3VwOiBMb29rdXBGdW5jdGlvbiwgc2lnbmFsOiBBYm9ydFNpZ25hbCkge1xuICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICB0aHJvdyBuZXcgQWJvcnRFcnJvcigpO1xuICB9XG5cbiAgY29uc3QgZXJyb3JzOiBhbnlbXSA9IFtdO1xuICBjb25zdCBhZGRyZXNzZXMgPSBhd2FpdCBsb29rdXBBbGxBZGRyZXNzZXMob3B0aW9ucy5ob3N0LCBsb29rdXAsIHNpZ25hbCk7XG5cbiAgZm9yIChjb25zdCBhZGRyZXNzIG9mIGFkZHJlc3Nlcykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8bmV0LlNvY2tldD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBzb2NrZXQgPSBuZXQuY29ubmVjdCh7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBob3N0OiBhZGRyZXNzLmFkZHJlc3MsXG4gICAgICAgICAgZmFtaWx5OiBhZGRyZXNzLmZhbWlseVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICAgICAgc29ja2V0LmRlc3Ryb3koKTtcblxuICAgICAgICAgIHJlamVjdChuZXcgQWJvcnRFcnJvcigpKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBvbkVycm9yID0gKGVycjogRXJyb3IpID0+IHtcbiAgICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICAgICAgc29ja2V0LmRlc3Ryb3koKTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IG9uQ29ubmVjdCA9ICgpID0+IHtcbiAgICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICAgICAgcmVzb2x2ZShzb2NrZXQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcblxuICAgICAgICBzb2NrZXQub24oJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIHNvY2tldC5vbignY29ubmVjdCcsIG9uQ29ubmVjdCk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cblxuICAgICAgZXJyb3JzLnB1c2goZXJyKTtcblxuICAgICAgY29udGludWU7XG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgJ0NvdWxkIG5vdCBjb25uZWN0IChzZXF1ZW5jZSknKTtcbn1cblxuLyoqXG4gKiBMb29rIHVwIGFsbCBhZGRyZXNzZXMgZm9yIHRoZSBnaXZlbiBob3N0bmFtZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvb2t1cEFsbEFkZHJlc3Nlcyhob3N0OiBzdHJpbmcsIGxvb2t1cDogTG9va3VwRnVuY3Rpb24sIHNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNlPGRucy5Mb29rdXBBZGRyZXNzW10+IHtcbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IEFib3J0RXJyb3IoKTtcbiAgfVxuXG4gIGlmIChuZXQuaXNJUHY2KGhvc3QpKSB7XG4gICAgcmV0dXJuIFt7IGFkZHJlc3M6IGhvc3QsIGZhbWlseTogNiB9XTtcbiAgfSBlbHNlIGlmIChuZXQuaXNJUHY0KGhvc3QpKSB7XG4gICAgcmV0dXJuIFt7IGFkZHJlc3M6IGhvc3QsIGZhbWlseTogNCB9XTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8TG9va3VwQWRkcmVzc1tdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEFib3J0RXJyb3IoKSk7XG4gICAgICB9O1xuXG4gICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgbG9va3VwKHB1bnljb2RlLnRvQVNDSUkoaG9zdCksIHsgYWxsOiB0cnVlIH0sIChlcnIsIGFkZHJlc3NlcykgPT4ge1xuICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgICBlcnIgPyByZWplY3QoZXJyKSA6IHJlc29sdmUoYWRkcmVzc2VzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUdBOztBQUVBOztBQUVBOzs7Ozs7OztBQUlPLGVBQWVBLGlCQUFmLENBQWlDQyxPQUFqQyxFQUE2R0MsTUFBN0csRUFBcUlDLE1BQXJJLEVBQTBKO0VBQy9KLElBQUlBLE1BQU0sQ0FBQ0MsT0FBWCxFQUFvQjtJQUNsQixNQUFNLElBQUlDLG1CQUFKLEVBQU47RUFDRDs7RUFFRCxNQUFNQyxTQUFTLEdBQUcsTUFBTUMsa0JBQWtCLENBQUNOLE9BQU8sQ0FBQ08sSUFBVCxFQUFlTixNQUFmLEVBQXVCQyxNQUF2QixDQUExQztFQUVBLE9BQU8sTUFBTSxJQUFJTSxPQUFKLENBQXdCLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUFxQjtJQUN4RCxNQUFNQyxPQUFPLEdBQUcsSUFBSUMsS0FBSixDQUFVUCxTQUFTLENBQUNRLE1BQXBCLENBQWhCO0lBRUEsTUFBTUMsTUFBZSxHQUFHLEVBQXhCOztJQUVBLFNBQVNDLE9BQVQsQ0FBbUNDLEdBQW5DLEVBQStDO01BQzdDRixNQUFNLENBQUNHLElBQVAsQ0FBWUQsR0FBWjtNQUVBLEtBQUtFLGNBQUwsQ0FBb0IsT0FBcEIsRUFBNkJILE9BQTdCO01BQ0EsS0FBS0csY0FBTCxDQUFvQixTQUFwQixFQUErQkMsU0FBL0I7TUFFQSxLQUFLQyxPQUFMOztNQUVBLElBQUlOLE1BQU0sQ0FBQ0QsTUFBUCxLQUFrQlIsU0FBUyxDQUFDUSxNQUFoQyxFQUF3QztRQUN0Q1gsTUFBTSxDQUFDbUIsbUJBQVAsQ0FBMkIsT0FBM0IsRUFBb0NDLE9BQXBDO1FBRUFaLE1BQU0sQ0FBQyxJQUFJYSx5QkFBSixDQUFtQlQsTUFBbkIsRUFBMkIsOEJBQTNCLENBQUQsQ0FBTjtNQUNEO0lBQ0Y7O0lBRUQsU0FBU0ssU0FBVCxH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
@@ -23,11 +23,11 @@ const TVP = {
23
23
  },
24
24
 
25
25
  generateTypeInfo(parameter) {
26
- var _parameter$value$sche, _parameter$value, _parameter$value$name, _parameter$value2;
26
+ var _parameter$value, _parameter$value2;
27
27
 
28
28
  const databaseName = '';
29
- const schema = (_parameter$value$sche = (_parameter$value = parameter.value) === null || _parameter$value === void 0 ? void 0 : _parameter$value.schema) !== null && _parameter$value$sche !== void 0 ? _parameter$value$sche : '';
30
- const typeName = (_parameter$value$name = (_parameter$value2 = parameter.value) === null || _parameter$value2 === void 0 ? void 0 : _parameter$value2.name) !== null && _parameter$value$name !== void 0 ? _parameter$value$name : '';
29
+ const schema = ((_parameter$value = parameter.value) === null || _parameter$value === void 0 ? void 0 : _parameter$value.schema) ?? '';
30
+ const typeName = ((_parameter$value2 = parameter.value) === null || _parameter$value2 === void 0 ? void 0 : _parameter$value2.name) ?? '';
31
31
  const bufferLength = 1 + 1 + Buffer.byteLength(databaseName, 'ucs2') + 1 + Buffer.byteLength(schema, 'ucs2') + 1 + Buffer.byteLength(typeName, 'ucs2');
32
32
  const buffer = new _writableTrackingBuffer.default(bufferLength, 'ucs2');
33
33
  buffer.writeUInt8(this.id);
@@ -123,4 +123,4 @@ const TVP = {
123
123
  var _default = TVP;
124
124
  exports.default = _default;
125
125
  module.exports = TVP;
126
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUVlBfUk9XX1RPS0VOIiwiQnVmZmVyIiwiZnJvbSIsIlRWUF9FTkRfVE9LRU4iLCJOVUxMX0xFTkdUSCIsIlRWUCIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwiZ2VuZXJhdGVUeXBlSW5mbyIsImRhdGFiYXNlTmFtZSIsInNjaGVtYSIsInR5cGVOYW1lIiwiYnVmZmVyTGVuZ3RoIiwiYnl0ZUxlbmd0aCIsImJ1ZmZlciIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVCVmFyY2hhciIsImRhdGEiLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsIm9wdGlvbnMiLCJjb2x1bW5zIiwiYWxsb2MiLCJ3cml0ZVVJbnQxNkxFIiwibGVuZ3RoIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwicm93cyIsImkiLCJsZW4iLCJjb2x1bW4iLCJidWZmIiwid3JpdGVVSW50MzJMRSIsInJvdyIsImsiLCJsZW4yIiwicGFyYW0iLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsInNjYWxlIiwicHJlY2lzaW9uIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3R2cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuLi90cmFja2luZy1idWZmZXIvd3JpdGFibGUtdHJhY2tpbmctYnVmZmVyJztcblxuY29uc3QgVFZQX1JPV19UT0tFTiA9IEJ1ZmZlci5mcm9tKFsweDAxXSk7XG5jb25zdCBUVlBfRU5EX1RPS0VOID0gQnVmZmVyLmZyb20oWzB4MDBdKTtcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBUVlA6IERhdGFUeXBlID0ge1xuICBpZDogMHhGMyxcbiAgdHlwZTogJ1RWUFRZUEUnLFxuICBuYW1lOiAnVFZQJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cbiAgICByZXR1cm4gdmFsdWUubmFtZSArICcgcmVhZG9ubHknO1xuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgZGF0YWJhc2VOYW1lID0gJyc7XG4gICAgY29uc3Qgc2NoZW1hID0gcGFyYW1ldGVyLnZhbHVlPy5zY2hlbWEgPz8gJyc7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBwYXJhbWV0ZXIudmFsdWU/Lm5hbWUgPz8gJyc7XG5cbiAgICBjb25zdCBidWZmZXJMZW5ndGggPSAxICtcbiAgICAgIDEgKyBCdWZmZXIuYnl0ZUxlbmd0aChkYXRhYmFzZU5hbWUsICd1Y3MyJykgK1xuICAgICAgMSArIEJ1ZmZlci5ieXRlTGVuZ3RoKHNjaGVtYSwgJ3VjczInKSArXG4gICAgICAxICsgQnVmZmVyLmJ5dGVMZW5ndGgodHlwZU5hbWUsICd1Y3MyJyk7XG5cbiAgICBjb25zdCBidWZmZXIgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcihidWZmZXJMZW5ndGgsICd1Y3MyJyk7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCk7XG4gICAgYnVmZmVyLndyaXRlQlZhcmNoYXIoZGF0YWJhc2VOYW1lKTtcbiAgICBidWZmZXIud3JpdGVCVmFyY2hhcihzY2hlbWEpO1xuICAgIGJ1ZmZlci53cml0ZUJWYXJjaGFyKHR5cGVOYW1lKTtcblxuICAgIHJldHVybiBidWZmZXIuZGF0YTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICBjb25zdCB7IGNvbHVtbnMgfSA9IHBhcmFtZXRlci52YWx1ZTtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoMik7XG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUoY29sdW1ucy5sZW5ndGgsIDApO1xuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgKmdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHlpZWxkIFRWUF9FTkRfVE9LRU47XG4gICAgICB5aWVsZCBUVlBfRU5EX1RPS0VOO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgY29sdW1ucywgcm93cyB9ID0gcGFyYW1ldGVyLnZhbHVlO1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGNvbHVtbnMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbaV07XG5cbiAgICAgIGNvbnN0IGJ1ZmYgPSBCdWZmZXIuYWxsb2MoNik7XG4gICAgICAvLyBVc2VyVHlwZVxuICAgICAgYnVmZi53cml0ZVVJbnQzMkxFKDB4MDAwMDAwMDAsIDApO1xuXG4gICAgICAvLyBGbGFnc1xuICAgICAgYnVmZi53cml0ZVVJbnQxNkxFKDB4MDAwMCwgNCk7XG4gICAgICB5aWVsZCBidWZmO1xuXG4gICAgICAvLyBUWVBFX0lORk9cbiAgICAgIHlpZWxkIGNvbHVtbi50eXBlLmdlbmVyYXRlVHlwZUluZm8oY29sdW1uKTtcblxuICAgICAgLy8gQ29sTmFtZVxuICAgICAgeWllbGQgQnVmZmVyLmZyb20oWzB4MDBdKTtcbiAgICB9XG5cbiAgICB5aWVsZCBUVlBfRU5EX1RPS0VOO1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbmd0aCA9IHJvd3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHlpZWxkIFRWUF9ST1dfVE9LRU47XG5cbiAgICAgIGNvbnN0IHJvdyA9IHJvd3NbaV07XG4gICAgICBmb3IgKGxldCBrID0gMCwgbGVuMiA9IHJvdy5sZW5ndGg7IGsgPCBsZW4yOyBrKyspIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1uc1trXTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByb3dba107XG5cbiAgICAgICAgY29uc3QgcGFyYW0gPSB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbi50eXBlLnZhbGlkYXRlKHZhbHVlLCBwYXJhbWV0ZXIuY29sbGF0aW9uKSxcbiAgICAgICAgICBsZW5ndGg6IGNvbHVtbi5sZW5ndGgsXG4gICAgICAgICAgc2NhbGU6IGNvbHVtbi5zY2FsZSxcbiAgICAgICAgICBwcmVjaXNpb246IGNvbHVtbi5wcmVjaXNpb25cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBUdnBDb2x1bW5EYXRhXG4gICAgICAgIHlpZWxkIGNvbHVtbi50eXBlLmdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtLCBvcHRpb25zKTtcbiAgICAgICAgeWllbGQgKiBjb2x1bW4udHlwZS5nZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW0sIG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHlpZWxkIFRWUF9FTkRfVE9LRU47XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogQnVmZmVyIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHRhYmxlLicpO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZS5jb2x1bW5zKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCB0YWJsZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUucm93cykpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgdGFibGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUVlA7XG5tb2R1bGUuZXhwb3J0cyA9IFRWUDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7O0FBRUEsTUFBTUEsYUFBYSxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsQ0FBWixDQUF0QjtBQUNBLE1BQU1DLGFBQWEsR0FBR0YsTUFBTSxDQUFDQyxJQUFQLENBQVksQ0FBQyxJQUFELENBQVosQ0FBdEI7QUFFQSxNQUFNRSxXQUFXLEdBQUdILE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxFQUFPLElBQVAsQ0FBWixDQUFwQjtBQUVBLE1BQU1HLEdBQWEsR0FBRztFQUNwQkMsRUFBRSxFQUFFLElBRGdCO0VBRXBCQyxJQUFJLEVBQUUsU0FGYztFQUdwQkMsSUFBSSxFQUFFLEtBSGM7RUFLcEJDLFdBQVcsRUFBRSxVQUFTQyxTQUFULEVBQW9CO0lBQy9CLE1BQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUF4QixDQUQrQixDQUNPOztJQUN0QyxPQUFPQSxLQUFLLENBQUNILElBQU4sR0FBYSxXQUFwQjtFQUNELENBUm1COztFQVVwQkksZ0JBQWdCLENBQUNGLFNBQUQsRUFBWTtJQUFBOztJQUMxQixNQUFNRyxZQUFZLEdBQUcsRUFBckI7SUFDQSxNQUFNQyxNQUFNLGdEQUFHSixTQUFTLENBQUNDLEtBQWIscURBQUcsaUJBQWlCRyxNQUFwQix5RUFBOEIsRUFBMUM7SUFDQSxNQUFNQyxRQUFRLGlEQUFHTCxTQUFTLENBQUNDLEtBQWIsc0RBQUcsa0JBQWlCSCxJQUFwQix5RUFBNEIsRUFBMUM7SUFFQSxNQUFNUSxZQUFZLEdBQUcsSUFDbkIsQ0FEbUIsR0FDZmYsTUFBTSxD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
126
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUVlBfUk9XX1RPS0VOIiwiQnVmZmVyIiwiZnJvbSIsIlRWUF9FTkRfVE9LRU4iLCJOVUxMX0xFTkdUSCIsIlRWUCIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwiZ2VuZXJhdGVUeXBlSW5mbyIsImRhdGFiYXNlTmFtZSIsInNjaGVtYSIsInR5cGVOYW1lIiwiYnVmZmVyTGVuZ3RoIiwiYnl0ZUxlbmd0aCIsImJ1ZmZlciIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVCVmFyY2hhciIsImRhdGEiLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsIm9wdGlvbnMiLCJjb2x1bW5zIiwiYWxsb2MiLCJ3cml0ZVVJbnQxNkxFIiwibGVuZ3RoIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwicm93cyIsImkiLCJsZW4iLCJjb2x1bW4iLCJidWZmIiwid3JpdGVVSW50MzJMRSIsInJvdyIsImsiLCJsZW4yIiwicGFyYW0iLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsInNjYWxlIiwicHJlY2lzaW9uIiwiVHlwZUVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3R2cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuLi90cmFja2luZy1idWZmZXIvd3JpdGFibGUtdHJhY2tpbmctYnVmZmVyJztcblxuY29uc3QgVFZQX1JPV19UT0tFTiA9IEJ1ZmZlci5mcm9tKFsweDAxXSk7XG5jb25zdCBUVlBfRU5EX1RPS0VOID0gQnVmZmVyLmZyb20oWzB4MDBdKTtcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBUVlA6IERhdGFUeXBlID0ge1xuICBpZDogMHhGMyxcbiAgdHlwZTogJ1RWUFRZUEUnLFxuICBuYW1lOiAnVFZQJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cbiAgICByZXR1cm4gdmFsdWUubmFtZSArICcgcmVhZG9ubHknO1xuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgZGF0YWJhc2VOYW1lID0gJyc7XG4gICAgY29uc3Qgc2NoZW1hID0gcGFyYW1ldGVyLnZhbHVlPy5zY2hlbWEgPz8gJyc7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBwYXJhbWV0ZXIudmFsdWU/Lm5hbWUgPz8gJyc7XG5cbiAgICBjb25zdCBidWZmZXJMZW5ndGggPSAxICtcbiAgICAgIDEgKyBCdWZmZXIuYnl0ZUxlbmd0aChkYXRhYmFzZU5hbWUsICd1Y3MyJykgK1xuICAgICAgMSArIEJ1ZmZlci5ieXRlTGVuZ3RoKHNjaGVtYSwgJ3VjczInKSArXG4gICAgICAxICsgQnVmZmVyLmJ5dGVMZW5ndGgodHlwZU5hbWUsICd1Y3MyJyk7XG5cbiAgICBjb25zdCBidWZmZXIgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcihidWZmZXJMZW5ndGgsICd1Y3MyJyk7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCk7XG4gICAgYnVmZmVyLndyaXRlQlZhcmNoYXIoZGF0YWJhc2VOYW1lKTtcbiAgICBidWZmZXIud3JpdGVCVmFyY2hhcihzY2hlbWEpO1xuICAgIGJ1ZmZlci53cml0ZUJWYXJjaGFyKHR5cGVOYW1lKTtcblxuICAgIHJldHVybiBidWZmZXIuZGF0YTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICBjb25zdCB7IGNvbHVtbnMgfSA9IHBhcmFtZXRlci52YWx1ZTtcbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoMik7XG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUoY29sdW1ucy5sZW5ndGgsIDApO1xuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgKmdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHlpZWxkIFRWUF9FTkRfVE9LRU47XG4gICAgICB5aWVsZCBUVlBfRU5EX1RPS0VOO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgY29sdW1ucywgcm93cyB9ID0gcGFyYW1ldGVyLnZhbHVlO1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGNvbHVtbnMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbaV07XG5cbiAgICAgIGNvbnN0IGJ1ZmYgPSBCdWZmZXIuYWxsb2MoNik7XG4gICAgICAvLyBVc2VyVHlwZVxuICAgICAgYnVmZi53cml0ZVVJbnQzMkxFKDB4MDAwMDAwMDAsIDApO1xuXG4gICAgICAvLyBGbGFnc1xuICAgICAgYnVmZi53cml0ZVVJbnQxNkxFKDB4MDAwMCwgNCk7XG4gICAgICB5aWVsZCBidWZmO1xuXG4gICAgICAvLyBUWVBFX0lORk9cbiAgICAgIHlpZWxkIGNvbHVtbi50eXBlLmdlbmVyYXRlVHlwZUluZm8oY29sdW1uKTtcblxuICAgICAgLy8gQ29sTmFtZVxuICAgICAgeWllbGQgQnVmZmVyLmZyb20oWzB4MDBdKTtcbiAgICB9XG5cbiAgICB5aWVsZCBUVlBfRU5EX1RPS0VOO1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbmd0aCA9IHJvd3MubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIHlpZWxkIFRWUF9ST1dfVE9LRU47XG5cbiAgICAgIGNvbnN0IHJvdyA9IHJvd3NbaV07XG4gICAgICBmb3IgKGxldCBrID0gMCwgbGVuMiA9IHJvdy5sZW5ndGg7IGsgPCBsZW4yOyBrKyspIHtcbiAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1uc1trXTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByb3dba107XG5cbiAgICAgICAgY29uc3QgcGFyYW0gPSB7XG4gICAgICAgICAgdmFsdWU6IGNvbHVtbi50eXBlLnZhbGlkYXRlKHZhbHVlLCBwYXJhbWV0ZXIuY29sbGF0aW9uKSxcbiAgICAgICAgICBsZW5ndGg6IGNvbHVtbi5sZW5ndGgsXG4gICAgICAgICAgc2NhbGU6IGNvbHVtbi5zY2FsZSxcbiAgICAgICAgICBwcmVjaXNpb246IGNvbHVtbi5wcmVjaXNpb25cbiAgICAgICAgfTtcblxuICAgICAgICAvLyBUdnBDb2x1bW5EYXRhXG4gICAgICAgIHlpZWxkIGNvbHVtbi50eXBlLmdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtLCBvcHRpb25zKTtcbiAgICAgICAgeWllbGQgKiBjb2x1bW4udHlwZS5nZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW0sIG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHlpZWxkIFRWUF9FTkRfVE9LRU47XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogQnVmZmVyIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHRhYmxlLicpO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZS5jb2x1bW5zKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCB0YWJsZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUucm93cykpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgdGFibGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUVlA7XG5tb2R1bGUuZXhwb3J0cyA9IFRWUDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7O0FBRUEsTUFBTUEsYUFBYSxHQUFHQyxNQUFNLENBQUNDLElBQVAsQ0FBWSxDQUFDLElBQUQsQ0FBWixDQUF0QjtBQUNBLE1BQU1DLGFBQWEsR0FBR0YsTUFBTSxDQUFDQyxJQUFQLENBQVksQ0FBQyxJQUFELENBQVosQ0FBdEI7QUFFQSxNQUFNRSxXQUFXLEdBQUdILE1BQU0sQ0FBQ0MsSUFBUCxDQUFZLENBQUMsSUFBRCxFQUFPLElBQVAsQ0FBWixDQUFwQjtBQUVBLE1BQU1HLEdBQWEsR0FBRztFQUNwQkMsRUFBRSxFQUFFLElBRGdCO0VBRXBCQyxJQUFJLEVBQUUsU0FGYztFQUdwQkMsSUFBSSxFQUFFLEtBSGM7RUFLcEJDLFdBQVcsRUFBRSxVQUFTQyxTQUFULEVBQW9CO0lBQy9CLE1BQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUF4QixDQUQrQixDQUNPOztJQUN0QyxPQUFPQSxLQUFLLENBQUNILElBQU4sR0FBYSxXQUFwQjtFQUNELENBUm1COztFQVVwQkksZ0JBQWdCLENBQUNGLFNBQUQsRUFBWTtJQUFBOztJQUMxQixNQUFNRyxZQUFZLEdBQUcsRUFBckI7SUFDQSxNQUFNQyxNQUFNLEdBQUcscUJBQUFKLFNBQVMsQ0FBQ0MsS0FBVixzRUFBaUJHLE1BQWpCLEtBQTJCLEVBQTFDO0lBQ0EsTUFBTUMsUUFBUSxHQUFHLHNCQUFBTCxTQUFTLENBQUNDLEtBQVYsd0VBQWlCSCxJQUFqQixLQUF5QixFQUExQztJQUVBLE1BQU1RLFlBQVksR0FBRyxJQUNuQixDQURtQixHQUNmZixNQUFNLENBQUNn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
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ class AbortError extends Error {
9
+ constructor() {
10
+ super('The operation was aborted');
11
+ this.code = void 0;
12
+ this.code = 'ABORT_ERR';
13
+ this.name = 'AbortError';
14
+ }
15
+
16
+ }
17
+
18
+ exports.default = AbortError;
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBYm9ydEVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImNvZGUiLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vycm9ycy9hYm9ydC1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBBYm9ydEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ1RoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQnKTtcblxuICAgIHRoaXMuY29kZSA9ICdBQk9SVF9FUlInO1xuICAgIHRoaXMubmFtZSA9ICdBYm9ydEVycm9yJztcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWUsTUFBTUEsVUFBTixTQUF5QkMsS0FBekIsQ0FBK0I7RUFHNUNDLFdBQVcsR0FBRztJQUNaLE1BQU0sMkJBQU47SUFEWSxLQUZkQyxJQUVjO0lBR1osS0FBS0EsSUFBTCxHQUFZLFdBQVo7SUFDQSxLQUFLQyxJQUFMLEdBQVksWUFBWjtFQUNEOztBQVIyQyJ9
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ class TimeoutError extends Error {
9
+ constructor() {
10
+ super('The operation was aborted due to timeout');
11
+ this.code = void 0;
12
+ this.code = 'TIMEOUT_ERR';
13
+ this.name = 'TimeoutError';
14
+ }
15
+
16
+ }
17
+
18
+ exports.default = TimeoutError;
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUaW1lb3V0RXJyb3IiLCJFcnJvciIsImNvbnN0cnVjdG9yIiwiY29kZSIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3JzL3RpbWVvdXQtZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGltZW91dEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ1RoZSBvcGVyYXRpb24gd2FzIGFib3J0ZWQgZHVlIHRvIHRpbWVvdXQnKTtcblxuICAgIHRoaXMuY29kZSA9ICdUSU1FT1VUX0VSUic7XG4gICAgdGhpcy5uYW1lID0gJ1RpbWVvdXRFcnJvcic7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFlLE1BQU1BLFlBQU4sU0FBMkJDLEtBQTNCLENBQWlDO0VBRzlDQyxXQUFXLEdBQUc7SUFDWixNQUFNLDBDQUFOO0lBRFksS0FGZEMsSUFFYztJQUdaLEtBQUtBLElBQUwsR0FBWSxhQUFaO0lBQ0EsS0FBS0MsSUFBTCxHQUFZLGNBQVo7RUFDRDs7QUFSNkMifQ==