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
|
@@ -4,11 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
var _plpStream = require("./plp-stream");
|
|
7
8
|
const MAX = (1 << 16) - 1;
|
|
8
9
|
const UNKNOWN_PLP_LEN = Buffer.from([0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]);
|
|
9
10
|
const PLP_TERMINATOR = Buffer.from([0x00, 0x00, 0x00, 0x00]);
|
|
10
11
|
const NULL_LENGTH = Buffer.from([0xFF, 0xFF]);
|
|
11
12
|
const MAX_NULL_LENGTH = Buffer.from([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]);
|
|
13
|
+
const NO_COLLATION = Buffer.alloc(5);
|
|
14
|
+
function encodeUcs2(chunk) {
|
|
15
|
+
if (typeof chunk !== 'string') {
|
|
16
|
+
throw new TypeError('Invalid string.');
|
|
17
|
+
}
|
|
18
|
+
return Buffer.from(chunk, 'ucs2');
|
|
19
|
+
}
|
|
12
20
|
const NVarChar = {
|
|
13
21
|
id: 0xE7,
|
|
14
22
|
type: 'NVARCHAR',
|
|
@@ -17,6 +25,9 @@ const NVarChar = {
|
|
|
17
25
|
declaration: function (parameter) {
|
|
18
26
|
const value = parameter.value; // Temporary solution. Remove 'any' later.
|
|
19
27
|
|
|
28
|
+
if ((0, _plpStream.isAsyncIterable)(value)) {
|
|
29
|
+
return 'nvarchar(max)';
|
|
30
|
+
}
|
|
20
31
|
let length;
|
|
21
32
|
if (parameter.length) {
|
|
22
33
|
length = parameter.length;
|
|
@@ -47,75 +58,49 @@ const NVarChar = {
|
|
|
47
58
|
return this.maximumLength;
|
|
48
59
|
}
|
|
49
60
|
},
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
buffer.writeUInt8(this.id, 0);
|
|
61
|
+
writeTypeInfo(buffer, parameter) {
|
|
62
|
+
buffer.writeUInt8(this.id);
|
|
53
63
|
if (parameter.length <= this.maximumLength) {
|
|
54
|
-
buffer.writeUInt16LE(parameter.length * 2
|
|
64
|
+
buffer.writeUInt16LE(parameter.length * 2);
|
|
55
65
|
} else {
|
|
56
|
-
buffer.writeUInt16LE(MAX
|
|
66
|
+
buffer.writeUInt16LE(MAX);
|
|
57
67
|
}
|
|
58
68
|
if (parameter.collation) {
|
|
59
|
-
parameter.collation.toBuffer().
|
|
60
|
-
}
|
|
61
|
-
return buffer;
|
|
62
|
-
},
|
|
63
|
-
generateParameterLength(parameter, options) {
|
|
64
|
-
if (parameter.value == null) {
|
|
65
|
-
if (parameter.length <= this.maximumLength) {
|
|
66
|
-
return NULL_LENGTH;
|
|
67
|
-
} else {
|
|
68
|
-
return MAX_NULL_LENGTH;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
let value = parameter.value;
|
|
72
|
-
if (parameter.length <= this.maximumLength) {
|
|
73
|
-
let length;
|
|
74
|
-
if (value instanceof Buffer) {
|
|
75
|
-
length = value.length;
|
|
76
|
-
} else {
|
|
77
|
-
value = value.toString();
|
|
78
|
-
length = Buffer.byteLength(value, 'ucs2');
|
|
79
|
-
}
|
|
80
|
-
const buffer = Buffer.alloc(2);
|
|
81
|
-
buffer.writeUInt16LE(length, 0);
|
|
82
|
-
return buffer;
|
|
69
|
+
buffer.writeBuffer(parameter.collation.toBuffer().subarray(0, 5));
|
|
83
70
|
} else {
|
|
84
|
-
|
|
71
|
+
buffer.writeBuffer(NO_COLLATION);
|
|
85
72
|
}
|
|
86
73
|
},
|
|
87
|
-
|
|
74
|
+
writeValue(buffer, parameter) {
|
|
88
75
|
if (parameter.value == null) {
|
|
76
|
+
buffer.writeBuffer(parameter.length <= this.maximumLength ? NULL_LENGTH : MAX_NULL_LENGTH);
|
|
89
77
|
return;
|
|
90
78
|
}
|
|
91
|
-
|
|
79
|
+
|
|
80
|
+
// Read from its source while the request is written; `resolve` declared
|
|
81
|
+
// it as `nvarchar(max)`.
|
|
82
|
+
if ((0, _plpStream.isAsyncIterable)(parameter.value)) {
|
|
83
|
+
return (0, _plpStream.writePlpStream)(buffer, parameter.value, encodeUcs2);
|
|
84
|
+
}
|
|
85
|
+
const value = parameter.value instanceof Buffer ? parameter.value : parameter.value.toString();
|
|
86
|
+
const length = typeof value === 'string' ? value.length * 2 : value.length;
|
|
92
87
|
if (parameter.length <= this.maximumLength) {
|
|
93
|
-
|
|
94
|
-
yield value;
|
|
95
|
-
} else {
|
|
96
|
-
value = value.toString();
|
|
97
|
-
yield Buffer.from(value, 'ucs2');
|
|
98
|
-
}
|
|
88
|
+
buffer.writeUInt16LE(length);
|
|
99
89
|
} else {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
buffer.writeUInt32LE(length, 0);
|
|
105
|
-
yield buffer;
|
|
106
|
-
yield value;
|
|
107
|
-
}
|
|
108
|
-
} else {
|
|
109
|
-
value = value.toString();
|
|
110
|
-
const length = Buffer.byteLength(value, 'ucs2');
|
|
111
|
-
if (length > 0) {
|
|
112
|
-
const buffer = Buffer.alloc(4);
|
|
113
|
-
buffer.writeUInt32LE(length, 0);
|
|
114
|
-
yield buffer;
|
|
115
|
-
yield Buffer.from(value, 'ucs2');
|
|
116
|
-
}
|
|
90
|
+
buffer.writeBuffer(UNKNOWN_PLP_LEN);
|
|
91
|
+
if (length === 0) {
|
|
92
|
+
buffer.writeBuffer(PLP_TERMINATOR);
|
|
93
|
+
return;
|
|
117
94
|
}
|
|
118
|
-
|
|
95
|
+
buffer.writeUInt32LE(length);
|
|
96
|
+
}
|
|
97
|
+
if (typeof value === 'string') {
|
|
98
|
+
buffer.writeString(value, 'ucs2');
|
|
99
|
+
} else {
|
|
100
|
+
buffer.writeBuffer(value);
|
|
101
|
+
}
|
|
102
|
+
if (parameter.length > this.maximumLength) {
|
|
103
|
+
buffer.writeBuffer(PLP_TERMINATOR);
|
|
119
104
|
}
|
|
120
105
|
},
|
|
121
106
|
validate: function (value) {
|
|
@@ -126,8 +111,34 @@ const NVarChar = {
|
|
|
126
111
|
throw new TypeError('Invalid string.');
|
|
127
112
|
}
|
|
128
113
|
return value;
|
|
114
|
+
},
|
|
115
|
+
resolve(parameter, collation) {
|
|
116
|
+
if ((0, _plpStream.isAsyncIterable)(parameter.value)) {
|
|
117
|
+
// Read from its source while the request is written, and sent as
|
|
118
|
+
// `nvarchar(max)` since its length is not known up front.
|
|
119
|
+
const data = {
|
|
120
|
+
value: parameter.value,
|
|
121
|
+
length: MAX
|
|
122
|
+
};
|
|
123
|
+
if (collation) {
|
|
124
|
+
data.collation = collation;
|
|
125
|
+
}
|
|
126
|
+
return data;
|
|
127
|
+
}
|
|
128
|
+
const value = this.validate(parameter.value, collation);
|
|
129
|
+
const data = {
|
|
130
|
+
value
|
|
131
|
+
};
|
|
132
|
+
data.length = parameter.length != null ? parameter.length : this.resolveLength({
|
|
133
|
+
...parameter,
|
|
134
|
+
value
|
|
135
|
+
});
|
|
136
|
+
if (collation) {
|
|
137
|
+
data.collation = collation;
|
|
138
|
+
}
|
|
139
|
+
return data;
|
|
129
140
|
}
|
|
130
141
|
};
|
|
131
142
|
var _default = exports.default = NVarChar;
|
|
132
143
|
module.exports = NVarChar;
|
|
133
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVgiLCJVTktOT1dOX1BMUF9MRU4iLCJCdWZmZXIiLCJmcm9tIiwiUExQX1RFUk1JTkFUT1IiLCJOVUxMX0xFTkdUSCIsIk1BWF9OVUxMX0xFTkdUSCIsIk5WYXJDaGFyIiwiaWQiLCJ0eXBlIiwibmFtZSIsIm1heGltdW1MZW5ndGgiLCJkZWNsYXJhdGlvbiIsInBhcmFtZXRlciIsInZhbHVlIiwibGVuZ3RoIiwidG9TdHJpbmciLCJvdXRwdXQiLCJyZXNvbHZlTGVuZ3RoIiwiaXNCdWZmZXIiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVSW50MTZMRSIsImNvbGxhdGlvbiIsInRvQnVmZmVyIiwiY29weSIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsImJ5dGVMZW5ndGgiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJ3cml0ZVVJbnQzMkxFIiwidmFsaWRhdGUiLCJUeXBlRXJyb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvbnZhcmNoYXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5cbmNvbnN0IE1BWCA9ICgxIDw8IDE2KSAtIDE7XG5jb25zdCBVTktOT1dOX1BMUF9MRU4gPSBCdWZmZXIuZnJvbShbMHhmZSwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZl0pO1xuY29uc3QgUExQX1RFUk1JTkFUT1IgPSBCdWZmZXIuZnJvbShbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pO1xuXG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGXSk7XG5jb25zdCBNQVhfTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBOVmFyQ2hhcjogeyBtYXhpbXVtTGVuZ3RoOiBudW1iZXIgfSAmIERhdGFUeXBlID0ge1xuICBpZDogMHhFNyxcbiAgdHlwZTogJ05WQVJDSEFSJyxcbiAgbmFtZTogJ05WYXJDaGFyJyxcbiAgbWF4aW11bUxlbmd0aDogNDAwMCxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cblxuICAgIGxldCBsZW5ndGg7XG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGgpIHtcbiAgICAgIGxlbmd0aCA9IHBhcmFtZXRlci5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBsZW5ndGggPSB2YWx1ZS50b1N0cmluZygpLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwgJiYgIXBhcmFtZXRlci5vdXRwdXQpIHtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxlbmd0aCA9IHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG5cbiAgICBpZiAobGVuZ3RoIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgcmV0dXJuICdudmFyY2hhcignICsgbGVuZ3RoICsgJyknO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ252YXJjaGFyKG1heCknO1xuICAgIH1cbiAgfSxcblxuICByZXNvbHZlTGVuZ3RoOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBhbnk7IC8vIFRlbXBvcmFyeSBzb2x1dGlvbi4gUmVtb3ZlICdhbnknIGxhdGVyLlxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuICh2YWx1ZS5sZW5ndGggLyAyKSB8fCAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIHx8IDE7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuICB9LFxuXG4gIGdlbmVyYXRlVHlwZUluZm8ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQsIDApO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUocGFyYW1ldGVyLmxlbmd0aCEgKiAyLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUoTUFYLCAxKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1ldGVyLmNvbGxhdGlvbikge1xuICAgICAgcGFyYW1ldGVyLmNvbGxhdGlvbi50b0J1ZmZlcigpLmNvcHkoYnVmZmVyLCAzLCAwLCA1KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gTUFYX05VTExfTEVOR1RIO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZTtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICBsZXQgbGVuZ3RoO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgbGVuZ3RoID0gQnVmZmVyLmJ5dGVMZW5ndGgodmFsdWUsICd1Y3MyJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygyKTtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKGxlbmd0aCwgMCk7XG4gICAgICByZXR1cm4gYnVmZmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gVU5LTk9XTl9QTFBfTEVOO1xuICAgIH1cbiAgfSxcblxuICAqIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWU7XG5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgeWllbGQgdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIHlpZWxkIEJ1ZmZlci5mcm9tKHZhbHVlLCAndWNzMicpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBCdWZmZXIpIHtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuXG4gICAgICAgIGlmIChsZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgICAgICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKGxlbmd0aCwgMCk7XG4gICAgICAgICAgeWllbGQgYnVmZmVyO1xuICAgICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlLCAndWNzMicpO1xuXG4gICAgICAgIGlmIChsZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgICAgICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKGxlbmd0aCwgMCk7XG4gICAgICAgICAgeWllbGQgYnVmZmVyO1xuICAgICAgICAgIHlpZWxkIEJ1ZmZlci5mcm9tKHZhbHVlLCAndWNzMicpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHlpZWxkIFBMUF9URVJNSU5BVE9SO1xuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBudWxsIHwgc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgc3RyaW5nLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgTlZhckNoYXI7XG5tb2R1bGUuZXhwb3J0cyA9IE5WYXJDaGFyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7QUFD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
|
|
144
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGxwU3RyZWFtIiwicmVxdWlyZSIsIk1BWCIsIlVOS05PV05fUExQX0xFTiIsIkJ1ZmZlciIsImZyb20iLCJQTFBfVEVSTUlOQVRPUiIsIk5VTExfTEVOR1RIIiwiTUFYX05VTExfTEVOR1RIIiwiTk9fQ09MTEFUSU9OIiwiYWxsb2MiLCJlbmNvZGVVY3MyIiwiY2h1bmsiLCJUeXBlRXJyb3IiLCJOVmFyQ2hhciIsImlkIiwidHlwZSIsIm5hbWUiLCJtYXhpbXVtTGVuZ3RoIiwiZGVjbGFyYXRpb24iLCJwYXJhbWV0ZXIiLCJ2YWx1ZSIsImlzQXN5bmNJdGVyYWJsZSIsImxlbmd0aCIsInRvU3RyaW5nIiwib3V0cHV0IiwicmVzb2x2ZUxlbmd0aCIsImlzQnVmZmVyIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwiY29sbGF0aW9uIiwid3JpdGVCdWZmZXIiLCJ0b0J1ZmZlciIsInN1YmFycmF5Iiwid3JpdGVWYWx1ZSIsIndyaXRlUGxwU3RyZWFtIiwid3JpdGVVSW50MzJMRSIsIndyaXRlU3RyaW5nIiwidmFsaWRhdGUiLCJyZXNvbHZlIiwiZGF0YSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9udmFyY2hhci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlLCB0eXBlIFBhcmFtZXRlckRhdGEgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgaXNBc3luY0l0ZXJhYmxlLCB3cml0ZVBscFN0cmVhbSB9IGZyb20gJy4vcGxwLXN0cmVhbSc7XG5cbmNvbnN0IE1BWCA9ICgxIDw8IDE2KSAtIDE7XG5jb25zdCBVTktOT1dOX1BMUF9MRU4gPSBCdWZmZXIuZnJvbShbMHhmZSwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZl0pO1xuY29uc3QgUExQX1RFUk1JTkFUT1IgPSBCdWZmZXIuZnJvbShbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pO1xuXG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGXSk7XG5jb25zdCBNQVhfTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0pO1xuY29uc3QgTk9fQ09MTEFUSU9OID0gQnVmZmVyLmFsbG9jKDUpO1xuXG5mdW5jdGlvbiBlbmNvZGVVY3MyKGNodW5rOiB1bmtub3duKTogQnVmZmVyIHtcbiAgaWYgKHR5cGVvZiBjaHVuayAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHN0cmluZy4nKTtcbiAgfVxuICByZXR1cm4gQnVmZmVyLmZyb20oY2h1bmssICd1Y3MyJyk7XG59XG5cbmNvbnN0IE5WYXJDaGFyOiB7IG1heGltdW1MZW5ndGg6IG51bWJlciB9ICYgRGF0YVR5cGUgPSB7XG4gIGlkOiAweEU3LFxuICB0eXBlOiAnTlZBUkNIQVInLFxuICBuYW1lOiAnTlZhckNoYXInLFxuICBtYXhpbXVtTGVuZ3RoOiA0MDAwLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBhbnk7IC8vIFRlbXBvcmFyeSBzb2x1dGlvbi4gUmVtb3ZlICdhbnknIGxhdGVyLlxuXG4gICAgaWYgKGlzQXN5bmNJdGVyYWJsZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiAnbnZhcmNoYXIobWF4KSc7XG4gICAgfVxuXG4gICAgbGV0IGxlbmd0aDtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCkge1xuICAgICAgbGVuZ3RoID0gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGxlbmd0aCA9IHZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoIHx8IDE7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCAmJiAhcGFyYW1ldGVyLm91dHB1dCkge1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cblxuICAgIGlmIChsZW5ndGggPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ252YXJjaGFyKCcgKyBsZW5ndGggKyAnKSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnbnZhcmNoYXIobWF4KSc7XG4gICAgfVxuICB9LFxuXG4gIHJlc29sdmVMZW5ndGg6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIGFueTsgLy8gVGVtcG9yYXJ5IHNvbHV0aW9uLiBSZW1vdmUgJ2FueScgbGF0ZXIuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGggIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKHZhbHVlLmxlbmd0aCAvIDIpIHx8IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5sZW5ndGggfHwgMTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG4gIH0sXG5cbiAgd3JpdGVUeXBlSW5mbyhidWZmZXIsIHBhcmFtZXRlcikge1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQpO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUocGFyYW1ldGVyLmxlbmd0aCEgKiAyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUoTUFYKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1ldGVyLmNvbGxhdGlvbikge1xuICAgICAgYnVmZmVyLndyaXRlQnVmZmVyKHBhcmFtZXRlci5jb2xsYXRpb24udG9CdWZmZXIoKS5zdWJhcnJheSgwLCA1KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlci53cml0ZUJ1ZmZlcihOT19DT0xMQVRJT04pO1xuICAgIH1cbiAgfSxcblxuICB3cml0ZVZhbHVlKGJ1ZmZlciwgcGFyYW1ldGVyKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVCdWZmZXIocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoID8gTlVMTF9MRU5HVEggOiBNQVhfTlVMTF9MRU5HVEgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJlYWQgZnJvbSBpdHMgc291cmNlIHdoaWxlIHRoZSByZXF1ZXN0IGlzIHdyaXR0ZW47IGByZXNvbHZlYCBkZWNsYXJlZFxuICAgIC8vIGl0IGFzIGBudmFyY2hhcihtYXgpYC5cbiAgICBpZiAoaXNBc3luY0l0ZXJhYmxlKHBhcmFtZXRlci52YWx1ZSkpIHtcbiAgICAgIHJldHVybiB3cml0ZVBscFN0cmVhbShidWZmZXIsIHBhcmFtZXRlci52YWx1ZSwgZW5jb2RlVWNzMik7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgaW5zdGFuY2VvZiBCdWZmZXIgPyBwYXJhbWV0ZXIudmFsdWUgOiBwYXJhbWV0ZXIudmFsdWUudG9TdHJpbmcoKTtcbiAgICBjb25zdCBsZW5ndGggPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUubGVuZ3RoICogMiA6IHZhbHVlLmxlbmd0aDtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKGxlbmd0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlci53cml0ZUJ1ZmZlcihVTktOT1dOX1BMUF9MRU4pO1xuICAgICAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgICAgICBidWZmZXIud3JpdGVCdWZmZXIoUExQX1RFUk1JTkFUT1IpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBidWZmZXIud3JpdGVVSW50MzJMRShsZW5ndGgpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBidWZmZXIud3JpdGVTdHJpbmcodmFsdWUsICd1Y3MyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlci53cml0ZUJ1ZmZlcih2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghID4gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICBidWZmZXIud3JpdGVCdWZmZXIoUExQX1RFUk1JTkFUT1IpO1xuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUpOiBudWxsIHwgc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgc3RyaW5nLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcblxuICByZXNvbHZlKHBhcmFtZXRlciwgY29sbGF0aW9uKSB7XG4gICAgaWYgKGlzQXN5bmNJdGVyYWJsZShwYXJhbWV0ZXIudmFsdWUpKSB7XG4gICAgICAvLyBSZWFkIGZyb20gaXRzIHNvdXJjZSB3aGlsZSB0aGUgcmVxdWVzdCBpcyB3cml0dGVuLCBhbmQgc2VudCBhc1xuICAgICAgLy8gYG52YXJjaGFyKG1heClgIHNpbmNlIGl0cyBsZW5ndGggaXMgbm90IGtub3duIHVwIGZyb250LlxuICAgICAgY29uc3QgZGF0YTogUGFyYW1ldGVyRGF0YSA9IHsgdmFsdWU6IHBhcmFtZXRlci52YWx1ZSwgbGVuZ3RoOiBNQVggfTtcbiAgICAgIGlmIChjb2xsYXRpb24pIHtcbiAgICAgICAgZGF0YS5jb2xsYXRpb24gPSBjb2xsYXRpb247XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsaWRhdGUocGFyYW1ldGVyLnZhbHVlLCBjb2xsYXRpb24pO1xuICAgIGNvbnN0IGRhdGE6IFBhcmFtZXRlckRhdGEgPSB7IHZhbHVlIH07XG4gICAgZGF0YS5sZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwgPyBwYXJhbWV0ZXIubGVuZ3RoIDogdGhpcy5yZXNvbHZlTGVuZ3RoISh7IC4uLnBhcmFtZXRlciwgdmFsdWUgfSk7XG4gICAgaWYgKGNvbGxhdGlvbikge1xuICAgICAgZGF0YS5jb2xsYXRpb24gPSBjb2xsYXRpb247XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOVmFyQ2hhcjtcbm1vZHVsZS5leHBvcnRzID0gTlZhckNoYXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztBQUN6QixNQUFNQyxlQUFlLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JGLE1BQU1DLGNBQWMsR0FBR0YsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUU1RCxNQUFNRSxX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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nvarchar.js","names":["MAX","UNKNOWN_PLP_LEN","Buffer","from","PLP_TERMINATOR","NULL_LENGTH","MAX_NULL_LENGTH","NVarChar","id","type","name","maximumLength","declaration","parameter","value","length","toString","output","resolveLength","isBuffer","
|
|
1
|
+
{"version":3,"file":"nvarchar.js","names":["_plpStream","require","MAX","UNKNOWN_PLP_LEN","Buffer","from","PLP_TERMINATOR","NULL_LENGTH","MAX_NULL_LENGTH","NO_COLLATION","alloc","encodeUcs2","chunk","TypeError","NVarChar","id","type","name","maximumLength","declaration","parameter","value","isAsyncIterable","length","toString","output","resolveLength","isBuffer","writeTypeInfo","buffer","writeUInt8","writeUInt16LE","collation","writeBuffer","toBuffer","subarray","writeValue","writePlpStream","writeUInt32LE","writeString","validate","resolve","data","_default","exports","default","module"],"sources":["../../src/data-types/nvarchar.ts"],"sourcesContent":["import { type DataType, type ParameterData } from '../data-type';\nimport { isAsyncIterable, writePlpStream } from './plp-stream';\n\nconst MAX = (1 << 16) - 1;\nconst UNKNOWN_PLP_LEN = Buffer.from([0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]);\nconst PLP_TERMINATOR = Buffer.from([0x00, 0x00, 0x00, 0x00]);\n\nconst NULL_LENGTH = Buffer.from([0xFF, 0xFF]);\nconst MAX_NULL_LENGTH = Buffer.from([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]);\nconst NO_COLLATION = Buffer.alloc(5);\n\nfunction encodeUcs2(chunk: unknown): Buffer {\n if (typeof chunk !== 'string') {\n throw new TypeError('Invalid string.');\n }\n return Buffer.from(chunk, 'ucs2');\n}\n\nconst NVarChar: { maximumLength: number } & DataType = {\n id: 0xE7,\n type: 'NVARCHAR',\n name: 'NVarChar',\n maximumLength: 4000,\n\n declaration: function(parameter) {\n const value = parameter.value as any; // Temporary solution. Remove 'any' later.\n\n if (isAsyncIterable(value)) {\n return 'nvarchar(max)';\n }\n\n let length;\n if (parameter.length) {\n length = parameter.length;\n } else if (value != null) {\n length = value.toString().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 'nvarchar(' + length + ')';\n } else {\n return 'nvarchar(max)';\n }\n },\n\n resolveLength: function(parameter) {\n const value = parameter.value as any; // Temporary solution. Remove 'any' later.\n if (parameter.length != null) {\n return parameter.length;\n } else if (value != null) {\n if (Buffer.isBuffer(value)) {\n return (value.length / 2) || 1;\n } else {\n return value.toString().length || 1;\n }\n } else {\n return this.maximumLength;\n }\n },\n\n writeTypeInfo(buffer, parameter) {\n buffer.writeUInt8(this.id);\n\n if (parameter.length! <= this.maximumLength) {\n buffer.writeUInt16LE(parameter.length! * 2);\n } else {\n buffer.writeUInt16LE(MAX);\n }\n\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 if (parameter.value == null) {\n buffer.writeBuffer(parameter.length! <= this.maximumLength ? NULL_LENGTH : MAX_NULL_LENGTH);\n return;\n }\n\n // Read from its source while the request is written; `resolve` declared\n // it as `nvarchar(max)`.\n if (isAsyncIterable(parameter.value)) {\n return writePlpStream(buffer, parameter.value, encodeUcs2);\n }\n\n const value = parameter.value instanceof Buffer ? parameter.value : parameter.value.toString();\n const length = typeof value === 'string' ? value.length * 2 : value.length;\n\n if (parameter.length! <= this.maximumLength) {\n buffer.writeUInt16LE(length);\n } else {\n buffer.writeBuffer(UNKNOWN_PLP_LEN);\n if (length === 0) {\n buffer.writeBuffer(PLP_TERMINATOR);\n return;\n }\n buffer.writeUInt32LE(length);\n }\n\n if (typeof value === 'string') {\n buffer.writeString(value, 'ucs2');\n } else {\n buffer.writeBuffer(value);\n }\n\n if (parameter.length! > this.maximumLength) {\n buffer.writeBuffer(PLP_TERMINATOR);\n }\n },\n\n validate: function(value): null | string {\n if (value == null) {\n return null;\n }\n\n if (typeof value !== 'string') {\n throw new TypeError('Invalid string.');\n }\n\n return value;\n },\n\n resolve(parameter, collation) {\n if (isAsyncIterable(parameter.value)) {\n // Read from its source while the request is written, and sent as\n // `nvarchar(max)` since its length is not known up front.\n const data: ParameterData = { value: parameter.value, length: MAX };\n if (collation) {\n data.collation = collation;\n }\n return data;\n }\n\n const value = this.validate(parameter.value, collation);\n const data: ParameterData = { value };\n data.length = parameter.length != null ? parameter.length : this.resolveLength!({ ...parameter, value });\n if (collation) {\n data.collation = collation;\n }\n return data;\n }\n};\n\nexport default NVarChar;\nmodule.exports = NVarChar;\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEA,MAAMC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;AACzB,MAAMC,eAAe,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrF,MAAMC,cAAc,GAAGF,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE5D,MAAME,WAAW,GAAGH,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,MAAMG,eAAe,GAAGJ,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrF,MAAMI,YAAY,GAAGL,MAAM,CAACM,KAAK,CAAC,CAAC,CAAC;AAEpC,SAASC,UAAUA,CAACC,KAAc,EAAU;EAC1C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,MAAM,IAAIC,SAAS,CAAC,iBAAiB,CAAC;EACxC;EACA,OAAOT,MAAM,CAACC,IAAI,CAACO,KAAK,EAAE,MAAM,CAAC;AACnC;AAEA,MAAME,QAA8C,GAAG;EACrDC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE,UAAU;EAChBC,aAAa,EAAE,IAAI;EAEnBC,WAAW,EAAE,SAAAA,CAASC,SAAS,EAAE;IAC/B,MAAMC,KAAK,GAAGD,SAAS,CAACC,KAAY,CAAC,CAAC;;IAEtC,IAAI,IAAAC,0BAAe,EAACD,KAAK,CAAC,EAAE;MAC1B,OAAO,eAAe;IACxB;IAEA,IAAIE,MAAM;IACV,IAAIH,SAAS,CAACG,MAAM,EAAE;MACpBA,MAAM,GAAGH,SAAS,CAACG,MAAM;IAC3B,CAAC,MAAM,IAAIF,KAAK,IAAI,IAAI,EAAE;MACxBE,MAAM,GAAGF,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACD,MAAM,IAAI,CAAC;IACvC,CAAC,MAAM,IAAIF,KAAK,KAAK,IAAI,IAAI,CAACD,SAAS,CAACK,MAAM,EAAE;MAC9CF,MAAM,GAAG,CAAC;IACZ,CAAC,MAAM;MACLA,MAAM,GAAG,IAAI,CAACL,aAAa;IAC7B;IAEA,IAAIK,MAAM,IAAI,IAAI,CAACL,aAAa,EAAE;MAChC,OAAO,WAAW,GAAGK,MAAM,GAAG,GAAG;IACnC,CAAC,MAAM;MACL,OAAO,eAAe;IACxB;EACF,CAAC;EAEDG,aAAa,EAAE,SAAAA,CAASN,SAAS,EAAE;IACjC,MAAMC,KAAK,GAAGD,SAAS,CAACC,KAAY,CAAC,CAAC;IACtC,IAAID,SAAS,CAACG,MAAM,IAAI,IAAI,EAAE;MAC5B,OAAOH,SAAS,CAACG,MAAM;IACzB,CAAC,MAAM,IAAIF,KAAK,IAAI,IAAI,EAAE;MACxB,IAAIjB,MAAM,CAACuB,QAAQ,CAACN,KAAK,CAAC,EAAE;QAC1B,OAAQA,KAAK,CAACE,MAAM,GAAG,CAAC,IAAK,CAAC;MAChC,CAAC,MAAM;QACL,OAAOF,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACD,MAAM,IAAI,CAAC;MACrC;IACF,CAAC,MAAM;MACL,OAAO,IAAI,CAACL,aAAa;IAC3B;EACF,CAAC;EAEDU,aAAaA,CAACC,MAAM,EAAET,SAAS,EAAE;IAC/BS,MAAM,CAACC,UAAU,CAAC,IAAI,CAACf,EAAE,CAAC;IAE1B,IAAIK,SAAS,CAACG,MAAM,IAAK,IAAI,CAACL,aAAa,EAAE;MAC3CW,MAAM,CAACE,aAAa,CAACX,SAAS,CAACG,MAAM,GAAI,CAAC,CAAC;IAC7C,CAAC,MAAM;MACLM,MAAM,CAACE,aAAa,CAAC7B,GAAG,CAAC;IAC3B;IAEA,IAAIkB,SAAS,CAACY,SAAS,EAAE;MACvBH,MAAM,CAACI,WAAW,CAACb,SAAS,CAACY,SAAS,CAACE,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC,MAAM;MACLN,MAAM,CAACI,WAAW,CAACxB,YAAY,CAAC;IAClC;EACF,CAAC;EAED2B,UAAUA,CAACP,MAAM,EAAET,SAAS,EAAE;IAC5B,IAAIA,SAAS,CAACC,KAAK,IAAI,IAAI,EAAE;MAC3BQ,MAAM,CAACI,WAAW,CAACb,SAAS,CAACG,MAAM,IAAK,IAAI,CAACL,aAAa,GAAGX,WAAW,GAAGC,eAAe,CAAC;MAC3F;IACF;;IAEA;IACA;IACA,IAAI,IAAAc,0BAAe,EAACF,SAAS,CAACC,KAAK,CAAC,EAAE;MACpC,OAAO,IAAAgB,yBAAc,EAACR,MAAM,EAAET,SAAS,CAACC,KAAK,EAAEV,UAAU,CAAC;IAC5D;IAEA,MAAMU,KAAK,GAAGD,SAAS,CAACC,KAAK,YAAYjB,MAAM,GAAGgB,SAAS,CAACC,KAAK,GAAGD,SAAS,CAACC,KAAK,CAACG,QAAQ,CAAC,CAAC;IAC9F,MAAMD,MAAM,GAAG,OAAOF,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAACE,MAAM,GAAG,CAAC,GAAGF,KAAK,CAACE,MAAM;IAE1E,IAAIH,SAAS,CAACG,MAAM,IAAK,IAAI,CAACL,aAAa,EAAE;MAC3CW,MAAM,CAACE,aAAa,CAACR,MAAM,CAAC;IAC9B,CAAC,MAAM;MACLM,MAAM,CAACI,WAAW,CAAC9B,eAAe,CAAC;MACnC,IAAIoB,MAAM,KAAK,CAAC,EAAE;QAChBM,MAAM,CAACI,WAAW,CAAC3B,cAAc,CAAC;QAClC;MACF;MACAuB,MAAM,CAACS,aAAa,CAACf,MAAM,CAAC;IAC9B;IAEA,IAAI,OAAOF,KAAK,KAAK,QAAQ,EAAE;MAC7BQ,MAAM,CAACU,WAAW,CAAClB,KAAK,EAAE,MAAM,CAAC;IACnC,CAAC,MAAM;MACLQ,MAAM,CAACI,WAAW,CAACZ,KAAK,CAAC;IAC3B;IAEA,IAAID,SAAS,CAACG,MAAM,GAAI,IAAI,CAACL,aAAa,EAAE;MAC1CW,MAAM,CAACI,WAAW,CAAC3B,cAAc,CAAC;IACpC;EACF,CAAC;EAEDkC,QAAQ,EAAE,SAAAA,CAASnB,KAAK,EAAiB;IACvC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,MAAM,IAAIR,SAAS,CAAC,iBAAiB,CAAC;IACxC;IAEA,OAAOQ,KAAK;EACd,CAAC;EAEDoB,OAAOA,CAACrB,SAAS,EAAEY,SAAS,EAAE;IAC5B,IAAI,IAAAV,0BAAe,EAACF,SAAS,CAACC,KAAK,CAAC,EAAE;MACpC;MACA;MACA,MAAMqB,IAAmB,GAAG;QAAErB,KAAK,EAAED,SAAS,CAACC,KAAK;QAAEE,MAAM,EAAErB;MAAI,CAAC;MACnE,IAAI8B,SAAS,EAAE;QACbU,IAAI,CAACV,SAAS,GAAGA,SAAS;MAC5B;MACA,OAAOU,IAAI;IACb;IAEA,MAAMrB,KAAK,GAAG,IAAI,CAACmB,QAAQ,CAACpB,SAAS,CAACC,KAAK,EAAEW,SAAS,CAAC;IACvD,MAAMU,IAAmB,GAAG;MAAErB;IAAM,CAAC;IACrCqB,IAAI,CAACnB,MAAM,GAAGH,SAAS,CAACG,MAAM,IAAI,IAAI,GAAGH,SAAS,CAACG,MAAM,GAAG,IAAI,CAACG,aAAa,CAAE;MAAE,GAAGN,SAAS;MAAEC;IAAM,CAAC,CAAC;IACxG,IAAIW,SAAS,EAAE;MACbU,IAAI,CAACV,SAAS,GAAGA,SAAS;IAC5B;IACA,OAAOU,IAAI;EACb;AACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa/B,QAAQ;AACvBgC,MAAM,CAACF,OAAO,GAAG9B,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import WritableTrackingBuffer from '../tracking-buffer/writable-tracking-buffer';
|
|
2
|
+
/**
|
|
3
|
+
* A value that is read while the request is written, rather than being fully
|
|
4
|
+
* in memory: the `max` text and binary types accept an async iterable of
|
|
5
|
+
* chunks (strings or buffers) here.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isAsyncIterable(value: unknown): value is AsyncIterable<unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Writes an in-memory PLP value into `buffer`: the unknown-length marker,
|
|
10
|
+
* the bytes as one chunk if there are any, then the terminator.
|
|
11
|
+
*/
|
|
12
|
+
export declare function writePlpValue(buffer: WritableTrackingBuffer, bytes: Buffer): void;
|
|
13
|
+
/**
|
|
14
|
+
* Writes a PLP value read from `source` into `buffer`: the unknown-length
|
|
15
|
+
* marker, then one length-prefixed chunk per non-empty encoded piece, then
|
|
16
|
+
* the terminator. Yields whenever the buffer holds a chunk's worth, as the
|
|
17
|
+
* rest of a `DataType.writeValue` promises.
|
|
18
|
+
*/
|
|
19
|
+
export declare function writePlpStream(buffer: WritableTrackingBuffer, source: AsyncIterable<unknown>, encode: (chunk: unknown) => Buffer): AsyncGenerator<void, void>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isAsyncIterable = isAsyncIterable;
|
|
7
|
+
exports.writePlpStream = writePlpStream;
|
|
8
|
+
exports.writePlpValue = writePlpValue;
|
|
9
|
+
var _writableTrackingBuffer = _interopRequireDefault(require("../tracking-buffer/writable-tracking-buffer"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
const UNKNOWN_PLP_LEN = Buffer.from([0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]);
|
|
12
|
+
const PLP_TERMINATOR = Buffer.from([0x00, 0x00, 0x00, 0x00]);
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A value that is read while the request is written, rather than being fully
|
|
16
|
+
* in memory: the `max` text and binary types accept an async iterable of
|
|
17
|
+
* chunks (strings or buffers) here.
|
|
18
|
+
*/
|
|
19
|
+
function isAsyncIterable(value) {
|
|
20
|
+
return value != null && typeof value[Symbol.asyncIterator] === 'function';
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Writes an in-memory PLP value into `buffer`: the unknown-length marker,
|
|
25
|
+
* the bytes as one chunk if there are any, then the terminator.
|
|
26
|
+
*/
|
|
27
|
+
function writePlpValue(buffer, bytes) {
|
|
28
|
+
buffer.writeBuffer(UNKNOWN_PLP_LEN);
|
|
29
|
+
if (bytes.length > 0) {
|
|
30
|
+
buffer.writeUInt32LE(bytes.length);
|
|
31
|
+
buffer.writeBuffer(bytes);
|
|
32
|
+
}
|
|
33
|
+
buffer.writeBuffer(PLP_TERMINATOR);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Writes a PLP value read from `source` into `buffer`: the unknown-length
|
|
38
|
+
* marker, then one length-prefixed chunk per non-empty encoded piece, then
|
|
39
|
+
* the terminator. Yields whenever the buffer holds a chunk's worth, as the
|
|
40
|
+
* rest of a `DataType.writeValue` promises.
|
|
41
|
+
*/
|
|
42
|
+
async function* writePlpStream(buffer, source, encode) {
|
|
43
|
+
buffer.writeBuffer(UNKNOWN_PLP_LEN);
|
|
44
|
+
for await (const chunk of source) {
|
|
45
|
+
const bytes = encode(chunk);
|
|
46
|
+
|
|
47
|
+
// A zero-length PLP chunk would be read as the terminator.
|
|
48
|
+
if (bytes.length === 0) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
buffer.writeUInt32LE(bytes.length);
|
|
52
|
+
buffer.writeBuffer(bytes);
|
|
53
|
+
if (buffer.length >= _writableTrackingBuffer.default.CHUNK_SIZE) {
|
|
54
|
+
yield;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
buffer.writeBuffer(PLP_TERMINATOR);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiVU5LTk9XTl9QTFBfTEVOIiwiQnVmZmVyIiwiZnJvbSIsIlBMUF9URVJNSU5BVE9SIiwiaXNBc3luY0l0ZXJhYmxlIiwidmFsdWUiLCJTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwid3JpdGVQbHBWYWx1ZSIsImJ1ZmZlciIsImJ5dGVzIiwid3JpdGVCdWZmZXIiLCJsZW5ndGgiLCJ3cml0ZVVJbnQzMkxFIiwid3JpdGVQbHBTdHJlYW0iLCJzb3VyY2UiLCJlbmNvZGUiLCJjaHVuayIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJDSFVOS19TSVpFIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvcGxwLXN0cmVhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuLi90cmFja2luZy1idWZmZXIvd3JpdGFibGUtdHJhY2tpbmctYnVmZmVyJztcblxuY29uc3QgVU5LTk9XTl9QTFBfTEVOID0gQnVmZmVyLmZyb20oWzB4ZmUsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmZdKTtcbmNvbnN0IFBMUF9URVJNSU5BVE9SID0gQnVmZmVyLmZyb20oWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDBdKTtcblxuLyoqXG4gKiBBIHZhbHVlIHRoYXQgaXMgcmVhZCB3aGlsZSB0aGUgcmVxdWVzdCBpcyB3cml0dGVuLCByYXRoZXIgdGhhbiBiZWluZyBmdWxseVxuICogaW4gbWVtb3J5OiB0aGUgYG1heGAgdGV4dCBhbmQgYmluYXJ5IHR5cGVzIGFjY2VwdCBhbiBhc3luYyBpdGVyYWJsZSBvZlxuICogY2h1bmtzIChzdHJpbmdzIG9yIGJ1ZmZlcnMpIGhlcmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0FzeW5jSXRlcmFibGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBBc3luY0l0ZXJhYmxlPHVua25vd24+IHtcbiAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiYgdHlwZW9mICh2YWx1ZSBhcyB7IFtTeW1ib2wuYXN5bmNJdGVyYXRvcl0/OiB1bmtub3duIH0pW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuLyoqXG4gKiBXcml0ZXMgYW4gaW4tbWVtb3J5IFBMUCB2YWx1ZSBpbnRvIGBidWZmZXJgOiB0aGUgdW5rbm93bi1sZW5ndGggbWFya2VyLFxuICogdGhlIGJ5dGVzIGFzIG9uZSBjaHVuayBpZiB0aGVyZSBhcmUgYW55LCB0aGVuIHRoZSB0ZXJtaW5hdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVQbHBWYWx1ZShidWZmZXI6IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIsIGJ5dGVzOiBCdWZmZXIpIHtcbiAgYnVmZmVyLndyaXRlQnVmZmVyKFVOS05PV05fUExQX0xFTik7XG4gIGlmIChieXRlcy5sZW5ndGggPiAwKSB7XG4gICAgYnVmZmVyLndyaXRlVUludDMyTEUoYnl0ZXMubGVuZ3RoKTtcbiAgICBidWZmZXIud3JpdGVCdWZmZXIoYnl0ZXMpO1xuICB9XG4gIGJ1ZmZlci53cml0ZUJ1ZmZlcihQTFBfVEVSTUlOQVRPUik7XG59XG5cbi8qKlxuICogV3JpdGVzIGEgUExQIHZhbHVlIHJlYWQgZnJvbSBgc291cmNlYCBpbnRvIGBidWZmZXJgOiB0aGUgdW5rbm93bi1sZW5ndGhcbiAqIG1hcmtlciwgdGhlbiBvbmUgbGVuZ3RoLXByZWZpeGVkIGNodW5rIHBlciBub24tZW1wdHkgZW5jb2RlZCBwaWVjZSwgdGhlblxuICogdGhlIHRlcm1pbmF0b3IuIFlpZWxkcyB3aGVuZXZlciB0aGUgYnVmZmVyIGhvbGRzIGEgY2h1bmsncyB3b3J0aCwgYXMgdGhlXG4gKiByZXN0IG9mIGEgYERhdGFUeXBlLndyaXRlVmFsdWVgIHByb21pc2VzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gKiB3cml0ZVBscFN0cmVhbShidWZmZXI6IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIsIHNvdXJjZTogQXN5bmNJdGVyYWJsZTx1bmtub3duPiwgZW5jb2RlOiAoY2h1bms6IHVua25vd24pID0+IEJ1ZmZlcik6IEFzeW5jR2VuZXJhdG9yPHZvaWQsIHZvaWQ+IHtcbiAgYnVmZmVyLndyaXRlQnVmZmVyKFVOS05PV05fUExQX0xFTik7XG5cbiAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBzb3VyY2UpIHtcbiAgICBjb25zdCBieXRlcyA9IGVuY29kZShjaHVuayk7XG5cbiAgICAvLyBBIHplcm8tbGVuZ3RoIFBMUCBjaHVuayB3b3VsZCBiZSByZWFkIGFzIHRoZSB0ZXJtaW5hdG9yLlxuICAgIGlmIChieXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKGJ5dGVzLmxlbmd0aCk7XG4gICAgYnVmZmVyLndyaXRlQnVmZmVyKGJ5dGVzKTtcblxuICAgIGlmIChidWZmZXIubGVuZ3RoID49IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIuQ0hVTktfU0laRSkge1xuICAgICAgeWllbGQ7XG4gICAgfVxuICB9XG5cbiAgYnVmZmVyLndyaXRlQnVmZmVyKFBMUF9URVJNSU5BVE9SKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQWlGLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRWpGLE1BQU1HLGVBQWUsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckYsTUFBTUMsY0FBYyxHQUFHRixNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0UsZUFBZUEsQ0FBQ0MsS0FBYyxFQUFtQztFQUMvRSxPQUFPQSxLQUFLLElBQUksSUFBSSxJQUFJLE9BQVFBLEtBQUssQ0FBMENDLE1BQU0sQ0FBQ0MsYUFBYSxDQUFDLEtBQUssVUFBVTtBQUNySDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLFNBQVNDLGFBQWFBLENBQUNDLE1BQThCLEVBQUVDLEtBQWEsRUFBRTtFQUMzRUQsTUFBTSxDQUFDRSxXQUFXLENBQUNYLGVBQWUsQ0FBQztFQUNuQyxJQUFJVSxLQUFLLENBQUNFLE1BQU0sR0FBRyxDQUFDLEVBQUU7SUFDcEJILE1BQU0sQ0FBQ0ksYUFBYSxDQUFDSCxLQUFLLENBQUNFLE1BQU0sQ0FBQztJQUNsQ0gsTUFBTSxDQUFDRSxXQUFXLENBQUNELEtBQUssQ0FBQztFQUMzQjtFQUNBRCxNQUFNLENBQUNFLFdBQVcsQ0FBQ1IsY0FBYyxDQUFDO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLGdCQUFpQlcsY0FBY0EsQ0FBQ0wsTUFBOEIsRUFBRU0sTUFBOEIsRUFBRUMsTUFBa0MsRUFBOEI7RUFDcktQLE1BQU0sQ0FBQ0UsV0FBVyxDQUFDWCxlQUFlLENBQUM7RUFFbkMsV0FBVyxNQUFNaUIsS0FBSyxJQUFJRixNQUFNLEVBQUU7SUFDaEMsTUFBTUwsS0FBSyxHQUFHTSxNQUFNLENBQUNDLEtBQUssQ0FBQzs7SUFFM0I7SUFDQSxJQUFJUCxLQUFLLENBQUNFLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDdEI7SUFDRjtJQUVBSCxNQUFNLENBQUNJLGFBQWEsQ0FBQ0gsS0FBSyxDQUFDRSxNQUFNLENBQUM7SUFDbENILE1BQU0sQ0FBQ0UsV0FBVyxDQUFDRCxLQUFLLENBQUM7SUFFekIsSUFBSUQsTUFBTSxDQUFDRyxNQUFNLElBQUlNLCtCQUFzQixDQUFDQyxVQUFVLEVBQUU7TUFDdEQsS0FBSztJQUNQO0VBQ0Y7RUFFQVYsTUFBTSxDQUFDRSxXQUFXLENBQUNSLGNBQWMsQ0FBQztBQUNwQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plp-stream.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","e","__esModule","default","UNKNOWN_PLP_LEN","Buffer","from","PLP_TERMINATOR","isAsyncIterable","value","Symbol","asyncIterator","writePlpValue","buffer","bytes","writeBuffer","length","writeUInt32LE","writePlpStream","source","encode","chunk","WritableTrackingBuffer","CHUNK_SIZE"],"sources":["../../src/data-types/plp-stream.ts"],"sourcesContent":["import WritableTrackingBuffer from '../tracking-buffer/writable-tracking-buffer';\n\nconst UNKNOWN_PLP_LEN = Buffer.from([0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]);\nconst PLP_TERMINATOR = Buffer.from([0x00, 0x00, 0x00, 0x00]);\n\n/**\n * A value that is read while the request is written, rather than being fully\n * in memory: the `max` text and binary types accept an async iterable of\n * chunks (strings or buffers) here.\n */\nexport function isAsyncIterable(value: unknown): value is AsyncIterable<unknown> {\n return value != null && typeof (value as { [Symbol.asyncIterator]?: unknown })[Symbol.asyncIterator] === 'function';\n}\n\n/**\n * Writes an in-memory PLP value into `buffer`: the unknown-length marker,\n * the bytes as one chunk if there are any, then the terminator.\n */\nexport function writePlpValue(buffer: WritableTrackingBuffer, bytes: Buffer) {\n buffer.writeBuffer(UNKNOWN_PLP_LEN);\n if (bytes.length > 0) {\n buffer.writeUInt32LE(bytes.length);\n buffer.writeBuffer(bytes);\n }\n buffer.writeBuffer(PLP_TERMINATOR);\n}\n\n/**\n * Writes a PLP value read from `source` into `buffer`: the unknown-length\n * marker, then one length-prefixed chunk per non-empty encoded piece, then\n * the terminator. Yields whenever the buffer holds a chunk's worth, as the\n * rest of a `DataType.writeValue` promises.\n */\nexport async function * writePlpStream(buffer: WritableTrackingBuffer, source: AsyncIterable<unknown>, encode: (chunk: unknown) => Buffer): AsyncGenerator<void, void> {\n buffer.writeBuffer(UNKNOWN_PLP_LEN);\n\n for await (const chunk of source) {\n const bytes = encode(chunk);\n\n // A zero-length PLP chunk would be read as the terminator.\n if (bytes.length === 0) {\n continue;\n }\n\n buffer.writeUInt32LE(bytes.length);\n buffer.writeBuffer(bytes);\n\n if (buffer.length >= WritableTrackingBuffer.CHUNK_SIZE) {\n yield;\n }\n }\n\n buffer.writeBuffer(PLP_TERMINATOR);\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAiF,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEjF,MAAMG,eAAe,GAAGC,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrF,MAAMC,cAAc,GAAGF,MAAM,CAACC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACO,SAASE,eAAeA,CAACC,KAAc,EAAmC;EAC/E,OAAOA,KAAK,IAAI,IAAI,IAAI,OAAQA,KAAK,CAA0CC,MAAM,CAACC,aAAa,CAAC,KAAK,UAAU;AACrH;;AAEA;AACA;AACA;AACA;AACO,SAASC,aAAaA,CAACC,MAA8B,EAAEC,KAAa,EAAE;EAC3ED,MAAM,CAACE,WAAW,CAACX,eAAe,CAAC;EACnC,IAAIU,KAAK,CAACE,MAAM,GAAG,CAAC,EAAE;IACpBH,MAAM,CAACI,aAAa,CAACH,KAAK,CAACE,MAAM,CAAC;IAClCH,MAAM,CAACE,WAAW,CAACD,KAAK,CAAC;EAC3B;EACAD,MAAM,CAACE,WAAW,CAACR,cAAc,CAAC;AACpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,gBAAiBW,cAAcA,CAACL,MAA8B,EAAEM,MAA8B,EAAEC,MAAkC,EAA8B;EACrKP,MAAM,CAACE,WAAW,CAACX,eAAe,CAAC;EAEnC,WAAW,MAAMiB,KAAK,IAAIF,MAAM,EAAE;IAChC,MAAML,KAAK,GAAGM,MAAM,CAACC,KAAK,CAAC;;IAE3B;IACA,IAAIP,KAAK,CAACE,MAAM,KAAK,CAAC,EAAE;MACtB;IACF;IAEAH,MAAM,CAACI,aAAa,CAACH,KAAK,CAACE,MAAM,CAAC;IAClCH,MAAM,CAACE,WAAW,CAACD,KAAK,CAAC;IAEzB,IAAID,MAAM,CAACG,MAAM,IAAIM,+BAAsB,CAACC,UAAU,EAAE;MACtD,KAAK;IACP;EACF;EAEAV,MAAM,CAACE,WAAW,CAACR,cAAc,CAAC;AACpC","ignoreList":[]}
|
package/lib/data-types/real.js
CHANGED
|
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _floatn = _interopRequireDefault(require("./floatn"));
|
|
8
8
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
-
const
|
|
10
|
-
const DATA_LENGTH = Buffer.from([0x04]);
|
|
9
|
+
const TYPE_INFO = Buffer.from([_floatn.default.id, 0x04]);
|
|
11
10
|
const Real = {
|
|
12
11
|
id: 0x3B,
|
|
13
12
|
type: 'FLT4',
|
|
@@ -15,22 +14,17 @@ const Real = {
|
|
|
15
14
|
declaration: function () {
|
|
16
15
|
return 'real';
|
|
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
|
-
|
|
32
|
-
buffer.writeFloatLE(
|
|
33
|
-
yield buffer;
|
|
26
|
+
buffer.writeUInt8(0x04);
|
|
27
|
+
buffer.writeFloatLE(value);
|
|
34
28
|
},
|
|
35
29
|
validate: function (value) {
|
|
36
30
|
if (value == null) {
|
|
@@ -45,4 +39,4 @@ const Real = {
|
|
|
45
39
|
};
|
|
46
40
|
var _default = exports.default = Real;
|
|
47
41
|
module.exports = Real;
|
|
48
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZmxvYXRuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJUWVBFX0lORk8iLCJCdWZmZXIiLCJmcm9tIiwiRmxvYXROIiwiaWQiLCJSZWFsIiwidHlwZSIsIm5hbWUiLCJkZWNsYXJhdGlvbiIsIndyaXRlVHlwZUluZm8iLCJidWZmZXIiLCJ3cml0ZUJ1ZmZlciIsIndyaXRlVmFsdWUiLCJwYXJhbWV0ZXIiLCJ2YWx1ZSIsIndyaXRlVUludDgiLCJ3cml0ZUZsb2F0TEUiLCJ2YWxpZGF0ZSIsInBhcnNlRmxvYXQiLCJpc05hTiIsIlR5cGVFcnJvciIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3JlYWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgRmxvYXROIGZyb20gJy4vZmxvYXRuJztcblxuY29uc3QgVFlQRV9JTkZPID0gQnVmZmVyLmZyb20oW0Zsb2F0Ti5pZCwgMHgwNF0pO1xuXG5jb25zdCBSZWFsOiBEYXRhVHlwZSA9IHtcbiAgaWQ6IDB4M0IsXG4gIHR5cGU6ICdGTFQ0JyxcbiAgbmFtZTogJ1JlYWwnLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gJ3JlYWwnO1xuICB9LFxuXG4gIHdyaXRlVHlwZUluZm8oYnVmZmVyKSB7XG4gICAgYnVmZmVyLndyaXRlQnVmZmVyKFRZUEVfSU5GTyk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZShidWZmZXIsIHBhcmFtZXRlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIG51bWJlciB8IG51bGw7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDQpO1xuICAgIGJ1ZmZlci53cml0ZUZsb2F0TEUodmFsdWUpO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IG51bGwgfCBudW1iZXIge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIG51bWJlci4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSZWFsO1xubW9kdWxlLmV4cG9ydHMgPSBSZWFsO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBOEIsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFOUIsTUFBTUcsU0FBUyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDQyxlQUFNLENBQUNDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVoRCxNQUFNQyxJQUFjLEdBQUc7RUFDckJELEVBQUUsRUFBRSxJQUFJO0VBQ1JFLElBQUksRUFBRSxNQUFNO0VBQ1pDLElBQUksRUFBRSxNQUFNO0VBRVpDLFdBQVcsRUFBRSxTQUFBQSxDQUFBLEVBQVc7SUFDdEIsT0FBTyxNQUFNO0VBQ2YsQ0FBQztFQUVEQyxhQUFhQSxDQUFDQyxNQUFNLEVBQUU7SUFDcEJBLE1BQU0sQ0FBQ0MsV0FBVyxDQUFDWCxTQUFTLENBQUM7RUFDL0IsQ0FBQztFQUVEWSxVQUFVQSxDQUFDRixNQUFNLEVBQUVHLFNBQVMsRUFBRTtJQUM1QixNQUFNQyxLQUFLLEdBQUdELFNBQVMsQ0FBQ0MsS0FBc0I7SUFDOUMsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQkosTUFBTSxDQUFDSyxVQUFVLENBQUMsSUFBSSxDQUFDO01BQ3ZCO0lBQ0Y7SUFFQUwsTUFBTSxDQUFDSyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ3ZCTCxNQUFNLENBQUNNLFlBQVksQ0FBQ0YsS0FBSyxDQUFDO0VBQzVCLENBQUM7RUFFREcsUUFBUSxFQUFFLFNBQUFBLENBQVNILEtBQUssRUFBaUI7SUFDdkMsSUFBSUEsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPLElBQUk7SUFDYjtJQUNBQSxLQUFLLEdBQUdJLFVBQVUsQ0FBQ0osS0FBSyxDQUFDO0lBQ3pCLElBQUlLLEtBQUssQ0FBQ0wsS0FBSyxDQUFDLEVBQUU7TUFDaEIsTUFBTSxJQUFJTSxTQUFTLENBQUMsaUJBQWlCLENBQUM7SUFDeEM7SUFDQSxPQUFPTixLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQU8sUUFBQSxHQUFBQyxPQUFBLENBQUF2QixPQUFBLEdBRWFNLElBQUk7QUFDbkJrQixNQUFNLENBQUNELE9BQU8sR0FBR2pCLElBQUkiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"real.js","names":["_floatn","_interopRequireDefault","require","e","__esModule","default","
|
|
1
|
+
{"version":3,"file":"real.js","names":["_floatn","_interopRequireDefault","require","e","__esModule","default","TYPE_INFO","Buffer","from","FloatN","id","Real","type","name","declaration","writeTypeInfo","buffer","writeBuffer","writeValue","parameter","value","writeUInt8","writeFloatLE","validate","parseFloat","isNaN","TypeError","_default","exports","module"],"sources":["../../src/data-types/real.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport FloatN from './floatn';\n\nconst TYPE_INFO = Buffer.from([FloatN.id, 0x04]);\n\nconst Real: DataType = {\n id: 0x3B,\n type: 'FLT4',\n name: 'Real',\n\n declaration: function() {\n return 'real';\n },\n\n writeTypeInfo(buffer) {\n buffer.writeBuffer(TYPE_INFO);\n },\n\n writeValue(buffer, parameter) {\n const value = parameter.value as number | null;\n if (value == null) {\n buffer.writeUInt8(0x00);\n return;\n }\n\n buffer.writeUInt8(0x04);\n buffer.writeFloatLE(value);\n },\n\n validate: function(value): null | number {\n if (value == null) {\n return null;\n }\n value = parseFloat(value);\n if (isNaN(value)) {\n throw new TypeError('Invalid number.');\n }\n return value;\n }\n};\n\nexport default Real;\nmodule.exports = Real;\n"],"mappings":";;;;;;AACA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8B,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9B,MAAMG,SAAS,GAAGC,MAAM,CAACC,IAAI,CAAC,CAACC,eAAM,CAACC,EAAE,EAAE,IAAI,CAAC,CAAC;AAEhD,MAAMC,IAAc,GAAG;EACrBD,EAAE,EAAE,IAAI;EACRE,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EAEZC,WAAW,EAAE,SAAAA,CAAA,EAAW;IACtB,OAAO,MAAM;EACf,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,KAAsB;IAC9C,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjBJ,MAAM,CAACK,UAAU,CAAC,IAAI,CAAC;MACvB;IACF;IAEAL,MAAM,CAACK,UAAU,CAAC,IAAI,CAAC;IACvBL,MAAM,CAACM,YAAY,CAACF,KAAK,CAAC;EAC5B,CAAC;EAEDG,QAAQ,EAAE,SAAAA,CAASH,KAAK,EAAiB;IACvC,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IACAA,KAAK,GAAGI,UAAU,CAACJ,KAAK,CAAC;IACzB,IAAIK,KAAK,CAACL,KAAK,CAAC,EAAE;MAChB,MAAM,IAAIM,SAAS,CAAC,iBAAiB,CAAC;IACxC;IACA,OAAON,KAAK;EACd;AACF,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAvB,OAAA,GAEaM,IAAI;AACnBkB,MAAM,CAACD,OAAO,GAAGjB,IAAI","ignoreList":[]}
|
|
@@ -8,8 +8,7 @@ var _datetimen = _interopRequireDefault(require("./datetimen"));
|
|
|
8
8
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
const EPOCH_DATE = new Date(1900, 0, 1);
|
|
10
10
|
const UTC_EPOCH_DATE = new Date(Date.UTC(1900, 0, 1));
|
|
11
|
-
const
|
|
12
|
-
const NULL_LENGTH = Buffer.from([0x00]);
|
|
11
|
+
const TYPE_INFO = Buffer.from([_datetimen.default.id, 0x04]);
|
|
13
12
|
const SmallDateTime = {
|
|
14
13
|
id: 0x3A,
|
|
15
14
|
type: 'DATETIM4',
|
|
@@ -17,32 +16,27 @@ const SmallDateTime = {
|
|
|
17
16
|
declaration: function () {
|
|
18
17
|
return 'smalldatetime';
|
|
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
|
-
let days, dstDiff, minutes;
|
|
28
|
+
let days, minutes;
|
|
35
29
|
if (options.useUTC) {
|
|
36
|
-
days = Math.floor((
|
|
37
|
-
minutes =
|
|
30
|
+
days = Math.floor((value.getTime() - UTC_EPOCH_DATE.getTime()) / (1000 * 60 * 60 * 24));
|
|
31
|
+
minutes = value.getUTCHours() * 60 + value.getUTCMinutes();
|
|
38
32
|
} else {
|
|
39
|
-
dstDiff = -(
|
|
40
|
-
days = Math.floor((
|
|
41
|
-
minutes =
|
|
33
|
+
const dstDiff = -(value.getTimezoneOffset() - EPOCH_DATE.getTimezoneOffset()) * 60 * 1000;
|
|
34
|
+
days = Math.floor((value.getTime() - EPOCH_DATE.getTime() + dstDiff) / (1000 * 60 * 60 * 24));
|
|
35
|
+
minutes = value.getHours() * 60 + value.getMinutes();
|
|
42
36
|
}
|
|
43
|
-
buffer.
|
|
44
|
-
buffer.writeUInt16LE(
|
|
45
|
-
|
|
37
|
+
buffer.writeUInt8(0x04);
|
|
38
|
+
buffer.writeUInt16LE(days);
|
|
39
|
+
buffer.writeUInt16LE(minutes);
|
|
46
40
|
},
|
|
47
41
|
validate: function (value, collation, options) {
|
|
48
42
|
if (value == null) {
|
|
@@ -80,4 +74,4 @@ const SmallDateTime = {
|
|
|
80
74
|
};
|
|
81
75
|
var _default = exports.default = SmallDateTime;
|
|
82
76
|
module.exports = SmallDateTime;
|
|
83
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZGF0ZXRpbWVuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJFUE9DSF9EQVRFIiwiRGF0ZSIsIlVUQ19FUE9DSF9EQVRFIiwiVVRDIiwiVFlQRV9JTkZPIiwiQnVmZmVyIiwiZnJvbSIsIkRhdGVUaW1lTiIsImlkIiwiU21hbGxEYXRlVGltZSIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJ3cml0ZVR5cGVJbmZvIiwiYnVmZmVyIiwid3JpdGVCdWZmZXIiLCJ3cml0ZVZhbHVlIiwicGFyYW1ldGVyIiwib3B0aW9ucyIsInZhbHVlIiwid3JpdGVVSW50OCIsImRheXMiLCJtaW51dGVzIiwidXNlVVRDIiwiTWF0aCIsImZsb29yIiwiZ2V0VGltZSIsImdldFVUQ0hvdXJzIiwiZ2V0VVRDTWludXRlcyIsImRzdERpZmYiLCJnZXRUaW1lem9uZU9mZnNldCIsImdldEhvdXJzIiwiZ2V0TWludXRlcyIsIndyaXRlVUludDE2TEUiLCJ2YWxpZGF0ZSIsImNvbGxhdGlvbiIsInBhcnNlIiwieWVhciIsIm1vbnRoIiwiZGF0ZSIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0VVRDTW9udGgiLCJnZXRVVENEYXRlIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJUeXBlRXJyb3IiLCJpc05hTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3NtYWxsZGF0ZXRpbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgRGF0ZVRpbWVOIGZyb20gJy4vZGF0ZXRpbWVuJztcblxuY29uc3QgRVBPQ0hfREFURSA9IG5ldyBEYXRlKDE5MDAsIDAsIDEpO1xuY29uc3QgVVRDX0VQT0NIX0RBVEUgPSBuZXcgRGF0ZShEYXRlLlVUQygxOTAwLCAwLCAxKSk7XG5cbmNvbnN0IFRZUEVfSU5GTyA9IEJ1ZmZlci5mcm9tKFtEYXRlVGltZU4uaWQsIDB4MDRdKTtcblxuY29uc3QgU21hbGxEYXRlVGltZTogRGF0YVR5cGUgPSB7XG4gIGlkOiAweDNBLFxuICB0eXBlOiAnREFURVRJTTQnLFxuICBuYW1lOiAnU21hbGxEYXRlVGltZScsXG5cbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAnc21hbGxkYXRldGltZSc7XG4gIH0sXG5cbiAgd3JpdGVUeXBlSW5mbyhidWZmZXIpIHtcbiAgICBidWZmZXIud3JpdGVCdWZmZXIoVFlQRV9JTkZPKTtcbiAgfSxcblxuICB3cml0ZVZhbHVlKGJ1ZmZlciwgcGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgRGF0ZSB8IG51bGw7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQ4KDB4MDApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBkYXlzOiBudW1iZXIsIG1pbnV0ZXM6IG51bWJlcjtcbiAgICBpZiAob3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZS5nZXRUaW1lKCkgLSBVVENfRVBPQ0hfREFURS5nZXRUaW1lKCkpIC8gKDEwMDAgKiA2MCAqIDYwICogMjQpKTtcbiAgICAgIG1pbnV0ZXMgPSAodmFsdWUuZ2V0VVRDSG91cnMoKSAqIDYwKSArIHZhbHVlLmdldFVUQ01pbnV0ZXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZHN0RGlmZiA9IC0odmFsdWUuZ2V0VGltZXpvbmVPZmZzZXQoKSAtIEVQT0NIX0RBVEUuZ2V0VGltZXpvbmVPZmZzZXQoKSkgKiA2MCAqIDEwMDA7XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcigodmFsdWUuZ2V0VGltZSgpIC0gRVBPQ0hfREFURS5nZXRUaW1lKCkgKyBkc3REaWZmKSAvICgxMDAwICogNjAgKiA2MCAqIDI0KSk7XG4gICAgICBtaW51dGVzID0gKHZhbHVlLmdldEhvdXJzKCkgKiA2MCkgKyB2YWx1ZS5nZXRNaW51dGVzKCk7XG4gICAgfVxuXG4gICAgYnVmZmVyLndyaXRlVUludDgoMHgwNCk7XG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUoZGF5cyk7XG4gICAgYnVmZmVyLndyaXRlVUludDE2TEUobWludXRlcyk7XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlLCBjb2xsYXRpb24sIG9wdGlvbnMpOiBudWxsIHwgRGF0ZSB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgYXMgRGF0ZTtcblxuICAgIGxldCB5ZWFyLCBtb250aCwgZGF0ZTtcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnVzZVVUQykge1xuICAgICAgeWVhciA9IHZhbHVlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgICBtb250aCA9IHZhbHVlLmdldFVUQ01vbnRoKCk7XG4gICAgICBkYXRlID0gdmFsdWUuZ2V0VVRDRGF0ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0RnVsbFllYXIoKTtcbiAgICAgIG1vbnRoID0gdmFsdWUuZ2V0TW9udGgoKTtcbiAgICAgIGRhdGUgPSB2YWx1ZS5nZXREYXRlKCk7XG4gICAgfVxuXG4gICAgaWYgKHllYXIgPCAxOTAwIHx8IHllYXIgPiAyMDc5KSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPdXQgb2YgcmFuZ2UuJyk7XG4gICAgfVxuXG4gICAgaWYgKHllYXIgPT09IDIwNzkpIHtcbiAgICAgIC8vIE1vbnRoIGlzIDAtaW5kZXhlZCwgaS5lLiBKYW4gPSAwLCBEZWMgPSAxMVxuICAgICAgLy8gU2VlOiBodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvc3FsL3Qtc3FsL2RhdGEtdHlwZXMvc21hbGxkYXRldGltZS10cmFuc2FjdC1zcWw/dmlldz1zcWwtc2VydmVyLXZlcjE2XG4gICAgICBpZiAobW9udGggPiA1IHx8IChtb250aCA9PT0gNSAmJiBkYXRlID4gNikpIHtcbiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3V0IG9mIHJhbmdlLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc05hTih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgZGF0ZS4nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNtYWxsRGF0ZVRpbWU7XG5tb2R1bGUuZXhwb3J0cyA9IFNtYWxsRGF0ZVRpbWU7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUFvQyxTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVwQyxNQUFNRyxVQUFVLEdBQUcsSUFBSUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZDLE1BQU1DLGNBQWMsR0FBRyxJQUFJRCxJQUFJLENBQUNBLElBQUksQ0FBQ0UsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFckQsTUFBTUMsU0FBUyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDQyxrQkFBUyxDQUFDQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFbkQsTUFBTUMsYUFBdUIsR0FBRztFQUM5QkQsRUFBRSxFQUFFLElBQUk7RUFDUkUsSUFBSSxFQUFFLFVBQVU7RUFDaEJDLElB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smalldatetime.js","names":["_datetimen","_interopRequireDefault","require","e","__esModule","default","EPOCH_DATE","Date","UTC_EPOCH_DATE","UTC","
|
|
1
|
+
{"version":3,"file":"smalldatetime.js","names":["_datetimen","_interopRequireDefault","require","e","__esModule","default","EPOCH_DATE","Date","UTC_EPOCH_DATE","UTC","TYPE_INFO","Buffer","from","DateTimeN","id","SmallDateTime","type","name","declaration","writeTypeInfo","buffer","writeBuffer","writeValue","parameter","options","value","writeUInt8","days","minutes","useUTC","Math","floor","getTime","getUTCHours","getUTCMinutes","dstDiff","getTimezoneOffset","getHours","getMinutes","writeUInt16LE","validate","collation","parse","year","month","date","getUTCFullYear","getUTCMonth","getUTCDate","getFullYear","getMonth","getDate","TypeError","isNaN","_default","exports","module"],"sources":["../../src/data-types/smalldatetime.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport DateTimeN from './datetimen';\n\nconst EPOCH_DATE = new Date(1900, 0, 1);\nconst UTC_EPOCH_DATE = new Date(Date.UTC(1900, 0, 1));\n\nconst TYPE_INFO = Buffer.from([DateTimeN.id, 0x04]);\n\nconst SmallDateTime: DataType = {\n id: 0x3A,\n type: 'DATETIM4',\n name: 'SmallDateTime',\n\n declaration: function() {\n return 'smalldatetime';\n },\n\n writeTypeInfo(buffer) {\n buffer.writeBuffer(TYPE_INFO);\n },\n\n writeValue(buffer, parameter, options) {\n const value = parameter.value as Date | null;\n if (value == null) {\n buffer.writeUInt8(0x00);\n return;\n }\n\n let days: number, minutes: number;\n if (options.useUTC) {\n days = Math.floor((value.getTime() - UTC_EPOCH_DATE.getTime()) / (1000 * 60 * 60 * 24));\n minutes = (value.getUTCHours() * 60) + value.getUTCMinutes();\n } else {\n const dstDiff = -(value.getTimezoneOffset() - EPOCH_DATE.getTimezoneOffset()) * 60 * 1000;\n days = Math.floor((value.getTime() - EPOCH_DATE.getTime() + dstDiff) / (1000 * 60 * 60 * 24));\n minutes = (value.getHours() * 60) + value.getMinutes();\n }\n\n buffer.writeUInt8(0x04);\n buffer.writeUInt16LE(days);\n buffer.writeUInt16LE(minutes);\n },\n\n validate: function(value, collation, options): null | Date {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n value = value as Date;\n\n let year, month, date;\n if (options && options.useUTC) {\n year = value.getUTCFullYear();\n month = value.getUTCMonth();\n date = value.getUTCDate();\n } else {\n year = value.getFullYear();\n month = value.getMonth();\n date = value.getDate();\n }\n\n if (year < 1900 || year > 2079) {\n throw new TypeError('Out of range.');\n }\n\n if (year === 2079) {\n // Month is 0-indexed, i.e. Jan = 0, Dec = 11\n // See: https://learn.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql?view=sql-server-ver16\n if (month > 5 || (month === 5 && date > 6)) {\n throw new TypeError('Out of range.');\n }\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default SmallDateTime;\nmodule.exports = SmallDateTime;\n"],"mappings":"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","ignoreList":[]}
|