tedious 20.2.3 → 20.3.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.
Files changed (109) hide show
  1. package/lib/always-encrypted/get-parameter-encryption-metadata.js +5 -2
  2. package/lib/always-encrypted/get-parameter-encryption-metadata.js.map +1 -1
  3. package/lib/bulk-load-payload.js +9 -5
  4. package/lib/bulk-load-payload.js.map +1 -1
  5. package/lib/bulk-load.js +17 -6
  6. package/lib/bulk-load.js.map +1 -1
  7. package/lib/connection.d.ts +5 -0
  8. package/lib/connection.js +33 -26
  9. package/lib/connection.js.map +1 -1
  10. package/lib/data-type.d.ts +47 -3
  11. package/lib/data-type.js +113 -2
  12. package/lib/data-type.js.map +1 -1
  13. package/lib/data-types/bigint.js +10 -17
  14. package/lib/data-types/bigint.js.map +1 -1
  15. package/lib/data-types/binary.js +10 -17
  16. package/lib/data-types/binary.js.map +1 -1
  17. package/lib/data-types/bit.js +10 -14
  18. package/lib/data-types/bit.js.map +1 -1
  19. package/lib/data-types/bitn.js +3 -6
  20. package/lib/data-types/bitn.js.map +1 -1
  21. package/lib/data-types/char.js +12 -17
  22. package/lib/data-types/char.js.map +1 -1
  23. package/lib/data-types/date.js +11 -27
  24. package/lib/data-types/date.js.map +1 -1
  25. package/lib/data-types/datetime.js +17 -37
  26. package/lib/data-types/datetime.js.map +1 -1
  27. package/lib/data-types/datetime2.js +12 -67
  28. package/lib/data-types/datetime2.js.map +1 -1
  29. package/lib/data-types/datetimen.js +3 -6
  30. package/lib/data-types/datetimen.js.map +1 -1
  31. package/lib/data-types/datetimeoffset.js +13 -60
  32. package/lib/data-types/datetimeoffset.js.map +1 -1
  33. package/lib/data-types/decimal-common.d.ts +18 -0
  34. package/lib/data-types/decimal-common.js +79 -0
  35. package/lib/data-types/decimal-common.js.map +1 -0
  36. package/lib/data-types/decimal.js +6 -67
  37. package/lib/data-types/decimal.js.map +1 -1
  38. package/lib/data-types/decimaln.js +3 -6
  39. package/lib/data-types/decimaln.js.map +1 -1
  40. package/lib/data-types/float.js +10 -15
  41. package/lib/data-types/float.js.map +1 -1
  42. package/lib/data-types/floatn.js +3 -6
  43. package/lib/data-types/floatn.js.map +1 -1
  44. package/lib/data-types/image.js +10 -17
  45. package/lib/data-types/image.js.map +1 -1
  46. package/lib/data-types/int.js +8 -15
  47. package/lib/data-types/int.js.map +1 -1
  48. package/lib/data-types/intn.js +3 -6
  49. package/lib/data-types/intn.js.map +1 -1
  50. package/lib/data-types/money.js +14 -18
  51. package/lib/data-types/money.js.map +1 -1
  52. package/lib/data-types/moneyn.js +3 -6
  53. package/lib/data-types/moneyn.js.map +1 -1
  54. package/lib/data-types/nchar.js +17 -31
  55. package/lib/data-types/nchar.js.map +1 -1
  56. package/lib/data-types/ntext.js +13 -17
  57. package/lib/data-types/ntext.js.map +1 -1
  58. package/lib/data-types/null.js +3 -6
  59. package/lib/data-types/null.js.map +1 -1
  60. package/lib/data-types/numeric.js +6 -67
  61. package/lib/data-types/numeric.js.map +1 -1
  62. package/lib/data-types/numericn.js +3 -6
  63. package/lib/data-types/numericn.js.map +1 -1
  64. package/lib/data-types/nvarchar.js +68 -57
  65. package/lib/data-types/nvarchar.js.map +1 -1
  66. package/lib/data-types/plp-stream.d.ts +19 -0
  67. package/lib/data-types/plp-stream.js +59 -0
  68. package/lib/data-types/plp-stream.js.map +1 -0
  69. package/lib/data-types/real.js +10 -16
  70. package/lib/data-types/real.js.map +1 -1
  71. package/lib/data-types/smalldatetime.js +17 -23
  72. package/lib/data-types/smalldatetime.js.map +1 -1
  73. package/lib/data-types/smallint.js +10 -16
  74. package/lib/data-types/smallint.js.map +1 -1
  75. package/lib/data-types/smallmoney.js +10 -16
  76. package/lib/data-types/smallmoney.js.map +1 -1
  77. package/lib/data-types/sql-variant.js +3 -6
  78. package/lib/data-types/sql-variant.js.map +1 -1
  79. package/lib/data-types/temporal.d.ts +22 -0
  80. package/lib/data-types/temporal.js +72 -0
  81. package/lib/data-types/temporal.js.map +1 -0
  82. package/lib/data-types/text.js +12 -18
  83. package/lib/data-types/text.js.map +1 -1
  84. package/lib/data-types/time.js +11 -55
  85. package/lib/data-types/time.js.map +1 -1
  86. package/lib/data-types/tinyint.js +10 -16
  87. package/lib/data-types/tinyint.js.map +1 -1
  88. package/lib/data-types/tvp.js +145 -87
  89. package/lib/data-types/tvp.js.map +1 -1
  90. package/lib/data-types/udt.js +3 -6
  91. package/lib/data-types/udt.js.map +1 -1
  92. package/lib/data-types/uniqueidentifier.js +12 -14
  93. package/lib/data-types/uniqueidentifier.js.map +1 -1
  94. package/lib/data-types/varbinary.js +58 -48
  95. package/lib/data-types/varbinary.js.map +1 -1
  96. package/lib/data-types/varchar.js +84 -50
  97. package/lib/data-types/varchar.js.map +1 -1
  98. package/lib/data-types/xml.js +3 -6
  99. package/lib/data-types/xml.js.map +1 -1
  100. package/lib/request.d.ts +23 -3
  101. package/lib/request.js +29 -3
  102. package/lib/request.js.map +1 -1
  103. package/lib/rpcrequest-payload.d.ts +21 -9
  104. package/lib/rpcrequest-payload.js +62 -51
  105. package/lib/rpcrequest-payload.js.map +1 -1
  106. package/lib/tedious.d.ts +2 -2
  107. package/lib/tedious.js +7 -1
  108. package/lib/tedious.js.map +1 -1
  109. package/package.json +1 -1
@@ -32,25 +32,18 @@ const Binary = {
32
32
  return this.maximumLength;
33
33
  }
34
34
  },
35
- generateTypeInfo(parameter) {
36
- const buffer = Buffer.alloc(3);
37
- buffer.writeUInt8(this.id, 0);
38
- buffer.writeUInt16LE(parameter.length, 1);
39
- return buffer;
35
+ writeTypeInfo(buffer, parameter) {
36
+ buffer.writeUInt8(this.id);
37
+ buffer.writeUInt16LE(parameter.length);
40
38
  },
41
- generateParameterLength(parameter, options) {
42
- if (parameter.value == null) {
43
- return NULL_LENGTH;
44
- }
45
- const buffer = Buffer.alloc(2);
46
- buffer.writeUInt16LE(parameter.length, 0);
47
- return buffer;
48
- },
49
- *generateParameterData(parameter, options) {
50
- if (parameter.value == null) {
39
+ writeValue(buffer, parameter) {
40
+ const value = parameter.value;
41
+ if (value == null) {
42
+ buffer.writeBuffer(NULL_LENGTH);
51
43
  return;
52
44
  }
53
- yield parameter.value.slice(0, parameter.length !== undefined ? Math.min(parameter.length, this.maximumLength) : this.maximumLength);
45
+ buffer.writeUInt16LE(parameter.length);
46
+ buffer.writeBuffer(value.subarray(0, parameter.length !== undefined ? Math.min(parameter.length, Binary.maximumLength) : Binary.maximumLength));
54
47
  },
55
48
  validate: function (value) {
56
49
  if (value == null) {
@@ -64,4 +57,4 @@ const Binary = {
64
57
  };
65
58
  var _default = exports.default = Binary;
66
59
  module.exports = Binary;
67
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJCaW5hcnkiLCJpZCIsInR5cGUiLCJuYW1lIiwibWF4aW11bUxlbmd0aCIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwidmFsdWUiLCJsZW5ndGgiLCJvdXRwdXQiLCJyZXNvbHZlTGVuZ3RoIiwiZ2VuZXJhdGVUeXBlSW5mbyIsImJ1ZmZlciIsImFsbG9jIiwid3JpdGVVSW50OCIsIndyaXRlVUludDE2TEUiLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsIm9wdGlvbnMiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJzbGljZSIsInVuZGVmaW5lZCIsIk1hdGgiLCJtaW4iLCJ2YWxpZGF0ZSIsImlzQnVmZmVyIiwiVHlwZUVycm9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2JpbmFyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcblxuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBCaW5hcnk6IHsgbWF4aW11bUxlbmd0aDogbnVtYmVyIH0gJiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4QUQsXG4gIHR5cGU6ICdCSUdCaW5hcnknLFxuICBuYW1lOiAnQmluYXJ5JyxcbiAgbWF4aW11bUxlbmd0aDogODAwMCxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGxldCBsZW5ndGg7XG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGgpIHtcbiAgICAgIGxlbmd0aCA9IHBhcmFtZXRlci5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBsZW5ndGggPSB2YWx1ZS5sZW5ndGggfHwgMTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsICYmICFwYXJhbWV0ZXIub3V0cHV0KSB7XG4gICAgICBsZW5ndGggPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuXG4gICAgcmV0dXJuICdiaW5hcnkoJyArIGxlbmd0aCArICcpJztcbiAgfSxcblxuICByZXNvbHZlTGVuZ3RoOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDMpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQsIDApO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHBhcmFtZXRlci5sZW5ndGghLCAxKTtcbiAgICByZXR1cm4gYnVmZmVyO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygyKTtcbiAgICBidWZmZXIud3JpdGVVSW50MTZMRShwYXJhbWV0ZXIubGVuZ3RoISwgMCk7XG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfSxcblxuICAqIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB5aWVsZCBwYXJhbWV0ZXIudmFsdWUuc2xpY2UoMCwgcGFyYW1ldGVyLmxlbmd0aCAhPT0gdW5kZWZpbmVkID8gTWF0aC5taW4ocGFyYW1ldGVyLmxlbmd0aCwgdGhpcy5tYXhpbXVtTGVuZ3RoKSA6IHRoaXMubWF4aW11bUxlbmd0aCk7XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogQnVmZmVyIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBidWZmZXIuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCaW5hcnk7XG5tb2R1bGUuZXhwb3J0cyA9IEJpbmFyeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsTUFBTUEsV0FBVyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUU3QyxNQUFNQyxNQUE0QyxHQUFHO0VBQ25EQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsV0FBVztFQUNqQkMsSUFBSSxFQUFFLFFBQVE7RUFDZEMsYUFBYSxFQUFFLElBQUk7RUFFbkJDLFdBQVcsRUFBRSxTQUFBQSxDQUFTQyxTQUFTLEVBQUU7SUFDL0IsTUFBTUMsS0FBSyxHQUFHRCxTQUFTLENBQUNDLEtBQXNCO0lBRTlDLElBQUlDLE1BQU07SUFDVixJQUFJRixTQUFTLENBQUNFLE1BQU0sRUFBRTtNQUNwQkEsTUFBTSxHQUFHRixTQUFTLENBQUNFLE1BQU07SUFDM0IsQ0FBQyxNQUFNLElBQUlELEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDeEJDLE1BQU0sR0FBR0Qs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
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJCaW5hcnkiLCJpZCIsInR5cGUiLCJuYW1lIiwibWF4aW11bUxlbmd0aCIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwidmFsdWUiLCJsZW5ndGgiLCJvdXRwdXQiLCJyZXNvbHZlTGVuZ3RoIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwid3JpdGVWYWx1ZSIsIndyaXRlQnVmZmVyIiwic3ViYXJyYXkiLCJ1bmRlZmluZWQiLCJNYXRoIiwibWluIiwidmFsaWRhdGUiLCJpc0J1ZmZlciIsIlR5cGVFcnJvciIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9iaW5hcnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkZdKTtcblxuY29uc3QgQmluYXJ5OiB7IG1heGltdW1MZW5ndGg6IG51bWJlciB9ICYgRGF0YVR5cGUgPSB7XG4gIGlkOiAweEFELFxuICB0eXBlOiAnQklHQmluYXJ5JyxcbiAgbmFtZTogJ0JpbmFyeScsXG4gIG1heGltdW1MZW5ndGg6IDgwMDAsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBsZXQgbGVuZ3RoO1xuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoKSB7XG4gICAgICBsZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoIHx8IDE7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCAmJiAhcGFyYW1ldGVyLm91dHB1dCkge1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cblxuICAgIHJldHVybiAnYmluYXJ5KCcgKyBsZW5ndGggKyAnKSc7XG4gIH0sXG5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gdmFsdWUubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICB3cml0ZVR5cGVJbmZvKGJ1ZmZlciwgcGFyYW1ldGVyKSB7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCk7XG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUocGFyYW1ldGVyLmxlbmd0aCEpO1xuICB9LFxuXG4gIHdyaXRlVmFsdWUoYnVmZmVyLCBwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVCdWZmZXIoTlVMTF9MRU5HVEgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHBhcmFtZXRlci5sZW5ndGghKTtcbiAgICBidWZmZXIud3JpdGVCdWZmZXIodmFsdWUuc3ViYXJyYXkoMCwgcGFyYW1ldGVyLmxlbmd0aCAhPT0gdW5kZWZpbmVkID8gTWF0aC5taW4ocGFyYW1ldGVyLmxlbmd0aCwgQmluYXJ5Lm1heGltdW1MZW5ndGgpIDogQmluYXJ5Lm1heGltdW1MZW5ndGgpKTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBCdWZmZXIgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGJ1ZmZlci4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJpbmFyeTtcbm1vZHVsZS5leHBvcnRzID0gQmluYXJ5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRTdDLE1BQU1DLE1BQTRDLEdBQUc7RUFDbkRDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxXQUFXO0VBQ2pCQyxJQUFJLEVBQUUsUUFBUTtFQUNkQyxhQUFhLEVBQUUsSUFBSTtFQUVuQkMsV0FBVyxFQUFFLFNBQUFBLENBQVNDLFNBQVMsRUFBRTtJQUMvQixNQUFNQyxLQUFLLEdBQUdELFNBQVMsQ0FBQ0MsS0FBc0I7SUFFOUMsSUFBSUMsTUFBTTtJQUNWLElBQUlGLFNBQVMsQ0FBQ0UsTUFBTSxFQUFFO01BQ3BCQSxNQUFNLEdBQUdGLFNBQVMsQ0FBQ0UsTUFBTTtJQUMzQixDQUFDLE1BQU0sSUFBSUQsS0FBSyxJQUFJLElBQUksRUFBRTtNQUN4QkMsTUFBTSxHQUFHRCxLQUFLLENBQUNDLE1BQU0sSUFBSSxDQUFDO0lBQzVCLENBQUMsTUFBTSxJQUFJRCxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUNELFNBQVMsQ0FBQ0csTUFBTSxFQUFFO01BQzlDRCxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUMsTUFBTTtNQUNMQSxNQUFNLEdBQUcsSUFBSSxDQUFDSixhQUFhO0lBQzdCO0lBRUEsT0FBTyxTQUFTLEdBQUdJLE1BQU0sR0FBRyxHQUFHO0VBQ2pDLENBQUM7RUFFREUsYUFBYSxFQUFFLFNBQUFBLENBQVNKLFNBQVMsRUFBRTtJQUNqQyxNQUFNQyxLQUFLLEdBQUdELFNBQVMsQ0FBQ0MsS0FBc0I7SUFFOUMsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPQSxLQUFLLENBQUNDLE1BQU07SUFDckIsQ0FBQyxNQUFNO01BQ0wsT0FBTyxJQUFJLENBQUNKLGFBQWE7SUFDM0I7RUFDRixDQUFDO0VBRURPLGFBQWFBLENBQUNDLE1BQU0sRUFBRU4sU0FBUyxFQUFFO0lBQy9CTSxNQUFNLENBQUNDLFVBQVUsQ0FBQyxJQUFJLENBQUNaLEVBQUUsQ0FBQztJQUMxQlcsTUFBTSxDQUFDRSxhQUFhLENBQUNSLFNBQVMsQ0FBQ0UsTUFBTyxDQUFDO0VBQ3pDLENBQUM7RUFFRE8sVUFBVUEsQ0FBQ0gsTUFBTSxFQUFFTixTQUFTLEVBQUU7SUFDNUIsTUFBTUMsS0FBSyxHQUFHRCxTQUFTLENBQUNDLEtBQXNCO0lBQzlDLElBQUlBLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakJLLE1BQU0sQ0FBQ0ksV0FBVyxDQUFDbkIsV0FBVyxDQUFDO01BQy9CO0lBQ0Y7SUFFQWUsTUFBTSxDQUFDRSxhQUFhLENBQUNSLFNBQVMsQ0FBQ0UsTUFBTyxDQUFDO0lBQ3ZDSSxNQUFNLENBQUNJLFdBQVcsQ0FBQ1QsS0FBSyxDQUFDVSxRQUFRLENBQUMsQ0FBQyxFQUFFWCxTQUFTLENBQUNFLE1BQU0sS0FBS1UsU0FBUyxHQUFHQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ2QsU0FBUyxDQUFDRSxNQUFNLEVBQUVSLE1BQU0sQ0FBQ0ksYUFBYSxDQUFDLEdBQUdKLE1BQU0sQ0FBQ0ksYUFBYSxDQUFDLENBQUM7RUFDakosQ0FBQztFQUVEaUIsUUFBUSxFQUFFLFNBQUFBLENBQVNkLEtBQUssRUFBaUI7SUFDdkMsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPLElBQUk7SUFDYjtJQUVBLElBQUksQ0FBQ1QsTUFBTSxDQUFDd0IsUUFBUSxDQUFDZixLQUFLLENBQUMsRUFBRTtNQUMzQixNQUFNLElBQUlnQixTQUFTLENBQUMsaUJBQWlCLENBQUM7SUFDeEM7SUFFQSxPQUFPaEIsS0FBSztFQUNkO0FBQ0YsQ0FBQztBQUFDLElBQUFpQixRQUFBLEdBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUVhMUIsTUFBTTtBQUNyQjJCLE1BQU0sQ0FBQ0YsT0FBTyxHQUFHekIsTUFBTSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"binary.js","names":["NULL_LENGTH","Buffer","from","Binary","id","type","name","maximumLength","declaration","parameter","value","length","output","resolveLength","generateTypeInfo","buffer","alloc","writeUInt8","writeUInt16LE","generateParameterLength","options","generateParameterData","slice","undefined","Math","min","validate","isBuffer","TypeError","_default","exports","default","module"],"sources":["../../src/data-types/binary.ts"],"sourcesContent":["import { type DataType } from '../data-type';\n\nconst NULL_LENGTH = Buffer.from([0xFF, 0xFF]);\n\nconst Binary: { maximumLength: number } & DataType = {\n id: 0xAD,\n type: 'BIGBinary',\n name: 'Binary',\n maximumLength: 8000,\n\n declaration: function(parameter) {\n const value = parameter.value as Buffer | null;\n\n let length;\n if (parameter.length) {\n length = parameter.length;\n } else if (value != null) {\n length = value.length || 1;\n } else if (value === null && !parameter.output) {\n length = 1;\n } else {\n length = this.maximumLength;\n }\n\n return 'binary(' + length + ')';\n },\n\n resolveLength: function(parameter) {\n const value = parameter.value as Buffer | null;\n\n if (value != null) {\n return value.length;\n } else {\n return this.maximumLength;\n }\n },\n\n generateTypeInfo(parameter) {\n const buffer = Buffer.alloc(3);\n buffer.writeUInt8(this.id, 0);\n buffer.writeUInt16LE(parameter.length!, 1);\n return buffer;\n },\n\n generateParameterLength(parameter, options) {\n if (parameter.value == null) {\n return NULL_LENGTH;\n }\n\n const buffer = Buffer.alloc(2);\n buffer.writeUInt16LE(parameter.length!, 0);\n return buffer;\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n yield parameter.value.slice(0, parameter.length !== undefined ? Math.min(parameter.length, this.maximumLength) : this.maximumLength);\n },\n\n validate: function(value): Buffer | null {\n if (value == null) {\n return null;\n }\n\n if (!Buffer.isBuffer(value)) {\n throw new TypeError('Invalid buffer.');\n }\n\n return value;\n }\n};\n\nexport default Binary;\nmodule.exports = Binary;\n"],"mappings":";;;;;;AAEA,MAAMA,WAAW,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAE7C,MAAMC,MAA4C,GAAG;EACnDC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,WAAW;EACjBC,IAAI,EAAE,QAAQ;EACdC,aAAa,EAAE,IAAI;EAEnBC,WAAW,EAAE,SAAAA,CAASC,SAAS,EAAE;IAC/B,MAAMC,KAAK,GAAGD,SAAS,CAACC,KAAsB;IAE9C,IAAIC,MAAM;IACV,IAAIF,SAAS,CAACE,MAAM,EAAE;MACpBA,MAAM,GAAGF,SAAS,CAACE,MAAM;IAC3B,CAAC,MAAM,IAAID,KAAK,IAAI,IAAI,EAAE;MACxBC,MAAM,GAAGD,KAAK,CAACC,MAAM,IAAI,CAAC;IAC5B,CAAC,MAAM,IAAID,KAAK,KAAK,IAAI,IAAI,CAACD,SAAS,CAACG,MAAM,EAAE;MAC9CD,MAAM,GAAG,CAAC;IACZ,CAAC,MAAM;MACLA,MAAM,GAAG,IAAI,CAACJ,aAAa;IAC7B;IAEA,OAAO,SAAS,GAAGI,MAAM,GAAG,GAAG;EACjC,CAAC;EAEDE,aAAa,EAAE,SAAAA,CAASJ,SAAS,EAAE;IACjC,MAAMC,KAAK,GAAGD,SAAS,CAACC,KAAsB;IAE9C,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAOA,KAAK,CAACC,MAAM;IACrB,CAAC,MAAM;MACL,OAAO,IAAI,CAACJ,aAAa;IAC3B;EACF,CAAC;EAEDO,gBAAgBA,CAACL,SAAS,EAAE;IAC1B,MAAMM,MAAM,GAAGd,MAAM,CAACe,KAAK,CAAC,CAAC,CAAC;IAC9BD,MAAM,CAACE,UAAU,CAAC,IAAI,CAACb,EAAE,EAAE,CAAC,CAAC;IAC7BW,MAAM,CAACG,aAAa,CAACT,SAAS,CAACE,MAAM,EAAG,CAAC,CAAC;IAC1C,OAAOI,MAAM;EACf,CAAC;EAEDI,uBAAuBA,CAACV,SAAS,EAAEW,OAAO,EAAE;IAC1C,IAAIX,SAAS,CAACC,KAAK,IAAI,IAAI,EAAE;MAC3B,OAAOV,WAAW;IACpB;IAEA,MAAMe,MAAM,GAAGd,MAAM,CAACe,KAAK,CAAC,CAAC,CAAC;IAC9BD,MAAM,CAACG,aAAa,CAACT,SAAS,CAACE,MAAM,EAAG,CAAC,CAAC;IAC1C,OAAOI,MAAM;EACf,CAAC;EAED,CAAEM,qBAAqBA,CAACZ,SAAS,EAAEW,OAAO,EAAE;IAC1C,IAAIX,SAAS,CAACC,KAAK,IAAI,IAAI,EAAE;MAC3B;IACF;IAEA,MAAMD,SAAS,CAACC,KAAK,CAACY,KAAK,CAAC,CAAC,EAAEb,SAAS,CAACE,MAAM,KAAKY,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAChB,SAAS,CAACE,MAAM,EAAE,IAAI,CAACJ,aAAa,CAAC,GAAG,IAAI,CAACA,aAAa,CAAC;EACtI,CAAC;EAEDmB,QAAQ,EAAE,SAAAA,CAAShB,KAAK,EAAiB;IACvC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,IAAI,CAACT,MAAM,CAAC0B,QAAQ,CAACjB,KAAK,CAAC,EAAE;MAC3B,MAAM,IAAIkB,SAAS,CAAC,iBAAiB,CAAC;IACxC;IAEA,OAAOlB,KAAK;EACd;AACF,CAAC;AAAC,IAAAmB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa5B,MAAM;AACrB6B,MAAM,CAACF,OAAO,GAAG3B,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"binary.js","names":["NULL_LENGTH","Buffer","from","Binary","id","type","name","maximumLength","declaration","parameter","value","length","output","resolveLength","writeTypeInfo","buffer","writeUInt8","writeUInt16LE","writeValue","writeBuffer","subarray","undefined","Math","min","validate","isBuffer","TypeError","_default","exports","default","module"],"sources":["../../src/data-types/binary.ts"],"sourcesContent":["import { type DataType } from '../data-type';\n\nconst NULL_LENGTH = Buffer.from([0xFF, 0xFF]);\n\nconst Binary: { maximumLength: number } & DataType = {\n id: 0xAD,\n type: 'BIGBinary',\n name: 'Binary',\n maximumLength: 8000,\n\n declaration: function(parameter) {\n const value = parameter.value as Buffer | null;\n\n let length;\n if (parameter.length) {\n length = parameter.length;\n } else if (value != null) {\n length = value.length || 1;\n } else if (value === null && !parameter.output) {\n length = 1;\n } else {\n length = this.maximumLength;\n }\n\n return 'binary(' + length + ')';\n },\n\n resolveLength: function(parameter) {\n const value = parameter.value as Buffer | null;\n\n if (value != null) {\n return value.length;\n } else {\n return this.maximumLength;\n }\n },\n\n writeTypeInfo(buffer, parameter) {\n buffer.writeUInt8(this.id);\n buffer.writeUInt16LE(parameter.length!);\n },\n\n writeValue(buffer, parameter) {\n const value = parameter.value as Buffer | null;\n if (value == null) {\n buffer.writeBuffer(NULL_LENGTH);\n return;\n }\n\n buffer.writeUInt16LE(parameter.length!);\n buffer.writeBuffer(value.subarray(0, parameter.length !== undefined ? Math.min(parameter.length, Binary.maximumLength) : Binary.maximumLength));\n },\n\n validate: function(value): Buffer | null {\n if (value == null) {\n return null;\n }\n\n if (!Buffer.isBuffer(value)) {\n throw new TypeError('Invalid buffer.');\n }\n\n return value;\n }\n};\n\nexport default Binary;\nmodule.exports = Binary;\n"],"mappings":";;;;;;AAEA,MAAMA,WAAW,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAE7C,MAAMC,MAA4C,GAAG;EACnDC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,WAAW;EACjBC,IAAI,EAAE,QAAQ;EACdC,aAAa,EAAE,IAAI;EAEnBC,WAAW,EAAE,SAAAA,CAASC,SAAS,EAAE;IAC/B,MAAMC,KAAK,GAAGD,SAAS,CAACC,KAAsB;IAE9C,IAAIC,MAAM;IACV,IAAIF,SAAS,CAACE,MAAM,EAAE;MACpBA,MAAM,GAAGF,SAAS,CAACE,MAAM;IAC3B,CAAC,MAAM,IAAID,KAAK,IAAI,IAAI,EAAE;MACxBC,MAAM,GAAGD,KAAK,CAACC,MAAM,IAAI,CAAC;IAC5B,CAAC,MAAM,IAAID,KAAK,KAAK,IAAI,IAAI,CAACD,SAAS,CAACG,MAAM,EAAE;MAC9CD,MAAM,GAAG,CAAC;IACZ,CAAC,MAAM;MACLA,MAAM,GAAG,IAAI,CAACJ,aAAa;IAC7B;IAEA,OAAO,SAAS,GAAGI,MAAM,GAAG,GAAG;EACjC,CAAC;EAEDE,aAAa,EAAE,SAAAA,CAASJ,SAAS,EAAE;IACjC,MAAMC,KAAK,GAAGD,SAAS,CAACC,KAAsB;IAE9C,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAOA,KAAK,CAACC,MAAM;IACrB,CAAC,MAAM;MACL,OAAO,IAAI,CAACJ,aAAa;IAC3B;EACF,CAAC;EAEDO,aAAaA,CAACC,MAAM,EAAEN,SAAS,EAAE;IAC/BM,MAAM,CAACC,UAAU,CAAC,IAAI,CAACZ,EAAE,CAAC;IAC1BW,MAAM,CAACE,aAAa,CAACR,SAAS,CAACE,MAAO,CAAC;EACzC,CAAC;EAEDO,UAAUA,CAACH,MAAM,EAAEN,SAAS,EAAE;IAC5B,MAAMC,KAAK,GAAGD,SAAS,CAACC,KAAsB;IAC9C,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjBK,MAAM,CAACI,WAAW,CAACnB,WAAW,CAAC;MAC/B;IACF;IAEAe,MAAM,CAACE,aAAa,CAACR,SAAS,CAACE,MAAO,CAAC;IACvCI,MAAM,CAACI,WAAW,CAACT,KAAK,CAACU,QAAQ,CAAC,CAAC,EAAEX,SAAS,CAACE,MAAM,KAAKU,SAAS,GAAGC,IAAI,CAACC,GAAG,CAACd,SAAS,CAACE,MAAM,EAAER,MAAM,CAACI,aAAa,CAAC,GAAGJ,MAAM,CAACI,aAAa,CAAC,CAAC;EACjJ,CAAC;EAEDiB,QAAQ,EAAE,SAAAA,CAASd,KAAK,EAAiB;IACvC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,IAAI,CAACT,MAAM,CAACwB,QAAQ,CAACf,KAAK,CAAC,EAAE;MAC3B,MAAM,IAAIgB,SAAS,CAAC,iBAAiB,CAAC;IACxC;IAEA,OAAOhB,KAAK;EACd;AACF,CAAC;AAAC,IAAAiB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa1B,MAAM;AACrB2B,MAAM,CAACF,OAAO,GAAGzB,MAAM","ignoreList":[]}
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _bitn = _interopRequireDefault(require("./bitn"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- const DATA_LENGTH = Buffer.from([0x01]);
10
- const NULL_LENGTH = Buffer.from([0x00]);
9
+ const TYPE_INFO = Buffer.from([_bitn.default.id, 0x01]);
11
10
  const Bit = {
12
11
  id: 0x32,
13
12
  type: 'BIT',
@@ -15,20 +14,17 @@ const Bit = {
15
14
  declaration: function () {
16
15
  return 'bit';
17
16
  },
18
- generateTypeInfo() {
19
- return Buffer.from([_bitn.default.id, 0x01]);
17
+ writeTypeInfo(buffer) {
18
+ buffer.writeBuffer(TYPE_INFO);
20
19
  },
21
- generateParameterLength(parameter, options) {
22
- if (parameter.value == null) {
23
- return NULL_LENGTH;
24
- }
25
- return DATA_LENGTH;
26
- },
27
- *generateParameterData(parameter, options) {
28
- if (parameter.value == null) {
20
+ writeValue(buffer, parameter) {
21
+ const value = parameter.value;
22
+ if (value == null) {
23
+ buffer.writeUInt8(0x00);
29
24
  return;
30
25
  }
31
- yield parameter.value ? Buffer.from([0x01]) : Buffer.from([0x00]);
26
+ buffer.writeUInt8(0x01);
27
+ buffer.writeUInt8(value ? 0x01 : 0x00);
32
28
  },
33
29
  validate: function (value) {
34
30
  if (value == null) {
@@ -43,4 +39,4 @@ const Bit = {
43
39
  };
44
40
  var _default = exports.default = Bit;
45
41
  module.exports = Bit;
46
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYml0biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiREFUQV9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiTlVMTF9MRU5HVEgiLCJCaXQiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJnZW5lcmF0ZVR5cGVJbmZvIiwiQml0TiIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwicGFyYW1ldGVyIiwib3B0aW9ucyIsInZhbHVlIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwidmFsaWRhdGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9iaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgQml0TiBmcm9tICcuL2JpdG4nO1xuXG5jb25zdCBEQVRBX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAxXSk7XG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5cbmNvbnN0IEJpdDogRGF0YVR5cGUgPSB7XG4gIGlkOiAweDMyLFxuICB0eXBlOiAnQklUJyxcbiAgbmFtZTogJ0JpdCcsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnYml0JztcbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKCkge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShbQml0Ti5pZCwgMHgwMV0pO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgIH1cblxuICAgIHJldHVybiBEQVRBX0xFTkdUSDtcbiAgfSxcblxuICAqIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB5aWVsZCBwYXJhbWV0ZXIudmFsdWUgPyBCdWZmZXIuZnJvbShbMHgwMV0pIDogQnVmZmVyLmZyb20oWzB4MDBdKTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBudWxsIHwgYm9vbGVhbiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCaXQ7XG5tb2R1bGUuZXhwb3J0cyA9IEJpdDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQTBCLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRTFCLE1BQU1HLFdBQVcsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN2QyxNQUFNQyxXQUFXLEdBQUdGLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdkMsTUFBTUUsR0FBYSxHQUFHO0VBQ3BCQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsS0FBSztFQUNYQyxJQUFJLEVBQUUsS0FBSztFQUVYQyxXQUFXLEVBQUUsU0FBQUEsQ0FBQSxFQUFXO0lBQ3RCLE9BQU8sS0FBSztFQUNkLENBQUM7RUFFREMsZ0JBQWdCQSxDQUFBLEVBQUc7SUFDakIsT0FBT1IsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQ1EsYUFBSSxDQUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7RUFDckMsQ0FBQztFQUVETSx1QkFBdUJBLENBQUNDLFNBQVMsRUFBRUMsT0FBTyxFQUFFO0lBQzFDLElBQUlELFNBQVMsQ0FBQ0UsS0FBSyxJQUFJLElBQUksRUFBRTtNQUMzQixPQUFPWCxXQUFXO0lBQ3BCO0lBRUEsT0FBT0gsV0FBVztFQUNwQixDQUFDO0VBRUQsQ0FBRWUscUJBQXFCQSxDQUFDSCxTQUFTLEVBQUVDLE9BQU8sRUFBRTtJQUMxQyxJQUFJRCxTQUFTLENBQUNFLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDM0I7SUFDRjtJQUVBLE1BQU1GLFNBQVMsQ0FBQ0UsS0FBSyxHQUFHYixNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUdELE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7RUFDbkUsQ0FBQztFQUVEYyxRQUFRLEVBQUUsU0FBQUEsQ0FBU0YsS0FBSyxFQUFrQjtJQUN4QyxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCLE9BQU8sSUFBSTtJQUNiO0lBQ0EsSUFBSUEsS0FBSyxFQUFFO01BQ1QsT0FBTyxJQUFJO0lBQ2IsQ0FBQyxNQUFNO01BQ0wsT0FBTyxLQUFLO0lBQ2Q7RUFDRjtBQUNGLENBQUM7QUFBQyxJQUFBRyxRQUFBLEdBQUFDLE9BQUEsQ0FBQW5CLE9BQUEsR0FFYUssR0FBRztBQUNsQmUsTUFBTSxDQUFDRCxPQUFPLEdBQUdkLEdBQUciLCJpZ25vcmVMaXN0IjpbXX0=
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYml0biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiVFlQRV9JTkZPIiwiQnVmZmVyIiwiZnJvbSIsIkJpdE4iLCJpZCIsIkJpdCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJ3cml0ZVR5cGVJbmZvIiwiYnVmZmVyIiwid3JpdGVCdWZmZXIiLCJ3cml0ZVZhbHVlIiwicGFyYW1ldGVyIiwidmFsdWUiLCJ3cml0ZVVJbnQ4IiwidmFsaWRhdGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9iaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgQml0TiBmcm9tICcuL2JpdG4nO1xuXG5jb25zdCBUWVBFX0lORk8gPSBCdWZmZXIuZnJvbShbQml0Ti5pZCwgMHgwMV0pO1xuXG5jb25zdCBCaXQ6IERhdGFUeXBlID0ge1xuICBpZDogMHgzMixcbiAgdHlwZTogJ0JJVCcsXG4gIG5hbWU6ICdCaXQnLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gJ2JpdCc7XG4gIH0sXG5cbiAgd3JpdGVUeXBlSW5mbyhidWZmZXIpIHtcbiAgICBidWZmZXIud3JpdGVCdWZmZXIoVFlQRV9JTkZPKTtcbiAgfSxcblxuICB3cml0ZVZhbHVlKGJ1ZmZlciwgcGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYm9vbGVhbiB8IG51bGw7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDEpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHZhbHVlID8gMHgwMSA6IDB4MDApO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IG51bGwgfCBib29sZWFuIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJpdDtcbm1vZHVsZS5leHBvcnRzID0gQml0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBMEIsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFMUIsTUFBTUcsU0FBUyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDQyxhQUFJLENBQUNDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUU5QyxNQUFNQyxHQUFhLEdBQUc7RUFDcEJELEVBQUUsRUFBRSxJQUFJO0VBQ1JFLElBQUksRUFBRSxLQUFLO0VBQ1hDLElBQUksRUFBRSxLQUFLO0VBRVhDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxLQUFLO0VBQ2QsQ0FBQztFQUVEQyxhQUFhQSxDQUFDQyxNQUFNLEVBQUU7SUFDcEJBLE1BQU0sQ0FBQ0MsV0FBVyxDQUFDWCxTQUFTLENBQUM7RUFDL0IsQ0FBQztFQUVEWSxVQUFVQSxDQUFDRixNQUFNLEVBQUVHLFNBQVMsRUFBRTtJQUM1QixNQUFNQyxLQUFLLEdBQUdELFNBQVMsQ0FBQ0MsS0FBdUI7SUFDL0MsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQkosTUFBTSxDQUFDSyxVQUFVLENBQUMsSUFBSSxDQUFDO01BQ3ZCO0lBQ0Y7SUFFQUwsTUFBTSxDQUFDSyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ3ZCTCxNQUFNLENBQUNLLFVBQVUsQ0FBQ0QsS0FBSyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7RUFDeEMsQ0FBQztFQUVERSxRQUFRLEVBQUUsU0FBQUEsQ0FBU0YsS0FBSyxFQUFrQjtJQUN4QyxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCLE9BQU8sSUFBSTtJQUNiO0lBQ0EsSUFBSUEsS0FBSyxFQUFFO01BQ1QsT0FBTyxJQUFJO0lBQ2IsQ0FBQyxNQUFNO01BQ0wsT0FBTyxLQUFLO0lBQ2Q7RUFDRjtBQUNGLENBQUM7QUFBQyxJQUFBRyxRQUFBLEdBQUFDLE9BQUEsQ0FBQW5CLE9BQUEsR0FFYU0sR0FBRztBQUNsQmMsTUFBTSxDQUFDRCxPQUFPLEdBQUdiLEdBQUciLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"bit.js","names":["_bitn","_interopRequireDefault","require","e","__esModule","default","DATA_LENGTH","Buffer","from","NULL_LENGTH","Bit","id","type","name","declaration","generateTypeInfo","BitN","generateParameterLength","parameter","options","value","generateParameterData","validate","_default","exports","module"],"sources":["../../src/data-types/bit.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport BitN from './bitn';\n\nconst DATA_LENGTH = Buffer.from([0x01]);\nconst NULL_LENGTH = Buffer.from([0x00]);\n\nconst Bit: DataType = {\n id: 0x32,\n type: 'BIT',\n name: 'Bit',\n\n declaration: function() {\n return 'bit';\n },\n\n generateTypeInfo() {\n return Buffer.from([BitN.id, 0x01]);\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 yield parameter.value ? Buffer.from([0x01]) : Buffer.from([0x00]);\n },\n\n validate: function(value): null | boolean {\n if (value == null) {\n return null;\n }\n if (value) {\n return true;\n } else {\n return false;\n }\n }\n};\n\nexport default Bit;\nmodule.exports = Bit;\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B,MAAMG,WAAW,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,MAAMC,WAAW,GAAGF,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAEvC,MAAME,GAAa,GAAG;EACpBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,KAAK;EACXC,IAAI,EAAE,KAAK;EAEXC,WAAW,EAAE,SAAAA,CAAA,EAAW;IACtB,OAAO,KAAK;EACd,CAAC;EAEDC,gBAAgBA,CAAA,EAAG;IACjB,OAAOR,MAAM,CAACC,IAAI,CAAC,CAACQ,aAAI,CAACL,EAAE,EAAE,IAAI,CAAC,CAAC;EACrC,CAAC;EAEDM,uBAAuBA,CAACC,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B,OAAOX,WAAW;IACpB;IAEA,OAAOH,WAAW;EACpB,CAAC;EAED,CAAEe,qBAAqBA,CAACH,SAAS,EAAEC,OAAO,EAAE;IAC1C,IAAID,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B;IACF;IAEA,MAAMF,SAAS,CAACE,KAAK,GAAGb,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAGD,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;EACnE,CAAC;EAEDc,QAAQ,EAAE,SAAAA,CAASF,KAAK,EAAkB;IACxC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IACA,IAAIA,KAAK,EAAE;MACT,OAAO,IAAI;IACb,CAAC,MAAM;MACL,OAAO,KAAK;IACd;EACF;AACF,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAEaK,GAAG;AAClBe,MAAM,CAACD,OAAO,GAAGd,GAAG","ignoreList":[]}
1
+ {"version":3,"file":"bit.js","names":["_bitn","_interopRequireDefault","require","e","__esModule","default","TYPE_INFO","Buffer","from","BitN","id","Bit","type","name","declaration","writeTypeInfo","buffer","writeBuffer","writeValue","parameter","value","writeUInt8","validate","_default","exports","module"],"sources":["../../src/data-types/bit.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport BitN from './bitn';\n\nconst TYPE_INFO = Buffer.from([BitN.id, 0x01]);\n\nconst Bit: DataType = {\n id: 0x32,\n type: 'BIT',\n name: 'Bit',\n\n declaration: function() {\n return 'bit';\n },\n\n writeTypeInfo(buffer) {\n buffer.writeBuffer(TYPE_INFO);\n },\n\n writeValue(buffer, parameter) {\n const value = parameter.value as boolean | null;\n if (value == null) {\n buffer.writeUInt8(0x00);\n return;\n }\n\n buffer.writeUInt8(0x01);\n buffer.writeUInt8(value ? 0x01 : 0x00);\n },\n\n validate: function(value): null | boolean {\n if (value == null) {\n return null;\n }\n if (value) {\n return true;\n } else {\n return false;\n }\n }\n};\n\nexport default Bit;\nmodule.exports = Bit;\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1B,MAAMG,SAAS,GAAGC,MAAM,CAACC,IAAI,CAAC,CAACC,aAAI,CAACC,EAAE,EAAE,IAAI,CAAC,CAAC;AAE9C,MAAMC,GAAa,GAAG;EACpBD,EAAE,EAAE,IAAI;EACRE,IAAI,EAAE,KAAK;EACXC,IAAI,EAAE,KAAK;EAEXC,WAAW,EAAE,SAAAA,CAAA,EAAW;IACtB,OAAO,KAAK;EACd,CAAC;EAEDC,aAAaA,CAACC,MAAM,EAAE;IACpBA,MAAM,CAACC,WAAW,CAACX,SAAS,CAAC;EAC/B,CAAC;EAEDY,UAAUA,CAACF,MAAM,EAAEG,SAAS,EAAE;IAC5B,MAAMC,KAAK,GAAGD,SAAS,CAACC,KAAuB;IAC/C,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjBJ,MAAM,CAACK,UAAU,CAAC,IAAI,CAAC;MACvB;IACF;IAEAL,MAAM,CAACK,UAAU,CAAC,IAAI,CAAC;IACvBL,MAAM,CAACK,UAAU,CAACD,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;EACxC,CAAC;EAEDE,QAAQ,EAAE,SAAAA,CAASF,KAAK,EAAkB;IACxC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IACA,IAAIA,KAAK,EAAE;MACT,OAAO,IAAI;IACb,CAAC,MAAM;MACL,OAAO,KAAK;IACd;EACF;AACF,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAEaM,GAAG;AAClBc,MAAM,CAACD,OAAO,GAAGb,GAAG","ignoreList":[]}
@@ -11,13 +11,10 @@ const BitN = {
11
11
  declaration() {
12
12
  throw new Error('not implemented');
13
13
  },
14
- generateTypeInfo() {
14
+ writeTypeInfo() {
15
15
  throw new Error('not implemented');
16
16
  },
17
- generateParameterLength() {
18
- throw new Error('not implemented');
19
- },
20
- *generateParameterData() {
17
+ writeValue() {
21
18
  throw new Error('not implemented');
22
19
  },
23
20
  validate() {
@@ -26,4 +23,4 @@ const BitN = {
26
23
  };
27
24
  var _default = exports.default = BitN;
28
25
  module.exports = BitN;
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaXROIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwiRXJyb3IiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJ2YWxpZGF0ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9iaXRuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBCaXROOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4NjgsXG4gIHR5cGU6ICdCSVROJyxcbiAgbmFtZTogJ0JpdE4nLFxuXG4gIGRlY2xhcmF0aW9uKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbygpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfSxcblxuICB2YWxpZGF0ZSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBCaXROO1xubW9kdWxlLmV4cG9ydHMgPSBCaXROO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxJQUFjLEdBQUc7RUFDckJDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxNQUFNO0VBQ1pDLElBQUksRUFBRSxNQUFNO0VBRVpDLFdBQVdBLENBQUEsRUFBRztJQUNaLE1BQU0sSUFBSUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0VBQ3BDLENBQUM7RUFFREMsZ0JBQWdCQSxDQUFBLEVBQUc7SUFDakIsTUFBTSxJQUFJRCxLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDcEMsQ0FBQztFQUVERSx1QkFBdUJBLENBQUEsRUFBRztJQUN4QixNQUFNLElBQUlGLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUNwQyxDQUFDO0VBRUQsQ0FBRUcscUJBQXFCQSxDQUFBLEVBQUc7SUFDeEIsTUFBTSxJQUFJSCxLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDcEMsQ0FBQztFQUVESSxRQUFRQSxDQUFBLEVBQUc7SUFDVCxNQUFNLElBQUlKLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUNwQztBQUNGLENBQUM7QUFBQyxJQUFBSyxRQUFBLEdBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUVhWixJQUFJO0FBQ25CYSxNQUFNLENBQUNGLE9BQU8sR0FBR1gsSUFBSSIsImlnbm9yZUxpc3QiOltdfQ==
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaXROIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwiRXJyb3IiLCJ3cml0ZVR5cGVJbmZvIiwid3JpdGVWYWx1ZSIsInZhbGlkYXRlIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2JpdG4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5cbmNvbnN0IEJpdE46IERhdGFUeXBlID0ge1xuICBpZDogMHg2OCxcbiAgdHlwZTogJ0JJVE4nLFxuICBuYW1lOiAnQml0TicsXG5cbiAgZGVjbGFyYXRpb24oKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfSxcblxuICB3cml0ZVR5cGVJbmZvKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9LFxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJpdE47XG5tb2R1bGUuZXhwb3J0cyA9IEJpdE47XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLE1BQU1BLElBQWMsR0FBRztFQUNyQkMsRUFBRSxFQUFFLElBQUk7RUFDUkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsSUFBSSxFQUFFLE1BQU07RUFFWkMsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osTUFBTSxJQUFJQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDcEMsQ0FBQztFQUVEQyxhQUFhQSxDQUFBLEVBQUc7SUFDZCxNQUFNLElBQUlELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUNwQyxDQUFDO0VBRURFLFVBQVVBLENBQUEsRUFBRztJQUNYLE1BQU0sSUFBSUYsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0VBQ3BDLENBQUM7RUFFREcsUUFBUUEsQ0FBQSxFQUFHO0lBQ1QsTUFBTSxJQUFJSCxLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDcEM7QUFDRixDQUFDO0FBQUMsSUFBQUksUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFYVgsSUFBSTtBQUNuQlksTUFBTSxDQUFDRixPQUFPLEdBQUdWLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"bitn.js","names":["BitN","id","type","name","declaration","Error","generateTypeInfo","generateParameterLength","generateParameterData","validate","_default","exports","default","module"],"sources":["../../src/data-types/bitn.ts"],"sourcesContent":["import { type DataType } from '../data-type';\n\nconst BitN: DataType = {\n id: 0x68,\n type: 'BITN',\n name: 'BitN',\n\n declaration() {\n throw new Error('not implemented');\n },\n\n generateTypeInfo() {\n throw new Error('not implemented');\n },\n\n generateParameterLength() {\n throw new Error('not implemented');\n },\n\n * generateParameterData() {\n throw new Error('not implemented');\n },\n\n validate() {\n throw new Error('not implemented');\n }\n};\n\nexport default BitN;\nmodule.exports = BitN;\n"],"mappings":";;;;;;AAEA,MAAMA,IAAc,GAAG;EACrBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EAEZC,WAAWA,CAAA,EAAG;IACZ,MAAM,IAAIC,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDC,gBAAgBA,CAAA,EAAG;IACjB,MAAM,IAAID,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDE,uBAAuBA,CAAA,EAAG;IACxB,MAAM,IAAIF,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAED,CAAEG,qBAAqBA,CAAA,EAAG;IACxB,MAAM,IAAIH,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDI,QAAQA,CAAA,EAAG;IACT,MAAM,IAAIJ,KAAK,CAAC,iBAAiB,CAAC;EACpC;AACF,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaZ,IAAI;AACnBa,MAAM,CAACF,OAAO,GAAGX,IAAI","ignoreList":[]}
1
+ {"version":3,"file":"bitn.js","names":["BitN","id","type","name","declaration","Error","writeTypeInfo","writeValue","validate","_default","exports","default","module"],"sources":["../../src/data-types/bitn.ts"],"sourcesContent":["import { type DataType } from '../data-type';\n\nconst BitN: DataType = {\n id: 0x68,\n type: 'BITN',\n name: 'BitN',\n\n declaration() {\n throw new Error('not implemented');\n },\n\n writeTypeInfo() {\n throw new Error('not implemented');\n },\n\n writeValue() {\n throw new Error('not implemented');\n },\n\n validate() {\n throw new Error('not implemented');\n }\n};\n\nexport default BitN;\nmodule.exports = BitN;\n"],"mappings":";;;;;;AAEA,MAAMA,IAAc,GAAG;EACrBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EAEZC,WAAWA,CAAA,EAAG;IACZ,MAAM,IAAIC,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDC,aAAaA,CAAA,EAAG;IACd,MAAM,IAAID,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDE,UAAUA,CAAA,EAAG;IACX,MAAM,IAAIF,KAAK,CAAC,iBAAiB,CAAC;EACpC,CAAC;EAEDG,QAAQA,CAAA,EAAG;IACT,MAAM,IAAIH,KAAK,CAAC,iBAAiB,CAAC;EACpC;AACF,CAAC;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaX,IAAI;AACnBY,MAAM,CAACF,OAAO,GAAGV,IAAI","ignoreList":[]}
@@ -7,6 +7,7 @@ exports.default = void 0;
7
7
  var _iconvLite = _interopRequireDefault(require("iconv-lite"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
9
  const NULL_LENGTH = Buffer.from([0xFF, 0xFF]);
10
+ const NO_COLLATION = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00]);
10
11
  const Char = {
11
12
  id: 0xAF,
12
13
  type: 'BIGCHAR',
@@ -41,29 +42,23 @@ const Char = {
41
42
  return this.maximumLength;
42
43
  }
43
44
  },
44
- generateTypeInfo(parameter) {
45
- const buffer = Buffer.alloc(8);
46
- buffer.writeUInt8(this.id, 0);
47
- buffer.writeUInt16LE(parameter.length, 1);
45
+ writeTypeInfo(buffer, parameter) {
46
+ buffer.writeUInt8(this.id);
47
+ buffer.writeUInt16LE(parameter.length);
48
48
  if (parameter.collation) {
49
- parameter.collation.toBuffer().copy(buffer, 3, 0, 5);
49
+ buffer.writeBuffer(parameter.collation.toBuffer().subarray(0, 5));
50
+ } else {
51
+ buffer.writeBuffer(NO_COLLATION);
50
52
  }
51
- return buffer;
52
53
  },
53
- generateParameterLength(parameter, options) {
54
+ writeValue(buffer, parameter) {
54
55
  const value = parameter.value;
55
56
  if (value == null) {
56
- return NULL_LENGTH;
57
- }
58
- const buffer = Buffer.alloc(2);
59
- buffer.writeUInt16LE(value.length, 0);
60
- return buffer;
61
- },
62
- *generateParameterData(parameter, options) {
63
- if (parameter.value == null) {
57
+ buffer.writeBuffer(NULL_LENGTH);
64
58
  return;
65
59
  }
66
- yield Buffer.from(parameter.value, 'ascii');
60
+ buffer.writeUInt16LE(value.length);
61
+ buffer.writeBuffer(value);
67
62
  },
68
63
  validate: function (value, collation) {
69
64
  if (value == null) {
@@ -83,4 +78,4 @@ const Char = {
83
78
  };
84
79
  var _default = exports.default = Char;
85
80
  module.exports = Char;
86
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaWNvbnZMaXRlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJDaGFyIiwiaWQiLCJ0eXBlIiwibmFtZSIsIm1heGltdW1MZW5ndGgiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwib3V0cHV0IiwicmVzb2x2ZUxlbmd0aCIsImdlbmVyYXRlVHlwZUluZm8iLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwiY29sbGF0aW9uIiwidG9CdWZmZXIiLCJjb3B5IiwiZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgiLCJvcHRpb25zIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwidmFsaWRhdGUiLCJUeXBlRXJyb3IiLCJFcnJvciIsImNvZGVwYWdlIiwiaWNvbnYiLCJlbmNvZGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9jaGFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpY29udiBmcm9tICdpY29udi1saXRlJztcbmltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGXSk7XG5cbmNvbnN0IENoYXI6IHsgbWF4aW11bUxlbmd0aDogbnVtYmVyIH0gJiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4QUYsXG4gIHR5cGU6ICdCSUdDSEFSJyxcbiAgbmFtZTogJ0NoYXInLFxuICBtYXhpbXVtTGVuZ3RoOiA4MDAwLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgbGV0IGxlbmd0aDtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCkge1xuICAgICAgbGVuZ3RoID0gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwgJiYgIXBhcmFtZXRlci5vdXRwdXQpIHtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxlbmd0aCA9IHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG5cbiAgICBpZiAobGVuZ3RoIDwgdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ2NoYXIoJyArIGxlbmd0aCArICcpJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdjaGFyKCcgKyB0aGlzLm1heGltdW1MZW5ndGggKyAnKSc7XG4gICAgfVxuICB9LFxuXG4gIC8vIFBhcmFtZXRlckRhdGE8YW55PiBpcyB0ZW1wb3Jhcnkgc29sdXRpb24uIFRPRE86IG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHR5cGUgUGFyYW1ldGVyRGF0YTwuLi4+IGNhbiBiZS5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg4KTtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkLCAwKTtcbiAgICBidWZmZXIud3JpdGVVSW50MTZMRShwYXJhbWV0ZXIubGVuZ3RoISwgMSk7XG5cbiAgICBpZiAocGFyYW1ldGVyLmNvbGxhdGlvbikge1xuICAgICAgcGFyYW1ldGVyLmNvbGxhdGlvbi50b0J1ZmZlcigpLmNvcHkoYnVmZmVyLCAzLCAwLCA1KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIE5VTExfTEVOR1RIO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygyKTtcbiAgICBidWZmZXIud3JpdGVVSW50MTZMRSh2YWx1ZS5sZW5ndGgsIDApO1xuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgeWllbGQgQnVmZmVyLmZyb20ocGFyYW1ldGVyLnZhbHVlLCAnYXNjaWknKTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbik6IEJ1ZmZlciB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFjb2xsYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gY29sbGF0aW9uIHdhcyBzZXQgYnkgdGhlIHNlcnZlciBmb3IgdGhlIGN1cnJlbnQgY29ubmVjdGlvbi4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbGxhdGlvbi5jb2RlcGFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29sbGF0aW9uIHNldCBieSB0aGUgc2VydmVyIGhhcyBubyBhc3NvY2lhdGVkIGVuY29kaW5nLicpO1xuICAgIH1cblxuICAgIHJldHVybiBpY29udi5lbmNvZGUodmFsdWUsIGNvbGxhdGlvbi5jb2RlcGFnZSk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IENoYXI7XG5tb2R1bGUuZXhwb3J0cyA9IENoYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUErQixTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUcvQixNQUFNRyxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRTdDLE1BQU1DLElBQTBDLEdBQUc7RUFDakRDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxTQUFTO0VBQ2ZDLElBQUksRUFBRSxNQUFNO0VBQ1pDLGFBQWEsRUFBRSxJQUFJO0VBRW5CQyxXQUFXLEVBQUUsU0FBQUEsQ0FBU0MsU0FBUyxFQUFFO0lBQy9CLE1BQU1DLEtBQUssR0FBR0QsU0FBUyxDQUFDQyxLQUFzQjtJQUU5QyxJQUFJQyxNQUFNO0lBQ1YsSUFBSUYsU0FBUyxDQUFDRSxNQUFNLEVBQUU7TUFDcEJBLE1BQU0sR0FBR0YsU0FBUyxDQUFDRSxNQUFNO0lBQzNCLENBQUMsTUFBTSxJQUFJRCxLQUFLLElBQUksSUFBSSxFQUFFO01BQ3hCQyxNQUFNLEdBQUdELEtBQUssQ0FBQ0Ms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
81
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaWNvbnZMaXRlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJOT19DT0xMQVRJT04iLCJDaGFyIiwiaWQiLCJ0eXBlIiwibmFtZSIsIm1heGltdW1MZW5ndGgiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwib3V0cHV0IiwicmVzb2x2ZUxlbmd0aCIsIndyaXRlVHlwZUluZm8iLCJidWZmZXIiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVSW50MTZMRSIsImNvbGxhdGlvbiIsIndyaXRlQnVmZmVyIiwidG9CdWZmZXIiLCJzdWJhcnJheSIsIndyaXRlVmFsdWUiLCJ2YWxpZGF0ZSIsIlR5cGVFcnJvciIsIkVycm9yIiwiY29kZXBhZ2UiLCJpY29udiIsImVuY29kZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2NoYXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGljb252IGZyb20gJ2ljb252LWxpdGUnO1xuaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkZdKTtcbmNvbnN0IE5PX0NPTExBVElPTiA9IEJ1ZmZlci5mcm9tKFsweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwXSk7XG5cbmNvbnN0IENoYXI6IHsgbWF4aW11bUxlbmd0aDogbnVtYmVyIH0gJiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4QUYsXG4gIHR5cGU6ICdCSUdDSEFSJyxcbiAgbmFtZTogJ0NoYXInLFxuICBtYXhpbXVtTGVuZ3RoOiA4MDAwLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgbGV0IGxlbmd0aDtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCkge1xuICAgICAgbGVuZ3RoID0gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwgJiYgIXBhcmFtZXRlci5vdXRwdXQpIHtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxlbmd0aCA9IHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG5cbiAgICBpZiAobGVuZ3RoIDwgdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ2NoYXIoJyArIGxlbmd0aCArICcpJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdjaGFyKCcgKyB0aGlzLm1heGltdW1MZW5ndGggKyAnKSc7XG4gICAgfVxuICB9LFxuXG4gIC8vIFBhcmFtZXRlckRhdGE8YW55PiBpcyB0ZW1wb3Jhcnkgc29sdXRpb24uIFRPRE86IG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHR5cGUgUGFyYW1ldGVyRGF0YTwuLi4+IGNhbiBiZS5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICB3cml0ZVR5cGVJbmZvKGJ1ZmZlciwgcGFyYW1ldGVyKSB7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCk7XG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUocGFyYW1ldGVyLmxlbmd0aCEpO1xuICAgIGlmIChwYXJhbWV0ZXIuY29sbGF0aW9uKSB7XG4gICAgICBidWZmZXIud3JpdGVCdWZmZXIocGFyYW1ldGVyLmNvbGxhdGlvbi50b0J1ZmZlcigpLnN1YmFycmF5KDAsIDUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlQnVmZmVyKE5PX0NPTExBVElPTik7XG4gICAgfVxuICB9LFxuXG4gIHdyaXRlVmFsdWUoYnVmZmVyLCBwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVCdWZmZXIoTlVMTF9MRU5HVEgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHZhbHVlLmxlbmd0aCk7XG4gICAgYnVmZmVyLndyaXRlQnVmZmVyKHZhbHVlKTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbik6IEJ1ZmZlciB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFjb2xsYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gY29sbGF0aW9uIHdhcyBzZXQgYnkgdGhlIHNlcnZlciBmb3IgdGhlIGN1cnJlbnQgY29ubmVjdGlvbi4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbGxhdGlvbi5jb2RlcGFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29sbGF0aW9uIHNldCBieSB0aGUgc2VydmVyIGhhcyBubyBhc3NvY2lhdGVkIGVuY29kaW5nLicpO1xuICAgIH1cblxuICAgIHJldHVybiBpY29udi5lbmNvZGUodmFsdWUsIGNvbGxhdGlvbi5jb2RlcGFnZSk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IENoYXI7XG5tb2R1bGUuZXhwb3J0cyA9IENoYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUErQixTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUcvQixNQUFNRyxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdDLE1BQU1DLFlBQVksR0FBR0YsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFaEUsTUFBTUUsSUFBMEMsR0FBRztFQUNqREMsRUFBRSxFQUFFLElBQUk7RUFDUkMsSUFBSSxFQUFFLFNBQVM7RUFDZkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsYUFBYSxFQUFFLElBQUk7RUFFbkJDLFdBQVcsRUFBRSxTQUFBQSxDQUFTQyxTQUFTLEVBQUU7SUFDL0IsTUFBTUMsS0FBSyxHQUFHRCxTQUFTLENBQUNDLEtBQXNCO0lBRTlDLElBQUlDLE1BQU07SUFDVixJQUFJRixTQUFTLENBQUNFLE1BQU0sRUFBRTtNQUNwQkEsTUFBTSxHQUFHRixTQUFTLENBQUNFLE1BQU07SUFDM0IsQ0FBQyxNQUFNLElBQUlELEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDeEJDLE1BQU0sR0FBR0QsS0FBSyxDQUFDQyxNQUFNLElBQUksQ0FBQztJQUM1QixDQUFDLE1BQU0s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
@@ -1 +1 @@
1
- {"version":3,"file":"char.js","names":["_iconvLite","_interopRequireDefault","require","e","__esModule","default","NULL_LENGTH","Buffer","from","Char","id","type","name","maximumLength","declaration","parameter","value","length","output","resolveLength","generateTypeInfo","buffer","alloc","writeUInt8","writeUInt16LE","collation","toBuffer","copy","generateParameterLength","options","generateParameterData","validate","TypeError","Error","codepage","iconv","encode","_default","exports","module"],"sources":["../../src/data-types/char.ts"],"sourcesContent":["import iconv from 'iconv-lite';\nimport { type DataType } from '../data-type';\n\nconst NULL_LENGTH = Buffer.from([0xFF, 0xFF]);\n\nconst Char: { maximumLength: number } & DataType = {\n id: 0xAF,\n type: 'BIGCHAR',\n name: 'Char',\n maximumLength: 8000,\n\n declaration: function(parameter) {\n const value = parameter.value as Buffer | null;\n\n let length;\n if (parameter.length) {\n length = parameter.length;\n } else if (value != null) {\n length = value.length || 1;\n } else if (value === null && !parameter.output) {\n length = 1;\n } else {\n length = this.maximumLength;\n }\n\n if (length < this.maximumLength) {\n return 'char(' + length + ')';\n } else {\n return 'char(' + this.maximumLength + ')';\n }\n },\n\n // ParameterData<any> is temporary solution. TODO: need to understand what type ParameterData<...> can be.\n resolveLength: function(parameter) {\n const value = parameter.value as Buffer | null;\n\n if (parameter.length != null) {\n return parameter.length;\n } else if (value != null) {\n return value.length || 1;\n } else {\n return this.maximumLength;\n }\n },\n\n generateTypeInfo(parameter) {\n const buffer = Buffer.alloc(8);\n buffer.writeUInt8(this.id, 0);\n buffer.writeUInt16LE(parameter.length!, 1);\n\n if (parameter.collation) {\n parameter.collation.toBuffer().copy(buffer, 3, 0, 5);\n }\n\n return buffer;\n },\n\n generateParameterLength(parameter, options) {\n const value = parameter.value as Buffer | null;\n\n if (value == null) {\n return NULL_LENGTH;\n }\n\n const buffer = Buffer.alloc(2);\n buffer.writeUInt16LE(value.length, 0);\n return buffer;\n },\n\n * generateParameterData(parameter, options) {\n if (parameter.value == null) {\n return;\n }\n\n yield Buffer.from(parameter.value, 'ascii');\n },\n\n validate: function(value, collation): Buffer | null {\n if (value == null) {\n return null;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError('Invalid string.');\n }\n\n if (!collation) {\n throw new Error('No collation was set by the server for the current connection.');\n }\n\n if (!collation.codepage) {\n throw new Error('The collation set by the server has no associated encoding.');\n }\n\n return iconv.encode(value, collation.codepage);\n }\n};\n\nexport default Char;\nmodule.exports = Char;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"char.js","names":["_iconvLite","_interopRequireDefault","require","e","__esModule","default","NULL_LENGTH","Buffer","from","NO_COLLATION","Char","id","type","name","maximumLength","declaration","parameter","value","length","output","resolveLength","writeTypeInfo","buffer","writeUInt8","writeUInt16LE","collation","writeBuffer","toBuffer","subarray","writeValue","validate","TypeError","Error","codepage","iconv","encode","_default","exports","module"],"sources":["../../src/data-types/char.ts"],"sourcesContent":["import iconv from 'iconv-lite';\nimport { type DataType } from '../data-type';\n\nconst NULL_LENGTH = Buffer.from([0xFF, 0xFF]);\nconst NO_COLLATION = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00]);\n\nconst Char: { maximumLength: number } & DataType = {\n id: 0xAF,\n type: 'BIGCHAR',\n name: 'Char',\n maximumLength: 8000,\n\n declaration: function(parameter) {\n const value = parameter.value as Buffer | null;\n\n let length;\n if (parameter.length) {\n length = parameter.length;\n } else if (value != null) {\n length = value.length || 1;\n } else if (value === null && !parameter.output) {\n length = 1;\n } else {\n length = this.maximumLength;\n }\n\n if (length < this.maximumLength) {\n return 'char(' + length + ')';\n } else {\n return 'char(' + this.maximumLength + ')';\n }\n },\n\n // ParameterData<any> is temporary solution. TODO: need to understand what type ParameterData<...> can be.\n resolveLength: function(parameter) {\n const value = parameter.value as Buffer | null;\n\n if (parameter.length != null) {\n return parameter.length;\n } else if (value != null) {\n return value.length || 1;\n } else {\n return this.maximumLength;\n }\n },\n\n writeTypeInfo(buffer, parameter) {\n buffer.writeUInt8(this.id);\n buffer.writeUInt16LE(parameter.length!);\n if (parameter.collation) {\n buffer.writeBuffer(parameter.collation.toBuffer().subarray(0, 5));\n } else {\n buffer.writeBuffer(NO_COLLATION);\n }\n },\n\n writeValue(buffer, parameter) {\n const value = parameter.value as Buffer | null;\n if (value == null) {\n buffer.writeBuffer(NULL_LENGTH);\n return;\n }\n\n buffer.writeUInt16LE(value.length);\n buffer.writeBuffer(value);\n },\n\n validate: function(value, collation): Buffer | null {\n if (value == null) {\n return null;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError('Invalid string.');\n }\n\n if (!collation) {\n throw new Error('No collation was set by the server for the current connection.');\n }\n\n if (!collation.codepage) {\n throw new Error('The collation set by the server has no associated encoding.');\n }\n\n return iconv.encode(value, collation.codepage);\n }\n};\n\nexport default Char;\nmodule.exports = Char;\n"],"mappings":"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","ignoreList":[]}
@@ -4,12 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _core = require("@js-joda/core");
7
+ var _temporal = require("./temporal");
8
8
  // globalDate is to be used for JavaScript's global 'Date' object to avoid name clashing with the 'Date' constant below
9
9
  const globalDate = global.Date;
10
- const EPOCH_DATE = _core.LocalDate.ofYearDay(1, 1);
11
- const NULL_LENGTH = Buffer.from([0x00]);
12
- const DATA_LENGTH = Buffer.from([0x03]);
10
+ const TYPE_INFO = Buffer.from([0x28]);
13
11
  const Date = {
14
12
  id: 0x28,
15
13
  type: 'DATEN',
@@ -17,31 +15,17 @@ const Date = {
17
15
  declaration: function () {
18
16
  return 'date';
19
17
  },
20
- generateTypeInfo: function () {
21
- return Buffer.from([this.id]);
18
+ writeTypeInfo(buffer) {
19
+ buffer.writeBuffer(TYPE_INFO);
22
20
  },
23
- generateParameterLength(parameter, options) {
24
- if (parameter.value == null) {
25
- return NULL_LENGTH;
26
- }
27
- return DATA_LENGTH;
28
- },
29
- *generateParameterData(parameter, options) {
30
- if (parameter.value == null) {
21
+ writeValue(buffer, parameter, options) {
22
+ const value = parameter.value;
23
+ if (value == null) {
24
+ buffer.writeUInt8(0x00);
31
25
  return;
32
26
  }
33
- const value = parameter.value; // Temporary solution. Remove 'any' later.
34
-
35
- let date;
36
- if (options.useUTC) {
37
- date = _core.LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());
38
- } else {
39
- date = _core.LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate());
40
- }
41
- const days = EPOCH_DATE.until(date, _core.ChronoUnit.DAYS);
42
- const buffer = Buffer.alloc(3);
43
- buffer.writeUIntLE(days, 0, 3);
44
- yield buffer;
27
+ buffer.writeUInt8(0x03);
28
+ buffer.writeUInt24LE((0, _temporal.daysSinceYearOne)(value, options.useUTC));
45
29
  },
46
30
  // TODO: value is technically of type 'unknown'.
47
31
  validate: function (value, collation, options) {
@@ -69,4 +53,4 @@ const Date = {
69
53
  };
70
54
  var _default = exports.default = Date;
71
55
  module.exports = Date;
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJnbG9iYWxEYXRlIiwiZ2xvYmFsIiwiRGF0ZSIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJEQVRBX0xFTkdUSCIsImlkIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsImdlbmVyYXRlVHlwZUluZm8iLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsInBhcmFtZXRlciIsIm9wdGlvbnMiLCJ2YWx1ZSIsImdlbmVyYXRlUGFyYW1ldGVyRGF0YSIsImRhdGUiLCJ1c2VVVEMiLCJvZiIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJkYXlzIiwidW50aWwiLCJDaHJvbm9Vbml0IiwiREFZUyIsImJ1ZmZlciIsImFsbG9jIiwid3JpdGVVSW50TEUiLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsInBhcnNlIiwieWVhciIsIlR5cGVFcnJvciIsImlzTmFOIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBDaHJvbm9Vbml0LCBMb2NhbERhdGUgfSBmcm9tICdAanMtam9kYS9jb3JlJztcblxuLy8gZ2xvYmFsRGF0ZSBpcyB0byBiZSB1c2VkIGZvciBKYXZhU2NyaXB0J3MgZ2xvYmFsICdEYXRlJyBvYmplY3QgdG8gYXZvaWQgbmFtZSBjbGFzaGluZyB3aXRoIHRoZSAnRGF0ZScgY29uc3RhbnQgYmVsb3dcbmNvbnN0IGdsb2JhbERhdGUgPSBnbG9iYWwuRGF0ZTtcbmNvbnN0IEVQT0NIX0RBVEUgPSBMb2NhbERhdGUub2ZZZWFyRGF5KDEsIDEpO1xuY29uc3QgTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwMF0pO1xuY29uc3QgREFUQV9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHgwM10pO1xuXG5jb25zdCBEYXRlOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4MjgsXG4gIHR5cGU6ICdEQVRFTicsXG4gIG5hbWU6ICdEYXRlJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdkYXRlJztcbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oW3RoaXMuaWRdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICByZXR1cm4gREFUQV9MRU5HVEg7XG4gIH0sXG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cblxuICAgIGxldCBkYXRlOiBMb2NhbERhdGU7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIHZhbHVlLmdldFVUQ01vbnRoKCkgKyAxLCB2YWx1ZS5nZXRVVENEYXRlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCkgKyAxLCB2YWx1ZS5nZXREYXRlKCkpO1xuICAgIH1cblxuICAgIGNvbnN0IGRheXMgPSBFUE9DSF9EQVRFLnVudGlsKGRhdGUsIENocm9ub1VuaXQuREFZUyk7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDMpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnRMRShkYXlzLCAwLCAzKTtcbiAgICB5aWVsZCBidWZmZXI7XG4gIH0sXG5cbiAgLy8gVE9ETzogdmFsdWUgaXMgdGVjaG5pY2FsbHkgb2YgdHlwZSAndW5rbm93bicuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSwgY29sbGF0aW9uLCBvcHRpb25zKTogbnVsbCB8IERhdGUge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIGdsb2JhbERhdGUpKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBnbG9iYWxEYXRlKGdsb2JhbERhdGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlIGFzIERhdGU7XG5cbiAgICBsZXQgeWVhcjtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnVzZVVUQykge1xuICAgICAgeWVhciA9IHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIGlmICh5ZWFyIDwgMSB8fCB5ZWFyID4gOTk5OSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3V0IG9mIHJhbmdlLicpO1xuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IERhdGU7XG5tb2R1bGUuZXhwb3J0cyA9IERhdGU7XG4iXSwibWFwcGluZ3Mi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
56
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVtcG9yYWwiLCJyZXF1aXJlIiwiZ2xvYmFsRGF0ZSIsImdsb2JhbCIsIkRhdGUiLCJUWVBFX0lORk8iLCJCdWZmZXIiLCJmcm9tIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlQnVmZmVyIiwid3JpdGVWYWx1ZSIsInBhcmFtZXRlciIsIm9wdGlvbnMiLCJ2YWx1ZSIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQyNExFIiwiZGF5c1NpbmNlWWVhck9uZSIsInVzZVVUQyIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwicGFyc2UiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJnZXRGdWxsWWVhciIsIlR5cGVFcnJvciIsImlzTmFOIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBkYXlzU2luY2VZZWFyT25lIH0gZnJvbSAnLi90ZW1wb3JhbCc7XG5cbi8vIGdsb2JhbERhdGUgaXMgdG8gYmUgdXNlZCBmb3IgSmF2YVNjcmlwdCdzIGdsb2JhbCAnRGF0ZScgb2JqZWN0IHRvIGF2b2lkIG5hbWUgY2xhc2hpbmcgd2l0aCB0aGUgJ0RhdGUnIGNvbnN0YW50IGJlbG93XG5jb25zdCBnbG9iYWxEYXRlID0gZ2xvYmFsLkRhdGU7XG5jb25zdCBUWVBFX0lORk8gPSBCdWZmZXIuZnJvbShbMHgyOF0pO1xuXG5jb25zdCBEYXRlOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4MjgsXG4gIHR5cGU6ICdEQVRFTicsXG4gIG5hbWU6ICdEYXRlJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdkYXRlJztcbiAgfSxcblxuICB3cml0ZVR5cGVJbmZvKGJ1ZmZlcikge1xuICAgIGJ1ZmZlci53cml0ZUJ1ZmZlcihUWVBFX0lORk8pO1xuICB9LFxuXG4gIHdyaXRlVmFsdWUoYnVmZmVyLCBwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBnbG9iYWxUaGlzLkRhdGUgfCBudWxsO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50OCgweDAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVVSW50OCgweDAzKTtcbiAgICBidWZmZXIud3JpdGVVSW50MjRMRShkYXlzU2luY2VZZWFyT25lKHZhbHVlLCBvcHRpb25zLnVzZVVUQykpO1xuICB9LFxuXG4gIC8vIFRPRE86IHZhbHVlIGlzIHRlY2huaWNhbGx5IG9mIHR5cGUgJ3Vua25vd24nLlxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbiwgb3B0aW9ucyk6IG51bGwgfCBEYXRlIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBnbG9iYWxEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgZ2xvYmFsRGF0ZShnbG9iYWxEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSBhcyBEYXRlO1xuXG4gICAgbGV0IHllYXI7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG5cbiAgICBpZiAoeWVhciA8IDEgfHwgeWVhciA+IDk5OTkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ091dCBvZiByYW5nZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxTQUFBLEdBQUFDLE9BQUE7QUFFQTtBQUNBLE1BQU1DLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxJQUFJO0FBQzlCLE1BQU1DLFNBQVMsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUVyQyxNQUFNSCxJQUFjLEdBQUc7RUFDckJJLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxPQUFPO0VBQ2JDLElBQUksRUFBRSxNQUFNO0VBRVpDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxNQUFNO0VBQ2YsQ0FBQztFQUVEQyxhQUFhQSxDQUFDQyxNQUFNLEVBQUU7SUFDcEJBLE1BQU0sQ0FBQ0MsV0FBVyxDQUFDVCxTQUFTLENBQUM7RUFDL0IsQ0FBQztFQUVEVSxVQUFVQSxDQUFDRixNQUFNLEVBQUVHLFNBQVMsRUFBRUMsT0FBTyxFQUFFO0lBQ3JDLE1BQU1DLEtBQUssR0FBR0YsU0FBUyxDQUFDRSxLQUErQjtJQUN2RCxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCTCxNQUFNLENBQUNNLFVBQVUsQ0FBQyxJQUFJLENBQUM7TUFDdkI7SUFDRjtJQUVBTixNQUFNLENBQUNNLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDdkJOLE1BQU0sQ0FBQ08sYUFBYSxDQUFDLElBQUFDLDBCQUFnQixFQUFDSCxLQUFLLEVBQUVELE9BQU8sQ0FBQ0ssTUFBTSxDQUFDLENBQUM7RUFDL0QsQ0FBQztFQUVEO0VBQ0FDLFFBQVEsRUFBRSxTQUFBQSxDQUFTTCxLQUFLLEVBQUVNLFNBQVMsRUFBRVAsT0FBTyxFQUFlO0lBQ3pELElBQUlDLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakIsT0FBTyxJQUFJO0lBQ2I7SUFFQSxJQUFJLEVBQUVBLEtBQUssWUFBWWhCLFVBQVUsQ0FBQyxFQUFFO01BQ2xDZ0IsS0FBSyxHQUFHLElBQUloQixVQUFVLENBQUNBLFVBQVUsQ0FBQ3VCLEtBQUssQ0FBQ1AsS0FBSyxDQUFDLENBQUM7SUFDakQ7SUFFQUEsS0FBSyxHQUFHQSxLQUFhO0lBRXJCLElBQUlRLElBQUk7SUFDUixJQUFJVCxPQUFPLElBQUlBLE9BQU8sQ0FBQ0ssTUFBTSxFQUFFO01BQzdCSSxJQUFJLEdBQUdSLEtBQUssQ0FBQ1MsY0FBYyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxNQUFNO01BQ0xELElBQUksR0FBR1IsS0FBSyxDQUFDVSxXQUFXLENBQUMsQ0FBQztJQUM1QjtJQUVBLElBQUlGLElBQUksR0FBRyxDQUFDLElBQUlBLElBQUksR0FBRyxJQUFJLEVBQUU7TUFDM0IsTUFBTSxJQUFJRyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3RDO0lBRUEsSUFBSUMsS0FBSyxDQUFDWixLQUFLLENBQUMsRUFBRTtNQUNoQixNQUFNLElBQUlXLFNBQVMsQ0FBQyxlQUFlLENBQUM7SUFDdEM7SUFFQSxPQUFPWCxLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQWEsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFYTdCLElBQUk7QUFDbkI4QixNQUFNLENBQUNGLE9BQU8sR0FBRzVCLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -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","collation","parse","year","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 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 let year;\n if (options && options.useUTC) {\n year = value.getUTCFullYear();\n } else {\n year = value.getFullYear();\n }\n\n if (year < 1 || year > 9999) {\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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","ignoreList":[]}
1
+ {"version":3,"file":"date.js","names":["_temporal","require","globalDate","global","Date","TYPE_INFO","Buffer","from","id","type","name","declaration","writeTypeInfo","buffer","writeBuffer","writeValue","parameter","options","value","writeUInt8","writeUInt24LE","daysSinceYearOne","useUTC","validate","collation","parse","year","getUTCFullYear","getFullYear","TypeError","isNaN","_default","exports","default","module"],"sources":["../../src/data-types/date.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport { daysSinceYearOne } from './temporal';\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 TYPE_INFO = Buffer.from([0x28]);\n\nconst Date: DataType = {\n id: 0x28,\n type: 'DATEN',\n name: 'Date',\n\n declaration: function() {\n return 'date';\n },\n\n writeTypeInfo(buffer) {\n buffer.writeBuffer(TYPE_INFO);\n },\n\n writeValue(buffer, parameter, options) {\n const value = parameter.value as globalThis.Date | null;\n if (value == null) {\n buffer.writeUInt8(0x00);\n return;\n }\n\n buffer.writeUInt8(0x03);\n buffer.writeUInt24LE(daysSinceYearOne(value, options.useUTC));\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 let year;\n if (options && options.useUTC) {\n year = value.getUTCFullYear();\n } else {\n year = value.getFullYear();\n }\n\n if (year < 1 || year > 9999) {\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":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA;AACA,MAAMC,UAAU,GAAGC,MAAM,CAACC,IAAI;AAC9B,MAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAErC,MAAMH,IAAc,GAAG;EACrBI,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,OAAO;EACbC,IAAI,EAAE,MAAM;EAEZC,WAAW,EAAE,SAAAA,CAAA,EAAW;IACtB,OAAO,MAAM;EACf,CAAC;EAEDC,aAAaA,CAACC,MAAM,EAAE;IACpBA,MAAM,CAACC,WAAW,CAACT,SAAS,CAAC;EAC/B,CAAC;EAEDU,UAAUA,CAACF,MAAM,EAAEG,SAAS,EAAEC,OAAO,EAAE;IACrC,MAAMC,KAAK,GAAGF,SAAS,CAACE,KAA+B;IACvD,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjBL,MAAM,CAACM,UAAU,CAAC,IAAI,CAAC;MACvB;IACF;IAEAN,MAAM,CAACM,UAAU,CAAC,IAAI,CAAC;IACvBN,MAAM,CAACO,aAAa,CAAC,IAAAC,0BAAgB,EAACH,KAAK,EAAED,OAAO,CAACK,MAAM,CAAC,CAAC;EAC/D,CAAC;EAED;EACAC,QAAQ,EAAE,SAAAA,CAASL,KAAK,EAAEM,SAAS,EAAEP,OAAO,EAAe;IACzD,IAAIC,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,IAAI,EAAEA,KAAK,YAAYhB,UAAU,CAAC,EAAE;MAClCgB,KAAK,GAAG,IAAIhB,UAAU,CAACA,UAAU,CAACuB,KAAK,CAACP,KAAK,CAAC,CAAC;IACjD;IAEAA,KAAK,GAAGA,KAAa;IAErB,IAAIQ,IAAI;IACR,IAAIT,OAAO,IAAIA,OAAO,CAACK,MAAM,EAAE;MAC7BI,IAAI,GAAGR,KAAK,CAACS,cAAc,CAAC,CAAC;IAC/B,CAAC,MAAM;MACLD,IAAI,GAAGR,KAAK,CAACU,WAAW,CAAC,CAAC;IAC5B;IAEA,IAAIF,IAAI,GAAG,CAAC,IAAIA,IAAI,GAAG,IAAI,EAAE;MAC3B,MAAM,IAAIG,SAAS,CAAC,eAAe,CAAC;IACtC;IAEA,IAAIC,KAAK,CAACZ,KAAK,CAAC,EAAE;MAChB,MAAM,IAAIW,SAAS,CAAC,eAAe,CAAC;IACtC;IAEA,OAAOX,KAAK;EACd;AACF,CAAC;AAAC,IAAAa,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa7B,IAAI;AACnB8B,MAAM,CAACF,OAAO,GAAG5B,IAAI","ignoreList":[]}
@@ -8,8 +8,7 @@ var _datetimen = _interopRequireDefault(require("./datetimen"));
8
8
  var _core = require("@js-joda/core");
9
9
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  const EPOCH_DATE = _core.LocalDate.ofYearDay(1900, 1);
11
- const NULL_LENGTH = Buffer.from([0x00]);
12
- const DATA_LENGTH = Buffer.from([0x08]);
11
+ const TYPE_INFO = Buffer.from([_datetimen.default.id, 0x08]);
13
12
  const DateTime = {
14
13
  id: 0x3D,
15
14
  type: 'DATETIME',
@@ -17,52 +16,33 @@ const DateTime = {
17
16
  declaration: function () {
18
17
  return 'datetime';
19
18
  },
20
- generateTypeInfo() {
21
- return Buffer.from([_datetimen.default.id, 0x08]);
19
+ writeTypeInfo(buffer) {
20
+ buffer.writeBuffer(TYPE_INFO);
22
21
  },
23
- generateParameterLength(parameter, options) {
24
- if (parameter.value == null) {
25
- return NULL_LENGTH;
26
- }
27
- return DATA_LENGTH;
28
- },
29
- generateParameterData: function* (parameter, options) {
30
- if (parameter.value == null) {
22
+ writeValue(buffer, parameter, options) {
23
+ const value = parameter.value;
24
+ if (value == null) {
25
+ buffer.writeUInt8(0x00);
31
26
  return;
32
27
  }
33
- const value = parameter.value; // Temporary solution. Remove 'any' later.
34
-
35
- let date;
36
- if (options.useUTC) {
37
- date = _core.LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());
38
- } else {
39
- date = _core.LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate());
40
- }
41
- let days = EPOCH_DATE.until(date, _core.ChronoUnit.DAYS);
42
- let milliseconds, threeHundredthsOfSecond;
28
+ let days, milliseconds;
43
29
  if (options.useUTC) {
44
- let seconds = value.getUTCHours() * 60 * 60;
45
- seconds += value.getUTCMinutes() * 60;
46
- seconds += value.getUTCSeconds();
47
- milliseconds = seconds * 1000 + value.getUTCMilliseconds();
30
+ days = EPOCH_DATE.until(_core.LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate()), _core.ChronoUnit.DAYS);
31
+ milliseconds = ((value.getUTCHours() * 60 + value.getUTCMinutes()) * 60 + value.getUTCSeconds()) * 1000 + value.getUTCMilliseconds();
48
32
  } else {
49
- let seconds = value.getHours() * 60 * 60;
50
- seconds += value.getMinutes() * 60;
51
- seconds += value.getSeconds();
52
- milliseconds = seconds * 1000 + value.getMilliseconds();
33
+ days = EPOCH_DATE.until(_core.LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate()), _core.ChronoUnit.DAYS);
34
+ milliseconds = ((value.getHours() * 60 + value.getMinutes()) * 60 + value.getSeconds()) * 1000 + value.getMilliseconds();
53
35
  }
54
- threeHundredthsOfSecond = milliseconds / (3 + 1 / 3);
55
- threeHundredthsOfSecond = Math.round(threeHundredthsOfSecond);
36
+ let threeHundredthsOfSecond = Math.round(milliseconds / (3 + 1 / 3));
56
37
 
57
38
  // 25920000 equals one day
58
39
  if (threeHundredthsOfSecond === 25920000) {
59
40
  days += 1;
60
41
  threeHundredthsOfSecond = 0;
61
42
  }
62
- const buffer = Buffer.alloc(8);
63
- buffer.writeInt32LE(days, 0);
64
- buffer.writeUInt32LE(threeHundredthsOfSecond, 4);
65
- yield buffer;
43
+ buffer.writeUInt8(0x08);
44
+ buffer.writeInt32LE(days);
45
+ buffer.writeUInt32LE(threeHundredthsOfSecond);
66
46
  },
67
47
  // TODO: type 'any' needs to be revisited.
68
48
  validate: function (value, collation, options) {
@@ -90,4 +70,4 @@ const DateTime = {
90
70
  };
91
71
  var _default = exports.default = DateTime;
92
72
  module.exports = DateTime;
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0ZXRpbWVuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJOVUxMX0xFTkdUSCIsIkJ1ZmZlciIsImZyb20iLCJEQVRBX0xFTkdUSCIsIkRhdGVUaW1lIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwiZ2VuZXJhdGVUeXBlSW5mbyIsIkRhdGVUaW1lTiIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwicGFyYW1ldGVyIiwib3B0aW9ucyIsInZhbHVlIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwiZGF0ZSIsInVzZVVUQyIsIm9mIiwiZ2V0VVRDRnVsbFllYXIiLCJnZXRVVENNb250aCIsImdldFVUQ0RhdGUiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImRheXMiLCJ1bnRpbCIsIkNocm9ub1VuaXQiLCJEQVlTIiwibWlsbGlzZWNvbmRzIiwidGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQiLCJzZWNvbmRzIiwiZ2V0VVRDSG91cnMiLCJnZXRVVENNaW51dGVzIiwiZ2V0VVRDU2Vjb25kcyIsImdldFVUQ01pbGxpc2Vjb25kcyIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJnZXRNaWxsaXNlY29uZHMiLCJNYXRoIiwicm91bmQiLCJidWZmZXIiLCJhbGxvYyIsIndyaXRlSW50MzJMRSIsIndyaXRlVUludDMyTEUiLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsIkRhdGUiLCJwYXJzZSIsInllYXIiLCJUeXBlRXJyb3IiLCJpc05hTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGV0aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IERhdGVUaW1lTiBmcm9tICcuL2RhdGV0aW1lbic7XG5pbXBvcnQgeyBDaHJvbm9Vbml0LCBMb2NhbERhdGUgfSBmcm9tICdAanMtam9kYS9jb3JlJztcblxuY29uc3QgRVBPQ0hfREFURSA9IExvY2FsRGF0ZS5vZlllYXJEYXkoMTkwMCwgMSk7XG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5jb25zdCBEQVRBX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDA4XSk7XG5cbmNvbnN0IERhdGVUaW1lOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4M0QsXG4gIHR5cGU6ICdEQVRFVElNRScsXG4gIG5hbWU6ICdEYXRlVGltZScsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnZGF0ZXRpbWUnO1xuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8oKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFtEYXRlVGltZU4uaWQsIDB4MDhdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICByZXR1cm4gREFUQV9MRU5HVEg7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhOiBmdW5jdGlvbioocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cblxuICAgIGxldCBkYXRlOiBMb2NhbERhdGU7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIHZhbHVlLmdldFVUQ01vbnRoKCkgKyAxLCB2YWx1ZS5nZXRVVENEYXRlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRlID0gTG9jYWxEYXRlLm9mKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCkgKyAxLCB2YWx1ZS5nZXREYXRlKCkpO1xuICAgIH1cblxuICAgIGxldCBkYXlzID0gRVBPQ0hfREFURS51bnRpbChkYXRlLCBDaHJvbm9Vbml0LkRBWVMpO1xuXG4gICAgbGV0IG1pbGxpc2Vjb25kcywgdGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQ7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICBsZXQgc2Vjb25kcyA9IHZhbHVlLmdldFVUQ0hvdXJzKCkgKiA2MCAqIDYwO1xuICAgICAgc2Vjb25kcyArPSB2YWx1ZS5nZXRVVENNaW51dGVzKCkgKiA2MDtcbiAgICAgIHNlY29uZHMgKz0gdmFsdWUuZ2V0VVRDU2Vjb25kcygpO1xuICAgICAgbWlsbGlzZWNvbmRzID0gKHNlY29uZHMgKiAxMDAwKSArIHZhbHVlLmdldFVUQ01pbGxpc2Vjb25kcygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgc2Vjb25kcyA9IHZhbHVlLmdldEhvdXJzKCkgKiA2MCAqIDYwO1xuICAgICAgc2Vjb25kcyArPSB2YWx1ZS5nZXRNaW51dGVzKCkgKiA2MDtcbiAgICAgIHNlY29uZHMgKz0gdmFsdWUuZ2V0U2Vjb25kcygpO1xuICAgICAgbWlsbGlzZWNvbmRzID0gKHNlY29uZHMgKiAxMDAwKSArIHZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIH1cblxuICAgIHRocmVlSHVuZHJlZHRoc09mU2Vjb25kID0gbWlsbGlzZWNvbmRzIC8gKDMgKyAoMSAvIDMpKTtcbiAgICB0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCA9IE1hdGgucm91bmQodGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQpO1xuXG4gICAgLy8gMjU5MjAwMDAgZXF1YWxzIG9uZSBkYXlcbiAgICBpZiAodGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQgPT09IDI1OTIwMDAwKSB7XG4gICAgICBkYXlzICs9IDE7XG4gICAgICB0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCA9IDA7XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIGJ1ZmZlci53cml0ZUludDMyTEUoZGF5cywgMCk7XG4gICAgYnVmZmVyLndyaXRlVUludDMyTEUodGhyZWVIdW5kcmVkdGhzT2ZTZWNvbmQsIDQpO1xuICAgIHlpZWxkIGJ1ZmZlcjtcbiAgfSxcblxuICAvLyBUT0RPOiB0eXBlICdhbnknIG5lZWRzIHRvIGJlIHJldmlzaXRlZC5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlOiBhbnksIGNvbGxhdGlvbiwgb3B0aW9ucyk6IG51bGwgfCBudW1iZXIge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBEYXRlKERhdGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlIGFzIERhdGU7XG5cbiAgICBsZXQgeWVhcjtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnVzZVVUQykge1xuICAgICAgeWVhciA9IHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIGlmICh5ZWFyIDwgMTc1MyB8fCB5ZWFyID4gOTk5OSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3V0IG9mIHJhbmdlLicpO1xuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlVGltZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQXNELFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXRELE1BQU1HLFVBQVUsR0FBR0MsZUFBUyxDQUFDQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMvQyxNQUFNQyxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsTUFBTUMsV0FBVyxHQUFHRixNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXZDLE1BQU1FLFFBQWtCLEdBQUc7RUFDekJDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxVQUFVO0VBQ2hCQyxJQUFJLEVBQUUsVUFBVTtFQUVoQkMsV0FBVyxFQUFFLFNBQUFBLENBQUEsRUFBVztJQUN0QixPQUFPLFVBQVU7RUFDbkIsQ0FBQztFQUVEQyxnQkFBZ0JBLENBQUEsRUFBRztJQUNqQixPQUFPUixNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDUSxrQkFBUyxDQUFDTCxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7RUFDMUMsQ0FBQztFQUVETSx1QkFBdUJBLENBQUNDLFNBQVMsRUFBRUMsT0FBTyxFQUFFO0lBQzFDLElBQUlELFNBQVMsQ0FBQ0UsS0FBSyxJQUFJLElBQUksRUFBRTtNQUMzQixPQUFPZCxXQUFXO0lBQ3BCO0lBRUEsT0FBT0csV0FBVztFQUNwQixDQUFDO0VBRURZLHFCQUFxQixFQUFFLFVBQUFBLENBQVVILFNBQVMsRUFBRUMsT0FBTyxFQUFFO0lBQ25ELElBQUlELFNBQVMsQ0FBQ0UsS0FBSyxJQUFJLElBQUksRUFBRTtNQUMzQjtJQUNGO0lBRUEsTUFBTUEsS0FBSyxHQUFHRixTQUFTLENBQUNFLEtBQVksQ0FBQyxDQUFDOztJQUV0QyxJQUFJRSxJQUFlO0lBQ25CLElBQUlILE9BQU8sQ0FBQ0ksTUFBTSxFQUFFO01BQ2xCRCxJQUFJLEdBQUdsQixlQUFTLENBQUNvQixFQUFFLENBQUNKLEtBQUssQ0FBQ0ssY0FBYyxDQUFDLENBQUMsRUFBRUwsS0FBSyxDQUFDTSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRU4sS0FBSyxDQUFDTyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUMsTUFBTTtNQUNMTCxJQUFJLEdBQUdsQixlQUFTLENBQUNvQixFQUFFLENBQUNKLEtBQUssQ0FBQ1EsV0FBVyxDQUFDLENBQUMsRUFBRVIsS0FBSyxDQUFDUyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRVQsS0FBSyxDQUFDVSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pGO0lBRUEsSUFBSUMsSUFBSSxHQUFHNUIsVUFBVSxDQUFDNkIsS0FBSyxDQUFDVixJQUFJLEVBQUVXLGdCQUFVLENBQUNDLElBQUksQ0FBQztJQUVsRCxJQUFJQyxZQUFZLEVBQUVDLHVCQUF1QjtJQUN6QyxJQUFJakIsT0FBTyxDQUFDSSxNQUFNLEVBQUU7TUFDbEIsSUFBSWMsT0FBTyxHQUFHakIsS0FBSyxDQUFDa0IsV0FBVyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRTtNQUMzQ0QsT0FBTyxJQUFJakIsS0FBSyxDQUFDbUIsYUFBYSxDQUFDLENBQUMsR0FBRyxFQUFFO01BQ3JDRixPQUFPLElBQUlqQixLQUFLLENBQUNvQixhQUFhLENBQUMsQ0FBQztNQUNoQ0wsWUFBWSxHQUFJRSxPQUFPLEdBQUcsSUFBSSxHQUFJakIsS0FBSyxDQUFDcUIsa0JBQWtCLENBQUMsQ0FBQztJQUM5RCxDQUFDLE1BQU07TUFDTCxJQUFJSixPQUFPLEdBQUdqQixLQUFLLENBQUNzQixRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO01BQ3hDTCxPQUFPLElBQUlqQixLQUFLLENBQUN1QixVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUU7TUFDbENOLE9BQU8sSUFBSWpCLEtBQUssQ0FBQ3dCLFVBQVUsQ0FBQyxDQUFDO01BQzdCVCxZQUFZLEdBQUlFLE9BQU8sR0FBRyxJQUFJLEdBQUlqQixLQUFLLENBQUN5QixlQUFlLENBQUMsQ0FBQztJQUMzRDtJQUVBVCx1QkFBdUIsR0FBR0QsWUFBWSxJQUFJLENBQUMsR0FBSSxDQUFDLEdBQUcsQ0FBRSxDQUFDO0lBQ3REQyx1QkFBdUIsR0FBR1UsSUFBSSxDQUFDQyxLQUFLLENBQUNYLHVCQUF1QixDQUFDOztJQUU3RDtJQUNBLElBQUlBLHVCQUF1QixLQUFLLFFBQVEsRUFBRTtNQUN4Q0wsSUFBSSxJQUFJLENBQUM7TUFDVEssdUJBQXVCLEdBQUcsQ0FBQztJQUM3QjtJQUVBLE1BQU1ZLE1BQU0sR0FBR3pDLE1BQU0sQ0FBQzBDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUJELE1BQU0sQ0FBQ0UsWUFBWSxDQUFDbkIsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM1QmlCLE1BQU0sQ0FBQ0csYUFBYSxDQUFDZix1QkFBdUIsRUFBRSxDQUFDLENBQUM7SUFDaEQsTUFBTVksTUFBTTtFQUNkLENBQUM7RUFFRDtFQUNBSSxRQUFRLEVBQUUsU0FBQUEsQ0FBU2hDLEtBQVUsRUFBRWlDLFNBQVMsRUFBRWxDLE9BQU8sRUFBaUI7SUFDaEUsSUFBSUMsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPLElBQUk7SUFDYjtJQUVBLElBQUksRUFBRUEsS0FBSyxZQUFZa0MsSUFBSSxDQUFDLEVBQUU7TUFDNUJsQyxLQUFLLEdBQUcsSUFBSWtDLElBQUksQ0FBQ0EsSUFBSSxDQUFDQyxLQUFLLENBQUNuQyxLQUFLLENBQUMsQ0FBQztJQUNyQztJQUVBQSxLQUFLLEdBQUdBLEtBQWE7SUFFckIsSUFBSW9DLElBQUk7SUFDUixJQUFJckMsT0FBTyxJQUFJQSxPQUFPLENBQUNJLE1BQU0sRUFBRTtNQUM3QmlDLElBQUksR0FBR3BDLEtBQUssQ0FBQ0ssY0FBYyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxNQUFNO01BQ0wrQixJQUFJLEdBQUdwQyxLQUFLLENBQUNRLFdBQVcsQ0FBQyxDQUFDO0lBQzVCO0lBRUEsSUFBSTRCLElBQUksR0FBRyxJQUFJLElBQUlBLElBQUksR0FBRyxJQUFJLEVBQUU7TUFDOUIsTUFBTSxJQUFJQyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3RDO0lBRUEsSUFBSUMsS0FBSyxDQUFDdEMsS0FBSyxDQUFDLEVBQUU7TUFDaEIsTUFBTSxJQUFJcUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztJQUN0QztJQUVBLE9BQU9yQyxLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQXVDLFFBQUEsR0FBQUMsT0FBQSxDQUFBMUQsT0FBQSxHQUVhUSxRQUFRO0FBQ3ZCbUQsTUFBTSxDQUFDRCxPQUFPLEdBQUdsRCxRQUFRIiwiaWdub3JlTGlzdCI6W119
73
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0ZXRpbWVuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJUWVBFX0lORk8iLCJCdWZmZXIiLCJmcm9tIiwiRGF0ZVRpbWVOIiwiaWQiLCJEYXRlVGltZSIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJ3cml0ZVR5cGVJbmZvIiwiYnVmZmVyIiwid3JpdGVCdWZmZXIiLCJ3cml0ZVZhbHVlIiwicGFyYW1ldGVyIiwib3B0aW9ucyIsInZhbHVlIiwid3JpdGVVSW50OCIsImRheXMiLCJtaWxsaXNlY29uZHMiLCJ1c2VVVEMiLCJ1bnRpbCIsIm9mIiwiZ2V0VVRDRnVsbFllYXIiLCJnZXRVVENNb250aCIsImdldFVUQ0RhdGUiLCJDaHJvbm9Vbml0IiwiREFZUyIsImdldFVUQ0hvdXJzIiwiZ2V0VVRDTWludXRlcyIsImdldFVUQ1NlY29uZHMiLCJnZXRVVENNaWxsaXNlY29uZHMiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJnZXRNaWxsaXNlY29uZHMiLCJ0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCIsIk1hdGgiLCJyb3VuZCIsIndyaXRlSW50MzJMRSIsIndyaXRlVUludDMyTEUiLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsIkRhdGUiLCJwYXJzZSIsInllYXIiLCJUeXBlRXJyb3IiLCJpc05hTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGV0aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IERhdGVUaW1lTiBmcm9tICcuL2RhdGV0aW1lbic7XG5pbXBvcnQgeyBDaHJvbm9Vbml0LCBMb2NhbERhdGUgfSBmcm9tICdAanMtam9kYS9jb3JlJztcblxuY29uc3QgRVBPQ0hfREFURSA9IExvY2FsRGF0ZS5vZlllYXJEYXkoMTkwMCwgMSk7XG5jb25zdCBUWVBFX0lORk8gPSBCdWZmZXIuZnJvbShbRGF0ZVRpbWVOLmlkLCAweDA4XSk7XG5cbmNvbnN0IERhdGVUaW1lOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4M0QsXG4gIHR5cGU6ICdEQVRFVElNRScsXG4gIG5hbWU6ICdEYXRlVGltZScsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnZGF0ZXRpbWUnO1xuICB9LFxuXG4gIHdyaXRlVHlwZUluZm8oYnVmZmVyKSB7XG4gICAgYnVmZmVyLndyaXRlQnVmZmVyKFRZUEVfSU5GTyk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZShidWZmZXIsIHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIERhdGUgfCBudWxsO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50OCgweDAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZGF5czogbnVtYmVyLCBtaWxsaXNlY29uZHM6IG51bWJlcjtcbiAgICBpZiAob3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIGRheXMgPSBFUE9DSF9EQVRFLnVudGlsKExvY2FsRGF0ZS5vZih2YWx1ZS5nZXRVVENGdWxsWWVhcigpLCB2YWx1ZS5nZXRVVENNb250aCgpICsgMSwgdmFsdWUuZ2V0VVRDRGF0ZSgpKSwgQ2hyb25vVW5pdC5EQVlTKTtcbiAgICAgIG1pbGxpc2Vjb25kcyA9ICgodmFsdWUuZ2V0VVRDSG91cnMoKSAqIDYwICsgdmFsdWUuZ2V0VVRDTWludXRlcygpKSAqIDYwICsgdmFsdWUuZ2V0VVRDU2Vjb25kcygpKSAqIDEwMDAgKyB2YWx1ZS5nZXRVVENNaWxsaXNlY29uZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF5cyA9IEVQT0NIX0RBVEUudW50aWwoTG9jYWxEYXRlLm9mKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCkgKyAxLCB2YWx1ZS5nZXREYXRlKCkpLCBDaHJvbm9Vbml0LkRBWVMpO1xuICAgICAgbWlsbGlzZWNvbmRzID0gKCh2YWx1ZS5nZXRIb3VycygpICogNjAgKyB2YWx1ZS5nZXRNaW51dGVzKCkpICogNjAgKyB2YWx1ZS5nZXRTZWNvbmRzKCkpICogMTAwMCArIHZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIH1cblxuICAgIGxldCB0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCA9IE1hdGgucm91bmQobWlsbGlzZWNvbmRzIC8gKDMgKyAoMSAvIDMpKSk7XG5cbiAgICAvLyAyNTkyMDAwMCBlcXVhbHMgb25lIGRheVxuICAgIGlmICh0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCA9PT0gMjU5MjAwMDApIHtcbiAgICAgIGRheXMgKz0gMTtcbiAgICAgIHRocmVlSHVuZHJlZHRoc09mU2Vjb25kID0gMDtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVVSW50OCgweDA4KTtcbiAgICBidWZmZXIud3JpdGVJbnQzMkxFKGRheXMpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKHRocmVlSHVuZHJlZHRoc09mU2Vjb25kKTtcbiAgfSxcblxuICAvLyBUT0RPOiB0eXBlICdhbnknIG5lZWRzIHRvIGJlIHJldmlzaXRlZC5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlOiBhbnksIGNvbGxhdGlvbiwgb3B0aW9ucyk6IG51bGwgfCBudW1iZXIge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBEYXRlKERhdGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlIGFzIERhdGU7XG5cbiAgICBsZXQgeWVhcjtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnVzZVVUQykge1xuICAgICAgeWVhciA9IHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIGlmICh5ZWFyIDwgMTc1MyB8fCB5ZWFyID4gOTk5OSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3V0IG9mIHJhbmdlLicpO1xuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlVGltZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQXNELFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXRELE1BQU1HLFVBQVUsR0FBR0MsZUFBUyxDQUFDQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMvQyxNQUFNQyxTQUFTLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLGtCQUFTLENBQUNDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRCxNQUFNQyxRQUFrQixHQUFHO0VBQ3pCRCxFQUFFLEVBQUUsSUFBSTtFQUNSRSxJQUFJLEVBQUUsVUFBVTtFQUNoQkMsSUFBSSxFQUFFLFVBQVU7RUFFaEJDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxVQUFVO0VBQ25CLENBQUM7RUFFREMsYUFBYUEsQ0FBQ0MsTUFBTSxFQUFFO0lBQ3BCQSxNQUFNLENBQUNDLFdBQVcsQ0FBQ1gsU0FBUyxDQUFDO0VBQy9CLENBQUM7RUFFRFksVUFBVUEsQ0FBQ0YsTUFBTSxFQUFFRyxTQUFTLEVBQUVDLE9BQU8sRUFBRTtJQUNyQyxNQUFNQyxLQUFLLEdBQUdGLFNBQVMsQ0FBQ0UsS0FBb0I7SUFDNUMsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQkwsTUFBTSxDQUFDTSxVQUFVLENBQUMsSUFBSSxDQUFDO01BQ3ZCO0lBQ0Y7SUFFQSxJQUFJQyxJQUFZLEVBQUVDLFlBQW9CO0lBQ3RDLElBQUlKLE9BQU8sQ0FBQ0ssTUFBTSxFQUFFO01BQ2xCRixJQUFJLEdBQUdwQixVQUFVLENBQUN1QixLQUFLLENBQUN0QixlQUFTLENBQUN1QixFQUFFLENBQUNOLEtBQUssQ0FBQ08sY0FBYyxDQUFDLENBQUMsRUFBRVAsS0FBSyxDQUFDUSxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRVIsS0FBSyxDQUFDUyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUVDLGdCQUFVLENBQUNDLElBQUksQ0FBQztNQUMzSFIsWUFBWSxHQUFHLENBQUMsQ0FBQ0gsS0FBSyxDQUFDWSxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBR1osS0FBSyxDQUFDYSxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBR2IsS0FBSyxDQUFDYyxhQUFhLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBR2QsS0FBSyxDQUFDZSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3RJLENBQUMsTUFBTTtNQUNMYixJQUFJLEdBQUdwQixVQUFVLENBQUN1QixLQUFLLENBQUN0QixlQUFTLENBQUN1QixFQUFFLENBQUNOLEtBQUssQ0FBQ2dCLFdBQVcsQ0FBQyxDQUFDLEVBQUVoQixLQUFLLENBQUNpQixRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRWpCLEtBQUssQ0FBQ2tCLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRVIsZ0JBQVUsQ0FBQ0MsSUFBSSxDQUFDO01BQ2xIUixZQUFZLEdBQUcsQ0FBQyxDQUFDSCxLQUFLLENBQUNtQixRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBR25CLEtBQUssQ0FBQ29CLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHcEIsS0FBSyxDQUFDcUIsVUFBVSxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUdyQixLQUFLLENBQUNzQixlQUFlLENBQUMsQ0FBQztJQUMxSDtJQUVBLElBQUlDLHVCQUF1QixHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ3RCLFlBQVksSUFBSSxDQUFDLEdBQUksQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUFDOztJQUV0RTtJQUNBLElBQUlvQix1QkFBdUIsS0FBSyxRQUFRLEVBQUU7TUFDeENyQixJQUFJLElBQUksQ0FBQztNQUNUcUIsdUJBQXVCLEdBQUcsQ0FBQztJQUM3QjtJQUVBNUIsTUFBTSxDQUFDTSxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ3ZCTixNQUFNLENBQUMrQixZQUFZLENBQUN4QixJQUFJLENBQUM7SUFDekJQLE1BQU0sQ0FBQ2dDLGFBQWEsQ0FBQ0osdUJBQXVCLENBQUM7RUFDL0MsQ0FBQztFQUVEO0VBQ0FLLFFBQVEsRUFBRSxTQUFBQSxDQUFTNUIsS0FBVSxFQUFFNkIsU0FBUyxFQUFFOUIsT0FBTyxFQUFpQjtJQUNoRSxJQUFJQyxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCLE9BQU8sSUFBSTtJQUNiO0lBRUEsSUFBSSxFQUFFQSxLQUFLLFlBQVk4QixJQUFJLENBQUMsRUFBRTtNQUM1QjlCLEtBQUssR0FBRyxJQUFJOEIsSUFBSSxDQUFDQSxJQUFJLENBQUNDLEtBQUssQ0FBQy9CLEtBQUssQ0FBQyxDQUFDO0lBQ3JDO0lBRUFBLEtBQUssR0FBR0EsS0FBYTtJQUVyQixJQUFJZ0MsSUFBSTtJQUNSLElBQUlqQyxPQUFPLElBQUlBLE9BQU8sQ0FBQ0ssTUFBTSxFQUFFO01BQzdCNEIsSUFBSSxHQUFHaEMsS0FBSyxDQUFDTyxjQUFjLENBQUMsQ0FBQztJQUMvQixDQUFDLE1BQU07TUFDTHlCLElBQUksR0FBR2hDLEtBQUssQ0FBQ2dCLFdBQVcsQ0FBQyxDQUFDO0lBQzVCO0lBRUEsSUFBSWdCLElBQUksR0FBRyxJQUFJLElBQUlBLElBQUksR0FBRyxJQUFJLEVBQUU7TUFDOUIsTUFBTSxJQUFJQyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3RDO0lBRUEsSUFBSUMsS0FBSyxDQUFDbEMsS0FBSyxDQUFDLEVBQUU7TUFDaEIsTUFBTSxJQUFJaUMsU0FBUyxDQUFDLGVBQWUsQ0FBQztJQUN0QztJQUVBLE9BQU9qQyxLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQW1DLFFBQUEsR0FBQUMsT0FBQSxDQUFBdkQsT0FBQSxHQUVhUyxRQUFRO0FBQ3ZCK0MsTUFBTSxDQUFDRCxPQUFPLEdBQUc5QyxRQUFRIiwiaWdub3JlTGlzdCI6W119