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.
- package/lib/always-encrypted/get-parameter-encryption-metadata.js +5 -2
- package/lib/always-encrypted/get-parameter-encryption-metadata.js.map +1 -1
- package/lib/bulk-load-payload.js +9 -5
- package/lib/bulk-load-payload.js.map +1 -1
- package/lib/bulk-load.js +17 -6
- package/lib/bulk-load.js.map +1 -1
- package/lib/connection.d.ts +5 -0
- package/lib/connection.js +33 -26
- package/lib/connection.js.map +1 -1
- package/lib/data-type.d.ts +47 -3
- package/lib/data-type.js +113 -2
- package/lib/data-type.js.map +1 -1
- package/lib/data-types/bigint.js +10 -17
- package/lib/data-types/bigint.js.map +1 -1
- package/lib/data-types/binary.js +10 -17
- package/lib/data-types/binary.js.map +1 -1
- package/lib/data-types/bit.js +10 -14
- package/lib/data-types/bit.js.map +1 -1
- package/lib/data-types/bitn.js +3 -6
- package/lib/data-types/bitn.js.map +1 -1
- package/lib/data-types/char.js +12 -17
- package/lib/data-types/char.js.map +1 -1
- package/lib/data-types/date.js +11 -27
- package/lib/data-types/date.js.map +1 -1
- package/lib/data-types/datetime.js +17 -37
- package/lib/data-types/datetime.js.map +1 -1
- package/lib/data-types/datetime2.js +12 -67
- package/lib/data-types/datetime2.js.map +1 -1
- package/lib/data-types/datetimen.js +3 -6
- package/lib/data-types/datetimen.js.map +1 -1
- package/lib/data-types/datetimeoffset.js +13 -60
- package/lib/data-types/datetimeoffset.js.map +1 -1
- package/lib/data-types/decimal-common.d.ts +18 -0
- package/lib/data-types/decimal-common.js +79 -0
- package/lib/data-types/decimal-common.js.map +1 -0
- package/lib/data-types/decimal.js +6 -67
- package/lib/data-types/decimal.js.map +1 -1
- package/lib/data-types/decimaln.js +3 -6
- package/lib/data-types/decimaln.js.map +1 -1
- package/lib/data-types/float.js +10 -15
- package/lib/data-types/float.js.map +1 -1
- package/lib/data-types/floatn.js +3 -6
- package/lib/data-types/floatn.js.map +1 -1
- package/lib/data-types/image.js +10 -17
- package/lib/data-types/image.js.map +1 -1
- package/lib/data-types/int.js +8 -15
- package/lib/data-types/int.js.map +1 -1
- package/lib/data-types/intn.js +3 -6
- package/lib/data-types/intn.js.map +1 -1
- package/lib/data-types/money.js +14 -18
- package/lib/data-types/money.js.map +1 -1
- package/lib/data-types/moneyn.js +3 -6
- package/lib/data-types/moneyn.js.map +1 -1
- package/lib/data-types/nchar.js +17 -31
- package/lib/data-types/nchar.js.map +1 -1
- package/lib/data-types/ntext.js +13 -17
- package/lib/data-types/ntext.js.map +1 -1
- package/lib/data-types/null.js +3 -6
- package/lib/data-types/null.js.map +1 -1
- package/lib/data-types/numeric.js +6 -67
- package/lib/data-types/numeric.js.map +1 -1
- package/lib/data-types/numericn.js +3 -6
- package/lib/data-types/numericn.js.map +1 -1
- package/lib/data-types/nvarchar.js +68 -57
- package/lib/data-types/nvarchar.js.map +1 -1
- package/lib/data-types/plp-stream.d.ts +19 -0
- package/lib/data-types/plp-stream.js +59 -0
- package/lib/data-types/plp-stream.js.map +1 -0
- package/lib/data-types/real.js +10 -16
- package/lib/data-types/real.js.map +1 -1
- package/lib/data-types/smalldatetime.js +17 -23
- package/lib/data-types/smalldatetime.js.map +1 -1
- package/lib/data-types/smallint.js +10 -16
- package/lib/data-types/smallint.js.map +1 -1
- package/lib/data-types/smallmoney.js +10 -16
- package/lib/data-types/smallmoney.js.map +1 -1
- package/lib/data-types/sql-variant.js +3 -6
- package/lib/data-types/sql-variant.js.map +1 -1
- package/lib/data-types/temporal.d.ts +22 -0
- package/lib/data-types/temporal.js +72 -0
- package/lib/data-types/temporal.js.map +1 -0
- package/lib/data-types/text.js +12 -18
- package/lib/data-types/text.js.map +1 -1
- package/lib/data-types/time.js +11 -55
- package/lib/data-types/time.js.map +1 -1
- package/lib/data-types/tinyint.js +10 -16
- package/lib/data-types/tinyint.js.map +1 -1
- package/lib/data-types/tvp.js +145 -87
- package/lib/data-types/tvp.js.map +1 -1
- package/lib/data-types/udt.js +3 -6
- package/lib/data-types/udt.js.map +1 -1
- package/lib/data-types/uniqueidentifier.js +12 -14
- package/lib/data-types/uniqueidentifier.js.map +1 -1
- package/lib/data-types/varbinary.js +58 -48
- package/lib/data-types/varbinary.js.map +1 -1
- package/lib/data-types/varchar.js +84 -50
- package/lib/data-types/varchar.js.map +1 -1
- package/lib/data-types/xml.js +3 -6
- package/lib/data-types/xml.js.map +1 -1
- package/lib/request.d.ts +23 -3
- package/lib/request.js +29 -3
- package/lib/request.js.map +1 -1
- package/lib/rpcrequest-payload.d.ts +21 -9
- package/lib/rpcrequest-payload.js +62 -51
- package/lib/rpcrequest-payload.js.map +1 -1
- package/lib/tedious.d.ts +2 -2
- package/lib/tedious.js +7 -1
- package/lib/tedious.js.map +1 -1
- package/package.json +1 -1
package/lib/data-types/binary.js
CHANGED
|
@@ -32,25 +32,18 @@ const Binary = {
|
|
|
32
32
|
return this.maximumLength;
|
|
33
33
|
}
|
|
34
34
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
buffer.
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
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,
|
|
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","
|
|
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":[]}
|
package/lib/data-types/bit.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
19
|
-
|
|
17
|
+
writeTypeInfo(buffer) {
|
|
18
|
+
buffer.writeBuffer(TYPE_INFO);
|
|
20
19
|
},
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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,
|
|
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","
|
|
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":[]}
|
package/lib/data-types/bitn.js
CHANGED
|
@@ -11,13 +11,10 @@ const BitN = {
|
|
|
11
11
|
declaration() {
|
|
12
12
|
throw new Error('not implemented');
|
|
13
13
|
},
|
|
14
|
-
|
|
14
|
+
writeTypeInfo() {
|
|
15
15
|
throw new Error('not implemented');
|
|
16
16
|
},
|
|
17
|
-
|
|
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,
|
|
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","
|
|
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":[]}
|
package/lib/data-types/char.js
CHANGED
|
@@ -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
|
-
|
|
45
|
-
|
|
46
|
-
buffer.
|
|
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().
|
|
49
|
+
buffer.writeBuffer(parameter.collation.toBuffer().subarray(0, 5));
|
|
50
|
+
} else {
|
|
51
|
+
buffer.writeBuffer(NO_COLLATION);
|
|
50
52
|
}
|
|
51
|
-
return buffer;
|
|
52
53
|
},
|
|
53
|
-
|
|
54
|
+
writeValue(buffer, parameter) {
|
|
54
55
|
const value = parameter.value;
|
|
55
56
|
if (value == null) {
|
|
56
|
-
|
|
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
|
-
|
|
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,
|
|
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","
|
|
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":[]}
|
package/lib/data-types/date.js
CHANGED
|
@@ -4,12 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
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
|
|
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
|
-
|
|
21
|
-
|
|
18
|
+
writeTypeInfo(buffer) {
|
|
19
|
+
buffer.writeBuffer(TYPE_INFO);
|
|
22
20
|
},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
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,
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVtcG9yYWwiLCJyZXF1aXJlIiwiZ2xvYmFsRGF0ZSIsImdsb2JhbCIsIkRhdGUiLCJUWVBFX0lORk8iLCJCdWZmZXIiLCJmcm9tIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlQnVmZmVyIiwid3JpdGVWYWx1ZSIsInBhcmFtZXRlciIsIm9wdGlvbnMiLCJ2YWx1ZSIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQyNExFIiwiZGF5c1NpbmNlWWVhck9uZSIsInVzZVVUQyIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwicGFyc2UiLCJ5ZWFyIiwiZ2V0VVRDRnVsbFllYXIiLCJnZXRGdWxsWWVhciIsIlR5cGVFcnJvciIsImlzTmFOIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBkYXlzU2luY2VZZWFyT25lIH0gZnJvbSAnLi90ZW1wb3JhbCc7XG5cbi8vIGdsb2JhbERhdGUgaXMgdG8gYmUgdXNlZCBmb3IgSmF2YVNjcmlwdCdzIGdsb2JhbCAnRGF0ZScgb2JqZWN0IHRvIGF2b2lkIG5hbWUgY2xhc2hpbmcgd2l0aCB0aGUgJ0RhdGUnIGNvbnN0YW50IGJlbG93XG5jb25zdCBnbG9iYWxEYXRlID0gZ2xvYmFsLkRhdGU7XG5jb25zdCBUWVBFX0lORk8gPSBCdWZmZXIuZnJvbShbMHgyOF0pO1xuXG5jb25zdCBEYXRlOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4MjgsXG4gIHR5cGU6ICdEQVRFTicsXG4gIG5hbWU6ICdEYXRlJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuICdkYXRlJztcbiAgfSxcblxuICB3cml0ZVR5cGVJbmZvKGJ1ZmZlcikge1xuICAgIGJ1ZmZlci53cml0ZUJ1ZmZlcihUWVBFX0lORk8pO1xuICB9LFxuXG4gIHdyaXRlVmFsdWUoYnVmZmVyLCBwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBnbG9iYWxUaGlzLkRhdGUgfCBudWxsO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50OCgweDAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVVSW50OCgweDAzKTtcbiAgICBidWZmZXIud3JpdGVVSW50MjRMRShkYXlzU2luY2VZZWFyT25lKHZhbHVlLCBvcHRpb25zLnVzZVVUQykpO1xuICB9LFxuXG4gIC8vIFRPRE86IHZhbHVlIGlzIHRlY2huaWNhbGx5IG9mIHR5cGUgJ3Vua25vd24nLlxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbiwgb3B0aW9ucyk6IG51bGwgfCBEYXRlIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBnbG9iYWxEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgZ2xvYmFsRGF0ZShnbG9iYWxEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSBhcyBEYXRlO1xuXG4gICAgbGV0IHllYXI7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG5cbiAgICBpZiAoeWVhciA8IDEgfHwgeWVhciA+IDk5OTkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ091dCBvZiByYW5nZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxTQUFBLEdBQUFDLE9BQUE7QUFFQTtBQUNBLE1BQU1DLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxJQUFJO0FBQzlCLE1BQU1DLFNBQVMsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUVyQyxNQUFNSCxJQUFjLEdBQUc7RUFDckJJLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxPQUFPO0VBQ2JDLElBQUksRUFBRSxNQUFNO0VBRVpDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxNQUFNO0VBQ2YsQ0FBQztFQUVEQyxhQUFhQSxDQUFDQyxNQUFNLEVBQUU7SUFDcEJBLE1BQU0sQ0FBQ0MsV0FBVyxDQUFDVCxTQUFTLENBQUM7RUFDL0IsQ0FBQztFQUVEVSxVQUFVQSxDQUFDRixNQUFNLEVBQUVHLFNBQVMsRUFBRUMsT0FBTyxFQUFFO0lBQ3JDLE1BQU1DLEtBQUssR0FBR0YsU0FBUyxDQUFDRSxLQUErQjtJQUN2RCxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCTCxNQUFNLENBQUNNLFVBQVUsQ0FBQyxJQUFJLENBQUM7TUFDdkI7SUFDRjtJQUVBTixNQUFNLENBQUNNLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDdkJOLE1BQU0sQ0FBQ08sYUFBYSxDQUFDLElBQUFDLDBCQUFnQixFQUFDSCxLQUFLLEVBQUVELE9BQU8sQ0FBQ0ssTUFBTSxDQUFDLENBQUM7RUFDL0QsQ0FBQztFQUVEO0VBQ0FDLFFBQVEsRUFBRSxTQUFBQSxDQUFTTCxLQUFLLEVBQUVNLFNBQVMsRUFBRVAsT0FBTyxFQUFlO0lBQ3pELElBQUlDLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakIsT0FBTyxJQUFJO0lBQ2I7SUFFQSxJQUFJLEVBQUVBLEtBQUssWUFBWWhCLFVBQVUsQ0FBQyxFQUFFO01BQ2xDZ0IsS0FBSyxHQUFHLElBQUloQixVQUFVLENBQUNBLFVBQVUsQ0FBQ3VCLEtBQUssQ0FBQ1AsS0FBSyxDQUFDLENBQUM7SUFDakQ7SUFFQUEsS0FBSyxHQUFHQSxLQUFhO0lBRXJCLElBQUlRLElBQUk7SUFDUixJQUFJVCxPQUFPLElBQUlBLE9BQU8sQ0FBQ0ssTUFBTSxFQUFFO01BQzdCSSxJQUFJLEdBQUdSLEtBQUssQ0FBQ1MsY0FBYyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxNQUFNO01BQ0xELElBQUksR0FBR1IsS0FBSyxDQUFDVSxXQUFXLENBQUMsQ0FBQztJQUM1QjtJQUVBLElBQUlGLElBQUksR0FBRyxDQUFDLElBQUlBLElBQUksR0FBRyxJQUFJLEVBQUU7TUFDM0IsTUFBTSxJQUFJRyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3RDO0lBRUEsSUFBSUMsS0FBSyxDQUFDWixLQUFLLENBQUMsRUFBRTtNQUNoQixNQUFNLElBQUlXLFNBQVMsQ0FBQyxlQUFlLENBQUM7SUFDdEM7SUFFQSxPQUFPWCxLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQWEsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFYTdCLElBQUk7QUFDbkI4QixNQUFNLENBQUNGLE9BQU8sR0FBRzVCLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","names":["
|
|
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
|
|
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
|
-
|
|
21
|
-
|
|
19
|
+
writeTypeInfo(buffer) {
|
|
20
|
+
buffer.writeBuffer(TYPE_INFO);
|
|
22
21
|
},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
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
|
-
|
|
45
|
-
|
|
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
|
-
|
|
50
|
-
|
|
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
|
-
|
|
63
|
-
buffer.writeInt32LE(days
|
|
64
|
-
buffer.writeUInt32LE(threeHundredthsOfSecond
|
|
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,
|
|
73
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0ZXRpbWVuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29yZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIkVQT0NIX0RBVEUiLCJMb2NhbERhdGUiLCJvZlllYXJEYXkiLCJUWVBFX0lORk8iLCJCdWZmZXIiLCJmcm9tIiwiRGF0ZVRpbWVOIiwiaWQiLCJEYXRlVGltZSIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJ3cml0ZVR5cGVJbmZvIiwiYnVmZmVyIiwid3JpdGVCdWZmZXIiLCJ3cml0ZVZhbHVlIiwicGFyYW1ldGVyIiwib3B0aW9ucyIsInZhbHVlIiwid3JpdGVVSW50OCIsImRheXMiLCJtaWxsaXNlY29uZHMiLCJ1c2VVVEMiLCJ1bnRpbCIsIm9mIiwiZ2V0VVRDRnVsbFllYXIiLCJnZXRVVENNb250aCIsImdldFVUQ0RhdGUiLCJDaHJvbm9Vbml0IiwiREFZUyIsImdldFVUQ0hvdXJzIiwiZ2V0VVRDTWludXRlcyIsImdldFVUQ1NlY29uZHMiLCJnZXRVVENNaWxsaXNlY29uZHMiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsImdldFNlY29uZHMiLCJnZXRNaWxsaXNlY29uZHMiLCJ0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCIsIk1hdGgiLCJyb3VuZCIsIndyaXRlSW50MzJMRSIsIndyaXRlVUludDMyTEUiLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsIkRhdGUiLCJwYXJzZSIsInllYXIiLCJUeXBlRXJyb3IiLCJpc05hTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGV0aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IERhdGVUaW1lTiBmcm9tICcuL2RhdGV0aW1lbic7XG5pbXBvcnQgeyBDaHJvbm9Vbml0LCBMb2NhbERhdGUgfSBmcm9tICdAanMtam9kYS9jb3JlJztcblxuY29uc3QgRVBPQ0hfREFURSA9IExvY2FsRGF0ZS5vZlllYXJEYXkoMTkwMCwgMSk7XG5jb25zdCBUWVBFX0lORk8gPSBCdWZmZXIuZnJvbShbRGF0ZVRpbWVOLmlkLCAweDA4XSk7XG5cbmNvbnN0IERhdGVUaW1lOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4M0QsXG4gIHR5cGU6ICdEQVRFVElNRScsXG4gIG5hbWU6ICdEYXRlVGltZScsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnZGF0ZXRpbWUnO1xuICB9LFxuXG4gIHdyaXRlVHlwZUluZm8oYnVmZmVyKSB7XG4gICAgYnVmZmVyLndyaXRlQnVmZmVyKFRZUEVfSU5GTyk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZShidWZmZXIsIHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIERhdGUgfCBudWxsO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50OCgweDAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZGF5czogbnVtYmVyLCBtaWxsaXNlY29uZHM6IG51bWJlcjtcbiAgICBpZiAob3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIGRheXMgPSBFUE9DSF9EQVRFLnVudGlsKExvY2FsRGF0ZS5vZih2YWx1ZS5nZXRVVENGdWxsWWVhcigpLCB2YWx1ZS5nZXRVVENNb250aCgpICsgMSwgdmFsdWUuZ2V0VVRDRGF0ZSgpKSwgQ2hyb25vVW5pdC5EQVlTKTtcbiAgICAgIG1pbGxpc2Vjb25kcyA9ICgodmFsdWUuZ2V0VVRDSG91cnMoKSAqIDYwICsgdmFsdWUuZ2V0VVRDTWludXRlcygpKSAqIDYwICsgdmFsdWUuZ2V0VVRDU2Vjb25kcygpKSAqIDEwMDAgKyB2YWx1ZS5nZXRVVENNaWxsaXNlY29uZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGF5cyA9IEVQT0NIX0RBVEUudW50aWwoTG9jYWxEYXRlLm9mKHZhbHVlLmdldEZ1bGxZZWFyKCksIHZhbHVlLmdldE1vbnRoKCkgKyAxLCB2YWx1ZS5nZXREYXRlKCkpLCBDaHJvbm9Vbml0LkRBWVMpO1xuICAgICAgbWlsbGlzZWNvbmRzID0gKCh2YWx1ZS5nZXRIb3VycygpICogNjAgKyB2YWx1ZS5nZXRNaW51dGVzKCkpICogNjAgKyB2YWx1ZS5nZXRTZWNvbmRzKCkpICogMTAwMCArIHZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIH1cblxuICAgIGxldCB0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCA9IE1hdGgucm91bmQobWlsbGlzZWNvbmRzIC8gKDMgKyAoMSAvIDMpKSk7XG5cbiAgICAvLyAyNTkyMDAwMCBlcXVhbHMgb25lIGRheVxuICAgIGlmICh0aHJlZUh1bmRyZWR0aHNPZlNlY29uZCA9PT0gMjU5MjAwMDApIHtcbiAgICAgIGRheXMgKz0gMTtcbiAgICAgIHRocmVlSHVuZHJlZHRoc09mU2Vjb25kID0gMDtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVVSW50OCgweDA4KTtcbiAgICBidWZmZXIud3JpdGVJbnQzMkxFKGRheXMpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKHRocmVlSHVuZHJlZHRoc09mU2Vjb25kKTtcbiAgfSxcblxuICAvLyBUT0RPOiB0eXBlICdhbnknIG5lZWRzIHRvIGJlIHJldmlzaXRlZC5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlOiBhbnksIGNvbGxhdGlvbiwgb3B0aW9ucyk6IG51bGwgfCBudW1iZXIge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoISh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBEYXRlKERhdGUucGFyc2UodmFsdWUpKTtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlIGFzIERhdGU7XG5cbiAgICBsZXQgeWVhcjtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnVzZVVUQykge1xuICAgICAgeWVhciA9IHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRGdWxsWWVhcigpO1xuICAgIH1cblxuICAgIGlmICh5ZWFyIDwgMTc1MyB8fCB5ZWFyID4gOTk5OSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3V0IG9mIHJhbmdlLicpO1xuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlVGltZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQXNELFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXRELE1BQU1HLFVBQVUsR0FBR0MsZUFBUyxDQUFDQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMvQyxNQUFNQyxTQUFTLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLGtCQUFTLENBQUNDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRCxNQUFNQyxRQUFrQixHQUFHO0VBQ3pCRCxFQUFFLEVBQUUsSUFBSTtFQUNSRSxJQUFJLEVBQUUsVUFBVTtFQUNoQkMsSUFBSSxFQUFFLFVBQVU7RUFFaEJDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxVQUFVO0VBQ25CLENB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
|