tedious 20.2.3 → 20.3.1
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/README.md +3 -0
- package/SECURITY.md +23 -0
- 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 +34 -34
- 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/lib/token/handler.js +9 -1
- package/lib/token/handler.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.js","names":["_datetimen","_interopRequireDefault","require","_core","e","__esModule","default","EPOCH_DATE","LocalDate","ofYearDay","
|
|
1
|
+
{"version":3,"file":"datetime.js","names":["_datetimen","_interopRequireDefault","require","_core","e","__esModule","default","EPOCH_DATE","LocalDate","ofYearDay","TYPE_INFO","Buffer","from","DateTimeN","id","DateTime","type","name","declaration","writeTypeInfo","buffer","writeBuffer","writeValue","parameter","options","value","writeUInt8","days","milliseconds","useUTC","until","of","getUTCFullYear","getUTCMonth","getUTCDate","ChronoUnit","DAYS","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","threeHundredthsOfSecond","Math","round","writeInt32LE","writeUInt32LE","validate","collation","Date","parse","year","TypeError","isNaN","_default","exports","module"],"sources":["../../src/data-types/datetime.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport DateTimeN from './datetimen';\nimport { ChronoUnit, LocalDate } from '@js-joda/core';\n\nconst EPOCH_DATE = LocalDate.ofYearDay(1900, 1);\nconst TYPE_INFO = Buffer.from([DateTimeN.id, 0x08]);\n\nconst DateTime: DataType = {\n id: 0x3D,\n type: 'DATETIME',\n name: 'DateTime',\n\n declaration: function() {\n return 'datetime';\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, milliseconds: number;\n if (options.useUTC) {\n days = EPOCH_DATE.until(LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate()), ChronoUnit.DAYS);\n milliseconds = ((value.getUTCHours() * 60 + value.getUTCMinutes()) * 60 + value.getUTCSeconds()) * 1000 + value.getUTCMilliseconds();\n } else {\n days = EPOCH_DATE.until(LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate()), ChronoUnit.DAYS);\n milliseconds = ((value.getHours() * 60 + value.getMinutes()) * 60 + value.getSeconds()) * 1000 + value.getMilliseconds();\n }\n\n let threeHundredthsOfSecond = Math.round(milliseconds / (3 + (1 / 3)));\n\n // 25920000 equals one day\n if (threeHundredthsOfSecond === 25920000) {\n days += 1;\n threeHundredthsOfSecond = 0;\n }\n\n buffer.writeUInt8(0x08);\n buffer.writeInt32LE(days);\n buffer.writeUInt32LE(threeHundredthsOfSecond);\n },\n\n // TODO: type 'any' needs to be revisited.\n validate: function(value: any, collation, options): null | number {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n value = value as Date;\n\n let year;\n if (options && options.useUTC) {\n year = value.getUTCFullYear();\n } else {\n year = value.getFullYear();\n }\n\n if (year < 1753 || year > 9999) {\n throw new TypeError('Out of range.');\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default DateTime;\nmodule.exports = DateTime;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,11 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
8
|
-
var _writableTrackingBuffer = _interopRequireDefault(require("../tracking-buffer/writable-tracking-buffer"));
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
const EPOCH_DATE = _core.LocalDate.ofYearDay(1, 1);
|
|
11
|
-
const NULL_LENGTH = Buffer.from([0x00]);
|
|
7
|
+
var _temporal = require("./temporal");
|
|
12
8
|
const DateTime2 = {
|
|
13
9
|
id: 0x2A,
|
|
14
10
|
type: 'DATETIME2N',
|
|
@@ -25,70 +21,19 @@ const DateTime2 = {
|
|
|
25
21
|
return 7;
|
|
26
22
|
}
|
|
27
23
|
},
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
writeTypeInfo(buffer, parameter) {
|
|
25
|
+
buffer.writeUInt8(this.id);
|
|
26
|
+
buffer.writeUInt8(parameter.scale);
|
|
30
27
|
},
|
|
31
|
-
|
|
32
|
-
if (parameter.value == null) {
|
|
33
|
-
return NULL_LENGTH;
|
|
34
|
-
}
|
|
35
|
-
switch (parameter.scale) {
|
|
36
|
-
case 0:
|
|
37
|
-
case 1:
|
|
38
|
-
case 2:
|
|
39
|
-
return Buffer.from([0x06]);
|
|
40
|
-
case 3:
|
|
41
|
-
case 4:
|
|
42
|
-
return Buffer.from([0x07]);
|
|
43
|
-
case 5:
|
|
44
|
-
case 6:
|
|
45
|
-
case 7:
|
|
46
|
-
return Buffer.from([0x08]);
|
|
47
|
-
default:
|
|
48
|
-
throw new Error('invalid scale');
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
*generateParameterData(parameter, options) {
|
|
52
|
-
if (parameter.value == null) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
28
|
+
writeValue(buffer, parameter, options) {
|
|
55
29
|
const value = parameter.value;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
let timestamp;
|
|
60
|
-
if (options.useUTC) {
|
|
61
|
-
timestamp = ((value.getUTCHours() * 60 + value.getUTCMinutes()) * 60 + value.getUTCSeconds()) * 1000 + value.getUTCMilliseconds();
|
|
62
|
-
} else {
|
|
63
|
-
timestamp = ((value.getHours() * 60 + value.getMinutes()) * 60 + value.getSeconds()) * 1000 + value.getMilliseconds();
|
|
64
|
-
}
|
|
65
|
-
timestamp = timestamp * Math.pow(10, scale - 3);
|
|
66
|
-
timestamp += (value.nanosecondDelta != null ? value.nanosecondDelta : 0) * Math.pow(10, scale);
|
|
67
|
-
timestamp = Math.round(timestamp);
|
|
68
|
-
switch (scale) {
|
|
69
|
-
case 0:
|
|
70
|
-
case 1:
|
|
71
|
-
case 2:
|
|
72
|
-
buffer.writeUInt24LE(timestamp);
|
|
73
|
-
break;
|
|
74
|
-
case 3:
|
|
75
|
-
case 4:
|
|
76
|
-
buffer.writeUInt32LE(timestamp);
|
|
77
|
-
break;
|
|
78
|
-
case 5:
|
|
79
|
-
case 6:
|
|
80
|
-
case 7:
|
|
81
|
-
buffer.writeUInt40LE(timestamp);
|
|
82
|
-
}
|
|
83
|
-
let date;
|
|
84
|
-
if (options.useUTC) {
|
|
85
|
-
date = _core.LocalDate.of(value.getUTCFullYear(), value.getUTCMonth() + 1, value.getUTCDate());
|
|
86
|
-
} else {
|
|
87
|
-
date = _core.LocalDate.of(value.getFullYear(), value.getMonth() + 1, value.getDate());
|
|
30
|
+
if (value == null) {
|
|
31
|
+
buffer.writeUInt8(0x00);
|
|
32
|
+
return;
|
|
88
33
|
}
|
|
89
|
-
|
|
90
|
-
buffer.
|
|
91
|
-
|
|
34
|
+
buffer.writeUInt8((0, _temporal.timeLength)(parameter.scale) + 3);
|
|
35
|
+
(0, _temporal.writeTimeOfDay)(buffer, value, parameter.scale, options.useUTC);
|
|
36
|
+
buffer.writeUInt24LE((0, _temporal.daysSinceYearOne)(value, options.useUTC));
|
|
92
37
|
},
|
|
93
38
|
validate: function (value, collation, options) {
|
|
94
39
|
if (value == null) {
|
|
@@ -115,4 +60,4 @@ const DateTime2 = {
|
|
|
115
60
|
};
|
|
116
61
|
var _default = exports.default = DateTime2;
|
|
117
62
|
module.exports = DateTime2;
|
|
118
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJFUE9DSF9EQVRFIiwiTG9jYWxEYXRlIiwib2ZZZWFyRGF5IiwiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiRGF0ZVRpbWUyIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwicmVzb2x2ZVNjYWxlIiwic2NhbGUiLCJ2YWx1ZSIsImdlbmVyYXRlVHlwZUluZm8iLCJfb3B0aW9ucyIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsIkVycm9yIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwiYnVmZmVyIiwiV3JpdGFibGVUcmFja2luZ0J1ZmZlciIsInRpbWVzdGFtcCIsInVzZVVUQyIsImdldFVUQ0hvdXJzIiwiZ2V0VVRDTWludXRlcyIsImdldFVUQ1NlY29uZHMiLCJnZXRVVENNaWxsaXNlY29uZHMiLCJnZXRIb3VycyIsImdldE1pbnV0ZXMiLCJnZXRTZWNvbmRzIiwiZ2V0TWlsbGlzZWNvbmRzIiwiTWF0aCIsInBvdyIsIm5hbm9zZWNvbmREZWx0YSIsInJvdW5kIiwid3JpdGVVSW50MjRMRSIsIndyaXRlVUludDMyTEUiLCJ3cml0ZVVJbnQ0MExFIiwiZGF0ZSIsIm9mIiwiZ2V0VVRDRnVsbFllYXIiLCJnZXRVVENNb250aCIsImdldFVUQ0RhdGUiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImRheXMiLCJ1bnRpbCIsIkNocm9ub1VuaXQiLCJEQVlTIiwiZGF0YSIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwiRGF0ZSIsInBhcnNlIiwieWVhciIsIlR5cGVFcnJvciIsImlzTmFOIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGF0ZXRpbWUyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgQ2hyb25vVW5pdCwgTG9jYWxEYXRlIH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5pbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuLi90cmFja2luZy1idWZmZXIvd3JpdGFibGUtdHJhY2tpbmctYnVmZmVyJztcblxuY29uc3QgRVBPQ0hfREFURSA9IExvY2FsRGF0ZS5vZlllYXJEYXkoMSwgMSk7XG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5cbmNvbnN0IERhdGVUaW1lMjogRGF0YVR5cGUgJiB7IHJlc29sdmVTY2FsZTogTm9uTnVsbGFibGU8RGF0YVR5cGVbJ3Jlc29sdmVTY2FsZSddPiB9ID0ge1xuICBpZDogMHgyQSxcbiAgdHlwZTogJ0RBVEVUSU1FMk4nLFxuICBuYW1lOiAnRGF0ZVRpbWUyJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgcmV0dXJuICdkYXRldGltZTIoJyArICh0aGlzLnJlc29sdmVTY2FsZShwYXJhbWV0ZXIpKSArICcpJztcbiAgfSxcblxuICByZXNvbHZlU2NhbGU6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGlmIChwYXJhbWV0ZXIuc2NhbGUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5zY2FsZTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtZXRlci52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA3O1xuICAgIH1cbiAgfSxcblxuICBnZW5lcmF0ZVR5cGVJbmZvKHBhcmFtZXRlciwgX29wdGlvbnMpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oW3RoaXMuaWQsIHBhcmFtZXRlci5zY2FsZSFdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHBhcmFtZXRlci5zY2FsZSEpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgIGNhc2UgMTpcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDA2XSk7XG5cbiAgICAgIGNhc2UgMzpcbiAgICAgIGNhc2UgNDpcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDA3XSk7XG5cbiAgICAgIGNhc2UgNTpcbiAgICAgIGNhc2UgNjpcbiAgICAgIGNhc2UgNzpcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDA4XSk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzY2FsZScpO1xuICAgIH1cbiAgfSxcblxuICAqZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlO1xuICAgIGxldCBzY2FsZSA9IHBhcmFtZXRlci5zY2FsZTtcblxuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKCk7XG4gICAgc2NhbGUgPSBzY2FsZSE7XG5cbiAgICBsZXQgdGltZXN0YW1wOiBudW1iZXI7XG4gICAgaWYgKG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICB0aW1lc3RhbXAgPSAoKHZhbHVlLmdldFVUQ0hvdXJzKCkgKiA2MCArIHZhbHVlLmdldFVUQ01pbnV0ZXMoKSkgKiA2MCArIHZhbHVlLmdldFVUQ1NlY29uZHMoKSkgKiAxMDAwICsgdmFsdWUuZ2V0VVRDTWlsbGlzZWNvbmRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRpbWVzdGFtcCA9ICgodmFsdWUuZ2V0SG91cnMoKSAqIDYwICsgdmFsdWUuZ2V0TWludXRlcygpKSAqIDYwICsgdmFsdWUuZ2V0U2Vjb25kcygpKSAqIDEwMDAgKyB2YWx1ZS5nZXRNaWxsaXNlY29uZHMoKTtcbiAgICB9XG4gICAgdGltZXN0YW1wID0gdGltZXN0YW1wICogTWF0aC5wb3coMTAsIHNjYWxlIC0gMyk7XG4gICAgdGltZXN0YW1wICs9ICh2YWx1ZS5uYW5vc2Vjb25kRGVsdGEgIT0gbnVsbCA/IHZhbHVlLm5hbm9zZWNvbmREZWx0YSA6IDApICogTWF0aC5wb3coMTAsIHNjYWxlKTtcbiAgICB0aW1lc3RhbXAgPSBNYXRoLnJvdW5kKHRpbWVzdGFtcCk7XG5cbiAgICBzd2l0Y2ggKHNjYWxlKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICBjYXNlIDE6XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGJ1ZmZlci53cml0ZVVJbnQyNExFKHRpbWVzdGFtcCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgY2FzZSA0OlxuICAgICAgICBidWZmZXIud3JpdGVVSW50MzJMRSh0aW1lc3RhbXApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNTpcbiAgICAgIGNhc2UgNjpcbiAgICAgIGNhc2UgNzpcbiAgICAgICAgYnVmZmVyLndyaXRlVUludDQwTEUodGltZXN0YW1wKTtcbiAgICB9XG5cbiAgICBsZXQgZGF0ZTtcbiAgICBpZiAob3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIGRhdGUgPSBMb2NhbERhdGUub2YodmFsdWUuZ2V0VVRDRnVsbFllYXIoKSwgdmFsdWUuZ2V0VVRDTW9udGgoKSArIDEsIHZhbHVlLmdldFVUQ0RhdGUoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRhdGUgPSBMb2NhbERhdGUub2YodmFsdWUuZ2V0RnVsbFllYXIoKSwgdmFsdWUuZ2V0TW9udGgoKSArIDEsIHZhbHVlLmdldERhdGUoKSk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF5cyA9IEVQT0NIX0RBVEUudW50aWwoZGF0ZSwgQ2hyb25vVW5pdC5EQVlTKTtcbiAgICBidWZmZXIud3JpdGVVSW50MjRMRShkYXlzKTtcbiAgICB5aWVsZCBidWZmZXIuZGF0YTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWU6IGFueSwgY29sbGF0aW9uLCBvcHRpb25zKTogbnVsbCB8IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgYXMgRGF0ZTtcblxuICAgIGxldCB5ZWFyO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgeWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgaWYgKHllYXIgPCAxIHx8IHllYXIgPiA5OTk5KSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPdXQgb2YgcmFuZ2UuJyk7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBkYXRlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVRpbWUyO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlVGltZTI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLEtBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLHVCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFBaUYsU0FBQUUsdUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxJ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
|
|
63
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVtcG9yYWwiLCJyZXF1aXJlIiwiRGF0ZVRpbWUyIiwiaWQiLCJ0eXBlIiwibmFtZSIsImRlY2xhcmF0aW9uIiwicGFyYW1ldGVyIiwicmVzb2x2ZVNjYWxlIiwic2NhbGUiLCJ2YWx1ZSIsIndyaXRlVHlwZUluZm8iLCJidWZmZXIiLCJ3cml0ZVVJbnQ4Iiwid3JpdGVWYWx1ZSIsIm9wdGlvbnMiLCJ0aW1lTGVuZ3RoIiwid3JpdGVUaW1lT2ZEYXkiLCJ1c2VVVEMiLCJ3cml0ZVVJbnQyNExFIiwiZGF5c1NpbmNlWWVhck9uZSIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwiRGF0ZSIsInBhcnNlIiwieWVhciIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0RnVsbFllYXIiLCJUeXBlRXJyb3IiLCJpc05hTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZGF0YS10eXBlcy9kYXRldGltZTIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBkYXlzU2luY2VZZWFyT25lLCB0aW1lTGVuZ3RoLCB3cml0ZVRpbWVPZkRheSwgdHlwZSBUZW1wb3JhbFZhbHVlIH0gZnJvbSAnLi90ZW1wb3JhbCc7XG5cbmNvbnN0IERhdGVUaW1lMjogRGF0YVR5cGUgJiB7IHJlc29sdmVTY2FsZTogTm9uTnVsbGFibGU8RGF0YVR5cGVbJ3Jlc29sdmVTY2FsZSddPiB9ID0ge1xuICBpZDogMHgyQSxcbiAgdHlwZTogJ0RBVEVUSU1FMk4nLFxuICBuYW1lOiAnRGF0ZVRpbWUyJyxcblxuICBkZWNsYXJhdGlvbjogZnVuY3Rpb24ocGFyYW1ldGVyKSB7XG4gICAgcmV0dXJuICdkYXRldGltZTIoJyArICh0aGlzLnJlc29sdmVTY2FsZShwYXJhbWV0ZXIpKSArICcpJztcbiAgfSxcblxuICByZXNvbHZlU2NhbGU6IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIGlmIChwYXJhbWV0ZXIuc2NhbGUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHBhcmFtZXRlci5zY2FsZTtcbiAgICB9IGVsc2UgaWYgKHBhcmFtZXRlci52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA3O1xuICAgIH1cbiAgfSxcblxuICB3cml0ZVR5cGVJbmZvKGJ1ZmZlciwgcGFyYW1ldGVyKSB7XG4gICAgYnVmZmVyLndyaXRlVUludDgodGhpcy5pZCk7XG4gICAgYnVmZmVyLndyaXRlVUludDgocGFyYW1ldGVyLnNjYWxlISk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZShidWZmZXIsIHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlIGFzIFRlbXBvcmFsVmFsdWUgfCBudWxsO1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBidWZmZXIud3JpdGVVSW50OCgweDAwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBidWZmZXIud3JpdGVVSW50OCh0aW1lTGVuZ3RoKHBhcmFtZXRlci5zY2FsZSkgKyAzKTtcbiAgICB3cml0ZVRpbWVPZkRheShidWZmZXIsIHZhbHVlLCBwYXJhbWV0ZXIuc2NhbGUhLCBvcHRpb25zLnVzZVVUQyk7XG4gICAgYnVmZmVyLndyaXRlVUludDI0TEUoZGF5c1NpbmNlWWVhck9uZSh2YWx1ZSwgb3B0aW9ucy51c2VVVEMpKTtcbiAgfSxcblxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWU6IGFueSwgY29sbGF0aW9uLCBvcHRpb25zKTogbnVsbCB8IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgYXMgRGF0ZTtcblxuICAgIGxldCB5ZWFyO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgeWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgaWYgKHllYXIgPCAxIHx8IHllYXIgPiA5OTk5KSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPdXQgb2YgcmFuZ2UuJyk7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBkYXRlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVRpbWUyO1xubW9kdWxlLmV4cG9ydHMgPSBEYXRlVGltZTI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLFNBQTZFLEdBQUc7RUFDcEZDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxZQUFZO0VBQ2xCQyxJQUFJLEVBQUUsV0FBVztFQUVqQkMsV0FBVyxFQUFFLFNBQUFBLENBQVNDLFNBQVMsRUFBRTtJQUMvQixPQUFPLFlBQVksR0FBSSxJQUFJLENBQUNDLFlBQVksQ0FBQ0QsU0FBUyxDQUFFLEdBQUcsR0FBRztFQUM1RCxDQUFDO0VBRURDLFlBQVksRUFBRSxTQUFBQSxDQUFTRCxTQUFTLEVBQUU7SUFDaEMsSUFBSUEsU0FBUyxDQUFDRSxLQUFLLElBQUksSUFBSSxFQUFFO01BQzNCLE9BQU9GLFNBQVMsQ0FBQ0UsS0FBSztJQUN4QixDQUFDLE1BQU0sSUFBSUYsU0FBUyxDQUFDRyxLQUFLLEtBQUssSUFBSSxFQUFFO01BQ25DLE9BQU8sQ0FBQztJQUNWLENBQUMsTUFBTTtNQUNMLE9BQU8sQ0FBQztJQUNWO0VBQ0YsQ0FBQztFQUVEQyxhQUFhQSxDQUFDQyxNQUFNLEVBQUVMLFNBQVMsRUFBRTtJQUMvQkssTUFBTSxDQUFDQyxVQUFVLENBQUMsSUFBSSxDQUFDVixFQUFFLENBQUM7SUFDMUJTLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDTixTQUFTLENBQUNFLEtBQU0sQ0FBQztFQUNyQyxDQUFDO0VBRURLLFVBQVVBLENBQUNGLE1BQU0sRUFBRUwsU0FBUyxFQUFFUSxPQUFPLEVBQUU7SUFDckMsTUFBTUwsS0FBSyxHQUFHSCxTQUFTLENBQUNHLEtBQTZCO0lBQ3JELElBQUlBLEtBQUssSUFBSSxJQUFJLEVBQUU7TUFDakJFLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLElBQUksQ0FBQztNQUN2QjtJQUNGO0lBRUFELE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLElBQUFHLG9CQUFVLEVBQUNULFNBQVMsQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xELElBQUFRLHdCQUFjLEVBQUNMLE1BQU0sRUFBRUYsS0FBSyxFQUFFSCxTQUFTLENBQUNFLEtBQUssRUFBR00sT0FBTyxDQUFDRyxNQUFNLENBQUM7SUFDL0ROLE1BQU0sQ0FBQ08sYUFBYSxDQUFDLElBQUFDLDBCQUFnQixFQUFDVixLQUFLLEVBQUVLLE9BQU8sQ0FBQ0csTUFBTSxDQUFDLENBQUM7RUFDL0QsQ0FBQztFQUVERyxRQUFRLEVBQUUsU0FBQUEsQ0FBU1gsS0FBVSxFQUFFWSxTQUFTLEVBQUVQLE9BQU8sRUFBaUI7SUFDaEUsSUFBSUwsS0FBSyxJQUFJLElBQUksRUFBRTtNQUNqQixPQUFPLElBQUk7SUFDYjtJQUVBLElBQUksRUFBRUEsS0FBSyxZQUFZYSxJQUFJLENBQUMsRUFBRTtNQUM1QmIsS0FBSyxHQUFHLElBQUlhLElBQUksQ0FBQ0EsSUFBSSxDQUFDQyxLQUFLLENBQUNkLEtBQUssQ0FBQyxDQUFDO0lBQ3JDO0lBRUFBLEtBQUssR0FBR0EsS0FBYTtJQUVyQixJQUFJZSxJQUFJO0lBQ1IsSUFBSVYsT0FBTyxJQUFJQSxPQUFPLENBQUNHLE1BQU0sRUFBRTtNQUM3Qk8sSUFBSSxHQUFHZixLQUFLLENBQUNnQixjQUFjLENBQUMsQ0FBQztJQUMvQixDQUFDLE1BQU07TUFDTEQsSUFBSSxHQUFHZixLQUFLLENBQUNpQixXQUFXLENBQUMsQ0FBQztJQUM1QjtJQUVBLElBQUlGLElBQUksR0FBRyxDQUFDLElBQUlBLElBQUksR0FBRyxJQUFJLEVBQUU7TUFDM0IsTUFBTSxJQUFJRyxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3RDO0lBRUEsSUFBSUMsS0FBSyxDQUFDbkIsS0FBSyxDQUFDLEVBQUU7TUFDaEIsTUFBTSxJQUFJa0IsU0FBUyxDQUFDLGVBQWUsQ0FBQztJQUN0QztJQUVBLE9BQU9sQixLQUFLO0VBQ2Q7QUFDRixDQUFDO0FBQUMsSUFBQW9CLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWE5QixTQUFTO0FBQ3hCK0IsTUFBTSxDQUFDRixPQUFPLEdBQUc3QixTQUFTIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime2.js","names":["
|
|
1
|
+
{"version":3,"file":"datetime2.js","names":["_temporal","require","DateTime2","id","type","name","declaration","parameter","resolveScale","scale","value","writeTypeInfo","buffer","writeUInt8","writeValue","options","timeLength","writeTimeOfDay","useUTC","writeUInt24LE","daysSinceYearOne","validate","collation","Date","parse","year","getUTCFullYear","getFullYear","TypeError","isNaN","_default","exports","default","module"],"sources":["../../src/data-types/datetime2.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport { daysSinceYearOne, timeLength, writeTimeOfDay, type TemporalValue } from './temporal';\n\nconst DateTime2: DataType & { resolveScale: NonNullable<DataType['resolveScale']> } = {\n id: 0x2A,\n type: 'DATETIME2N',\n name: 'DateTime2',\n\n declaration: function(parameter) {\n return 'datetime2(' + (this.resolveScale(parameter)) + ')';\n },\n\n resolveScale: function(parameter) {\n if (parameter.scale != null) {\n return parameter.scale;\n } else if (parameter.value === null) {\n return 0;\n } else {\n return 7;\n }\n },\n\n writeTypeInfo(buffer, parameter) {\n buffer.writeUInt8(this.id);\n buffer.writeUInt8(parameter.scale!);\n },\n\n writeValue(buffer, parameter, options) {\n const value = parameter.value as TemporalValue | null;\n if (value == null) {\n buffer.writeUInt8(0x00);\n return;\n }\n\n buffer.writeUInt8(timeLength(parameter.scale) + 3);\n writeTimeOfDay(buffer, value, parameter.scale!, options.useUTC);\n buffer.writeUInt24LE(daysSinceYearOne(value, options.useUTC));\n },\n\n validate: function(value: any, collation, options): null | number {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n value = value as Date;\n\n let year;\n if (options && options.useUTC) {\n year = value.getUTCFullYear();\n } else {\n year = value.getFullYear();\n }\n\n if (year < 1 || year > 9999) {\n throw new TypeError('Out of range.');\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default DateTime2;\nmodule.exports = DateTime2;\n"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA,MAAMC,SAA6E,GAAG;EACpFC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,YAAY;EAClBC,IAAI,EAAE,WAAW;EAEjBC,WAAW,EAAE,SAAAA,CAASC,SAAS,EAAE;IAC/B,OAAO,YAAY,GAAI,IAAI,CAACC,YAAY,CAACD,SAAS,CAAE,GAAG,GAAG;EAC5D,CAAC;EAEDC,YAAY,EAAE,SAAAA,CAASD,SAAS,EAAE;IAChC,IAAIA,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B,OAAOF,SAAS,CAACE,KAAK;IACxB,CAAC,MAAM,IAAIF,SAAS,CAACG,KAAK,KAAK,IAAI,EAAE;MACnC,OAAO,CAAC;IACV,CAAC,MAAM;MACL,OAAO,CAAC;IACV;EACF,CAAC;EAEDC,aAAaA,CAACC,MAAM,EAAEL,SAAS,EAAE;IAC/BK,MAAM,CAACC,UAAU,CAAC,IAAI,CAACV,EAAE,CAAC;IAC1BS,MAAM,CAACC,UAAU,CAACN,SAAS,CAACE,KAAM,CAAC;EACrC,CAAC;EAEDK,UAAUA,CAACF,MAAM,EAAEL,SAAS,EAAEQ,OAAO,EAAE;IACrC,MAAML,KAAK,GAAGH,SAAS,CAACG,KAA6B;IACrD,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjBE,MAAM,CAACC,UAAU,CAAC,IAAI,CAAC;MACvB;IACF;IAEAD,MAAM,CAACC,UAAU,CAAC,IAAAG,oBAAU,EAACT,SAAS,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,IAAAQ,wBAAc,EAACL,MAAM,EAAEF,KAAK,EAAEH,SAAS,CAACE,KAAK,EAAGM,OAAO,CAACG,MAAM,CAAC;IAC/DN,MAAM,CAACO,aAAa,CAAC,IAAAC,0BAAgB,EAACV,KAAK,EAAEK,OAAO,CAACG,MAAM,CAAC,CAAC;EAC/D,CAAC;EAEDG,QAAQ,EAAE,SAAAA,CAASX,KAAU,EAAEY,SAAS,EAAEP,OAAO,EAAiB;IAChE,IAAIL,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,IAAI,EAAEA,KAAK,YAAYa,IAAI,CAAC,EAAE;MAC5Bb,KAAK,GAAG,IAAIa,IAAI,CAACA,IAAI,CAACC,KAAK,CAACd,KAAK,CAAC,CAAC;IACrC;IAEAA,KAAK,GAAGA,KAAa;IAErB,IAAIe,IAAI;IACR,IAAIV,OAAO,IAAIA,OAAO,CAACG,MAAM,EAAE;MAC7BO,IAAI,GAAGf,KAAK,CAACgB,cAAc,CAAC,CAAC;IAC/B,CAAC,MAAM;MACLD,IAAI,GAAGf,KAAK,CAACiB,WAAW,CAAC,CAAC;IAC5B;IAEA,IAAIF,IAAI,GAAG,CAAC,IAAIA,IAAI,GAAG,IAAI,EAAE;MAC3B,MAAM,IAAIG,SAAS,CAAC,eAAe,CAAC;IACtC;IAEA,IAAIC,KAAK,CAACnB,KAAK,CAAC,EAAE;MAChB,MAAM,IAAIkB,SAAS,CAAC,eAAe,CAAC;IACtC;IAEA,OAAOlB,KAAK;EACd;AACF,CAAC;AAAC,IAAAoB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa9B,SAAS;AACxB+B,MAAM,CAACF,OAAO,GAAG7B,SAAS","ignoreList":[]}
|
|
@@ -11,13 +11,10 @@ const DateTimeN = {
|
|
|
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 DateTimeN = {
|
|
|
26
23
|
};
|
|
27
24
|
var _default = exports.default = DateTimeN;
|
|
28
25
|
module.exports = DateTimeN;
|
|
29
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRlVGltZU4iLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJFcnJvciIsIndyaXRlVHlwZUluZm8iLCJ3cml0ZVZhbHVlIiwidmFsaWRhdGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGF0ZXRpbWVuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuXG5jb25zdCBEYXRlVGltZU46IERhdGFUeXBlID0ge1xuICBpZDogMHg2RixcbiAgdHlwZTogJ0RBVEVUSU1OJyxcbiAgbmFtZTogJ0RhdGVUaW1lTicsXG5cbiAgZGVjbGFyYXRpb24oKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfSxcblxuICB3cml0ZVR5cGVJbmZvKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH0sXG5cbiAgd3JpdGVWYWx1ZSgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9LFxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IERhdGVUaW1lTjtcbm1vZHVsZS5leHBvcnRzID0gRGF0ZVRpbWVOO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFNQSxTQUFtQixHQUFHO0VBQzFCQyxFQUFFLEVBQUUsSUFBSTtFQUNSQyxJQUFJLEVBQUUsVUFBVTtFQUNoQkMsSUFBSSxFQUFFLFdBQVc7RUFFakJDLFdBQVdBLENBQUEsRUFBRztJQUNaLE1BQU0sSUFBSUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0VBQ3BDLENBQUM7RUFFREMsYUFBYUEsQ0FBQSxFQUFHO0lBQ2QsTUFBTSxJQUFJRCxLQUFLLENBQUMsaUJBQWlCLENBQUM7RUFDcEMsQ0FBQztFQUVERSxVQUFVQSxDQUFBLEVBQUc7SUFDWCxNQUFNLElBQUlGLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztFQUNwQyxDQUFDO0VBRURHLFFBQVFBLENBQUEsRUFBRztJQUNULE1BQU0sSUFBSUgsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0VBQ3BDO0FBQ0YsQ0FBQztBQUFDLElBQUFJLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWFYLFNBQVM7QUFDeEJZLE1BQU0sQ0FBQ0YsT0FBTyxHQUFHVixTQUFTIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetimen.js","names":["DateTimeN","id","type","name","declaration","Error","
|
|
1
|
+
{"version":3,"file":"datetimen.js","names":["DateTimeN","id","type","name","declaration","Error","writeTypeInfo","writeValue","validate","_default","exports","default","module"],"sources":["../../src/data-types/datetimen.ts"],"sourcesContent":["import { type DataType } from '../data-type';\n\nconst DateTimeN: DataType = {\n id: 0x6F,\n type: 'DATETIMN',\n name: 'DateTimeN',\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 DateTimeN;\nmodule.exports = DateTimeN;\n"],"mappings":";;;;;;AAEA,MAAMA,SAAmB,GAAG;EAC1BC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,UAAU;EAChBC,IAAI,EAAE,WAAW;EAEjBC,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,SAAS;AACxBY,MAAM,CAACF,OAAO,GAAGV,SAAS","ignoreList":[]}
|
|
@@ -4,11 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
8
|
-
var _writableTrackingBuffer = _interopRequireDefault(require("../tracking-buffer/writable-tracking-buffer"));
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
const EPOCH_DATE = _core.LocalDate.ofYearDay(1, 1);
|
|
11
|
-
const NULL_LENGTH = Buffer.from([0x00]);
|
|
7
|
+
var _temporal = require("./temporal");
|
|
12
8
|
const DateTimeOffset = {
|
|
13
9
|
id: 0x2B,
|
|
14
10
|
type: 'DATETIMEOFFSETN',
|
|
@@ -25,63 +21,20 @@ const DateTimeOffset = {
|
|
|
25
21
|
return 7;
|
|
26
22
|
}
|
|
27
23
|
},
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
writeTypeInfo(buffer, parameter) {
|
|
25
|
+
buffer.writeUInt8(this.id);
|
|
26
|
+
buffer.writeUInt8(parameter.scale);
|
|
30
27
|
},
|
|
31
|
-
|
|
32
|
-
if (parameter.value == null) {
|
|
33
|
-
return NULL_LENGTH;
|
|
34
|
-
}
|
|
35
|
-
switch (parameter.scale) {
|
|
36
|
-
case 0:
|
|
37
|
-
case 1:
|
|
38
|
-
case 2:
|
|
39
|
-
return Buffer.from([0x08]);
|
|
40
|
-
case 3:
|
|
41
|
-
case 4:
|
|
42
|
-
return Buffer.from([0x09]);
|
|
43
|
-
case 5:
|
|
44
|
-
case 6:
|
|
45
|
-
case 7:
|
|
46
|
-
return Buffer.from([0x0A]);
|
|
47
|
-
default:
|
|
48
|
-
throw new Error('invalid scale');
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
*generateParameterData(parameter, options) {
|
|
52
|
-
if (parameter.value == null) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
28
|
+
writeValue(buffer, parameter) {
|
|
55
29
|
const value = parameter.value;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
let timestamp;
|
|
60
|
-
timestamp = ((value.getUTCHours() * 60 + value.getUTCMinutes()) * 60 + value.getUTCSeconds()) * 1000 + value.getMilliseconds();
|
|
61
|
-
timestamp = timestamp * Math.pow(10, scale - 3);
|
|
62
|
-
timestamp += (value.nanosecondDelta != null ? value.nanosecondDelta : 0) * Math.pow(10, scale);
|
|
63
|
-
timestamp = Math.round(timestamp);
|
|
64
|
-
switch (scale) {
|
|
65
|
-
case 0:
|
|
66
|
-
case 1:
|
|
67
|
-
case 2:
|
|
68
|
-
buffer.writeUInt24LE(timestamp);
|
|
69
|
-
break;
|
|
70
|
-
case 3:
|
|
71
|
-
case 4:
|
|
72
|
-
buffer.writeUInt32LE(timestamp);
|
|
73
|
-
break;
|
|
74
|
-
case 5:
|
|
75
|
-
case 6:
|
|
76
|
-
case 7:
|
|
77
|
-
buffer.writeUInt40LE(timestamp);
|
|
30
|
+
if (value == null) {
|
|
31
|
+
buffer.writeUInt8(0x00);
|
|
32
|
+
return;
|
|
78
33
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
buffer.writeUInt24LE(
|
|
82
|
-
|
|
83
|
-
buffer.writeInt16LE(offset);
|
|
84
|
-
yield buffer.data;
|
|
34
|
+
buffer.writeUInt8((0, _temporal.timeLength)(parameter.scale) + 5);
|
|
35
|
+
(0, _temporal.writeTimeOfDay)(buffer, value, parameter.scale, true);
|
|
36
|
+
buffer.writeUInt24LE((0, _temporal.daysSinceYearOne)(value, true));
|
|
37
|
+
buffer.writeInt16LE(-value.getTimezoneOffset());
|
|
85
38
|
},
|
|
86
39
|
validate: function (value, collation, options) {
|
|
87
40
|
if (value == null) {
|
|
@@ -108,4 +61,4 @@ const DateTimeOffset = {
|
|
|
108
61
|
};
|
|
109
62
|
var _default = exports.default = DateTimeOffset;
|
|
110
63
|
module.exports = DateTimeOffset;
|
|
111
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJFUE9DSF9EQVRFIiwiTG9jYWxEYXRlIiwib2ZZZWFyRGF5IiwiTlVMTF9MRU5HVEgiLCJCdWZmZXIiLCJmcm9tIiwiRGF0ZVRpbWVPZmZzZXQiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJwYXJhbWV0ZXIiLCJyZXNvbHZlU2NhbGUiLCJzY2FsZSIsInZhbHVlIiwiZ2VuZXJhdGVUeXBlSW5mbyIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwib3B0aW9ucyIsIkVycm9yIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwiYnVmZmVyIiwiV3JpdGFibGVUcmFja2luZ0J1ZmZlciIsInRpbWVzdGFtcCIsImdldFVUQ0hvdXJzIiwiZ2V0VVRDTWludXRlcyIsImdldFVUQ1NlY29uZHMiLCJnZXRNaWxsaXNlY29uZHMiLCJNYXRoIiwicG93IiwibmFub3NlY29uZERlbHRhIiwicm91bmQiLCJ3cml0ZVVJbnQyNExFIiwid3JpdGVVSW50MzJMRSIsIndyaXRlVUludDQwTEUiLCJkYXRlIiwib2YiLCJnZXRVVENGdWxsWWVhciIsImdldFVUQ01vbnRoIiwiZ2V0VVRDRGF0ZSIsImRheXMiLCJ1bnRpbCIsIkNocm9ub1VuaXQiLCJEQVlTIiwib2Zmc2V0IiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJ3cml0ZUludDE2TEUiLCJkYXRhIiwidmFsaWRhdGUiLCJjb2xsYXRpb24iLCJEYXRlIiwicGFyc2UiLCJ5ZWFyIiwidXNlVVRDIiwiZ2V0RnVsbFllYXIiLCJUeXBlRXJyb3IiLCJpc05hTiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhLXR5cGVzL2RhdGV0aW1lb2Zmc2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0YVR5cGUgfSBmcm9tICcuLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgQ2hyb25vVW5pdCwgTG9jYWxEYXRlIH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5pbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuLi90cmFja2luZy1idWZmZXIvd3JpdGFibGUtdHJhY2tpbmctYnVmZmVyJztcblxuY29uc3QgRVBPQ0hfREFURSA9IExvY2FsRGF0ZS5vZlllYXJEYXkoMSwgMSk7XG5jb25zdCBOVUxMX0xFTkdUSCA9IEJ1ZmZlci5mcm9tKFsweDAwXSk7XG5cbmNvbnN0IERhdGVUaW1lT2Zmc2V0OiBEYXRhVHlwZSAmIHsgcmVzb2x2ZVNjYWxlOiBOb25OdWxsYWJsZTxEYXRhVHlwZVsncmVzb2x2ZVNjYWxlJ10+IH0gPSB7XG4gIGlkOiAweDJCLFxuICB0eXBlOiAnREFURVRJTUVPRkZTRVROJyxcbiAgbmFtZTogJ0RhdGVUaW1lT2Zmc2V0JyxcbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIHJldHVybiAnZGF0ZXRpbWVvZmZzZXQoJyArICh0aGlzLnJlc29sdmVTY2FsZShwYXJhbWV0ZXIpKSArICcpJztcbiAgfSxcbiAgcmVzb2x2ZVNjYWxlOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBpZiAocGFyYW1ldGVyLnNjYWxlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIuc2NhbGU7XG4gICAgfSBlbHNlIGlmIChwYXJhbWV0ZXIudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gNztcbiAgICB9XG4gIH0sXG5cbiAgZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbWV0ZXIpIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oW3RoaXMuaWQsIHBhcmFtZXRlci5zY2FsZSFdKTtcbiAgfSxcblxuICBnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aChwYXJhbWV0ZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAocGFyYW1ldGVyLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBOVUxMX0xFTkdUSDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHBhcmFtZXRlci5zY2FsZSkge1xuICAgICAgY2FzZSAwOlxuICAgICAgY2FzZSAxOlxuICAgICAgY2FzZSAyOlxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20oWzB4MDhdKTtcblxuICAgICAgY2FzZSAzOlxuICAgICAgY2FzZSA0OlxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20oWzB4MDldKTtcblxuICAgICAgY2FzZSA1OlxuICAgICAgY2FzZSA2OlxuICAgICAgY2FzZSA3OlxuICAgICAgICByZXR1cm4gQnVmZmVyLmZyb20oWzB4MEFdKTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHNjYWxlJyk7XG4gICAgfVxuICB9LFxuXG4gICogZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtZXRlciwgb3B0aW9ucykge1xuICAgIGlmIChwYXJhbWV0ZXIudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyLnZhbHVlO1xuICAgIGxldCBzY2FsZSA9IHBhcmFtZXRlci5zY2FsZTtcblxuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKCk7XG4gICAgc2NhbGUgPSBzY2FsZSE7XG5cbiAgICBsZXQgdGltZXN0YW1wOiBudW1iZXI7XG4gICAgdGltZXN0YW1wID0gKCh2YWx1ZS5nZXRVVENIb3VycygpICogNjAgKyB2YWx1ZS5nZXRVVENNaW51dGVzKCkpICogNjAgKyB2YWx1ZS5nZXRVVENTZWNvbmRzKCkpICogMTAwMCArIHZhbHVlLmdldE1pbGxpc2Vjb25kcygpO1xuICAgIHRpbWVzdGFtcCA9IHRpbWVzdGFtcCAqIE1hdGgucG93KDEwLCBzY2FsZSAtIDMpO1xuICAgIHRpbWVzdGFtcCArPSAodmFsdWUubmFub3NlY29uZERlbHRhICE9IG51bGwgPyB2YWx1ZS5uYW5vc2Vjb25kRGVsdGEgOiAwKSAqIE1hdGgucG93KDEwLCBzY2FsZSk7XG4gICAgdGltZXN0YW1wID0gTWF0aC5yb3VuZCh0aW1lc3RhbXApO1xuXG4gICAgc3dpdGNoIChzY2FsZSkge1xuICAgICAgY2FzZSAwOlxuICAgICAgY2FzZSAxOlxuICAgICAgY2FzZSAyOlxuICAgICAgICBidWZmZXIud3JpdGVVSW50MjRMRSh0aW1lc3RhbXApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgIGNhc2UgNDpcbiAgICAgICAgYnVmZmVyLndyaXRlVUludDMyTEUodGltZXN0YW1wKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDU6XG4gICAgICBjYXNlIDY6XG4gICAgICBjYXNlIDc6XG4gICAgICAgIGJ1ZmZlci53cml0ZVVJbnQ0MExFKHRpbWVzdGFtcCk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZSA9IExvY2FsRGF0ZS5vZih2YWx1ZS5nZXRVVENGdWxsWWVhcigpLCB2YWx1ZS5nZXRVVENNb250aCgpICsgMSwgdmFsdWUuZ2V0VVRDRGF0ZSgpKTtcbiAgICBjb25zdCBkYXlzID0gRVBPQ0hfREFURS51bnRpbChkYXRlLCBDaHJvbm9Vbml0LkRBWVMpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQyNExFKGRheXMpO1xuXG4gICAgY29uc3Qgb2Zmc2V0ID0gLXZhbHVlLmdldFRpbWV6b25lT2Zmc2V0KCk7XG4gICAgYnVmZmVyLndyaXRlSW50MTZMRShvZmZzZXQpO1xuICAgIHlpZWxkIGJ1ZmZlci5kYXRhO1xuICB9LFxuICB2YWxpZGF0ZTogZnVuY3Rpb24odmFsdWU6IGFueSwgY29sbGF0aW9uLCBvcHRpb25zKTogbnVsbCB8IG51bWJlciB7XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHZhbHVlID0gbmV3IERhdGUoRGF0ZS5wYXJzZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgYXMgRGF0ZTtcblxuICAgIGxldCB5ZWFyO1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMudXNlVVRDKSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgeWVhciA9IHZhbHVlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuXG4gICAgaWYgKHllYXIgPCAxIHx8IHllYXIgPiA5OTk5KSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPdXQgb2YgcmFuZ2UuJyk7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBkYXRlLicpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgRGF0ZVRpbWVPZmZzZXQ7XG5tb2R1bGUuZXhwb3J0cyA9IERhdGVUaW1lT2Zmc2V0O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxLQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQWlGLFNBQUFFLHVCQUFBQyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRWpGLE1BQU1HLFVBQVUsR0FBR0MsZUFBUyxDQUFDQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM1QyxNQUFNQyxXQUFXLEdBQUdDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFdkMsTUFBTUMsY0FBa0YsR0FBRztFQUN6RkMsRUFBRSxFQUFFLElBQUk7RUFDUkMsSUFBSSxFQUFFLGlCQUFpQjtFQUN2QkMsSUFBSSxFQUFF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
|
|
64
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVtcG9yYWwiLCJyZXF1aXJlIiwiRGF0ZVRpbWVPZmZzZXQiLCJpZCIsInR5cGUiLCJuYW1lIiwiZGVjbGFyYXRpb24iLCJwYXJhbWV0ZXIiLCJyZXNvbHZlU2NhbGUiLCJzY2FsZSIsInZhbHVlIiwid3JpdGVUeXBlSW5mbyIsImJ1ZmZlciIsIndyaXRlVUludDgiLCJ3cml0ZVZhbHVlIiwidGltZUxlbmd0aCIsIndyaXRlVGltZU9mRGF5Iiwid3JpdGVVSW50MjRMRSIsImRheXNTaW5jZVllYXJPbmUiLCJ3cml0ZUludDE2TEUiLCJnZXRUaW1lem9uZU9mZnNldCIsInZhbGlkYXRlIiwiY29sbGF0aW9uIiwib3B0aW9ucyIsIkRhdGUiLCJwYXJzZSIsInllYXIiLCJ1c2VVVEMiLCJnZXRVVENGdWxsWWVhciIsImdldEZ1bGxZZWFyIiwiVHlwZUVycm9yIiwiaXNOYU4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGF0ZXRpbWVvZmZzZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEYXRhVHlwZSB9IGZyb20gJy4uL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyBkYXlzU2luY2VZZWFyT25lLCB0aW1lTGVuZ3RoLCB3cml0ZVRpbWVPZkRheSwgdHlwZSBUZW1wb3JhbFZhbHVlIH0gZnJvbSAnLi90ZW1wb3JhbCc7XG5cbmNvbnN0IERhdGVUaW1lT2Zmc2V0OiBEYXRhVHlwZSAmIHsgcmVzb2x2ZVNjYWxlOiBOb25OdWxsYWJsZTxEYXRhVHlwZVsncmVzb2x2ZVNjYWxlJ10+IH0gPSB7XG4gIGlkOiAweDJCLFxuICB0eXBlOiAnREFURVRJTUVPRkZTRVROJyxcbiAgbmFtZTogJ0RhdGVUaW1lT2Zmc2V0JyxcbiAgZGVjbGFyYXRpb246IGZ1bmN0aW9uKHBhcmFtZXRlcikge1xuICAgIHJldHVybiAnZGF0ZXRpbWVvZmZzZXQoJyArICh0aGlzLnJlc29sdmVTY2FsZShwYXJhbWV0ZXIpKSArICcpJztcbiAgfSxcbiAgcmVzb2x2ZVNjYWxlOiBmdW5jdGlvbihwYXJhbWV0ZXIpIHtcbiAgICBpZiAocGFyYW1ldGVyLnNjYWxlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBwYXJhbWV0ZXIuc2NhbGU7XG4gICAgfSBlbHNlIGlmIChwYXJhbWV0ZXIudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gNztcbiAgICB9XG4gIH0sXG5cbiAgd3JpdGVUeXBlSW5mbyhidWZmZXIsIHBhcmFtZXRlcikge1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHRoaXMuaWQpO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHBhcmFtZXRlci5zY2FsZSEpO1xuICB9LFxuXG4gIHdyaXRlVmFsdWUoYnVmZmVyLCBwYXJhbWV0ZXIpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlci52YWx1ZSBhcyBUZW1wb3JhbFZhbHVlIHwgbnVsbDtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgYnVmZmVyLndyaXRlVUludDgoMHgwMCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgYnVmZmVyLndyaXRlVUludDgodGltZUxlbmd0aChwYXJhbWV0ZXIuc2NhbGUpICsgNSk7XG4gICAgd3JpdGVUaW1lT2ZEYXkoYnVmZmVyLCB2YWx1ZSwgcGFyYW1ldGVyLnNjYWxlISwgdHJ1ZSk7XG4gICAgYnVmZmVyLndyaXRlVUludDI0TEUoZGF5c1NpbmNlWWVhck9uZSh2YWx1ZSwgdHJ1ZSkpO1xuICAgIGJ1ZmZlci53cml0ZUludDE2TEUoLXZhbHVlLmdldFRpbWV6b25lT2Zmc2V0KCkpO1xuICB9LFxuXG4gIHZhbGlkYXRlOiBmdW5jdGlvbih2YWx1ZTogYW55LCBjb2xsYXRpb24sIG9wdGlvbnMpOiBudWxsIHwgbnVtYmVyIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCEodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgRGF0ZShEYXRlLnBhcnNlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSBhcyBEYXRlO1xuXG4gICAgbGV0IHllYXI7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy51c2VVVEMpIHtcbiAgICAgIHllYXIgPSB2YWx1ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB5ZWFyID0gdmFsdWUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG5cbiAgICBpZiAoeWVhciA8IDEgfHwgeWVhciA+IDk5OTkpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ091dCBvZiByYW5nZS4nKTtcbiAgICB9XG5cbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGRhdGUuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBEYXRlVGltZU9mZnNldDtcbm1vZHVsZS5leHBvcnRzID0gRGF0ZVRpbWVPZmZzZXQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVBLE1BQU1DLGNBQWtGLEdBQUc7RUFDekZDLEVBQUUsRUFBRSxJQUFJO0VBQ1JDLElBQUksRUFBRSxpQkFBaUI7RUFDdkJDLElBQUksRUFBRSxnQkFBZ0I7RUFDdEJDLFdBQVcsRUFBRSxTQUFBQSxDQUFTQyxTQUFTLEVBQUU7SUFDL0IsT0FBTyxpQkFBaUIsR0FBSSxJQUFJLENBQUNDLFlBQVksQ0FBQ0QsU0FBUyxDQUFFLEdBQUcsR0FBRztFQUNqRSxDQUFDO0VBQ0RDLFlBQVksRUFBRSxTQUFBQSxDQUFTRCxTQUFTLEVBQUU7SUFDaEMsSUFBSUEsU0FBUyxDQUFDRSxLQUFLLElBQUksSUFBSSxFQUFFO01BQzNCLE9BQU9GLFNBQVMsQ0FBQ0UsS0FBSztJQUN4QixDQUFDLE1BQU0sSUFBSUYsU0FBUyxDQUFDRyxLQUFLLEtBQUssSUFBSSxFQUFFO01BQ25DLE9BQU8sQ0FBQztJQUNWLENBQUMsTUFBTTtNQUNMLE9BQU8sQ0FBQztJQUNWO0VBQ0YsQ0FBQztFQUVEQyxhQUFhQSxDQUFDQyxNQUFNLEVBQUVMLFNBQVMsRUFBRTtJQUMvQkssTUFBTSxDQUFDQyxVQUFVLENBQUMsSUFBSSxDQUFDVixFQUFFLENBQUM7SUFDMUJTLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDTixTQUFTLENBQUNFLEtBQU0sQ0FBQztFQUNyQyxDQUFDO0VBRURLLFVBQVVBLENBQUNGLE1BQU0sRUFBRUwsU0FBUyxFQUFFO0lBQzVCLE1BQU1HLEtBQUssR0FBR0gsU0FBUyxDQUFDRyxLQUE2QjtJQUNyRCxJQUFJQSxLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCRSxNQUFNLENBQUNDLFVBQVUsQ0FBQyxJQUFJLENBQUM7TUFDdkI7SUFDRjtJQUVBRCxNQUFNLENBQUNDLFVBQVUsQ0FBQyxJQUFBRSxvQkFBVSxFQUFDUixTQUFTLENBQUNFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxJQUFBTyx3QkFBYyxFQUFDSixNQUFNLEVBQUVGLEtBQUssRUFBRUgsU0FBUyxDQUFDRSxLQUFLLEVBQUcsSUFBSSxDQUFDO0lBQ3JERyxNQUFNLENBQUNLLGFBQWEsQ0FBQyxJQUFBQywwQkFBZ0IsRUFBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ERSxNQUFNLENBQUNPLFlBQVksQ0FBQyxDQUFDVCxLQUFLLENBQUNVLGlCQUFpQixDQUFDLENBQUMsQ0FBQztFQUNqRCxDQUFDO0VBRURDLFFBQVEsRUFBRSxTQUFBQSxDQUFTWCxLQUFVLEVBQUVZLFNBQVMsRUFBRUMsT0FBTyxFQUFpQjtJQUNoRSxJQUFJYixLQUFLLElBQUksSUFBSSxFQUFFO01BQ2pCLE9BQU8sSUFBSTtJQUNiO0lBRUEsSUFBSSxFQUFFQSxLQUFLLFlBQVljLElBQUksQ0FBQyxFQUFFO01BQzVCZCxLQUFLLEdBQUcsSUFBSWMsSUFBSSxDQUFDQSxJQUFJLENBQUNDLEtBQUssQ0FBQ2YsS0FBSyxDQUFDLENBQUM7SUFDckM7SUFFQUEsS0FBSyxHQUFHQSxLQUFhO0lBRXJCLElBQUlnQixJQUFJO0lBQ1IsSUFBSUgsT0FBTyxJQUFJQSxPQUFPLENBQUNJLE1BQU0sRUFBRTtNQUM3QkQsSUFBSSxHQUFHaEIsS0FBSyxDQUFDa0IsY0FBYyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxNQUFNO01BQ0xGLElBQUksR0FBR2hCLEtBQUssQ0FBQ21CLFdBQVcsQ0FBQyxDQUFDO0lBQzVCO0lBRUEsSUFBSUgsSUFBSSxHQUFHLENBQUMsSUFBSUEsSUFBSSxHQUFHLElBQUksRUFBRTtNQUMzQixNQUFNLElBQUlJLFNBQVMsQ0FBQyxlQUFlLENBQUM7SUFDdEM7SUFFQSxJQUFJQyxLQUFLLENBQUNyQixLQUFLLENBQUMsRUFBRTtNQUNoQixNQUFNLElBQUlvQixTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ3RDO0lBRUEsT0FBT3BCLEtBQUs7RUFDZDtBQUNGLENBQUM7QUFBQyxJQUFBc0IsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFYWhDLGNBQWM7QUFDN0JpQyxNQUFNLENBQUNGLE9BQU8sR0FBRy9CLGNBQWMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetimeoffset.js","names":["
|
|
1
|
+
{"version":3,"file":"datetimeoffset.js","names":["_temporal","require","DateTimeOffset","id","type","name","declaration","parameter","resolveScale","scale","value","writeTypeInfo","buffer","writeUInt8","writeValue","timeLength","writeTimeOfDay","writeUInt24LE","daysSinceYearOne","writeInt16LE","getTimezoneOffset","validate","collation","options","Date","parse","year","useUTC","getUTCFullYear","getFullYear","TypeError","isNaN","_default","exports","default","module"],"sources":["../../src/data-types/datetimeoffset.ts"],"sourcesContent":["import { type DataType } from '../data-type';\nimport { daysSinceYearOne, timeLength, writeTimeOfDay, type TemporalValue } from './temporal';\n\nconst DateTimeOffset: DataType & { resolveScale: NonNullable<DataType['resolveScale']> } = {\n id: 0x2B,\n type: 'DATETIMEOFFSETN',\n name: 'DateTimeOffset',\n declaration: function(parameter) {\n return 'datetimeoffset(' + (this.resolveScale(parameter)) + ')';\n },\n resolveScale: function(parameter) {\n if (parameter.scale != null) {\n return parameter.scale;\n } else if (parameter.value === null) {\n return 0;\n } else {\n return 7;\n }\n },\n\n writeTypeInfo(buffer, parameter) {\n buffer.writeUInt8(this.id);\n buffer.writeUInt8(parameter.scale!);\n },\n\n writeValue(buffer, parameter) {\n const value = parameter.value as TemporalValue | null;\n if (value == null) {\n buffer.writeUInt8(0x00);\n return;\n }\n\n buffer.writeUInt8(timeLength(parameter.scale) + 5);\n writeTimeOfDay(buffer, value, parameter.scale!, true);\n buffer.writeUInt24LE(daysSinceYearOne(value, true));\n buffer.writeInt16LE(-value.getTimezoneOffset());\n },\n\n validate: function(value: any, collation, options): null | number {\n if (value == null) {\n return null;\n }\n\n if (!(value instanceof Date)) {\n value = new Date(Date.parse(value));\n }\n\n value = value as Date;\n\n let year;\n if (options && options.useUTC) {\n year = value.getUTCFullYear();\n } else {\n year = value.getFullYear();\n }\n\n if (year < 1 || year > 9999) {\n throw new TypeError('Out of range.');\n }\n\n if (isNaN(value)) {\n throw new TypeError('Invalid date.');\n }\n\n return value;\n }\n};\n\nexport default DateTimeOffset;\nmodule.exports = DateTimeOffset;\n"],"mappings":";;;;;;AACA,IAAAA,SAAA,GAAAC,OAAA;AAEA,MAAMC,cAAkF,GAAG;EACzFC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE,iBAAiB;EACvBC,IAAI,EAAE,gBAAgB;EACtBC,WAAW,EAAE,SAAAA,CAASC,SAAS,EAAE;IAC/B,OAAO,iBAAiB,GAAI,IAAI,CAACC,YAAY,CAACD,SAAS,CAAE,GAAG,GAAG;EACjE,CAAC;EACDC,YAAY,EAAE,SAAAA,CAASD,SAAS,EAAE;IAChC,IAAIA,SAAS,CAACE,KAAK,IAAI,IAAI,EAAE;MAC3B,OAAOF,SAAS,CAACE,KAAK;IACxB,CAAC,MAAM,IAAIF,SAAS,CAACG,KAAK,KAAK,IAAI,EAAE;MACnC,OAAO,CAAC;IACV,CAAC,MAAM;MACL,OAAO,CAAC;IACV;EACF,CAAC;EAEDC,aAAaA,CAACC,MAAM,EAAEL,SAAS,EAAE;IAC/BK,MAAM,CAACC,UAAU,CAAC,IAAI,CAACV,EAAE,CAAC;IAC1BS,MAAM,CAACC,UAAU,CAACN,SAAS,CAACE,KAAM,CAAC;EACrC,CAAC;EAEDK,UAAUA,CAACF,MAAM,EAAEL,SAAS,EAAE;IAC5B,MAAMG,KAAK,GAAGH,SAAS,CAACG,KAA6B;IACrD,IAAIA,KAAK,IAAI,IAAI,EAAE;MACjBE,MAAM,CAACC,UAAU,CAAC,IAAI,CAAC;MACvB;IACF;IAEAD,MAAM,CAACC,UAAU,CAAC,IAAAE,oBAAU,EAACR,SAAS,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClD,IAAAO,wBAAc,EAACJ,MAAM,EAAEF,KAAK,EAAEH,SAAS,CAACE,KAAK,EAAG,IAAI,CAAC;IACrDG,MAAM,CAACK,aAAa,CAAC,IAAAC,0BAAgB,EAACR,KAAK,EAAE,IAAI,CAAC,CAAC;IACnDE,MAAM,CAACO,YAAY,CAAC,CAACT,KAAK,CAACU,iBAAiB,CAAC,CAAC,CAAC;EACjD,CAAC;EAEDC,QAAQ,EAAE,SAAAA,CAASX,KAAU,EAAEY,SAAS,EAAEC,OAAO,EAAiB;IAChE,IAAIb,KAAK,IAAI,IAAI,EAAE;MACjB,OAAO,IAAI;IACb;IAEA,IAAI,EAAEA,KAAK,YAAYc,IAAI,CAAC,EAAE;MAC5Bd,KAAK,GAAG,IAAIc,IAAI,CAACA,IAAI,CAACC,KAAK,CAACf,KAAK,CAAC,CAAC;IACrC;IAEAA,KAAK,GAAGA,KAAa;IAErB,IAAIgB,IAAI;IACR,IAAIH,OAAO,IAAIA,OAAO,CAACI,MAAM,EAAE;MAC7BD,IAAI,GAAGhB,KAAK,CAACkB,cAAc,CAAC,CAAC;IAC/B,CAAC,MAAM;MACLF,IAAI,GAAGhB,KAAK,CAACmB,WAAW,CAAC,CAAC;IAC5B;IAEA,IAAIH,IAAI,GAAG,CAAC,IAAIA,IAAI,GAAG,IAAI,EAAE;MAC3B,MAAM,IAAII,SAAS,CAAC,eAAe,CAAC;IACtC;IAEA,IAAIC,KAAK,CAACrB,KAAK,CAAC,EAAE;MAChB,MAAM,IAAIoB,SAAS,CAAC,eAAe,CAAC;IACtC;IAEA,OAAOpB,KAAK;EACd;AACF,CAAC;AAAC,IAAAsB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEahC,cAAc;AAC7BiC,MAAM,CAACF,OAAO,GAAG/B,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type WritableTrackingBuffer from '../tracking-buffer/writable-tracking-buffer';
|
|
2
|
+
/**
|
|
3
|
+
* The number of bytes the magnitude of a `decimal` or `numeric` value takes
|
|
4
|
+
* at `precision`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function decimalLength(precision: number | undefined): 4 | 8 | 12 | 16;
|
|
7
|
+
/**
|
|
8
|
+
* Writes the TYPE_INFO of a `decimal` or `numeric` column: the nullable type
|
|
9
|
+
* id, the length of a value, and the precision and scale.
|
|
10
|
+
*/
|
|
11
|
+
export declare function writeDecimalTypeInfo(buffer: WritableTrackingBuffer, id: number, precision: number | undefined, scale: number | undefined): void;
|
|
12
|
+
/**
|
|
13
|
+
* Writes a validated `decimal` or `numeric` value: the length, the sign,
|
|
14
|
+
* and the scaled magnitude as a little-endian unsigned integer spanning the
|
|
15
|
+
* full width for the precision. `name` names the type in the error for a
|
|
16
|
+
* value that does not fit.
|
|
17
|
+
*/
|
|
18
|
+
export declare function writeDecimal(buffer: WritableTrackingBuffer, value: number | null, precision: number | undefined, scale: number | undefined, name: string): void;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.decimalLength = decimalLength;
|
|
7
|
+
exports.writeDecimal = writeDecimal;
|
|
8
|
+
exports.writeDecimalTypeInfo = writeDecimalTypeInfo;
|
|
9
|
+
const MASK_64 = (1n << 64n) - 1n;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The number of bytes the magnitude of a `decimal` or `numeric` value takes
|
|
13
|
+
* at `precision`.
|
|
14
|
+
*/
|
|
15
|
+
function decimalLength(precision) {
|
|
16
|
+
if (precision <= 9) {
|
|
17
|
+
return 4;
|
|
18
|
+
} else if (precision <= 19) {
|
|
19
|
+
return 8;
|
|
20
|
+
} else if (precision <= 28) {
|
|
21
|
+
return 12;
|
|
22
|
+
} else {
|
|
23
|
+
return 16;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Writes the TYPE_INFO of a `decimal` or `numeric` column: the nullable type
|
|
29
|
+
* id, the length of a value, and the precision and scale.
|
|
30
|
+
*/
|
|
31
|
+
function writeDecimalTypeInfo(buffer, id, precision, scale) {
|
|
32
|
+
buffer.writeUInt8(id);
|
|
33
|
+
buffer.writeUInt8(decimalLength(precision) + 1);
|
|
34
|
+
buffer.writeUInt8(precision);
|
|
35
|
+
buffer.writeUInt8(scale);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Writes a validated `decimal` or `numeric` value: the length, the sign,
|
|
40
|
+
* and the scaled magnitude as a little-endian unsigned integer spanning the
|
|
41
|
+
* full width for the precision. `name` names the type in the error for a
|
|
42
|
+
* value that does not fit.
|
|
43
|
+
*/
|
|
44
|
+
function writeDecimal(buffer, value, precision, scale, name) {
|
|
45
|
+
if (value == null) {
|
|
46
|
+
buffer.writeUInt8(0x00);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const dataLength = decimalLength(precision);
|
|
50
|
+
|
|
51
|
+
// A BigInt holds magnitudes beyond 2^64 for high-precision columns.
|
|
52
|
+
// See https://github.com/tediousjs/tedious/issues/1733
|
|
53
|
+
const magnitude = BigInt(Math.round(Math.abs(value * Math.pow(10, scale))));
|
|
54
|
+
|
|
55
|
+
// Throwing surfaces a catchable error to the caller instead of silently
|
|
56
|
+
// truncating the magnitude.
|
|
57
|
+
if (magnitude >= 1n << BigInt(8 * dataLength)) {
|
|
58
|
+
throw new RangeError(`Value ${value} is out of range for ${name}(${precision}, ${scale}).`);
|
|
59
|
+
}
|
|
60
|
+
buffer.writeUInt8(dataLength + 1);
|
|
61
|
+
buffer.writeUInt8(value < 0 ? 0 : 1);
|
|
62
|
+
switch (dataLength) {
|
|
63
|
+
case 4:
|
|
64
|
+
buffer.writeUInt32LE(Number(magnitude));
|
|
65
|
+
break;
|
|
66
|
+
case 8:
|
|
67
|
+
buffer.writeBigUInt64LE(magnitude);
|
|
68
|
+
break;
|
|
69
|
+
case 12:
|
|
70
|
+
buffer.writeBigUInt64LE(magnitude & MASK_64);
|
|
71
|
+
buffer.writeUInt32LE(Number(magnitude >> 64n));
|
|
72
|
+
break;
|
|
73
|
+
case 16:
|
|
74
|
+
buffer.writeBigUInt64LE(magnitude & MASK_64);
|
|
75
|
+
buffer.writeBigUInt64LE(magnitude >> 64n);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVNLXzY0IiwiZGVjaW1hbExlbmd0aCIsInByZWNpc2lvbiIsIndyaXRlRGVjaW1hbFR5cGVJbmZvIiwiYnVmZmVyIiwiaWQiLCJzY2FsZSIsIndyaXRlVUludDgiLCJ3cml0ZURlY2ltYWwiLCJ2YWx1ZSIsIm5hbWUiLCJkYXRhTGVuZ3RoIiwibWFnbml0dWRlIiwiQmlnSW50IiwiTWF0aCIsInJvdW5kIiwiYWJzIiwicG93IiwiUmFuZ2VFcnJvciIsIndyaXRlVUludDMyTEUiLCJOdW1iZXIiLCJ3cml0ZUJpZ1VJbnQ2NExFIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhdGEtdHlwZXMvZGVjaW1hbC1jb21tb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuLi90cmFja2luZy1idWZmZXIvd3JpdGFibGUtdHJhY2tpbmctYnVmZmVyJztcblxuY29uc3QgTUFTS182NCA9ICgxbiA8PCA2NG4pIC0gMW47XG5cbi8qKlxuICogVGhlIG51bWJlciBvZiBieXRlcyB0aGUgbWFnbml0dWRlIG9mIGEgYGRlY2ltYWxgIG9yIGBudW1lcmljYCB2YWx1ZSB0YWtlc1xuICogYXQgYHByZWNpc2lvbmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNpbWFsTGVuZ3RoKHByZWNpc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkKTogNCB8IDggfCAxMiB8IDE2IHtcbiAgaWYgKHByZWNpc2lvbiEgPD0gOSkge1xuICAgIHJldHVybiA0O1xuICB9IGVsc2UgaWYgKHByZWNpc2lvbiEgPD0gMTkpIHtcbiAgICByZXR1cm4gODtcbiAgfSBlbHNlIGlmIChwcmVjaXNpb24hIDw9IDI4KSB7XG4gICAgcmV0dXJuIDEyO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAxNjtcbiAgfVxufVxuXG4vKipcbiAqIFdyaXRlcyB0aGUgVFlQRV9JTkZPIG9mIGEgYGRlY2ltYWxgIG9yIGBudW1lcmljYCBjb2x1bW46IHRoZSBudWxsYWJsZSB0eXBlXG4gKiBpZCwgdGhlIGxlbmd0aCBvZiBhIHZhbHVlLCBhbmQgdGhlIHByZWNpc2lvbiBhbmQgc2NhbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZURlY2ltYWxUeXBlSW5mbyhidWZmZXI6IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIsIGlkOiBudW1iZXIsIHByZWNpc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkLCBzY2FsZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gIGJ1ZmZlci53cml0ZVVJbnQ4KGlkKTtcbiAgYnVmZmVyLndyaXRlVUludDgoZGVjaW1hbExlbmd0aChwcmVjaXNpb24pICsgMSk7XG4gIGJ1ZmZlci53cml0ZVVJbnQ4KHByZWNpc2lvbiEpO1xuICBidWZmZXIud3JpdGVVSW50OChzY2FsZSEpO1xufVxuXG4vKipcbiAqIFdyaXRlcyBhIHZhbGlkYXRlZCBgZGVjaW1hbGAgb3IgYG51bWVyaWNgIHZhbHVlOiB0aGUgbGVuZ3RoLCB0aGUgc2lnbixcbiAqIGFuZCB0aGUgc2NhbGVkIG1hZ25pdHVkZSBhcyBhIGxpdHRsZS1lbmRpYW4gdW5zaWduZWQgaW50ZWdlciBzcGFubmluZyB0aGVcbiAqIGZ1bGwgd2lkdGggZm9yIHRoZSBwcmVjaXNpb24uIGBuYW1lYCBuYW1lcyB0aGUgdHlwZSBpbiB0aGUgZXJyb3IgZm9yIGFcbiAqIHZhbHVlIHRoYXQgZG9lcyBub3QgZml0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVEZWNpbWFsKGJ1ZmZlcjogV3JpdGFibGVUcmFja2luZ0J1ZmZlciwgdmFsdWU6IG51bWJlciB8IG51bGwsIHByZWNpc2lvbjogbnVtYmVyIHwgdW5kZWZpbmVkLCBzY2FsZTogbnVtYmVyIHwgdW5kZWZpbmVkLCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICBidWZmZXIud3JpdGVVSW50OCgweDAwKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBkYXRhTGVuZ3RoID0gZGVjaW1hbExlbmd0aChwcmVjaXNpb24pO1xuXG4gIC8vIEEgQmlnSW50IGhvbGRzIG1hZ25pdHVkZXMgYmV5b25kIDJeNjQgZm9yIGhpZ2gtcHJlY2lzaW9uIGNvbHVtbnMuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdGVkaW91c2pzL3RlZGlvdXMvaXNzdWVzLzE3MzNcbiAgY29uc3QgbWFnbml0dWRlID0gQmlnSW50KE1hdGgucm91bmQoTWF0aC5hYnModmFsdWUgKiBNYXRoLnBvdygxMCwgc2NhbGUhKSkpKTtcblxuICAvLyBUaHJvd2luZyBzdXJmYWNlcyBhIGNhdGNoYWJsZSBlcnJvciB0byB0aGUgY2FsbGVyIGluc3RlYWQgb2Ygc2lsZW50bHlcbiAgLy8gdHJ1bmNhdGluZyB0aGUgbWFnbml0dWRlLlxuICBpZiAobWFnbml0dWRlID49ICgxbiA8PCBCaWdJbnQoOCAqIGRhdGFMZW5ndGgpKSkge1xuICAgIHRocm93IG5ldyBSYW5nZUVycm9yKGBWYWx1ZSAke3ZhbHVlfSBpcyBvdXQgb2YgcmFuZ2UgZm9yICR7bmFtZX0oJHtwcmVjaXNpb259LCAke3NjYWxlfSkuYCk7XG4gIH1cblxuICBidWZmZXIud3JpdGVVSW50OChkYXRhTGVuZ3RoICsgMSk7XG4gIGJ1ZmZlci53cml0ZVVJbnQ4KHZhbHVlIDwgMCA/IDAgOiAxKTtcblxuICBzd2l0Y2ggKGRhdGFMZW5ndGgpIHtcbiAgICBjYXNlIDQ6XG4gICAgICBidWZmZXIud3JpdGVVSW50MzJMRShOdW1iZXIobWFnbml0dWRlKSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIDg6XG4gICAgICBidWZmZXIud3JpdGVCaWdVSW50NjRMRShtYWduaXR1ZGUpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAxMjpcbiAgICAgIGJ1ZmZlci53cml0ZUJpZ1VJbnQ2NExFKG1hZ25pdHVkZSAmIE1BU0tfNjQpO1xuICAgICAgYnVmZmVyLndyaXRlVUludDMyTEUoTnVtYmVyKG1hZ25pdHVkZSA+PiA2NG4pKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgMTY6XG4gICAgICBidWZmZXIud3JpdGVCaWdVSW50NjRMRShtYWduaXR1ZGUgJiBNQVNLXzY0KTtcbiAgICAgIGJ1ZmZlci53cml0ZUJpZ1VJbnQ2NExFKG1hZ25pdHVkZSA+PiA2NG4pO1xuICAgICAgYnJlYWs7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQSxNQUFNQSxPQUFPLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQUU7O0FBRWhDO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0MsYUFBYUEsQ0FBQ0MsU0FBNkIsRUFBbUI7RUFDNUUsSUFBSUEsU0FBUyxJQUFLLENBQUMsRUFBRTtJQUNuQixPQUFPLENBQUM7RUFDVixDQUFDLE1BQU0sSUFBSUEsU0FBUyxJQUFLLEVBQUUsRUFBRTtJQUMzQixPQUFPLENBQUM7RUFDVixDQUFDLE1BQU0sSUFBSUEsU0FBUyxJQUFLLEVBQUUsRUFBRTtJQUMzQixPQUFPLEVBQUU7RUFDWCxDQUFDLE1BQU07SUFDTCxPQUFPLEVBQUU7RUFDWDtBQUNGOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0Msb0JBQW9CQSxDQUFDQyxNQUE4QixFQUFFQyxFQUFVLEVBQUVILFNBQTZCLEVBQUVJLEtBQXlCLEVBQVE7RUFDL0lGLE1BQU0sQ0FBQ0csVUFBVSxDQUFDRixFQUFFLENBQUM7RUFDckJELE1BQU0sQ0FBQ0csVUFBVSxDQUFDTixhQUFhLENBQUNDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUMvQ0UsTUFBTSxDQUFDRyxVQUFVLENBQUNMLFNBQVUsQ0FBQztFQUM3QkUsTUFBTSxDQUFDRyxVQUFVLENBQUNELEtBQU0sQ0FBQztBQUMzQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTRSxZQUFZQSxDQUFDSixNQUE4QixFQUFFSyxLQUFvQixFQUFFUCxTQUE2QixFQUFFSSxLQUF5QixFQUFFSSxJQUFZLEVBQVE7RUFDL0osSUFBSUQsS0FBSyxJQUFJLElBQUksRUFBRTtJQUNqQkwsTUFBTSxDQUFDRyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQ3ZCO0VBQ0Y7RUFFQSxNQUFNSSxVQUFVLEdBQUdWLGFBQWEsQ0FBQ0MsU0FBUyxDQUFDOztFQUUzQztFQUNBO0VBQ0EsTUFBTVUsU0FBUyxHQUFHQyxNQUFNLENBQUNDLElBQUksQ0FBQ0MsS0FBSyxDQUFDRCxJQUFJLENBQUNFLEdBQUcsQ0FBQ1AsS0FBSyxHQUFHSyxJQUFJLENBQUNHLEdBQUcsQ0FBQyxFQUFFLEVBQUVYLEtBQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzs7RUFFNUU7RUFDQTtFQUNBLElBQUlNLFNBQVMsSUFBSyxFQUFFLElBQUlDLE1BQU0sQ0FBQyxDQUFDLEdBQUdGLFVBQVUsQ0FBRSxFQUFFO0lBQy9DLE1BQU0sSUFBSU8sVUFBVSxDQUFDLFNBQVNULEtBQUssd0JBQXdCQyxJQUFJLElBQUlSLFNBQVMsS0FBS0ksS0FBSyxJQUFJLENBQUM7RUFDN0Y7RUFFQUYsTUFBTSxDQUFDRyxVQUFVLENBQUNJLFVBQVUsR0FBRyxDQUFDLENBQUM7RUFDakNQLE1BQU0sQ0FBQ0csVUFBVSxDQUFDRSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7RUFFcEMsUUFBUUUsVUFBVTtJQUNoQixLQUFLLENBQUM7TUFDSlAsTUFBTSxDQUFDZSxhQUFhLENBQUNDLE1BQU0sQ0FBQ1IsU0FBUyxDQUFDLENBQUM7TUFDdkM7SUFDRixLQUFLLENBQUM7TUFDSlIsTUFBTSxDQUFDaUIsZ0JBQWdCLENBQUNULFNBQVMsQ0FBQztNQUNsQztJQUNGLEtBQUssRUFBRTtNQUNMUixNQUFNLENBQUNpQixnQkFBZ0IsQ0FBQ1QsU0FBUyxHQUFHWixPQUFPLENBQUM7TUFDNUNJLE1BQU0sQ0FBQ2UsYUFBYSxDQUFDQyxNQUFNLENBQUNSLFNBQVMsSUFBSSxHQUFHLENBQUMsQ0FBQztNQUM5QztJQUNGLEtBQUssRUFBRTtNQUNMUixNQUFNLENBQUNpQixnQkFBZ0IsQ0FBQ1QsU0FBUyxHQUFHWixPQUFPLENBQUM7TUFDNUNJLE1BQU0sQ0FBQ2lCLGdCQUFnQixDQUFDVCxTQUFTLElBQUksR0FBRyxDQUFDO01BQ3pDO0VBQ0o7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decimal-common.js","names":["MASK_64","decimalLength","precision","writeDecimalTypeInfo","buffer","id","scale","writeUInt8","writeDecimal","value","name","dataLength","magnitude","BigInt","Math","round","abs","pow","RangeError","writeUInt32LE","Number","writeBigUInt64LE"],"sources":["../../src/data-types/decimal-common.ts"],"sourcesContent":["import type WritableTrackingBuffer from '../tracking-buffer/writable-tracking-buffer';\n\nconst MASK_64 = (1n << 64n) - 1n;\n\n/**\n * The number of bytes the magnitude of a `decimal` or `numeric` value takes\n * at `precision`.\n */\nexport function decimalLength(precision: number | undefined): 4 | 8 | 12 | 16 {\n if (precision! <= 9) {\n return 4;\n } else if (precision! <= 19) {\n return 8;\n } else if (precision! <= 28) {\n return 12;\n } else {\n return 16;\n }\n}\n\n/**\n * Writes the TYPE_INFO of a `decimal` or `numeric` column: the nullable type\n * id, the length of a value, and the precision and scale.\n */\nexport function writeDecimalTypeInfo(buffer: WritableTrackingBuffer, id: number, precision: number | undefined, scale: number | undefined): void {\n buffer.writeUInt8(id);\n buffer.writeUInt8(decimalLength(precision) + 1);\n buffer.writeUInt8(precision!);\n buffer.writeUInt8(scale!);\n}\n\n/**\n * Writes a validated `decimal` or `numeric` value: the length, the sign,\n * and the scaled magnitude as a little-endian unsigned integer spanning the\n * full width for the precision. `name` names the type in the error for a\n * value that does not fit.\n */\nexport function writeDecimal(buffer: WritableTrackingBuffer, value: number | null, precision: number | undefined, scale: number | undefined, name: string): void {\n if (value == null) {\n buffer.writeUInt8(0x00);\n return;\n }\n\n const dataLength = decimalLength(precision);\n\n // A BigInt holds magnitudes beyond 2^64 for high-precision columns.\n // See https://github.com/tediousjs/tedious/issues/1733\n const magnitude = BigInt(Math.round(Math.abs(value * Math.pow(10, scale!))));\n\n // Throwing surfaces a catchable error to the caller instead of silently\n // truncating the magnitude.\n if (magnitude >= (1n << BigInt(8 * dataLength))) {\n throw new RangeError(`Value ${value} is out of range for ${name}(${precision}, ${scale}).`);\n }\n\n buffer.writeUInt8(dataLength + 1);\n buffer.writeUInt8(value < 0 ? 0 : 1);\n\n switch (dataLength) {\n case 4:\n buffer.writeUInt32LE(Number(magnitude));\n break;\n case 8:\n buffer.writeBigUInt64LE(magnitude);\n break;\n case 12:\n buffer.writeBigUInt64LE(magnitude & MASK_64);\n buffer.writeUInt32LE(Number(magnitude >> 64n));\n break;\n case 16:\n buffer.writeBigUInt64LE(magnitude & MASK_64);\n buffer.writeBigUInt64LE(magnitude >> 64n);\n break;\n }\n}\n"],"mappings":";;;;;;;;AAEA,MAAMA,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE;;AAEhC;AACA;AACA;AACA;AACO,SAASC,aAAaA,CAACC,SAA6B,EAAmB;EAC5E,IAAIA,SAAS,IAAK,CAAC,EAAE;IACnB,OAAO,CAAC;EACV,CAAC,MAAM,IAAIA,SAAS,IAAK,EAAE,EAAE;IAC3B,OAAO,CAAC;EACV,CAAC,MAAM,IAAIA,SAAS,IAAK,EAAE,EAAE;IAC3B,OAAO,EAAE;EACX,CAAC,MAAM;IACL,OAAO,EAAE;EACX;AACF;;AAEA;AACA;AACA;AACA;AACO,SAASC,oBAAoBA,CAACC,MAA8B,EAAEC,EAAU,EAAEH,SAA6B,EAAEI,KAAyB,EAAQ;EAC/IF,MAAM,CAACG,UAAU,CAACF,EAAE,CAAC;EACrBD,MAAM,CAACG,UAAU,CAACN,aAAa,CAACC,SAAS,CAAC,GAAG,CAAC,CAAC;EAC/CE,MAAM,CAACG,UAAU,CAACL,SAAU,CAAC;EAC7BE,MAAM,CAACG,UAAU,CAACD,KAAM,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,YAAYA,CAACJ,MAA8B,EAAEK,KAAoB,EAAEP,SAA6B,EAAEI,KAAyB,EAAEI,IAAY,EAAQ;EAC/J,IAAID,KAAK,IAAI,IAAI,EAAE;IACjBL,MAAM,CAACG,UAAU,CAAC,IAAI,CAAC;IACvB;EACF;EAEA,MAAMI,UAAU,GAAGV,aAAa,CAACC,SAAS,CAAC;;EAE3C;EACA;EACA,MAAMU,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAACP,KAAK,GAAGK,IAAI,CAACG,GAAG,CAAC,EAAE,EAAEX,KAAM,CAAC,CAAC,CAAC,CAAC;;EAE5E;EACA;EACA,IAAIM,SAAS,IAAK,EAAE,IAAIC,MAAM,CAAC,CAAC,GAAGF,UAAU,CAAE,EAAE;IAC/C,MAAM,IAAIO,UAAU,CAAC,SAAST,KAAK,wBAAwBC,IAAI,IAAIR,SAAS,KAAKI,KAAK,IAAI,CAAC;EAC7F;EAEAF,MAAM,CAACG,UAAU,CAACI,UAAU,GAAG,CAAC,CAAC;EACjCP,MAAM,CAACG,UAAU,CAACE,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;EAEpC,QAAQE,UAAU;IAChB,KAAK,CAAC;MACJP,MAAM,CAACe,aAAa,CAACC,MAAM,CAACR,SAAS,CAAC,CAAC;MACvC;IACF,KAAK,CAAC;MACJR,MAAM,CAACiB,gBAAgB,CAACT,SAAS,CAAC;MAClC;IACF,KAAK,EAAE;MACLR,MAAM,CAACiB,gBAAgB,CAACT,SAAS,GAAGZ,OAAO,CAAC;MAC5CI,MAAM,CAACe,aAAa,CAACC,MAAM,CAACR,SAAS,IAAI,GAAG,CAAC,CAAC;MAC9C;IACF,KAAK,EAAE;MACLR,MAAM,CAACiB,gBAAgB,CAACT,SAAS,GAAGZ,OAAO,CAAC;MAC5CI,MAAM,CAACiB,gBAAgB,CAACT,SAAS,IAAI,GAAG,CAAC;MACzC;EACJ;AACF","ignoreList":[]}
|