tedious 16.6.1 → 16.7.0

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
@@ -7,7 +7,7 @@ exports.connectInParallel = connectInParallel;
7
7
  exports.connectInSequence = connectInSequence;
8
8
  exports.lookupAllAddresses = lookupAllAddresses;
9
9
  var _net = _interopRequireDefault(require("net"));
10
- var punycode = _interopRequireWildcard(require("punycode"));
10
+ var punycode = _interopRequireWildcard(require("punycode/"));
11
11
  var _abortError = _interopRequireDefault(require("./errors/abort-error"));
12
12
  var _esAggregateError = _interopRequireDefault(require("es-aggregate-error"));
13
13
  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); }
@@ -149,4 +149,4 @@ async function lookupAllAddresses(host, lookup, signal) {
149
149
  });
150
150
  }
151
151
  }
152
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbmV0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJwdW55Y29kZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2Fib3J0RXJyb3IiLCJfZXNBZ2dyZWdhdGVFcnJvciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJjb25uZWN0SW5QYXJhbGxlbCIsIm9wdGlvbnMiLCJsb29rdXAiLCJzaWduYWwiLCJhYm9ydGVkIiwiQWJvcnRFcnJvciIsImFkZHJlc3NlcyIsImxvb2t1cEFsbEFkZHJlc3NlcyIsImhvc3QiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNvY2tldHMiLCJBcnJheSIsImxlbmd0aCIsImVycm9ycyIsIm9uRXJyb3IiLCJlcnIiLCJwdXNoIiwicmVtb3ZlTGlzdGVuZXIiLCJvbkNvbm5lY3QiLCJkZXN0cm95IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9uQWJvcnQiLCJBZ2dyZWdhdGVFcnJvciIsImoiLCJzb2NrZXQiLCJpIiwibGVuIiwibmV0IiwiY29ubmVjdCIsImFkZHJlc3MiLCJmYW1pbHkiLCJvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJvbmNlIiwiY29ubmVjdEluU2VxdWVuY2UiLCJFcnJvciIsIm5hbWUiLCJpc0lQdjYiLCJpc0lQdjQiLCJ0b0FTQ0lJIiwiYWxsIl0sInNvdXJjZXMiOlsiLi4vc3JjL2Nvbm5lY3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmV0IGZyb20gJ25ldCc7XG5pbXBvcnQgZG5zLCB7IHR5cGUgTG9va3VwQWRkcmVzcyB9IGZyb20gJ2Rucyc7XG5cbmltcG9ydCAqIGFzIHB1bnljb2RlIGZyb20gJ3B1bnljb2RlJztcbmltcG9ydCB7IEFib3J0U2lnbmFsIH0gZnJvbSAnbm9kZS1hYm9ydC1jb250cm9sbGVyJztcbmltcG9ydCBBYm9ydEVycm9yIGZyb20gJy4vZXJyb3JzL2Fib3J0LWVycm9yJztcblxuaW1wb3J0IEFnZ3JlZ2F0ZUVycm9yIGZyb20gJ2VzLWFnZ3JlZ2F0ZS1lcnJvcic7XG5cbnR5cGUgTG9va3VwRnVuY3Rpb24gPSAoaG9zdG5hbWU6IHN0cmluZywgb3B0aW9uczogZG5zLkxvb2t1cEFsbE9wdGlvbnMsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24gfCBudWxsLCBhZGRyZXNzZXM6IGRucy5Mb29rdXBBZGRyZXNzW10pID0+IHZvaWQpID0+IHZvaWQ7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb25uZWN0SW5QYXJhbGxlbChvcHRpb25zOiB7IGhvc3Q6IHN0cmluZywgcG9ydDogbnVtYmVyLCBsb2NhbEFkZHJlc3M/OiBzdHJpbmcgfCB1bmRlZmluZWQgfSwgbG9va3VwOiBMb29rdXBGdW5jdGlvbiwgc2lnbmFsOiBBYm9ydFNpZ25hbCkge1xuICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICB0aHJvdyBuZXcgQWJvcnRFcnJvcigpO1xuICB9XG5cbiAgY29uc3QgYWRkcmVzc2VzID0gYXdhaXQgbG9va3VwQWxsQWRkcmVzc2VzKG9wdGlvbnMuaG9zdCwgbG9va3VwLCBzaWduYWwpO1xuXG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxuZXQuU29ja2V0PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgc29ja2V0cyA9IG5ldyBBcnJheShhZGRyZXNzZXMubGVuZ3RoKTtcblxuICAgIGNvbnN0IGVycm9yczogRXJyb3JbXSA9IFtdO1xuXG4gICAgZnVuY3Rpb24gb25FcnJvcih0aGlzOiBuZXQuU29ja2V0LCBlcnI6IEVycm9yKSB7XG4gICAgICBlcnJvcnMucHVzaChlcnIpO1xuXG4gICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcignY29ubmVjdCcsIG9uQ29ubmVjdCk7XG5cbiAgICAgIHRoaXMuZGVzdHJveSgpO1xuXG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gYWRkcmVzc2VzLmxlbmd0aCkge1xuICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgICByZWplY3QobmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgJ0NvdWxkIG5vdCBjb25uZWN0IChwYXJhbGxlbCknKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb25Db25uZWN0KHRoaXM6IG5ldC5Tb2NrZXQpIHtcbiAgICAgIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQpO1xuXG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNvY2tldHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgY29uc3Qgc29ja2V0ID0gc29ja2V0c1tqXTtcblxuICAgICAgICBpZiAodGhpcyA9PT0gc29ja2V0KSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignY29ubmVjdCcsIG9uQ29ubmVjdCk7XG4gICAgICAgIHNvY2tldC5kZXN0cm95KCk7XG4gICAgICB9XG5cbiAgICAgIHJlc29sdmUodGhpcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc29ja2V0cy5sZW5ndGg7IGorKykge1xuICAgICAgICBjb25zdCBzb2NrZXQgPSBzb2NrZXRzW2pdO1xuXG4gICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdjb25uZWN0Jywgb25Db25uZWN0KTtcblxuICAgICAgICBzb2NrZXQuZGVzdHJveSgpO1xuICAgICAgfVxuXG4gICAgICByZWplY3QobmV3IEFib3J0RXJyb3IoKSk7XG4gICAgfTtcblxuICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhZGRyZXNzZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IHNvY2tldCA9IHNvY2tldHNbaV0gPSBuZXQuY29ubmVjdCh7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIGhvc3Q6IGFkZHJlc3Nlc1tpXS5hZGRyZXNzLFxuICAgICAgICBmYW1pbHk6IGFkZHJlc3Nlc1tpXS5mYW1pbHlcbiAgICAgIH0pO1xuXG4gICAgICBzb2NrZXQub24oJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICBzb2NrZXQub24oJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuICAgIH1cblxuICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb25uZWN0SW5TZXF1ZW5jZShvcHRpb25zOiB7IGhvc3Q6IHN0cmluZywgcG9ydDogbnVtYmVyLCBsb2NhbEFkZHJlc3M/OiBzdHJpbmcgfCB1bmRlZmluZWQgfSwgbG9va3VwOiBMb29rdXBGdW5jdGlvbiwgc2lnbmFsOiBBYm9ydFNpZ25hbCkge1xuICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICB0aHJvdyBuZXcgQWJvcnRFcnJvcigpO1xuICB9XG5cbiAgY29uc3QgZXJyb3JzOiBhbnlbXSA9IFtdO1xuICBjb25zdCBhZGRyZXNzZXMgPSBhd2FpdCBsb29rdXBBbGxBZGRyZXNzZXMob3B0aW9ucy5ob3N0LCBsb29rdXAsIHNpZ25hbCk7XG5cbiAgZm9yIChjb25zdCBhZGRyZXNzIG9mIGFkZHJlc3Nlcykge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8bmV0LlNvY2tldD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBzb2NrZXQgPSBuZXQuY29ubmVjdCh7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBob3N0OiBhZGRyZXNzLmFkZHJlc3MsXG4gICAgICAgICAgZmFtaWx5OiBhZGRyZXNzLmZhbWlseVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICAgICAgc29ja2V0LmRlc3Ryb3koKTtcblxuICAgICAgICAgIHJlamVjdChuZXcgQWJvcnRFcnJvcigpKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBvbkVycm9yID0gKGVycjogRXJyb3IpID0+IHtcbiAgICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICAgICAgc29ja2V0LmRlc3Ryb3koKTtcblxuICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IG9uQ29ubmVjdCA9ICgpID0+IHtcbiAgICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICAgICAgcmVzb2x2ZShzb2NrZXQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcblxuICAgICAgICBzb2NrZXQub24oJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIHNvY2tldC5vbignY29ubmVjdCcsIG9uQ29ubmVjdCk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cblxuICAgICAgZXJyb3JzLnB1c2goZXJyKTtcblxuICAgICAgY29udGludWU7XG4gICAgfVxuICB9XG5cbiAgdGhyb3cgbmV3IEFnZ3JlZ2F0ZUVycm9yKGVycm9ycywgJ0NvdWxkIG5vdCBjb25uZWN0IChzZXF1ZW5jZSknKTtcbn1cblxuLyoqXG4gKiBMb29rIHVwIGFsbCBhZGRyZXNzZXMgZm9yIHRoZSBnaXZlbiBob3N0bmFtZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvb2t1cEFsbEFkZHJlc3Nlcyhob3N0OiBzdHJpbmcsIGxvb2t1cDogTG9va3VwRnVuY3Rpb24sIHNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNlPGRucy5Mb29rdXBBZGRyZXNzW10+IHtcbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IEFib3J0RXJyb3IoKTtcbiAgfVxuXG4gIGlmIChuZXQuaXNJUHY2KGhvc3QpKSB7XG4gICAgcmV0dXJuIFt7IGFkZHJlc3M6IGhvc3QsIGZhbWlseTogNiB9XTtcbiAgfSBlbHNlIGlmIChuZXQuaXNJUHY0KGhvc3QpKSB7XG4gICAgcmV0dXJuIFt7IGFkZHJlc3M6IGhvc3QsIGZhbWlseTogNCB9XTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8TG9va3VwQWRkcmVzc1tdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEFib3J0RXJyb3IoKSk7XG4gICAgICB9O1xuXG4gICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgbG9va3VwKHB1bnljb2RlLnRvQVNDSUkoaG9zdCksIHsgYWxsOiB0cnVlIH0sIChlcnIsIGFkZHJlc3NlcykgPT4ge1xuICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgICBlcnIgPyByZWplY3QoZXJyKSA6IHJlc29sdmUoYWRkcmVzc2VzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsUUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsV0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUksaUJBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUFnRCxTQUFBSyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBSix3QkFBQVEsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxH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
152
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbmV0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJwdW55Y29kZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2Fib3J0RXJyb3IiLCJfZXNBZ2dyZWdhdGVFcnJvciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJjb25uZWN0SW5QYXJhbGxlbCIsIm9wdGlvbnMiLCJsb29rdXAiLCJzaWduYWwiLCJhYm9ydGVkIiwiQWJvcnRFcnJvciIsImFkZHJlc3NlcyIsImxvb2t1cEFsbEFkZHJlc3NlcyIsImhvc3QiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsInNvY2tldHMiLCJBcnJheSIsImxlbmd0aCIsImVycm9ycyIsIm9uRXJyb3IiLCJlcnIiLCJwdXNoIiwicmVtb3ZlTGlzdGVuZXIiLCJvbkNvbm5lY3QiLCJkZXN0cm95IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsIm9uQWJvcnQiLCJBZ2dyZWdhdGVFcnJvciIsImoiLCJzb2NrZXQiLCJpIiwibGVuIiwibmV0IiwiY29ubmVjdCIsImFkZHJlc3MiLCJmYW1pbHkiLCJvbiIsImFkZEV2ZW50TGlzdGVuZXIiLCJvbmNlIiwiY29ubmVjdEluU2VxdWVuY2UiLCJFcnJvciIsIm5hbWUiLCJpc0lQdjYiLCJpc0lQdjQiLCJ0b0FTQ0lJIiwiYWxsIl0sInNvdXJjZXMiOlsiLi4vc3JjL2Nvbm5lY3Rvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbmV0IGZyb20gJ25ldCc7XG5pbXBvcnQgZG5zLCB7IHR5cGUgTG9va3VwQWRkcmVzcyB9IGZyb20gJ2Rucyc7XG5cbmltcG9ydCAqIGFzIHB1bnljb2RlIGZyb20gJ3B1bnljb2RlLyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbCB9IGZyb20gJ25vZGUtYWJvcnQtY29udHJvbGxlcic7XG5pbXBvcnQgQWJvcnRFcnJvciBmcm9tICcuL2Vycm9ycy9hYm9ydC1lcnJvcic7XG5cbmltcG9ydCBBZ2dyZWdhdGVFcnJvciBmcm9tICdlcy1hZ2dyZWdhdGUtZXJyb3InO1xuXG50eXBlIExvb2t1cEZ1bmN0aW9uID0gKGhvc3RuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IGRucy5Mb29rdXBBbGxPcHRpb25zLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgYWRkcmVzc2VzOiBkbnMuTG9va3VwQWRkcmVzc1tdKSA9PiB2b2lkKSA9PiB2b2lkO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29ubmVjdEluUGFyYWxsZWwob3B0aW9uczogeyBob3N0OiBzdHJpbmcsIHBvcnQ6IG51bWJlciwgbG9jYWxBZGRyZXNzPzogc3RyaW5nIHwgdW5kZWZpbmVkIH0sIGxvb2t1cDogTG9va3VwRnVuY3Rpb24sIHNpZ25hbDogQWJvcnRTaWduYWwpIHtcbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IEFib3J0RXJyb3IoKTtcbiAgfVxuXG4gIGNvbnN0IGFkZHJlc3NlcyA9IGF3YWl0IGxvb2t1cEFsbEFkZHJlc3NlcyhvcHRpb25zLmhvc3QsIGxvb2t1cCwgc2lnbmFsKTtcblxuICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2U8bmV0LlNvY2tldD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHNvY2tldHMgPSBuZXcgQXJyYXkoYWRkcmVzc2VzLmxlbmd0aCk7XG5cbiAgICBjb25zdCBlcnJvcnM6IEVycm9yW10gPSBbXTtcblxuICAgIGZ1bmN0aW9uIG9uRXJyb3IodGhpczogbmV0LlNvY2tldCwgZXJyOiBFcnJvcikge1xuICAgICAgZXJyb3JzLnB1c2goZXJyKTtcblxuICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuXG4gICAgICB0aGlzLmRlc3Ryb3koKTtcblxuICAgICAgaWYgKGVycm9ycy5sZW5ndGggPT09IGFkZHJlc3Nlcy5sZW5ndGgpIHtcbiAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG5cbiAgICAgICAgcmVqZWN0KG5ldyBBZ2dyZWdhdGVFcnJvcihlcnJvcnMsICdDb3VsZCBub3QgY29ubmVjdCAocGFyYWxsZWwpJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG9uQ29ubmVjdCh0aGlzOiBuZXQuU29ja2V0KSB7XG4gICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBzb2NrZXRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGNvbnN0IHNvY2tldCA9IHNvY2tldHNbal07XG5cbiAgICAgICAgaWYgKHRoaXMgPT09IHNvY2tldCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuICAgICAgICBzb2NrZXQuZGVzdHJveSgpO1xuICAgICAgfVxuXG4gICAgICByZXNvbHZlKHRoaXMpO1xuICAgIH1cblxuICAgIGNvbnN0IG9uQWJvcnQgPSAoKSA9PiB7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNvY2tldHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgY29uc3Qgc29ja2V0ID0gc29ja2V0c1tqXTtcblxuICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignY29ubmVjdCcsIG9uQ29ubmVjdCk7XG5cbiAgICAgICAgc29ja2V0LmRlc3Ryb3koKTtcbiAgICAgIH1cblxuICAgICAgcmVqZWN0KG5ldyBBYm9ydEVycm9yKCkpO1xuICAgIH07XG5cbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gYWRkcmVzc2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBzb2NrZXQgPSBzb2NrZXRzW2ldID0gbmV0LmNvbm5lY3Qoe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBob3N0OiBhZGRyZXNzZXNbaV0uYWRkcmVzcyxcbiAgICAgICAgZmFtaWx5OiBhZGRyZXNzZXNbaV0uZmFtaWx5XG4gICAgICB9KTtcblxuICAgICAgc29ja2V0Lm9uKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgc29ja2V0Lm9uKCdjb25uZWN0Jywgb25Db25uZWN0KTtcbiAgICB9XG5cbiAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0LCB7IG9uY2U6IHRydWUgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29ubmVjdEluU2VxdWVuY2Uob3B0aW9uczogeyBob3N0OiBzdHJpbmcsIHBvcnQ6IG51bWJlciwgbG9jYWxBZGRyZXNzPzogc3RyaW5nIHwgdW5kZWZpbmVkIH0sIGxvb2t1cDogTG9va3VwRnVuY3Rpb24sIHNpZ25hbDogQWJvcnRTaWduYWwpIHtcbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IEFib3J0RXJyb3IoKTtcbiAgfVxuXG4gIGNvbnN0IGVycm9yczogYW55W10gPSBbXTtcbiAgY29uc3QgYWRkcmVzc2VzID0gYXdhaXQgbG9va3VwQWxsQWRkcmVzc2VzKG9wdGlvbnMuaG9zdCwgbG9va3VwLCBzaWduYWwpO1xuXG4gIGZvciAoY29uc3QgYWRkcmVzcyBvZiBhZGRyZXNzZXMpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPG5ldC5Tb2NrZXQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3Qgc29ja2V0ID0gbmV0LmNvbm5lY3Qoe1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgaG9zdDogYWRkcmVzcy5hZGRyZXNzLFxuICAgICAgICAgIGZhbWlseTogYWRkcmVzcy5mYW1pbHlcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHtcbiAgICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdjb25uZWN0Jywgb25Db25uZWN0KTtcblxuICAgICAgICAgIHNvY2tldC5kZXN0cm95KCk7XG5cbiAgICAgICAgICByZWplY3QobmV3IEFib3J0RXJyb3IoKSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgb25FcnJvciA9IChlcnI6IEVycm9yKSA9PiB7XG4gICAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG5cbiAgICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdjb25uZWN0Jywgb25Db25uZWN0KTtcblxuICAgICAgICAgIHNvY2tldC5kZXN0cm95KCk7XG5cbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBvbkNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG5cbiAgICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdjb25uZWN0Jywgb25Db25uZWN0KTtcblxuICAgICAgICAgIHJlc29sdmUoc29ja2V0KTtcbiAgICAgICAgfTtcblxuICAgICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0LCB7IG9uY2U6IHRydWUgfSk7XG5cbiAgICAgICAgc29ja2V0Lm9uKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgICBzb2NrZXQub24oJ2Nvbm5lY3QnLCBvbkNvbm5lY3QpO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIGVycm9ycy5wdXNoKGVycik7XG5cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBBZ2dyZWdhdGVFcnJvcihlcnJvcnMsICdDb3VsZCBub3QgY29ubmVjdCAoc2VxdWVuY2UpJyk7XG59XG5cbi8qKlxuICogTG9vayB1cCBhbGwgYWRkcmVzc2VzIGZvciB0aGUgZ2l2ZW4gaG9zdG5hbWUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb29rdXBBbGxBZGRyZXNzZXMoaG9zdDogc3RyaW5nLCBsb29rdXA6IExvb2t1cEZ1bmN0aW9uLCBzaWduYWw6IEFib3J0U2lnbmFsKTogUHJvbWlzZTxkbnMuTG9va3VwQWRkcmVzc1tdPiB7XG4gIGlmIChzaWduYWwuYWJvcnRlZCkge1xuICAgIHRocm93IG5ldyBBYm9ydEVycm9yKCk7XG4gIH1cblxuICBpZiAobmV0LmlzSVB2Nihob3N0KSkge1xuICAgIHJldHVybiBbeyBhZGRyZXNzOiBob3N0LCBmYW1pbHk6IDYgfV07XG4gIH0gZWxzZSBpZiAobmV0LmlzSVB2NChob3N0KSkge1xuICAgIHJldHVybiBbeyBhZGRyZXNzOiBob3N0LCBmYW1pbHk6IDQgfV07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPExvb2t1cEFkZHJlc3NbXT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHtcbiAgICAgICAgcmVqZWN0KG5ldyBBYm9ydEVycm9yKCkpO1xuICAgICAgfTtcblxuICAgICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG5cbiAgICAgIGxvb2t1cChwdW55Y29kZS50b0FTQ0lJKGhvc3QpLCB7IGFsbDogdHJ1ZSB9LCAoZXJyLCBhZGRyZXNzZXMpID0+IHtcbiAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG5cbiAgICAgICAgZXJyID8gcmVqZWN0KGVycikgOiByZXNvbHZlKGFkZHJlc3Nlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLElBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFDLFFBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLGlCQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFBZ0QsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQUosd0JBQUFRLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEs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
@@ -1 +1 @@
1
- {"version":3,"file":"connector.js","names":["_net","_interopRequireDefault","require","punycode","_interopRequireWildcard","_abortError","_esAggregateError","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","connectInParallel","options","lookup","signal","aborted","AbortError","addresses","lookupAllAddresses","host","Promise","resolve","reject","sockets","Array","length","errors","onError","err","push","removeListener","onConnect","destroy","removeEventListener","onAbort","AggregateError","j","socket","i","len","net","connect","address","family","on","addEventListener","once","connectInSequence","Error","name","isIPv6","isIPv4","toASCII","all"],"sources":["../src/connector.ts"],"sourcesContent":["import net from 'net';\nimport dns, { type LookupAddress } from 'dns';\n\nimport * as punycode from 'punycode';\nimport { AbortSignal } from 'node-abort-controller';\nimport AbortError from './errors/abort-error';\n\nimport AggregateError from 'es-aggregate-error';\n\ntype LookupFunction = (hostname: string, options: dns.LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: dns.LookupAddress[]) => void) => void;\n\nexport async function connectInParallel(options: { host: string, port: number, localAddress?: string | undefined }, lookup: LookupFunction, signal: AbortSignal) {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n const addresses = await lookupAllAddresses(options.host, lookup, signal);\n\n return await new Promise<net.Socket>((resolve, reject) => {\n const sockets = new Array(addresses.length);\n\n const errors: Error[] = [];\n\n function onError(this: net.Socket, err: Error) {\n errors.push(err);\n\n this.removeListener('error', onError);\n this.removeListener('connect', onConnect);\n\n this.destroy();\n\n if (errors.length === addresses.length) {\n signal.removeEventListener('abort', onAbort);\n\n reject(new AggregateError(errors, 'Could not connect (parallel)'));\n }\n }\n\n function onConnect(this: net.Socket) {\n signal.removeEventListener('abort', onAbort);\n\n for (let j = 0; j < sockets.length; j++) {\n const socket = sockets[j];\n\n if (this === socket) {\n continue;\n }\n\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n socket.destroy();\n }\n\n resolve(this);\n }\n\n const onAbort = () => {\n for (let j = 0; j < sockets.length; j++) {\n const socket = sockets[j];\n\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n\n socket.destroy();\n }\n\n reject(new AbortError());\n };\n\n for (let i = 0, len = addresses.length; i < len; i++) {\n const socket = sockets[i] = net.connect({\n ...options,\n host: addresses[i].address,\n family: addresses[i].family\n });\n\n socket.on('error', onError);\n socket.on('connect', onConnect);\n }\n\n signal.addEventListener('abort', onAbort, { once: true });\n });\n}\n\nexport async function connectInSequence(options: { host: string, port: number, localAddress?: string | undefined }, lookup: LookupFunction, signal: AbortSignal) {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n const errors: any[] = [];\n const addresses = await lookupAllAddresses(options.host, lookup, signal);\n\n for (const address of addresses) {\n try {\n return await new Promise<net.Socket>((resolve, reject) => {\n const socket = net.connect({\n ...options,\n host: address.address,\n family: address.family\n });\n\n const onAbort = () => {\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n\n socket.destroy();\n\n reject(new AbortError());\n };\n\n const onError = (err: Error) => {\n signal.removeEventListener('abort', onAbort);\n\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n\n socket.destroy();\n\n reject(err);\n };\n\n const onConnect = () => {\n signal.removeEventListener('abort', onAbort);\n\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n\n resolve(socket);\n };\n\n signal.addEventListener('abort', onAbort, { once: true });\n\n socket.on('error', onError);\n socket.on('connect', onConnect);\n });\n } catch (err) {\n if (err instanceof Error && err.name === 'AbortError') {\n throw err;\n }\n\n errors.push(err);\n\n continue;\n }\n }\n\n throw new AggregateError(errors, 'Could not connect (sequence)');\n}\n\n/**\n * Look up all addresses for the given hostname.\n */\nexport async function lookupAllAddresses(host: string, lookup: LookupFunction, signal: AbortSignal): Promise<dns.LookupAddress[]> {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n if (net.isIPv6(host)) {\n return [{ address: host, family: 6 }];\n } else if (net.isIPv4(host)) {\n return [{ address: host, family: 4 }];\n } else {\n return await new Promise<LookupAddress[]>((resolve, reject) => {\n const onAbort = () => {\n reject(new AbortError());\n };\n\n signal.addEventListener('abort', onAbort);\n\n lookup(punycode.toASCII(host), { all: true }, (err, addresses) => {\n signal.removeEventListener('abort', onAbort);\n\n err ? reject(err) : resolve(addresses);\n });\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"connector.js","names":["_net","_interopRequireDefault","require","punycode","_interopRequireWildcard","_abortError","_esAggregateError","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","connectInParallel","options","lookup","signal","aborted","AbortError","addresses","lookupAllAddresses","host","Promise","resolve","reject","sockets","Array","length","errors","onError","err","push","removeListener","onConnect","destroy","removeEventListener","onAbort","AggregateError","j","socket","i","len","net","connect","address","family","on","addEventListener","once","connectInSequence","Error","name","isIPv6","isIPv4","toASCII","all"],"sources":["../src/connector.ts"],"sourcesContent":["import net from 'net';\nimport dns, { type LookupAddress } from 'dns';\n\nimport * as punycode from 'punycode/';\nimport { AbortSignal } from 'node-abort-controller';\nimport AbortError from './errors/abort-error';\n\nimport AggregateError from 'es-aggregate-error';\n\ntype LookupFunction = (hostname: string, options: dns.LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: dns.LookupAddress[]) => void) => void;\n\nexport async function connectInParallel(options: { host: string, port: number, localAddress?: string | undefined }, lookup: LookupFunction, signal: AbortSignal) {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n const addresses = await lookupAllAddresses(options.host, lookup, signal);\n\n return await new Promise<net.Socket>((resolve, reject) => {\n const sockets = new Array(addresses.length);\n\n const errors: Error[] = [];\n\n function onError(this: net.Socket, err: Error) {\n errors.push(err);\n\n this.removeListener('error', onError);\n this.removeListener('connect', onConnect);\n\n this.destroy();\n\n if (errors.length === addresses.length) {\n signal.removeEventListener('abort', onAbort);\n\n reject(new AggregateError(errors, 'Could not connect (parallel)'));\n }\n }\n\n function onConnect(this: net.Socket) {\n signal.removeEventListener('abort', onAbort);\n\n for (let j = 0; j < sockets.length; j++) {\n const socket = sockets[j];\n\n if (this === socket) {\n continue;\n }\n\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n socket.destroy();\n }\n\n resolve(this);\n }\n\n const onAbort = () => {\n for (let j = 0; j < sockets.length; j++) {\n const socket = sockets[j];\n\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n\n socket.destroy();\n }\n\n reject(new AbortError());\n };\n\n for (let i = 0, len = addresses.length; i < len; i++) {\n const socket = sockets[i] = net.connect({\n ...options,\n host: addresses[i].address,\n family: addresses[i].family\n });\n\n socket.on('error', onError);\n socket.on('connect', onConnect);\n }\n\n signal.addEventListener('abort', onAbort, { once: true });\n });\n}\n\nexport async function connectInSequence(options: { host: string, port: number, localAddress?: string | undefined }, lookup: LookupFunction, signal: AbortSignal) {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n const errors: any[] = [];\n const addresses = await lookupAllAddresses(options.host, lookup, signal);\n\n for (const address of addresses) {\n try {\n return await new Promise<net.Socket>((resolve, reject) => {\n const socket = net.connect({\n ...options,\n host: address.address,\n family: address.family\n });\n\n const onAbort = () => {\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n\n socket.destroy();\n\n reject(new AbortError());\n };\n\n const onError = (err: Error) => {\n signal.removeEventListener('abort', onAbort);\n\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n\n socket.destroy();\n\n reject(err);\n };\n\n const onConnect = () => {\n signal.removeEventListener('abort', onAbort);\n\n socket.removeListener('error', onError);\n socket.removeListener('connect', onConnect);\n\n resolve(socket);\n };\n\n signal.addEventListener('abort', onAbort, { once: true });\n\n socket.on('error', onError);\n socket.on('connect', onConnect);\n });\n } catch (err) {\n if (err instanceof Error && err.name === 'AbortError') {\n throw err;\n }\n\n errors.push(err);\n\n continue;\n }\n }\n\n throw new AggregateError(errors, 'Could not connect (sequence)');\n}\n\n/**\n * Look up all addresses for the given hostname.\n */\nexport async function lookupAllAddresses(host: string, lookup: LookupFunction, signal: AbortSignal): Promise<dns.LookupAddress[]> {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n if (net.isIPv6(host)) {\n return [{ address: host, family: 6 }];\n } else if (net.isIPv4(host)) {\n return [{ address: host, family: 4 }];\n } else {\n return await new Promise<LookupAddress[]>((resolve, reject) => {\n const onAbort = () => {\n reject(new AbortError());\n };\n\n signal.addEventListener('abort', onAbort);\n\n lookup(punycode.toASCII(host), { all: true }, (err, addresses) => {\n signal.removeEventListener('abort', onAbort);\n\n err ? reject(err) : resolve(addresses);\n });\n });\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,QAAA,GAAAC,uBAAA,CAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,iBAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAgD,SAAAK,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAJ,wBAAAQ,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAAA,SAAAjB,uBAAAW,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAIzC,eAAeiB,iBAAiBA,CAACC,OAA0E,EAAEC,MAAsB,EAAEC,MAAmB,EAAE;EAC/J,IAAIA,MAAM,CAACC,OAAO,EAAE;IAClB,MAAM,IAAIC,mBAAU,CAAC,CAAC;EACxB;EAEA,MAAMC,SAAS,GAAG,MAAMC,kBAAkB,CAACN,OAAO,CAACO,IAAI,EAAEN,MAAM,EAAEC,MAAM,CAAC;EAExE,OAAO,MAAM,IAAIM,OAAO,CAAa,CAACC,OAAO,EAAEC,MAAM,KAAK;IACxD,MAAMC,OAAO,GAAG,IAAIC,KAAK,CAACP,SAAS,CAACQ,MAAM,CAAC;IAE3C,MAAMC,MAAe,GAAG,EAAE;IAE1B,SAASC,OAAOA,CAAmBC,GAAU,EAAE;MAC7CF,MAAM,CAACG,IAAI,CAACD,GAAG,CAAC;MAEhB,IAAI,CAACE,cAAc,CAAC,OAAO,EAAEH,OAAO,CAAC;MACrC,IAAI,CAACG,cAAc,CAAC,SAAS,EAAEC,SAAS,CAAC;MAEzC,IAAI,CAACC,OAAO,CAAC,CAAC;MAEd,IAAIN,MAAM,CAACD,MAAM,KAAKR,SAAS,CAACQ,MAAM,EAAE;QACtCX,MAAM,CAACmB,mBAAmB,CAAC,OAAO,EAAEC,OAAO,CAAC;QAE5CZ,MAAM,CAAC,IAAIa,yBAAc,CAACT,MAAM,EAAE,8BAA8B,CAAC,CAAC;MACpE;IACF;IAEA,SAASK,SAASA,CAAA,EAAmB;MACnCjB,MAAM,CAACmB,mBAAmB,CAAC,OAAO,EAAEC,OAAO,CAAC;MAE5C,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,OAAO,CAACE,MAAM,EAAEW,CAAC,EAAE,EAAE;QACvC,MAAMC,MAAM,GAAGd,OAAO,CAACa,CAAC,CAAC;QAEzB,IAAI,IAAI,KAAKC,MAAM,EAAE;UACnB;QACF;QAEAA,MAAM,CAACP,cAAc,CAAC,OAAO,EAAEH,OAAO,CAAC;QACvCU,MAAM,CAACP,cAAc,CAAC,SAAS,EAAEC,SAAS,CAAC;QAC3CM,MAAM,CAACL,OAAO,CAAC,CAAC;MAClB;MAEAX,OAAO,CAAC,IAAI,CAAC;IACf;IAEA,MAAMa,OAAO,GAAGA,CAAA,KAAM;MACpB,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGb,OAAO,CAACE,MAAM,EAAEW,CAAC,EAAE,EAAE;QACvC,MAAMC,MAAM,GAAGd,OAAO,CAACa,CAAC,CAAC;QAEzBC,MAAM,CAACP,cAAc,CAAC,OAAO,EAAEH,OAAO,CAAC;QACvCU,MAAM,CAACP,cAAc,CAAC,SAAS,EAAEC,SAAS,CAAC;QAE3CM,MAAM,CAACL,OAAO,CAAC,CAAC;MAClB;MAEAV,MAAM,CAAC,IAAIN,mBAAU,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,IAAIsB,CAAC,GAAG,CAAC,EAAEC,GAAG,GAAGtB,SAAS,CAACQ,MAAM,EAAEa,CAAC,GAAGC,GAAG,EAAED,CAAC,EAAE,EAAE;MACpD,MAAMD,MAAM,GAAGd,OAAO,CAACe,CAAC,CAAC,GAAGE,YAAG,CAACC,OAAO,CAAC;QACtC,GAAG7B,OAAO;QACVO,IAAI,EAAEF,SAAS,CAACqB,CAAC,CAAC,CAACI,OAAO;QAC1BC,MAAM,EAAE1B,SAAS,CAACqB,CAAC,CAAC,CAACK;MACvB,CAAC,CAAC;MAEFN,MAAM,CAACO,EAAE,CAAC,OAAO,EAAEjB,OAAO,CAAC;MAC3BU,MAAM,CAACO,EAAE,CAAC,SAAS,EAAEb,SAAS,CAAC;IACjC;IAEAjB,MAAM,CAAC+B,gBAAgB,CAAC,OAAO,EAAEX,OAAO,EAAE;MAAEY,IAAI,EAAE;IAAK,CAAC,CAAC;EAC3D,CAAC,CAAC;AACJ;AAEO,eAAeC,iBAAiBA,CAACnC,OAA0E,EAAEC,MAAsB,EAAEC,MAAmB,EAAE;EAC/J,IAAIA,MAAM,CAACC,OAAO,EAAE;IAClB,MAAM,IAAIC,mBAAU,CAAC,CAAC;EACxB;EAEA,MAAMU,MAAa,GAAG,EAAE;EACxB,MAAMT,SAAS,GAAG,MAAMC,kBAAkB,CAACN,OAAO,CAACO,IAAI,EAAEN,MAAM,EAAEC,MAAM,CAAC;EAExE,KAAK,MAAM4B,OAAO,IAAIzB,SAAS,EAAE;IAC/B,IAAI;MACF,OAAO,MAAM,IAAIG,OAAO,CAAa,CAACC,OAAO,EAAEC,MAAM,KAAK;QACxD,MAAMe,MAAM,GAAGG,YAAG,CAACC,OAAO,CAAC;UACzB,GAAG7B,OAAO;UACVO,IAAI,EAAEuB,OAAO,CAACA,OAAO;UACrBC,MAAM,EAAED,OAAO,CAACC;QAClB,CAAC,CAAC;QAEF,MAAMT,OAAO,GAAGA,CAAA,KAAM;UACpBG,MAAM,CAACP,cAAc,CAAC,OAAO,EAAEH,OAAO,CAAC;UACvCU,MAAM,CAACP,cAAc,CAAC,SAAS,EAAEC,SAAS,CAAC;UAE3CM,MAAM,CAACL,OAAO,CAAC,CAAC;UAEhBV,MAAM,CAAC,IAAIN,mBAAU,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,MAAMW,OAAO,GAAIC,GAAU,IAAK;UAC9Bd,MAAM,CAACmB,mBAAmB,CAAC,OAAO,EAAEC,OAAO,CAAC;UAE5CG,MAAM,CAACP,cAAc,CAAC,OAAO,EAAEH,OAAO,CAAC;UACvCU,MAAM,CAACP,cAAc,CAAC,SAAS,EAAEC,SAAS,CAAC;UAE3CM,MAAM,CAACL,OAAO,CAAC,CAAC;UAEhBV,MAAM,CAACM,GAAG,CAAC;QACb,CAAC;QAED,MAAMG,SAAS,GAAGA,CAAA,KAAM;UACtBjB,MAAM,CAACmB,mBAAmB,CAAC,OAAO,EAAEC,OAAO,CAAC;UAE5CG,MAAM,CAACP,cAAc,CAAC,OAAO,EAAEH,OAAO,CAAC;UACvCU,MAAM,CAACP,cAAc,CAAC,SAAS,EAAEC,SAAS,CAAC;UAE3CV,OAAO,CAACgB,MAAM,CAAC;QACjB,CAAC;QAEDvB,MAAM,CAAC+B,gBAAgB,CAAC,OAAO,EAAEX,OAAO,EAAE;UAAEY,IAAI,EAAE;QAAK,CAAC,CAAC;QAEzDT,MAAM,CAACO,EAAE,CAAC,OAAO,EAAEjB,OAAO,CAAC;QAC3BU,MAAM,CAACO,EAAE,CAAC,SAAS,EAAEb,SAAS,CAAC;MACjC,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOH,GAAG,EAAE;MACZ,IAAIA,GAAG,YAAYoB,KAAK,IAAIpB,GAAG,CAACqB,IAAI,KAAK,YAAY,EAAE;QACrD,MAAMrB,GAAG;MACX;MAEAF,MAAM,CAACG,IAAI,CAACD,GAAG,CAAC;MAEhB;IACF;EACF;EAEA,MAAM,IAAIO,yBAAc,CAACT,MAAM,EAAE,8BAA8B,CAAC;AAClE;;AAEA;AACA;AACA;AACO,eAAeR,kBAAkBA,CAACC,IAAY,EAAEN,MAAsB,EAAEC,MAAmB,EAAgC;EAChI,IAAIA,MAAM,CAACC,OAAO,EAAE;IAClB,MAAM,IAAIC,mBAAU,CAAC,CAAC;EACxB;EAEA,IAAIwB,YAAG,CAACU,MAAM,CAAC/B,IAAI,CAAC,EAAE;IACpB,OAAO,CAAC;MAAEuB,OAAO,EAAEvB,IAAI;MAAEwB,MAAM,EAAE;IAAE,CAAC,CAAC;EACvC,CAAC,MAAM,IAAIH,YAAG,CAACW,MAAM,CAAChC,IAAI,CAAC,EAAE;IAC3B,OAAO,CAAC;MAAEuB,OAAO,EAAEvB,IAAI;MAAEwB,MAAM,EAAE;IAAE,CAAC,CAAC;EACvC,CAAC,MAAM;IACL,OAAO,MAAM,IAAIvB,OAAO,CAAkB,CAACC,OAAO,EAAEC,MAAM,KAAK;MAC7D,MAAMY,OAAO,GAAGA,CAAA,KAAM;QACpBZ,MAAM,CAAC,IAAIN,mBAAU,CAAC,CAAC,CAAC;MAC1B,CAAC;MAEDF,MAAM,CAAC+B,gBAAgB,CAAC,OAAO,EAAEX,OAAO,CAAC;MAEzCrB,MAAM,CAAC5B,QAAQ,CAACmE,OAAO,CAACjC,IAAI,CAAC,EAAE;QAAEkC,GAAG,EAAE;MAAK,CAAC,EAAE,CAACzB,GAAG,EAAEX,SAAS,KAAK;QAChEH,MAAM,CAACmB,mBAAmB,CAAC,OAAO,EAAEC,OAAO,CAAC;QAE5CN,GAAG,GAAGN,MAAM,CAACM,GAAG,CAAC,GAAGP,OAAO,CAACJ,SAAS,CAAC;MACxC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF"}
package/lib/data-type.js CHANGED
@@ -428,4 +428,4 @@ const TYPES = {
428
428
  exports.TYPES = TYPES;
429
429
  const typeByName = TYPES;
430
430
  exports.typeByName = typeByName;
431
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbnVsbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3RpbnlpbnQiLCJfYml0IiwiX3NtYWxsaW50IiwiX2ludCIsIl9zbWFsbGRhdGV0aW1lIiwiX3JlYWwiLCJfbW9uZXkiLCJfZGF0ZXRpbWUiLCJfZmxvYXQiLCJfZGVjaW1hbCIsIl9udW1lcmljIiwiX3NtYWxsbW9uZXkiLCJfYmlnaW50IiwiX2ltYWdlIiwiX3RleHQiLCJfdW5pcXVlaWRlbnRpZmllciIsIl9pbnRuIiwiX250ZXh0IiwiX2JpdG4iLCJfZGVjaW1hbG4iLCJfbnVtZXJpY24iLCJfZmxvYXRuIiwiX21vbmV5biIsIl9kYXRldGltZW4iLCJfdmFyYmluYXJ5IiwiX3ZhcmNoYXIiLCJfYmluYXJ5IiwiX2NoYXIiLCJfbnZhcmNoYXIiLCJfbmNoYXIiLCJfeG1sIiwiX3RpbWUiLCJfZGF0ZSIsIl9kYXRldGltZTIiLCJfZGF0ZXRpbWVvZmZzZXQiLCJfdWR0IiwiX3R2cCIsIl9zcWxWYXJpYW50Iiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJUWVBFIiwiTnVsbCIsImlkIiwiVGlueUludCIsIkJpdCIsIlNtYWxsSW50IiwiSW50IiwiU21hbGxEYXRlVGltZSIsIlJlYWwiLCJNb25leSIsIkRhdGVUaW1lIiwiRmxvYXQiLCJEZWNpbWFsIiwiTnVtZXJpYyIsIlNtYWxsTW9uZXkiLCJCaWdJbnQiLCJJbWFnZSIsIlRleHQiLCJVbmlxdWVJZGVudGlmaWVyIiwiSW50TiIsIk5UZXh0IiwiQml0TiIsIkRlY2ltYWxOIiwiTnVtZXJpY04iLCJGbG9hdE4iLCJNb25leU4iLCJEYXRlVGltZU4iLCJWYXJCaW5hcnkiLCJWYXJDaGFyIiwiQmluYXJ5IiwiQ2hhciIsIk5WYXJDaGFyIiwiTkNoYXIiLCJYbWwiLCJUaW1lIiwiRGF0ZSIsIkRhdGVUaW1lMiIsIkRhdGVUaW1lT2Zmc2V0IiwiVURUIiwiVFZQIiwiVmFyaWFudCIsImV4cG9ydHMiLCJUWVBFUyIsInR5cGVCeU5hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YS10eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOdWxsIGZyb20gJy4vZGF0YS10eXBlcy9udWxsJztcbmltcG9ydCBUaW55SW50IGZyb20gJy4vZGF0YS10eXBlcy90aW55aW50JztcbmltcG9ydCBCaXQgZnJvbSAnLi9kYXRhLXR5cGVzL2JpdCc7XG5pbXBvcnQgU21hbGxJbnQgZnJvbSAnLi9kYXRhLXR5cGVzL3NtYWxsaW50JztcbmltcG9ydCBJbnQgZnJvbSAnLi9kYXRhLXR5cGVzL2ludCc7XG5pbXBvcnQgU21hbGxEYXRlVGltZSBmcm9tICcuL2RhdGEtdHlwZXMvc21hbGxkYXRldGltZSc7XG5pbXBvcnQgUmVhbCBmcm9tICcuL2RhdGEtdHlwZXMvcmVhbCc7XG5pbXBvcnQgTW9uZXkgZnJvbSAnLi9kYXRhLXR5cGVzL21vbmV5JztcbmltcG9ydCBEYXRlVGltZSBmcm9tICcuL2RhdGEtdHlwZXMvZGF0ZXRpbWUnO1xuaW1wb3J0IEZsb2F0IGZyb20gJy4vZGF0YS10eXBlcy9mbG9hdCc7XG5pbXBvcnQgRGVjaW1hbCBmcm9tICcuL2RhdGEtdHlwZXMvZGVjaW1hbCc7XG5pbXBvcnQgTnVtZXJpYyBmcm9tICcuL2RhdGEtdHlwZXMvbnVtZXJpYyc7XG5pbXBvcnQgU21hbGxNb25leSBmcm9tICcuL2RhdGEtdHlwZXMvc21hbGxtb25leSc7XG5pbXBvcnQgQmlnSW50IGZyb20gJy4vZGF0YS10eXBlcy9iaWdpbnQnO1xuaW1wb3J0IEltYWdlIGZyb20gJy4vZGF0YS10eXBlcy9pbWFnZSc7XG5pbXBvcnQgVGV4dCBmcm9tICcuL2RhdGEtdHlwZXMvdGV4dCc7XG5pbXBvcnQgVW5pcXVlSWRlbnRpZmllciBmcm9tICcuL2RhdGEtdHlwZXMvdW5pcXVlaWRlbnRpZmllcic7XG5pbXBvcnQgSW50TiBmcm9tICcuL2RhdGEtdHlwZXMvaW50bic7XG5pbXBvcnQgTlRleHQgZnJvbSAnLi9kYXRhLXR5cGVzL250ZXh0JztcbmltcG9ydCBCaXROIGZyb20gJy4vZGF0YS10eXBlcy9iaXRuJztcbmltcG9ydCBEZWNpbWFsTiBmcm9tICcuL2RhdGEtdHlwZXMvZGVjaW1hbG4nO1xuaW1wb3J0IE51bWVyaWNOIGZyb20gJy4vZGF0YS10eXBlcy9udW1lcmljbic7XG5pbXBvcnQgRmxvYXROIGZyb20gJy4vZGF0YS10eXBlcy9mbG9hdG4nO1xuaW1wb3J0IE1vbmV5TiBmcm9tICcuL2RhdGEtdHlwZXMvbW9uZXluJztcbmltcG9ydCBEYXRlVGltZU4gZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGV0aW1lbic7XG5pbXBvcnQgVmFyQmluYXJ5IGZyb20gJy4vZGF0YS10eXBlcy92YXJiaW5hcnknO1xuaW1wb3J0IFZhckNoYXIgZnJvbSAnLi9kYXRhLXR5cGVzL3ZhcmNoYXInO1xuaW1wb3J0IEJpbmFyeSBmcm9tICcuL2RhdGEtdHlwZXMvYmluYXJ5JztcbmltcG9ydCBDaGFyIGZyb20gJy4vZGF0YS10eXBlcy9jaGFyJztcbmltcG9ydCBOVmFyQ2hhciBmcm9tICcuL2RhdGEtdHlwZXMvbnZhcmNoYXInO1xuaW1wb3J0IE5DaGFyIGZyb20gJy4vZGF0YS10eXBlcy9uY2hhcic7XG5pbXBvcnQgWG1sIGZyb20gJy4vZGF0YS10eXBlcy94bWwnO1xuaW1wb3J0IFRpbWUgZnJvbSAnLi9kYXRhLXR5cGVzL3RpbWUnO1xuaW1wb3J0IERhdGUgZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGUnO1xuaW1wb3J0IERhdGVUaW1lMiBmcm9tICcuL2RhdGEtdHlwZXMvZGF0ZXRpbWUyJztcbmltcG9ydCBEYXRlVGltZU9mZnNldCBmcm9tICcuL2RhdGEtdHlwZXMvZGF0ZXRpbWVvZmZzZXQnO1xuaW1wb3J0IFVEVCBmcm9tICcuL2RhdGEtdHlwZXMvdWR0JztcbmltcG9ydCBUVlAgZnJvbSAnLi9kYXRhLXR5cGVzL3R2cCc7XG5pbXBvcnQgVmFyaWFudCBmcm9tICcuL2RhdGEtdHlwZXMvc3FsLXZhcmlhbnQnO1xuaW1wb3J0IHsgdHlwZSBDcnlwdG9NZXRhZGF0YSB9IGZyb20gJy4vYWx3YXlzLWVuY3J5cHRlZC90eXBlcyc7XG5cbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4vY29ubmVjdGlvbic7XG5pbXBvcnQgeyBDb2xsYXRpb24gfSBmcm9tICcuL2NvbGxhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyIHtcbiAgdHlwZTogRGF0YVR5cGU7XG4gIG5hbWU6IHN0cmluZztcblxuICB2YWx1ZTogdW5rbm93bjtcblxuICBvdXRwdXQ6IGJvb2xlYW47XG4gIGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJlY2lzaW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBzY2FsZT86IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBudWxsYWJsZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgZm9yY2VFbmNyeXB0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgY3J5cHRvTWV0YWRhdGE/OiBDcnlwdG9NZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgZW5jcnlwdGVkVmFsPzogQnVmZmVyIHwgdW5kZWZpbmVkO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyRGF0YTxUID0gYW55PiB7XG4gIGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgc2NhbGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByZWNpc2lvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBjb2xsYXRpb24/OiBDb2xsYXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgdmFsdWU6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVR5cGUge1xuICBpZDogbnVtYmVyO1xuICB0eXBlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcblxuICBkZWNsYXJhdGlvbihwYXJhbWV0ZXI6IFBhcmFtZXRlcik6IHN0cmluZztcbiAgZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbWV0ZXI6IFBhcmFtZXRlckRhdGEsIG9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMpOiBCdWZmZXI7XG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlcjogUGFyYW1ldGVyRGF0YSwgb3B0aW9uczogSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyk6IEJ1ZmZlcjtcbiAgZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlcjogUGFyYW1ldGVyRGF0YSwgb3B0aW9uczogSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyk6IEdlbmVyYXRvcjxCdWZmZXIsIHZvaWQ+O1xuICB2YWxpZGF0ZSh2YWx1ZTogYW55LCBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZCk6IGFueTsgLy8gVE9ETzogUmVmYWN0b3IgJ2FueScgYW5kIHJlcGxhY2Ugd2l0aCBtb3JlIHNwZWNpZmljIHR5cGUuXG5cbiAgaGFzVGFibGVOYW1lPzogYm9vbGVhbjtcblxuICByZXNvbHZlTGVuZ3RoPzogKHBhcmFtZXRlcjogUGFyYW1ldGVyKSA9PiBudW1iZXI7XG4gIHJlc29sdmVQcmVjaXNpb24/OiAocGFyYW1ldGVyOiBQYXJhbWV0ZXIpID0+IG51bWJlcjtcbiAgcmVzb2x2ZVNjYWxlPzogKHBhcmFtZXRlcjogUGFyYW1ldGVyKSA9PiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCBUWVBFID0ge1xuICBbTnVsbC5pZF06IE51bGwsXG4gIFtUaW55SW50LmlkXTogVGlueUludCxcbiAgW0JpdC5pZF06IEJpdCxcbiAgW1NtYWxsSW50LmlkXTogU21hbGxJbnQsXG4gIFtJbnQuaWRdOiBJbnQsXG4gIFtTbWFsbERhdGVUaW1lLmlkXTogU21hbGxEYXRlVGltZSxcbiAgW1JlYWwuaWRdOiBSZWFsLFxuICBbTW9uZXkuaWRdOiBNb25leSxcbiAgW0RhdGVUaW1lLmlkXTogRGF0ZVRpbWUsXG4gIFtGbG9hdC5pZF06IEZsb2F0LFxuICBbRGVjaW1hbC5pZF06IERlY2ltYWwsXG4gIFtOdW1lcmljLmlkXTogTnVtZXJpYyxcbiAgW1NtYWxsTW9uZXkuaWRdOiBTbWFsbE1vbmV5LFxuICBbQmlnSW50LmlkXTogQmlnSW50LFxuICBbSW1hZ2UuaWRdOiBJbWFnZSxcbiAgW1RleHQuaWRdOiBUZXh0LFxuICBbVW5pcXVlSWRlbnRpZmllci5pZF06IFVuaXF1ZUlkZW50aWZpZXIsXG4gIFtJbnROLmlkXTogSW50TixcbiAgW05UZXh0LmlkXTogTlRleHQsXG4gIFtCaXROLmlkXTogQml0TixcbiAgW0RlY2ltYWxOLmlkXTogRGVjaW1hbE4sXG4gIFtOdW1lcmljTi5pZF06IE51bWVyaWNOLFxuICBbRmxvYXROLmlkXTogRmxvYXROLFxuICBbTW9uZXlOLmlkXTogTW9uZXlOLFxuICBbRGF0ZVRpbWVOLmlkXTogRGF0ZVRpbWVOLFxuICBbVmFyQmluYXJ5LmlkXTogVmFyQmluYXJ5LFxuICBbVmFyQ2hhci5pZF06IFZhckNoYXIsXG4gIFtCaW5hcnkuaWRdOiBCaW5hcnksXG4gIFtDaGFyLmlkXTogQ2hhcixcbiAgW05WYXJDaGFyLmlkXTogTlZhckNoYXIsXG4gIFtOQ2hhci5pZF06IE5DaGFyLFxuICBbWG1sLmlkXTogWG1sLFxuICBbVGltZS5pZF06IFRpbWUsXG4gIFtEYXRlLmlkXTogRGF0ZSxcbiAgW0RhdGVUaW1lMi5pZF06IERhdGVUaW1lMixcbiAgW0RhdGVUaW1lT2Zmc2V0LmlkXTogRGF0ZVRpbWVPZmZzZXQsXG4gIFtVRFQuaWRdOiBVRFQsXG4gIFtUVlAuaWRdOiBUVlAsXG4gIFtWYXJpYW50LmlkXTogVmFyaWFudCxcbn07XG5cbi8qKlxuICogPHRhYmxlPlxuICogPHRoZWFkPlxuICogICA8dHI+XG4gKiAgICAgPHRoPlR5cGU8L3RoPlxuICogICAgIDx0aD5Db25zdGFudDwvdGg+XG4gKiAgICAgPHRoPkphdmFTY3JpcHQ8L3RoPlxuICogICAgIDx0aD5SZXN1bHQgc2V0PC90aD5cbiAqICAgICA8dGg+UGFyYW1ldGVyPC90aD5cbiAqICAgPC90cj5cbiAqIDwvdGhlYWQ+XG4gKlxuICogPHRib2R5PlxuICogICA8dHIgY2xhc3M9XCJncm91cC1oZWFkaW5nXCI+XG4gKiAgICAgPHRoIGNvbHNwYW49XCI1XCI+RXhhY3QgbnVtZXJpY3M8L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmJpdDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkJpdF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPmJvb2xlYW48L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT50aW55aW50PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVGlueUludF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnNtYWxsaW50PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuU21hbGxJbnRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5pbnQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5JbnRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5iaWdpbnQ8L2NvZGU+PHN1cD4xPC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5CaWdJbnRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5udW1lcmljPC9jb2RlPjxzdXA+Mjwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuTnVtZXJpY11dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmRlY2ltYWw8L2NvZGU+PHN1cD4yPC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5EZWNpbWFsXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+c21hbGxtb25leTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlNtYWxsTW9uZXldXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5tb25leTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLk1vbmV5XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNVwiPkFwcHJveGltYXRlIG51bWVyaWNzPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5mbG9hdDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkZsb2F0XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+cmVhbDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlJlYWxdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqIDwvdGJvZHk+XG4gKlxuICogPHRib2R5PlxuICogICA8dHIgY2xhc3M9XCJncm91cC1oZWFkaW5nXCI+XG4gKiAgICAgPHRoIGNvbHNwYW49XCI0XCI+RGF0ZSBhbmQgVGltZTwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+c21hbGxkYXRldGltZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlNtYWxsRGF0ZVRpbWVdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZGF0ZXRpbWU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5EYXRlVGltZV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5kYXRldGltZTI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5EYXRlVGltZTJdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZGF0ZXRpbWVvZmZzZXQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5EYXRlVGltZU9mZnNldF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT50aW1lPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVGltZV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5kYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRGF0ZV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkRhdGU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqIDwvdGJvZHk+XG4gKlxuICogPHRib2R5PlxuICogICA8dHIgY2xhc3M9XCJncm91cC1oZWFkaW5nXCI+XG4gKiAgICAgPHRoIGNvbHNwYW49XCI0XCI+Q2hhcmFjdGVyIFN0cmluZ3M8L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmNoYXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5DaGFyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dmFyY2hhcjwvY29kZT48c3VwPjM8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlZhckNoYXJdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT50ZXh0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVGV4dF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjRcIj5Vbmljb2RlIFN0cmluZ3M8L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPm5jaGFyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuTkNoYXJdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5udmFyY2hhcjwvY29kZT48c3VwPjM8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLk5WYXJDaGFyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+bnRleHQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5OVGV4dF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD4tPC90ZD5cbiAqICAgPC90cj5cbiAqIDwvdGJvZHk+XG4gKlxuICogPHRib2R5PlxuICogICA8dHIgY2xhc3M9XCJncm91cC1oZWFkaW5nXCI+XG4gKiAgICAgPHRoIGNvbHNwYW49XCI1XCI+QmluYXJ5IFN0cmluZ3M8c3VwPjQ8L3N1cD48L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmJpbmFyeTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkJpbmFyeV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkJ1ZmZlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnZhcmJpbmFyeTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlZhckJpbmFyeV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkJ1ZmZlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmltYWdlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuSW1hZ2VdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5CdWZmZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqIDwvdGJvZHk+XG4gKlxuICogPHRib2R5PlxuICogICA8dHIgY2xhc3M9XCJncm91cC1oZWFkaW5nXCI+XG4gKiAgICAgPHRoIGNvbHNwYW49XCI1XCI+T3RoZXIgRGF0YSBUeXBlczwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+VFZQPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVFZQXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+T2JqZWN0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPi08L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPlVEVDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlVEVF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPkJ1ZmZlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD4tPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT51bmlxdWVpZGVudGlmaWVyPC9jb2RlPjxzdXA+NDwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVW5pcXVlSWRlbnRpZmllcl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnZhcmlhbnQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5WYXJpYW50XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+YW55PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPi08L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnhtbDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlhtbF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD4tPC90ZD5cbiAqICAgPC90cj5cbiAqIDwvdGJvZHk+XG4gKiA8L3RhYmxlPlxuICpcbiAqIDxvbD5cbiAqICAgPGxpPlxuICogICAgIDxoND5CaWdJbnQ8L2g0PlxuICogICAgIDxwPlxuICogICAgICAgVmFsdWVzIGFyZSByZXR1cm5lZCBhcyBhIHN0cmluZy4gVGhpcyBpcyBiZWNhdXNlIHZhbHVlcyBjYW4gZXhjZWVkIDUzIGJpdHMgb2Ygc2lnbmlmaWNhbnQgZGF0YSwgd2hpY2ggaXMgZ3JlYXRlciB0aGFuIGFcbiAqICAgICAgIEphdmFzY3JpcHQgPGNvZGU+bnVtYmVyPC9jb2RlPiB0eXBlIGNhbiByZXByZXNlbnQgYXMgYW4gaW50ZWdlci5cbiAqICAgICA8L3A+XG4gKiAgIDwvbGk+XG4gKiAgIDxsaT5cbiAqICAgICA8aDQ+TnVtZXJpY2FsLCBEZWNpbWFsPC9oND5cbiAqICAgICA8cD5cbiAqICAgICAgIEZvciBpbnB1dCBwYXJhbWV0ZXJzLCBkZWZhdWx0IHByZWNpc2lvbiBpcyAxOCBhbmQgZGVmYXVsdCBzY2FsZSBpcyAwLiBNYXhpbXVtIHN1cHBvcnRlZCBwcmVjaXNpb24gaXMgMTkuXG4gKiAgICAgPC9wPlxuICogICA8L2xpPlxuICogICA8bGk+XG4gKiAgICAgPGg0PlZhckNoYXIsIE5WYXJDaGFyPC9oND5cbiAqICAgICA8cD5cbiAqICAgICAgIDxjb2RlPnZhcmNoYXIobWF4KTwvY29kZT4gYW5kIDxjb2RlPm52YXJjaGFyKG1heCk8L2NvZGU+IGFyZSBhbHNvIHN1cHBvcnRlZC5cbiAqICAgICA8L3A+XG4gKiAgIDwvbGk+XG4gKiAgIDxsaT5cbiAqICAgICA8aDQ+VW5pcXVlSWRlbnRpZmllcjwvaDQ+XG4gKiAgICAgPHA+XG4gKiAgICAgICBWYWx1ZXMgYXJlIHJldHVybmVkIGFzIGEgMTYgYnl0ZSBoZXhhZGVjaW1hbCBzdHJpbmcuXG4gKiAgICAgPC9wPlxuICogICAgIDxwPlxuICogICAgICAgTm90ZSB0aGF0IHRoZSBvcmRlciBvZiBieXRlcyBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIGNoYXJhY3RlciByZXByZXNlbnRhdGlvbi4gU2VlXG4gKiAgICAgICA8YSBocmVmPVwiaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zMTkwMjE1LmFzcHhcIj5Vc2luZyB1bmlxdWVpZGVudGlmaWVyIERhdGE8L2E+XG4gKiAgICAgICBmb3IgYW4gZXhhbXBsZSBvZiB0aGUgZGlmZmVyZW50IG9yZGVyaW5nIG9mIGJ5dGVzLlxuICogICAgIDwvcD5cbiAqICAgPC9saT5cbiAqIDwvb2w+XG4gKi9cbmV4cG9ydCBjb25zdCBUWVBFUyA9IHtcbiAgVGlueUludCxcbiAgQml0LFxuICBTbWFsbEludCxcbiAgSW50LFxuICBTbWFsbERhdGVUaW1lLFxuICBSZWFsLFxuICBNb25leSxcbiAgRGF0ZVRpbWUsXG4gIEZsb2F0LFxuICBEZWNpbWFsLFxuICBOdW1lcmljLFxuICBTbWFsbE1vbmV5LFxuICBCaWdJbnQsXG4gIEltYWdlLFxuICBUZXh0LFxuICBVbmlxdWVJZGVudGlmaWVyLFxuICBOVGV4dCxcbiAgVmFyQmluYXJ5LFxuICBWYXJDaGFyLFxuICBCaW5hcnksXG4gIENoYXIsXG4gIE5WYXJDaGFyLFxuICBOQ2hhcixcbiAgWG1sLFxuICBUaW1lLFxuICBEYXRlLFxuICBEYXRlVGltZTIsXG4gIERhdGVUaW1lT2Zmc2V0LFxuICBVRFQsXG4gIFRWUCxcbiAgVmFyaWFudFxufTtcblxuZXhwb3J0IGNvbnN0IHR5cGVCeU5hbWUgPSBUWVBFUztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsSUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksSUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sS0FBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsU0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsTUFBQSxHQUFBVixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVUsUUFBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVcsUUFBQSxHQUFBWixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVksV0FBQSxHQUFBYixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWEsT0FBQSxHQUFBZCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWMsTUFBQSxHQUFBZixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWUsS0FBQSxHQUFBaEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFnQixpQkFBQSxHQUFBakIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFpQixLQUFBLEdBQUFsQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWtCLE1BQUEsR0FBQW5CLHNCQUFBLENBQUFD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O0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWhUQUMsT0FBQSxDQUFBekMsSUFBQSxHQUFBQSxJQUFBO0FBaVRPLE1BQU0wQyxLQUFLLEdBQUc7RUFDbkJ2QyxPQUFPLEVBQVBBLGdCQUFPO0VBQ1BDLEdBQUcsRUFBSEEsWUFBRztFQUNIQyxRQUFRLEVBQVJBLGlCQUFRO0VBQ1JDLEdBQUcsRUFBSEEsWUFBRztFQUNIQyxhQUFhLEVBQWJBLHNCQUFhO0VBQ2JDLElBQUksRUFBSkEsYUFBSTtFQUNKQyxLQUFLLEVBQUxBLGNBQUs7RUFDTEMsUUFBUSxFQUFSQSxpQkFBUTtFQUNSQyxLQUFLLEVBQUxBLGNBQUs7RUFDTEMsT0FBTyxFQUFQQSxnQkFBTztFQUNQQyxPQUFPLEVBQVBBLGdCQUFPO0VBQ1BDLFVBQVUsRUFBVkEsbUJBQVU7RUFDVkMsTUFBTSxFQUFOQSxlQUFNO0VBQ05DLEtBQUssRUFBTEEsY0FBSztFQUNMQyxJQUFJLEVBQUpBLGFBQUk7RUFDSkMsZ0JBQWdCLEVBQWhCQSx5QkFBZ0I7RUFDaEJFLEtBQUssRUFBTEEsY0FBSztFQUNMTyxTQUFTLEVBQVRBLGtCQUFTO0VBQ1RDLE9BQU8sRUFBUEEsZ0JBQU87RUFDUEMsTUFBTSxFQUFOQSxlQUFNO0VBQ05DLElBQUksRUFBSkEsYUFBSTtFQUNKQyxRQUFRLEVBQVJBLGlCQUFRO0VBQ1JDLEtBQUssRUFBTEEsY0FBSztFQUNMQyxHQUFHLEVBQUhBLFlBQUc7RUFDSEMsSUFBSSxFQUFKQSxhQUFJO0VBQ0pDLElBQUksRUFBSkEsYUFBSTtFQUNKQyxTQUFTLEVBQVRBLGtCQUFTO0VBQ1RDLGNBQWMsRUFBZEEsdUJBQWM7RUFDZEMsR0FBRyxFQUFIQSxZQUFHO0VBQ0hDLEdBQUcsRUFBSEEsWUFBRztFQUNIQyxPQUFPLEVBQVBBO0FBQ0YsQ0FBQztBQUFDQyxPQUFBLENBQUFDLEtBQUEsR0FBQUEsS0FBQTtBQUVLLE1BQU1DLFVBQVUsR0FBR0QsS0FBSztBQUFDRCxPQUFBLENBQUFFLFVBQUEsR0FBQUEsVUFBQSJ9
431
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbnVsbCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3RpbnlpbnQiLCJfYml0IiwiX3NtYWxsaW50IiwiX2ludCIsIl9zbWFsbGRhdGV0aW1lIiwiX3JlYWwiLCJfbW9uZXkiLCJfZGF0ZXRpbWUiLCJfZmxvYXQiLCJfZGVjaW1hbCIsIl9udW1lcmljIiwiX3NtYWxsbW9uZXkiLCJfYmlnaW50IiwiX2ltYWdlIiwiX3RleHQiLCJfdW5pcXVlaWRlbnRpZmllciIsIl9pbnRuIiwiX250ZXh0IiwiX2JpdG4iLCJfZGVjaW1hbG4iLCJfbnVtZXJpY24iLCJfZmxvYXRuIiwiX21vbmV5biIsIl9kYXRldGltZW4iLCJfdmFyYmluYXJ5IiwiX3ZhcmNoYXIiLCJfYmluYXJ5IiwiX2NoYXIiLCJfbnZhcmNoYXIiLCJfbmNoYXIiLCJfeG1sIiwiX3RpbWUiLCJfZGF0ZSIsIl9kYXRldGltZTIiLCJfZGF0ZXRpbWVvZmZzZXQiLCJfdWR0IiwiX3R2cCIsIl9zcWxWYXJpYW50Iiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJUWVBFIiwiTnVsbCIsImlkIiwiVGlueUludCIsIkJpdCIsIlNtYWxsSW50IiwiSW50IiwiU21hbGxEYXRlVGltZSIsIlJlYWwiLCJNb25leSIsIkRhdGVUaW1lIiwiRmxvYXQiLCJEZWNpbWFsIiwiTnVtZXJpYyIsIlNtYWxsTW9uZXkiLCJCaWdJbnQiLCJJbWFnZSIsIlRleHQiLCJVbmlxdWVJZGVudGlmaWVyIiwiSW50TiIsIk5UZXh0IiwiQml0TiIsIkRlY2ltYWxOIiwiTnVtZXJpY04iLCJGbG9hdE4iLCJNb25leU4iLCJEYXRlVGltZU4iLCJWYXJCaW5hcnkiLCJWYXJDaGFyIiwiQmluYXJ5IiwiQ2hhciIsIk5WYXJDaGFyIiwiTkNoYXIiLCJYbWwiLCJUaW1lIiwiRGF0ZSIsIkRhdGVUaW1lMiIsIkRhdGVUaW1lT2Zmc2V0IiwiVURUIiwiVFZQIiwiVmFyaWFudCIsImV4cG9ydHMiLCJUWVBFUyIsInR5cGVCeU5hbWUiXSwic291cmNlcyI6WyIuLi9zcmMvZGF0YS10eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBOdWxsIGZyb20gJy4vZGF0YS10eXBlcy9udWxsJztcbmltcG9ydCBUaW55SW50IGZyb20gJy4vZGF0YS10eXBlcy90aW55aW50JztcbmltcG9ydCBCaXQgZnJvbSAnLi9kYXRhLXR5cGVzL2JpdCc7XG5pbXBvcnQgU21hbGxJbnQgZnJvbSAnLi9kYXRhLXR5cGVzL3NtYWxsaW50JztcbmltcG9ydCBJbnQgZnJvbSAnLi9kYXRhLXR5cGVzL2ludCc7XG5pbXBvcnQgU21hbGxEYXRlVGltZSBmcm9tICcuL2RhdGEtdHlwZXMvc21hbGxkYXRldGltZSc7XG5pbXBvcnQgUmVhbCBmcm9tICcuL2RhdGEtdHlwZXMvcmVhbCc7XG5pbXBvcnQgTW9uZXkgZnJvbSAnLi9kYXRhLXR5cGVzL21vbmV5JztcbmltcG9ydCBEYXRlVGltZSBmcm9tICcuL2RhdGEtdHlwZXMvZGF0ZXRpbWUnO1xuaW1wb3J0IEZsb2F0IGZyb20gJy4vZGF0YS10eXBlcy9mbG9hdCc7XG5pbXBvcnQgRGVjaW1hbCBmcm9tICcuL2RhdGEtdHlwZXMvZGVjaW1hbCc7XG5pbXBvcnQgTnVtZXJpYyBmcm9tICcuL2RhdGEtdHlwZXMvbnVtZXJpYyc7XG5pbXBvcnQgU21hbGxNb25leSBmcm9tICcuL2RhdGEtdHlwZXMvc21hbGxtb25leSc7XG5pbXBvcnQgQmlnSW50IGZyb20gJy4vZGF0YS10eXBlcy9iaWdpbnQnO1xuaW1wb3J0IEltYWdlIGZyb20gJy4vZGF0YS10eXBlcy9pbWFnZSc7XG5pbXBvcnQgVGV4dCBmcm9tICcuL2RhdGEtdHlwZXMvdGV4dCc7XG5pbXBvcnQgVW5pcXVlSWRlbnRpZmllciBmcm9tICcuL2RhdGEtdHlwZXMvdW5pcXVlaWRlbnRpZmllcic7XG5pbXBvcnQgSW50TiBmcm9tICcuL2RhdGEtdHlwZXMvaW50bic7XG5pbXBvcnQgTlRleHQgZnJvbSAnLi9kYXRhLXR5cGVzL250ZXh0JztcbmltcG9ydCBCaXROIGZyb20gJy4vZGF0YS10eXBlcy9iaXRuJztcbmltcG9ydCBEZWNpbWFsTiBmcm9tICcuL2RhdGEtdHlwZXMvZGVjaW1hbG4nO1xuaW1wb3J0IE51bWVyaWNOIGZyb20gJy4vZGF0YS10eXBlcy9udW1lcmljbic7XG5pbXBvcnQgRmxvYXROIGZyb20gJy4vZGF0YS10eXBlcy9mbG9hdG4nO1xuaW1wb3J0IE1vbmV5TiBmcm9tICcuL2RhdGEtdHlwZXMvbW9uZXluJztcbmltcG9ydCBEYXRlVGltZU4gZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGV0aW1lbic7XG5pbXBvcnQgVmFyQmluYXJ5IGZyb20gJy4vZGF0YS10eXBlcy92YXJiaW5hcnknO1xuaW1wb3J0IFZhckNoYXIgZnJvbSAnLi9kYXRhLXR5cGVzL3ZhcmNoYXInO1xuaW1wb3J0IEJpbmFyeSBmcm9tICcuL2RhdGEtdHlwZXMvYmluYXJ5JztcbmltcG9ydCBDaGFyIGZyb20gJy4vZGF0YS10eXBlcy9jaGFyJztcbmltcG9ydCBOVmFyQ2hhciBmcm9tICcuL2RhdGEtdHlwZXMvbnZhcmNoYXInO1xuaW1wb3J0IE5DaGFyIGZyb20gJy4vZGF0YS10eXBlcy9uY2hhcic7XG5pbXBvcnQgWG1sIGZyb20gJy4vZGF0YS10eXBlcy94bWwnO1xuaW1wb3J0IFRpbWUgZnJvbSAnLi9kYXRhLXR5cGVzL3RpbWUnO1xuaW1wb3J0IERhdGUgZnJvbSAnLi9kYXRhLXR5cGVzL2RhdGUnO1xuaW1wb3J0IERhdGVUaW1lMiBmcm9tICcuL2RhdGEtdHlwZXMvZGF0ZXRpbWUyJztcbmltcG9ydCBEYXRlVGltZU9mZnNldCBmcm9tICcuL2RhdGEtdHlwZXMvZGF0ZXRpbWVvZmZzZXQnO1xuaW1wb3J0IFVEVCBmcm9tICcuL2RhdGEtdHlwZXMvdWR0JztcbmltcG9ydCBUVlAgZnJvbSAnLi9kYXRhLXR5cGVzL3R2cCc7XG5pbXBvcnQgVmFyaWFudCBmcm9tICcuL2RhdGEtdHlwZXMvc3FsLXZhcmlhbnQnO1xuaW1wb3J0IHsgdHlwZSBDcnlwdG9NZXRhZGF0YSB9IGZyb20gJy4vYWx3YXlzLWVuY3J5cHRlZC90eXBlcyc7XG5cbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4vY29ubmVjdGlvbic7XG5pbXBvcnQgeyBDb2xsYXRpb24gfSBmcm9tICcuL2NvbGxhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyIHtcbiAgdHlwZTogRGF0YVR5cGU7XG4gIG5hbWU6IHN0cmluZztcblxuICB2YWx1ZTogdW5rbm93bjtcblxuICBvdXRwdXQ6IGJvb2xlYW47XG4gIGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgcHJlY2lzaW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBzY2FsZT86IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBudWxsYWJsZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgZm9yY2VFbmNyeXB0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgY3J5cHRvTWV0YWRhdGE/OiBDcnlwdG9NZXRhZGF0YSB8IHVuZGVmaW5lZDtcbiAgZW5jcnlwdGVkVmFsPzogQnVmZmVyIHwgdW5kZWZpbmVkO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyRGF0YTxUID0gYW55PiB7XG4gIGxlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgc2NhbGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIHByZWNpc2lvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBjb2xsYXRpb24/OiBDb2xsYXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgdmFsdWU6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVR5cGUge1xuICBpZDogbnVtYmVyO1xuICB0eXBlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcblxuICBkZWNsYXJhdGlvbihwYXJhbWV0ZXI6IFBhcmFtZXRlcik6IHN0cmluZztcbiAgZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbWV0ZXI6IFBhcmFtZXRlckRhdGEsIG9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMpOiBCdWZmZXI7XG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlcjogUGFyYW1ldGVyRGF0YSwgb3B0aW9uczogSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyk6IEJ1ZmZlcjtcbiAgZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlcjogUGFyYW1ldGVyRGF0YSwgb3B0aW9uczogSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyk6IEdlbmVyYXRvcjxCdWZmZXIsIHZvaWQ+O1xuICB2YWxpZGF0ZSh2YWx1ZTogYW55LCBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZCwgb3B0aW9ucz86IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMpOiBhbnk7IC8vIFRPRE86IFJlZmFjdG9yICdhbnknIGFuZCByZXBsYWNlIHdpdGggbW9yZSBzcGVjaWZpYyB0eXBlLlxuXG4gIGhhc1RhYmxlTmFtZT86IGJvb2xlYW47XG5cbiAgcmVzb2x2ZUxlbmd0aD86IChwYXJhbWV0ZXI6IFBhcmFtZXRlcikgPT4gbnVtYmVyO1xuICByZXNvbHZlUHJlY2lzaW9uPzogKHBhcmFtZXRlcjogUGFyYW1ldGVyKSA9PiBudW1iZXI7XG4gIHJlc29sdmVTY2FsZT86IChwYXJhbWV0ZXI6IFBhcmFtZXRlcikgPT4gbnVtYmVyO1xufVxuXG5leHBvcnQgY29uc3QgVFlQRSA9IHtcbiAgW051bGwuaWRdOiBOdWxsLFxuICBbVGlueUludC5pZF06IFRpbnlJbnQsXG4gIFtCaXQuaWRdOiBCaXQsXG4gIFtTbWFsbEludC5pZF06IFNtYWxsSW50LFxuICBbSW50LmlkXTogSW50LFxuICBbU21hbGxEYXRlVGltZS5pZF06IFNtYWxsRGF0ZVRpbWUsXG4gIFtSZWFsLmlkXTogUmVhbCxcbiAgW01vbmV5LmlkXTogTW9uZXksXG4gIFtEYXRlVGltZS5pZF06IERhdGVUaW1lLFxuICBbRmxvYXQuaWRdOiBGbG9hdCxcbiAgW0RlY2ltYWwuaWRdOiBEZWNpbWFsLFxuICBbTnVtZXJpYy5pZF06IE51bWVyaWMsXG4gIFtTbWFsbE1vbmV5LmlkXTogU21hbGxNb25leSxcbiAgW0JpZ0ludC5pZF06IEJpZ0ludCxcbiAgW0ltYWdlLmlkXTogSW1hZ2UsXG4gIFtUZXh0LmlkXTogVGV4dCxcbiAgW1VuaXF1ZUlkZW50aWZpZXIuaWRdOiBVbmlxdWVJZGVudGlmaWVyLFxuICBbSW50Ti5pZF06IEludE4sXG4gIFtOVGV4dC5pZF06IE5UZXh0LFxuICBbQml0Ti5pZF06IEJpdE4sXG4gIFtEZWNpbWFsTi5pZF06IERlY2ltYWxOLFxuICBbTnVtZXJpY04uaWRdOiBOdW1lcmljTixcbiAgW0Zsb2F0Ti5pZF06IEZsb2F0TixcbiAgW01vbmV5Ti5pZF06IE1vbmV5TixcbiAgW0RhdGVUaW1lTi5pZF06IERhdGVUaW1lTixcbiAgW1ZhckJpbmFyeS5pZF06IFZhckJpbmFyeSxcbiAgW1ZhckNoYXIuaWRdOiBWYXJDaGFyLFxuICBbQmluYXJ5LmlkXTogQmluYXJ5LFxuICBbQ2hhci5pZF06IENoYXIsXG4gIFtOVmFyQ2hhci5pZF06IE5WYXJDaGFyLFxuICBbTkNoYXIuaWRdOiBOQ2hhcixcbiAgW1htbC5pZF06IFhtbCxcbiAgW1RpbWUuaWRdOiBUaW1lLFxuICBbRGF0ZS5pZF06IERhdGUsXG4gIFtEYXRlVGltZTIuaWRdOiBEYXRlVGltZTIsXG4gIFtEYXRlVGltZU9mZnNldC5pZF06IERhdGVUaW1lT2Zmc2V0LFxuICBbVURULmlkXTogVURULFxuICBbVFZQLmlkXTogVFZQLFxuICBbVmFyaWFudC5pZF06IFZhcmlhbnQsXG59O1xuXG4vKipcbiAqIDx0YWJsZT5cbiAqIDx0aGVhZD5cbiAqICAgPHRyPlxuICogICAgIDx0aD5UeXBlPC90aD5cbiAqICAgICA8dGg+Q29uc3RhbnQ8L3RoPlxuICogICAgIDx0aD5KYXZhU2NyaXB0PC90aD5cbiAqICAgICA8dGg+UmVzdWx0IHNldDwvdGg+XG4gKiAgICAgPHRoPlBhcmFtZXRlcjwvdGg+XG4gKiAgIDwvdHI+XG4gKiA8L3RoZWFkPlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNVwiPkV4YWN0IG51bWVyaWNzPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5iaXQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5CaXRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5ib29sZWFuPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dGlueWludDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlRpbnlJbnRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5zbWFsbGludDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlNtYWxsSW50XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+aW50PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuSW50XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+YmlnaW50PC9jb2RlPjxzdXA+MTwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuQmlnSW50XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+bnVtZXJpYzwvY29kZT48c3VwPjI8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLk51bWVyaWNdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5udW1iZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5kZWNpbWFsPC9jb2RlPjxzdXA+Mjwvc3VwPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRGVjaW1hbF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnNtYWxsbW9uZXk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5TbWFsbE1vbmV5XV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+bW9uZXk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5Nb25leV1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogPC90Ym9keT5cbiAqXG4gKiA8dGJvZHk+XG4gKiAgIDx0ciBjbGFzcz1cImdyb3VwLWhlYWRpbmdcIj5cbiAqICAgICA8dGggY29sc3Bhbj1cIjVcIj5BcHByb3hpbWF0ZSBudW1lcmljczwvdGg+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZmxvYXQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5GbG9hdF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPm51bWJlcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnJlYWw8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5SZWFsXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+bnVtYmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNFwiPkRhdGUgYW5kIFRpbWU8L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnNtYWxsZGF0ZXRpbWU8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5TbWFsbERhdGVUaW1lXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmRhdGV0aW1lPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRGF0ZVRpbWVdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZGF0ZXRpbWUyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRGF0ZVRpbWUyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+RGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPmRhdGV0aW1lb2Zmc2V0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuRGF0ZVRpbWVPZmZzZXRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dGltZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlRpbWVdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+ZGF0ZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkRhdGVdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5EYXRlPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNFwiPkNoYXJhY3RlciBTdHJpbmdzPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5jaGFyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuQ2hhcl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPnZhcmNoYXI8L2NvZGU+PHN1cD4zPC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5WYXJDaGFyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dGV4dDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlRleHRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqIDwvdGJvZHk+XG4gKlxuICogPHRib2R5PlxuICogICA8dHIgY2xhc3M9XCJncm91cC1oZWFkaW5nXCI+XG4gKiAgICAgPHRoIGNvbHNwYW49XCI0XCI+VW5pY29kZSBTdHJpbmdzPC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5uY2hhcjwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLk5DaGFyXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+c3RyaW5nPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+bnZhcmNoYXI8L2NvZGU+PHN1cD4zPC9zdXA+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5OVmFyQ2hhcl1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPnN0cmluZzwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPm50ZXh0PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuTlRleHRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNVwiPkJpbmFyeSBTdHJpbmdzPHN1cD40PC9zdXA+PC90aD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5iaW5hcnk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5CaW5hcnldXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5CdWZmZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT52YXJiaW5hcnk8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5WYXJCaW5hcnldXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5CdWZmZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5pbWFnZTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLkltYWdlXV08L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+QnVmZmVyPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgICAgPHRkPuKckzwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICpcbiAqIDx0Ym9keT5cbiAqICAgPHRyIGNsYXNzPVwiZ3JvdXAtaGVhZGluZ1wiPlxuICogICAgIDx0aCBjb2xzcGFuPVwiNVwiPk90aGVyIERhdGEgVHlwZXM8L3RoPlxuICogICA8L3RyPlxuICogICA8dHI+XG4gKiAgICAgPHRkPjxjb2RlPlRWUDwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlRWUF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPk9iamVjdDwvY29kZT48L3RkPlxuICogICAgIDx0ZD4tPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT5VRFQ8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5VRFRdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5CdWZmZXI8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgIDwvdHI+XG4gKiAgIDx0cj5cbiAqICAgICA8dGQ+PGNvZGU+dW5pcXVlaWRlbnRpZmllcjwvY29kZT48c3VwPjQ8L3N1cD48L3RkPlxuICogICAgIDx0ZD48Y29kZT5bW1RZUEVTLlVuaXF1ZUlkZW50aWZpZXJdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT52YXJpYW50PC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPltbVFlQRVMuVmFyaWFudF1dPC9jb2RlPjwvdGQ+XG4gKiAgICAgPHRkPjxjb2RlPmFueTwvY29kZT48L3RkPlxuICogICAgIDx0ZD7inJM8L3RkPlxuICogICAgIDx0ZD4tPC90ZD5cbiAqICAgPC90cj5cbiAqICAgPHRyPlxuICogICAgIDx0ZD48Y29kZT54bWw8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+PGNvZGU+W1tUWVBFUy5YbWxdXTwvY29kZT48L3RkPlxuICogICAgIDx0ZD48Y29kZT5zdHJpbmc8L2NvZGU+PC90ZD5cbiAqICAgICA8dGQ+4pyTPC90ZD5cbiAqICAgICA8dGQ+LTwvdGQ+XG4gKiAgIDwvdHI+XG4gKiA8L3Rib2R5PlxuICogPC90YWJsZT5cbiAqXG4gKiA8b2w+XG4gKiAgIDxsaT5cbiAqICAgICA8aDQ+QmlnSW50PC9oND5cbiAqICAgICA8cD5cbiAqICAgICAgIFZhbHVlcyBhcmUgcmV0dXJuZWQgYXMgYSBzdHJpbmcuIFRoaXMgaXMgYmVjYXVzZSB2YWx1ZXMgY2FuIGV4Y2VlZCA1MyBiaXRzIG9mIHNpZ25pZmljYW50IGRhdGEsIHdoaWNoIGlzIGdyZWF0ZXIgdGhhbiBhXG4gKiAgICAgICBKYXZhc2NyaXB0IDxjb2RlPm51bWJlcjwvY29kZT4gdHlwZSBjYW4gcmVwcmVzZW50IGFzIGFuIGludGVnZXIuXG4gKiAgICAgPC9wPlxuICogICA8L2xpPlxuICogICA8bGk+XG4gKiAgICAgPGg0Pk51bWVyaWNhbCwgRGVjaW1hbDwvaDQ+XG4gKiAgICAgPHA+XG4gKiAgICAgICBGb3IgaW5wdXQgcGFyYW1ldGVycywgZGVmYXVsdCBwcmVjaXNpb24gaXMgMTggYW5kIGRlZmF1bHQgc2NhbGUgaXMgMC4gTWF4aW11bSBzdXBwb3J0ZWQgcHJlY2lzaW9uIGlzIDE5LlxuICogICAgIDwvcD5cbiAqICAgPC9saT5cbiAqICAgPGxpPlxuICogICAgIDxoND5WYXJDaGFyLCBOVmFyQ2hhcjwvaDQ+XG4gKiAgICAgPHA+XG4gKiAgICAgICA8Y29kZT52YXJjaGFyKG1heCk8L2NvZGU+IGFuZCA8Y29kZT5udmFyY2hhcihtYXgpPC9jb2RlPiBhcmUgYWxzbyBzdXBwb3J0ZWQuXG4gKiAgICAgPC9wPlxuICogICA8L2xpPlxuICogICA8bGk+XG4gKiAgICAgPGg0PlVuaXF1ZUlkZW50aWZpZXI8L2g0PlxuICogICAgIDxwPlxuICogICAgICAgVmFsdWVzIGFyZSByZXR1cm5lZCBhcyBhIDE2IGJ5dGUgaGV4YWRlY2ltYWwgc3RyaW5nLlxuICogICAgIDwvcD5cbiAqICAgICA8cD5cbiAqICAgICAgIE5vdGUgdGhhdCB0aGUgb3JkZXIgb2YgYnl0ZXMgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBjaGFyYWN0ZXIgcmVwcmVzZW50YXRpb24uIFNlZVxuICogICAgICAgPGEgaHJlZj1cImh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9tczE5MDIxNS5hc3B4XCI+VXNpbmcgdW5pcXVlaWRlbnRpZmllciBEYXRhPC9hPlxuICogICAgICAgZm9yIGFuIGV4YW1wbGUgb2YgdGhlIGRpZmZlcmVudCBvcmRlcmluZyBvZiBieXRlcy5cbiAqICAgICA8L3A+XG4gKiAgIDwvbGk+XG4gKiA8L29sPlxuICovXG5leHBvcnQgY29uc3QgVFlQRVMgPSB7XG4gIFRpbnlJbnQsXG4gIEJpdCxcbiAgU21hbGxJbnQsXG4gIEludCxcbiAgU21hbGxEYXRlVGltZSxcbiAgUmVhbCxcbiAgTW9uZXksXG4gIERhdGVUaW1lLFxuICBGbG9hdCxcbiAgRGVjaW1hbCxcbiAgTnVtZXJpYyxcbiAgU21hbGxNb25leSxcbiAgQmlnSW50LFxuICBJbWFnZSxcbiAgVGV4dCxcbiAgVW5pcXVlSWRlbnRpZmllcixcbiAgTlRleHQsXG4gIFZhckJpbmFyeSxcbiAgVmFyQ2hhcixcbiAgQmluYXJ5LFxuICBDaGFyLFxuICBOVmFyQ2hhcixcbiAgTkNoYXIsXG4gIFhtbCxcbiAgVGltZSxcbiAgRGF0ZSxcbiAgRGF0ZVRpbWUyLFxuICBEYXRlVGltZU9mZnNldCxcbiAgVURULFxuICBUVlAsXG4gIFZhcmlhbnRcbn07XG5cbmV4cG9ydCBjb25zdCB0eXBlQnlOYW1lID0gVFlQRVM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLElBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLElBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLGNBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLE1BQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFNBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLE1BQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFFBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFFBQUEsR0FBQVosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFZLFdBQUEsR0FBQWIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFhLE9BQUEsR0FBQWQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFjLE1BQUEsR0FBQWYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFlLEtBQUEsR0FBQWhCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZ0IsaUJBQUEsR0FBQWpCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBaUIsS0FBQSxHQUFBbEIsc0JBQUEsQ0FBQUMsT0FB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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFoVEFDLE9BQUEsQ0FBQXpDLElBQUEsR0FBQUEsSUFBQTtBQWlUTyxNQUFNMEMsS0FBSyxHQUFHO0VBQ25CdkMsT0FBTyxFQUFQQSxnQkFBTztFQUNQQyxHQUFHLEVBQUhBLFlBQUc7RUFDSEMsUUFBUSxFQUFSQSxpQkFBUTtFQUNSQyxHQUFHLEVBQUhBLFlBQUc7RUFDSEMsYUFBYSxFQUFiQSxzQkFBYTtFQUNiQyxJQUFJLEVBQUpBLGFBQUk7RUFDSkMsS0FBSyxFQUFMQSxjQUFLO0VBQ0xDLFFBQVEsRUFBUkEsaUJBQVE7RUFDUkMsS0FBSyxFQUFMQSxjQUFLO0VBQ0xDLE9BQU8sRUFBUEEsZ0JBQU87RUFDUEMsT0FBTyxFQUFQQSxnQkFBTztFQUNQQyxVQUFVLEVBQVZBLG1CQUFVO0VBQ1ZDLE1BQU0sRUFBTkEsZUFBTTtFQUNOQyxLQUFLLEVBQUxBLGNBQUs7RUFDTEMsSUFBSSxFQUFKQSxhQUFJO0VBQ0pDLGdCQUFnQixFQUFoQkEseUJBQWdCO0VBQ2hCRSxLQUFLLEVBQUxBLGNBQUs7RUFDTE8sU0FBUyxFQUFUQSxrQkFBUztFQUNUQyxPQUFPLEVBQVBBLGdCQUFPO0VBQ1BDLE1BQU0sRUFBTkEsZUFBTTtFQUNOQyxJQUFJLEVBQUpBLGFBQUk7RUFDSkMsUUFBUSxFQUFSQSxpQkFBUTtFQUNSQyxLQUFLLEVBQUxBLGNBQUs7RUFDTEMsR0FBRyxFQUFIQSxZQUFHO0VBQ0hDLElBQUksRUFBSkEsYUFBSTtFQUNKQyxJQUFJLEVBQUpBLGFBQUk7RUFDSkMsU0FBUyxFQUFUQSxrQkFBUztFQUNUQyxjQUFjLEVBQWRBLHVCQUFjO0VBQ2RDLEdBQUcsRUFBSEEsWUFBRztFQUNIQyxHQUFHLEVBQUhBLFlBQUc7RUFDSEMsT0FBTyxFQUFQQTtBQUNGLENBQUM7QUFBQ0MsT0FBQSxDQUFBQyxLQUFBLEdBQUFBLEtBQUE7QUFFSyxNQUFNQyxVQUFVLEdBQUdELEtBQUs7QUFBQ0QsT0FBQSxDQUFBRSxVQUFBLEdBQUFBLFVBQUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"data-type.js","names":["_null","_interopRequireDefault","require","_tinyint","_bit","_smallint","_int","_smalldatetime","_real","_money","_datetime","_float","_decimal","_numeric","_smallmoney","_bigint","_image","_text","_uniqueidentifier","_intn","_ntext","_bitn","_decimaln","_numericn","_floatn","_moneyn","_datetimen","_varbinary","_varchar","_binary","_char","_nvarchar","_nchar","_xml","_time","_date","_datetime2","_datetimeoffset","_udt","_tvp","_sqlVariant","obj","__esModule","default","TYPE","Null","id","TinyInt","Bit","SmallInt","Int","SmallDateTime","Real","Money","DateTime","Float","Decimal","Numeric","SmallMoney","BigInt","Image","Text","UniqueIdentifier","IntN","NText","BitN","DecimalN","NumericN","FloatN","MoneyN","DateTimeN","VarBinary","VarChar","Binary","Char","NVarChar","NChar","Xml","Time","Date","DateTime2","DateTimeOffset","UDT","TVP","Variant","exports","TYPES","typeByName"],"sources":["../src/data-type.ts"],"sourcesContent":["import Null from './data-types/null';\nimport TinyInt from './data-types/tinyint';\nimport Bit from './data-types/bit';\nimport SmallInt from './data-types/smallint';\nimport Int from './data-types/int';\nimport SmallDateTime from './data-types/smalldatetime';\nimport Real from './data-types/real';\nimport Money from './data-types/money';\nimport DateTime from './data-types/datetime';\nimport Float from './data-types/float';\nimport Decimal from './data-types/decimal';\nimport Numeric from './data-types/numeric';\nimport SmallMoney from './data-types/smallmoney';\nimport BigInt from './data-types/bigint';\nimport Image from './data-types/image';\nimport Text from './data-types/text';\nimport UniqueIdentifier from './data-types/uniqueidentifier';\nimport IntN from './data-types/intn';\nimport NText from './data-types/ntext';\nimport BitN from './data-types/bitn';\nimport DecimalN from './data-types/decimaln';\nimport NumericN from './data-types/numericn';\nimport FloatN from './data-types/floatn';\nimport MoneyN from './data-types/moneyn';\nimport DateTimeN from './data-types/datetimen';\nimport VarBinary from './data-types/varbinary';\nimport VarChar from './data-types/varchar';\nimport Binary from './data-types/binary';\nimport Char from './data-types/char';\nimport NVarChar from './data-types/nvarchar';\nimport NChar from './data-types/nchar';\nimport Xml from './data-types/xml';\nimport Time from './data-types/time';\nimport Date from './data-types/date';\nimport DateTime2 from './data-types/datetime2';\nimport DateTimeOffset from './data-types/datetimeoffset';\nimport UDT from './data-types/udt';\nimport TVP from './data-types/tvp';\nimport Variant from './data-types/sql-variant';\nimport { type CryptoMetadata } from './always-encrypted/types';\n\nimport { type InternalConnectionOptions } from './connection';\nimport { Collation } from './collation';\n\nexport interface Parameter {\n type: DataType;\n name: string;\n\n value: unknown;\n\n output: boolean;\n length?: number | undefined;\n precision?: number | undefined;\n scale?: number | undefined;\n\n nullable?: boolean | undefined;\n\n forceEncrypt?: boolean | undefined;\n cryptoMetadata?: CryptoMetadata | undefined;\n encryptedVal?: Buffer | undefined;\n}\n\n\nexport interface ParameterData<T = any> {\n length?: number | undefined;\n scale?: number | undefined;\n precision?: number | undefined;\n\n collation?: Collation | undefined;\n\n value: T;\n}\n\nexport interface DataType {\n id: number;\n type: string;\n name: string;\n\n declaration(parameter: Parameter): string;\n generateTypeInfo(parameter: ParameterData, options: InternalConnectionOptions): Buffer;\n generateParameterLength(parameter: ParameterData, options: InternalConnectionOptions): Buffer;\n generateParameterData(parameter: ParameterData, options: InternalConnectionOptions): Generator<Buffer, void>;\n validate(value: any, collation: Collation | undefined): any; // TODO: Refactor 'any' and replace with more specific type.\n\n hasTableName?: boolean;\n\n resolveLength?: (parameter: Parameter) => number;\n resolvePrecision?: (parameter: Parameter) => number;\n resolveScale?: (parameter: Parameter) => number;\n}\n\nexport const TYPE = {\n [Null.id]: Null,\n [TinyInt.id]: TinyInt,\n [Bit.id]: Bit,\n [SmallInt.id]: SmallInt,\n [Int.id]: Int,\n [SmallDateTime.id]: SmallDateTime,\n [Real.id]: Real,\n [Money.id]: Money,\n [DateTime.id]: DateTime,\n [Float.id]: Float,\n [Decimal.id]: Decimal,\n [Numeric.id]: Numeric,\n [SmallMoney.id]: SmallMoney,\n [BigInt.id]: BigInt,\n [Image.id]: Image,\n [Text.id]: Text,\n [UniqueIdentifier.id]: UniqueIdentifier,\n [IntN.id]: IntN,\n [NText.id]: NText,\n [BitN.id]: BitN,\n [DecimalN.id]: DecimalN,\n [NumericN.id]: NumericN,\n [FloatN.id]: FloatN,\n [MoneyN.id]: MoneyN,\n [DateTimeN.id]: DateTimeN,\n [VarBinary.id]: VarBinary,\n [VarChar.id]: VarChar,\n [Binary.id]: Binary,\n [Char.id]: Char,\n [NVarChar.id]: NVarChar,\n [NChar.id]: NChar,\n [Xml.id]: Xml,\n [Time.id]: Time,\n [Date.id]: Date,\n [DateTime2.id]: DateTime2,\n [DateTimeOffset.id]: DateTimeOffset,\n [UDT.id]: UDT,\n [TVP.id]: TVP,\n [Variant.id]: Variant,\n};\n\n/**\n * <table>\n * <thead>\n * <tr>\n * <th>Type</th>\n * <th>Constant</th>\n * <th>JavaScript</th>\n * <th>Result set</th>\n * <th>Parameter</th>\n * </tr>\n * </thead>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Exact numerics</th>\n * </tr>\n * <tr>\n * <td><code>bit</code></td>\n * <td><code>[[TYPES.Bit]]</code></td>\n * <td><code>boolean</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>tinyint</code></td>\n * <td><code>[[TYPES.TinyInt]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>smallint</code></td>\n * <td><code>[[TYPES.SmallInt]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>int</code></td>\n * <td><code>[[TYPES.Int]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>bigint</code><sup>1</sup></td>\n * <td><code>[[TYPES.BigInt]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>numeric</code><sup>2</sup></td>\n * <td><code>[[TYPES.Numeric]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>decimal</code><sup>2</sup></td>\n * <td><code>[[TYPES.Decimal]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>smallmoney</code></td>\n * <td><code>[[TYPES.SmallMoney]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>money</code></td>\n * <td><code>[[TYPES.Money]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Approximate numerics</th>\n * </tr>\n * <tr>\n * <td><code>float</code></td>\n * <td><code>[[TYPES.Float]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>real</code></td>\n * <td><code>[[TYPES.Real]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"4\">Date and Time</th>\n * </tr>\n * <tr>\n * <td><code>smalldatetime</code></td>\n * <td><code>[[TYPES.SmallDateTime]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetime</code></td>\n * <td><code>[[TYPES.DateTime]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetime2</code></td>\n * <td><code>[[TYPES.DateTime2]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetimeoffset</code></td>\n * <td><code>[[TYPES.DateTimeOffset]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>time</code></td>\n * <td><code>[[TYPES.Time]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>date</code></td>\n * <td><code>[[TYPES.Date]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"4\">Character Strings</th>\n * </tr>\n * <tr>\n * <td><code>char</code></td>\n * <td><code>[[TYPES.Char]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>varchar</code><sup>3</sup></td>\n * <td><code>[[TYPES.VarChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>text</code></td>\n * <td><code>[[TYPES.Text]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"4\">Unicode Strings</th>\n * </tr>\n * <tr>\n * <td><code>nchar</code></td>\n * <td><code>[[TYPES.NChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>nvarchar</code><sup>3</sup></td>\n * <td><code>[[TYPES.NVarChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>ntext</code></td>\n * <td><code>[[TYPES.NText]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Binary Strings<sup>4</sup></th>\n * </tr>\n * <tr>\n * <td><code>binary</code></td>\n * <td><code>[[TYPES.Binary]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>varbinary</code></td>\n * <td><code>[[TYPES.VarBinary]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>image</code></td>\n * <td><code>[[TYPES.Image]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Other Data Types</th>\n * </tr>\n * <tr>\n * <td><code>TVP</code></td>\n * <td><code>[[TYPES.TVP]]</code></td>\n * <td><code>Object</code></td>\n * <td>-</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>UDT</code></td>\n * <td><code>[[TYPES.UDT]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * <tr>\n * <td><code>uniqueidentifier</code><sup>4</sup></td>\n * <td><code>[[TYPES.UniqueIdentifier]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>variant</code></td>\n * <td><code>[[TYPES.Variant]]</code></td>\n * <td><code>any</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * <tr>\n * <td><code>xml</code></td>\n * <td><code>[[TYPES.Xml]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * </tbody>\n * </table>\n *\n * <ol>\n * <li>\n * <h4>BigInt</h4>\n * <p>\n * Values are returned as a string. This is because values can exceed 53 bits of significant data, which is greater than a\n * Javascript <code>number</code> type can represent as an integer.\n * </p>\n * </li>\n * <li>\n * <h4>Numerical, Decimal</h4>\n * <p>\n * For input parameters, default precision is 18 and default scale is 0. Maximum supported precision is 19.\n * </p>\n * </li>\n * <li>\n * <h4>VarChar, NVarChar</h4>\n * <p>\n * <code>varchar(max)</code> and <code>nvarchar(max)</code> are also supported.\n * </p>\n * </li>\n * <li>\n * <h4>UniqueIdentifier</h4>\n * <p>\n * Values are returned as a 16 byte hexadecimal string.\n * </p>\n * <p>\n * Note that the order of bytes is not the same as the character representation. See\n * <a href=\"http://msdn.microsoft.com/en-us/library/ms190215.aspx\">Using uniqueidentifier Data</a>\n * for an example of the different ordering of bytes.\n * </p>\n * </li>\n * </ol>\n */\nexport const TYPES = {\n TinyInt,\n Bit,\n SmallInt,\n Int,\n SmallDateTime,\n Real,\n Money,\n DateTime,\n Float,\n Decimal,\n Numeric,\n SmallMoney,\n BigInt,\n Image,\n Text,\n UniqueIdentifier,\n NText,\n VarBinary,\n VarChar,\n Binary,\n Char,\n NVarChar,\n NChar,\n Xml,\n Time,\n Date,\n DateTime2,\n DateTimeOffset,\n UDT,\n TVP,\n Variant\n};\n\nexport const typeByName = TYPES;\n"],"mappings":"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iB,aAAI;EACf,CAACC,cAAK,CAAClB,EAAE,GAAGkB,cAAK;EACjB,CAACC,aAAI,CAACnB,EAAE,GAAGmB,aAAI;EACf,CAACC,iBAAQ,CAACpB,EAAE,GAAGoB,iBAAQ;EACvB,CAACC,iBAAQ,CAACrB,EAAE,GAAGqB,iBAAQ;EACvB,CAACC,eAAM,CAACtB,EAAE,GAAGsB,eAAM;EACnB,CAACC,eAAM,CAACvB,EAAE,GAAGuB,eAAM;EACnB,CAACC,kBAAS,CAACxB,EAAE,GAAGwB,kBAAS;EACzB,CAACC,kBAAS,CAACzB,EAAE,GAAGyB,kBAAS;EACzB,CAACC,gBAAO,CAAC1B,EAAE,GAAG0B,gBAAO;EACrB,CAACC,eAAM,CAAC3B,EAAE,GAAG2B,eAAM;EACnB,CAACC,aAAI,CAAC5B,EAAE,GAAG4B,aAAI;EACf,CAACC,iBAAQ,CAAC7B,EAAE,GAAG6B,iBAAQ;EACvB,CAACC,cAAK,CAAC9B,EAAE,GAAG8B,cAAK;EACjB,CAACC,YAAG,CAAC/B,EAAE,GAAG+B,YAAG;EACb,CAACC,aAAI,CAAChC,EAAE,GAAGgC,aAAI;EACf,CAACC,aAAI,CAACjC,EAAE,GAAGiC,aAAI;EACf,CAACC,kBAAS,CAAClC,EAAE,GAAGkC,kBAAS;EACzB,CAACC,uBAAc,CAACnC,EAAE,GAAGmC,uBAAc;EACnC,CAACC,YAAG,CAACpC,EAAE,GAAGoC,YAAG;EACb,CAACC,YAAG,CAACrC,EAAE,GAAGqC,YAAG;EACb,CAACC,mBAAO,CAACtC,EAAE,GAAGsC;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhTAC,OAAA,CAAAzC,IAAA,GAAAA,IAAA;AAiTO,MAAM0C,KAAK,GAAG;EACnBvC,OAAO,EAAPA,gBAAO;EACPC,GAAG,EAAHA,YAAG;EACHC,QAAQ,EAARA,iBAAQ;EACRC,GAAG,EAAHA,YAAG;EACHC,aAAa,EAAbA,sBAAa;EACbC,IAAI,EAAJA,aAAI;EACJC,KAAK,EAALA,cAAK;EACLC,QAAQ,EAARA,iBAAQ;EACRC,KAAK,EAALA,cAAK;EACLC,OAAO,EAAPA,gBAAO;EACPC,OAAO,EAAPA,gBAAO;EACPC,UAAU,EAAVA,mBAAU;EACVC,MAAM,EAANA,eAAM;EACNC,KAAK,EAALA,cAAK;EACLC,IAAI,EAAJA,aAAI;EACJC,gBAAgB,EAAhBA,yBAAgB;EAChBE,KAAK,EAALA,cAAK;EACLO,SAAS,EAATA,kBAAS;EACTC,OAAO,EAAPA,gBAAO;EACPC,MAAM,EAANA,eAAM;EACNC,IAAI,EAAJA,aAAI;EACJC,QAAQ,EAARA,iBAAQ;EACRC,KAAK,EAALA,cAAK;EACLC,GAAG,EAAHA,YAAG;EACHC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,SAAS,EAATA,kBAAS;EACTC,cAAc,EAAdA,uBAAc;EACdC,GAAG,EAAHA,YAAG;EACHC,GAAG,EAAHA,YAAG;EACHC,OAAO,EAAPA;AACF,CAAC;AAACC,OAAA,CAAAC,KAAA,GAAAA,KAAA;AAEK,MAAMC,UAAU,GAAGD,KAAK;AAACD,OAAA,CAAAE,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"file":"data-type.js","names":["_null","_interopRequireDefault","require","_tinyint","_bit","_smallint","_int","_smalldatetime","_real","_money","_datetime","_float","_decimal","_numeric","_smallmoney","_bigint","_image","_text","_uniqueidentifier","_intn","_ntext","_bitn","_decimaln","_numericn","_floatn","_moneyn","_datetimen","_varbinary","_varchar","_binary","_char","_nvarchar","_nchar","_xml","_time","_date","_datetime2","_datetimeoffset","_udt","_tvp","_sqlVariant","obj","__esModule","default","TYPE","Null","id","TinyInt","Bit","SmallInt","Int","SmallDateTime","Real","Money","DateTime","Float","Decimal","Numeric","SmallMoney","BigInt","Image","Text","UniqueIdentifier","IntN","NText","BitN","DecimalN","NumericN","FloatN","MoneyN","DateTimeN","VarBinary","VarChar","Binary","Char","NVarChar","NChar","Xml","Time","Date","DateTime2","DateTimeOffset","UDT","TVP","Variant","exports","TYPES","typeByName"],"sources":["../src/data-type.ts"],"sourcesContent":["import Null from './data-types/null';\nimport TinyInt from './data-types/tinyint';\nimport Bit from './data-types/bit';\nimport SmallInt from './data-types/smallint';\nimport Int from './data-types/int';\nimport SmallDateTime from './data-types/smalldatetime';\nimport Real from './data-types/real';\nimport Money from './data-types/money';\nimport DateTime from './data-types/datetime';\nimport Float from './data-types/float';\nimport Decimal from './data-types/decimal';\nimport Numeric from './data-types/numeric';\nimport SmallMoney from './data-types/smallmoney';\nimport BigInt from './data-types/bigint';\nimport Image from './data-types/image';\nimport Text from './data-types/text';\nimport UniqueIdentifier from './data-types/uniqueidentifier';\nimport IntN from './data-types/intn';\nimport NText from './data-types/ntext';\nimport BitN from './data-types/bitn';\nimport DecimalN from './data-types/decimaln';\nimport NumericN from './data-types/numericn';\nimport FloatN from './data-types/floatn';\nimport MoneyN from './data-types/moneyn';\nimport DateTimeN from './data-types/datetimen';\nimport VarBinary from './data-types/varbinary';\nimport VarChar from './data-types/varchar';\nimport Binary from './data-types/binary';\nimport Char from './data-types/char';\nimport NVarChar from './data-types/nvarchar';\nimport NChar from './data-types/nchar';\nimport Xml from './data-types/xml';\nimport Time from './data-types/time';\nimport Date from './data-types/date';\nimport DateTime2 from './data-types/datetime2';\nimport DateTimeOffset from './data-types/datetimeoffset';\nimport UDT from './data-types/udt';\nimport TVP from './data-types/tvp';\nimport Variant from './data-types/sql-variant';\nimport { type CryptoMetadata } from './always-encrypted/types';\n\nimport { type InternalConnectionOptions } from './connection';\nimport { Collation } from './collation';\n\nexport interface Parameter {\n type: DataType;\n name: string;\n\n value: unknown;\n\n output: boolean;\n length?: number | undefined;\n precision?: number | undefined;\n scale?: number | undefined;\n\n nullable?: boolean | undefined;\n\n forceEncrypt?: boolean | undefined;\n cryptoMetadata?: CryptoMetadata | undefined;\n encryptedVal?: Buffer | undefined;\n}\n\n\nexport interface ParameterData<T = any> {\n length?: number | undefined;\n scale?: number | undefined;\n precision?: number | undefined;\n\n collation?: Collation | undefined;\n\n value: T;\n}\n\nexport interface DataType {\n id: number;\n type: string;\n name: string;\n\n declaration(parameter: Parameter): string;\n generateTypeInfo(parameter: ParameterData, options: InternalConnectionOptions): Buffer;\n generateParameterLength(parameter: ParameterData, options: InternalConnectionOptions): Buffer;\n generateParameterData(parameter: ParameterData, options: InternalConnectionOptions): Generator<Buffer, void>;\n validate(value: any, collation: Collation | undefined, options?: InternalConnectionOptions): any; // TODO: Refactor 'any' and replace with more specific type.\n\n hasTableName?: boolean;\n\n resolveLength?: (parameter: Parameter) => number;\n resolvePrecision?: (parameter: Parameter) => number;\n resolveScale?: (parameter: Parameter) => number;\n}\n\nexport const TYPE = {\n [Null.id]: Null,\n [TinyInt.id]: TinyInt,\n [Bit.id]: Bit,\n [SmallInt.id]: SmallInt,\n [Int.id]: Int,\n [SmallDateTime.id]: SmallDateTime,\n [Real.id]: Real,\n [Money.id]: Money,\n [DateTime.id]: DateTime,\n [Float.id]: Float,\n [Decimal.id]: Decimal,\n [Numeric.id]: Numeric,\n [SmallMoney.id]: SmallMoney,\n [BigInt.id]: BigInt,\n [Image.id]: Image,\n [Text.id]: Text,\n [UniqueIdentifier.id]: UniqueIdentifier,\n [IntN.id]: IntN,\n [NText.id]: NText,\n [BitN.id]: BitN,\n [DecimalN.id]: DecimalN,\n [NumericN.id]: NumericN,\n [FloatN.id]: FloatN,\n [MoneyN.id]: MoneyN,\n [DateTimeN.id]: DateTimeN,\n [VarBinary.id]: VarBinary,\n [VarChar.id]: VarChar,\n [Binary.id]: Binary,\n [Char.id]: Char,\n [NVarChar.id]: NVarChar,\n [NChar.id]: NChar,\n [Xml.id]: Xml,\n [Time.id]: Time,\n [Date.id]: Date,\n [DateTime2.id]: DateTime2,\n [DateTimeOffset.id]: DateTimeOffset,\n [UDT.id]: UDT,\n [TVP.id]: TVP,\n [Variant.id]: Variant,\n};\n\n/**\n * <table>\n * <thead>\n * <tr>\n * <th>Type</th>\n * <th>Constant</th>\n * <th>JavaScript</th>\n * <th>Result set</th>\n * <th>Parameter</th>\n * </tr>\n * </thead>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Exact numerics</th>\n * </tr>\n * <tr>\n * <td><code>bit</code></td>\n * <td><code>[[TYPES.Bit]]</code></td>\n * <td><code>boolean</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>tinyint</code></td>\n * <td><code>[[TYPES.TinyInt]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>smallint</code></td>\n * <td><code>[[TYPES.SmallInt]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>int</code></td>\n * <td><code>[[TYPES.Int]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>bigint</code><sup>1</sup></td>\n * <td><code>[[TYPES.BigInt]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>numeric</code><sup>2</sup></td>\n * <td><code>[[TYPES.Numeric]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>decimal</code><sup>2</sup></td>\n * <td><code>[[TYPES.Decimal]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>smallmoney</code></td>\n * <td><code>[[TYPES.SmallMoney]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>money</code></td>\n * <td><code>[[TYPES.Money]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Approximate numerics</th>\n * </tr>\n * <tr>\n * <td><code>float</code></td>\n * <td><code>[[TYPES.Float]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>real</code></td>\n * <td><code>[[TYPES.Real]]</code></td>\n * <td><code>number</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"4\">Date and Time</th>\n * </tr>\n * <tr>\n * <td><code>smalldatetime</code></td>\n * <td><code>[[TYPES.SmallDateTime]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetime</code></td>\n * <td><code>[[TYPES.DateTime]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetime2</code></td>\n * <td><code>[[TYPES.DateTime2]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>datetimeoffset</code></td>\n * <td><code>[[TYPES.DateTimeOffset]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>time</code></td>\n * <td><code>[[TYPES.Time]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>date</code></td>\n * <td><code>[[TYPES.Date]]</code></td>\n * <td><code>Date</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"4\">Character Strings</th>\n * </tr>\n * <tr>\n * <td><code>char</code></td>\n * <td><code>[[TYPES.Char]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>varchar</code><sup>3</sup></td>\n * <td><code>[[TYPES.VarChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>text</code></td>\n * <td><code>[[TYPES.Text]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"4\">Unicode Strings</th>\n * </tr>\n * <tr>\n * <td><code>nchar</code></td>\n * <td><code>[[TYPES.NChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>nvarchar</code><sup>3</sup></td>\n * <td><code>[[TYPES.NVarChar]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>ntext</code></td>\n * <td><code>[[TYPES.NText]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Binary Strings<sup>4</sup></th>\n * </tr>\n * <tr>\n * <td><code>binary</code></td>\n * <td><code>[[TYPES.Binary]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>varbinary</code></td>\n * <td><code>[[TYPES.VarBinary]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>image</code></td>\n * <td><code>[[TYPES.Image]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * </tbody>\n *\n * <tbody>\n * <tr class=\"group-heading\">\n * <th colspan=\"5\">Other Data Types</th>\n * </tr>\n * <tr>\n * <td><code>TVP</code></td>\n * <td><code>[[TYPES.TVP]]</code></td>\n * <td><code>Object</code></td>\n * <td>-</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>UDT</code></td>\n * <td><code>[[TYPES.UDT]]</code></td>\n * <td><code>Buffer</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * <tr>\n * <td><code>uniqueidentifier</code><sup>4</sup></td>\n * <td><code>[[TYPES.UniqueIdentifier]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>✓</td>\n * </tr>\n * <tr>\n * <td><code>variant</code></td>\n * <td><code>[[TYPES.Variant]]</code></td>\n * <td><code>any</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * <tr>\n * <td><code>xml</code></td>\n * <td><code>[[TYPES.Xml]]</code></td>\n * <td><code>string</code></td>\n * <td>✓</td>\n * <td>-</td>\n * </tr>\n * </tbody>\n * </table>\n *\n * <ol>\n * <li>\n * <h4>BigInt</h4>\n * <p>\n * Values are returned as a string. This is because values can exceed 53 bits of significant data, which is greater than a\n * Javascript <code>number</code> type can represent as an integer.\n * </p>\n * </li>\n * <li>\n * <h4>Numerical, Decimal</h4>\n * <p>\n * For input parameters, default precision is 18 and default scale is 0. Maximum supported precision is 19.\n * </p>\n * </li>\n * <li>\n * <h4>VarChar, NVarChar</h4>\n * <p>\n * <code>varchar(max)</code> and <code>nvarchar(max)</code> are also supported.\n * </p>\n * </li>\n * <li>\n * <h4>UniqueIdentifier</h4>\n * <p>\n * Values are returned as a 16 byte hexadecimal string.\n * </p>\n * <p>\n * Note that the order of bytes is not the same as the character representation. See\n * <a href=\"http://msdn.microsoft.com/en-us/library/ms190215.aspx\">Using uniqueidentifier Data</a>\n * for an example of the different ordering of bytes.\n * </p>\n * </li>\n * </ol>\n */\nexport const TYPES = {\n TinyInt,\n Bit,\n SmallInt,\n Int,\n SmallDateTime,\n Real,\n Money,\n DateTime,\n Float,\n Decimal,\n Numeric,\n SmallMoney,\n BigInt,\n Image,\n Text,\n UniqueIdentifier,\n NText,\n VarBinary,\n VarChar,\n Binary,\n Char,\n NVarChar,\n NChar,\n Xml,\n Time,\n Date,\n DateTime2,\n DateTimeOffset,\n UDT,\n TVP,\n Variant\n};\n\nexport const typeByName = TYPES;\n"],"mappings":"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iB,aAAI;EACf,CAACC,cAAK,CAAClB,EAAE,GAAGkB,cAAK;EACjB,CAACC,aAAI,CAACnB,EAAE,GAAGmB,aAAI;EACf,CAACC,iBAAQ,CAACpB,EAAE,GAAGoB,iBAAQ;EACvB,CAACC,iBAAQ,CAACrB,EAAE,GAAGqB,iBAAQ;EACvB,CAACC,eAAM,CAACtB,EAAE,GAAGsB,eAAM;EACnB,CAACC,eAAM,CAACvB,EAAE,GAAGuB,eAAM;EACnB,CAACC,kBAAS,CAACxB,EAAE,GAAGwB,kBAAS;EACzB,CAACC,kBAAS,CAACzB,EAAE,GAAGyB,kBAAS;EACzB,CAACC,gBAAO,CAAC1B,EAAE,GAAG0B,gBAAO;EACrB,CAACC,eAAM,CAAC3B,EAAE,GAAG2B,eAAM;EACnB,CAACC,aAAI,CAAC5B,EAAE,GAAG4B,aAAI;EACf,CAACC,iBAAQ,CAAC7B,EAAE,GAAG6B,iBAAQ;EACvB,CAACC,cAAK,CAAC9B,EAAE,GAAG8B,cAAK;EACjB,CAACC,YAAG,CAAC/B,EAAE,GAAG+B,YAAG;EACb,CAACC,aAAI,CAAChC,EAAE,GAAGgC,aAAI;EACf,CAACC,aAAI,CAACjC,EAAE,GAAGiC,aAAI;EACf,CAACC,kBAAS,CAAClC,EAAE,GAAGkC,kBAAS;EACzB,CAACC,uBAAc,CAACnC,EAAE,GAAGmC,uBAAc;EACnC,CAACC,YAAG,CAACpC,EAAE,GAAGoC,YAAG;EACb,CAACC,YAAG,CAACrC,EAAE,GAAGqC,YAAG;EACb,CAACC,mBAAO,CAACtC,EAAE,GAAGsC;AAChB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhTAC,OAAA,CAAAzC,IAAA,GAAAA,IAAA;AAiTO,MAAM0C,KAAK,GAAG;EACnBvC,OAAO,EAAPA,gBAAO;EACPC,GAAG,EAAHA,YAAG;EACHC,QAAQ,EAARA,iBAAQ;EACRC,GAAG,EAAHA,YAAG;EACHC,aAAa,EAAbA,sBAAa;EACbC,IAAI,EAAJA,aAAI;EACJC,KAAK,EAALA,cAAK;EACLC,QAAQ,EAARA,iBAAQ;EACRC,KAAK,EAALA,cAAK;EACLC,OAAO,EAAPA,gBAAO;EACPC,OAAO,EAAPA,gBAAO;EACPC,UAAU,EAAVA,mBAAU;EACVC,MAAM,EAANA,eAAM;EACNC,KAAK,EAALA,cAAK;EACLC,IAAI,EAAJA,aAAI;EACJC,gBAAgB,EAAhBA,yBAAgB;EAChBE,KAAK,EAALA,cAAK;EACLO,SAAS,EAATA,kBAAS;EACTC,OAAO,EAAPA,gBAAO;EACPC,MAAM,EAANA,eAAM;EACNC,IAAI,EAAJA,aAAI;EACJC,QAAQ,EAARA,iBAAQ;EACRC,KAAK,EAALA,cAAK;EACLC,GAAG,EAAHA,YAAG;EACHC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,SAAS,EAATA,kBAAS;EACTC,cAAc,EAAdA,uBAAc;EACdC,GAAG,EAAHA,YAAG;EACHC,GAAG,EAAHA,YAAG;EACHC,OAAO,EAAPA;AACF,CAAC;AAACC,OAAA,CAAAC,KAAA,GAAAA,KAAA;AAEK,MAAMC,UAAU,GAAGD,KAAK;AAACD,OAAA,CAAAE,UAAA,GAAAA,UAAA"}
@@ -10,6 +10,8 @@ const globalDate = global.Date;
10
10
  const EPOCH_DATE = _core.LocalDate.ofYearDay(1, 1);
11
11
  const NULL_LENGTH = Buffer.from([0x00]);
12
12
  const DATA_LENGTH = Buffer.from([0x03]);
13
+ const MIN_DATE = new globalDate('January 1, 0001');
14
+ const MAX_DATE = new globalDate('December 31, 9999');
13
15
  const Date = {
14
16
  id: 0x28,
15
17
  type: 'DATEN',
@@ -44,13 +46,23 @@ const Date = {
44
46
  yield buffer;
45
47
  },
46
48
  // TODO: value is technically of type 'unknown'.
47
- validate: function (value) {
49
+ validate: function (value, collation, options) {
48
50
  if (value == null) {
49
51
  return null;
50
52
  }
51
53
  if (!(value instanceof globalDate)) {
52
54
  value = new globalDate(globalDate.parse(value));
53
55
  }
56
+ value = value;
57
+
58
+ // TODO: check date range: January 1, 0001, through December 31, 9999
59
+ // : time range: 00:00:00 through 23:59:59.997
60
+ if (options && options.useUTC) {
61
+ value = new globalDate(value.toUTCString());
62
+ }
63
+ if (value < MIN_DATE || value > MAX_DATE) {
64
+ throw new TypeError('Out of range.');
65
+ }
54
66
  if (isNaN(value)) {
55
67
  throw new TypeError('Invalid date.');
56
68
  }
@@ -60,4 +72,4 @@ const Date = {
60
72
  var _default = Date;
61
73
  exports.default = _default;
62
74
  module.exports = Date;
63
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJnbG9iYWxEYXRlIiwiZ2xvYmFsIiwiRGF0ZSIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJEQVRBX0xFTkdUSCIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsImdlbmVyYXRlVHlwZUluZm8iLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsInBhcmFtZXRlciIsIm9wdGlvbnMiLCJ2YWx1ZSIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsImRhdGUiLCJ1c2VVVEMiLCJvZiIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJkYXlzIiwidW50aWwiLCJDaHJvbm9Vbml0IiwiREFZUyIsImJ1ZmZlciIsImFsbG9jIiwid3JpdGVVSW50TEUiLCJ2YWxpZGF0ZSIsInBhcnNlIiwiaXNOYU4iLCJUeXBlRXJyb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcbmltcG9ydCB7IENocm9ub1VuaXQsIExvY2FsRGF0ZSB9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuXG4vLyBnbG9iYWxEYXRlIGlzIHRvIGJlIHVzZWQgZm9yIEphdmFTY3JpcHQncyBnbG9iYWwgJ0RhdGUnIG9iamVjdCB0byBhdm9pZCBuYW1lIGNsYXNoaW5nIHdpdGggdGhlICdEYXRlJyBjb25zdGFudCBiZWxvd1xuY29uc3QgZ2xvYmFsRGF0ZSA9IGdsb2JhbC5EYXRlO1xuY29uc3QgRVBPQ0hfREFURSA9IExvY2FsRGF0ZS5vZlllYXJEYXkoMSwgMSk7XG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5jb25zdCBEQVRBX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAzXSk7XG5cbmNvbnN0IERhdGU6IERhdGFUeXBlID0ge1xuICBpZDogMHgyOCxcbiAgdHlwZTogJ0RBVEVOJyxcbiAgbmFtZTogJ0RhdGUnLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gJ2RhdGUnO1xuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm86IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShbdGhpcy5pZF0pO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgIH1cblxuICAgIHJldHVybiBEQVRBX0xFTkdUSDtcbiAgfSxcblxuICAqIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBhbnk7IC8vIFRlbXBvcmFyeSBzb2x1dGlvbi4gUmVtb3ZlICdhbnknIGxhdGVyLlxuXG4gICAgbGV0IGRhdGU7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIHZhbHVlLmdldFVUQ01vbnRoKCkgKyAxLCB2YWx1ZS5nZXRVVENEYXRlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCkgKyAxLCB2YWx1ZS5nZXREYXRlKCkpO1xuICAgIH1cblxuICAgIGNvbnN0IGRheXMgPSBFUE9DSF9EQVRFLnVudGlsKGRhdGUsIENocm9ub1VuaXQuREFZUyk7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDMpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnRMRShkYXlzLCAwLCAzKTtcbiAgICB5aWVsZCBidWZmZXI7XG4gIH0sXG5cbiAgLy8gVE9ETzogdmFsdWUgaXMgdGVjaG5pY2FsbHkgb2YgdHlwZSAndW5rbm93bicuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IG51bGwgfCBEYXRlIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBnbG9iYWxEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgZ2xvYmFsRGF0ZShnbG9iYWxEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBkYXRlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGF0ZTtcbm1vZHVsZS5leHBvcnRzID0gRGF0ZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBRUE7QUFDQSxNQUFNQyxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSTtBQUM5QixNQUFNQyxVQUFVLEdBQUdDLGVBQVMsQ0FBQ0MsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDNUMsTUFBTUMsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLE1BQU1DLFdBQVcsR0FBR0YsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUV2QyxNQUFNTixJQUFjLEdBQUc7RUFDckJRLEVBQUUsRUFBRSxJQUFJO0VBQ1JD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
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJnbG9iYWxEYXRlIiwiZ2xvYmFsIiwiRGF0ZSIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJEQVRBX0xFTkdUSCIsIk1JTl9EQVRFIiwiTUFYX0RBVEUiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJnZW5lcmF0ZVR5cGVJbmZvIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJwYXJhbWV0ZXIiLCJvcHRpb25zIiwidmFsdWUiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJkYXRlIiwidXNlVVRDIiwib2YiLCJnZXRVVENGdWxsWWVhciIsImdldFVUQ01vbnRoIiwiZ2V0VVRDRGF0ZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZGF5cyIsInVudGlsIiwiQ2hyb25vVW5pdCIsIkRBWVMiLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlVUludExFIiwidmFsaWRhdGUiLCJjb2xsYXRpb24iLCJwYXJzZSIsInRvVVRDU3RyaW5nIiwiVHlwZUVycm9yIiwiaXNOYU4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcbmltcG9ydCB7IENocm9ub1VuaXQsIExvY2FsRGF0ZSB9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuXG4vLyBnbG9iYWxEYXRlIGlzIHRvIGJlIHVzZWQgZm9yIEphdmFTY3JpcHQncyBnbG9iYWwgJ0RhdGUnIG9iamVjdCB0byBhdm9pZCBuYW1lIGNsYXNoaW5nIHdpdGggdGhlICdEYXRlJyBjb25zdGFudCBiZWxvd1xuY29uc3QgZ2xvYmFsRGF0ZSA9IGdsb2JhbC5EYXRlO1xuY29uc3QgRVBPQ0hfREFURSA9IExvY2FsRGF0ZS5vZlllYXJEYXkoMSwgMSk7XG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5jb25zdCBEQVRBX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAzXSk7XG5cbmNvbnN0IE1JTl9EQVRFID0gbmV3IGdsb2JhbERhdGUoJ0phbnVhcnkgMSwgMDAwMScpO1xuY29uc3QgTUFYX0RBVEUgPSBuZXcgZ2xvYmFsRGF0ZSgnRGVjZW1iZXIgMzEsIDk5OTknKTtcblxuY29uc3QgRGF0ZTogRGF0YVR5cGUgPSB7XG4gIGlkOiAweDI4LFxuICB0eXBlOiAnREFURU4nLFxuICBuYW1lOiAnRGF0ZScsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnZGF0ZSc7XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbzogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFt0aGlzLmlkXSk7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgcmV0dXJuIERBVEFfTEVOR1RIO1xuICB9LFxuXG4gICogZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIGFueTsgLy8gVGVtcG9yYXJ5IHNvbHV0aW9uLiBSZW1vdmUgJ2FueScgbGF0ZXIuXG5cbiAgICBsZXQgZGF0ZTogTG9jYWxEYXRlO1xuICAgIGlmIChvcHRpb25zLnVzZVVUQykge1xuICAgICAgZGF0ZSA9IExvY2FsRGF0ZS5vZih2YWx1ZS5nZXRVVENGdWxsWWVhcigpLCB2YWx1ZS5nZXRVVENNb250aCgpICsgMSwgdmFsdWUuZ2V0VVRDRGF0ZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0ZSA9IExvY2FsRGF0ZS5vZih2YWx1ZS5nZXRGdWxsWWVhcigpLCB2YWx1ZS5nZXRNb250aCgpICsgMSwgdmFsdWUuZ2V0RGF0ZSgpKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXlzID0gRVBPQ0hfREFURS51bnRpbChkYXRlLCBDaHJvbm9Vbml0LkRBWVMpO1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygzKTtcbiAgICBidWZmZXIud3JpdGVVSW50TEUoZGF5cywgMCwgMyk7XG4gICAgeWllbGQgYnVmZmVyO1xuICB9LFxuXG4gIC8vIFRPRE86IHZhbHVlIGlzIHRlY2huaWNhbGx5IG9mIHR5cGUgJ3Vua25vd24nLlxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbiwgb3B0aW9ucyk6IG51bGwgfCBEYXRlIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBnbG9iYWxEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgZ2xvYmFsRGF0ZShnbG9iYWxEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSBhcyBEYXRlO1xuXG4gICAgLy8gVE9ETzogY2hlY2sgZGF0ZSByYW5nZTogSmFudWFyeSAxLCAwMDAxLCB0aHJvdWdoIERlY2VtYmVyIDMxLCA5OTk5XG4gICAgLy8gICAgOiB0aW1lIHJhbmdlOiAwMDowMDowMCB0aHJvdWdoIDIzOjU5OjU5Ljk5N1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBnbG9iYWxEYXRlKHZhbHVlLnRvVVRDU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA8IE1JTl9EQVRFIHx8IHZhbHVlID4gTUFYX0RBVEUpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ091dCBvZiByYW5nZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxLQUFBLEdBQUFDLE9BQUE7QUFFQTtBQUNBLE1BQU1DLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxJQUFJO0FBQzlCLE1BQU1DLFVBQVUsR0FBR0MsZUFBUyxDQUFDQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM1QyxNQUFNQyxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsTUFBTUMsV0FBVyxHQUFHRixNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXZDLE1BQU1FLFFBQVEsR0FBRyxJQUFJVixVQUFVLENBQUMsaUJBQWlCLENBQUM7QUFDbEQsTUFBTVcsUUFBUSxHQUFHLElBQUlYLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQztBQUVwRCxNQUFNRSxJQUFjLEdBQUc7RUFDckJVLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxPQUFPO0VBQ2JDLElBQUksRUFBRSxNQUFNO0VBRVpDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxNQUFNO0VBQ2YsQ0FBQztFQUVEQyxnQkFBZ0IsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDM0IsT0FBT1QsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUNJLEVBQUUsQ0FBQyxDQUFDO0VBQy9CLENBQUM7RUFFREssdUJBQXVCQSxDQUFDQyxTQUFTLEVBQUVDLE9BQU8sRUFBRTtJQUMx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
@@ -1 +1 @@
1
- {"version":3,"file":"date.js","names":["_core","require","globalDate","global","Date","EPOCH_DATE","LocalDate","ofYearDay","NULL_LENGTH","Buffer","from","DATA_LENGTH","id","type","name","declaration","generateTypeInfo","generateParameterLength","parameter","options","value","generateParameterData","date","useUTC","of","getUTCFullYear","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","days","until","ChronoUnit","DAYS","buffer","alloc","writeUIntLE","validate","parse","isNaN","TypeError","_default","exports","default","module"],"sources":["../../src/data-types/date.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport { ChronoUnit, LocalDate } from '@js-joda/core';\n\n// globalDate is to be used for JavaScript's global 'Date' object to avoid name clashing with the 'Date' constant below\nconst globalDate = global.Date;\nconst EPOCH_DATE = LocalDate.ofYearDay(1, 1);\nconst NULL_LENGTH = Buffer.from([0x00]);\nconst DATA_LENGTH = Buffer.from([0x03]);\n\nconst Date: DataType = {\n id: 0x28,\n type: 'DATEN',\n name: 'Date',\n\n declaration: function() {\n return 'date';\n },\n\n generateTypeInfo: function() {\n return Buffer.from([this.id]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value as any; // Temporary solution. Remove 'any' later.\n\n let date;\n if (options.useUTC) {\n date = LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());\n } else {\n date = LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate());\n }\n\n const days = EPOCH_DATE.until(date, ChronoUnit.DAYS);\n const buffer = Buffer.alloc(3);\n buffer.writeUIntLE(days, 0, 3);\n yield buffer;\n },\n\n // TODO: value is technically of type 'unknown'.\n validate: function(value): null | Date {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof globalDate)) {\n value = new globalDate(globalDate.parse(value));\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default Date;\nmodule.exports = Date;\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA;AACA,MAAMC,UAAU,GAAGC,MAAM,CAACC,IAAI;AAC9B,MAAMC,UAAU,GAAGC,eAAS,CAACC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5C,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,MAAMC,WAAW,GAAGF,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvC,MAAMN,IAAc,GAAG;EACrBQ,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,OAAO;EACbC,IAAI,EAAE,MAAM;EAEZC,WAAW,EAAE,SAAAA,CAAA,EAAW;IACtB,OAAO,MAAM;EACf,CAAC;EAEDC,gBAAgB,EAAE,SAAAA,CAAA,EAAW;IAC3B,OAAOP,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAACE,EAAE,CAAC,CAAC;EAC/B,CAAC;EAEDK,uBAAuBA,CAACC,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B,OAAOZ,WAAW;IACpB;IAEA,OAAOG,WAAW;EACpB,CAAC;EAED,CAAEU,qBAAqBA,CAACH,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B;IACF;IAEA,MAAMA,KAAK,GAAGF,SAAS,CAACE,KAAY,CAAC,CAAC;;IAEtC,IAAIE,IAAI;IACR,IAAIH,OAAO,CAACI,MAAM,EAAE;MAClBD,IAAI,GAAGhB,eAAS,CAACkB,EAAE,CAACJ,KAAK,CAACK,cAAc,CAAC,CAAC,EAAEL,KAAK,CAACM,WAAW,CAAC,CAAC,GAAG,CAAC,EAAEN,KAAK,CAACO,UAAU,CAAC,CAAC,CAAC;IAC1F,CAAC,MAAM;MACLL,IAAI,GAAGhB,eAAS,CAACkB,EAAE,CAACJ,KAAK,CAACQ,WAAW,CAAC,CAAC,EAAER,KAAK,CAACS,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAET,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC;IACjF;IAEA,MAAMC,IAAI,GAAG1B,UAAU,CAAC2B,KAAK,CAACV,IAAI,EAAEW,gBAAU,CAACC,IAAI,CAAC;IACpD,MAAMC,MAAM,GAAG1B,MAAM,CAAC2B,KAAK,CAAC,CAAC,CAAC;IAC9BD,MAAM,CAACE,WAAW,CAACN,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAMI,MAAM;EACd,CAAC;EAED;EACAG,QAAQ,EAAE,SAAAA,CAASlB,KAAK,EAAe;IACrC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,IAAI,EAAEA,KAAK,YAAYlB,UAAU,CAAC,EAAE;MAClCkB,KAAK,GAAG,IAAIlB,UAAU,CAACA,UAAU,CAACqC,KAAK,CAACnB,KAAK,CAAC,CAAC;IACjD;IAEA,IAAIoB,KAAK,CAACpB,KAAK,CAAC,EAAE;MAChB,MAAM,IAAIqB,SAAS,CAAC,eAAe,CAAC;IACtC;IAEA,OAAOrB,KAAK;EACd;AACF,CAAC;AAAC,IAAAsB,QAAA,GAEatC,IAAI;AAAAuC,OAAA,CAAAC,OAAA,GAAAF,QAAA;AACnBG,MAAM,CAACF,OAAO,GAAGvC,IAAI"}
1
+ {"version":3,"file":"date.js","names":["_core","require","globalDate","global","Date","EPOCH_DATE","LocalDate","ofYearDay","NULL_LENGTH","Buffer","from","DATA_LENGTH","MIN_DATE","MAX_DATE","id","type","name","declaration","generateTypeInfo","generateParameterLength","parameter","options","value","generateParameterData","date","useUTC","of","getUTCFullYear","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","days","until","ChronoUnit","DAYS","buffer","alloc","writeUIntLE","validate","collation","parse","toUTCString","TypeError","isNaN","_default","exports","default","module"],"sources":["../../src/data-types/date.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport { ChronoUnit, LocalDate } from '@js-joda/core';\n\n// globalDate is to be used for JavaScript's global 'Date' object to avoid name clashing with the 'Date' constant below\nconst globalDate = global.Date;\nconst EPOCH_DATE = LocalDate.ofYearDay(1, 1);\nconst NULL_LENGTH = Buffer.from([0x00]);\nconst DATA_LENGTH = Buffer.from([0x03]);\n\nconst MIN_DATE = new globalDate('January 1, 0001');\nconst MAX_DATE = new globalDate('December 31, 9999');\n\nconst Date: DataType = {\n id: 0x28,\n type: 'DATEN',\n name: 'Date',\n\n declaration: function() {\n return 'date';\n },\n\n generateTypeInfo: function() {\n return Buffer.from([this.id]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value as any; // Temporary solution. Remove 'any' later.\n\n let date: LocalDate;\n if (options.useUTC) {\n date = LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());\n } else {\n date = LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate());\n }\n\n const days = EPOCH_DATE.until(date, ChronoUnit.DAYS);\n const buffer = Buffer.alloc(3);\n buffer.writeUIntLE(days, 0, 3);\n yield buffer;\n },\n\n // TODO: value is technically of type 'unknown'.\n validate: function(value, collation, options): null | Date {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof globalDate)) {\n value = new globalDate(globalDate.parse(value));\n }\n\n value = value as Date;\n\n // TODO: check date range: January 1, 0001, through December 31, 9999\n // : time range: 00:00:00 through 23:59:59.997\n if (options && options.useUTC) {\n value = new globalDate(value.toUTCString());\n }\n\n if (value < MIN_DATE || value > MAX_DATE) {\n throw new TypeError('Out of range.');\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default Date;\nmodule.exports = Date;\n"],"mappings":"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"}
@@ -10,6 +10,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
10
10
  const EPOCH_DATE = _core.LocalDate.ofYearDay(1900, 1);
11
11
  const NULL_LENGTH = Buffer.from([0x00]);
12
12
  const DATA_LENGTH = Buffer.from([0x08]);
13
+ const MIN_DATE = new Date('January 1, 1753');
14
+ const MAX_DATE = new Date('December 31, 9999');
13
15
  const DateTime = {
14
16
  id: 0x3D,
15
17
  type: 'DATETIME',
@@ -65,13 +67,23 @@ const DateTime = {
65
67
  yield buffer;
66
68
  },
67
69
  // TODO: type 'any' needs to be revisited.
68
- validate: function (value) {
70
+ validate: function (value, collation, options) {
69
71
  if (value == null) {
70
72
  return null;
71
73
  }
72
74
  if (!(value instanceof Date)) {
73
75
  value = new Date(Date.parse(value));
74
76
  }
77
+ value = value;
78
+
79
+ // TODO: check date range: January 1, 1753, through December 31, 9999
80
+ // : time range: 00:00:00 through 23:59:59.997
81
+ if (options && options.useUTC) {
82
+ value = new Date(value.toUTCString());
83
+ }
84
+ if (value < MIN_DATE || value > MAX_DATE) {
85
+ throw new TypeError('Out of range.');
86
+ }
75
87
  if (isNaN(value)) {
76
88
  throw new TypeError('Invalid date.');
77
89
  }
@@ -81,4 +93,4 @@ const DateTime = {
81
93
  var _default = DateTime;
82
94
  exports.default = _default;
83
95
  module.exports = DateTime;
84
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0ZXRpbWVuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiRVBPQ0hfREFURSIsIkxvY2FsRGF0ZSIsIm9mWWVhckRheSIsIk5VTExfTEVOR1RIIiwiQnVmZmVyIiwiZnJvbSIsIkRBVEFfTEVOR1RIIiwiRGF0ZVRpbWUiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJnZW5lcmF0ZVR5cGVJbmZvIiwiRGF0ZVRpbWVOIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJwYXJhbWV0ZXIiLCJvcHRpb25zIiwidmFsdWUiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJkYXRlIiwidXNlVVRDIiwib2YiLCJnZXRVVENGdWxsWWVhciIsImdldFVUQ01vbnRoIiwiZ2V0VVRDRGF0ZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZGF5cyIsInVudGlsIiwiQ2hyb25vVW5pdCIsIkRBWVMiLCJtaWxsaXNlY29uZHMiLCJ0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCIsInNlY29uZHMiLCJnZXRVVENIb3VycyIsImdldFVUQ01pbnV0ZXMiLCJnZXRVVENTZWNvbmRzIiwiZ2V0VVRDTWlsbGlzZWNvbmRzIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyIsImdldE1pbGxpc2Vjb25kcyIsIk1hdGgiLCJyb3VuZCIsImJ1ZmZlciIsImFsbG9jIiwid3JpdGVJbnQzMkxFIiwid3JpdGVVSW50MzJMRSIsInZhbGlkYXRlIiwiRGF0ZSIsInBhcnNlIiwiaXNOYU4iLCJUeXBlRXJyb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9kYXRldGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcbmltcG9ydCBEYXRlVGltZU4gZnJvbSAnLi9kYXRldGltZW4nO1xuaW1wb3J0IHsgQ2hyb25vVW5pdCwgTG9jYWxEYXRlIH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5cbmNvbnN0IEVQT0NIX0RBVEUgPSBMb2NhbERhdGUub2ZZZWFyRGF5KDE5MDAsIDEpO1xuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwMF0pO1xuY29uc3QgREFUQV9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwOF0pO1xuXG5jb25zdCBEYXRlVGltZTogRGF0YVR5cGUgPSB7XG4gIGlkOiAweDNELFxuICB0eXBlOiAnREFURVRJTUUnLFxuICBuYW1lOiAnRGF0ZVRpbWUnLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gJ2RhdGV0aW1lJztcbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKCkge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShbRGF0ZVRpbWVOLmlkLCAweDA4XSk7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgcmV0dXJuIERBVEFfTEVOR1RIO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyRGF0YTogZnVuY3Rpb24qKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIGFueTsgLy8gVGVtcG9yYXJ5IHNvbHV0aW9uLiBSZW1vdmUgJ2FueScgbGF0ZXIuXG5cbiAgICBsZXQgZGF0ZTtcbiAgICBpZiAob3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIGRhdGUgPSBMb2NhbERhdGUub2YodmFsdWUuZ2V0VVRDRnVsbFllYXIoKSwgdmFsdWUuZ2V0VVRDTW9udGgoKSArIDEsIHZhbHVlLmdldFVUQ0RhdGUoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGUgPSBMb2NhbERhdGUub2YodmFsdWUuZ2V0RnVsbFllYXIoKSwgdmFsdWUuZ2V0TW9udGgoKSArIDEsIHZhbHVlLmdldERhdGUoKSk7XG4gICAgfVxuXG4gICAgbGV0IGRheXMgPSBFUE9DSF9EQVRFLnVudGlsKGRhdGUsIENocm9ub1VuaXQuREFZUyk7XG5cbiAgICBsZXQgbWlsbGlzZWNvbmRzLCB0aHJlZUh1bmRyZWR0aHNPZlNlY29uZDtcbiAgICBpZiAob3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIGxldCBzZWNvbmRzID0gdmFsdWUuZ2V0VVRDSG91cnMoKSAqIDYwICogNjA7XG4gICAgICBzZWNvbmRzICs9IHZhbHVlLmdldFVUQ01pbnV0ZXMoKSAqIDYwO1xuICAgICAgc2Vjb25kcyArPSB2YWx1ZS5nZXRVVENTZWNvbmRzKCk7XG4gICAgICBtaWxsaXNlY29uZHMgPSAoc2Vjb25kcyAqIDEwMDApICsgdmFsdWUuZ2V0VVRDTWlsbGlzZWNvbmRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBzZWNvbmRzID0gdmFsdWUuZ2V0SG91cnMoKSAqIDYwICogNjA7XG4gICAgICBzZWNvbmRzICs9IHZhbHVlLmdldE1pbnV0ZXMoKSAqIDYwO1xuICAgICAgc2Vjb25kcyArPSB2YWx1ZS5nZXRTZWNvbmRzKCk7XG4gICAgICBtaWxsaXNlY29uZHMgPSAoc2Vjb25kcyAqIDEwMDApICsgdmFsdWUuZ2V0TWlsbGlzZWNvbmRzKCk7XG4gICAgfVxuXG4gICAgdGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQgPSBtaWxsaXNlY29uZHMgLyAoMyArICgxIC8gMykpO1xuICAgIHRocmVlSHVuZHJlZHRoc09mU2Vjb25kID0gTWF0aC5yb3VuZCh0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCk7XG5cbiAgICAvLyAyNTkyMDAwMCBlcXVhbHMgb25lIGRheVxuICAgIGlmICh0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCA9PT0gMjU5MjAwMDApIHtcbiAgICAgIGRheXMgKz0gMTtcbiAgICAgIHRocmVlSHVuZHJlZHRoc09mU2Vjb25kID0gMDtcbiAgICB9XG5cbiAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoOCk7XG4gICAgYnVmZmVyLndyaXRlSW50MzJMRShkYXlzLCAwKTtcbiAgICBidWZmZXIud3JpdGVVSW50MzJMRSh0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCwgNCk7XG4gICAgeWllbGQgYnVmZmVyO1xuICB9LFxuXG4gIC8vIFRPRE86IHR5cGUgJ2FueScgbmVlZHMgdG8gYmUgcmV2aXNpdGVkLlxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBudWxsIHwgbnVtYmVyIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgRGF0ZShEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBkYXRlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVRpbWU7XG5tb2R1bGUuZXhwb3J0cyA9IERhdGVUaW1lO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFELE9BQUE7QUFBc0QsU0FBQUQsdUJBQUFHLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFdEQsTUFBTUcsVUFBVSxHQUFHQyxlQUFTLENBQUNDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxD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
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0ZXRpbWVuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiRVBPQ0hfREFURSIsIkxvY2FsRGF0ZSIsIm9mWWVhckRheSIsIk5VTExfTEVOR1RIIiwiQnVmZmVyIiwiZnJvbSIsIkRBVEFfTEVOR1RIIiwiTUlOX0RBVEUiLCJEYXRlIiwiTUFYX0RBVEUiLCJEYXRlVGltZSIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsImdlbmVyYXRlVHlwZUluZm8iLCJEYXRlVGltZU4iLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsInBhcmFtZXRlciIsIm9wdGlvbnMiLCJ2YWx1ZSIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsImRhdGUiLCJ1c2VVVEMiLCJvZiIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJkYXlzIiwidW50aWwiLCJDaHJvbm9Vbml0IiwiREFZUyIsIm1pbGxpc2Vjb25kcyIsInRocmVlSHVuZHJlZHRoc09mU2Vjb25kIiwic2Vjb25kcyIsImdldFVUQ0hvdXJzIiwiZ2V0VVRDTWludXRlcyIsImdldFVUQ1NlY29uZHMiLCJnZXRVVENNaWxsaXNlY29uZHMiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwiTWF0aCIsInJvdW5kIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZUludDMyTEUiLCJ3cml0ZVVJbnQzMkxFIiwidmFsaWRhdGUiLCJjb2xsYXRpb24iLCJwYXJzZSIsInRvVVRDU3RyaW5nIiwiVHlwZUVycm9yIiwiaXNOYU4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9kYXRldGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcbmltcG9ydCBEYXRlVGltZU4gZnJvbSAnLi9kYXRldGltZW4nO1xuaW1wb3J0IHsgQ2hyb25vVW5pdCwgTG9jYWxEYXRlIH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5cbmNvbnN0IEVQT0NIX0RBVEUgPSBMb2NhbERhdGUub2ZZZWFyRGF5KDE5MDAsIDEpO1xuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwMF0pO1xuY29uc3QgREFUQV9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwOF0pO1xuXG5jb25zdCBNSU5fREFURSA9IG5ldyBEYXRlKCdKYW51YXJ5IDEsIDE3NTMnKTtcbmNvbnN0IE1BWF9EQVRFID0gbmV3IERhdGUoJ0RlY2VtYmVyIDMxLCA5OTk5Jyk7XG5cbmNvbnN0IERhdGVUaW1lOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4M0QsXG4gIHR5cGU6ICdEQVRFVElNRScsXG4gIG5hbWU6ICdEYXRlVGltZScsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnZGF0ZXRpbWUnO1xuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8oKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFtEYXRlVGltZU4uaWQsIDB4MDhdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICByZXR1cm4gREFUQV9MRU5HVEg7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhOiBmdW5jdGlvbioocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cblxuICAgIGxldCBkYXRlOiBMb2NhbERhdGU7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIHZhbHVlLmdldFVUQ01vbnRoKCkgKyAxLCB2YWx1ZS5nZXRVVENEYXRlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCkgKyAxLCB2YWx1ZS5nZXREYXRlKCkpO1xuICAgIH1cblxuICAgIGxldCBkYXlzID0gRVBPQ0hfREFURS51bnRpbChkYXRlLCBDaHJvbm9Vbml0LkRBWVMpO1xuXG4gICAgbGV0IG1pbGxpc2Vjb25kcywgdGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQ7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICBsZXQgc2Vjb25kcyA9IHZhbHVlLmdldFVUQ0hvdXJzKCkgKiA2MCAqIDYwO1xuICAgICAgc2Vjb25kcyArPSB2YWx1ZS5nZXRVVENNaW51dGVzKCkgKiA2MDtcbiAgICAgIHNlY29uZHMgKz0gdmFsdWUuZ2V0VVRDU2Vjb25kcygpO1xuICAgICAgbWlsbGlzZWNvbmRzID0gKHNlY29uZHMgKiAxMDAwKSArIHZhbHVlLmdldFVUQ01pbGxpc2Vjb25kcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgc2Vjb25kcyA9IHZhbHVlLmdldEhvdXJzKCkgKiA2MCAqIDYwO1xuICAgICAgc2Vjb25kcyArPSB2YWx1ZS5nZXRNaW51dGVzKCkgKiA2MDtcbiAgICAgIHNlY29uZHMgKz0gdmFsdWUuZ2V0U2Vjb25kcygpO1xuICAgICAgbWlsbGlzZWNvbmRzID0gKHNlY29uZHMgKiAxMDAwKSArIHZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIH1cblxuICAgIHRocmVlSHVuZHJlZHRoc09mU2Vjb25kID0gbWlsbGlzZWNvbmRzIC8gKDMgKyAoMSAvIDMpKTtcbiAgICB0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCA9IE1hdGgucm91bmQodGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQpO1xuXG4gICAgLy8gMjU5MjAwMDAgZXF1YWxzIG9uZSBkYXlcbiAgICBpZiAodGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQgPT09IDI1OTIwMDAwKSB7XG4gICAgICBkYXlzICs9IDE7XG4gICAgICB0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCA9IDA7XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIGJ1ZmZlci53cml0ZUludDMyTEUoZGF5cywgMCk7XG4gICAgYnVmZmVyLndyaXRlVUludDMyTEUodGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQsIDQpO1xuICAgIHlpZWxkIGJ1ZmZlcjtcbiAgfSxcblxuICAvLyBUT0RPOiB0eXBlICdhbnknIG5lZWRzIHRvIGJlIHJldmlzaXRlZC5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlOiBhbnksIGNvbGxhdGlvbiwgb3B0aW9ucyk6IG51bGwgfCBudW1iZXIge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBEYXRlKERhdGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlIGFzIERhdGU7XG5cbiAgICAvLyBUT0RPOiBjaGVjayBkYXRlIHJhbmdlOiBKYW51YXJ5IDEsIDE3NTMsIHRocm91Z2ggRGVjZW1iZXIgMzEsIDk5OTlcbiAgICAvLyAgICA6IHRpbWUgcmFuZ2U6IDAwOjAwOjAwIHRocm91Z2ggMjM6NTk6NTkuOTk3XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUodmFsdWUudG9VVENTdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlIDwgTUlOX0RBVEUgfHwgdmFsdWUgPiBNQVhfREFURSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3V0IG9mIHJhbmdlLicpO1xuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlVGltZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQXNELFNBQUFELHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBRXRELE1BQU1HLFVBQVUsR0FBR0MsZUFBUyxDQUFDQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMvQyxNQUFNQyxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsTUFBTUMsV0FBVyxHQUFHRixNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXZDLE1BQU1FLFFBQVEsR0FBRyxJQUFJQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7QUFDNUMsTUFBTUMsUUFBUSxHQUFHLElBQUlELElBQUksQ0FBQyxtQkFBbUIsQ0FBQztBQUU5QyxNQUFNRSxRQUFrQixHQUFHO0VBQ3pCQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsVUFBVTtFQUNoQkMsSUFBSSxFQUFFLFVBQVU7RUFFaEJDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"datetime.js","names":["_datetimen","_interopRequireDefault","require","_core","obj","__esModule","default","EPOCH_DATE","LocalDate","ofYearDay","NULL_LENGTH","Buffer","from","DATA_LENGTH","DateTime","id","type","name","declaration","generateTypeInfo","DateTimeN","generateParameterLength","parameter","options","value","generateParameterData","date","useUTC","of","getUTCFullYear","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","days","until","ChronoUnit","DAYS","milliseconds","threeHundredthsOfSecond","seconds","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getHours","getMinutes","getSeconds","getMilliseconds","Math","round","buffer","alloc","writeInt32LE","writeUInt32LE","validate","Date","parse","isNaN","TypeError","_default","exports","module"],"sources":["../../src/data-types/datetime.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport DateTimeN from './datetimen';\nimport { ChronoUnit, LocalDate } from '@js-joda/core';\n\nconst EPOCH_DATE = LocalDate.ofYearDay(1900, 1);\nconst NULL_LENGTH = Buffer.from([0x00]);\nconst DATA_LENGTH = Buffer.from([0x08]);\n\nconst DateTime: DataType = {\n id: 0x3D,\n type: 'DATETIME',\n name: 'DateTime',\n\n declaration: function() {\n return 'datetime';\n },\n\n generateTypeInfo() {\n return Buffer.from([DateTimeN.id, 0x08]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n generateParameterData: function*(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value as any; // Temporary solution. Remove 'any' later.\n\n let date;\n if (options.useUTC) {\n date = LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());\n } else {\n date = LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate());\n }\n\n let days = EPOCH_DATE.until(date, ChronoUnit.DAYS);\n\n let milliseconds, threeHundredthsOfSecond;\n if (options.useUTC) {\n let seconds = value.getUTCHours() * 60 * 60;\n seconds += value.getUTCMinutes() * 60;\n seconds += value.getUTCSeconds();\n milliseconds = (seconds * 1000) + value.getUTCMilliseconds();\n } else {\n let seconds = value.getHours() * 60 * 60;\n seconds += value.getMinutes() * 60;\n seconds += value.getSeconds();\n milliseconds = (seconds * 1000) + value.getMilliseconds();\n }\n\n threeHundredthsOfSecond = milliseconds / (3 + (1 / 3));\n threeHundredthsOfSecond = Math.round(threeHundredthsOfSecond);\n\n // 25920000 equals one day\n if (threeHundredthsOfSecond === 25920000) {\n days += 1;\n threeHundredthsOfSecond = 0;\n }\n\n const buffer = Buffer.alloc(8);\n buffer.writeInt32LE(days, 0);\n buffer.writeUInt32LE(threeHundredthsOfSecond, 4);\n yield buffer;\n },\n\n // TODO: type 'any' needs to be revisited.\n validate: function(value): null | number {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default DateTime;\nmodule.exports = DateTime;\n"],"mappings":"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"}
1
+ {"version":3,"file":"datetime.js","names":["_datetimen","_interopRequireDefault","require","_core","obj","__esModule","default","EPOCH_DATE","LocalDate","ofYearDay","NULL_LENGTH","Buffer","from","DATA_LENGTH","MIN_DATE","Date","MAX_DATE","DateTime","id","type","name","declaration","generateTypeInfo","DateTimeN","generateParameterLength","parameter","options","value","generateParameterData","date","useUTC","of","getUTCFullYear","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","days","until","ChronoUnit","DAYS","milliseconds","threeHundredthsOfSecond","seconds","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getHours","getMinutes","getSeconds","getMilliseconds","Math","round","buffer","alloc","writeInt32LE","writeUInt32LE","validate","collation","parse","toUTCString","TypeError","isNaN","_default","exports","module"],"sources":["../../src/data-types/datetime.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport DateTimeN from './datetimen';\nimport { ChronoUnit, LocalDate } from '@js-joda/core';\n\nconst EPOCH_DATE = LocalDate.ofYearDay(1900, 1);\nconst NULL_LENGTH = Buffer.from([0x00]);\nconst DATA_LENGTH = Buffer.from([0x08]);\n\nconst MIN_DATE = new Date('January 1, 1753');\nconst MAX_DATE = new Date('December 31, 9999');\n\nconst DateTime: DataType = {\n id: 0x3D,\n type: 'DATETIME',\n name: 'DateTime',\n\n declaration: function() {\n return 'datetime';\n },\n\n generateTypeInfo() {\n return Buffer.from([DateTimeN.id, 0x08]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n generateParameterData: function*(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value as any; // Temporary solution. Remove 'any' later.\n\n let date: LocalDate;\n if (options.useUTC) {\n date = LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());\n } else {\n date = LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate());\n }\n\n let days = EPOCH_DATE.until(date, ChronoUnit.DAYS);\n\n let milliseconds, threeHundredthsOfSecond;\n if (options.useUTC) {\n let seconds = value.getUTCHours() * 60 * 60;\n seconds += value.getUTCMinutes() * 60;\n seconds += value.getUTCSeconds();\n milliseconds = (seconds * 1000) + value.getUTCMilliseconds();\n } else {\n let seconds = value.getHours() * 60 * 60;\n seconds += value.getMinutes() * 60;\n seconds += value.getSeconds();\n milliseconds = (seconds * 1000) + value.getMilliseconds();\n }\n\n threeHundredthsOfSecond = milliseconds / (3 + (1 / 3));\n threeHundredthsOfSecond = Math.round(threeHundredthsOfSecond);\n\n // 25920000 equals one day\n if (threeHundredthsOfSecond === 25920000) {\n days += 1;\n threeHundredthsOfSecond = 0;\n }\n\n const buffer = Buffer.alloc(8);\n buffer.writeInt32LE(days, 0);\n buffer.writeUInt32LE(threeHundredthsOfSecond, 4);\n yield buffer;\n },\n\n // TODO: type 'any' needs to be revisited.\n validate: function(value: any, collation, options): null | number {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n value = value as Date;\n\n // TODO: check date range: January 1, 1753, through December 31, 9999\n // : time range: 00:00:00 through 23:59:59.997\n if (options && options.useUTC) {\n value = new Date(value.toUTCString());\n }\n\n if (value < MIN_DATE || value > MAX_DATE) {\n throw new TypeError('Out of range.');\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default DateTime;\nmodule.exports = DateTime;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAsD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtD,MAAMG,UAAU,GAAGC,eAAS,CAACC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/C,MAAMC,WAAW,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,MAAMC,WAAW,GAAGF,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvC,MAAME,QAAQ,GAAG,IAAIC,IAAI,CAAC,iBAAiB,CAAC;AAC5C,MAAMC,QAAQ,GAAG,IAAID,IAAI,CAAC,mBAAmB,CAAC;AAE9C,MAAME,QAAkB,GAAG;EACzBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE,UAAU;EAEhBC,WAAW,EAAE,SAAAA,CAAA,EAAW;IACtB,OAAO,UAAU;EACnB,CAAC;EAEDC,gBAAgBA,CAAA,EAAG;IACjB,OAAOX,MAAM,CAACC,IAAI,CAAC,CAACW,kBAAS,CAACL,EAAE,EAAE,IAAI,CAAC,CAAC;EAC1C,CAAC;EAEDM,uBAAuBA,CAACC,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B,OAAOjB,WAAW;IACpB;IAEA,OAAOG,WAAW;EACpB,CAAC;EAEDe,qBAAqB,EAAE,UAAAA,CAAUH,SAAS,EAAEC,OAAO,EAAE;IACnD,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B;IACF;IAEA,MAAMA,KAAK,GAAGF,SAAS,CAACE,KAAY,CAAC,CAAC;;IAEtC,IAAIE,IAAe;IACnB,IAAIH,OAAO,CAACI,MAAM,EAAE;MAClBD,IAAI,GAAGrB,eAAS,CAACuB,EAAE,CAACJ,KAAK,CAACK,cAAc,CAAC,CAAC,EAAEL,KAAK,CAACM,WAAW,CAAC,CAAC,GAAG,CAAC,EAAEN,KAAK,CAACO,UAAU,CAAC,CAAC,CAAC;IAC1F,CAAC,MAAM;MACLL,IAAI,GAAGrB,eAAS,CAACuB,EAAE,CAACJ,KAAK,CAACQ,WAAW,CAAC,CAAC,EAAER,KAAK,CAACS,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAET,KAAK,CAACU,OAAO,CAAC,CAAC,CAAC;IACjF;IAEA,IAAIC,IAAI,GAAG/B,UAAU,CAACgC,KAAK,CAACV,IAAI,EAAEW,gBAAU,CAACC,IAAI,CAAC;IAElD,IAAIC,YAAY,EAAEC,uBAAuB;IACzC,IAAIjB,OAAO,CAACI,MAAM,EAAE;MAClB,IAAIc,OAAO,GAAGjB,KAAK,CAACkB,WAAW,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE;MAC3CD,OAAO,IAAIjB,KAAK,CAACmB,aAAa,CAAC,CAAC,GAAG,EAAE;MACrCF,OAAO,IAAIjB,KAAK,CAACoB,aAAa,CAAC,CAAC;MAChCL,YAAY,GAAIE,OAAO,GAAG,IAAI,GAAIjB,KAAK,CAACqB,kBAAkB,CAAC,CAAC;IAC9D,CAAC,MAAM;MACL,IAAIJ,OAAO,GAAGjB,KAAK,CAACsB,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE;MACxCL,OAAO,IAAIjB,KAAK,CAACuB,UAAU,CAAC,CAAC,GAAG,EAAE;MAClCN,OAAO,IAAIjB,KAAK,CAACwB,UAAU,CAAC,CAAC;MAC7BT,YAAY,GAAIE,OAAO,GAAG,IAAI,GAAIjB,KAAK,CAACyB,eAAe,CAAC,CAAC;IAC3D;IAEAT,uBAAuB,GAAGD,YAAY,IAAI,CAAC,GAAI,CAAC,GAAG,CAAE,CAAC;IACtDC,uBAAuB,GAAGU,IAAI,CAACC,KAAK,CAACX,uBAAuB,CAAC;;IAE7D;IACA,IAAIA,uBAAuB,KAAK,QAAQ,EAAE;MACxCL,IAAI,IAAI,CAAC;MACTK,uBAAuB,GAAG,CAAC;IAC7B;IAEA,MAAMY,MAAM,GAAG5C,MAAM,CAAC6C,KAAK,CAAC,CAAC,CAAC;IAC9BD,MAAM,CAACE,YAAY,CAACnB,IAAI,EAAE,CAAC,CAAC;IAC5BiB,MAAM,CAACG,aAAa,CAACf,uBAAuB,EAAE,CAAC,CAAC;IAChD,MAAMY,MAAM;EACd,CAAC;EAED;EACAI,QAAQ,EAAE,SAAAA,CAAShC,KAAU,EAAEiC,SAAS,EAAElC,OAAO,EAAiB;IAChE,IAAIC,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,IAAI,EAAEA,KAAK,YAAYZ,IAAI,CAAC,EAAE;MAC5BY,KAAK,GAAG,IAAIZ,IAAI,CAACA,IAAI,CAAC8C,KAAK,CAAClC,KAAK,CAAC,CAAC;IACrC;IAEAA,KAAK,GAAGA,KAAa;;IAErB;IACA;IACA,IAAID,OAAO,IAAIA,OAAO,CAACI,MAAM,EAAE;MAC7BH,KAAK,GAAG,IAAIZ,IAAI,CAACY,KAAK,CAACmC,WAAW,CAAC,CAAC,CAAC;IACvC;IAEA,IAAInC,KAAK,GAAGb,QAAQ,IAAIa,KAAK,GAAGX,QAAQ,EAAE;MACxC,MAAM,IAAI+C,SAAS,CAAC,eAAe,CAAC;IACtC;IAEA,IAAIC,KAAK,CAACrC,KAAK,CAAC,EAAE;MAChB,MAAM,IAAIoC,SAAS,CAAC,eAAe,CAAC;IACtC;IAEA,OAAOpC,KAAK;EACd;AACF,CAAC;AAAC,IAAAsC,QAAA,GAEahD,QAAQ;AAAAiD,OAAA,CAAA5D,OAAA,GAAA2D,QAAA;AACvBE,MAAM,CAACD,OAAO,GAAGjD,QAAQ"}
@@ -9,6 +9,8 @@ var _writableTrackingBuffer = _interopRequireDefault(require("../tracking-buffer
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
10
  const EPOCH_DATE = _core.LocalDate.ofYearDay(1, 1);
11
11
  const NULL_LENGTH = Buffer.from([0x00]);
12
+ const MIN_DATE = new Date('January 1, 0001');
13
+ const MAX_DATE = new Date('December 31, 9999');
12
14
  const DateTime2 = {
13
15
  id: 0x2A,
14
16
  type: 'DATETIME2N',
@@ -90,13 +92,23 @@ const DateTime2 = {
90
92
  buffer.writeUInt24LE(days);
91
93
  yield buffer.data;
92
94
  },
93
- validate: function (value) {
95
+ validate: function (value, collation, options) {
94
96
  if (value == null) {
95
97
  return null;
96
98
  }
97
99
  if (!(value instanceof Date)) {
98
100
  value = new Date(Date.parse(value));
99
101
  }
102
+ value = value;
103
+
104
+ // TODO: check date range: January 1, 0001, through December 31, 9999
105
+ // : time range: 00:00:00 through 23:59:59.997
106
+ if (options && options.useUTC) {
107
+ value = new Date(value.toUTCString());
108
+ }
109
+ if (value < MIN_DATE || value > MAX_DATE) {
110
+ throw new TypeError('Out of range.');
111
+ }
100
112
  if (isNaN(value)) {
101
113
  throw new TypeError('Invalid date.');
102
114
  }
@@ -106,4 +118,4 @@ const DateTime2 = {
106
118
  var _default = DateTime2;
107
119
  exports.default = _default;
108
120
  module.exports = DateTime2;
109
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJEYXRlVGltZTIiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJwYXJhbWV0ZXIiLCJyZXNvbHZlU2NhbGUiLCJzY2FsZSIsInZhbHVlIiwiZ2VuZXJhdGVUeXBlSW5mbyIsIl9vcHRpb25zIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiRXJyb3IiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJidWZmZXIiLCJXcml0YWJsZVRyYWNraW5nQnVmZmVyIiwidGltZXN0YW1wIiwidXNlVVRDIiwiZ2V0VVRDSG91cnMiLCJnZXRVVENNaW51dGVzIiwiZ2V0VVRDU2Vjb25kcyIsImdldFVUQ01pbGxpc2Vjb25kcyIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJnZXRNaWxsaXNlY29uZHMiLCJNYXRoIiwicG93IiwibmFub3NlY29uZERlbHRhIiwicm91bmQiLCJ3cml0ZVVJbnQyNExFIiwid3JpdGVVSW50MzJMRSIsIndyaXRlVUludDQwTEUiLCJkYXRlIiwib2YiLCJnZXRVVENGdWxsWWVhciIsImdldFVUQ01vbnRoIiwiZ2V0VVRDRGF0ZSIsImdldEZ1bGxZZWFyIiwiZ2V0TW9udGgiLCJnZXREYXRlIiwiZGF5cyIsInVudGlsIiwiQ2hyb25vVW5pdCIsIkRBWVMiLCJkYXRhIiwidmFsaWRhdGUiLCJEYXRlIiwicGFyc2UiLCJpc05hTiIsIlR5cGVFcnJvciIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGV0aW1lMi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcbmltcG9ydCB7IENocm9ub1VuaXQsIExvY2FsRGF0ZSB9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuaW1wb3J0IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIgZnJvbSAnLi4vdHJhY2tpbmctYnVmZmVyL3dyaXRhYmxlLXRyYWNraW5nLWJ1ZmZlcic7XG5cbmNvbnN0IEVQT0NIX0RBVEUgPSBMb2NhbERhdGUub2ZZZWFyRGF5KDEsIDEpO1xuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwMF0pO1xuXG5jb25zdCBEYXRlVGltZTI6IERhdGFUeXBlICYgeyByZXNvbHZlU2NhbGU6IE5vbk51bGxhYmxlPERhdGFUeXBlWydyZXNvbHZlU2NhbGUnXT4gfSA9IHtcbiAgaWQ6IDB4MkEsXG4gIHR5cGU6ICdEQVRFVElNRTJOJyxcbiAgbmFtZTogJ0RhdGVUaW1lMicsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIHJldHVybiAnZGF0ZXRpbWUyKCcgKyAodGhpcy5yZXNvbHZlU2NhbGUocGFyYW1ldGVyKSkgKyAnKSc7XG4gIH0sXG5cbiAgcmVzb2x2ZVNjYWxlOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBpZiAocGFyYW1ldGVyLnNjYWxlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIuc2NhbGU7XG4gICAgfSBlbHNlIGlmIChwYXJhbWV0ZXIudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gNztcbiAgICB9XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbWV0ZXIsIF9vcHRpb25zKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFt0aGlzLmlkLCBwYXJhbWV0ZXIuc2NhbGUhXSk7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgc3dpdGNoIChwYXJhbWV0ZXIuc2NhbGUhKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICBjYXNlIDE6XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShbMHgwNl0pO1xuXG4gICAgICBjYXNlIDM6XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShbMHgwN10pO1xuXG4gICAgICBjYXNlIDU6XG4gICAgICBjYXNlIDY6XG4gICAgICBjYXNlIDc6XG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShbMHgwOF0pO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc2NhbGUnKTtcbiAgICB9XG4gIH0sXG5cbiAgKmdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZTtcbiAgICBsZXQgc2NhbGUgPSBwYXJhbWV0ZXIuc2NhbGU7XG5cbiAgICBjb25zdCBidWZmZXIgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcigxNik7XG4gICAgc2NhbGUgPSBzY2FsZSE7XG5cbiAgICBsZXQgdGltZXN0YW1wO1xuICAgIGlmIChvcHRpb25zLnVzZVVUQykge1xuICAgICAgdGltZXN0YW1wID0gKCh2YWx1ZS5nZXRVVENIb3VycygpICogNjAgKyB2YWx1ZS5nZXRVVENNaW51dGVzKCkpICogNjAgKyB2YWx1ZS5nZXRVVENTZWNvbmRzKCkpICogMTAwMCArIHZhbHVlLmdldFVUQ01pbGxpc2Vjb25kcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aW1lc3RhbXAgPSAoKHZhbHVlLmdldEhvdXJzKCkgKiA2MCArIHZhbHVlLmdldE1pbnV0ZXMoKSkgKiA2MCArIHZhbHVlLmdldFNlY29uZHMoKSkgKiAxMDAwICsgdmFsdWUuZ2V0TWlsbGlzZWNvbmRzKCk7XG4gICAgfVxuICAgIHRpbWVzdGFtcCA9IHRpbWVzdGFtcCAqIE1hdGgucG93KDEwLCBzY2FsZSAtIDMpO1xuICAgIHRpbWVzdGFtcCArPSAodmFsdWUubmFub3NlY29uZERlbHRhICE9IG51bGwgPyB2YWx1ZS5uYW5vc2Vjb25kRGVsdGEgOiAwKSAqIE1hdGgucG93KDEwLCBzY2FsZSk7XG4gICAgdGltZXN0YW1wID0gTWF0aC5yb3VuZCh0aW1lc3RhbXApO1xuXG4gICAgc3dpdGNoIChzY2FsZSkge1xuICAgICAgY2FzZSAwOlxuICAgICAgY2FzZSAxOlxuICAgICAgY2FzZSAyOlxuICAgICAgICBidWZmZXIud3JpdGVVSW50MjRMRSh0aW1lc3RhbXApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgIGNhc2UgNDpcbiAgICAgICAgYnVmZmVyLndyaXRlVUludDMyTEUodGltZXN0YW1wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDU6XG4gICAgICBjYXNlIDY6XG4gICAgICBjYXNlIDc6XG4gICAgICAgIGJ1ZmZlci53cml0ZVVJbnQ0MExFKHRpbWVzdGFtcCk7XG4gICAgfVxuXG4gICAgbGV0IGRhdGU7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIHZhbHVlLmdldFVUQ01vbnRoKCkgKyAxLCB2YWx1ZS5nZXRVVENEYXRlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCkgKyAxLCB2YWx1ZS5nZXREYXRlKCkpO1xuICAgIH1cblxuICAgIGNvbnN0IGRheXMgPSBFUE9DSF9EQVRFLnVudGlsKGRhdGUsIENocm9ub1VuaXQuREFZUyk7XG4gICAgYnVmZmVyLndyaXRlVUludDI0TEUoZGF5cyk7XG4gICAgeWllbGQgYnVmZmVyLmRhdGE7XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogbnVsbCB8IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lMjtcbm1vZHVsZS5leHBvcnRzID0gRGF0ZVRpbWUyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxLQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQWlGLFNBQUFFLHVCQUFBQyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBRWpGLE1BQU1HLFVBQVUsR0FBR0MsZUFBUyxDQUFDQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM1QyxNQUFNQyxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdkMsTUFBTUMsU0FBNkUsR0FBRztFQUNwRkMsRUFBRSxFQUFFLElBQUk7RUFDUkMsSUFBSSxFQUFFLFlBQVk7RUFDbEJDLElBQUksRUFBRSxXQUFXO0VBRWpCQyxXQUFXLEVBQUUsU0FBQUEsQ0FBU0MsU0FBUyxFQUFFO0lBQy9CLE9B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
121
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJNSU5fREFURSIsIkRhdGUiLCJNQVhfREFURSIsIkRhdGVUaW1lMiIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInJlc29sdmVTY2FsZSIsInNjYWxlIiwidmFsdWUiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiX29wdGlvbnMiLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsIm9wdGlvbnMiLCJFcnJvciIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsImJ1ZmZlciIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJ0aW1lc3RhbXAiLCJ1c2VVVEMiLCJnZXRVVENIb3VycyIsImdldFVUQ01pbnV0ZXMiLCJnZXRVVENTZWNvbmRzIiwiZ2V0VVRDTWlsbGlzZWNvbmRzIiwiZ2V0SG91cnMiLCJnZXRNaW51dGVzIiwiZ2V0U2Vjb25kcyIsImdldE1pbGxpc2Vjb25kcyIsIk1hdGgiLCJwb3ciLCJuYW5vc2Vjb25kRGVsdGEiLCJyb3VuZCIsIndyaXRlVUludDI0TEUiLCJ3cml0ZVVJbnQzMkxFIiwid3JpdGVVSW50NDBMRSIsImRhdGUiLCJvZiIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJkYXlzIiwidW50aWwiLCJDaHJvbm9Vbml0IiwiREFZUyIsImRhdGEiLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsInBhcnNlIiwidG9VVENTdHJpbmciLCJUeXBlRXJyb3IiLCJpc05hTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGV0aW1lMi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcbmltcG9ydCB7IENocm9ub1VuaXQsIExvY2FsRGF0ZSB9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuaW1wb3J0IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIgZnJvbSAnLi4vdHJhY2tpbmctYnVmZmVyL3dyaXRhYmxlLXRyYWNraW5nLWJ1ZmZlcic7XG5cbmNvbnN0IEVQT0NIX0RBVEUgPSBMb2NhbERhdGUub2ZZZWFyRGF5KDEsIDEpO1xuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwMF0pO1xuXG5jb25zdCBNSU5fREFURSA9IG5ldyBEYXRlKCdKYW51YXJ5IDEsIDAwMDEnKTtcbmNvbnN0IE1BWF9EQVRFID0gbmV3IERhdGUoJ0RlY2VtYmVyIDMxLCA5OTk5Jyk7XG5cbmNvbnN0IERhdGVUaW1lMjogRGF0YVR5cGUgJiB7IHJlc29sdmVTY2FsZTogTm9uTnVsbGFibGU8RGF0YVR5cGVbJ3Jlc29sdmVTY2FsZSddPiB9ID0ge1xuICBpZDogMHgyQSxcbiAgdHlwZTogJ0RBVEVUSU1FMk4nLFxuICBuYW1lOiAnRGF0ZVRpbWUyJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgcmV0dXJuICdkYXRldGltZTIoJyArICh0aGlzLnJlc29sdmVTY2FsZShwYXJhbWV0ZXIpKSArICcpJztcbiAgfSxcblxuICByZXNvbHZlU2NhbGU6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGlmIChwYXJhbWV0ZXIuc2NhbGUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5zY2FsZTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtZXRlci52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA3O1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKHBhcmFtZXRlciwgX29wdGlvbnMpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oW3RoaXMuaWQsIHBhcmFtZXRlci5zY2FsZSFdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHBhcmFtZXRlci5zY2FsZSEpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgIGNhc2UgMTpcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDA2XSk7XG5cbiAgICAgIGNhc2UgMzpcbiAgICAgIGNhc2UgNDpcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDA3XSk7XG5cbiAgICAgIGNhc2UgNTpcbiAgICAgIGNhc2UgNjpcbiAgICAgIGNhc2UgNzpcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDA4XSk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzY2FsZScpO1xuICAgIH1cbiAgfSxcblxuICAqZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlO1xuICAgIGxldCBzY2FsZSA9IHBhcmFtZXRlci5zY2FsZTtcblxuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKDE2KTtcbiAgICBzY2FsZSA9IHNjYWxlITtcblxuICAgIGxldCB0aW1lc3RhbXA6IG51bWJlcjtcbiAgICBpZiAob3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIHRpbWVzdGFtcCA9ICgodmFsdWUuZ2V0VVRDSG91cnMoKSAqIDYwICsgdmFsdWUuZ2V0VVRDTWludXRlcygpKSAqIDYwICsgdmFsdWUuZ2V0VVRDU2Vjb25kcygpKSAqIDEwMDAgKyB2YWx1ZS5nZXRVVENNaWxsaXNlY29uZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGltZXN0YW1wID0gKCh2YWx1ZS5nZXRIb3VycygpICogNjAgKyB2YWx1ZS5nZXRNaW51dGVzKCkpICogNjAgKyB2YWx1ZS5nZXRTZWNvbmRzKCkpICogMTAwMCArIHZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIH1cbiAgICB0aW1lc3RhbXAgPSB0aW1lc3RhbXAgKiBNYXRoLnBvdygxMCwgc2NhbGUgLSAzKTtcbiAgICB0aW1lc3RhbXAgKz0gKHZhbHVlLm5hbm9zZWNvbmREZWx0YSAhPSBudWxsID8gdmFsdWUubmFub3NlY29uZERlbHRhIDogMCkgKiBNYXRoLnBvdygxMCwgc2NhbGUpO1xuICAgIHRpbWVzdGFtcCA9IE1hdGgucm91bmQodGltZXN0YW1wKTtcblxuICAgIHN3aXRjaCAoc2NhbGUpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgIGNhc2UgMTpcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgYnVmZmVyLndyaXRlVUludDI0TEUodGltZXN0YW1wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDM6XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKHRpbWVzdGFtcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA1OlxuICAgICAgY2FzZSA2OlxuICAgICAgY2FzZSA3OlxuICAgICAgICBidWZmZXIud3JpdGVVSW50NDBMRSh0aW1lc3RhbXApO1xuICAgIH1cblxuICAgIGxldCBkYXRlO1xuICAgIGlmIChvcHRpb25zLnVzZVVUQykge1xuICAgICAgZGF0ZSA9IExvY2FsRGF0ZS5vZih2YWx1ZS5nZXRVVENGdWxsWWVhcigpLCB2YWx1ZS5nZXRVVENNb250aCgpICsgMSwgdmFsdWUuZ2V0VVRDRGF0ZSgpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF0ZSA9IExvY2FsRGF0ZS5vZih2YWx1ZS5nZXRGdWxsWWVhcigpLCB2YWx1ZS5nZXRNb250aCgpICsgMSwgdmFsdWUuZ2V0RGF0ZSgpKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXlzID0gRVBPQ0hfREFURS51bnRpbChkYXRlLCBDaHJvbm9Vbml0LkRBWVMpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQyNExFKGRheXMpO1xuICAgIHlpZWxkIGJ1ZmZlci5kYXRhO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZTogYW55LCBjb2xsYXRpb24sIG9wdGlvbnMpOiBudWxsIHwgbnVtYmVyIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgRGF0ZShEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSBhcyBEYXRlO1xuXG4gICAgLy8gVE9ETzogY2hlY2sgZGF0ZSByYW5nZTogSmFudWFyeSAxLCAwMDAxLCB0aHJvdWdoIERlY2VtYmVyIDMxLCA5OTk5XG4gICAgLy8gICAgOiB0aW1lIHJhbmdlOiAwMDowMDowMCB0aHJvdWdoIDIzOjU5OjU5Ljk5N1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlLnRvVVRDU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA8IE1JTl9EQVRFIHx8IHZhbHVlID4gTUFYX0RBVEUpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ091dCBvZiByYW5nZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZTI7XG5tb2R1bGUuZXhwb3J0cyA9IERhdGVUaW1lMjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsdUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUFpRixTQUFBRSx1QkFBQUMsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUVqRixNQUFNRyxVQUFVLEdBQUdDLGVBQVMsQ0FBQ0MsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDNUMsTUFBTUMsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXZDLE1BQU1DLFFBQVEsR0FBRyxJQUFJQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7QUFDNUMsTUFBTUMsUUFBUSxHQUFHLElBQUlELElBQUksQ0FBQyxtQkFBbUIsQ0FBQztBQUU5QyxNQUFNRSxTQUE2RSxHQUFHO0VBQ3BGQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsWUFBWTtFQUNsQkMsSUFBSSxFQUFFLFdBQVc7RUFFakJDLFdBQVcsRUFBRSxTQUFBQSxDQUFTQyxTQUFTLEVBQUU7SUFDL0IsT0FBTyxZQUFZLEdBQUksSUFBSSxDQUFDQyxZQUFZLENBQUNELFNBQVMsQ0FBRSxHQUFHLEdBQUc7RUFDNUQsQ0FBQztFQUVEQyxZQUFZLEVBQUUsU0FBQUEsQ0FBU0QsU0FBUyxFQUFFO0lBQ2hDLElBQUlBLFNBQVMsQ0FBQ0UsS0FBSyxJQUFJLElBQUksRUFBRTtNQUMzQixPQUFPRixTQUFTLENBQUNFLEtBQUs7SUFDeEIsQ0FBQyxNQUFNLElBQUlGLFNBQVMsQ0FBQ0csS0FBSyxLQUFLLElBQUksRUFBRTtNQUNuQyxPQUFPLENBQUM7SUFDVixDQUFDLE1BQU07TUFDTCxP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
@@ -1 +1 @@
1
- {"version":3,"file":"datetime2.js","names":["_core","require","_writableTrackingBuffer","_interopRequireDefault","obj","__esModule","default","EPOCH_DATE","LocalDate","ofYearDay","NULL_LENGTH","Buffer","from","DateTime2","id","type","name","declaration","parameter","resolveScale","scale","value","generateTypeInfo","_options","generateParameterLength","options","Error","generateParameterData","buffer","WritableTrackingBuffer","timestamp","useUTC","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getHours","getMinutes","getSeconds","getMilliseconds","Math","pow","nanosecondDelta","round","writeUInt24LE","writeUInt32LE","writeUInt40LE","date","of","getUTCFullYear","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","days","until","ChronoUnit","DAYS","data","validate","Date","parse","isNaN","TypeError","_default","exports","module"],"sources":["../../src/data-types/datetime2.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport { ChronoUnit, LocalDate } from '@js-joda/core';\nimport WritableTrackingBuffer from '../tracking-buffer/writable-tracking-buffer';\n\nconst EPOCH_DATE = LocalDate.ofYearDay(1, 1);\nconst NULL_LENGTH = Buffer.from([0x00]);\n\nconst DateTime2: DataType & { resolveScale: NonNullable<DataType['resolveScale']> } = {\n id: 0x2A,\n type: 'DATETIME2N',\n name: 'DateTime2',\n\n declaration: function(parameter) {\n return 'datetime2(' + (this.resolveScale(parameter)) + ')';\n },\n\n resolveScale: function(parameter) {\n if (parameter.scale != null) {\n return parameter.scale;\n } else if (parameter.value === null) {\n return 0;\n } else {\n return 7;\n }\n },\n\n generateTypeInfo(parameter, _options) {\n return Buffer.from([this.id, parameter.scale!]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n switch (parameter.scale!) {\n case 0:\n case 1:\n case 2:\n return Buffer.from([0x06]);\n\n case 3:\n case 4:\n return Buffer.from([0x07]);\n\n case 5:\n case 6:\n case 7:\n return Buffer.from([0x08]);\n\n default:\n throw new Error('invalid scale');\n }\n },\n\n *generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value;\n let scale = parameter.scale;\n\n const buffer = new WritableTrackingBuffer(16);\n scale = scale!;\n\n let timestamp;\n if (options.useUTC) {\n timestamp = ((value.getUTCHours() * 60 + value.getUTCMinutes()) * 60 + value.getUTCSeconds()) * 1000 + value.getUTCMilliseconds();\n } else {\n timestamp = ((value.getHours() * 60 + value.getMinutes()) * 60 + value.getSeconds()) * 1000 + value.getMilliseconds();\n }\n timestamp = timestamp * Math.pow(10, scale - 3);\n timestamp += (value.nanosecondDelta != null ? value.nanosecondDelta : 0) * Math.pow(10, scale);\n timestamp = Math.round(timestamp);\n\n switch (scale) {\n case 0:\n case 1:\n case 2:\n buffer.writeUInt24LE(timestamp);\n break;\n case 3:\n case 4:\n buffer.writeUInt32LE(timestamp);\n break;\n case 5:\n case 6:\n case 7:\n buffer.writeUInt40LE(timestamp);\n }\n\n let date;\n if (options.useUTC) {\n date = LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());\n } else {\n date = LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate());\n }\n\n const days = EPOCH_DATE.until(date, ChronoUnit.DAYS);\n buffer.writeUInt24LE(days);\n yield buffer.data;\n },\n\n validate: function(value): null | number {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default DateTime2;\nmodule.exports = DateTime2;\n"],"mappings":"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"}
1
+ {"version":3,"file":"datetime2.js","names":["_core","require","_writableTrackingBuffer","_interopRequireDefault","obj","__esModule","default","EPOCH_DATE","LocalDate","ofYearDay","NULL_LENGTH","Buffer","from","MIN_DATE","Date","MAX_DATE","DateTime2","id","type","name","declaration","parameter","resolveScale","scale","value","generateTypeInfo","_options","generateParameterLength","options","Error","generateParameterData","buffer","WritableTrackingBuffer","timestamp","useUTC","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getHours","getMinutes","getSeconds","getMilliseconds","Math","pow","nanosecondDelta","round","writeUInt24LE","writeUInt32LE","writeUInt40LE","date","of","getUTCFullYear","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","days","until","ChronoUnit","DAYS","data","validate","collation","parse","toUTCString","TypeError","isNaN","_default","exports","module"],"sources":["../../src/data-types/datetime2.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport { ChronoUnit, LocalDate } from '@js-joda/core';\nimport WritableTrackingBuffer from '../tracking-buffer/writable-tracking-buffer';\n\nconst EPOCH_DATE = LocalDate.ofYearDay(1, 1);\nconst NULL_LENGTH = Buffer.from([0x00]);\n\nconst MIN_DATE = new Date('January 1, 0001');\nconst MAX_DATE = new Date('December 31, 9999');\n\nconst DateTime2: DataType & { resolveScale: NonNullable<DataType['resolveScale']> } = {\n id: 0x2A,\n type: 'DATETIME2N',\n name: 'DateTime2',\n\n declaration: function(parameter) {\n return 'datetime2(' + (this.resolveScale(parameter)) + ')';\n },\n\n resolveScale: function(parameter) {\n if (parameter.scale != null) {\n return parameter.scale;\n } else if (parameter.value === null) {\n return 0;\n } else {\n return 7;\n }\n },\n\n generateTypeInfo(parameter, _options) {\n return Buffer.from([this.id, parameter.scale!]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n switch (parameter.scale!) {\n case 0:\n case 1:\n case 2:\n return Buffer.from([0x06]);\n\n case 3:\n case 4:\n return Buffer.from([0x07]);\n\n case 5:\n case 6:\n case 7:\n return Buffer.from([0x08]);\n\n default:\n throw new Error('invalid scale');\n }\n },\n\n *generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value;\n let scale = parameter.scale;\n\n const buffer = new WritableTrackingBuffer(16);\n scale = scale!;\n\n let timestamp: number;\n if (options.useUTC) {\n timestamp = ((value.getUTCHours() * 60 + value.getUTCMinutes()) * 60 + value.getUTCSeconds()) * 1000 + value.getUTCMilliseconds();\n } else {\n timestamp = ((value.getHours() * 60 + value.getMinutes()) * 60 + value.getSeconds()) * 1000 + value.getMilliseconds();\n }\n timestamp = timestamp * Math.pow(10, scale - 3);\n timestamp += (value.nanosecondDelta != null ? value.nanosecondDelta : 0) * Math.pow(10, scale);\n timestamp = Math.round(timestamp);\n\n switch (scale) {\n case 0:\n case 1:\n case 2:\n buffer.writeUInt24LE(timestamp);\n break;\n case 3:\n case 4:\n buffer.writeUInt32LE(timestamp);\n break;\n case 5:\n case 6:\n case 7:\n buffer.writeUInt40LE(timestamp);\n }\n\n let date;\n if (options.useUTC) {\n date = LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());\n } else {\n date = LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate());\n }\n\n const days = EPOCH_DATE.until(date, ChronoUnit.DAYS);\n buffer.writeUInt24LE(days);\n yield buffer.data;\n },\n\n validate: function(value: any, collation, options): null | number {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n value = value as Date;\n\n // TODO: check date range: January 1, 0001, through December 31, 9999\n // : time range: 00:00:00 through 23:59:59.997\n if (options && options.useUTC) {\n value = new Date(value.toUTCString());\n }\n\n if (value < MIN_DATE || value > MAX_DATE) {\n throw new TypeError('Out of range.');\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default DateTime2;\nmodule.exports = DateTime2;\n"],"mappings":"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"}
@@ -9,6 +9,8 @@ var _writableTrackingBuffer = _interopRequireDefault(require("../tracking-buffer
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
10
  const EPOCH_DATE = _core.LocalDate.ofYearDay(1, 1);
11
11
  const NULL_LENGTH = Buffer.from([0x00]);
12
+ const MIN_DATE = new Date('January 1, 0001');
13
+ const MAX_DATE = new Date('December 31, 9999');
12
14
  const DateTimeOffset = {
13
15
  id: 0x2B,
14
16
  type: 'DATETIMEOFFSETN',
@@ -83,13 +85,23 @@ const DateTimeOffset = {
83
85
  buffer.writeInt16LE(offset);
84
86
  yield buffer.data;
85
87
  },
86
- validate: function (value) {
88
+ validate: function (value, collation, options) {
87
89
  if (value == null) {
88
90
  return null;
89
91
  }
90
92
  if (!(value instanceof Date)) {
91
93
  value = new Date(Date.parse(value));
92
94
  }
95
+ value = value;
96
+
97
+ // TODO: check date range: January 1, 0001, through December 31, 9999
98
+ // : time range: 00:00:00 through 23:59:59.997
99
+ if (options && options.useUTC) {
100
+ value = new Date(value.toUTCString());
101
+ }
102
+ if (value < MIN_DATE || value > MAX_DATE) {
103
+ throw new TypeError('Out of range.');
104
+ }
93
105
  if (isNaN(value)) {
94
106
  throw new TypeError('Invalid date.');
95
107
  }
@@ -99,4 +111,4 @@ const DateTimeOffset = {
99
111
  var _default = DateTimeOffset;
100
112
  exports.default = _default;
101
113
  module.exports = DateTimeOffset;
102
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJEYXRlVGltZU9mZnNldCIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInJlc29sdmVTY2FsZSIsInNjYWxlIiwidmFsdWUiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiRXJyb3IiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJidWZmZXIiLCJXcml0YWJsZVRyYWNraW5nQnVmZmVyIiwidGltZXN0YW1wIiwiZ2V0VVRDSG91cnMiLCJnZXRVVENNaW51dGVzIiwiZ2V0VVRDU2Vjb25kcyIsImdldE1pbGxpc2Vjb25kcyIsIk1hdGgiLCJwb3ciLCJuYW5vc2Vjb25kRGVsdGEiLCJyb3VuZCIsIndyaXRlVUludDI0TEUiLCJ3cml0ZVVJbnQzMkxFIiwid3JpdGVVSW50NDBMRSIsImRhdGUiLCJvZiIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZGF5cyIsInVudGlsIiwiQ2hyb25vVW5pdCIsIkRBWVMiLCJvZmZzZXQiLCJnZXRUaW1lem9uZU9mZnNldCIsIndyaXRlSW50MTZMRSIsImRhdGEiLCJ2YWxpZGF0ZSIsIkRhdGUiLCJwYXJzZSIsImlzTmFOIiwiVHlwZUVycm9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGF0ZXRpbWVvZmZzZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBDaHJvbm9Vbml0LCBMb2NhbERhdGUgfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCBXcml0YWJsZVRyYWNraW5nQnVmZmVyIGZyb20gJy4uL3RyYWNraW5nLWJ1ZmZlci93cml0YWJsZS10cmFja2luZy1idWZmZXInO1xuXG5jb25zdCBFUE9DSF9EQVRFID0gTG9jYWxEYXRlLm9mWWVhckRheSgxLCAxKTtcbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4MDBdKTtcblxuY29uc3QgRGF0ZVRpbWVPZmZzZXQ6IERhdGFUeXBlICYgeyByZXNvbHZlU2NhbGU6IE5vbk51bGxhYmxlPERhdGFUeXBlWydyZXNvbHZlU2NhbGUnXT4gfSA9IHtcbiAgaWQ6IDB4MkIsXG4gIHR5cGU6ICdEQVRFVElNRU9GRlNFVE4nLFxuICBuYW1lOiAnRGF0ZVRpbWVPZmZzZXQnLFxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgcmV0dXJuICdkYXRldGltZW9mZnNldCgnICsgKHRoaXMucmVzb2x2ZVNjYWxlKHBhcmFtZXRlcikpICsgJyknO1xuICB9LFxuICByZXNvbHZlU2NhbGU6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGlmIChwYXJhbWV0ZXIuc2NhbGUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5zY2FsZTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtZXRlci52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA3O1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKHBhcmFtZXRlcikge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShbdGhpcy5pZCwgcGFyYW1ldGVyLnNjYWxlIV0pO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgIH1cblxuICAgIHN3aXRjaCAocGFyYW1ldGVyLnNjYWxlKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICBjYXNlIDE6XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShbMHgwOF0pO1xuXG4gICAgICBjYXNlIDM6XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShbMHgwOV0pO1xuXG4gICAgICBjYXNlIDU6XG4gICAgICBjYXNlIDY6XG4gICAgICBjYXNlIDc6XG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShbMHgwQV0pO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc2NhbGUnKTtcbiAgICB9XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWU7XG4gICAgbGV0IHNjYWxlID0gcGFyYW1ldGVyLnNjYWxlO1xuXG4gICAgY29uc3QgYnVmZmVyID0gbmV3IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIoMTYpO1xuICAgIHNjYWxlID0gc2NhbGUhO1xuXG4gICAgbGV0IHRpbWVzdGFtcDtcbiAgICB0aW1lc3RhbXAgPSAoKHZhbHVlLmdldFVUQ0hvdXJzKCkgKiA2MCArIHZhbHVlLmdldFVUQ01pbnV0ZXMoKSkgKiA2MCArIHZhbHVlLmdldFVUQ1NlY29uZHMoKSkgKiAxMDAwICsgdmFsdWUuZ2V0TWlsbGlzZWNvbmRzKCk7XG4gICAgdGltZXN0YW1wID0gdGltZXN0YW1wICogTWF0aC5wb3coMTAsIHNjYWxlIC0gMyk7XG4gICAgdGltZXN0YW1wICs9ICh2YWx1ZS5uYW5vc2Vjb25kRGVsdGEgIT0gbnVsbCA/IHZhbHVlLm5hbm9zZWNvbmREZWx0YSA6IDApICogTWF0aC5wb3coMTAsIHNjYWxlKTtcbiAgICB0aW1lc3RhbXAgPSBNYXRoLnJvdW5kKHRpbWVzdGFtcCk7XG5cbiAgICBzd2l0Y2ggKHNjYWxlKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICBjYXNlIDE6XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGJ1ZmZlci53cml0ZVVJbnQyNExFKHRpbWVzdGFtcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgY2FzZSA0OlxuICAgICAgICBidWZmZXIud3JpdGVVSW50MzJMRSh0aW1lc3RhbXApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNTpcbiAgICAgIGNhc2UgNjpcbiAgICAgIGNhc2UgNzpcbiAgICAgICAgYnVmZmVyLndyaXRlVUludDQwTEUodGltZXN0YW1wKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIHZhbHVlLmdldFVUQ01vbnRoKCkgKyAxLCB2YWx1ZS5nZXRVVENEYXRlKCkpO1xuICAgIGNvbnN0IGRheXMgPSBFUE9DSF9EQVRFLnVudGlsKGRhdGUsIENocm9ub1VuaXQuREFZUyk7XG4gICAgYnVmZmVyLndyaXRlVUludDI0TEUoZGF5cyk7XG5cbiAgICBjb25zdCBvZmZzZXQgPSAtdmFsdWUuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgICBidWZmZXIud3JpdGVJbnQxNkxFKG9mZnNldCk7XG4gICAgeWllbGQgYnVmZmVyLmRhdGE7XG4gIH0sXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IG51bGwgfCBudW1iZXIge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBEYXRlKERhdGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZU9mZnNldDtcbm1vZHVsZS5leHBvcnRzID0gRGF0ZVRpbWVPZmZzZXQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLHVCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFBaUYsU0FBQUUsdUJBQUFDLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFakYsTUFBTUcsVUFBVSxHQUFHQyxlQUFTLENBQUNDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLE1BQU1DLFdBQVcsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUV2QyxNQUFNQyxjQUFrRixHQUFHO0VBQ3pGQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsaUJBQWlCO0VBQ3ZCQyxJQUFJLEVBQUUsZ0JBQWdCO0VBQ3RCQyxXQUFXLEVBQUUsU0FBQUEsQ0FBU0MsU0FBUyxFQUFFO0lBQy9CLE9BQU8saUJBQWlCLEdBQUksSUFBSSxDQUFDQyxZQUFZLENBQUNELFNBQVMsQ0FBRSxHQUFHLEdBQUc7RUFDakUsQ0FBQztFQUNEQyxZQUFZLEVBQUUsU0FBQUEsQ0FBU0QsU0FBUyxFQUFFO0lBQ2hDLElBQUlBLFNBQVMsQ0FBQ0UsS0FBSyxJQUFJLElBQUksRUFBRTtNQUMzQixPQUFPRixTQUFTLENBQUNFLEtBQUs7SUFDeEIsQ0FBQyxNQUFNLElBQUlGLFNBQVMsQ0FBQ0csS0FBSyxLQUFLLElBQUksRUFBRTtNQUNuQyxPQUFPLENBQUM7SUFDVixDQUFDLE1BQU07TUFDTCxPQUFPLENBQUM7SUFDVjtFQUNG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
114
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJNSU5fREFURSIsIkRhdGUiLCJNQVhfREFURSIsIkRhdGVUaW1lT2Zmc2V0IiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwicmVzb2x2ZVNjYWxlIiwic2NhbGUiLCJ2YWx1ZSIsImdlbmVyYXRlVHlwZUluZm8iLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsIm9wdGlvbnMiLCJFcnJvciIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsImJ1ZmZlciIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJ0aW1lc3RhbXAiLCJnZXRVVENIb3VycyIsImdldFVUQ01pbnV0ZXMiLCJnZXRVVENTZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwiTWF0aCIsInBvdyIsIm5hbm9zZWNvbmREZWx0YSIsInJvdW5kIiwid3JpdGVVSW50MjRMRSIsIndyaXRlVUludDMyTEUiLCJ3cml0ZVVJbnQ0MExFIiwiZGF0ZSIsIm9mIiwiZ2V0VVRDRnVsbFllYXIiLCJnZXRVVENNb250aCIsImdldFVUQ0RhdGUiLCJkYXlzIiwidW50aWwiLCJDaHJvbm9Vbml0IiwiREFZUyIsIm9mZnNldCIsImdldFRpbWV6b25lT2Zmc2V0Iiwid3JpdGVJbnQxNkxFIiwiZGF0YSIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwicGFyc2UiLCJ1c2VVVEMiLCJ0b1VUQ1N0cmluZyIsIlR5cGVFcnJvciIsImlzTmFOIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGF0ZXRpbWVvZmZzZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBDaHJvbm9Vbml0LCBMb2NhbERhdGUgfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCBXcml0YWJsZVRyYWNraW5nQnVmZmVyIGZyb20gJy4uL3RyYWNraW5nLWJ1ZmZlci93cml0YWJsZS10cmFja2luZy1idWZmZXInO1xuXG5jb25zdCBFUE9DSF9EQVRFID0gTG9jYWxEYXRlLm9mWWVhckRheSgxLCAxKTtcbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4MDBdKTtcblxuY29uc3QgTUlOX0RBVEUgPSBuZXcgRGF0ZSgnSmFudWFyeSAxLCAwMDAxJyk7XG5jb25zdCBNQVhfREFURSA9IG5ldyBEYXRlKCdEZWNlbWJlciAzMSwgOTk5OScpO1xuXG5jb25zdCBEYXRlVGltZU9mZnNldDogRGF0YVR5cGUgJiB7IHJlc29sdmVTY2FsZTogTm9uTnVsbGFibGU8RGF0YVR5cGVbJ3Jlc29sdmVTY2FsZSddPiB9ID0ge1xuICBpZDogMHgyQixcbiAgdHlwZTogJ0RBVEVUSU1FT0ZGU0VUTicsXG4gIG5hbWU6ICdEYXRlVGltZU9mZnNldCcsXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICByZXR1cm4gJ2RhdGV0aW1lb2Zmc2V0KCcgKyAodGhpcy5yZXNvbHZlU2NhbGUocGFyYW1ldGVyKSkgKyAnKSc7XG4gIH0sXG4gIHJlc29sdmVTY2FsZTogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgaWYgKHBhcmFtZXRlci5zY2FsZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLnNjYWxlO1xuICAgIH0gZWxzZSBpZiAocGFyYW1ldGVyLnZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDc7XG4gICAgfVxuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFt0aGlzLmlkLCBwYXJhbWV0ZXIuc2NhbGUhXSk7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgc3dpdGNoIChwYXJhbWV0ZXIuc2NhbGUpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgIGNhc2UgMTpcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDA4XSk7XG5cbiAgICAgIGNhc2UgMzpcbiAgICAgIGNhc2UgNDpcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDA5XSk7XG5cbiAgICAgIGNhc2UgNTpcbiAgICAgIGNhc2UgNjpcbiAgICAgIGNhc2UgNzpcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDBBXSk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzY2FsZScpO1xuICAgIH1cbiAgfSxcblxuICAqIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZTtcbiAgICBsZXQgc2NhbGUgPSBwYXJhbWV0ZXIuc2NhbGU7XG5cbiAgICBjb25zdCBidWZmZXIgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcigxNik7XG4gICAgc2NhbGUgPSBzY2FsZSE7XG5cbiAgICBsZXQgdGltZXN0YW1wOiBudW1iZXI7XG4gICAgdGltZXN0YW1wID0gKCh2YWx1ZS5nZXRVVENIb3VycygpICogNjAgKyB2YWx1ZS5nZXRVVENNaW51dGVzKCkpICogNjAgKyB2YWx1ZS5nZXRVVENTZWNvbmRzKCkpICogMTAwMCArIHZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIHRpbWVzdGFtcCA9IHRpbWVzdGFtcCAqIE1hdGgucG93KDEwLCBzY2FsZSAtIDMpO1xuICAgIHRpbWVzdGFtcCArPSAodmFsdWUubmFub3NlY29uZERlbHRhICE9IG51bGwgPyB2YWx1ZS5uYW5vc2Vjb25kRGVsdGEgOiAwKSAqIE1hdGgucG93KDEwLCBzY2FsZSk7XG4gICAgdGltZXN0YW1wID0gTWF0aC5yb3VuZCh0aW1lc3RhbXApO1xuXG4gICAgc3dpdGNoIChzY2FsZSkge1xuICAgICAgY2FzZSAwOlxuICAgICAgY2FzZSAxOlxuICAgICAgY2FzZSAyOlxuICAgICAgICBidWZmZXIud3JpdGVVSW50MjRMRSh0aW1lc3RhbXApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgIGNhc2UgNDpcbiAgICAgICAgYnVmZmVyLndyaXRlVUludDMyTEUodGltZXN0YW1wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDU6XG4gICAgICBjYXNlIDY6XG4gICAgICBjYXNlIDc6XG4gICAgICAgIGJ1ZmZlci53cml0ZVVJbnQ0MExFKHRpbWVzdGFtcCk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZSA9IExvY2FsRGF0ZS5vZih2YWx1ZS5nZXRVVENGdWxsWWVhcigpLCB2YWx1ZS5nZXRVVENNb250aCgpICsgMSwgdmFsdWUuZ2V0VVRDRGF0ZSgpKTtcbiAgICBjb25zdCBkYXlzID0gRVBPQ0hfREFURS51bnRpbChkYXRlLCBDaHJvbm9Vbml0LkRBWVMpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQyNExFKGRheXMpO1xuXG4gICAgY29uc3Qgb2Zmc2V0ID0gLXZhbHVlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG4gICAgYnVmZmVyLndyaXRlSW50MTZMRShvZmZzZXQpO1xuICAgIHlpZWxkIGJ1ZmZlci5kYXRhO1xuICB9LFxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWU6IGFueSwgY29sbGF0aW9uLCBvcHRpb25zKTogbnVsbCB8IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgYXMgRGF0ZTtcblxuICAgIC8vIFRPRE86IGNoZWNrIGRhdGUgcmFuZ2U6IEphbnVhcnkgMSwgMDAwMSwgdGhyb3VnaCBEZWNlbWJlciAzMSwgOTk5OVxuICAgIC8vICAgIDogdGltZSByYW5nZTogMDA6MDA6MDAgdGhyb3VnaCAyMzo1OTo1OS45OTdcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnVzZVVUQykge1xuICAgICAgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZS50b1VUQ1N0cmluZygpKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPCBNSU5fREFURSB8fCB2YWx1ZSA+IE1BWF9EQVRFKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPdXQgb2YgcmFuZ2UuJyk7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBkYXRlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVRpbWVPZmZzZXQ7XG5tb2R1bGUuZXhwb3J0cyA9IERhdGVUaW1lT2Zmc2V0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxLQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQWlGLFNBQUFFLHVCQUFBQyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBRWpGLE1B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
@@ -1 +1 @@
1
- {"version":3,"file":"datetimeoffset.js","names":["_core","require","_writableTrackingBuffer","_interopRequireDefault","obj","__esModule","default","EPOCH_DATE","LocalDate","ofYearDay","NULL_LENGTH","Buffer","from","DateTimeOffset","id","type","name","declaration","parameter","resolveScale","scale","value","generateTypeInfo","generateParameterLength","options","Error","generateParameterData","buffer","WritableTrackingBuffer","timestamp","getUTCHours","getUTCMinutes","getUTCSeconds","getMilliseconds","Math","pow","nanosecondDelta","round","writeUInt24LE","writeUInt32LE","writeUInt40LE","date","of","getUTCFullYear","getUTCMonth","getUTCDate","days","until","ChronoUnit","DAYS","offset","getTimezoneOffset","writeInt16LE","data","validate","Date","parse","isNaN","TypeError","_default","exports","module"],"sources":["../../src/data-types/datetimeoffset.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport { ChronoUnit, LocalDate } from '@js-joda/core';\nimport WritableTrackingBuffer from '../tracking-buffer/writable-tracking-buffer';\n\nconst EPOCH_DATE = LocalDate.ofYearDay(1, 1);\nconst NULL_LENGTH = Buffer.from([0x00]);\n\nconst DateTimeOffset: DataType & { resolveScale: NonNullable<DataType['resolveScale']> } = {\n id: 0x2B,\n type: 'DATETIMEOFFSETN',\n name: 'DateTimeOffset',\n declaration: function(parameter) {\n return 'datetimeoffset(' + (this.resolveScale(parameter)) + ')';\n },\n resolveScale: function(parameter) {\n if (parameter.scale != null) {\n return parameter.scale;\n } else if (parameter.value === null) {\n return 0;\n } else {\n return 7;\n }\n },\n\n generateTypeInfo(parameter) {\n return Buffer.from([this.id, parameter.scale!]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n switch (parameter.scale) {\n case 0:\n case 1:\n case 2:\n return Buffer.from([0x08]);\n\n case 3:\n case 4:\n return Buffer.from([0x09]);\n\n case 5:\n case 6:\n case 7:\n return Buffer.from([0x0A]);\n\n default:\n throw new Error('invalid scale');\n }\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value;\n let scale = parameter.scale;\n\n const buffer = new WritableTrackingBuffer(16);\n scale = scale!;\n\n let timestamp;\n timestamp = ((value.getUTCHours() * 60 + value.getUTCMinutes()) * 60 + value.getUTCSeconds()) * 1000 + value.getMilliseconds();\n timestamp = timestamp * Math.pow(10, scale - 3);\n timestamp += (value.nanosecondDelta != null ? value.nanosecondDelta : 0) * Math.pow(10, scale);\n timestamp = Math.round(timestamp);\n\n switch (scale) {\n case 0:\n case 1:\n case 2:\n buffer.writeUInt24LE(timestamp);\n break;\n case 3:\n case 4:\n buffer.writeUInt32LE(timestamp);\n break;\n case 5:\n case 6:\n case 7:\n buffer.writeUInt40LE(timestamp);\n }\n\n const date = LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());\n const days = EPOCH_DATE.until(date, ChronoUnit.DAYS);\n buffer.writeUInt24LE(days);\n\n const offset = -value.getTimezoneOffset();\n buffer.writeInt16LE(offset);\n yield buffer.data;\n },\n validate: function(value): null | number {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default DateTimeOffset;\nmodule.exports = DateTimeOffset;\n"],"mappings":"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"}
1
+ {"version":3,"file":"datetimeoffset.js","names":["_core","require","_writableTrackingBuffer","_interopRequireDefault","obj","__esModule","default","EPOCH_DATE","LocalDate","ofYearDay","NULL_LENGTH","Buffer","from","MIN_DATE","Date","MAX_DATE","DateTimeOffset","id","type","name","declaration","parameter","resolveScale","scale","value","generateTypeInfo","generateParameterLength","options","Error","generateParameterData","buffer","WritableTrackingBuffer","timestamp","getUTCHours","getUTCMinutes","getUTCSeconds","getMilliseconds","Math","pow","nanosecondDelta","round","writeUInt24LE","writeUInt32LE","writeUInt40LE","date","of","getUTCFullYear","getUTCMonth","getUTCDate","days","until","ChronoUnit","DAYS","offset","getTimezoneOffset","writeInt16LE","data","validate","collation","parse","useUTC","toUTCString","TypeError","isNaN","_default","exports","module"],"sources":["../../src/data-types/datetimeoffset.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport { ChronoUnit, LocalDate } from '@js-joda/core';\nimport WritableTrackingBuffer from '../tracking-buffer/writable-tracking-buffer';\n\nconst EPOCH_DATE = LocalDate.ofYearDay(1, 1);\nconst NULL_LENGTH = Buffer.from([0x00]);\n\nconst MIN_DATE = new Date('January 1, 0001');\nconst MAX_DATE = new Date('December 31, 9999');\n\nconst DateTimeOffset: DataType & { resolveScale: NonNullable<DataType['resolveScale']> } = {\n id: 0x2B,\n type: 'DATETIMEOFFSETN',\n name: 'DateTimeOffset',\n declaration: function(parameter) {\n return 'datetimeoffset(' + (this.resolveScale(parameter)) + ')';\n },\n resolveScale: function(parameter) {\n if (parameter.scale != null) {\n return parameter.scale;\n } else if (parameter.value === null) {\n return 0;\n } else {\n return 7;\n }\n },\n\n generateTypeInfo(parameter) {\n return Buffer.from([this.id, parameter.scale!]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n switch (parameter.scale) {\n case 0:\n case 1:\n case 2:\n return Buffer.from([0x08]);\n\n case 3:\n case 4:\n return Buffer.from([0x09]);\n\n case 5:\n case 6:\n case 7:\n return Buffer.from([0x0A]);\n\n default:\n throw new Error('invalid scale');\n }\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value;\n let scale = parameter.scale;\n\n const buffer = new WritableTrackingBuffer(16);\n scale = scale!;\n\n let timestamp: number;\n timestamp = ((value.getUTCHours() * 60 + value.getUTCMinutes()) * 60 + value.getUTCSeconds()) * 1000 + value.getMilliseconds();\n timestamp = timestamp * Math.pow(10, scale - 3);\n timestamp += (value.nanosecondDelta != null ? value.nanosecondDelta : 0) * Math.pow(10, scale);\n timestamp = Math.round(timestamp);\n\n switch (scale) {\n case 0:\n case 1:\n case 2:\n buffer.writeUInt24LE(timestamp);\n break;\n case 3:\n case 4:\n buffer.writeUInt32LE(timestamp);\n break;\n case 5:\n case 6:\n case 7:\n buffer.writeUInt40LE(timestamp);\n }\n\n const date = LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());\n const days = EPOCH_DATE.until(date, ChronoUnit.DAYS);\n buffer.writeUInt24LE(days);\n\n const offset = -value.getTimezoneOffset();\n buffer.writeInt16LE(offset);\n yield buffer.data;\n },\n validate: function(value: any, collation, options): null | number {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n value = value as Date;\n\n // TODO: check date range: January 1, 0001, through December 31, 9999\n // : time range: 00:00:00 through 23:59:59.997\n if (options && options.useUTC) {\n value = new Date(value.toUTCString());\n }\n\n if (value < MIN_DATE || value > MAX_DATE) {\n throw new TypeError('Out of range.');\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default DateTimeOffset;\nmodule.exports = DateTimeOffset;\n"],"mappings":"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"}
@@ -44,10 +44,17 @@ const Money = {
44
44
  if (isNaN(value)) {
45
45
  throw new TypeError('Invalid number.');
46
46
  }
47
+ // money: -922337203685477.5808 to 922337203685477.5807
48
+ // in javascript -922337203685477.5808 === -922337203685477.6
49
+ // 922337203685477.5807 === 922337203685477.6
50
+ // javascript number doesn't have enough precision.
51
+ if (value < -922337203685477.6 || value > 922337203685477.6) {
52
+ throw new TypeError('Value must be between -922337203685477.5808 and 922337203685477.5807, inclusive.');
53
+ }
47
54
  return value;
48
55
  }
49
56
  };
50
57
  var _default = Money;
51
58
  exports.default = _default;
52
59
  module.exports = Money;
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9uZXluIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlNISUZUX0xFRlRfMzIiLCJTSElGVF9SSUdIVF8zMiIsIk5VTExfTEVOR1RIIiwiQnVmZmVyIiwiZnJvbSIsIkRBVEFfTEVOR1RIIiwiTW9uZXkiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJnZW5lcmF0ZVR5cGVJbmZvIiwiTW9uZXlOIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJwYXJhbWV0ZXIiLCJvcHRpb25zIiwidmFsdWUiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlSW50MzJMRSIsIk1hdGgiLCJmbG9vciIsInZhbGlkYXRlIiwicGFyc2VGbG9hdCIsImlzTmFOIiwiVHlwZUVycm9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvbW9uZXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgTW9uZXlOIGZyb20gJy4vbW9uZXluJztcblxuY29uc3QgU0hJRlRfTEVGVF8zMiA9ICgxIDw8IDE2KSAqICgxIDw8IDE2KTtcbmNvbnN0IFNISUZUX1JJR0hUXzMyID0gMSAvIFNISUZUX0xFRlRfMzI7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4MDBdKTtcbmNvbnN0IERBVEFfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4MDhdKTtcblxuY29uc3QgTW9uZXk6IERhdGFUeXBlID0ge1xuICBpZDogMHgzQyxcbiAgdHlwZTogJ01PTkVZJyxcbiAgbmFtZTogJ01vbmV5JyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdtb25leSc7XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbzogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFtNb25leU4uaWQsIDB4MDhdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICByZXR1cm4gREFUQV9MRU5HVEg7XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgKiAxMDAwMDtcblxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg4KTtcbiAgICBidWZmZXIud3JpdGVJbnQzMkxFKE1hdGguZmxvb3IodmFsdWUgKiBTSElGVF9SSUdIVF8zMiksIDApO1xuICAgIGJ1ZmZlci53cml0ZUludDMyTEUodmFsdWUgJiAtMSwgNCk7XG4gICAgeWllbGQgYnVmZmVyO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG51bWJlci4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNb25leTtcbm1vZHVsZS5leHBvcnRzID0gTW9uZXk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUE4QixTQUFBRCx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUU5QixNQUFNRyxhQUFhLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDM0MsTUFBTUMsY0FBYyxHQUFHLENBQUMsR0FBR0QsYUFBYTtBQUV4QyxNQUFNRSxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsTUFBTUMsV0FBVyxHQUFHRixNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXZDLE1BQU1FLEtBQWUsR0FBRztFQUN0QkMsRUFBRSxFQUFFLElBQUk7RUFDUkMsSUFBSSxFQUFFLE9BQU87RUFDYkMsSUFBSSxFQUFFLE9BQU87RUFFYkMsV0FBVyxFQUFFLFNBQUFBLENBQUEsRUFBVztJQUN0QixPQUFPLE9BQU87RUFDaEIsQ0FBQztFQUVEQyxnQkFBZ0IsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDM0IsT0FBT1IsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQ1EsZUFBTSxDQUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7RUFDdkMsQ0FBQztFQUVETSx1QkFBdUJBLENBQUNDLFNBQVMsRUFBRUMsT0FBTyxFQUFFO0lBQzFDLElBQUlELFNBQVMsQ0FBQ0UsS0FBSyxJQUFJLElBQUksRUFBRTtNQUMzQixPQUFPZCxXQUFXO0lBQ3BCO0lBRUEsT0FBT0csV0FBVztFQUNwQixDQUFDO0VBRUQsQ0FBRVkscUJBQXFCQSxDQUFDSCxTQUFTLEVBQUVDLE9BQU8sRUFBRTtJQUMxQyxJQUFJRCxTQUFTLENBQUNFLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDM0I7SUFDRjtJQUVBLE1BQU1BLEtBQUssR0FBR0YsU0FBUyxDQUFDRSxLQUFLLEdBQUcsS0FBSztJQUVyQyxNQUFNRSxNQUFNLEdBQUdmLE1BQU0sQ0FBQ2dCLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUJELE1BQU0sQ0FBQ0UsWUFBWSxDQUFDQyxJQUFJLENBQUNDLEtBQUssQ0FBQ04sS0FBSyxHQUFHZixjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMURpQixNQUFNLENBQUNFLFlBQVksQ0FBQ0osS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQyxNQUFNRSxNQUFNO0VBQ2QsQ0FBQztFQUVESyxRQUFRLEVBQUUsU0FBQUEsQ0FBU1AsS0FBSyxFQUFpQjtJQUN2QyxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCLE9BQU8sSUFBSTtJQUNiO0lBQ0FBLEtBQUssR0FBR1EsVUFBVSxDQUFDUixLQUFLLENBQUM7SUFDekIsSUFBSVMsS0FBSyxDQUFDVCxLQUFLLENBQUMsRUFBRTtNQUNoQixNQUFNLElBQUlVLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QztJQUNBLE9BQU9WLEtBQUs7RUFDZDtBQUNGLENBQUM7QUFBQyxJQUFBVyxRQUFBLEdBRWFyQixLQUFLO0FBQUFzQixPQUFBLENBQUE3QixPQUFBLEdBQUE0QixRQUFBO0FBQ3BCRSxNQUFNLENBQUNELE9BQU8sR0FBR3RCLEtBQUsifQ==
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9uZXluIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlNISUZUX0xFRlRfMzIiLCJTSElGVF9SSUdIVF8zMiIsIk5VTExfTEVOR1RIIiwiQnVmZmVyIiwiZnJvbSIsIkRBVEFfTEVOR1RIIiwiTW9uZXkiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJnZW5lcmF0ZVR5cGVJbmZvIiwiTW9uZXlOIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJwYXJhbWV0ZXIiLCJvcHRpb25zIiwidmFsdWUiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlSW50MzJMRSIsIk1hdGgiLCJmbG9vciIsInZhbGlkYXRlIiwicGFyc2VGbG9hdCIsImlzTmFOIiwiVHlwZUVycm9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvbW9uZXkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgTW9uZXlOIGZyb20gJy4vbW9uZXluJztcblxuY29uc3QgU0hJRlRfTEVGVF8zMiA9ICgxIDw8IDE2KSAqICgxIDw8IDE2KTtcbmNvbnN0IFNISUZUX1JJR0hUXzMyID0gMSAvIFNISUZUX0xFRlRfMzI7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4MDBdKTtcbmNvbnN0IERBVEFfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4MDhdKTtcblxuY29uc3QgTW9uZXk6IERhdGFUeXBlID0ge1xuICBpZDogMHgzQyxcbiAgdHlwZTogJ01PTkVZJyxcbiAgbmFtZTogJ01vbmV5JyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdtb25leSc7XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbzogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFtNb25leU4uaWQsIDB4MDhdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICByZXR1cm4gREFUQV9MRU5HVEg7XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgKiAxMDAwMDtcblxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg4KTtcbiAgICBidWZmZXIud3JpdGVJbnQzMkxFKE1hdGguZmxvb3IodmFsdWUgKiBTSElGVF9SSUdIVF8zMiksIDApO1xuICAgIGJ1ZmZlci53cml0ZUludDMyTEUodmFsdWUgJiAtMSwgNCk7XG4gICAgeWllbGQgYnVmZmVyO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG51bWJlci4nKTtcbiAgICB9XG4gICAgLy8gbW9uZXnvvJogLTkyMjMzNzIwMzY4NTQ3Ny41ODA4IHRvIDkyMjMzNzIwMzY4NTQ3Ny41ODA3XG4gICAgLy8gaW4gamF2YXNjcmlwdCAtOTIyMzM3MjAzNjg1NDc3LjU4MDggPT09IC05MjIzMzcyMDM2ODU0NzcuNlxuICAgIC8vICAgICAgICAgICAgICAgIDkyMjMzNzIwMzY4NTQ3Ny41ODA3ID09PSA5MjIzMzcyMDM2ODU0NzcuNlxuICAgIC8vIGphdmFzY3JpcHQgbnVtYmVyIGRvZXNuJ3QgaGF2ZSBlbm91Z2ggcHJlY2lzaW9uLlxuICAgIGlmICh2YWx1ZSA8IC05MjIzMzcyMDM2ODU0NzcuNiB8fCB2YWx1ZSA+IDkyMjMzNzIwMzY4NTQ3Ny42KSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdWYWx1ZSBtdXN0IGJlIGJldHdlZW4gLTkyMjMzNzIwMzY4NTQ3Ny41ODA4IGFuZCA5MjIzMzcyMDM2ODU0NzcuNTgwNywgaW5jbHVzaXZlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uZXk7XG5tb2R1bGUuZXhwb3J0cyA9IE1vbmV5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBOEIsU0FBQUQsdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFOUIsTUFBTUcsYUFBYSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzNDLE1BQU1DLGNBQWMsR0FBRyxDQUFDLEdBQUdELGFBQWE7QUFFeEMsTUFBTUUsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLE1BQU1DLFdBQVcsR0FBR0YsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUV2QyxNQUFNRSxLQUFlLEdBQUc7RUFDdEJDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxPQUFPO0VBQ2JDLElBQUksRUFBRSxPQUFPO0VBRWJDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxPQUFPO0VBQ2hCLENBQUM7RUFFREMsZ0JBQWdCLEVBQUUsU0FBQUEsQ0FBQSxFQUFXO0lBQzNCLE9BQU9SLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUNRLGVBQU0sQ0FBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0VBQ3ZDLENBQUM7RUFFRE0sdUJBQXVCQSxDQUFDQyxTQUFTLEVBQUVDLE9BQU8sRUFBRTtJQUMxQyxJQUFJRCxTQUFTLENBQUNFLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDM0IsT0FBT2QsV0FBVztJQUNwQjtJQUVBLE9BQU9HLFdBQVc7RUFDcEIsQ0FBQztFQUVELENBQUVZLHFCQUFxQkEsQ0FBQ0gsU0FBUyxFQUFFQyxPQUFPLEVBQUU7SUFDMUMsSUFBSUQsU0FBUyxDQUFDRSxLQUFLLElBQUksSUFBSSxFQUFFO01BQzNCO0lBQ0Y7SUFFQSxNQUFNQSxLQUFLLEdBQUdGLFNBQVMsQ0FBQ0UsS0FBSyxHQUFHLEtBQUs7SUFFckMsTUFBTUUsTUFBTSxHQUFHZixNQUFNLENBQUNnQixLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlCRCxNQUFNLENBQUNFLFlBQVksQ0FBQ0MsSUFBSSxDQUFDQyxLQUFLLENBQUNOLEtBQUssR0FBR2YsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzFEaUIsTUFBTSxDQUFDRSxZQUFZLENBQUNKLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsTUFBTUUsTUFBTTtFQUNkLENBQUM7RUFFREssUUFBUSxFQUFFLFNBQUFBLENBQVNQLEtBQUssRUFBaUI7SUFDdkMsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPLElBQUk7SUFDYjtJQUNBQSxLQUFLLEdBQUdRLFVBQVUsQ0FBQ1IsS0FBSyxDQUFDO0lBQ3pCLElBQUlTLEtBQUssQ0FBQ1QsS0FBSyxDQUFDLEVBQUU7TUFDaEIsTUFBTSxJQUFJVSxTQUFTLENBQUMsaUJBQWlCLENBQUM7SUFDeEM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBLElBQUlWLEtBQUssR0FBRyxDQUFDLGlCQUFpQixJQUFJQSxLQUFLLEdBQUcsaUJBQWlCLEVBQUU7TUFDM0QsTUFBTSxJQUFJVSxTQUFTLENBQUMsa0ZBQWtGLENBQUM7SUFDekc7SUFFQSxPQUFPVixLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQVcsUUFBQSxHQUVhckIsS0FBSztBQUFBc0IsT0FBQSxDQUFBN0IsT0FBQSxHQUFBNEIsUUFBQTtBQUNwQkUsTUFBTSxDQUFDRCxPQUFPLEdBQUd0QixLQUFLIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"money.js","names":["_moneyn","_interopRequireDefault","require","obj","__esModule","default","SHIFT_LEFT_32","SHIFT_RIGHT_32","NULL_LENGTH","Buffer","from","DATA_LENGTH","Money","id","type","name","declaration","generateTypeInfo","MoneyN","generateParameterLength","parameter","options","value","generateParameterData","buffer","alloc","writeInt32LE","Math","floor","validate","parseFloat","isNaN","TypeError","_default","exports","module"],"sources":["../../src/data-types/money.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport MoneyN from './moneyn';\n\nconst SHIFT_LEFT_32 = (1 << 16) * (1 << 16);\nconst SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n\nconst NULL_LENGTH = Buffer.from([0x00]);\nconst DATA_LENGTH = Buffer.from([0x08]);\n\nconst Money: DataType = {\n id: 0x3C,\n type: 'MONEY',\n name: 'Money',\n\n declaration: function() {\n return 'money';\n },\n\n generateTypeInfo: function() {\n return Buffer.from([MoneyN.id, 0x08]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value * 10000;\n\n const buffer = Buffer.alloc(8);\n buffer.writeInt32LE(Math.floor(value * SHIFT_RIGHT_32), 0);\n buffer.writeInt32LE(value & -1, 4);\n yield buffer;\n },\n\n validate: function(value): number | null {\n if (value == null) {\n return null;\n }\n value = parseFloat(value);\n if (isNaN(value)) {\n throw new TypeError('Invalid number.');\n }\n return value;\n }\n};\n\nexport default Money;\nmodule.exports = Money;\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8B,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE9B,MAAMG,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC3C,MAAMC,cAAc,GAAG,CAAC,GAAGD,aAAa;AAExC,MAAME,WAAW,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,MAAMC,WAAW,GAAGF,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvC,MAAME,KAAe,GAAG;EACtBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,OAAO;EACbC,IAAI,EAAE,OAAO;EAEbC,WAAW,EAAE,SAAAA,CAAA,EAAW;IACtB,OAAO,OAAO;EAChB,CAAC;EAEDC,gBAAgB,EAAE,SAAAA,CAAA,EAAW;IAC3B,OAAOR,MAAM,CAACC,IAAI,CAAC,CAACQ,eAAM,CAACL,EAAE,EAAE,IAAI,CAAC,CAAC;EACvC,CAAC;EAEDM,uBAAuBA,CAACC,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B,OAAOd,WAAW;IACpB;IAEA,OAAOG,WAAW;EACpB,CAAC;EAED,CAAEY,qBAAqBA,CAACH,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B;IACF;IAEA,MAAMA,KAAK,GAAGF,SAAS,CAACE,KAAK,GAAG,KAAK;IAErC,MAAME,MAAM,GAAGf,MAAM,CAACgB,KAAK,CAAC,CAAC,CAAC;IAC9BD,MAAM,CAACE,YAAY,CAACC,IAAI,CAACC,KAAK,CAACN,KAAK,GAAGf,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1DiB,MAAM,CAACE,YAAY,CAACJ,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,MAAME,MAAM;EACd,CAAC;EAEDK,QAAQ,EAAE,SAAAA,CAASP,KAAK,EAAiB;IACvC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IACAA,KAAK,GAAGQ,UAAU,CAACR,KAAK,CAAC;IACzB,IAAIS,KAAK,CAACT,KAAK,CAAC,EAAE;MAChB,MAAM,IAAIU,SAAS,CAAC,iBAAiB,CAAC;IACxC;IACA,OAAOV,KAAK;EACd;AACF,CAAC;AAAC,IAAAW,QAAA,GAEarB,KAAK;AAAAsB,OAAA,CAAA7B,OAAA,GAAA4B,QAAA;AACpBE,MAAM,CAACD,OAAO,GAAGtB,KAAK"}
1
+ {"version":3,"file":"money.js","names":["_moneyn","_interopRequireDefault","require","obj","__esModule","default","SHIFT_LEFT_32","SHIFT_RIGHT_32","NULL_LENGTH","Buffer","from","DATA_LENGTH","Money","id","type","name","declaration","generateTypeInfo","MoneyN","generateParameterLength","parameter","options","value","generateParameterData","buffer","alloc","writeInt32LE","Math","floor","validate","parseFloat","isNaN","TypeError","_default","exports","module"],"sources":["../../src/data-types/money.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport MoneyN from './moneyn';\n\nconst SHIFT_LEFT_32 = (1 << 16) * (1 << 16);\nconst SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n\nconst NULL_LENGTH = Buffer.from([0x00]);\nconst DATA_LENGTH = Buffer.from([0x08]);\n\nconst Money: DataType = {\n id: 0x3C,\n type: 'MONEY',\n name: 'Money',\n\n declaration: function() {\n return 'money';\n },\n\n generateTypeInfo: function() {\n return Buffer.from([MoneyN.id, 0x08]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const value = parameter.value * 10000;\n\n const buffer = Buffer.alloc(8);\n buffer.writeInt32LE(Math.floor(value * SHIFT_RIGHT_32), 0);\n buffer.writeInt32LE(value & -1, 4);\n yield buffer;\n },\n\n validate: function(value): number | null {\n if (value == null) {\n return null;\n }\n value = parseFloat(value);\n if (isNaN(value)) {\n throw new TypeError('Invalid number.');\n }\n // money: -922337203685477.5808 to 922337203685477.5807\n // in javascript -922337203685477.5808 === -922337203685477.6\n // 922337203685477.5807 === 922337203685477.6\n // javascript number doesn't have enough precision.\n if (value < -922337203685477.6 || value > 922337203685477.6) {\n throw new TypeError('Value must be between -922337203685477.5808 and 922337203685477.5807, inclusive.');\n }\n\n return value;\n }\n};\n\nexport default Money;\nmodule.exports = Money;\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8B,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE9B,MAAMG,aAAa,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC3C,MAAMC,cAAc,GAAG,CAAC,GAAGD,aAAa;AAExC,MAAME,WAAW,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,MAAMC,WAAW,GAAGF,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvC,MAAME,KAAe,GAAG;EACtBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,OAAO;EACbC,IAAI,EAAE,OAAO;EAEbC,WAAW,EAAE,SAAAA,CAAA,EAAW;IACtB,OAAO,OAAO;EAChB,CAAC;EAEDC,gBAAgB,EAAE,SAAAA,CAAA,EAAW;IAC3B,OAAOR,MAAM,CAACC,IAAI,CAAC,CAACQ,eAAM,CAACL,EAAE,EAAE,IAAI,CAAC,CAAC;EACvC,CAAC;EAEDM,uBAAuBA,CAACC,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B,OAAOd,WAAW;IACpB;IAEA,OAAOG,WAAW;EACpB,CAAC;EAED,CAAEY,qBAAqBA,CAACH,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B;IACF;IAEA,MAAMA,KAAK,GAAGF,SAAS,CAACE,KAAK,GAAG,KAAK;IAErC,MAAME,MAAM,GAAGf,MAAM,CAACgB,KAAK,CAAC,CAAC,CAAC;IAC9BD,MAAM,CAACE,YAAY,CAACC,IAAI,CAACC,KAAK,CAACN,KAAK,GAAGf,cAAc,CAAC,EAAE,CAAC,CAAC;IAC1DiB,MAAM,CAACE,YAAY,CAACJ,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,MAAME,MAAM;EACd,CAAC;EAEDK,QAAQ,EAAE,SAAAA,CAASP,KAAK,EAAiB;IACvC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IACAA,KAAK,GAAGQ,UAAU,CAACR,KAAK,CAAC;IACzB,IAAIS,KAAK,CAACT,KAAK,CAAC,EAAE;MAChB,MAAM,IAAIU,SAAS,CAAC,iBAAiB,CAAC;IACxC;IACA;IACA;IACA;IACA;IACA,IAAIV,KAAK,GAAG,CAAC,iBAAiB,IAAIA,KAAK,GAAG,iBAAiB,EAAE;MAC3D,MAAM,IAAIU,SAAS,CAAC,kFAAkF,CAAC;IACzG;IAEA,OAAOV,KAAK;EACd;AACF,CAAC;AAAC,IAAAW,QAAA,GAEarB,KAAK;AAAAsB,OAAA,CAAA7B,OAAA,GAAA4B,QAAA;AACpBE,MAAM,CAACD,OAAO,GAAGtB,KAAK"}
@@ -8,6 +8,8 @@ var _datetimen = _interopRequireDefault(require("./datetimen"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
9
  const EPOCH_DATE = new Date(1900, 0, 1);
10
10
  const UTC_EPOCH_DATE = new Date(Date.UTC(1900, 0, 1));
11
+ const MIN_DATE = new Date(1900, 1, 1);
12
+ const MAX_DATE = new Date(2079, 5, 6, 23, 59, 59, 0);
11
13
  const DATA_LENGTH = Buffer.from([0x04]);
12
14
  const NULL_LENGTH = Buffer.from([0x00]);
13
15
  const SmallDateTime = {
@@ -44,13 +46,20 @@ const SmallDateTime = {
44
46
  buffer.writeUInt16LE(minutes, 2);
45
47
  yield buffer;
46
48
  },
47
- validate: function (value) {
49
+ validate: function (value, collation, options) {
48
50
  if (value == null) {
49
51
  return null;
50
52
  }
51
53
  if (!(value instanceof Date)) {
52
54
  value = new Date(Date.parse(value));
53
55
  }
56
+ value = value;
57
+ if (options && options.useUTC) {
58
+ value = new Date(value.toUTCString());
59
+ }
60
+ if (value < MIN_DATE || value > MAX_DATE) {
61
+ throw new TypeError('Out of range.');
62
+ }
54
63
  if (isNaN(value)) {
55
64
  throw new TypeError('Invalid date.');
56
65
  }
@@ -60,4 +69,4 @@ const SmallDateTime = {
60
69
  var _default = SmallDateTime;
61
70
  exports.default = _default;
62
71
  module.exports = SmallDateTime;
63
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0ZXRpbWVuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkVQT0NIX0RBVEUiLCJEYXRlIiwiVVRDX0VQT0NIX0RBVEUiLCJVVEMiLCJEQVRBX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJOVUxMX0xFTkdUSCIsIlNtYWxsRGF0ZVRpbWUiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJnZW5lcmF0ZVR5cGVJbmZvIiwiRGF0ZVRpbWVOIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJwYXJhbWV0ZXIiLCJvcHRpb25zIiwidmFsdWUiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJidWZmZXIiLCJhbGxvYyIsImRheXMiLCJkc3REaWZmIiwibWludXRlcyIsInVzZVVUQyIsIk1hdGgiLCJmbG9vciIsImdldFRpbWUiLCJnZXRVVENIb3VycyIsImdldFVUQ01pbnV0ZXMiLCJnZXRUaW1lem9uZU9mZnNldCIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsIndyaXRlVUludDE2TEUiLCJ2YWxpZGF0ZSIsInBhcnNlIiwiaXNOYU4iLCJUeXBlRXJyb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9zbWFsbGRhdGV0aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IERhdGVUaW1lTiBmcm9tICcuL2RhdGV0aW1lbic7XG5cbmNvbnN0IEVQT0NIX0RBVEUgPSBuZXcgRGF0ZSgxOTAwLCAwLCAxKTtcbmNvbnN0IFVUQ19FUE9DSF9EQVRFID0gbmV3IERhdGUoRGF0ZS5VVEMoMTkwMCwgMCwgMSkpO1xuXG5jb25zdCBEQVRBX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDA0XSk7XG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5cbmNvbnN0IFNtYWxsRGF0ZVRpbWU6IERhdGFUeXBlID0ge1xuICBpZDogMHgzQSxcbiAgdHlwZTogJ0RBVEVUSU00JyxcbiAgbmFtZTogJ1NtYWxsRGF0ZVRpbWUnLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gJ3NtYWxsZGF0ZXRpbWUnO1xuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8oKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFtEYXRlVGltZU4uaWQsIDB4MDRdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICByZXR1cm4gREFUQV9MRU5HVEg7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhOiBmdW5jdGlvbioocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuXG4gICAgbGV0IGRheXMsIGRzdERpZmYsIG1pbnV0ZXM7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcigocGFyYW1ldGVyLnZhbHVlLmdldFRpbWUoKSAtIFVUQ19FUE9DSF9EQVRFLmdldFRpbWUoKSkgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuICAgICAgbWludXRlcyA9IChwYXJhbWV0ZXIudmFsdWUuZ2V0VVRDSG91cnMoKSAqIDYwKSArIHBhcmFtZXRlci52YWx1ZS5nZXRVVENNaW51dGVzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRzdERpZmYgPSAtKHBhcmFtZXRlci52YWx1ZS5nZXRUaW1lem9uZU9mZnNldCgpIC0gRVBPQ0hfREFURS5nZXRUaW1lem9uZU9mZnNldCgpKSAqIDYwICogMTAwMDtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKChwYXJhbWV0ZXIudmFsdWUuZ2V0VGltZSgpIC0gRVBPQ0hfREFURS5nZXRUaW1lKCkgKyBkc3REaWZmKSAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG4gICAgICBtaW51dGVzID0gKHBhcmFtZXRlci52YWx1ZS5nZXRIb3VycygpICogNjApICsgcGFyYW1ldGVyLnZhbHVlLmdldE1pbnV0ZXMoKTtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVVSW50MTZMRShkYXlzLCAwKTtcbiAgICBidWZmZXIud3JpdGVVSW50MTZMRShtaW51dGVzLCAyKTtcblxuICAgIHlpZWxkIGJ1ZmZlcjtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBudWxsIHwgRGF0ZSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNtYWxsRGF0ZVRpbWU7XG5tb2R1bGUuZXhwb3J0cyA9IFNtYWxsRGF0ZVRpbWU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUFvQyxTQUFBRCx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUVwQyxNQUFNRyxVQUFVLEdBQUcsSUFBSUMs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
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0ZXRpbWVuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkVQT0NIX0RBVEUiLCJEYXRlIiwiVVRDX0VQT0NIX0RBVEUiLCJVVEMiLCJNSU5fREFURSIsIk1BWF9EQVRFIiwiREFUQV9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiTlVMTF9MRU5HVEgiLCJTbWFsbERhdGVUaW1lIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwiZ2VuZXJhdGVUeXBlSW5mbyIsIkRhdGVUaW1lTiIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwicGFyYW1ldGVyIiwib3B0aW9ucyIsInZhbHVlIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwiYnVmZmVyIiwiYWxsb2MiLCJkYXlzIiwiZHN0RGlmZiIsIm1pbnV0ZXMiLCJ1c2VVVEMiLCJNYXRoIiwiZmxvb3IiLCJnZXRUaW1lIiwiZ2V0VVRDSG91cnMiLCJnZXRVVENNaW51dGVzIiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJ3cml0ZVVJbnQxNkxFIiwidmFsaWRhdGUiLCJjb2xsYXRpb24iLCJwYXJzZSIsInRvVVRDU3RyaW5nIiwiVHlwZUVycm9yIiwiaXNOYU4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9zbWFsbGRhdGV0aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IERhdGVUaW1lTiBmcm9tICcuL2RhdGV0aW1lbic7XG5cbmNvbnN0IEVQT0NIX0RBVEUgPSBuZXcgRGF0ZSgxOTAwLCAwLCAxKTtcbmNvbnN0IFVUQ19FUE9DSF9EQVRFID0gbmV3IERhdGUoRGF0ZS5VVEMoMTkwMCwgMCwgMSkpO1xuXG5jb25zdCBNSU5fREFURSA9IG5ldyBEYXRlKDE5MDAsIDEsIDEpO1xuY29uc3QgTUFYX0RBVEUgPSBuZXcgRGF0ZSgyMDc5LCA1LCA2LCAyMywgNTksIDU5LCAwKTtcblxuY29uc3QgREFUQV9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwNF0pO1xuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwMF0pO1xuXG5jb25zdCBTbWFsbERhdGVUaW1lOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4M0EsXG4gIHR5cGU6ICdEQVRFVElNNCcsXG4gIG5hbWU6ICdTbWFsbERhdGVUaW1lJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdzbWFsbGRhdGV0aW1lJztcbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKCkge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShbRGF0ZVRpbWVOLmlkLCAweDA0XSk7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgfVxuXG4gICAgcmV0dXJuIERBVEFfTEVOR1RIO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyRGF0YTogZnVuY3Rpb24qKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KTtcblxuICAgIGxldCBkYXlzOiBudW1iZXIsIGRzdERpZmY6IG51bWJlciwgbWludXRlczogbnVtYmVyO1xuICAgIGlmIChvcHRpb25zLnVzZVVUQykge1xuICAgICAgZGF5cyA9IE1hdGguZmxvb3IoKHBhcmFtZXRlci52YWx1ZS5nZXRUaW1lKCkgLSBVVENfRVBPQ0hfREFURS5nZXRUaW1lKCkpIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcbiAgICAgIG1pbnV0ZXMgPSAocGFyYW1ldGVyLnZhbHVlLmdldFVUQ0hvdXJzKCkgKiA2MCkgKyBwYXJhbWV0ZXIudmFsdWUuZ2V0VVRDTWludXRlcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkc3REaWZmID0gLShwYXJhbWV0ZXIudmFsdWUuZ2V0VGltZXpvbmVPZmZzZXQoKSAtIEVQT0NIX0RBVEUuZ2V0VGltZXpvbmVPZmZzZXQoKSkgKiA2MCAqIDEwMDA7XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcigocGFyYW1ldGVyLnZhbHVlLmdldFRpbWUoKSAtIEVQT0NIX0RBVEUuZ2V0VGltZSgpICsgZHN0RGlmZikgLyAoMTAwMCAqIDYwICogNjAgKiAyNCkpO1xuICAgICAgbWludXRlcyA9IChwYXJhbWV0ZXIudmFsdWUuZ2V0SG91cnMoKSAqIDYwKSArIHBhcmFtZXRlci52YWx1ZS5nZXRNaW51dGVzKCk7XG4gICAgfVxuXG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUoZGF5cywgMCk7XG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUobWludXRlcywgMik7XG5cbiAgICB5aWVsZCBidWZmZXI7XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlLCBjb2xsYXRpb24sIG9wdGlvbnMpOiBudWxsIHwgRGF0ZSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgYXMgRGF0ZTtcblxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlLnRvVVRDU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA8IE1JTl9EQVRFIHx8IHZhbHVlID4gTUFYX0RBVEUpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ091dCBvZiByYW5nZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBTbWFsbERhdGVUaW1lO1xubW9kdWxlLmV4cG9ydHMgPSBTbWFsbERhdGVUaW1lO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBb0MsU0FBQUQsdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFcEMsTUFBTUcsVUFBVSxHQUFHLElBQUlDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN2QyxNQUFNQyxjQUFjLEdBQUcsSUFBSUQsSUFBSSxDQUFDQSxJQUFJLENBQUNFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRXJELE1BQU1DLFFBQVEsR0FBRyxJQUFJSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDckMsTUFBTUksUUFBUSxHQUFHLElBQUlKLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFcEQsTUFBTUssV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3ZDLE1BQU1DLFdBQVcsR0FBR0YsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUV2QyxNQUFNRSxhQUF1QixHQUFHO0VBQzlCQyxFQUFFLEVBQUUsSUFBSTtF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
@@ -1 +1 @@
1
- {"version":3,"file":"smalldatetime.js","names":["_datetimen","_interopRequireDefault","require","obj","__esModule","default","EPOCH_DATE","Date","UTC_EPOCH_DATE","UTC","DATA_LENGTH","Buffer","from","NULL_LENGTH","SmallDateTime","id","type","name","declaration","generateTypeInfo","DateTimeN","generateParameterLength","parameter","options","value","generateParameterData","buffer","alloc","days","dstDiff","minutes","useUTC","Math","floor","getTime","getUTCHours","getUTCMinutes","getTimezoneOffset","getHours","getMinutes","writeUInt16LE","validate","parse","isNaN","TypeError","_default","exports","module"],"sources":["../../src/data-types/smalldatetime.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport DateTimeN from './datetimen';\n\nconst EPOCH_DATE = new Date(1900, 0, 1);\nconst UTC_EPOCH_DATE = new Date(Date.UTC(1900, 0, 1));\n\nconst DATA_LENGTH = Buffer.from([0x04]);\nconst NULL_LENGTH = Buffer.from([0x00]);\n\nconst SmallDateTime: DataType = {\n id: 0x3A,\n type: 'DATETIM4',\n name: 'SmallDateTime',\n\n declaration: function() {\n return 'smalldatetime';\n },\n\n generateTypeInfo() {\n return Buffer.from([DateTimeN.id, 0x04]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n generateParameterData: function*(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const buffer = Buffer.alloc(4);\n\n let days, dstDiff, minutes;\n if (options.useUTC) {\n days = Math.floor((parameter.value.getTime() - UTC_EPOCH_DATE.getTime()) / (1000 * 60 * 60 * 24));\n minutes = (parameter.value.getUTCHours() * 60) + parameter.value.getUTCMinutes();\n } else {\n dstDiff = -(parameter.value.getTimezoneOffset() - EPOCH_DATE.getTimezoneOffset()) * 60 * 1000;\n days = Math.floor((parameter.value.getTime() - EPOCH_DATE.getTime() + dstDiff) / (1000 * 60 * 60 * 24));\n minutes = (parameter.value.getHours() * 60) + parameter.value.getMinutes();\n }\n\n buffer.writeUInt16LE(days, 0);\n buffer.writeUInt16LE(minutes, 2);\n\n yield buffer;\n },\n\n validate: function(value): null | Date {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default SmallDateTime;\nmodule.exports = SmallDateTime;\n"],"mappings":"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"}
1
+ {"version":3,"file":"smalldatetime.js","names":["_datetimen","_interopRequireDefault","require","obj","__esModule","default","EPOCH_DATE","Date","UTC_EPOCH_DATE","UTC","MIN_DATE","MAX_DATE","DATA_LENGTH","Buffer","from","NULL_LENGTH","SmallDateTime","id","type","name","declaration","generateTypeInfo","DateTimeN","generateParameterLength","parameter","options","value","generateParameterData","buffer","alloc","days","dstDiff","minutes","useUTC","Math","floor","getTime","getUTCHours","getUTCMinutes","getTimezoneOffset","getHours","getMinutes","writeUInt16LE","validate","collation","parse","toUTCString","TypeError","isNaN","_default","exports","module"],"sources":["../../src/data-types/smalldatetime.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport DateTimeN from './datetimen';\n\nconst EPOCH_DATE = new Date(1900, 0, 1);\nconst UTC_EPOCH_DATE = new Date(Date.UTC(1900, 0, 1));\n\nconst MIN_DATE = new Date(1900, 1, 1);\nconst MAX_DATE = new Date(2079, 5, 6, 23, 59, 59, 0);\n\nconst DATA_LENGTH = Buffer.from([0x04]);\nconst NULL_LENGTH = Buffer.from([0x00]);\n\nconst SmallDateTime: DataType = {\n id: 0x3A,\n type: 'DATETIM4',\n name: 'SmallDateTime',\n\n declaration: function() {\n return 'smalldatetime';\n },\n\n generateTypeInfo() {\n return Buffer.from([DateTimeN.id, 0x04]);\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n return DATA_LENGTH;\n },\n\n generateParameterData: function*(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n const buffer = Buffer.alloc(4);\n\n let days: number, dstDiff: number, minutes: number;\n if (options.useUTC) {\n days = Math.floor((parameter.value.getTime() - UTC_EPOCH_DATE.getTime()) / (1000 * 60 * 60 * 24));\n minutes = (parameter.value.getUTCHours() * 60) + parameter.value.getUTCMinutes();\n } else {\n dstDiff = -(parameter.value.getTimezoneOffset() - EPOCH_DATE.getTimezoneOffset()) * 60 * 1000;\n days = Math.floor((parameter.value.getTime() - EPOCH_DATE.getTime() + dstDiff) / (1000 * 60 * 60 * 24));\n minutes = (parameter.value.getHours() * 60) + parameter.value.getMinutes();\n }\n\n buffer.writeUInt16LE(days, 0);\n buffer.writeUInt16LE(minutes, 2);\n\n yield buffer;\n },\n\n validate: function(value, collation, options): null | Date {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n value = value as Date;\n\n if (options && options.useUTC) {\n value = new Date(value.toUTCString());\n }\n\n if (value < MIN_DATE || value > MAX_DATE) {\n throw new TypeError('Out of range.');\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default SmallDateTime;\nmodule.exports = SmallDateTime;\n"],"mappings":"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"}
package/lib/sender.js CHANGED
@@ -7,7 +7,7 @@ exports.sendInParallel = sendInParallel;
7
7
  exports.sendMessage = sendMessage;
8
8
  var _dgram = _interopRequireDefault(require("dgram"));
9
9
  var _net = _interopRequireDefault(require("net"));
10
- var punycode = _interopRequireWildcard(require("punycode"));
10
+ var punycode = _interopRequireWildcard(require("punycode/"));
11
11
  var _abortError = _interopRequireDefault(require("./errors/abort-error"));
12
12
  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); }
13
13
  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; }
@@ -82,4 +82,4 @@ async function sendMessage(host, port, lookup, signal, request) {
82
82
  }
83
83
  return await sendInParallel(addresses, port, request, signal);
84
84
  }
85
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGdyYW0iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9uZXQiLCJwdW55Y29kZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2Fib3J0RXJyb3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0Iiwic2VuZEluUGFyYWxsZWwiLCJhZGRyZXNzZXMiLCJwb3J0IiwicmVxdWVzdCIsInNpZ25hbCIsImFib3J0ZWQiLCJBYm9ydEVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzb2NrZXRzIiwiZXJyb3JDb3VudCIsIm9uRXJyb3IiLCJlcnIiLCJsZW5ndGgiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25BYm9ydCIsImNsZWFyU29ja2V0cyIsIm9uTWVzc2FnZSIsIm1lc3NhZ2UiLCJzb2NrZXQiLCJyZW1vdmVMaXN0ZW5lciIsImNsb3NlIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uY2UiLCJqIiwidWRwVHlwZSIsImZhbWlseSIsImRncmFtIiwiY3JlYXRlU29ja2V0IiwicHVzaCIsIm9uIiwic2VuZCIsImFkZHJlc3MiLCJzZW5kTWVzc2FnZSIsImhvc3QiLCJsb29rdXAiLCJuZXQiLCJpc0lQIiwiaXNJUHY2IiwidG9BU0NJSSIsImFsbCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zZW5kZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRncmFtIGZyb20gJ2RncmFtJztcbmltcG9ydCBkbnMgZnJvbSAnZG5zJztcbmltcG9ydCBuZXQgZnJvbSAnbmV0JztcbmltcG9ydCAqIGFzIHB1bnljb2RlIGZyb20gJ3B1bnljb2RlJztcbmltcG9ydCB7IEFib3J0U2lnbmFsIH0gZnJvbSAnbm9kZS1hYm9ydC1jb250cm9sbGVyJztcblxuaW1wb3J0IEFib3J0RXJyb3IgZnJvbSAnLi9lcnJvcnMvYWJvcnQtZXJyb3InO1xuXG50eXBlIExvb2t1cEZ1bmN0aW9uID0gKGhvc3RuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IGRucy5Mb29rdXBBbGxPcHRpb25zLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgYWRkcmVzc2VzOiBkbnMuTG9va3VwQWRkcmVzc1tdKSA9PiB2b2lkKSA9PiB2b2lkO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZEluUGFyYWxsZWwoYWRkcmVzc2VzOiBkbnMuTG9va3VwQWRkcmVzc1tdLCBwb3J0OiBudW1iZXIsIHJlcXVlc3Q6IEJ1ZmZlciwgc2lnbmFsOiBBYm9ydFNpZ25hbCkge1xuICBpZiAoc2lnbmFsLmFib3J0ZWQpIHtcbiAgICB0aHJvdyBuZXcgQWJvcnRFcnJvcigpO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlPEJ1ZmZlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHNvY2tldHM6IGRncmFtLlNvY2tldFtdID0gW107XG5cbiAgICBsZXQgZXJyb3JDb3VudCA9IDA7XG5cbiAgICBjb25zdCBvbkVycm9yID0gKGVycjogRXJyb3IpID0+IHtcbiAgICAgIGVycm9yQ291bnQrKztcblxuICAgICAgaWYgKGVycm9yQ291bnQgPT09IGFkZHJlc3Nlcy5sZW5ndGgpIHtcbiAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG4gICAgICAgIGNsZWFyU29ja2V0cygpO1xuXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBvbk1lc3NhZ2UgPSAobWVzc2FnZTogQnVmZmVyKSA9PiB7XG4gICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcbiAgICAgIGNsZWFyU29ja2V0cygpO1xuXG4gICAgICByZXNvbHZlKG1lc3NhZ2UpO1xuICAgIH07XG5cbiAgICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgICAgY2xlYXJTb2NrZXRzKCk7XG5cbiAgICAgIHJlamVjdChuZXcgQWJvcnRFcnJvcigpKTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2xlYXJTb2NrZXRzID0gKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCBzb2NrZXQgb2Ygc29ja2V0cykge1xuICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIHNvY2tldC5yZW1vdmVMaXN0ZW5lcignbWVzc2FnZScsIG9uTWVzc2FnZSk7XG4gICAgICAgIHNvY2tldC5jbG9zZSgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0LCB7IG9uY2U6IHRydWUgfSk7XG5cbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGFkZHJlc3Nlcy5sZW5ndGg7IGorKykge1xuICAgICAgY29uc3QgdWRwVHlwZSA9IGFkZHJlc3Nlc1tqXS5mYW1pbHkgPT09IDYgPyAndWRwNicgOiAndWRwNCc7XG5cbiAgICAgIGNvbnN0IHNvY2tldCA9IGRncmFtLmNyZWF0ZVNvY2tldCh1ZHBUeXBlKTtcbiAgICAgIHNvY2tldHMucHVzaChzb2NrZXQpO1xuICAgICAgc29ja2V0Lm9uKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgc29ja2V0Lm9uKCdtZXNzYWdlJywgb25NZXNzYWdlKTtcbiAgICAgIHNvY2tldC5zZW5kKHJlcXVlc3QsIDAsIHJlcXVlc3QubGVuZ3RoLCBwb3J0LCBhZGRyZXNzZXNbal0uYWRkcmVzcyk7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRNZXNzYWdlKGhvc3Q6IHN0cmluZywgcG9ydDogbnVtYmVyLCBsb29rdXA6IExvb2t1cEZ1bmN0aW9uLCBzaWduYWw6IEFib3J0U2lnbmFsLCByZXF1ZXN0OiBCdWZmZXIpIHtcbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IEFib3J0RXJyb3IoKTtcbiAgfVxuXG4gIGxldCBhZGRyZXNzZXM6IGRucy5Mb29rdXBBZGRyZXNzW107XG5cbiAgaWYgKG5ldC5pc0lQKGhvc3QpKSB7XG4gICAgYWRkcmVzc2VzID0gW1xuICAgICAgeyBhZGRyZXNzOiBob3N0LCBmYW1pbHk6IG5ldC5pc0lQdjYoaG9zdCkgPyA2IDogNCB9XG4gICAgXTtcbiAgfSBlbHNlIHtcbiAgICBhZGRyZXNzZXMgPSBhd2FpdCBuZXcgUHJvbWlzZTxkbnMuTG9va3VwQWRkcmVzc1tdPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgICAgICByZWplY3QobmV3IEFib3J0RXJyb3IoKSk7XG4gICAgICB9O1xuXG4gICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgbG9va3VwKHB1bnljb2RlLnRvQVNDSUkoaG9zdCksIHsgYWxsOiB0cnVlIH0sIChlcnIsIGFkZHJlc3NlcykgPT4ge1xuICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcblxuICAgICAgICBlcnIgPyByZWplY3QoZXJyKSA6IHJlc29sdmUoYWRkcmVzc2VzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IHNlbmRJblBhcmFsbGVsKGFkZHJlc3NlcywgcG9ydCwgcmVxdWVzdCwgc2lnbmFsKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElB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
85
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGdyYW0iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9uZXQiLCJwdW55Y29kZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2Fib3J0RXJyb3IiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0Iiwic2VuZEluUGFyYWxsZWwiLCJhZGRyZXNzZXMiLCJwb3J0IiwicmVxdWVzdCIsInNpZ25hbCIsImFib3J0ZWQiLCJBYm9ydEVycm9yIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJzb2NrZXRzIiwiZXJyb3JDb3VudCIsIm9uRXJyb3IiLCJlcnIiLCJsZW5ndGgiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib25BYm9ydCIsImNsZWFyU29ja2V0cyIsIm9uTWVzc2FnZSIsIm1lc3NhZ2UiLCJzb2NrZXQiLCJyZW1vdmVMaXN0ZW5lciIsImNsb3NlIiwiYWRkRXZlbnRMaXN0ZW5lciIsIm9uY2UiLCJqIiwidWRwVHlwZSIsImZhbWlseSIsImRncmFtIiwiY3JlYXRlU29ja2V0IiwicHVzaCIsIm9uIiwic2VuZCIsImFkZHJlc3MiLCJzZW5kTWVzc2FnZSIsImhvc3QiLCJsb29rdXAiLCJuZXQiLCJpc0lQIiwiaXNJUHY2IiwidG9BU0NJSSIsImFsbCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zZW5kZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRncmFtIGZyb20gJ2RncmFtJztcbmltcG9ydCBkbnMgZnJvbSAnZG5zJztcbmltcG9ydCBuZXQgZnJvbSAnbmV0JztcbmltcG9ydCAqIGFzIHB1bnljb2RlIGZyb20gJ3B1bnljb2RlLyc7XG5pbXBvcnQgeyBBYm9ydFNpZ25hbCB9IGZyb20gJ25vZGUtYWJvcnQtY29udHJvbGxlcic7XG5cbmltcG9ydCBBYm9ydEVycm9yIGZyb20gJy4vZXJyb3JzL2Fib3J0LWVycm9yJztcblxudHlwZSBMb29rdXBGdW5jdGlvbiA9IChob3N0bmFtZTogc3RyaW5nLCBvcHRpb25zOiBkbnMuTG9va3VwQWxsT3B0aW9ucywgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiB8IG51bGwsIGFkZHJlc3NlczogZG5zLkxvb2t1cEFkZHJlc3NbXSkgPT4gdm9pZCkgPT4gdm9pZDtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbmRJblBhcmFsbGVsKGFkZHJlc3NlczogZG5zLkxvb2t1cEFkZHJlc3NbXSwgcG9ydDogbnVtYmVyLCByZXF1ZXN0OiBCdWZmZXIsIHNpZ25hbDogQWJvcnRTaWduYWwpIHtcbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IEFib3J0RXJyb3IoKTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxCdWZmZXI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBzb2NrZXRzOiBkZ3JhbS5Tb2NrZXRbXSA9IFtdO1xuXG4gICAgbGV0IGVycm9yQ291bnQgPSAwO1xuXG4gICAgY29uc3Qgb25FcnJvciA9IChlcnI6IEVycm9yKSA9PiB7XG4gICAgICBlcnJvckNvdW50Kys7XG5cbiAgICAgIGlmIChlcnJvckNvdW50ID09PSBhZGRyZXNzZXMubGVuZ3RoKSB7XG4gICAgICAgIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQpO1xuICAgICAgICBjbGVhclNvY2tldHMoKTtcblxuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgb25NZXNzYWdlID0gKG1lc3NhZ2U6IEJ1ZmZlcikgPT4ge1xuICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG4gICAgICBjbGVhclNvY2tldHMoKTtcblxuICAgICAgcmVzb2x2ZShtZXNzYWdlKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHtcbiAgICAgIGNsZWFyU29ja2V0cygpO1xuXG4gICAgICByZWplY3QobmV3IEFib3J0RXJyb3IoKSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNsZWFyU29ja2V0cyA9ICgpID0+IHtcbiAgICAgIGZvciAoY29uc3Qgc29ja2V0IG9mIHNvY2tldHMpIHtcbiAgICAgICAgc29ja2V0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgICBzb2NrZXQucmVtb3ZlTGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1lc3NhZ2UpO1xuICAgICAgICBzb2NrZXQuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCwgeyBvbmNlOiB0cnVlIH0pO1xuXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBhZGRyZXNzZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGNvbnN0IHVkcFR5cGUgPSBhZGRyZXNzZXNbal0uZmFtaWx5ID09PSA2ID8gJ3VkcDYnIDogJ3VkcDQnO1xuXG4gICAgICBjb25zdCBzb2NrZXQgPSBkZ3JhbS5jcmVhdGVTb2NrZXQodWRwVHlwZSk7XG4gICAgICBzb2NrZXRzLnB1c2goc29ja2V0KTtcbiAgICAgIHNvY2tldC5vbignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgIHNvY2tldC5vbignbWVzc2FnZScsIG9uTWVzc2FnZSk7XG4gICAgICBzb2NrZXQuc2VuZChyZXF1ZXN0LCAwLCByZXF1ZXN0Lmxlbmd0aCwgcG9ydCwgYWRkcmVzc2VzW2pdLmFkZHJlc3MpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kTWVzc2FnZShob3N0OiBzdHJpbmcsIHBvcnQ6IG51bWJlciwgbG9va3VwOiBMb29rdXBGdW5jdGlvbiwgc2lnbmFsOiBBYm9ydFNpZ25hbCwgcmVxdWVzdDogQnVmZmVyKSB7XG4gIGlmIChzaWduYWwuYWJvcnRlZCkge1xuICAgIHRocm93IG5ldyBBYm9ydEVycm9yKCk7XG4gIH1cblxuICBsZXQgYWRkcmVzc2VzOiBkbnMuTG9va3VwQWRkcmVzc1tdO1xuXG4gIGlmIChuZXQuaXNJUChob3N0KSkge1xuICAgIGFkZHJlc3NlcyA9IFtcbiAgICAgIHsgYWRkcmVzczogaG9zdCwgZmFtaWx5OiBuZXQuaXNJUHY2KGhvc3QpID8gNiA6IDQgfVxuICAgIF07XG4gIH0gZWxzZSB7XG4gICAgYWRkcmVzc2VzID0gYXdhaXQgbmV3IFByb21pc2U8ZG5zLkxvb2t1cEFkZHJlc3NbXT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgb25BYm9ydCA9ICgpID0+IHtcbiAgICAgICAgcmVqZWN0KG5ldyBBYm9ydEVycm9yKCkpO1xuICAgICAgfTtcblxuICAgICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG5cbiAgICAgIGxvb2t1cChwdW55Y29kZS50b0FTQ0lJKGhvc3QpLCB7IGFsbDogdHJ1ZSB9LCAoZXJyLCBhZGRyZXNzZXMpID0+IHtcbiAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG5cbiAgICAgICAgZXJyID8gcmVqZWN0KGVycikgOiByZXNvbHZlKGFkZHJlc3Nlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBhd2FpdCBzZW5kSW5QYXJhbGxlbChhZGRyZXNzZXMsIHBvcnQsIHJlcXVlc3QsIHNpZ25hbCk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxJQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFHQSxJQUFBSSxXQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFBOEMsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQUgsd0JBQUFPLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWCxHQUFBLFFBQUFXLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWQsR0FBQSxFQUFBVyxHQUFBLFNBQUFJLElBQUEsR0FBQVIscUJBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixHQUFBLEVBQUFXLEdBQUEsY0FBQUksSUFBQSxLQUFBQSxJQUFBLENBQUFWLEdBQUEsSUFBQVUsSUFBQSxDQUFBQyxHQUFBLEtBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxNQUFBLEVBQUFLLEdBQUEsRUFBQUksSUFBQSxZQUFBVCxNQUFBLENBQUFLLEdBQUEsSUFBQVgsR0FBQSxDQUFBVyxHQUFBLFNBQUFMLE1BQUEsQ0FBQUosT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBYSxHQUFBLENBQUFoQixHQUFBLEVBQUFNLE1BQUEsWUFBQUEsTUFBQTtBQUFBLFNBQUFqQix1QkFBQVcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUl2QyxlQUFlaUIsY0FBY0EsQ0FBQ0MsU0FBOEIsRUFBRUMsSUFBWSxFQUFFQyxPQUFlLEVBQUVDLE1BQW1CLEVBQUU7RUFDdkgsSUFBSUEsTUFBTSxDQUFDQyxPQUFPLEVBQUU7SUFDbEIsTUFBTSxJQUFJQyxtQkFBVSxDQUFDLENBQUM7RUFDeEI7RUFFQSxPQUFPLE1BQU0sSUFBSUMsT0FBTyxDQUFTLENBQUNDLE9BQU8sRUFBRUMsTUFBTSxLQUFLO0lBQ3BELE1BQU1DLE9BQXVCLEdBQUcsRUFBRTtJQUVsQyxJQUFJQyxVQUFVLEdBQUcsQ0FBQztJQUVsQixNQUFNQyxPQUFPLEdBQUlDLEdBQVUsSUFBSztNQUM5QkYsVUFBVSxFQUFFO01BRVosSUFBSUEsVUFBVSxLQUFLVixTQUFTLENBQUNhLE1BQU0sRUFBRTtRQUNuQ1YsTUFBTSxDQUFDVyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUVDLE9BQU8sQ0FBQztRQUM1Q0MsWUFBWSxDQUFDLENBQUM7UUFFZFIsTUFBTSxDQUFDSSxHQUFHLENBQUM7TUFDYjtJQUNGLENBQUM7SUFFRCxNQUFNSyxTQUFTLEdBQUlDLE9BQWUsSUFBSztNQUNyQ2YsTUFBTSxDQUFDVyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUVDLE9BQU8sQ0FBQztNQUM1Q0MsWUFBWSxDQUFDLENBQUM7TUFFZFQsT0FBTyxDQUFDVyxPQUFPLENBQUM7SUFDbEIsQ0FBQztJQUVELE1BQU1ILE9BQU8sR0FBR0EsQ0FBQSxLQUFNO01BQ3BCQyxZQUFZLENBQUMsQ0FBQztNQUVkUixNQUFNLENBQUMsSUFBSUgsbUJBQVUsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU1XLFlBQVksR0FBR0EsQ0FBQSxLQUFNO01BQ3pCLEtBQUssTUFBTUcsTUFBTSxJQUFJVixPQUFPLEVBQUU7UUFDNUJVLE1BQU0sQ0FBQ0MsY0FBYyxDQUFDLE9BQU8sRUFBRVQsT0FBTyxDQUFDO1FBQ3ZDUSxNQUFNLENBQUNDLGNBQWMsQ0FBQyxTQUFTLEVBQUVILFNBQVMsQ0FBQztRQUMzQ0UsTUFBTSxDQUFDRSxLQUFLLENBQUMsQ0FBQztNQUNoQjtJQUNGLENBQUM7SUFFRGxCLE1BQU0sQ0FBQ21CLGdCQUFnQixDQUFDLE9BQU8sRUFBRVAsT0FBTyxFQUFFO01BQUVRLElBQUksRUFBRTtJQUFLLENBQUMsQ0FBQztJQUV6RCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR3hCLFNBQVMsQ0FBQ2EsTUFBTSxFQUFFVyxDQUFDLEVBQUUsRUFBRTtNQUN6QyxNQUFNQyxPQUFPLEdBQUd6QixTQUFTLENBQUN3QixDQUFDLENBQUMsQ0FBQ0UsTUFBTSxLQUFLLENBQUMsR0FBRyxNQUFNLEdBQUcsTUFBTTtNQUUzRCxNQUFNUCxNQUFNLEdBQUdRLGNBQUssQ0FBQ0MsWUFBWSxDQUFDSCxPQUFPLENBQUM7TUFDMUNoQixPQUFPLENBQUNvQixJQUFJLENBQUNWLE1BQU0sQ0FBQztNQUNwQkEsTUFBTSxDQUFDVyxFQUFFLENBQUMsT0FBTyxFQUFFbkIsT0FBTyxDQUFDO01BQzNCUSxNQUFNLENBQUNXLEVBQUUsQ0FBQyxTQUFTLEVBQUViLFNBQVMsQ0FBQztNQUMvQkUsTUFBTSxDQUFDWSxJQUFJLENBQUM3QixPQUFPLEVBQUUsQ0FBQyxFQUFFQSxPQUFPLENBQUNXLE1BQU0sRUFBRVosSUFBSSxFQUFFRCxTQUFTLENBQUN3QixDQUFDLENBQUMsQ0FBQ1EsT0FBTyxDQUFDO0lBQ3JFO0VBQ0YsQ0FBQyxDQUFDO0FBQ0o7QUFFTyxlQUFlQyxXQUFXQSxDQUFDQyxJQUFZLEVBQUVqQyxJQUFZLEVBQUVrQyxNQUFzQixFQUFFaEMsTUFBbUIsRUFBRUQsT0FBZSxFQUFFO0VBQzFILElBQUlDLE1BQU0sQ0FBQ0MsT0FBTyxFQUFFO0lBQ2xCLE1BQU0sSUFBSUMsbUJBQVUsQ0FBQyxDQUFDO0VBQ3hCO0VBRUEsSUFBSUwsU0FBOEI7RUFFbEMsSUFBSW9DLFlBQUcsQ0FBQ0MsSUFBSSxDQUFDSCxJQUFJLENBQUMsRUFBRTtJQUNsQmxDLFNBQVMsR0FBRyxDQUNWO01BQUVnQyxPQUFPLEVBQUVFLElBQUk7TUFBRVIsTUFBTSxFQUFFVSxZQUFHLENBQUNFLE1BQU0sQ0FBQ0osSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHO0lBQUUsQ0FBQyxDQUNwRDtFQUNILENBQUMsTUFBTTtJQUNMbEMsU0FBUyxHQUFHLE1BQU0sSUFBSU0sT0FBTyxDQUFzQixDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztNQUN0RSxNQUFNTyxPQUFPLEdBQUdBLENBQUEsS0FBTTtRQUNwQlAsTUFBTSxDQUFDLElBQUlILG1CQUFVLENBQUMsQ0FBQyxDQUFDO01BQzFCLENBQUM7TUFFREYsTUFBTSxDQUFDbUIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFUCxPQUFPLENBQUM7TUFFekNvQixNQUFNLENBQUM3RCxRQUFRLENBQUNpRSxPQUFPLENBQUNMLElBQUksQ0FBQyxFQUFFO1FBQUVNLEdBQUcsRUFBRTtNQUFLLENBQUMsRUFBRSxDQUFDNUIsR0FBRyxFQUFFWixTQUFTLEtBQUs7UUFDaEVHLE1BQU0sQ0FBQ1csbUJBQW1CLENBQUMsT0FBTyxFQUFFQyxPQUFPLENBQUM7UUFFNUNILEdBQUcsR0FBR0osTUFBTSxDQUFDSSxHQUFHLENBQUMsR0FBR0wsT0FBTyxDQUFDUCxTQUFTLENBQUM7TUFDeEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0VBQ0o7RUFFQSxPQUFPLE1BQU1ELGNBQWMsQ0FBQ0MsU0FBUyxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxDQUFDO0FBQy9EIn0=
package/lib/sender.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sender.js","names":["_dgram","_interopRequireDefault","require","_net","punycode","_interopRequireWildcard","_abortError","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","sendInParallel","addresses","port","request","signal","aborted","AbortError","Promise","resolve","reject","sockets","errorCount","onError","err","length","removeEventListener","onAbort","clearSockets","onMessage","message","socket","removeListener","close","addEventListener","once","j","udpType","family","dgram","createSocket","push","on","send","address","sendMessage","host","lookup","net","isIP","isIPv6","toASCII","all"],"sources":["../src/sender.ts"],"sourcesContent":["import dgram from 'dgram';\nimport dns from 'dns';\nimport net from 'net';\nimport * as punycode from 'punycode';\nimport { AbortSignal } from 'node-abort-controller';\n\nimport AbortError from './errors/abort-error';\n\ntype LookupFunction = (hostname: string, options: dns.LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: dns.LookupAddress[]) => void) => void;\n\nexport async function sendInParallel(addresses: dns.LookupAddress[], port: number, request: Buffer, signal: AbortSignal) {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n return await new Promise<Buffer>((resolve, reject) => {\n const sockets: dgram.Socket[] = [];\n\n let errorCount = 0;\n\n const onError = (err: Error) => {\n errorCount++;\n\n if (errorCount === addresses.length) {\n signal.removeEventListener('abort', onAbort);\n clearSockets();\n\n reject(err);\n }\n };\n\n const onMessage = (message: Buffer) => {\n signal.removeEventListener('abort', onAbort);\n clearSockets();\n\n resolve(message);\n };\n\n const onAbort = () => {\n clearSockets();\n\n reject(new AbortError());\n };\n\n const clearSockets = () => {\n for (const socket of sockets) {\n socket.removeListener('error', onError);\n socket.removeListener('message', onMessage);\n socket.close();\n }\n };\n\n signal.addEventListener('abort', onAbort, { once: true });\n\n for (let j = 0; j < addresses.length; j++) {\n const udpType = addresses[j].family === 6 ? 'udp6' : 'udp4';\n\n const socket = dgram.createSocket(udpType);\n sockets.push(socket);\n socket.on('error', onError);\n socket.on('message', onMessage);\n socket.send(request, 0, request.length, port, addresses[j].address);\n }\n });\n}\n\nexport async function sendMessage(host: string, port: number, lookup: LookupFunction, signal: AbortSignal, request: Buffer) {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n let addresses: dns.LookupAddress[];\n\n if (net.isIP(host)) {\n addresses = [\n { address: host, family: net.isIPv6(host) ? 6 : 4 }\n ];\n } else {\n addresses = await new Promise<dns.LookupAddress[]>((resolve, reject) => {\n const onAbort = () => {\n reject(new AbortError());\n };\n\n signal.addEventListener('abort', onAbort);\n\n lookup(punycode.toASCII(host), { all: true }, (err, addresses) => {\n signal.removeEventListener('abort', onAbort);\n\n err ? reject(err) : resolve(addresses);\n });\n });\n }\n\n return await sendInParallel(addresses, port, request, signal);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"sender.js","names":["_dgram","_interopRequireDefault","require","_net","punycode","_interopRequireWildcard","_abortError","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","sendInParallel","addresses","port","request","signal","aborted","AbortError","Promise","resolve","reject","sockets","errorCount","onError","err","length","removeEventListener","onAbort","clearSockets","onMessage","message","socket","removeListener","close","addEventListener","once","j","udpType","family","dgram","createSocket","push","on","send","address","sendMessage","host","lookup","net","isIP","isIPv6","toASCII","all"],"sources":["../src/sender.ts"],"sourcesContent":["import dgram from 'dgram';\nimport dns from 'dns';\nimport net from 'net';\nimport * as punycode from 'punycode/';\nimport { AbortSignal } from 'node-abort-controller';\n\nimport AbortError from './errors/abort-error';\n\ntype LookupFunction = (hostname: string, options: dns.LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: dns.LookupAddress[]) => void) => void;\n\nexport async function sendInParallel(addresses: dns.LookupAddress[], port: number, request: Buffer, signal: AbortSignal) {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n return await new Promise<Buffer>((resolve, reject) => {\n const sockets: dgram.Socket[] = [];\n\n let errorCount = 0;\n\n const onError = (err: Error) => {\n errorCount++;\n\n if (errorCount === addresses.length) {\n signal.removeEventListener('abort', onAbort);\n clearSockets();\n\n reject(err);\n }\n };\n\n const onMessage = (message: Buffer) => {\n signal.removeEventListener('abort', onAbort);\n clearSockets();\n\n resolve(message);\n };\n\n const onAbort = () => {\n clearSockets();\n\n reject(new AbortError());\n };\n\n const clearSockets = () => {\n for (const socket of sockets) {\n socket.removeListener('error', onError);\n socket.removeListener('message', onMessage);\n socket.close();\n }\n };\n\n signal.addEventListener('abort', onAbort, { once: true });\n\n for (let j = 0; j < addresses.length; j++) {\n const udpType = addresses[j].family === 6 ? 'udp6' : 'udp4';\n\n const socket = dgram.createSocket(udpType);\n sockets.push(socket);\n socket.on('error', onError);\n socket.on('message', onMessage);\n socket.send(request, 0, request.length, port, addresses[j].address);\n }\n });\n}\n\nexport async function sendMessage(host: string, port: number, lookup: LookupFunction, signal: AbortSignal, request: Buffer) {\n if (signal.aborted) {\n throw new AbortError();\n }\n\n let addresses: dns.LookupAddress[];\n\n if (net.isIP(host)) {\n addresses = [\n { address: host, family: net.isIPv6(host) ? 6 : 4 }\n ];\n } else {\n addresses = await new Promise<dns.LookupAddress[]>((resolve, reject) => {\n const onAbort = () => {\n reject(new AbortError());\n };\n\n signal.addEventListener('abort', onAbort);\n\n lookup(punycode.toASCII(host), { all: true }, (err, addresses) => {\n signal.removeEventListener('abort', onAbort);\n\n err ? reject(err) : resolve(addresses);\n });\n });\n }\n\n return await sendInParallel(addresses, port, request, signal);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -27,7 +27,7 @@
27
27
  "homepage": "https://github.com/tediousjs/tedious",
28
28
  "bugs": "https://github.com/tediousjs/tedious/issues",
29
29
  "license": "MIT",
30
- "version": "16.6.1",
30
+ "version": "16.7.0",
31
31
  "main": "./lib/tedious.js",
32
32
  "repository": {
33
33
  "type": "git",
@@ -68,6 +68,7 @@
68
68
  "@types/lru-cache": "^5.1.1",
69
69
  "@types/mocha": "^10.0.1",
70
70
  "@types/node": "^16.18.38",
71
+ "@types/punycode": "^2.1.3",
71
72
  "@types/sprintf-js": "^1.1.2",
72
73
  "@typescript-eslint/eslint-plugin": "^6.0.0",
73
74
  "@typescript-eslint/parser": "^6.0.0",