tedious 20.3.2 → 20.3.4
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/LICENSE +1 -1
- package/README.md +11 -21
- package/lib/connection.js +8 -1
- package/lib/connection.js.map +1 -1
- package/lib/data-types/plp-stream.d.ts +1 -1
- package/lib/data-types/plp-stream.js +12 -9
- package/lib/data-types/plp-stream.js.map +1 -1
- package/lib/data-types/varchar.js +9 -14
- package/lib/data-types/varchar.js.map +1 -1
- package/lib/metadata-parser.d.ts +1 -3
- package/lib/metadata-parser.js +1 -22
- package/lib/metadata-parser.js.map +1 -1
- package/lib/request.d.ts +4 -5
- package/lib/request.js +5 -6
- package/lib/request.js.map +1 -1
- package/lib/token/colmetadata-token-parser.d.ts +11 -3
- package/lib/token/colmetadata-token-parser.js +29 -42
- package/lib/token/colmetadata-token-parser.js.map +1 -1
- package/lib/token/nbcrow-token-parser.d.ts +11 -3
- package/lib/token/nbcrow-token-parser.js +22 -89
- package/lib/token/nbcrow-token-parser.js.map +1 -1
- package/lib/token/returnvalue-token-parser.d.ts +19 -3
- package/lib/token/returnvalue-token-parser.js +67 -73
- package/lib/token/returnvalue-token-parser.js.map +1 -1
- package/lib/token/row-token-parser.d.ts +33 -3
- package/lib/token/row-token-parser.js +62 -60
- package/lib/token/row-token-parser.js.map +1 -1
- package/lib/token/stream-parser.d.ts +59 -27
- package/lib/token/stream-parser.js +157 -325
- package/lib/token/stream-parser.js.map +1 -1
- package/lib/token/token-stream-parser.d.ts +12 -5
- package/lib/token/token-stream-parser.js +46 -17
- package/lib/token/token-stream-parser.js.map +1 -1
- package/lib/value-parser.d.ts +19 -2
- package/lib/value-parser.js +73 -30
- package/lib/value-parser.js.map +1 -1
- package/package.json +1 -1
package/lib/value-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-parser.js","names":["_metadataParser","require","_dataType","_iconvLite","_interopRequireDefault","_sprintfJs","_guidParser","_helpers","e","__esModule","default","NULL","MAX","THREE_AND_A_THIRD","MONEY_DIVISOR","PLP_NULL","UNKNOWN_PLP_LEN","DEFAULT_ENCODING","readTinyInt","buf","offset","readUInt8","readSmallInt","readInt16LE","readInt","readInt32LE","readBigInt","value","readBigInt64LE","Result","toString","readReal","readFloatLE","readFloat","readDoubleLE","readSmallMoney","readMoney","high","low","readUInt32LE","readBit","readValue","metadata","options","type","name","dataLength","Error","codepage","collation","readUInt16LE","readChars","readNChars","readBinary","textPointerLength","readSmallDateTime","useUTC","readDateTime","readTime","scale","readDate","readDateTime2","readDateTimeOffset","readNumeric","precision","readUniqueIdentifier","sprintf","readVariant","isPLPStream","data","lowerCaseGuids","bufferToLowerCaseGuid","bufferToUpperCaseGuid","_precision","sign","readUNumeric64LE","readUNumeric96LE","readUNumeric128LE","Math","pow","baseType","TYPE","propBytes","readCollation","length","NotEnoughDataError","slice","iconv","decode","readPLPStream","parser","buffer","position","waitForChunk","expectedLength","readBigUInt64LE","chunks","currentLength","chunkLength","push","Number","UTC_EPOCH_1900","Date","UTC","UTC_EPOCH_2000","MILLISECONDS_PER_DAY","days","minutes","threeHundredthsOfSecond","milliseconds","round","readTimeValue","readUInt24LE","readUInt40LE","i","date","Object","defineProperty","enumerable","time","trunc","module","exports"],"sources":["../src/value-parser.ts"],"sourcesContent":["import Parser, { type ParserOptions } from './token/stream-parser';\nimport { type Metadata, readCollation } from './metadata-parser';\nimport { TYPE } from './data-type';\n\nimport iconv from 'iconv-lite';\nimport { sprintf } from 'sprintf-js';\nimport { bufferToLowerCaseGuid, bufferToUpperCaseGuid } from './guid-parser';\nimport { NotEnoughDataError, Result, readBigInt64LE, readDoubleLE, readFloatLE, readInt16LE, readInt32LE, readUInt16LE, readUInt32LE, readUInt8, readUInt24LE, readUInt40LE, readUNumeric64LE, readUNumeric96LE, readUNumeric128LE } from './token/helpers';\n\nconst NULL = (1 << 16) - 1;\nconst MAX = (1 << 16) - 1;\nconst THREE_AND_A_THIRD = 3 + (1 / 3);\nconst MONEY_DIVISOR = 10000;\nconst PLP_NULL = 0xFFFFFFFFFFFFFFFFn;\nconst UNKNOWN_PLP_LEN = 0xFFFFFFFFFFFFFFFEn;\nconst DEFAULT_ENCODING = 'utf8';\n\nfunction readTinyInt(buf: Buffer, offset: number): Result<number> {\n return readUInt8(buf, offset);\n}\n\nfunction readSmallInt(buf: Buffer, offset: number): Result<number> {\n return readInt16LE(buf, offset);\n}\n\nfunction readInt(buf: Buffer, offset: number): Result<number> {\n return readInt32LE(buf, offset);\n}\n\nfunction readBigInt(buf: Buffer, offset: number): Result<string> {\n let value;\n ({ offset, value } = readBigInt64LE(buf, offset));\n\n return new Result(value.toString(), offset);\n}\n\nfunction readReal(buf: Buffer, offset: number): Result<number> {\n return readFloatLE(buf, offset);\n}\n\nfunction readFloat(buf: Buffer, offset: number): Result<number> {\n return readDoubleLE(buf, offset);\n}\n\nfunction readSmallMoney(buf: Buffer, offset: number): Result<number> {\n let value;\n ({ offset, value } = readInt32LE(buf, offset));\n\n return new Result(value / MONEY_DIVISOR, offset);\n}\n\nfunction readMoney(buf: Buffer, offset: number): Result<number> {\n let high;\n ({ offset, value: high } = readInt32LE(buf, offset));\n\n let low;\n ({ offset, value: low } = readUInt32LE(buf, offset));\n\n return new Result((low + (0x100000000 * high)) / MONEY_DIVISOR, offset);\n}\n\nfunction readBit(buf: Buffer, offset: number): Result<boolean> {\n let value;\n ({ offset, value } = readUInt8(buf, offset));\n\n return new Result(!!value, offset);\n}\n\nfunction readValue(buf: Buffer, offset: number, metadata: Metadata, options: ParserOptions): Result<unknown> {\n const type = metadata.type;\n\n switch (type.name) {\n case 'Null':\n return new Result(null, offset);\n\n case 'TinyInt': {\n return readTinyInt(buf, offset);\n }\n\n case 'SmallInt': {\n return readSmallInt(buf, offset);\n }\n\n case 'Int': {\n return readInt(buf, offset);\n }\n\n case 'BigInt': {\n return readBigInt(buf, offset);\n }\n\n case 'IntN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 1:\n return readTinyInt(buf, offset);\n case 2:\n return readSmallInt(buf, offset);\n case 4:\n return readInt(buf, offset);\n case 8:\n return readBigInt(buf, offset);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for IntN');\n }\n }\n\n case 'Real': {\n return readReal(buf, offset);\n }\n\n case 'Float': {\n return readFloat(buf, offset);\n }\n\n case 'FloatN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 4:\n return readReal(buf, offset);\n case 8:\n return readFloat(buf, offset);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for FloatN');\n }\n }\n\n case 'SmallMoney': {\n return readSmallMoney(buf, offset);\n }\n\n case 'Money':\n return readMoney(buf, offset);\n\n case 'MoneyN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 4:\n return readSmallMoney(buf, offset);\n case 8:\n return readMoney(buf, offset);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for MoneyN');\n }\n }\n\n case 'Bit': {\n return readBit(buf, offset);\n }\n\n case 'BitN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 1:\n return readBit(buf, offset);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for BitN');\n }\n }\n\n case 'VarChar':\n case 'Char': {\n const codepage = metadata.collation!.codepage!;\n\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n if (dataLength === NULL) {\n return new Result(null, offset);\n }\n\n return readChars(buf, offset, dataLength, codepage);\n }\n\n case 'NVarChar':\n case 'NChar': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n if (dataLength === NULL) {\n return new Result(null, offset);\n }\n\n return readNChars(buf, offset, dataLength);\n }\n\n case 'VarBinary':\n case 'Binary': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n if (dataLength === NULL) {\n return new Result(null, offset);\n }\n\n return readBinary(buf, offset, dataLength);\n }\n\n case 'Text': {\n let textPointerLength;\n ({ offset, value: textPointerLength } = readUInt8(buf, offset));\n\n if (textPointerLength === 0) {\n return new Result(null, offset);\n }\n\n // Textpointer\n ({ offset } = readBinary(buf, offset, textPointerLength));\n\n // Timestamp\n ({ offset } = readBinary(buf, offset, 8));\n\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return readChars(buf, offset, dataLength, metadata.collation!.codepage!);\n }\n\n case 'NText': {\n let textPointerLength;\n ({ offset, value: textPointerLength } = readUInt8(buf, offset));\n\n if (textPointerLength === 0) {\n return new Result(null, offset);\n }\n\n // Textpointer\n ({ offset } = readBinary(buf, offset, textPointerLength));\n\n // Timestamp\n ({ offset } = readBinary(buf, offset, 8));\n\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return readNChars(buf, offset, dataLength);\n }\n\n case 'Image': {\n let textPointerLength;\n ({ offset, value: textPointerLength } = readUInt8(buf, offset));\n\n if (textPointerLength === 0) {\n return new Result(null, offset);\n }\n\n // Textpointer\n ({ offset } = readBinary(buf, offset, textPointerLength));\n\n // Timestamp\n ({ offset } = readBinary(buf, offset, 8));\n\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return readBinary(buf, offset, dataLength);\n }\n\n case 'SmallDateTime': {\n return readSmallDateTime(buf, offset, options.useUTC);\n }\n\n case 'DateTime': {\n return readDateTime(buf, offset, options.useUTC);\n }\n\n case 'DateTimeN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 4:\n return readSmallDateTime(buf, offset, options.useUTC);\n case 8:\n return readDateTime(buf, offset, options.useUTC);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for DateTimeN');\n }\n }\n\n case 'Time': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readTime(buf, offset, dataLength, metadata.scale!, options.useUTC);\n }\n\n case 'Date': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readDate(buf, offset, options.useUTC);\n }\n\n case 'DateTime2': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readDateTime2(buf, offset, dataLength, metadata.scale!, options.useUTC);\n }\n\n case 'DateTimeOffset': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readDateTimeOffset(buf, offset, dataLength, metadata.scale!);\n }\n\n case 'NumericN':\n case 'DecimalN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readNumeric(buf, offset, dataLength, metadata.precision!, metadata.scale!);\n }\n\n case 'UniqueIdentifier': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 0x10:\n return readUniqueIdentifier(buf, offset, options);\n\n default:\n throw new Error(sprintf('Unsupported guid size %d', dataLength! - 1));\n }\n }\n\n case 'Variant': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readVariant(buf, offset, options, dataLength);\n }\n\n default: {\n throw new Error('Invalid type!');\n }\n }\n}\n\nfunction isPLPStream(metadata: Metadata) {\n switch (metadata.type.name) {\n case 'VarChar':\n case 'NVarChar':\n case 'VarBinary': {\n return metadata.dataLength === MAX;\n }\n\n case 'Xml': {\n return true;\n }\n\n case 'UDT': {\n return true;\n }\n }\n}\n\nfunction readUniqueIdentifier(buf: Buffer, offset: number, options: ParserOptions): Result<string> {\n let data;\n ({ value: data, offset } = readBinary(buf, offset, 0x10));\n\n return new Result(options.lowerCaseGuids ? bufferToLowerCaseGuid(data) : bufferToUpperCaseGuid(data), offset);\n}\n\nfunction readNumeric(buf: Buffer, offset: number, dataLength: number, _precision: number, scale: number): Result<number> {\n let sign;\n ({ offset, value: sign } = readUInt8(buf, offset));\n\n sign = sign === 1 ? 1 : -1;\n\n let value;\n if (dataLength === 5) {\n ({ offset, value } = readUInt32LE(buf, offset));\n } else if (dataLength === 9) {\n ({ offset, value } = readUNumeric64LE(buf, offset));\n } else if (dataLength === 13) {\n ({ offset, value } = readUNumeric96LE(buf, offset));\n } else if (dataLength === 17) {\n ({ offset, value } = readUNumeric128LE(buf, offset));\n } else {\n throw new Error(sprintf('Unsupported numeric dataLength %d', dataLength));\n }\n\n return new Result((value * sign) / Math.pow(10, scale), offset);\n}\n\nfunction readVariant(buf: Buffer, offset: number, options: ParserOptions, dataLength: number): Result<unknown> {\n let baseType;\n ({ value: baseType, offset } = readUInt8(buf, offset));\n\n const type = TYPE[baseType];\n\n let propBytes;\n ({ value: propBytes, offset } = readUInt8(buf, offset));\n\n dataLength = dataLength - propBytes - 2;\n\n switch (type.name) {\n case 'UniqueIdentifier':\n return readUniqueIdentifier(buf, offset, options);\n\n case 'Bit':\n return readBit(buf, offset);\n\n case 'TinyInt':\n return readTinyInt(buf, offset);\n\n case 'SmallInt':\n return readSmallInt(buf, offset);\n\n case 'Int':\n return readInt(buf, offset);\n\n case 'BigInt':\n return readBigInt(buf, offset);\n\n case 'SmallDateTime':\n return readSmallDateTime(buf, offset, options.useUTC);\n\n case 'DateTime':\n return readDateTime(buf, offset, options.useUTC);\n\n case 'Real':\n return readReal(buf, offset);\n\n case 'Float':\n return readFloat(buf, offset);\n\n case 'SmallMoney':\n return readSmallMoney(buf, offset);\n\n case 'Money':\n return readMoney(buf, offset);\n\n case 'Date':\n return readDate(buf, offset, options.useUTC);\n\n case 'Time': {\n let scale;\n ({ value: scale, offset } = readUInt8(buf, offset));\n\n return readTime(buf, offset, dataLength, scale, options.useUTC);\n }\n\n case 'DateTime2': {\n let scale;\n ({ value: scale, offset } = readUInt8(buf, offset));\n\n return readDateTime2(buf, offset, dataLength, scale, options.useUTC);\n }\n\n case 'DateTimeOffset': {\n let scale;\n ({ value: scale, offset } = readUInt8(buf, offset));\n\n return readDateTimeOffset(buf, offset, dataLength, scale);\n }\n\n case 'VarBinary':\n case 'Binary': {\n // maxLength (unused?)\n ({ offset } = readUInt16LE(buf, offset));\n\n return readBinary(buf, offset, dataLength);\n }\n\n case 'NumericN':\n case 'DecimalN': {\n let precision;\n ({ value: precision, offset } = readUInt8(buf, offset));\n\n let scale;\n ({ value: scale, offset } = readUInt8(buf, offset));\n\n return readNumeric(buf, offset, dataLength, precision, scale);\n }\n\n case 'VarChar':\n case 'Char': {\n // maxLength (unused?)\n ({ offset } = readUInt16LE(buf, offset));\n\n let collation;\n ({ value: collation, offset } = readCollation(buf, offset));\n\n return readChars(buf, offset, dataLength, collation.codepage!);\n }\n\n case 'NVarChar':\n case 'NChar': {\n // maxLength (unused?)\n ({ offset } = readUInt16LE(buf, offset));\n\n // collation (unused?)\n ({ offset } = readCollation(buf, offset));\n\n return readNChars(buf, offset, dataLength);\n }\n\n default:\n throw new Error('Invalid type!');\n }\n}\n\nfunction readBinary(buf: Buffer, offset: number, dataLength: number): Result<Buffer> {\n if (buf.length < offset + dataLength) {\n throw new NotEnoughDataError(offset + dataLength);\n }\n\n return new Result(buf.slice(offset, offset + dataLength), offset + dataLength);\n}\n\nfunction readChars(buf: Buffer, offset: number, dataLength: number, codepage: string): Result<string> {\n if (buf.length < offset + dataLength) {\n throw new NotEnoughDataError(offset + dataLength);\n }\n\n return new Result(iconv.decode(buf.slice(offset, offset + dataLength), codepage ?? DEFAULT_ENCODING), offset + dataLength);\n}\n\nfunction readNChars(buf: Buffer, offset: number, dataLength: number): Result<string> {\n if (buf.length < offset + dataLength) {\n throw new NotEnoughDataError(offset + dataLength);\n }\n\n return new Result(buf.toString('ucs2', offset, offset + dataLength), offset + dataLength);\n}\n\nasync function readPLPStream(parser: Parser): Promise<null | Buffer[]> {\n while (parser.buffer.length < parser.position + 8) {\n await parser.waitForChunk();\n }\n\n const expectedLength = parser.buffer.readBigUInt64LE(parser.position);\n parser.position += 8;\n\n if (expectedLength === PLP_NULL) {\n return null;\n }\n\n const chunks: Buffer[] = [];\n let currentLength = 0;\n\n while (true) {\n while (parser.buffer.length < parser.position + 4) {\n await parser.waitForChunk();\n }\n\n const chunkLength = parser.buffer.readUInt32LE(parser.position);\n parser.position += 4;\n\n if (!chunkLength) {\n break;\n }\n\n while (parser.buffer.length < parser.position + chunkLength) {\n await parser.waitForChunk();\n }\n\n chunks.push(parser.buffer.slice(parser.position, parser.position + chunkLength));\n parser.position += chunkLength;\n currentLength += chunkLength;\n }\n\n if (expectedLength !== UNKNOWN_PLP_LEN) {\n if (currentLength !== Number(expectedLength)) {\n throw new Error('Partially Length-prefixed Bytes unmatched lengths : expected ' + expectedLength + ', but got ' + currentLength + ' bytes');\n }\n }\n\n return chunks;\n}\n\n// Epoch offsets for building UTC `Date` values via plain arithmetic, which\n// avoids the (comparatively slow) `Date.UTC` calendar calculations.\n//\n// Note that the day constants in the UTC and local time branches below differ\n// by one, even though both branches describe the same date: `days` arrives as\n// the wire-format day count since 0001-01-01 (e.g. 2000-01-01 is 730119). The\n// local time branches pass `days - 730118` as the *1-based* day-of-month\n// argument of `new Date(2000, 0, ...)`, while the UTC branches multiply\n// `days - 730119` as a *0-based* day offset from `UTC_EPOCH_2000`.\nconst UTC_EPOCH_1900 = Date.UTC(1900, 0, 1);\nconst UTC_EPOCH_2000 = Date.UTC(2000, 0, 1);\nconst MILLISECONDS_PER_DAY = 86400000;\n\nfunction readSmallDateTime(buf: Buffer, offset: number, useUTC: boolean): Result<Date> {\n let days;\n ({ offset, value: days } = readUInt16LE(buf, offset));\n\n let minutes;\n ({ offset, value: minutes } = readUInt16LE(buf, offset));\n\n let value;\n if (useUTC) {\n value = new Date(UTC_EPOCH_1900 + days * MILLISECONDS_PER_DAY + minutes * 60000);\n } else {\n value = new Date(1900, 0, 1 + days, 0, minutes);\n }\n\n return new Result(value, offset);\n}\n\nfunction readDateTime(buf: Buffer, offset: number, useUTC: boolean): Result<Date> {\n let days;\n ({ offset, value: days } = readInt32LE(buf, offset));\n\n let threeHundredthsOfSecond;\n ({ offset, value: threeHundredthsOfSecond } = readInt32LE(buf, offset));\n\n const milliseconds = Math.round(threeHundredthsOfSecond * THREE_AND_A_THIRD);\n\n let value;\n if (useUTC) {\n value = new Date(UTC_EPOCH_1900 + days * MILLISECONDS_PER_DAY + milliseconds);\n } else {\n value = new Date(1900, 0, 1 + days, 0, 0, 0, milliseconds);\n }\n\n return new Result(value, offset);\n}\n\ninterface DateWithNanosecondsDelta extends Date {\n nanosecondsDelta: number;\n}\n\n// Reads a `time` value, returned in units of 100 nanoseconds since midnight.\nfunction readTimeValue(buf: Buffer, offset: number, dataLength: number, scale: number): Result<number> {\n let value;\n\n switch (dataLength) {\n case 3: {\n ({ value, offset } = readUInt24LE(buf, offset));\n break;\n }\n\n case 4: {\n ({ value, offset } = readUInt32LE(buf, offset));\n break;\n }\n\n case 5: {\n ({ value, offset } = readUInt40LE(buf, offset));\n break;\n }\n\n default: {\n throw new Error('unreachable');\n }\n }\n\n if (scale < 7) {\n for (let i = scale; i < 7; i++) {\n value *= 10;\n }\n }\n\n return new Result(value, offset);\n}\n\nfunction readTime(buf: Buffer, offset: number, dataLength: number, scale: number, useUTC: boolean): Result<DateWithNanosecondsDelta> {\n let value;\n ({ offset, value } = readTimeValue(buf, offset, dataLength, scale));\n\n let date;\n if (useUTC) {\n date = new Date(value / 10000) as DateWithNanosecondsDelta;\n } else {\n date = new Date(1970, 0, 1, 0, 0, 0, value / 10000) as DateWithNanosecondsDelta;\n }\n Object.defineProperty(date, 'nanosecondsDelta', {\n enumerable: false,\n value: (value % 10000) / 1e7\n });\n\n return new Result(date, offset);\n}\n\nfunction readDate(buf: Buffer, offset: number, useUTC: boolean): Result<Date> {\n let days;\n ({ offset, value: days } = readUInt24LE(buf, offset));\n\n if (useUTC) {\n return new Result(new Date(UTC_EPOCH_2000 + (days - 730119) * MILLISECONDS_PER_DAY), offset);\n } else {\n return new Result(new Date(2000, 0, days - 730118), offset);\n }\n}\n\nfunction readDateTime2(buf: Buffer, offset: number, dataLength: number, scale: number, useUTC: boolean): Result<DateWithNanosecondsDelta> {\n let time;\n ({ offset, value: time } = readTimeValue(buf, offset, dataLength - 3, scale));\n\n let days;\n ({ offset, value: days } = readUInt24LE(buf, offset));\n\n let date;\n if (useUTC) {\n date = new Date(UTC_EPOCH_2000 + (days - 730119) * MILLISECONDS_PER_DAY + Math.trunc(time / 10000)) as DateWithNanosecondsDelta;\n } else {\n date = new Date(2000, 0, days - 730118, 0, 0, 0, time / 10000) as DateWithNanosecondsDelta;\n }\n Object.defineProperty(date, 'nanosecondsDelta', {\n enumerable: false,\n value: (time % 10000) / 1e7\n });\n\n return new Result(date, offset);\n}\n\nfunction readDateTimeOffset(buf: Buffer, offset: number, dataLength: number, scale: number): Result<DateWithNanosecondsDelta> {\n let time;\n ({ offset, value: time } = readTimeValue(buf, offset, dataLength - 5, scale));\n\n let days;\n ({ offset, value: days } = readUInt24LE(buf, offset));\n\n // time offset?\n ({ offset } = readUInt16LE(buf, offset));\n\n const date = new Date(UTC_EPOCH_2000 + (days - 730119) * MILLISECONDS_PER_DAY + Math.trunc(time / 10000)) as DateWithNanosecondsDelta;\n Object.defineProperty(date, 'nanosecondsDelta', {\n enumerable: false,\n value: (time % 10000) / 1e7\n });\n return new Result(date, offset);\n}\n\nmodule.exports.readValue = readValue;\nmodule.exports.isPLPStream = isPLPStream;\nmodule.exports.readPLPStream = readPLPStream;\n\nexport { readValue, isPLPStream, readPLPStream };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"value-parser.js","names":["_metadataParser","require","_dataType","_iconvLite","_interopRequireDefault","_sprintfJs","_guidParser","_helpers","e","__esModule","default","NULL","MAX","THREE_AND_A_THIRD","MONEY_DIVISOR","PLP_NULL","UNKNOWN_PLP_LEN","DEFAULT_ENCODING","readTinyInt","buf","offset","readUInt8","readSmallInt","readInt16LE","readInt","readInt32LE","readBigInt","value","readBigInt64LE","Result","toString","readReal","readFloatLE","readFloat","readDoubleLE","readSmallMoney","readMoney","high","low","readUInt32LE","readBit","readValue","metadata","options","type","name","dataLength","Error","codepage","collation","readUInt16LE","readChars","readNChars","readBinary","textPointerLength","readSmallDateTime","useUTC","readDateTime","readTime","scale","readDate","readDateTime2","readDateTimeOffset","readNumeric","precision","readUniqueIdentifier","sprintf","readVariant","isPLPStream","data","lowerCaseGuids","bufferToLowerCaseGuid","bufferToUpperCaseGuid","_precision","sign","readUNumeric64LE","readUNumeric96LE","readUNumeric128LE","Math","pow","baseType","TYPE","propBytes","readCollation","length","NotEnoughDataError","slice","iconv","decode","PLPReader","constructor","expectedLength","undefined","chunks","chunkRemaining","read","parser","readBigUInt64LE","buffer","position","chunkLength","start","end","min","push","subarray","Number","Buffer","concat","exports","UTC_EPOCH_1900","Date","UTC","UTC_EPOCH_2000","MILLISECONDS_PER_DAY","days","minutes","threeHundredthsOfSecond","milliseconds","round","readTimeValue","readUInt24LE","readUInt40LE","i","date","Object","defineProperty","enumerable","time","trunc","module"],"sources":["../src/value-parser.ts"],"sourcesContent":["import Parser, { type ParserOptions } from './token/stream-parser';\nimport { type Metadata, readCollation } from './metadata-parser';\nimport { TYPE } from './data-type';\n\nimport iconv from 'iconv-lite';\nimport { sprintf } from 'sprintf-js';\nimport { bufferToLowerCaseGuid, bufferToUpperCaseGuid } from './guid-parser';\nimport { NotEnoughDataError, Result, readBigInt64LE, readBigUInt64LE, readDoubleLE, readFloatLE, readInt16LE, readInt32LE, readUInt16LE, readUInt32LE, readUInt8, readUInt24LE, readUInt40LE, readUNumeric64LE, readUNumeric96LE, readUNumeric128LE } from './token/helpers';\n\nconst NULL = (1 << 16) - 1;\nconst MAX = (1 << 16) - 1;\nconst THREE_AND_A_THIRD = 3 + (1 / 3);\nconst MONEY_DIVISOR = 10000;\nconst PLP_NULL = 0xFFFFFFFFFFFFFFFFn;\nconst UNKNOWN_PLP_LEN = 0xFFFFFFFFFFFFFFFEn;\nconst DEFAULT_ENCODING = 'utf8';\n\nfunction readTinyInt(buf: Buffer, offset: number): Result<number> {\n return readUInt8(buf, offset);\n}\n\nfunction readSmallInt(buf: Buffer, offset: number): Result<number> {\n return readInt16LE(buf, offset);\n}\n\nfunction readInt(buf: Buffer, offset: number): Result<number> {\n return readInt32LE(buf, offset);\n}\n\nfunction readBigInt(buf: Buffer, offset: number): Result<string> {\n let value;\n ({ offset, value } = readBigInt64LE(buf, offset));\n\n return new Result(value.toString(), offset);\n}\n\nfunction readReal(buf: Buffer, offset: number): Result<number> {\n return readFloatLE(buf, offset);\n}\n\nfunction readFloat(buf: Buffer, offset: number): Result<number> {\n return readDoubleLE(buf, offset);\n}\n\nfunction readSmallMoney(buf: Buffer, offset: number): Result<number> {\n let value;\n ({ offset, value } = readInt32LE(buf, offset));\n\n return new Result(value / MONEY_DIVISOR, offset);\n}\n\nfunction readMoney(buf: Buffer, offset: number): Result<number> {\n let high;\n ({ offset, value: high } = readInt32LE(buf, offset));\n\n let low;\n ({ offset, value: low } = readUInt32LE(buf, offset));\n\n return new Result((low + (0x100000000 * high)) / MONEY_DIVISOR, offset);\n}\n\nfunction readBit(buf: Buffer, offset: number): Result<boolean> {\n let value;\n ({ offset, value } = readUInt8(buf, offset));\n\n return new Result(!!value, offset);\n}\n\nfunction readValue(buf: Buffer, offset: number, metadata: Metadata, options: ParserOptions): Result<unknown> {\n const type = metadata.type;\n\n switch (type.name) {\n case 'Null':\n return new Result(null, offset);\n\n case 'TinyInt': {\n return readTinyInt(buf, offset);\n }\n\n case 'SmallInt': {\n return readSmallInt(buf, offset);\n }\n\n case 'Int': {\n return readInt(buf, offset);\n }\n\n case 'BigInt': {\n return readBigInt(buf, offset);\n }\n\n case 'IntN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 1:\n return readTinyInt(buf, offset);\n case 2:\n return readSmallInt(buf, offset);\n case 4:\n return readInt(buf, offset);\n case 8:\n return readBigInt(buf, offset);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for IntN');\n }\n }\n\n case 'Real': {\n return readReal(buf, offset);\n }\n\n case 'Float': {\n return readFloat(buf, offset);\n }\n\n case 'FloatN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 4:\n return readReal(buf, offset);\n case 8:\n return readFloat(buf, offset);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for FloatN');\n }\n }\n\n case 'SmallMoney': {\n return readSmallMoney(buf, offset);\n }\n\n case 'Money':\n return readMoney(buf, offset);\n\n case 'MoneyN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 4:\n return readSmallMoney(buf, offset);\n case 8:\n return readMoney(buf, offset);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for MoneyN');\n }\n }\n\n case 'Bit': {\n return readBit(buf, offset);\n }\n\n case 'BitN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 1:\n return readBit(buf, offset);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for BitN');\n }\n }\n\n case 'VarChar':\n case 'Char': {\n const codepage = metadata.collation!.codepage!;\n\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n if (dataLength === NULL) {\n return new Result(null, offset);\n }\n\n return readChars(buf, offset, dataLength, codepage);\n }\n\n case 'NVarChar':\n case 'NChar': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n if (dataLength === NULL) {\n return new Result(null, offset);\n }\n\n return readNChars(buf, offset, dataLength);\n }\n\n case 'VarBinary':\n case 'Binary': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt16LE(buf, offset));\n\n if (dataLength === NULL) {\n return new Result(null, offset);\n }\n\n return readBinary(buf, offset, dataLength);\n }\n\n case 'Text': {\n let textPointerLength;\n ({ offset, value: textPointerLength } = readUInt8(buf, offset));\n\n if (textPointerLength === 0) {\n return new Result(null, offset);\n }\n\n // Textpointer\n ({ offset } = readBinary(buf, offset, textPointerLength));\n\n // Timestamp\n ({ offset } = readBinary(buf, offset, 8));\n\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return readChars(buf, offset, dataLength, metadata.collation!.codepage!);\n }\n\n case 'NText': {\n let textPointerLength;\n ({ offset, value: textPointerLength } = readUInt8(buf, offset));\n\n if (textPointerLength === 0) {\n return new Result(null, offset);\n }\n\n // Textpointer\n ({ offset } = readBinary(buf, offset, textPointerLength));\n\n // Timestamp\n ({ offset } = readBinary(buf, offset, 8));\n\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return readNChars(buf, offset, dataLength);\n }\n\n case 'Image': {\n let textPointerLength;\n ({ offset, value: textPointerLength } = readUInt8(buf, offset));\n\n if (textPointerLength === 0) {\n return new Result(null, offset);\n }\n\n // Textpointer\n ({ offset } = readBinary(buf, offset, textPointerLength));\n\n // Timestamp\n ({ offset } = readBinary(buf, offset, 8));\n\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n return readBinary(buf, offset, dataLength);\n }\n\n case 'SmallDateTime': {\n return readSmallDateTime(buf, offset, options.useUTC);\n }\n\n case 'DateTime': {\n return readDateTime(buf, offset, options.useUTC);\n }\n\n case 'DateTimeN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 4:\n return readSmallDateTime(buf, offset, options.useUTC);\n case 8:\n return readDateTime(buf, offset, options.useUTC);\n\n default:\n throw new Error('Unsupported dataLength ' + dataLength + ' for DateTimeN');\n }\n }\n\n case 'Time': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readTime(buf, offset, dataLength, metadata.scale!, options.useUTC);\n }\n\n case 'Date': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readDate(buf, offset, options.useUTC);\n }\n\n case 'DateTime2': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readDateTime2(buf, offset, dataLength, metadata.scale!, options.useUTC);\n }\n\n case 'DateTimeOffset': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readDateTimeOffset(buf, offset, dataLength, metadata.scale!);\n }\n\n case 'NumericN':\n case 'DecimalN': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readNumeric(buf, offset, dataLength, metadata.precision!, metadata.scale!);\n }\n\n case 'UniqueIdentifier': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt8(buf, offset));\n\n switch (dataLength) {\n case 0:\n return new Result(null, offset);\n\n case 0x10:\n return readUniqueIdentifier(buf, offset, options);\n\n default:\n throw new Error(sprintf('Unsupported guid size %d', dataLength! - 1));\n }\n }\n\n case 'Variant': {\n let dataLength;\n ({ offset, value: dataLength } = readUInt32LE(buf, offset));\n\n if (dataLength === 0) {\n return new Result(null, offset);\n }\n\n return readVariant(buf, offset, options, dataLength);\n }\n\n default: {\n throw new Error('Invalid type!');\n }\n }\n}\n\nfunction isPLPStream(metadata: Metadata) {\n switch (metadata.type.name) {\n case 'VarChar':\n case 'NVarChar':\n case 'VarBinary': {\n return metadata.dataLength === MAX;\n }\n\n case 'Xml': {\n return true;\n }\n\n case 'UDT': {\n return true;\n }\n }\n}\n\nfunction readUniqueIdentifier(buf: Buffer, offset: number, options: ParserOptions): Result<string> {\n let data;\n ({ value: data, offset } = readBinary(buf, offset, 0x10));\n\n return new Result(options.lowerCaseGuids ? bufferToLowerCaseGuid(data) : bufferToUpperCaseGuid(data), offset);\n}\n\nfunction readNumeric(buf: Buffer, offset: number, dataLength: number, _precision: number, scale: number): Result<number> {\n let sign;\n ({ offset, value: sign } = readUInt8(buf, offset));\n\n sign = sign === 1 ? 1 : -1;\n\n let value;\n if (dataLength === 5) {\n ({ offset, value } = readUInt32LE(buf, offset));\n } else if (dataLength === 9) {\n ({ offset, value } = readUNumeric64LE(buf, offset));\n } else if (dataLength === 13) {\n ({ offset, value } = readUNumeric96LE(buf, offset));\n } else if (dataLength === 17) {\n ({ offset, value } = readUNumeric128LE(buf, offset));\n } else {\n throw new Error(sprintf('Unsupported numeric dataLength %d', dataLength));\n }\n\n return new Result((value * sign) / Math.pow(10, scale), offset);\n}\n\nfunction readVariant(buf: Buffer, offset: number, options: ParserOptions, dataLength: number): Result<unknown> {\n let baseType;\n ({ value: baseType, offset } = readUInt8(buf, offset));\n\n const type = TYPE[baseType];\n\n let propBytes;\n ({ value: propBytes, offset } = readUInt8(buf, offset));\n\n dataLength = dataLength - propBytes - 2;\n\n switch (type.name) {\n case 'UniqueIdentifier':\n return readUniqueIdentifier(buf, offset, options);\n\n case 'Bit':\n return readBit(buf, offset);\n\n case 'TinyInt':\n return readTinyInt(buf, offset);\n\n case 'SmallInt':\n return readSmallInt(buf, offset);\n\n case 'Int':\n return readInt(buf, offset);\n\n case 'BigInt':\n return readBigInt(buf, offset);\n\n case 'SmallDateTime':\n return readSmallDateTime(buf, offset, options.useUTC);\n\n case 'DateTime':\n return readDateTime(buf, offset, options.useUTC);\n\n case 'Real':\n return readReal(buf, offset);\n\n case 'Float':\n return readFloat(buf, offset);\n\n case 'SmallMoney':\n return readSmallMoney(buf, offset);\n\n case 'Money':\n return readMoney(buf, offset);\n\n case 'Date':\n return readDate(buf, offset, options.useUTC);\n\n case 'Time': {\n let scale;\n ({ value: scale, offset } = readUInt8(buf, offset));\n\n return readTime(buf, offset, dataLength, scale, options.useUTC);\n }\n\n case 'DateTime2': {\n let scale;\n ({ value: scale, offset } = readUInt8(buf, offset));\n\n return readDateTime2(buf, offset, dataLength, scale, options.useUTC);\n }\n\n case 'DateTimeOffset': {\n let scale;\n ({ value: scale, offset } = readUInt8(buf, offset));\n\n return readDateTimeOffset(buf, offset, dataLength, scale);\n }\n\n case 'VarBinary':\n case 'Binary': {\n // maxLength (unused?)\n ({ offset } = readUInt16LE(buf, offset));\n\n return readBinary(buf, offset, dataLength);\n }\n\n case 'NumericN':\n case 'DecimalN': {\n let precision;\n ({ value: precision, offset } = readUInt8(buf, offset));\n\n let scale;\n ({ value: scale, offset } = readUInt8(buf, offset));\n\n return readNumeric(buf, offset, dataLength, precision, scale);\n }\n\n case 'VarChar':\n case 'Char': {\n // maxLength (unused?)\n ({ offset } = readUInt16LE(buf, offset));\n\n let collation;\n ({ value: collation, offset } = readCollation(buf, offset));\n\n return readChars(buf, offset, dataLength, collation.codepage!);\n }\n\n case 'NVarChar':\n case 'NChar': {\n // maxLength (unused?)\n ({ offset } = readUInt16LE(buf, offset));\n\n // collation (unused?)\n ({ offset } = readCollation(buf, offset));\n\n return readNChars(buf, offset, dataLength);\n }\n\n default:\n throw new Error('Invalid type!');\n }\n}\n\nfunction readBinary(buf: Buffer, offset: number, dataLength: number): Result<Buffer> {\n if (buf.length < offset + dataLength) {\n throw new NotEnoughDataError(offset + dataLength);\n }\n\n return new Result(buf.slice(offset, offset + dataLength), offset + dataLength);\n}\n\nfunction readChars(buf: Buffer, offset: number, dataLength: number, codepage: string): Result<string> {\n if (buf.length < offset + dataLength) {\n throw new NotEnoughDataError(offset + dataLength);\n }\n\n return new Result(iconv.decode(buf.slice(offset, offset + dataLength), codepage ?? DEFAULT_ENCODING), offset + dataLength);\n}\n\nfunction readNChars(buf: Buffer, offset: number, dataLength: number): Result<string> {\n if (buf.length < offset + dataLength) {\n throw new NotEnoughDataError(offset + dataLength);\n }\n\n return new Result(buf.toString('ucs2', offset, offset + dataLength), offset + dataLength);\n}\n\n/**\n * Reads a PLP (partially length-prefixed) value.\n *\n * PLP values can be arbitrarily large and span many chunks of incoming data,\n * so they are read incrementally: whatever part of the value is available is\n * consumed right away, and the reader's progress is kept across calls. If the\n * available data runs out, `NotEnoughDataError` is thrown and `read` can be\n * called again once more data has arrived.\n */\nclass PLPReader {\n declare metadata: Metadata;\n\n // The value's total length as announced by the server, or `undefined`\n // while it has not been read yet.\n declare expectedLength: bigint | undefined;\n\n declare chunks: Buffer[];\n declare length: number;\n\n // Number of bytes of the current PLP chunk that have not been read yet.\n declare chunkRemaining: number;\n\n constructor(metadata: Metadata) {\n this.metadata = metadata;\n this.expectedLength = undefined;\n this.chunks = [];\n this.length = 0;\n this.chunkRemaining = 0;\n }\n\n read(parser: Parser): unknown {\n if (this.expectedLength === undefined) {\n const { value, offset } = readBigUInt64LE(parser.buffer, parser.position);\n parser.position = offset;\n this.expectedLength = value;\n }\n\n if (this.expectedLength === PLP_NULL) {\n return null;\n }\n\n while (true) {\n if (this.chunkRemaining === 0) {\n const { value: chunkLength, offset } = readUInt32LE(parser.buffer, parser.position);\n parser.position = offset;\n\n if (chunkLength === 0) {\n break;\n }\n\n this.chunkRemaining = chunkLength;\n }\n\n const buf = parser.buffer;\n const start = parser.position;\n const end = Math.min(start + this.chunkRemaining, buf.length);\n if (start === end) {\n throw new NotEnoughDataError(start + 1);\n }\n\n this.chunks.push(buf.subarray(start, end));\n this.length += end - start;\n this.chunkRemaining -= end - start;\n parser.position = end;\n }\n\n if (this.expectedLength !== UNKNOWN_PLP_LEN && this.length !== Number(this.expectedLength)) {\n throw new Error('Partially Length-prefixed Bytes unmatched lengths : expected ' + this.expectedLength + ', but got ' + this.length + ' bytes');\n }\n\n // `Buffer.concat` always copies, so the value never keeps the (possibly\n // much larger) incoming data buffers alive.\n const data = Buffer.concat(this.chunks, this.length);\n\n switch (this.metadata.type.name) {\n case 'NVarChar':\n case 'Xml':\n return data.toString('ucs2');\n\n case 'VarChar':\n return iconv.decode(data, this.metadata.collation?.codepage ?? DEFAULT_ENCODING);\n\n default:\n return data;\n }\n }\n}\n\n// Epoch offsets for building UTC `Date` values via plain arithmetic, which\n// avoids the (comparatively slow) `Date.UTC` calendar calculations.\n//\n// Note that the day constants in the UTC and local time branches below differ\n// by one, even though both branches describe the same date: `days` arrives as\n// the wire-format day count since 0001-01-01 (e.g. 2000-01-01 is 730119). The\n// local time branches pass `days - 730118` as the *1-based* day-of-month\n// argument of `new Date(2000, 0, ...)`, while the UTC branches multiply\n// `days - 730119` as a *0-based* day offset from `UTC_EPOCH_2000`.\nconst UTC_EPOCH_1900 = Date.UTC(1900, 0, 1);\nconst UTC_EPOCH_2000 = Date.UTC(2000, 0, 1);\nconst MILLISECONDS_PER_DAY = 86400000;\n\nfunction readSmallDateTime(buf: Buffer, offset: number, useUTC: boolean): Result<Date> {\n let days;\n ({ offset, value: days } = readUInt16LE(buf, offset));\n\n let minutes;\n ({ offset, value: minutes } = readUInt16LE(buf, offset));\n\n let value;\n if (useUTC) {\n value = new Date(UTC_EPOCH_1900 + days * MILLISECONDS_PER_DAY + minutes * 60000);\n } else {\n value = new Date(1900, 0, 1 + days, 0, minutes);\n }\n\n return new Result(value, offset);\n}\n\nfunction readDateTime(buf: Buffer, offset: number, useUTC: boolean): Result<Date> {\n let days;\n ({ offset, value: days } = readInt32LE(buf, offset));\n\n let threeHundredthsOfSecond;\n ({ offset, value: threeHundredthsOfSecond } = readInt32LE(buf, offset));\n\n const milliseconds = Math.round(threeHundredthsOfSecond * THREE_AND_A_THIRD);\n\n let value;\n if (useUTC) {\n value = new Date(UTC_EPOCH_1900 + days * MILLISECONDS_PER_DAY + milliseconds);\n } else {\n value = new Date(1900, 0, 1 + days, 0, 0, 0, milliseconds);\n }\n\n return new Result(value, offset);\n}\n\ninterface DateWithNanosecondsDelta extends Date {\n nanosecondsDelta: number;\n}\n\n// Reads a `time` value, returned in units of 100 nanoseconds since midnight.\nfunction readTimeValue(buf: Buffer, offset: number, dataLength: number, scale: number): Result<number> {\n let value;\n\n switch (dataLength) {\n case 3: {\n ({ value, offset } = readUInt24LE(buf, offset));\n break;\n }\n\n case 4: {\n ({ value, offset } = readUInt32LE(buf, offset));\n break;\n }\n\n case 5: {\n ({ value, offset } = readUInt40LE(buf, offset));\n break;\n }\n\n default: {\n throw new Error('unreachable');\n }\n }\n\n if (scale < 7) {\n for (let i = scale; i < 7; i++) {\n value *= 10;\n }\n }\n\n return new Result(value, offset);\n}\n\nfunction readTime(buf: Buffer, offset: number, dataLength: number, scale: number, useUTC: boolean): Result<DateWithNanosecondsDelta> {\n let value;\n ({ offset, value } = readTimeValue(buf, offset, dataLength, scale));\n\n let date;\n if (useUTC) {\n date = new Date(value / 10000) as DateWithNanosecondsDelta;\n } else {\n date = new Date(1970, 0, 1, 0, 0, 0, value / 10000) as DateWithNanosecondsDelta;\n }\n Object.defineProperty(date, 'nanosecondsDelta', {\n enumerable: false,\n value: (value % 10000) / 1e7\n });\n\n return new Result(date, offset);\n}\n\nfunction readDate(buf: Buffer, offset: number, useUTC: boolean): Result<Date> {\n let days;\n ({ offset, value: days } = readUInt24LE(buf, offset));\n\n if (useUTC) {\n return new Result(new Date(UTC_EPOCH_2000 + (days - 730119) * MILLISECONDS_PER_DAY), offset);\n } else {\n return new Result(new Date(2000, 0, days - 730118), offset);\n }\n}\n\nfunction readDateTime2(buf: Buffer, offset: number, dataLength: number, scale: number, useUTC: boolean): Result<DateWithNanosecondsDelta> {\n let time;\n ({ offset, value: time } = readTimeValue(buf, offset, dataLength - 3, scale));\n\n let days;\n ({ offset, value: days } = readUInt24LE(buf, offset));\n\n let date;\n if (useUTC) {\n date = new Date(UTC_EPOCH_2000 + (days - 730119) * MILLISECONDS_PER_DAY + Math.trunc(time / 10000)) as DateWithNanosecondsDelta;\n } else {\n date = new Date(2000, 0, days - 730118, 0, 0, 0, time / 10000) as DateWithNanosecondsDelta;\n }\n Object.defineProperty(date, 'nanosecondsDelta', {\n enumerable: false,\n value: (time % 10000) / 1e7\n });\n\n return new Result(date, offset);\n}\n\nfunction readDateTimeOffset(buf: Buffer, offset: number, dataLength: number, scale: number): Result<DateWithNanosecondsDelta> {\n let time;\n ({ offset, value: time } = readTimeValue(buf, offset, dataLength - 5, scale));\n\n let days;\n ({ offset, value: days } = readUInt24LE(buf, offset));\n\n // time offset?\n ({ offset } = readUInt16LE(buf, offset));\n\n const date = new Date(UTC_EPOCH_2000 + (days - 730119) * MILLISECONDS_PER_DAY + Math.trunc(time / 10000)) as DateWithNanosecondsDelta;\n Object.defineProperty(date, 'nanosecondsDelta', {\n enumerable: false,\n value: (time % 10000) / 1e7\n });\n return new Result(date, offset);\n}\n\nmodule.exports.readValue = readValue;\nmodule.exports.isPLPStream = isPLPStream;\nmodule.exports.PLPReader = PLPReader;\n\nexport { readValue, isPLPStream, PLPReader };\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"homepage": "https://github.com/tediousjs/tedious",
|
|
28
28
|
"bugs": "https://github.com/tediousjs/tedious/issues",
|
|
29
29
|
"license": "MIT",
|
|
30
|
-
"version": "20.3.
|
|
30
|
+
"version": "20.3.4",
|
|
31
31
|
"main": "./lib/tedious.js",
|
|
32
32
|
"types": "./lib/tedious.d.ts",
|
|
33
33
|
"repository": {
|