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,18 @@ 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
|
+
function requireBuffer(chunk) {
|
|
14
|
+
if (!Buffer.isBuffer(chunk)) {
|
|
15
|
+
throw new TypeError('Invalid buffer.');
|
|
16
|
+
}
|
|
17
|
+
return chunk;
|
|
18
|
+
}
|
|
12
19
|
const VarBinary = {
|
|
13
20
|
id: 0xA5,
|
|
14
21
|
type: 'BIGVARBIN',
|
|
@@ -16,6 +23,9 @@ const VarBinary = {
|
|
|
16
23
|
maximumLength: 8000,
|
|
17
24
|
declaration: function (parameter) {
|
|
18
25
|
const value = parameter.value; // Temporary solution. Remove 'any' later.
|
|
26
|
+
if ((0, _plpStream.isAsyncIterable)(value)) {
|
|
27
|
+
return 'varbinary(max)';
|
|
28
|
+
}
|
|
19
29
|
let length;
|
|
20
30
|
if (parameter.length) {
|
|
21
31
|
length = parameter.length;
|
|
@@ -42,64 +52,44 @@ const VarBinary = {
|
|
|
42
52
|
return this.maximumLength;
|
|
43
53
|
}
|
|
44
54
|
},
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
buffer.writeUInt8(this.id, 0);
|
|
55
|
+
writeTypeInfo(buffer, parameter) {
|
|
56
|
+
buffer.writeUInt8(this.id);
|
|
48
57
|
if (parameter.length <= this.maximumLength) {
|
|
49
|
-
buffer.writeUInt16LE(parameter.length
|
|
58
|
+
buffer.writeUInt16LE(parameter.length);
|
|
50
59
|
} else {
|
|
51
|
-
buffer.writeUInt16LE(MAX
|
|
60
|
+
buffer.writeUInt16LE(MAX);
|
|
52
61
|
}
|
|
53
|
-
return buffer;
|
|
54
62
|
},
|
|
55
|
-
|
|
63
|
+
writeValue(buffer, parameter) {
|
|
56
64
|
if (parameter.value == null) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
} else {
|
|
60
|
-
return MAX_NULL_LENGTH;
|
|
61
|
-
}
|
|
65
|
+
buffer.writeBuffer(parameter.length <= this.maximumLength ? NULL_LENGTH : MAX_NULL_LENGTH);
|
|
66
|
+
return;
|
|
62
67
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
68
|
+
|
|
69
|
+
// Read from its source while the request is written; `resolve` declared
|
|
70
|
+
// it as `varbinary(max)`.
|
|
71
|
+
if ((0, _plpStream.isAsyncIterable)(parameter.value)) {
|
|
72
|
+
return (0, _plpStream.writePlpStream)(buffer, parameter.value, requireBuffer);
|
|
66
73
|
}
|
|
67
|
-
const
|
|
74
|
+
const value = Buffer.isBuffer(parameter.value) ? parameter.value : parameter.value.toString();
|
|
75
|
+
const length = typeof value === 'string' ? value.length * 2 : value.length;
|
|
68
76
|
if (parameter.length <= this.maximumLength) {
|
|
69
|
-
|
|
70
|
-
buffer.writeUInt16LE(length, 0);
|
|
71
|
-
return buffer;
|
|
77
|
+
buffer.writeUInt16LE(length);
|
|
72
78
|
} else {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (parameter.value == null) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
let value = parameter.value;
|
|
81
|
-
if (parameter.length <= this.maximumLength) {
|
|
82
|
-
if (Buffer.isBuffer(value)) {
|
|
83
|
-
yield value;
|
|
84
|
-
} else {
|
|
85
|
-
yield Buffer.from(value.toString(), 'ucs2');
|
|
79
|
+
buffer.writeBuffer(UNKNOWN_PLP_LEN);
|
|
80
|
+
if (length === 0) {
|
|
81
|
+
buffer.writeBuffer(PLP_TERMINATOR);
|
|
82
|
+
return;
|
|
86
83
|
}
|
|
84
|
+
buffer.writeUInt32LE(length);
|
|
85
|
+
}
|
|
86
|
+
if (typeof value === 'string') {
|
|
87
|
+
buffer.writeString(value, 'ucs2');
|
|
87
88
|
} else {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if (length > 0) {
|
|
93
|
-
const buffer = Buffer.alloc(4);
|
|
94
|
-
buffer.writeUInt32LE(length, 0);
|
|
95
|
-
yield buffer;
|
|
96
|
-
if (Buffer.isBuffer(value)) {
|
|
97
|
-
yield value;
|
|
98
|
-
} else {
|
|
99
|
-
yield Buffer.from(value, 'ucs2');
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
yield PLP_TERMINATOR;
|
|
89
|
+
buffer.writeBuffer(value);
|
|
90
|
+
}
|
|
91
|
+
if (parameter.length > this.maximumLength) {
|
|
92
|
+
buffer.writeBuffer(PLP_TERMINATOR);
|
|
103
93
|
}
|
|
104
94
|
},
|
|
105
95
|
validate: function (value) {
|
|
@@ -110,8 +100,28 @@ const VarBinary = {
|
|
|
110
100
|
throw new TypeError('Invalid buffer.');
|
|
111
101
|
}
|
|
112
102
|
return value;
|
|
103
|
+
},
|
|
104
|
+
resolve(parameter) {
|
|
105
|
+
if ((0, _plpStream.isAsyncIterable)(parameter.value)) {
|
|
106
|
+
// The value is read from its source while the request is written. Its
|
|
107
|
+
// length is not known up front, so it is sent as `varbinary(max)`;
|
|
108
|
+
// an explicitly specified `length` is deliberately overridden.
|
|
109
|
+
return {
|
|
110
|
+
value: parameter.value,
|
|
111
|
+
length: MAX
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
const value = this.validate(parameter.value, undefined);
|
|
115
|
+
const data = {
|
|
116
|
+
value
|
|
117
|
+
};
|
|
118
|
+
data.length = parameter.length != null ? parameter.length : this.resolveLength({
|
|
119
|
+
...parameter,
|
|
120
|
+
value
|
|
121
|
+
});
|
|
122
|
+
return data;
|
|
113
123
|
}
|
|
114
124
|
};
|
|
115
125
|
var _default = exports.default = VarBinary;
|
|
116
126
|
module.exports = VarBinary;
|
|
117
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVgiLCJVTktOT1dOX1BMUF9MRU4iLCJCdWZmZXIiLCJmcm9tIiwiUExQX1RFUk1JTkFUT1IiLCJOVUxMX0xFTkdUSCIsIk1BWF9OVUxMX0xFTkdUSCIsIlZhckJpbmFyeSIsImlkIiwidHlwZSIsIm5hbWUiLCJtYXhpbXVtTGVuZ3RoIiwiZGVjbGFyYXRpb24iLCJwYXJhbWV0ZXIiLCJ2YWx1ZSIsImxlbmd0aCIsIm91dHB1dCIsInJlc29sdmVMZW5ndGgiLCJnZW5lcmF0ZVR5cGVJbmZvIiwiYnVmZmVyIiwiYWxsb2MiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVVSW50MTZMRSIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsImlzQnVmZmVyIiwidG9TdHJpbmciLCJieXRlTGVuZ3RoIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwid3JpdGVVSW50MzJMRSIsInZhbGlkYXRlIiwiVHlwZUVycm9yIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3ZhcmJpbmFyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERhdGFUeXBlIH0gZnJvbSAnLi4vZGF0YS10eXBlJztcblxuY29uc3QgTUFYID0gKDEgPDwgMTYpIC0gMTtcbmNvbnN0IFVOS05PV05fUExQX0xFTiA9IEJ1ZmZlci5mcm9tKFsweGZlLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmXSk7XG5jb25zdCBQTFBfVEVSTUlOQVRPUiA9IEJ1ZmZlci5mcm9tKFsweDAwLCAweDAwLCAweDAwLCAweDAwXSk7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkZdKTtcbmNvbnN0IE1BWF9OVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGXSk7XG5cbmNvbnN0IFZhckJpbmFyeTogeyBtYXhpbXVtTGVuZ3RoOiBudW1iZXIgfSAmIERhdGFUeXBlID0ge1xuICBpZDogMHhBNSxcbiAgdHlwZTogJ0JJR1ZBUkJJTicsXG4gIG5hbWU6ICdWYXJCaW5hcnknLFxuICBtYXhpbXVtTGVuZ3RoOiA4MDAwLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBhbnk7IC8vIFRlbXBvcmFyeSBzb2x1dGlvbi4gUmVtb3ZlICdhbnknIGxhdGVyLlxuICAgIGxldCBsZW5ndGg7XG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGgpIHtcbiAgICAgIGxlbmd0aCA9IHBhcmFtZXRlci5sZW5ndGg7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICBsZW5ndGggPSB2YWx1ZS5sZW5ndGggfHwgMTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBudWxsICYmICFwYXJhbWV0ZXIub3V0cHV0KSB7XG4gICAgICBsZW5ndGggPSAxO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZW5ndGggPSB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKGxlbmd0aCA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIHJldHVybiAndmFyYmluYXJ5KCcgKyBsZW5ndGggKyAnKSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAndmFyYmluYXJ5KG1heCknO1xuICAgIH1cbiAgfSxcblxuICByZXNvbHZlTGVuZ3RoOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBhbnk7IC8vIFRlbXBvcmFyeSBzb2x1dGlvbi4gUmVtb3ZlICdhbnknIGxhdGVyLlxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbzogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDMpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQsIDApO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUocGFyYW1ldGVyLmxlbmd0aCEsIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShNQVgsIDEpO1xuICAgIH1cblxuICAgIHJldHVybiBidWZmZXI7XG4gIH0sXG5cbiAgZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW1ldGVyLCBvcHRpb25zKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBNQVhfTlVMTF9MRU5HVEg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlO1xuICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGNvbnN0IGxlbmd0aCA9IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbHVlLCAndWNzMicpO1xuXG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgY29uc3QgYnVmZmVyID0gQnVmZmVyLmFsbG9jKDIpO1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUobGVuZ3RoLCAwKTtcbiAgICAgIHJldHVybiBidWZmZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBVTktOT1dOX1BMUF9MRU47XG4gICAgfVxuICB9LFxuXG4gICogZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZTtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgeWllbGQgQnVmZmVyLmZyb20odmFsdWUudG9TdHJpbmcoKSwgJ3VjczInKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGVuZ3RoID0gQnVmZmVyLmJ5dGVMZW5ndGgodmFsdWUsICd1Y3MyJyk7XG5cbiAgICAgIGlmIChsZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg0KTtcbiAgICAgICAgYnVmZmVyLndyaXRlVUludDMyTEUobGVuZ3RoLCAwKTtcbiAgICAgICAgeWllbGQgYnVmZmVyO1xuXG4gICAgICAgIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICAgICAgeWllbGQgdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgeWllbGQgQnVmZmVyLmZyb20odmFsdWUsICd1Y3MyJyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgeWllbGQgUExQX1RFUk1JTkFUT1I7XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSk6IEJ1ZmZlciB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGJ1ZmZlci4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWYXJCaW5hcnk7XG5tb2R1bGUuZXhwb3J0cyA9IFZhckJpbmFyeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsTUFBTUEsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3pCLE1BQU1DLGVBQWUsR0FBR0MsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckYsTUFBTUMsY0FBYyxHQUFHRixNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRTVELE1BQU1FLFdBQVcsR0FBR0gsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0MsTUFBTUcsZUFBZSxHQUFHSixNQUFNLENBQUNDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVyRixNQUFNSSxTQUErQyxHQUFHO0VBQ3REQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsV0FB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
|
|
127
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGxwU3RyZWFtIiwicmVxdWlyZSIsIk1BWCIsIlVOS05PV05fUExQX0xFTiIsIkJ1ZmZlciIsImZyb20iLCJQTFBfVEVSTUlOQVRPUiIsIk5VTExfTEVOR1RIIiwiTUFYX05VTExfTEVOR1RIIiwicmVxdWlyZUJ1ZmZlciIsImNodW5rIiwiaXNCdWZmZXIiLCJUeXBlRXJyb3IiLCJWYXJCaW5hcnkiLCJpZCIsInR5cGUiLCJuYW1lIiwibWF4aW11bUxlbmd0aCIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwidmFsdWUiLCJpc0FzeW5jSXRlcmFibGUiLCJsZW5ndGgiLCJvdXRwdXQiLCJyZXNvbHZlTGVuZ3RoIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwid3JpdGVWYWx1ZSIsIndyaXRlQnVmZmVyIiwid3JpdGVQbHBTdHJlYW0iLCJ0b1N0cmluZyIsIndyaXRlVUludDMyTEUiLCJ3cml0ZVN0cmluZyIsInZhbGlkYXRlIiwicmVzb2x2ZSIsInVuZGVmaW5lZCIsImRhdGEiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvdmFyYmluYXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUsIHR5cGUgUGFyYW1ldGVyRGF0YSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBpc0FzeW5jSXRlcmFibGUsIHdyaXRlUGxwU3RyZWFtIH0gZnJvbSAnLi9wbHAtc3RyZWFtJztcblxuY29uc3QgTUFYID0gKDEgPDwgMTYpIC0gMTtcbmNvbnN0IFVOS05PV05fUExQX0xFTiA9IEJ1ZmZlci5mcm9tKFsweGZlLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmXSk7XG5jb25zdCBQTFBfVEVSTUlOQVRPUiA9IEJ1ZmZlci5mcm9tKFsweDAwLCAweDAwLCAweDAwLCAweDAwXSk7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkZdKTtcbmNvbnN0IE1BWF9OVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGXSk7XG5cbmZ1bmN0aW9uIHJlcXVpcmVCdWZmZXIoY2h1bms6IHVua25vd24pOiBCdWZmZXIge1xuICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihjaHVuaykpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGJ1ZmZlci4nKTtcbiAgfVxuICByZXR1cm4gY2h1bms7XG59XG5cbmNvbnN0IFZhckJpbmFyeTogeyBtYXhpbXVtTGVuZ3RoOiBudW1iZXIgfSAmIERhdGFUeXBlID0ge1xuICBpZDogMHhBNSxcbiAgdHlwZTogJ0JJR1ZBUkJJTicsXG4gIG5hbWU6ICdWYXJCaW5hcnknLFxuICBtYXhpbXVtTGVuZ3RoOiA4MDAwLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBhbnk7IC8vIFRlbXBvcmFyeSBzb2x1dGlvbi4gUmVtb3ZlICdhbnknIGxhdGVyLlxuICAgIGlmIChpc0FzeW5jSXRlcmFibGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gJ3ZhcmJpbmFyeShtYXgpJztcbiAgICB9XG5cbiAgICBsZXQgbGVuZ3RoO1xuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoKSB7XG4gICAgICBsZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoIHx8IDE7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCAmJiAhcGFyYW1ldGVyLm91dHB1dCkge1xuICAgICAgbGVuZ3RoID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGVuZ3RoID0gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cblxuICAgIGlmIChsZW5ndGggPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJ3ZhcmJpbmFyeSgnICsgbGVuZ3RoICsgJyknO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ3ZhcmJpbmFyeShtYXgpJztcbiAgICB9XG4gIH0sXG5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgYW55OyAvLyBUZW1wb3Jhcnkgc29sdXRpb24uIFJlbW92ZSAnYW55JyBsYXRlci5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1heGltdW1MZW5ndGg7XG4gICAgfVxuICB9LFxuXG4gIHdyaXRlVHlwZUluZm8oYnVmZmVyLCBwYXJhbWV0ZXIpIHtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkKTtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHBhcmFtZXRlci5sZW5ndGghKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUoTUFYKTtcbiAgICB9XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZShidWZmZXIsIHBhcmFtZXRlcikge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgYnVmZmVyLndyaXRlQnVmZmVyKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCA/IE5VTExfTEVOR1RIIDogTUFYX05VTExfTEVOR1RIKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZWFkIGZyb20gaXRzIHNvdXJjZSB3aGlsZSB0aGUgcmVxdWVzdCBpcyB3cml0dGVuOyBgcmVzb2x2ZWAgZGVjbGFyZWRcbiAgICAvLyBpdCBhcyBgdmFyYmluYXJ5KG1heClgLlxuICAgIGlmIChpc0FzeW5jSXRlcmFibGUocGFyYW1ldGVyLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHdyaXRlUGxwU3RyZWFtKGJ1ZmZlciwgcGFyYW1ldGVyLnZhbHVlLCByZXF1aXJlQnVmZmVyKTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IEJ1ZmZlci5pc0J1ZmZlcihwYXJhbWV0ZXIudmFsdWUpID8gcGFyYW1ldGVyLnZhbHVlIDogcGFyYW1ldGVyLnZhbHVlLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgbGVuZ3RoID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlLmxlbmd0aCAqIDIgOiB2YWx1ZS5sZW5ndGg7XG5cbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoKSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50MTZMRShsZW5ndGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXIud3JpdGVCdWZmZXIoVU5LTk9XTl9QTFBfTEVOKTtcbiAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgYnVmZmVyLndyaXRlQnVmZmVyKFBMUF9URVJNSU5BVE9SKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYnVmZmVyLndyaXRlVUludDMyTEUobGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgYnVmZmVyLndyaXRlU3RyaW5nKHZhbHVlLCAndWNzMicpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXIud3JpdGVCdWZmZXIodmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA+IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgYnVmZmVyLndyaXRlQnVmZmVyKFBMUF9URVJNSU5BVE9SKTtcbiAgICB9XG4gIH0sXG5cbiAgdmFsaWRhdGU6IGZ1bmN0aW9uKHZhbHVlKTogQnVmZmVyIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcih2YWx1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgYnVmZmVyLicpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH0sXG5cbiAgcmVzb2x2ZShwYXJhbWV0ZXIpIHtcbiAgICBpZiAoaXNBc3luY0l0ZXJhYmxlKHBhcmFtZXRlci52YWx1ZSkpIHtcbiAgICAgIC8vIFRoZSB2YWx1ZSBpcyByZWFkIGZyb20gaXRzIHNvdXJjZSB3aGlsZSB0aGUgcmVxdWVzdCBpcyB3cml0dGVuLiBJdHNcbiAgICAgIC8vIGxlbmd0aCBpcyBub3Qga25vd24gdXAgZnJvbnQsIHNvIGl0IGlzIHNlbnQgYXMgYHZhcmJpbmFyeShtYXgpYDtcbiAgICAgIC8vIGFuIGV4cGxpY2l0bHkgc3BlY2lmaWVkIGBsZW5ndGhgIGlzIGRlbGliZXJhdGVseSBvdmVycmlkZGVuLlxuICAgICAgcmV0dXJuIHsgdmFsdWU6IHBhcmFtZXRlci52YWx1ZSwgbGVuZ3RoOiBNQVggfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsaWRhdGUocGFyYW1ldGVyLnZhbHVlLCB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRhdGE6IFBhcmFtZXRlckRhdGEgPSB7IHZhbHVlIH07XG4gICAgZGF0YS5sZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwgPyBwYXJhbWV0ZXIubGVuZ3RoIDogdGhpcy5yZXNvbHZlTGVuZ3RoISh7IC4uLnBhcmFtZXRlciwgdmFsdWUgfSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbn07XG5c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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"varbinary.js","names":["MAX","UNKNOWN_PLP_LEN","Buffer","from","PLP_TERMINATOR","NULL_LENGTH","MAX_NULL_LENGTH","VarBinary","id","type","name","maximumLength","declaration","parameter","value","length","output","resolveLength","
|
|
1
|
+
{"version":3,"file":"varbinary.js","names":["_plpStream","require","MAX","UNKNOWN_PLP_LEN","Buffer","from","PLP_TERMINATOR","NULL_LENGTH","MAX_NULL_LENGTH","requireBuffer","chunk","isBuffer","TypeError","VarBinary","id","type","name","maximumLength","declaration","parameter","value","isAsyncIterable","length","output","resolveLength","writeTypeInfo","buffer","writeUInt8","writeUInt16LE","writeValue","writeBuffer","writePlpStream","toString","writeUInt32LE","writeString","validate","resolve","undefined","data","_default","exports","default","module"],"sources":["../../src/data-types/varbinary.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]);\n\nfunction requireBuffer(chunk: unknown): Buffer {\n if (!Buffer.isBuffer(chunk)) {\n throw new TypeError('Invalid buffer.');\n }\n return chunk;\n}\n\nconst VarBinary: { maximumLength: number } & DataType = {\n id: 0xA5,\n type: 'BIGVARBIN',\n name: 'VarBinary',\n maximumLength: 8000,\n\n declaration: function(parameter) {\n const value = parameter.value as any; // Temporary solution. Remove 'any' later.\n if (isAsyncIterable(value)) {\n return 'varbinary(max)';\n }\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 'varbinary(' + length + ')';\n } else {\n return 'varbinary(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 return value.length;\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!);\n } else {\n buffer.writeUInt16LE(MAX);\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 `varbinary(max)`.\n if (isAsyncIterable(parameter.value)) {\n return writePlpStream(buffer, parameter.value, requireBuffer);\n }\n\n const value = Buffer.isBuffer(parameter.value) ? 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): Buffer | null {\n if (value == null) {\n return null;\n }\n if (!Buffer.isBuffer(value)) {\n throw new TypeError('Invalid buffer.');\n }\n return value;\n },\n\n resolve(parameter) {\n if (isAsyncIterable(parameter.value)) {\n // The value is read from its source while the request is written. Its\n // length is not known up front, so it is sent as `varbinary(max)`;\n // an explicitly specified `length` is deliberately overridden.\n return { value: parameter.value, length: MAX };\n }\n\n const value = this.validate(parameter.value, undefined);\n const data: ParameterData = { value };\n data.length = parameter.length != null ? parameter.length : this.resolveLength!({ ...parameter, value });\n return data;\n }\n};\n\nexport default VarBinary;\nmodule.exports = VarBinary;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,12 +5,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _iconvLite = _interopRequireDefault(require("iconv-lite"));
|
|
8
|
+
var _plpStream = require("./plp-stream");
|
|
8
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
10
|
const MAX = (1 << 16) - 1;
|
|
10
|
-
const UNKNOWN_PLP_LEN = Buffer.from([0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]);
|
|
11
|
-
const PLP_TERMINATOR = Buffer.from([0x00, 0x00, 0x00, 0x00]);
|
|
12
11
|
const NULL_LENGTH = Buffer.from([0xFF, 0xFF]);
|
|
13
12
|
const MAX_NULL_LENGTH = Buffer.from([0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]);
|
|
13
|
+
const NO_COLLATION = Buffer.from([0x00, 0x00, 0x00, 0x00, 0x00]);
|
|
14
|
+
|
|
15
|
+
// Each chunk is encoded on its own, as `Writable.prototype.write` would
|
|
16
|
+
// encode it: a source must not split a UTF-16 surrogate pair across two
|
|
17
|
+
// chunks (see `Request.addParameter`).
|
|
18
|
+
function encoderFor(codepage) {
|
|
19
|
+
return chunk => {
|
|
20
|
+
if (typeof chunk !== 'string') {
|
|
21
|
+
throw new TypeError('Invalid string.');
|
|
22
|
+
}
|
|
23
|
+
return _iconvLite.default.encode(chunk, codepage);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
14
26
|
const VarChar = {
|
|
15
27
|
id: 0xA7,
|
|
16
28
|
type: 'BIGVARCHR',
|
|
@@ -18,6 +30,9 @@ const VarChar = {
|
|
|
18
30
|
maximumLength: 8000,
|
|
19
31
|
declaration: function (parameter) {
|
|
20
32
|
const value = parameter.value;
|
|
33
|
+
if ((0, _plpStream.isAsyncIterable)(value)) {
|
|
34
|
+
return 'varchar(max)';
|
|
35
|
+
}
|
|
21
36
|
let length;
|
|
22
37
|
if (parameter.length) {
|
|
23
38
|
length = parameter.length;
|
|
@@ -44,53 +59,6 @@ const VarChar = {
|
|
|
44
59
|
return this.maximumLength;
|
|
45
60
|
}
|
|
46
61
|
},
|
|
47
|
-
generateTypeInfo(parameter) {
|
|
48
|
-
const buffer = Buffer.alloc(8);
|
|
49
|
-
buffer.writeUInt8(this.id, 0);
|
|
50
|
-
if (parameter.length <= this.maximumLength) {
|
|
51
|
-
buffer.writeUInt16LE(parameter.length, 1);
|
|
52
|
-
} else {
|
|
53
|
-
buffer.writeUInt16LE(MAX, 1);
|
|
54
|
-
}
|
|
55
|
-
if (parameter.collation) {
|
|
56
|
-
parameter.collation.toBuffer().copy(buffer, 3, 0, 5);
|
|
57
|
-
}
|
|
58
|
-
return buffer;
|
|
59
|
-
},
|
|
60
|
-
generateParameterLength(parameter, options) {
|
|
61
|
-
const value = parameter.value;
|
|
62
|
-
if (value == null) {
|
|
63
|
-
if (parameter.length <= this.maximumLength) {
|
|
64
|
-
return NULL_LENGTH;
|
|
65
|
-
} else {
|
|
66
|
-
return MAX_NULL_LENGTH;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
if (parameter.length <= this.maximumLength) {
|
|
70
|
-
const buffer = Buffer.alloc(2);
|
|
71
|
-
buffer.writeUInt16LE(value.length, 0);
|
|
72
|
-
return buffer;
|
|
73
|
-
} else {
|
|
74
|
-
return UNKNOWN_PLP_LEN;
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
*generateParameterData(parameter, options) {
|
|
78
|
-
const value = parameter.value;
|
|
79
|
-
if (value == null) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
if (parameter.length <= this.maximumLength) {
|
|
83
|
-
yield value;
|
|
84
|
-
} else {
|
|
85
|
-
if (value.length > 0) {
|
|
86
|
-
const buffer = Buffer.alloc(4);
|
|
87
|
-
buffer.writeUInt32LE(value.length, 0);
|
|
88
|
-
yield buffer;
|
|
89
|
-
yield value;
|
|
90
|
-
}
|
|
91
|
-
yield PLP_TERMINATOR;
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
62
|
validate: function (value, collation) {
|
|
95
63
|
if (value == null) {
|
|
96
64
|
return null;
|
|
@@ -105,8 +73,74 @@ const VarChar = {
|
|
|
105
73
|
throw new Error('The collation set by the server has no associated encoding.');
|
|
106
74
|
}
|
|
107
75
|
return _iconvLite.default.encode(value, collation.codepage);
|
|
76
|
+
},
|
|
77
|
+
resolve(parameter, collation) {
|
|
78
|
+
if ((0, _plpStream.isAsyncIterable)(parameter.value)) {
|
|
79
|
+
// Read from its source while the request is written, and sent as
|
|
80
|
+
// `varchar(max)` since its length is not known up front. The chunks
|
|
81
|
+
// are encoded as they arrive, so the collation is checked here, as
|
|
82
|
+
// `validate` does for an in-memory value, rather than once the
|
|
83
|
+
// request is already being written.
|
|
84
|
+
if (!collation) {
|
|
85
|
+
throw new Error('No collation was set by the server for the current connection.');
|
|
86
|
+
}
|
|
87
|
+
if (!collation.codepage) {
|
|
88
|
+
throw new Error('The collation set by the server has no associated encoding.');
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
value: parameter.value,
|
|
92
|
+
length: MAX,
|
|
93
|
+
collation
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
const value = this.validate(parameter.value, collation);
|
|
97
|
+
const data = {
|
|
98
|
+
value
|
|
99
|
+
};
|
|
100
|
+
data.length = parameter.length != null ? parameter.length : this.resolveLength({
|
|
101
|
+
...parameter,
|
|
102
|
+
value
|
|
103
|
+
});
|
|
104
|
+
if (collation) {
|
|
105
|
+
data.collation = collation;
|
|
106
|
+
}
|
|
107
|
+
return data;
|
|
108
|
+
},
|
|
109
|
+
writeTypeInfo(buffer, parameter) {
|
|
110
|
+
buffer.writeUInt8(this.id);
|
|
111
|
+
if (parameter.length <= this.maximumLength) {
|
|
112
|
+
buffer.writeUInt16LE(parameter.length);
|
|
113
|
+
} else {
|
|
114
|
+
buffer.writeUInt16LE(MAX);
|
|
115
|
+
}
|
|
116
|
+
if (parameter.collation) {
|
|
117
|
+
buffer.writeBuffer(parameter.collation.toBuffer().subarray(0, 5));
|
|
118
|
+
} else {
|
|
119
|
+
buffer.writeBuffer(NO_COLLATION);
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
writeValue(buffer, parameter) {
|
|
123
|
+
if (parameter.value == null) {
|
|
124
|
+
buffer.writeBuffer(parameter.length <= this.maximumLength ? NULL_LENGTH : MAX_NULL_LENGTH);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Read from its source while the request is written; `resolve` declared
|
|
129
|
+
// it as `varchar(max)` and checked the collation.
|
|
130
|
+
if ((0, _plpStream.isAsyncIterable)(parameter.value)) {
|
|
131
|
+
return (0, _plpStream.writePlpStream)(buffer, parameter.value, encoderFor(parameter.collation.codepage));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// `validate` encoded the value.
|
|
135
|
+
const value = parameter.value;
|
|
136
|
+
if (parameter.length <= this.maximumLength) {
|
|
137
|
+
buffer.writeUInt16LE(value.length);
|
|
138
|
+
buffer.writeBuffer(value);
|
|
139
|
+
} else {
|
|
140
|
+
(0, _plpStream.writePlpValue)(buffer, value);
|
|
141
|
+
}
|
|
108
142
|
}
|
|
109
143
|
};
|
|
110
144
|
var _default = exports.default = VarChar;
|
|
111
145
|
module.exports = VarChar;
|
|
112
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaWNvbnZMaXRlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJNQVgiLCJVTktOT1dOX1BMUF9MRU4iLCJCdWZmZXIiLCJmcm9tIiwiUExQX1RFUk1JTkFUT1IiLCJOVUxMX0xFTkdUSCIsIk1BWF9OVUxMX0xFTkdUSCIsIlZhckNoYXIiLCJpZCIsInR5cGUiLCJuYW1lIiwibWF4aW11bUxlbmd0aCIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwidmFsdWUiLCJsZW5ndGgiLCJvdXRwdXQiLCJyZXNvbHZlTGVuZ3RoIiwiZ2VuZXJhdGVUeXBlSW5mbyIsImJ1ZmZlciIsImFsbG9jIiwid3JpdGVVSW50OCIsIndyaXRlVUludDE2TEUiLCJjb2xsYXRpb24iLCJ0b0J1ZmZlciIsImNvcHkiLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsIm9wdGlvbnMiLCJnZW5lcmF0ZVBhcmFtZXRlckRhdGEiLCJ3cml0ZVVJbnQzMkxFIiwidmFsaWRhdGUiLCJUeXBlRXJyb3IiLCJFcnJvciIsImNvZGVwYWdlIiwiaWNvbnYiLCJlbmNvZGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy92YXJjaGFyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpY29udiBmcm9tICdpY29udi1saXRlJztcblxuaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5cbmNvbnN0IE1BWCA9ICgxIDw8IDE2KSAtIDE7XG5jb25zdCBVTktOT1dOX1BMUF9MRU4gPSBCdWZmZXIuZnJvbShbMHhmZSwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZl0pO1xuY29uc3QgUExQX1RFUk1JTkFUT1IgPSBCdWZmZXIuZnJvbShbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pO1xuXG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGXSk7XG5jb25zdCBNQVhfTlVMTF9MRU5HVEggPSBCdWZmZXIuZnJvbShbMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRiwgMHhGRl0pO1xuXG5jb25zdCBWYXJDaGFyOiB7IG1heGltdW1MZW5ndGg6IG51bWJlciB9ICYgRGF0YVR5cGUgPSB7XG4gIGlkOiAweEE3LFxuICB0eXBlOiAnQklHVkFSQ0hSJyxcbiAgbmFtZTogJ1ZhckNoYXInLFxuICBtYXhpbXVtTGVuZ3RoOiA4MDAwLFxuXG4gIGRlY2xhcmF0aW9uOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXIgfCBudWxsO1xuXG4gICAgbGV0IGxlbmd0aDtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCkge1xuICAgICAgbGVuZ3RoID0gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwgJiYgIXBhcmFtZXRlci5vdXRwdXQpIHtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxlbmd0aCA9IHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG5cbiAgICBpZiAobGVuZ3RoIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgcmV0dXJuICd2YXJjaGFyKCcgKyBsZW5ndGggKyAnKSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAndmFyY2hhcihtYXgpJztcbiAgICB9XG4gIH0sXG5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKHBhcmFtZXRlcikge1xuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYyg4KTtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkLCAwKTtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHBhcmFtZXRlci5sZW5ndGghLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUoTUFYLCAxKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1ldGVyLmNvbGxhdGlvbikge1xuICAgICAgcGFyYW1ldGVyLmNvbGxhdGlvbi50b0J1ZmZlcigpLmNvcHkoYnVmZmVyLCAzLCAwLCA1KTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyO1xuICB9LFxuXG4gIGdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgICByZXR1cm4gTlVMTF9MRU5HVEg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gTUFYX05VTExfTEVOR1RIO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygyKTtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHZhbHVlLmxlbmd0aCwgMCk7XG4gICAgICByZXR1cm4gYnVmZmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gVU5LTk9XTl9QTFBfTEVOO1xuICAgIH1cbiAgfSxcblxuICAqZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIEJ1ZmZlciB8IG51bGw7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIHlpZWxkIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBidWZmZXIgPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgICAgIGJ1ZmZlci53cml0ZVVJbnQzMkxFKHZhbHVlLmxlbmd0aCwgMCk7XG4gICAgICAgIHlpZWxkIGJ1ZmZlcjtcblxuICAgICAgICB5aWVsZCB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgeWllbGQgUExQX1RFUk1JTkFUT1I7XG4gICAgfVxuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZSwgY29sbGF0aW9uKTogQnVmZmVyIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIHN0cmluZy4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbGxhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBjb2xsYXRpb24gd2FzIHNldCBieSB0aGUgc2VydmVyIGZvciB0aGUgY3VycmVudCBjb25uZWN0aW9uLicpO1xuICAgIH1cblxuICAgIGlmICghY29sbGF0aW9uLmNvZGVwYWdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjb2xsYXRpb24gc2V0IGJ5IHRoZSBzZXJ2ZXIgaGFzIG5vIGFzc29jaWF0ZWQgZW5jb2RpbmcuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb252LmVuY29kZSh2YWx1ZSwgY29sbGF0aW9uLmNvZGVwYWdlKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVmFyQ2hhcjtcbm1vZHVsZS5leHBvcnRzID0gVmFyQ2hhcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQStCLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBSS9CLE1BQU1HLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztBQUN6QixNQUFNQyxlQUFlLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3JGLE1BQU1DLGNBQWMsR0FBR0YsTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUU1RCxNQUFNRSxXQUFXLEdBQUdILE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzdDLE1BQU1HLGVBQWUsR0FBR0osTUFBTSxDQUFDQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUs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TSxDQUFDRyxhQUFhLENBQUNSLEtBQUssQ0FBQ0MsTUFBTSxFQUFFLENBQUMsQ0FBQztNQUNyQyxPQUFPSSxNQUFNO0lBQ2YsQ0FBQyxNQUFNO01BQ0wsT0FBT2xCLGVBQWU7SUFDeEI7RUFDRixDQUFDO0VBRUQsQ0FBQzJCLHFCQUFxQkEsQ0FBQ2YsU0FBUyxFQUFFYyxPQUFPLEVBQUU7SUFDekMsTUFBTWIsS0FBSyxHQUFHRCxTQUFTLENBQUNDLEtBQXNCO0lBRTlDLElBQUlBLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakI7SUFDRjtJQUVBLElBQUlELFNBQVMsQ0FBQ0UsTUFBTSxJQUFLLElBQUksQ0FBQ0osYUFBYSxFQUFFO01BQzNDLE1BQU1HLEtBQUs7SUFDYixDQUFDLE1BQU07TUFDTCxJQUFJQSxLQUFLLENBQUNDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFDcEIsTUFBTUksTUFBTSxHQUFHakIsTUFBTSxDQUFDa0IsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5QkQsTUFBTSxDQUFDVSxhQUFhLENBQUNmLEtBQUssQ0FBQ0MsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNyQyxNQUFNSSxNQUFNO1FBRVosTUFBTUwsS0FBSztNQUNiO01BRUEsTUFBTVYsY0FBYztJQUN0QjtFQUNGLENBQUM7RUFFRDBCLFFBQVEsRUFBRSxTQUFBQSxDQUFTaEIsS0FBSyxFQUFFUyxTQUFTLEVBQWlCO0lBQ2xELElBQUlULEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakIsT0FBTyxJQUFJO0lBQ2I7SUFFQSxJQUFJLE9BQU9BLEtBQUssS0FBSyxRQUFRLEVBQUU7TUFDN0IsTUFBTSxJQUFJaUIsU0FBUyxDQUFDLGlCQUFpQixDQUFDO0lBQ3hDO0lBRUEsSUFBSSxDQUFDUixTQUFTLEVBQUU7TUFDZCxNQUFNLElBQUlTLEtBQUssQ0FBQyxnRUFBZ0UsQ0FBQztJQUNuRjtJQUVBLElBQUksQ0FBQ1QsU0FBUyxDQUFDVSxRQUFRLEVBQUU7TUFDdkIsTUFBTSxJQUFJRCxLQUFLLENBQUMsNkRBQTZELENBQUM7SUFDaEY7SUFFQSxPQUFPRSxrQkFBSyxDQUFDQyxNQUFNLENBQUNyQixLQUFLLEVBQUVTLFNBQVMsQ0FBQ1UsUUFBUSxDQUFDO0VBQ2hEO0FBQ0YsQ0FBQztBQUFDLElBQUFHLFFBQUEsR0FBQUMsT0FBQSxDQUFBdEMsT0FBQSxHQUVhUSxPQUFPO0FBQ3RCK0IsTUFBTSxDQUFDRCxPQUFPLEdBQUc5QixPQUFPIiwiaWdub3JlTGlzdCI6W119
|
|
146
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaWNvbnZMaXRlIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcGxwU3RyZWFtIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiTUFYIiwiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiTUFYX05VTExfTEVOR1RIIiwiTk9fQ09MTEFUSU9OIiwiZW5jb2RlckZvciIsImNvZGVwYWdlIiwiY2h1bmsiLCJUeXBlRXJyb3IiLCJpY29udiIsImVuY29kZSIsIlZhckNoYXIiLCJpZCIsInR5cGUiLCJuYW1lIiwibWF4aW11bUxlbmd0aCIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwidmFsdWUiLCJpc0FzeW5jSXRlcmFibGUiLCJsZW5ndGgiLCJvdXRwdXQiLCJyZXNvbHZlTGVuZ3RoIiwidmFsaWRhdGUiLCJjb2xsYXRpb24iLCJFcnJvciIsInJlc29sdmUiLCJkYXRhIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlVUludDgiLCJ3cml0ZVVJbnQxNkxFIiwid3JpdGVCdWZmZXIiLCJ0b0J1ZmZlciIsInN1YmFycmF5Iiwid3JpdGVWYWx1ZSIsIndyaXRlUGxwU3RyZWFtIiwid3JpdGVQbHBWYWx1ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL3ZhcmNoYXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGljb252IGZyb20gJ2ljb252LWxpdGUnO1xuXG5pbXBvcnQgeyB0eXBlIERhdGFUeXBlLCB0eXBlIFBhcmFtZXRlckRhdGEgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgaXNBc3luY0l0ZXJhYmxlLCB3cml0ZVBscFN0cmVhbSwgd3JpdGVQbHBWYWx1ZSB9IGZyb20gJy4vcGxwLXN0cmVhbSc7XG5cbmNvbnN0IE1BWCA9ICgxIDw8IDE2KSAtIDE7XG5cbmNvbnN0IE5VTExfTEVOR1RIID0gQnVmZmVyLmZyb20oWzB4RkYsIDB4RkZdKTtcbmNvbnN0IE1BWF9OVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGLCAweEZGXSk7XG5jb25zdCBOT19DT0xMQVRJT04gPSBCdWZmZXIuZnJvbShbMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMF0pO1xuXG4vLyBFYWNoIGNodW5rIGlzIGVuY29kZWQgb24gaXRzIG93biwgYXMgYFdyaXRhYmxlLnByb3RvdHlwZS53cml0ZWAgd291bGRcbi8vIGVuY29kZSBpdDogYSBzb3VyY2UgbXVzdCBub3Qgc3BsaXQgYSBVVEYtMTYgc3Vycm9nYXRlIHBhaXIgYWNyb3NzIHR3b1xuLy8gY2h1bmtzIChzZWUgYFJlcXVlc3QuYWRkUGFyYW1ldGVyYCkuXG5mdW5jdGlvbiBlbmNvZGVyRm9yKGNvZGVwYWdlOiBzdHJpbmcpOiAoY2h1bms6IHVua25vd24pID0+IEJ1ZmZlciB7XG4gIHJldHVybiAoY2h1bmspID0+IHtcbiAgICBpZiAodHlwZW9mIGNodW5rICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgfVxuICAgIHJldHVybiBpY29udi5lbmNvZGUoY2h1bmssIGNvZGVwYWdlKTtcbiAgfTtcbn1cblxuY29uc3QgVmFyQ2hhcjogeyBtYXhpbXVtTGVuZ3RoOiBudW1iZXIgfSAmIERhdGFUeXBlID0ge1xuICBpZDogMHhBNyxcbiAgdHlwZTogJ0JJR1ZBUkNIUicsXG4gIG5hbWU6ICdWYXJDaGFyJyxcbiAgbWF4aW11bUxlbmd0aDogODAwMCxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmIChpc0FzeW5jSXRlcmFibGUodmFsdWUpKSB7XG4gICAgICByZXR1cm4gJ3ZhcmNoYXIobWF4KSc7XG4gICAgfVxuXG4gICAgbGV0IGxlbmd0aDtcbiAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCkge1xuICAgICAgbGVuZ3RoID0gcGFyYW1ldGVyLmxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIGxlbmd0aCA9IHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IG51bGwgJiYgIXBhcmFtZXRlci5vdXRwdXQpIHtcbiAgICAgIGxlbmd0aCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxlbmd0aCA9IHRoaXMubWF4aW11bUxlbmd0aDtcbiAgICB9XG5cbiAgICBpZiAobGVuZ3RoIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgcmV0dXJuICd2YXJjaGFyKCcgKyBsZW5ndGggKyAnKSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAndmFyY2hhcihtYXgpJztcbiAgICB9XG4gIH0sXG5cbiAgcmVzb2x2ZUxlbmd0aDogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIudmFsdWUgYXMgQnVmZmVyIHwgbnVsbDtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCB8fCAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhpbXVtTGVuZ3RoO1xuICAgIH1cbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWUsIGNvbGxhdGlvbik6IEJ1ZmZlciB8IG51bGwge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFjb2xsYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gY29sbGF0aW9uIHdhcyBzZXQgYnkgdGhlIHNlcnZlciBmb3IgdGhlIGN1cnJlbnQgY29ubmVjdGlvbi4nKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbGxhdGlvbi5jb2RlcGFnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29sbGF0aW9uIHNldCBieSB0aGUgc2VydmVyIGhhcyBubyBhc3NvY2lhdGVkIGVuY29kaW5nLicpO1xuICAgIH1cblxuICAgIHJldHVybiBpY29udi5lbmNvZGUodmFsdWUsIGNvbGxhdGlvbi5jb2RlcGFnZSk7XG4gIH0sXG5cbiAgcmVzb2x2ZShwYXJhbWV0ZXIsIGNvbGxhdGlvbikge1xuICAgIGlmIChpc0FzeW5jSXRlcmFibGUocGFyYW1ldGVyLnZhbHVlKSkge1xuICAgICAgLy8gUmVhZCBmcm9tIGl0cyBzb3VyY2Ugd2hpbGUgdGhlIHJlcXVlc3QgaXMgd3JpdHRlbiwgYW5kIHNlbnQgYXNcbiAgICAgIC8vIGB2YXJjaGFyKG1heClgIHNpbmNlIGl0cyBsZW5ndGggaXMgbm90IGtub3duIHVwIGZyb250LiBUaGUgY2h1bmtzXG4gICAgICAvLyBhcmUgZW5jb2RlZCBhcyB0aGV5IGFycml2ZSwgc28gdGhlIGNvbGxhdGlvbiBpcyBjaGVja2VkIGhlcmUsIGFzXG4gICAgICAvLyBgdmFsaWRhdGVgIGRvZXMgZm9yIGFuIGluLW1lbW9yeSB2YWx1ZSwgcmF0aGVyIHRoYW4gb25jZSB0aGVcbiAgICAgIC8vIHJlcXVlc3QgaXMgYWxyZWFkeSBiZWluZyB3cml0dGVuLlxuICAgICAgaWYgKCFjb2xsYXRpb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBjb2xsYXRpb24gd2FzIHNldCBieSB0aGUgc2VydmVyIGZvciB0aGUgY3VycmVudCBjb25uZWN0aW9uLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbGxhdGlvbi5jb2RlcGFnZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjb2xsYXRpb24gc2V0IGJ5IHRoZSBzZXJ2ZXIgaGFzIG5vIGFzc29jaWF0ZWQgZW5jb2RpbmcuJyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IHZhbHVlOiBwYXJhbWV0ZXIudmFsdWUsIGxlbmd0aDogTUFYLCBjb2xsYXRpb24gfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsaWRhdGUocGFyYW1ldGVyLnZhbHVlLCBjb2xsYXRpb24pO1xuICAgIGNvbnN0IGRhdGE6IFBhcmFtZXRlckRhdGEgPSB7IHZhbHVlIH07XG4gICAgZGF0YS5sZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoICE9IG51bGwgPyBwYXJhbWV0ZXIubGVuZ3RoIDogdGhpcy5yZXNvbHZlTGVuZ3RoISh7IC4uLnBhcmFtZXRlciwgdmFsdWUgfSk7XG4gICAgaWYgKGNvbGxhdGlvbikge1xuICAgICAgZGF0YS5jb2xsYXRpb24gPSBjb2xsYXRpb247XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9LFxuXG4gIHdyaXRlVHlwZUluZm8oYnVmZmVyLCBwYXJhbWV0ZXIpIHtcbiAgICBidWZmZXIud3JpdGVVSW50OCh0aGlzLmlkKTtcblxuICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoISA8PSB0aGlzLm1heGltdW1MZW5ndGgpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKHBhcmFtZXRlci5sZW5ndGghKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUoTUFYKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1ldGVyLmNvbGxhdGlvbikge1xuICAgICAgYnVmZmVyLndyaXRlQnVmZmVyKHBhcmFtZXRlci5jb2xsYXRpb24udG9CdWZmZXIoKS5zdWJhcnJheSgwLCA1KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlci53cml0ZUJ1ZmZlcihOT19DT0xMQVRJT04pO1xuICAgIH1cbiAgfSxcblxuICB3cml0ZVZhbHVlKGJ1ZmZlciwgcGFyYW1ldGVyKSB7XG4gICAgaWYgKHBhcmFtZXRlci52YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVCdWZmZXIocGFyYW1ldGVyLmxlbmd0aCEgPD0gdGhpcy5tYXhpbXVtTGVuZ3RoID8gTlVMTF9MRU5HVEggOiBNQVhfTlVMTF9MRU5HVEgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFJlYWQgZnJvbSBpdHMgc291cmNlIHdoaWxlIHRoZSByZXF1ZXN0IGlzIHdyaXR0ZW47IGByZXNvbHZlYCBkZWNsYXJlZFxuICAgIC8vIGl0IGFzIGB2YXJjaGFyKG1heClgIGFuZCBjaGVja2VkIHRoZSBjb2xsYXRpb24uXG4gICAgaWYgKGlzQXN5bmNJdGVyYWJsZShwYXJhbWV0ZXIudmFsdWUpKSB7XG4gICAgICByZXR1cm4gd3JpdGVQbHBTdHJlYW0oYnVmZmVyLCBwYXJhbWV0ZXIudmFsdWUsIGVuY29kZXJGb3IocGFyYW1ldGVyLmNvbGxhdGlvbiEuY29kZXBhZ2UhKSk7XG4gICAgfVxuXG4gICAgLy8gYHZhbGlkYXRlYCBlbmNvZGVkIHRoZSB2YWx1ZS5cbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBCdWZmZXI7XG4gICAgaWYgKHBhcmFtZXRlci5sZW5ndGghIDw9IHRoaXMubWF4aW11bUxlbmd0aCkge1xuICAgICAgYnVmZmVyLndyaXRlVUludDE2TEUodmFsdWUubGVuZ3RoKTtcbiAgICAgIGJ1ZmZlci53cml0ZUJ1ZmZlcih2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdyaXRlUGxwVmFsdWUoYnVmZmVyLCB2YWx1ZSk7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWYXJDaGFyO1xubW9kdWxlLmV4cG9ydHMgPSBWYXJDaGFyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFHQSxJQUFBQyxVQUFBLEdBQUFE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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"varchar.js","names":["_iconvLite","_interopRequireDefault","require","e","__esModule","default","MAX","
|
|
1
|
+
{"version":3,"file":"varchar.js","names":["_iconvLite","_interopRequireDefault","require","_plpStream","e","__esModule","default","MAX","NULL_LENGTH","Buffer","from","MAX_NULL_LENGTH","NO_COLLATION","encoderFor","codepage","chunk","TypeError","iconv","encode","VarChar","id","type","name","maximumLength","declaration","parameter","value","isAsyncIterable","length","output","resolveLength","validate","collation","Error","resolve","data","writeTypeInfo","buffer","writeUInt8","writeUInt16LE","writeBuffer","toBuffer","subarray","writeValue","writePlpStream","writePlpValue","_default","exports","module"],"sources":["../../src/data-types/varchar.ts"],"sourcesContent":["import iconv from 'iconv-lite';\n\nimport { type DataType, type ParameterData } from '../data-type';\nimport { isAsyncIterable, writePlpStream, writePlpValue } from './plp-stream';\n\nconst MAX = (1 << 16) - 1;\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.from([0x00, 0x00, 0x00, 0x00, 0x00]);\n\n// Each chunk is encoded on its own, as `Writable.prototype.write` would\n// encode it: a source must not split a UTF-16 surrogate pair across two\n// chunks (see `Request.addParameter`).\nfunction encoderFor(codepage: string): (chunk: unknown) => Buffer {\n return (chunk) => {\n if (typeof chunk !== 'string') {\n throw new TypeError('Invalid string.');\n }\n return iconv.encode(chunk, codepage);\n };\n}\n\nconst VarChar: { maximumLength: number } & DataType = {\n id: 0xA7,\n type: 'BIGVARCHR',\n name: 'VarChar',\n maximumLength: 8000,\n\n declaration: function(parameter) {\n const value = parameter.value as Buffer | null;\n\n if (isAsyncIterable(value)) {\n return 'varchar(max)';\n }\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 'varchar(' + length + ')';\n } else {\n return 'varchar(max)';\n }\n },\n\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 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 resolve(parameter, collation) {\n if (isAsyncIterable(parameter.value)) {\n // Read from its source while the request is written, and sent as\n // `varchar(max)` since its length is not known up front. The chunks\n // are encoded as they arrive, so the collation is checked here, as\n // `validate` does for an in-memory value, rather than once the\n // request is already being written.\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 { value: parameter.value, length: MAX, collation };\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 writeTypeInfo(buffer, parameter) {\n buffer.writeUInt8(this.id);\n\n if (parameter.length! <= this.maximumLength) {\n buffer.writeUInt16LE(parameter.length!);\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 `varchar(max)` and checked the collation.\n if (isAsyncIterable(parameter.value)) {\n return writePlpStream(buffer, parameter.value, encoderFor(parameter.collation!.codepage!));\n }\n\n // `validate` encoded the value.\n const value = parameter.value as Buffer;\n if (parameter.length! <= this.maximumLength) {\n buffer.writeUInt16LE(value.length);\n buffer.writeBuffer(value);\n } else {\n writePlpValue(buffer, value);\n }\n }\n};\n\nexport default VarChar;\nmodule.exports = VarChar;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/data-types/xml.js
CHANGED
|
@@ -11,13 +11,10 @@ const XML = {
|
|
|
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 XML = {
|
|
|
26
23
|
};
|
|
27
24
|
var _default = exports.default = XML;
|
|
28
25
|
module.exports = XML;
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJYTUwiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJFcnJvciIsIndyaXRlVHlwZUluZm8iLCJ3cml0ZVZhbHVlIiwidmFsaWRhdGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMveG1sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBYTUw6IERhdGFUeXBlID0ge1xuICBpZDogMHhGMSxcbiAgdHlwZTogJ1hNTCcsXG4gIG5hbWU6ICdYbWwnLFxuXG4gIGRlY2xhcmF0aW9uKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH0sXG5cbiAgd3JpdGVUeXBlSW5mbygpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9LFxuXG4gIHdyaXRlVmFsdWUoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfSxcblxuICB2YWxpZGF0ZSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBYTUw7XG5tb2R1bGUuZXhwb3J0cyA9IFhNTDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEsTUFBTUEsR0FBYSxHQUFHO0VBQ3BCQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsS0FBSztFQUNYQyxJQUFJLEVBQUUsS0FBSztFQUVYQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixNQUFNLElBQUlDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUNwQyxDQUFDO0VBRURDLGFBQWFBLENBQUEsRUFBRztJQUNkLE1BQU0sSUFBSUQsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0VBQ3BDLENBQUM7RUFFREUsVUFBVUEsQ0FBQSxFQUFHO0lBQ1gsTUFBTSxJQUFJRixLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDcEMsQ0FBQztFQUVERyxRQUFRQSxDQUFBLEVBQUc7SUFDVCxNQUFNLElBQUlILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUNwQztBQUNGLENBQUM7QUFBQyxJQUFBSSxRQUFBLEdBQUFDLE9BQUEsQ0FBQUMsT0FBQSxHQUVhWCxHQUFHO0FBQ2xCWSxNQUFNLENBQUNGLE9BQU8sR0FBR1YsR0FBRyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xml.js","names":["XML","id","type","name","declaration","Error","
|
|
1
|
+
{"version":3,"file":"xml.js","names":["XML","id","type","name","declaration","Error","writeTypeInfo","writeValue","validate","_default","exports","default","module"],"sources":["../../src/data-types/xml.ts"],"sourcesContent":["import { type DataType } from '../data-type';\n\nconst XML: DataType = {\n id: 0xF1,\n type: 'XML',\n name: 'Xml',\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 XML;\nmodule.exports = XML;\n"],"mappings":";;;;;;AAEA,MAAMA,GAAa,GAAG;EACpBC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,KAAK;EACXC,IAAI,EAAE,KAAK;EAEXC,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,GAAG;AAClBY,MAAM,CAACF,OAAO,GAAGV,GAAG","ignoreList":[]}
|
package/lib/request.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import { type Parameter, type DataType } from './data-type';
|
|
3
|
-
import Connection from './connection';
|
|
2
|
+
import { type Parameter, type DataType, type ResolvedParameter } from './data-type';
|
|
3
|
+
import Connection, { type InternalConnectionOptions } from './connection';
|
|
4
4
|
import { type Metadata } from './metadata-parser';
|
|
5
5
|
import { SQLServerStatementColumnEncryptionSetting } from './always-encrypted/types';
|
|
6
6
|
import { type ColumnMetadata } from './token/colmetadata-token-parser';
|
|
@@ -61,6 +61,12 @@ declare class Request extends EventEmitter {
|
|
|
61
61
|
parametersByName: {
|
|
62
62
|
[key: string]: Parameter;
|
|
63
63
|
};
|
|
64
|
+
/**
|
|
65
|
+
* The parameters as resolved by the last call to `validateParameters`.
|
|
66
|
+
*
|
|
67
|
+
* @private
|
|
68
|
+
*/
|
|
69
|
+
resolvedParameters: ResolvedParameter[];
|
|
64
70
|
/**
|
|
65
71
|
* @private
|
|
66
72
|
*/
|
|
@@ -348,6 +354,20 @@ declare class Request extends EventEmitter {
|
|
|
348
354
|
* The value that the parameter is to be given. The Javascript type of the
|
|
349
355
|
* argument should match that documented for data types.
|
|
350
356
|
*
|
|
357
|
+
* A `varchar(max)`, `nvarchar(max)` or `varbinary(max)` value, or the rows
|
|
358
|
+
* of a table-valued parameter, can also be given as an async iterable
|
|
359
|
+
* (e.g. a `Readable`) of chunks, or of rows. The source is read while the
|
|
360
|
+
* request is being sent, so it does not have to fit in memory, and a
|
|
361
|
+
* request that carries one can be executed only once.
|
|
362
|
+
*
|
|
363
|
+
* Each chunk of a string source is encoded on its own, as `Writable.write`
|
|
364
|
+
* would encode it, so a chunk must not end halfway through a UTF-16
|
|
365
|
+
* surrogate pair. Text that Node.js decoded from UTF-8 (a `Readable` with
|
|
366
|
+
* `encoding: 'utf8'`, `readline`, `TextDecoder`) never does; a string
|
|
367
|
+
* sliced by index can. A `Buffer` chunk of 8 KB or more is sent by
|
|
368
|
+
* reference, as `socket.write` would send it, so a source must not reuse
|
|
369
|
+
* or modify a buffer it has yielded until the request has completed.
|
|
370
|
+
*
|
|
351
371
|
* @param options
|
|
352
372
|
* Additional type options. Optional.
|
|
353
373
|
*/
|
|
@@ -375,7 +395,7 @@ declare class Request extends EventEmitter {
|
|
|
375
395
|
/**
|
|
376
396
|
* @private
|
|
377
397
|
*/
|
|
378
|
-
validateParameters(collation: Collation | undefined): void;
|
|
398
|
+
validateParameters(collation: Collation | undefined, options: InternalConnectionOptions): void;
|
|
379
399
|
/**
|
|
380
400
|
* Temporarily suspends the flow of data from the database. No more `row` events will be emitted until [[resume]] is called.
|
|
381
401
|
* If this request is already in a paused state, calling [[pause]] has no effect.
|