tedious 16.2.0 → 16.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/all-headers.js +1 -2
- package/lib/all-headers.js.map +1 -0
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +9 -31
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -0
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +9 -24
- package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -0
- package/lib/always-encrypted/cek-entry.js +8 -12
- package/lib/always-encrypted/cek-entry.js.map +1 -0
- package/lib/always-encrypted/get-parameter-encryption-metadata.js +2 -24
- package/lib/always-encrypted/get-parameter-encryption-metadata.js.map +1 -0
- package/lib/always-encrypted/key-crypto.js +5 -30
- package/lib/always-encrypted/key-crypto.js.map +1 -0
- package/lib/always-encrypted/keystore-provider-azure-key-vault.js +11 -72
- package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -0
- package/lib/always-encrypted/symmetric-key-cache.js +2 -13
- package/lib/always-encrypted/symmetric-key-cache.js.map +1 -0
- package/lib/always-encrypted/symmetric-key.js +3 -8
- package/lib/always-encrypted/symmetric-key.js.map +1 -0
- package/lib/always-encrypted/types.js +19 -27
- package/lib/always-encrypted/types.js.map +1 -0
- package/lib/always-encrypted/utils.js +2 -6
- package/lib/always-encrypted/utils.js.map +1 -0
- package/lib/bulk-load-payload.js +7 -15
- package/lib/bulk-load-payload.js.map +1 -0
- package/lib/bulk-load.js +58 -131
- package/lib/bulk-load.js.map +1 -0
- package/lib/collation.js +7 -15
- package/lib/collation.js.map +1 -0
- package/lib/connection.js +307 -534
- package/lib/connection.js.map +1 -0
- package/lib/connector.js +6 -37
- package/lib/connector.js.map +1 -0
- package/lib/data-type.js +2 -43
- package/lib/data-type.js.map +1 -0
- package/lib/data-types/bigint.js +1 -15
- package/lib/data-types/bigint.js.map +1 -0
- package/lib/data-types/binary.js +1 -12
- package/lib/data-types/binary.js.map +1 -0
- package/lib/data-types/bit.js +1 -11
- package/lib/data-types/bit.js.map +1 -0
- package/lib/data-types/bitn.js +1 -7
- package/lib/data-types/bitn.js.map +1 -0
- package/lib/data-types/char.js +1 -20
- package/lib/data-types/char.js.map +1 -0
- package/lib/data-types/date.js +1 -15
- package/lib/data-types/date.js.map +1 -0
- package/lib/data-types/datetime.js +3 -20
- package/lib/data-types/datetime.js.map +1 -0
- package/lib/data-types/datetime2.js +1 -26
- package/lib/data-types/datetime2.js.map +1 -0
- package/lib/data-types/datetimen.js +1 -7
- package/lib/data-types/datetimen.js.map +1 -0
- package/lib/data-types/datetimeoffset.js +1 -23
- package/lib/data-types/datetimeoffset.js.map +1 -0
- package/lib/data-types/decimal.js +1 -18
- package/lib/data-types/decimal.js.map +1 -0
- package/lib/data-types/decimaln.js +1 -7
- package/lib/data-types/decimaln.js.map +1 -0
- package/lib/data-types/float.js +1 -13
- package/lib/data-types/float.js.map +1 -0
- package/lib/data-types/floatn.js +1 -7
- package/lib/data-types/floatn.js.map +1 -0
- package/lib/data-types/image.js +1 -10
- package/lib/data-types/image.js.map +1 -0
- package/lib/data-types/int.js +1 -14
- package/lib/data-types/int.js.map +1 -0
- package/lib/data-types/intn.js +1 -7
- package/lib/data-types/intn.js.map +1 -0
- package/lib/data-types/money.js +1 -12
- package/lib/data-types/money.js.map +1 -0
- package/lib/data-types/moneyn.js +1 -7
- package/lib/data-types/moneyn.js.map +1 -0
- package/lib/data-types/nchar.js +1 -14
- package/lib/data-types/nchar.js.map +1 -0
- package/lib/data-types/ntext.js +1 -10
- package/lib/data-types/ntext.js.map +1 -0
- package/lib/data-types/null.js +1 -7
- package/lib/data-types/null.js.map +1 -0
- package/lib/data-types/numeric.js +1 -18
- package/lib/data-types/numeric.js.map +1 -0
- package/lib/data-types/numericn.js +1 -7
- package/lib/data-types/numericn.js.map +1 -0
- package/lib/data-types/nvarchar.js +1 -22
- package/lib/data-types/nvarchar.js.map +1 -0
- package/lib/data-types/real.js +1 -13
- package/lib/data-types/real.js.map +1 -0
- package/lib/data-types/smalldatetime.js +1 -14
- package/lib/data-types/smalldatetime.js.map +1 -0
- package/lib/data-types/smallint.js +1 -14
- package/lib/data-types/smallint.js.map +1 -0
- package/lib/data-types/smallmoney.js +1 -13
- package/lib/data-types/smallmoney.js.map +1 -0
- package/lib/data-types/sql-variant.js +1 -6
- package/lib/data-types/sql-variant.js.map +1 -0
- package/lib/data-types/text.js +1 -18
- package/lib/data-types/text.js.map +1 -0
- package/lib/data-types/time.js +1 -22
- package/lib/data-types/time.js.map +1 -0
- package/lib/data-types/tinyint.js +1 -14
- package/lib/data-types/tinyint.js.map +1 -0
- package/lib/data-types/tvp.js +11 -27
- package/lib/data-types/tvp.js.map +1 -0
- package/lib/data-types/udt.js +1 -7
- package/lib/data-types/udt.js.map +1 -0
- package/lib/data-types/uniqueidentifier.js +1 -11
- package/lib/data-types/uniqueidentifier.js.map +1 -0
- package/lib/data-types/varbinary.js +1 -22
- package/lib/data-types/varbinary.js.map +1 -0
- package/lib/data-types/varchar.js +1 -23
- package/lib/data-types/varchar.js.map +1 -0
- package/lib/data-types/xml.js +1 -7
- package/lib/data-types/xml.js.map +1 -0
- package/lib/debug.js +4 -16
- package/lib/debug.js.map +1 -0
- package/lib/errors/abort-error.js +2 -5
- package/lib/errors/abort-error.js.map +1 -0
- package/lib/errors/timeout-error.js +2 -5
- package/lib/errors/timeout-error.js.map +1 -0
- package/lib/errors.js +10 -16
- package/lib/errors.js.map +1 -0
- package/lib/guid-parser.js +1 -7
- package/lib/guid-parser.js.map +1 -0
- package/lib/incoming-message-stream.js +9 -29
- package/lib/incoming-message-stream.js.map +1 -0
- package/lib/instance-lookup.js +3 -34
- package/lib/instance-lookup.js.map +1 -0
- package/lib/library.js +1 -1
- package/lib/library.js.map +1 -0
- package/lib/login7-payload.js +99 -100
- package/lib/login7-payload.js.map +1 -0
- package/lib/message-io.js +17 -45
- package/lib/message-io.js.map +1 -0
- package/lib/message.js +4 -8
- package/lib/message.js.map +1 -0
- package/lib/metadata-parser.js +1 -22
- package/lib/metadata-parser.js.map +1 -0
- package/lib/ntlm-payload.js +2 -22
- package/lib/ntlm-payload.js.map +1 -0
- package/lib/ntlm.js +1 -4
- package/lib/ntlm.js.map +1 -0
- package/lib/outgoing-message-stream.js +12 -21
- package/lib/outgoing-message-stream.js.map +1 -0
- package/lib/packet.js +2 -47
- package/lib/packet.js.map +1 -0
- package/lib/prelogin-payload.js +11 -54
- package/lib/prelogin-payload.js.map +1 -0
- package/lib/request.js +88 -66
- package/lib/request.js.map +1 -0
- package/lib/rpcrequest-payload.js +8 -35
- package/lib/rpcrequest-payload.js.map +1 -0
- package/lib/sender.js +1 -24
- package/lib/sender.js.map +1 -0
- package/lib/special-stored-procedure.js +1 -1
- package/lib/special-stored-procedure.js.map +1 -0
- package/lib/sqlbatch-payload.js +5 -18
- package/lib/sqlbatch-payload.js.map +1 -0
- package/lib/tds-versions.js +3 -3
- package/lib/tds-versions.js.map +1 -0
- package/lib/tedious.js +1 -12
- package/lib/tedious.js.map +1 -0
- package/lib/token/colmetadata-token-parser.js +1 -17
- package/lib/token/colmetadata-token-parser.js.map +1 -0
- package/lib/token/done-token-parser.js +2 -8
- package/lib/token/done-token-parser.js.map +1 -0
- package/lib/token/env-change-token-parser.js +7 -28
- package/lib/token/env-change-token-parser.js.map +1 -0
- package/lib/token/feature-ext-ack-parser.js +1 -10
- package/lib/token/feature-ext-ack-parser.js.map +1 -0
- package/lib/token/fedauth-info-parser.js +2 -10
- package/lib/token/fedauth-info-parser.js.map +1 -0
- package/lib/token/handler.js +39 -149
- package/lib/token/handler.js.map +1 -0
- package/lib/token/infoerror-token-parser.js +1 -5
- package/lib/token/infoerror-token-parser.js.map +1 -0
- package/lib/token/loginack-token-parser.js +1 -6
- package/lib/token/loginack-token-parser.js.map +1 -0
- package/lib/token/nbcrow-token-parser.js +2 -15
- package/lib/token/nbcrow-token-parser.js.map +1 -0
- package/lib/token/order-token-parser.js +2 -7
- package/lib/token/order-token-parser.js.map +1 -0
- package/lib/token/returnstatus-token-parser.js +2 -4
- package/lib/token/returnstatus-token-parser.js.map +1 -0
- package/lib/token/returnvalue-token-parser.js +4 -9
- package/lib/token/returnvalue-token-parser.js.map +1 -0
- package/lib/token/row-token-parser.js +2 -11
- package/lib/token/row-token-parser.js.map +1 -0
- package/lib/token/sspi-token-parser.js +1 -5
- package/lib/token/sspi-token-parser.js.map +1 -0
- package/lib/token/stream-parser.js +24 -86
- package/lib/token/stream-parser.js.map +1 -0
- package/lib/token/token-stream-parser.js +4 -13
- package/lib/token/token-stream-parser.js.map +1 -0
- package/lib/token/token.js +88 -168
- package/lib/token/token.js.map +1 -0
- package/lib/tracking-buffer/writable-tracking-buffer.js +20 -60
- package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -0
- package/lib/transaction.js +9 -33
- package/lib/transaction.js.map +1 -0
- package/lib/transient-error-lookup.js +1 -4
- package/lib/transient-error-lookup.js.map +1 -0
- package/lib/utils/with-timeout.js +1 -9
- package/lib/utils/with-timeout.js.map +1 -0
- package/lib/value-parser.js +1 -143
- package/lib/value-parser.js.map +1 -0
- package/package.json +27 -71
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guid-parser.js","names":["UPPER_CASE_MAP","LOWER_CASE_MAP","bufferToUpperCaseGuid","buffer","bufferToLowerCaseGuid","CHARCODEMAP","hexDigits","map","d","charCodeAt","i","length","j","hex","String","fromCharCode","value","parseInt","guidToArray","guid"],"sources":["../src/guid-parser.ts"],"sourcesContent":["const UPPER_CASE_MAP = [\n '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0A', '0B', '0C', '0D', '0E', '0F',\n '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1A', '1B', '1C', '1D', '1E', '1F',\n '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2A', '2B', '2C', '2D', '2E', '2F',\n '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3A', '3B', '3C', '3D', '3E', '3F',\n '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4A', '4B', '4C', '4D', '4E', '4F',\n '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5A', '5B', '5C', '5D', '5E', '5F',\n '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6A', '6B', '6C', '6D', '6E', '6F',\n '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7A', '7B', '7C', '7D', '7E', '7F',\n '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8A', '8B', '8C', '8D', '8E', '8F',\n '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9A', '9B', '9C', '9D', '9E', '9F',\n 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF',\n 'B0', 'B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B9', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF',\n 'C0', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF',\n 'D0', 'D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7', 'D8', 'D9', 'DA', 'DB', 'DC', 'DD', 'DE', 'DF',\n 'E0', 'E1', 'E2', 'E3', 'E4', 'E5', 'E6', 'E7', 'E8', 'E9', 'EA', 'EB', 'EC', 'ED', 'EE', 'EF',\n 'F0', 'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'FA', 'FB', 'FC', 'FD', 'FE', 'FF'\n];\n\nconst LOWER_CASE_MAP = [\n '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f',\n '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f',\n '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f',\n '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f',\n '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f',\n '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f',\n '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f',\n '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f',\n '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f',\n '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f',\n 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af',\n 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf',\n 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf',\n 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df',\n 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef',\n 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff'\n];\n\nexport function bufferToUpperCaseGuid(buffer: Buffer) {\n return (\n UPPER_CASE_MAP[buffer[3]] +\n UPPER_CASE_MAP[buffer[2]] +\n UPPER_CASE_MAP[buffer[1]] +\n UPPER_CASE_MAP[buffer[0]] +\n '-' +\n UPPER_CASE_MAP[buffer[5]] +\n UPPER_CASE_MAP[buffer[4]] +\n '-' +\n UPPER_CASE_MAP[buffer[7]] +\n UPPER_CASE_MAP[buffer[6]] +\n '-' +\n UPPER_CASE_MAP[buffer[8]] +\n UPPER_CASE_MAP[buffer[9]] +\n '-' +\n UPPER_CASE_MAP[buffer[10]] +\n UPPER_CASE_MAP[buffer[11]] +\n UPPER_CASE_MAP[buffer[12]] +\n UPPER_CASE_MAP[buffer[13]] +\n UPPER_CASE_MAP[buffer[14]] +\n UPPER_CASE_MAP[buffer[15]]\n );\n}\n\nexport function bufferToLowerCaseGuid(buffer: Buffer) {\n return (\n LOWER_CASE_MAP[buffer[3]] +\n LOWER_CASE_MAP[buffer[2]] +\n LOWER_CASE_MAP[buffer[1]] +\n LOWER_CASE_MAP[buffer[0]] +\n '-' +\n LOWER_CASE_MAP[buffer[5]] +\n LOWER_CASE_MAP[buffer[4]] +\n '-' +\n LOWER_CASE_MAP[buffer[7]] +\n LOWER_CASE_MAP[buffer[6]] +\n '-' +\n LOWER_CASE_MAP[buffer[8]] +\n LOWER_CASE_MAP[buffer[9]] +\n '-' +\n LOWER_CASE_MAP[buffer[10]] +\n LOWER_CASE_MAP[buffer[11]] +\n LOWER_CASE_MAP[buffer[12]] +\n LOWER_CASE_MAP[buffer[13]] +\n LOWER_CASE_MAP[buffer[14]] +\n LOWER_CASE_MAP[buffer[15]]\n );\n}\n\nconst CHARCODEMAP: { [key: number]: { [key: number]: number } } = {};\n\nconst hexDigits = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'a', 'b', 'c', 'd', 'e', 'f',\n 'A', 'B', 'C', 'D', 'E', 'F'\n].map((d) => d.charCodeAt(0));\n\nfor (let i = 0; i < hexDigits.length; i++) {\n const map: { [key: number]: number } = CHARCODEMAP[hexDigits[i]] = {};\n for (let j = 0; j < hexDigits.length; j++) {\n const hex = String.fromCharCode(hexDigits[i], hexDigits[j]);\n const value = parseInt(hex, 16);\n map[hexDigits[j]] = value;\n }\n}\n\nexport function guidToArray(guid: string) {\n return [\n CHARCODEMAP[guid.charCodeAt(6)][guid.charCodeAt(7)],\n CHARCODEMAP[guid.charCodeAt(4)][guid.charCodeAt(5)],\n CHARCODEMAP[guid.charCodeAt(2)][guid.charCodeAt(3)],\n CHARCODEMAP[guid.charCodeAt(0)][guid.charCodeAt(1)],\n CHARCODEMAP[guid.charCodeAt(11)][guid.charCodeAt(12)],\n CHARCODEMAP[guid.charCodeAt(9)][guid.charCodeAt(10)],\n CHARCODEMAP[guid.charCodeAt(16)][guid.charCodeAt(17)],\n CHARCODEMAP[guid.charCodeAt(14)][guid.charCodeAt(15)],\n CHARCODEMAP[guid.charCodeAt(19)][guid.charCodeAt(20)],\n CHARCODEMAP[guid.charCodeAt(21)][guid.charCodeAt(22)],\n CHARCODEMAP[guid.charCodeAt(24)][guid.charCodeAt(25)],\n CHARCODEMAP[guid.charCodeAt(26)][guid.charCodeAt(27)],\n CHARCODEMAP[guid.charCodeAt(28)][guid.charCodeAt(29)],\n CHARCODEMAP[guid.charCodeAt(30)][guid.charCodeAt(31)],\n CHARCODEMAP[guid.charCodeAt(32)][guid.charCodeAt(33)],\n CHARCODEMAP[guid.charCodeAt(34)][guid.charCodeAt(35)]\n ];\n}\n"],"mappings":";;;;;;;;AAAA,MAAMA,cAAc,GAAG,CACrB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAC/F;AAED,MAAMC,cAAc,GAAG,CACrB,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAC9F,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE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"}
|
|
@@ -4,75 +4,59 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _bl = _interopRequireDefault(require("bl"));
|
|
9
|
-
|
|
10
8
|
var _stream = require("stream");
|
|
11
|
-
|
|
12
9
|
var _message = _interopRequireDefault(require("./message"));
|
|
13
|
-
|
|
14
10
|
var _packet = require("./packet");
|
|
15
|
-
|
|
16
11
|
var _errors = require("./errors");
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
/**
|
|
21
14
|
IncomingMessageStream
|
|
22
15
|
Transform received TDS data into individual IncomingMessage streams.
|
|
23
16
|
*/
|
|
24
17
|
class IncomingMessageStream extends _stream.Transform {
|
|
18
|
+
debug;
|
|
19
|
+
bl;
|
|
20
|
+
currentMessage;
|
|
25
21
|
constructor(debug) {
|
|
26
22
|
super({
|
|
27
23
|
readableObjectMode: true
|
|
28
24
|
});
|
|
29
|
-
this.debug = void 0;
|
|
30
|
-
this.bl = void 0;
|
|
31
|
-
this.currentMessage = void 0;
|
|
32
25
|
this.debug = debug;
|
|
33
26
|
this.currentMessage = undefined;
|
|
34
27
|
this.bl = new _bl.default();
|
|
35
28
|
}
|
|
36
|
-
|
|
37
29
|
pause() {
|
|
38
30
|
super.pause();
|
|
39
|
-
|
|
40
31
|
if (this.currentMessage) {
|
|
41
32
|
this.currentMessage.pause();
|
|
42
33
|
}
|
|
43
|
-
|
|
44
34
|
return this;
|
|
45
35
|
}
|
|
46
|
-
|
|
47
36
|
resume() {
|
|
48
37
|
super.resume();
|
|
49
|
-
|
|
50
38
|
if (this.currentMessage) {
|
|
51
39
|
this.currentMessage.resume();
|
|
52
40
|
}
|
|
53
|
-
|
|
54
41
|
return this;
|
|
55
42
|
}
|
|
56
|
-
|
|
57
43
|
processBufferedData(callback) {
|
|
58
44
|
// The packet header is always 8 bytes of length.
|
|
59
45
|
while (this.bl.length >= _packet.HEADER_LENGTH) {
|
|
60
46
|
// Get the full packet length
|
|
61
47
|
const length = this.bl.readUInt16BE(2);
|
|
62
|
-
|
|
63
48
|
if (length < _packet.HEADER_LENGTH) {
|
|
64
49
|
return callback(new _errors.ConnectionError('Unable to process incoming packet'));
|
|
65
50
|
}
|
|
66
|
-
|
|
67
51
|
if (this.bl.length >= length) {
|
|
68
52
|
const data = this.bl.slice(0, length);
|
|
69
|
-
this.bl.consume(length);
|
|
53
|
+
this.bl.consume(length);
|
|
70
54
|
|
|
55
|
+
// TODO: Get rid of creating `Packet` instances here.
|
|
71
56
|
const packet = new _packet.Packet(data);
|
|
72
57
|
this.debug.packet('Received', packet);
|
|
73
58
|
this.debug.data(packet);
|
|
74
59
|
let message = this.currentMessage;
|
|
75
|
-
|
|
76
60
|
if (message === undefined) {
|
|
77
61
|
this.currentMessage = message = new _message.default({
|
|
78
62
|
type: packet.type(),
|
|
@@ -80,7 +64,6 @@ class IncomingMessageStream extends _stream.Transform {
|
|
|
80
64
|
});
|
|
81
65
|
this.push(message);
|
|
82
66
|
}
|
|
83
|
-
|
|
84
67
|
if (packet.isLast()) {
|
|
85
68
|
// Wait until the current message was fully processed before we
|
|
86
69
|
// continue processing any remaining messages.
|
|
@@ -101,21 +84,18 @@ class IncomingMessageStream extends _stream.Transform {
|
|
|
101
84
|
} else {
|
|
102
85
|
break;
|
|
103
86
|
}
|
|
104
|
-
}
|
|
105
|
-
// the next call to `_transform`.
|
|
106
|
-
|
|
87
|
+
}
|
|
107
88
|
|
|
89
|
+
// Not enough data to read the next packet. Stop here and wait for
|
|
90
|
+
// the next call to `_transform`.
|
|
108
91
|
callback();
|
|
109
92
|
}
|
|
110
|
-
|
|
111
93
|
_transform(chunk, _encoding, callback) {
|
|
112
94
|
this.bl.append(chunk);
|
|
113
95
|
this.processBufferedData(callback);
|
|
114
96
|
}
|
|
115
|
-
|
|
116
97
|
}
|
|
117
|
-
|
|
118
98
|
var _default = IncomingMessageStream;
|
|
119
99
|
exports.default = _default;
|
|
120
100
|
module.exports = IncomingMessageStream;
|
|
121
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHJlYW0iLCJfbWVzc2FnZSIsIl9wYWNrZXQiLCJfZXJyb3JzIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJJbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJUcmFuc2Zvcm0iLCJkZWJ1ZyIsImJsIiwiY3VycmVudE1lc3NhZ2UiLCJjb25zdHJ1Y3RvciIsInJlYWRhYmxlT2JqZWN0TW9kZSIsInVuZGVmaW5lZCIsIkJ1ZmZlckxpc3QiLCJwYXVzZSIsInJlc3VtZSIsInByb2Nlc3NCdWZmZXJlZERhdGEiLCJjYWxsYmFjayIsImxlbmd0aCIsIkhFQURFUl9MRU5HVEgiLCJyZWFkVUludDE2QkUiLCJDb25uZWN0aW9uRXJyb3IiLCJkYXRhIiwic2xpY2UiLCJjb25zdW1lIiwicGFja2V0IiwiUGFja2V0IiwibWVzc2FnZSIsIk1lc3NhZ2UiLCJ0eXBlIiwicmVzZXRDb25uZWN0aW9uIiwicHVzaCIsImlzTGFzdCIsIm9uY2UiLCJlbmQiLCJ3cml0ZSIsIl90cmFuc2Zvcm0iLCJjaHVuayIsIl9lbmNvZGluZyIsImFwcGVuZCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmNvbWluZy1tZXNzYWdlLXN0cmVhbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVmZmVyTGlzdCBmcm9tICdibCc7XG5pbXBvcnQgeyBUcmFuc2Zvcm0gfSBmcm9tICdzdHJlYW0nO1xuXG5pbXBvcnQgRGVidWcgZnJvbSAnLi9kZWJ1Zyc7XG5pbXBvcnQgTWVzc2FnZSBmcm9tICcuL21lc3NhZ2UnO1xuaW1wb3J0IHsgUGFja2V0LCBIRUFERVJfTEVOR1RIIH0gZnJvbSAnLi9wYWNrZXQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvbkVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG4vKipcbiAgSW5jb21pbmdNZXNzYWdlU3RyZWFtXG4gIFRyYW5zZm9ybSByZWNlaXZlZCBURFMgZGF0YSBpbnRvIGluZGl2aWR1YWwgSW5jb21pbmdNZXNzYWdlIHN0cmVhbXMuXG4qL1xuY2xhc3MgSW5jb21pbmdNZXNzYWdlU3RyZWFtIGV4dGVuZHMgVHJhbnNmb3JtIHtcbiAgZGVidWc6IERlYnVnO1xuICBibDogYW55O1xuICBjdXJyZW50TWVzc2FnZTogTWVzc2FnZSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihkZWJ1ZzogRGVidWcpIHtcbiAgICBzdXBlcih7IHJlYWRhYmxlT2JqZWN0TW9kZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMuZGVidWcgPSBkZWJ1ZztcblxuICAgIHRoaXMuY3VycmVudE1lc3NhZ2UgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5ibCA9IG5ldyBCdWZmZXJMaXN0KCk7XG4gIH1cblxuICBwYXVzZSgpIHtcbiAgICBzdXBlci5wYXVzZSgpO1xuXG4gICAgaWYgKHRoaXMuY3VycmVudE1lc3NhZ2UpIHtcbiAgICAgIHRoaXMuY3VycmVudE1lc3NhZ2UucGF1c2UoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHJlc3VtZSgpIHtcbiAgICBzdXBlci5yZXN1bWUoKTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRNZXNzYWdlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRNZXNzYWdlLnJlc3VtZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvY2Vzc0J1ZmZlcmVkRGF0YShjYWxsYmFjazogKGVycj86IENvbm5lY3Rpb25FcnJvcikgPT4gdm9pZCkge1xuICAgIC8vIFRoZSBwYWNrZXQgaGVhZGVyIGlzIGFsd2F5cyA4IGJ5dGVzIG9mIGxlbmd0aC5cbiAgICB3aGlsZSAodGhpcy5ibC5sZW5ndGggPj0gSEVBREVSX0xFTkdUSCkge1xuICAgICAgLy8gR2V0IHRoZSBmdWxsIHBhY2tldCBsZW5ndGhcbiAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuYmwucmVhZFVJbnQxNkJFKDIpO1xuICAgICAgaWYgKGxlbmd0aCA8IEhFQURFUl9MRU5HVEgpIHtcbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrKG5ldyBDb25uZWN0aW9uRXJyb3IoJ1VuYWJsZSB0byBwcm9jZXNzIGluY29taW5nIHBhY2tldCcpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYmwubGVuZ3RoID49IGxlbmd0aCkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5ibC5zbGljZSgwLCBsZW5ndGgpO1xuICAgICAgICB0aGlzLmJsLmNvbnN1bWUobGVuZ3RoKTtcblxuICAgICAgICAvLyBUT0RPOiBHZXQgcmlkIG9mIGNyZWF0aW5nIGBQYWNrZXRgIGluc3RhbmNlcyBoZXJlLlxuICAgICAgICBjb25zdCBwYWNrZXQgPSBuZXcgUGFja2V0KGRhdGEpO1xuICAgICAgICB0aGlzLmRlYnVnLnBhY2tldCgnUmVjZWl2ZWQnLCBwYWNrZXQpO1xuICAgICAgICB0aGlzLmRlYnVnLmRhdGEocGFja2V0KTtcblxuICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMuY3VycmVudE1lc3NhZ2U7XG4gICAgICAgIGlmIChtZXNzYWdlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRNZXNzYWdlID0gbWVzc2FnZSA9IG5ldyBNZXNzYWdlKHsgdHlwZTogcGFja2V0LnR5cGUoKSwgcmVzZXRDb25uZWN0aW9uOiBmYWxzZSB9KTtcbiAgICAgICAgICB0aGlzLnB1c2gobWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFja2V0LmlzTGFzdCgpKSB7XG4gICAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgY3VycmVudCBtZXNzYWdlIHdhcyBmdWxseSBwcm9jZXNzZWQgYmVmb3JlIHdlXG4gICAgICAgICAgLy8gY29udGludWUgcHJvY2Vzc2luZyBhbnkgcmVtYWluaW5nIG1lc3NhZ2VzLlxuICAgICAgICAgIG1lc3NhZ2Uub25jZSgnZW5kJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TWVzc2FnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0J1ZmZlcmVkRGF0YShjYWxsYmFjayk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbWVzc2FnZS5lbmQocGFja2V0LmRhdGEoKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKCFtZXNzYWdlLndyaXRlKHBhY2tldC5kYXRhKCkpKSB7XG4gICAgICAgICAgLy8gSWYgdG9vIG11Y2ggZGF0YSBpcyBidWZmZXJpbmcgdXAgaW4gdGhlXG4gICAgICAgICAgLy8gY3VycmVudCBtZXNzYWdlLCB3YWl0IGZvciBpdCB0byBkcmFpbi5cbiAgICAgICAgICBtZXNzYWdlLm9uY2UoJ2RyYWluJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQnVmZmVyZWREYXRhKGNhbGxiYWNrKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5vdCBlbm91Z2ggZGF0YSB0byByZWFkIHRoZSBuZXh0IHBhY2tldC4gU3RvcCBoZXJlIGFuZCB3YWl0IGZvclxuICAgIC8vIHRoZSBuZXh0IGNhbGwgdG8gYF90cmFuc2Zvcm1gLlxuICAgIGNhbGxiYWNrKCk7XG4gIH1cblxuICBfdHJhbnNmb3JtKGNodW5rOiBCdWZmZXIsIF9lbmNvZGluZzogc3RyaW5nLCBjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuYmwuYXBwZW5kKGNodW5rKTtcbiAgICB0aGlzLnByb2Nlc3NCdWZmZXJlZERhdGEoY2FsbGJhY2spO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEluY29taW5nTWVzc2FnZVN0cmVhbTtcbm1vZHVsZS5leHBvcnRzID0gSW5jb21pbmdNZXNzYWdlU3RyZWFtO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxHQUFBLEdBQUFD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"incoming-message-stream.js","names":["_bl","_interopRequireDefault","require","_stream","_message","_packet","_errors","obj","__esModule","default","IncomingMessageStream","Transform","debug","bl","currentMessage","constructor","readableObjectMode","undefined","BufferList","pause","resume","processBufferedData","callback","length","HEADER_LENGTH","readUInt16BE","ConnectionError","data","slice","consume","packet","Packet","message","Message","type","resetConnection","push","isLast","once","end","write","_transform","chunk","_encoding","append","_default","exports","module"],"sources":["../src/incoming-message-stream.ts"],"sourcesContent":["import BufferList from 'bl';\nimport { Transform } from 'stream';\n\nimport Debug from './debug';\nimport Message from './message';\nimport { Packet, HEADER_LENGTH } from './packet';\nimport { ConnectionError } from './errors';\n\n/**\n IncomingMessageStream\n Transform received TDS data into individual IncomingMessage streams.\n*/\nclass IncomingMessageStream extends Transform {\n debug: Debug;\n bl: any;\n currentMessage: Message | undefined;\n\n constructor(debug: Debug) {\n super({ readableObjectMode: true });\n\n this.debug = debug;\n\n this.currentMessage = undefined;\n this.bl = new BufferList();\n }\n\n pause() {\n super.pause();\n\n if (this.currentMessage) {\n this.currentMessage.pause();\n }\n\n return this;\n }\n\n resume() {\n super.resume();\n\n if (this.currentMessage) {\n this.currentMessage.resume();\n }\n\n return this;\n }\n\n processBufferedData(callback: (err?: ConnectionError) => void) {\n // The packet header is always 8 bytes of length.\n while (this.bl.length >= HEADER_LENGTH) {\n // Get the full packet length\n const length = this.bl.readUInt16BE(2);\n if (length < HEADER_LENGTH) {\n return callback(new ConnectionError('Unable to process incoming packet'));\n }\n\n if (this.bl.length >= length) {\n const data = this.bl.slice(0, length);\n this.bl.consume(length);\n\n // TODO: Get rid of creating `Packet` instances here.\n const packet = new Packet(data);\n this.debug.packet('Received', packet);\n this.debug.data(packet);\n\n let message = this.currentMessage;\n if (message === undefined) {\n this.currentMessage = message = new Message({ type: packet.type(), resetConnection: false });\n this.push(message);\n }\n\n if (packet.isLast()) {\n // Wait until the current message was fully processed before we\n // continue processing any remaining messages.\n message.once('end', () => {\n this.currentMessage = undefined;\n this.processBufferedData(callback);\n });\n message.end(packet.data());\n return;\n } else if (!message.write(packet.data())) {\n // If too much data is buffering up in the\n // current message, wait for it to drain.\n message.once('drain', () => {\n this.processBufferedData(callback);\n });\n return;\n }\n } else {\n break;\n }\n }\n\n // Not enough data to read the next packet. Stop here and wait for\n // the next call to `_transform`.\n callback();\n }\n\n _transform(chunk: Buffer, _encoding: string, callback: () => void) {\n this.bl.append(chunk);\n this.processBufferedData(callback);\n }\n}\n\nexport default IncomingMessageStream;\nmodule.exports = IncomingMessageStream;\n"],"mappings":"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"}
|
package/lib/instance-lookup.js
CHANGED
|
@@ -5,68 +5,47 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.instanceLookup = instanceLookup;
|
|
7
7
|
exports.parseBrowserResponse = parseBrowserResponse;
|
|
8
|
-
|
|
9
8
|
var _dns = _interopRequireDefault(require("dns"));
|
|
10
|
-
|
|
11
9
|
var _abortError = _interopRequireDefault(require("./errors/abort-error"));
|
|
12
|
-
|
|
13
10
|
var _sender = require("./sender");
|
|
14
|
-
|
|
15
11
|
var _withTimeout = require("./utils/with-timeout");
|
|
16
|
-
|
|
17
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
-
|
|
19
13
|
const SQL_SERVER_BROWSER_PORT = 1434;
|
|
20
14
|
const TIMEOUT = 2 * 1000;
|
|
21
|
-
const RETRIES = 3;
|
|
22
|
-
|
|
15
|
+
const RETRIES = 3;
|
|
16
|
+
// There are three bytes at the start of the response, whose purpose is unknown.
|
|
23
17
|
const MYSTERY_HEADER_LENGTH = 3;
|
|
24
|
-
|
|
25
18
|
// Most of the functionality has been determined from from jTDS's MSSqlServerInfo class.
|
|
26
19
|
async function instanceLookup(options) {
|
|
27
20
|
const server = options.server;
|
|
28
|
-
|
|
29
21
|
if (typeof server !== 'string') {
|
|
30
22
|
throw new TypeError('Invalid arguments: "server" must be a string');
|
|
31
23
|
}
|
|
32
|
-
|
|
33
24
|
const instanceName = options.instanceName;
|
|
34
|
-
|
|
35
25
|
if (typeof instanceName !== 'string') {
|
|
36
26
|
throw new TypeError('Invalid arguments: "instanceName" must be a string');
|
|
37
27
|
}
|
|
38
|
-
|
|
39
28
|
const timeout = options.timeout === undefined ? TIMEOUT : options.timeout;
|
|
40
|
-
|
|
41
29
|
if (typeof timeout !== 'number') {
|
|
42
30
|
throw new TypeError('Invalid arguments: "timeout" must be a number');
|
|
43
31
|
}
|
|
44
|
-
|
|
45
32
|
const retries = options.retries === undefined ? RETRIES : options.retries;
|
|
46
|
-
|
|
47
33
|
if (typeof retries !== 'number') {
|
|
48
34
|
throw new TypeError('Invalid arguments: "retries" must be a number');
|
|
49
35
|
}
|
|
50
|
-
|
|
51
36
|
if (options.lookup !== undefined && typeof options.lookup !== 'function') {
|
|
52
37
|
throw new TypeError('Invalid arguments: "lookup" must be a function');
|
|
53
38
|
}
|
|
54
|
-
|
|
55
39
|
const lookup = options.lookup ?? _dns.default.lookup;
|
|
56
|
-
|
|
57
40
|
if (options.port !== undefined && typeof options.port !== 'number') {
|
|
58
41
|
throw new TypeError('Invalid arguments: "port" must be a number');
|
|
59
42
|
}
|
|
60
|
-
|
|
61
43
|
const port = options.port ?? SQL_SERVER_BROWSER_PORT;
|
|
62
44
|
const signal = options.signal;
|
|
63
|
-
|
|
64
45
|
if (signal.aborted) {
|
|
65
46
|
throw new _abortError.default();
|
|
66
47
|
}
|
|
67
|
-
|
|
68
48
|
let response;
|
|
69
|
-
|
|
70
49
|
for (let i = 0; i <= retries; i++) {
|
|
71
50
|
try {
|
|
72
51
|
response = await (0, _withTimeout.withTimeout)(timeout, async signal => {
|
|
@@ -78,42 +57,32 @@ async function instanceLookup(options) {
|
|
|
78
57
|
if (!signal.aborted && err instanceof Error && err.name === 'TimeoutError') {
|
|
79
58
|
continue;
|
|
80
59
|
}
|
|
81
|
-
|
|
82
60
|
throw err;
|
|
83
61
|
}
|
|
84
62
|
}
|
|
85
|
-
|
|
86
63
|
if (!response) {
|
|
87
64
|
throw new Error('Failed to get response from SQL Server Browser on ' + server);
|
|
88
65
|
}
|
|
89
|
-
|
|
90
66
|
const message = response.toString('ascii', MYSTERY_HEADER_LENGTH);
|
|
91
67
|
const foundPort = parseBrowserResponse(message, instanceName);
|
|
92
|
-
|
|
93
68
|
if (!foundPort) {
|
|
94
69
|
throw new Error('Port for ' + instanceName + ' not found in ' + options.server);
|
|
95
70
|
}
|
|
96
|
-
|
|
97
71
|
return foundPort;
|
|
98
72
|
}
|
|
99
|
-
|
|
100
73
|
function parseBrowserResponse(response, instanceName) {
|
|
101
74
|
let getPort;
|
|
102
75
|
const instances = response.split(';;');
|
|
103
|
-
|
|
104
76
|
for (let i = 0, len = instances.length; i < len; i++) {
|
|
105
77
|
const instance = instances[i];
|
|
106
78
|
const parts = instance.split(';');
|
|
107
|
-
|
|
108
79
|
for (let p = 0, partsLen = parts.length; p < partsLen; p += 2) {
|
|
109
80
|
const name = parts[p];
|
|
110
81
|
const value = parts[p + 1];
|
|
111
|
-
|
|
112
82
|
if (name === 'tcp' && getPort) {
|
|
113
83
|
const port = parseInt(value, 10);
|
|
114
84
|
return port;
|
|
115
85
|
}
|
|
116
|
-
|
|
117
86
|
if (name === 'InstanceName') {
|
|
118
87
|
if (value.toUpperCase() === instanceName.toUpperCase()) {
|
|
119
88
|
getPort = true;
|
|
@@ -124,4 +93,4 @@ function parseBrowserResponse(response, instanceName) {
|
|
|
124
93
|
}
|
|
125
94
|
}
|
|
126
95
|
}
|
|
127
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTUUxfU0VSVkVSX0JST1dTRVJfUE9SVCIsIlRJTUVPVVQiLCJSRVRSSUVTIiwiTVlTVEVSWV9IRUFERVJfTEVOR1RIIiwiaW5zdGFuY2VMb29rdXAiLCJvcHRpb25zIiwic2VydmVyIiwiVHlwZUVycm9yIiwiaW5zdGFuY2VOYW1lIiwidGltZW91dCIsInVuZGVmaW5lZCIsInJldHJpZXMiLCJsb29rdXAiLCJkbnMiLCJwb3J0Iiwic2lnbmFsIiwiYWJvcnRlZCIsIkFib3J0RXJyb3IiLCJyZXNwb25zZSIsImkiLCJyZXF1ZXN0IiwiQnVmZmVyIiwiZnJvbSIsImVyciIsIkVycm9yIiwibmFtZSIsIm1lc3NhZ2UiLCJ0b1N0cmluZyIsImZvdW5kUG9ydCIsInBhcnNlQnJvd3NlclJlc3BvbnNlIiwiZ2V0UG9ydCIsImluc3RhbmNlcyIsInNwbGl0IiwibGVuIiwibGVuZ3RoIiwiaW5zdGFuY2UiLCJwYXJ0cyIsInAiLCJwYXJ0c0xlbiIsInZhbHVlIiwicGFyc2VJbnQiLCJ0b1VwcGVyQ2FzZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnN0YW5jZS1sb29rdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRucyBmcm9tICdkbnMnO1xuaW1wb3J0IHsgQWJvcnRTaWduYWwgfSBmcm9tICdub2RlLWFib3J0LWNvbnRyb2xsZXInO1xuXG5pbXBvcnQgQWJvcnRFcnJvciBmcm9tICcuL2Vycm9ycy9hYm9ydC1lcnJvcic7XG5pbXBvcnQgeyBzZW5kTWVzc2FnZSB9IGZyb20gJy4vc2VuZGVyJztcbmltcG9ydCB7IHdpdGhUaW1lb3V0IH0gZnJvbSAnLi91dGlscy93aXRoLXRpbWVvdXQnO1xuXG5jb25zdCBTUUxfU0VSVkVSX0JST1dTRVJfUE9SVCA9IDE0MzQ7XG5jb25zdCBUSU1FT1VUID0gMiAqIDEwMDA7XG5jb25zdCBSRVRSSUVTID0gMztcbi8vIFRoZXJlIGFyZSB0aHJlZSBieXRlcyBhdCB0aGUgc3RhcnQgb2YgdGhlIHJlc3BvbnNlLCB3aG9zZSBwdXJwb3NlIGlzIHVua25vd24uXG5jb25zdCBNWVNURVJZX0hFQURFUl9MRU5HVEggPSAzO1xuXG50eXBlIExvb2t1cEZ1bmN0aW9uID0gKGhvc3RuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IGRucy5Mb29rdXBBbGxPcHRpb25zLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgYWRkcmVzc2VzOiBkbnMuTG9va3VwQWRkcmVzc1tdKSA9PiB2b2lkKSA9PiB2b2lkO1xuXG4vLyBNb3N0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIGRldGVybWluZWQgZnJvbSBmcm9tIGpURFMncyBNU1NxbFNlcnZlckluZm8gY2xhc3MuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5zdGFuY2VMb29rdXAob3B0aW9uczogeyBzZXJ2ZXI6IHN0cmluZywgaW5zdGFuY2VOYW1lOiBzdHJpbmcsIHRpbWVvdXQ/OiBudW1iZXIsIHJldHJpZXM/OiBudW1iZXIsIHBvcnQ/OiBudW1iZXIsIGxvb2t1cD86IExvb2t1cEZ1bmN0aW9uLCBzaWduYWw6IEFib3J0U2lnbmFsIH0pIHtcbiAgY29uc3Qgc2VydmVyID0gb3B0aW9ucy5zZXJ2ZXI7XG4gIGlmICh0eXBlb2Ygc2VydmVyICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgYXJndW1lbnRzOiBcInNlcnZlclwiIG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIGNvbnN0IGluc3RhbmNlTmFtZSA9IG9wdGlvbnMuaW5zdGFuY2VOYW1lO1xuICBpZiAodHlwZW9mIGluc3RhbmNlTmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50czogXCJpbnN0YW5jZU5hbWVcIiBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gIH1cblxuICBjb25zdCB0aW1lb3V0ID0gb3B0aW9ucy50aW1lb3V0ID09PSB1bmRlZmluZWQgPyBUSU1FT1VUIDogb3B0aW9ucy50aW1lb3V0O1xuICBpZiAodHlwZW9mIHRpbWVvdXQgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBhcmd1bWVudHM6IFwidGltZW91dFwiIG11c3QgYmUgYSBudW1iZXInKTtcbiAgfVxuXG4gIGNvbnN0IHJldHJpZXMgPSBvcHRpb25zLnJldHJpZXMgPT09IHVuZGVmaW5lZCA/IFJFVFJJRVMgOiBvcHRpb25zLnJldHJpZXM7XG4gIGlmICh0eXBlb2YgcmV0cmllcyAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50czogXCJyZXRyaWVzXCIgbXVzdCBiZSBhIG51bWJlcicpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMubG9va3VwICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbnMubG9va3VwICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBhcmd1bWVudHM6IFwibG9va3VwXCIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH1cbiAgY29uc3QgbG9va3VwID0gb3B0aW9ucy5sb29rdXAgPz8gZG5zLmxvb2t1cDtcblxuICBpZiAob3B0aW9ucy5wb3J0ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbnMucG9ydCAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50czogXCJwb3J0XCIgbXVzdCBiZSBhIG51bWJlcicpO1xuICB9XG4gIGNvbnN0IHBvcnQgPSBvcHRpb25zLnBvcnQgPz8gU1FMX1NFUlZFUl9CUk9XU0VSX1BPUlQ7XG5cbiAgY29uc3Qgc2lnbmFsID0gb3B0aW9ucy5zaWduYWw7XG5cbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IEFib3J0RXJyb3IoKTtcbiAgfVxuXG4gIGxldCByZXNwb25zZTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8PSByZXRyaWVzOyBpKyspIHtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB3aXRoVGltZW91dCh0aW1lb3V0LCBhc3luYyAoc2lnbmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBCdWZmZXIuZnJvbShbMHgwMl0pO1xuICAgICAgICByZXR1cm4gYXdhaXQgc2VuZE1lc3NhZ2Uob3B0aW9ucy5zZXJ2ZXIsIHBvcnQsIGxvb2t1cCwgc2lnbmFsLCByZXF1ZXN0KTtcbiAgICAgIH0sIHNpZ25hbCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBJZiB0aGUgY3VycmVudCBhdHRlbXB0IHRpbWVkIG91dCwgY29udGludWUgd2l0aCB0aGUgbmV4dFxuICAgICAgaWYgKCFzaWduYWwuYWJvcnRlZCAmJiBlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubmFtZSA9PT0gJ1RpbWVvdXRFcnJvcicpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2V0IHJlc3BvbnNlIGZyb20gU1FMIFNlcnZlciBCcm93c2VyIG9uICcgKyBzZXJ2ZXIpO1xuICB9XG5cbiAgY29uc3QgbWVzc2FnZSA9IHJlc3BvbnNlLnRvU3RyaW5nKCdhc2NpaScsIE1ZU1RFUllfSEVBREVSX0xFTkdUSCk7XG4gIGNvbnN0IGZvdW5kUG9ydCA9IHBhcnNlQnJvd3NlclJlc3BvbnNlKG1lc3NhZ2UsIGluc3RhbmNlTmFtZSk7XG5cbiAgaWYgKCFmb3VuZFBvcnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BvcnQgZm9yICcgKyBpbnN0YW5jZU5hbWUgKyAnIG5vdCBmb3VuZCBpbiAnICsgb3B0aW9ucy5zZXJ2ZXIpO1xuICB9XG5cbiAgcmV0dXJuIGZvdW5kUG9ydDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQnJvd3NlclJlc3BvbnNlKHJlc3BvbnNlOiBzdHJpbmcsIGluc3RhbmNlTmFtZTogc3RyaW5nKSB7XG4gIGxldCBnZXRQb3J0O1xuXG4gIGNvbnN0IGluc3RhbmNlcyA9IHJlc3BvbnNlLnNwbGl0KCc7OycpO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5zdGFuY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBpbnN0YW5jZXNbaV07XG4gICAgY29uc3QgcGFydHMgPSBpbnN0YW5jZS5zcGxpdCgnOycpO1xuXG4gICAgZm9yIChsZXQgcCA9IDAsIHBhcnRzTGVuID0gcGFydHMubGVuZ3RoOyBwIDwgcGFydHNMZW47IHAgKz0gMikge1xuICAgICAgY29uc3QgbmFtZSA9IHBhcnRzW3BdO1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJ0c1twICsgMV07XG5cbiAgICAgIGlmIChuYW1lID09PSAndGNwJyAmJiBnZXRQb3J0KSB7XG4gICAgICAgIGNvbnN0IHBvcnQgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgICAgICByZXR1cm4gcG9ydDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hbWUgPT09ICdJbnN0YW5jZU5hbWUnKSB7XG4gICAgICAgIGlmICh2YWx1ZS50b1VwcGVyQ2FzZSgpID09PSBpbnN0YW5jZU5hbWUudG9VcHBlckNhc2UoKSkge1xuICAgICAgICAgIGdldFBvcnQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdldFBvcnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUdBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsdUJBQXVCLEdBQUcsSUFBaEM7QUFDQSxNQUFNQyxPQUFPLEdBQUcsSUFBSSxJQUFwQjtBQUNBLE1BQU1DLE9BQU8sR0FBRyxDQUFoQixDLENBQ0E7O0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsQ0FBOUI7O0FBSUE7QUFDTyxlQUFl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
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZG5zIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYWJvcnRFcnJvciIsIl9zZW5kZXIiLCJfd2l0aFRpbWVvdXQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlNRTF9TRVJWRVJfQlJPV1NFUl9QT1JUIiwiVElNRU9VVCIsIlJFVFJJRVMiLCJNWVNURVJZX0hFQURFUl9MRU5HVEgiLCJpbnN0YW5jZUxvb2t1cCIsIm9wdGlvbnMiLCJzZXJ2ZXIiLCJUeXBlRXJyb3IiLCJpbnN0YW5jZU5hbWUiLCJ0aW1lb3V0IiwidW5kZWZpbmVkIiwicmV0cmllcyIsImxvb2t1cCIsImRucyIsInBvcnQiLCJzaWduYWwiLCJhYm9ydGVkIiwiQWJvcnRFcnJvciIsInJlc3BvbnNlIiwiaSIsIndpdGhUaW1lb3V0IiwicmVxdWVzdCIsIkJ1ZmZlciIsImZyb20iLCJzZW5kTWVzc2FnZSIsImVyciIsIkVycm9yIiwibmFtZSIsIm1lc3NhZ2UiLCJ0b1N0cmluZyIsImZvdW5kUG9ydCIsInBhcnNlQnJvd3NlclJlc3BvbnNlIiwiZ2V0UG9ydCIsImluc3RhbmNlcyIsInNwbGl0IiwibGVuIiwibGVuZ3RoIiwiaW5zdGFuY2UiLCJwYXJ0cyIsInAiLCJwYXJ0c0xlbiIsInZhbHVlIiwicGFyc2VJbnQiLCJ0b1VwcGVyQ2FzZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnN0YW5jZS1sb29rdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRucyBmcm9tICdkbnMnO1xuaW1wb3J0IHsgQWJvcnRTaWduYWwgfSBmcm9tICdub2RlLWFib3J0LWNvbnRyb2xsZXInO1xuXG5pbXBvcnQgQWJvcnRFcnJvciBmcm9tICcuL2Vycm9ycy9hYm9ydC1lcnJvcic7XG5pbXBvcnQgeyBzZW5kTWVzc2FnZSB9IGZyb20gJy4vc2VuZGVyJztcbmltcG9ydCB7IHdpdGhUaW1lb3V0IH0gZnJvbSAnLi91dGlscy93aXRoLXRpbWVvdXQnO1xuXG5jb25zdCBTUUxfU0VSVkVSX0JST1dTRVJfUE9SVCA9IDE0MzQ7XG5jb25zdCBUSU1FT1VUID0gMiAqIDEwMDA7XG5jb25zdCBSRVRSSUVTID0gMztcbi8vIFRoZXJlIGFyZSB0aHJlZSBieXRlcyBhdCB0aGUgc3RhcnQgb2YgdGhlIHJlc3BvbnNlLCB3aG9zZSBwdXJwb3NlIGlzIHVua25vd24uXG5jb25zdCBNWVNURVJZX0hFQURFUl9MRU5HVEggPSAzO1xuXG50eXBlIExvb2t1cEZ1bmN0aW9uID0gKGhvc3RuYW1lOiBzdHJpbmcsIG9wdGlvbnM6IGRucy5Mb29rdXBBbGxPcHRpb25zLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uIHwgbnVsbCwgYWRkcmVzc2VzOiBkbnMuTG9va3VwQWRkcmVzc1tdKSA9PiB2b2lkKSA9PiB2b2lkO1xuXG4vLyBNb3N0IG9mIHRoZSBmdW5jdGlvbmFsaXR5IGhhcyBiZWVuIGRldGVybWluZWQgZnJvbSBmcm9tIGpURFMncyBNU1NxbFNlcnZlckluZm8gY2xhc3MuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5zdGFuY2VMb29rdXAob3B0aW9uczogeyBzZXJ2ZXI6IHN0cmluZywgaW5zdGFuY2VOYW1lOiBzdHJpbmcsIHRpbWVvdXQ/OiBudW1iZXIsIHJldHJpZXM/OiBudW1iZXIsIHBvcnQ/OiBudW1iZXIsIGxvb2t1cD86IExvb2t1cEZ1bmN0aW9uLCBzaWduYWw6IEFib3J0U2lnbmFsIH0pIHtcbiAgY29uc3Qgc2VydmVyID0gb3B0aW9ucy5zZXJ2ZXI7XG4gIGlmICh0eXBlb2Ygc2VydmVyICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgYXJndW1lbnRzOiBcInNlcnZlclwiIG11c3QgYmUgYSBzdHJpbmcnKTtcbiAgfVxuXG4gIGNvbnN0IGluc3RhbmNlTmFtZSA9IG9wdGlvbnMuaW5zdGFuY2VOYW1lO1xuICBpZiAodHlwZW9mIGluc3RhbmNlTmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50czogXCJpbnN0YW5jZU5hbWVcIiBtdXN0IGJlIGEgc3RyaW5nJyk7XG4gIH1cblxuICBjb25zdCB0aW1lb3V0ID0gb3B0aW9ucy50aW1lb3V0ID09PSB1bmRlZmluZWQgPyBUSU1FT1VUIDogb3B0aW9ucy50aW1lb3V0O1xuICBpZiAodHlwZW9mIHRpbWVvdXQgIT09ICdudW1iZXInKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBhcmd1bWVudHM6IFwidGltZW91dFwiIG11c3QgYmUgYSBudW1iZXInKTtcbiAgfVxuXG4gIGNvbnN0IHJldHJpZXMgPSBvcHRpb25zLnJldHJpZXMgPT09IHVuZGVmaW5lZCA/IFJFVFJJRVMgOiBvcHRpb25zLnJldHJpZXM7XG4gIGlmICh0eXBlb2YgcmV0cmllcyAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50czogXCJyZXRyaWVzXCIgbXVzdCBiZSBhIG51bWJlcicpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMubG9va3VwICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbnMubG9va3VwICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBhcmd1bWVudHM6IFwibG9va3VwXCIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG4gIH1cbiAgY29uc3QgbG9va3VwID0gb3B0aW9ucy5sb29rdXAgPz8gZG5zLmxvb2t1cDtcblxuICBpZiAob3B0aW9ucy5wb3J0ICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG9wdGlvbnMucG9ydCAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdJbnZhbGlkIGFyZ3VtZW50czogXCJwb3J0XCIgbXVzdCBiZSBhIG51bWJlcicpO1xuICB9XG4gIGNvbnN0IHBvcnQgPSBvcHRpb25zLnBvcnQgPz8gU1FMX1NFUlZFUl9CUk9XU0VSX1BPUlQ7XG5cbiAgY29uc3Qgc2lnbmFsID0gb3B0aW9ucy5zaWduYWw7XG5cbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgdGhyb3cgbmV3IEFib3J0RXJyb3IoKTtcbiAgfVxuXG4gIGxldCByZXNwb25zZTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8PSByZXRyaWVzOyBpKyspIHtcbiAgICB0cnkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCB3aXRoVGltZW91dCh0aW1lb3V0LCBhc3luYyAoc2lnbmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSBCdWZmZXIuZnJvbShbMHgwMl0pO1xuICAgICAgICByZXR1cm4gYXdhaXQgc2VuZE1lc3NhZ2Uob3B0aW9ucy5zZXJ2ZXIsIHBvcnQsIGxvb2t1cCwgc2lnbmFsLCByZXF1ZXN0KTtcbiAgICAgIH0sIHNpZ25hbCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBJZiB0aGUgY3VycmVudCBhdHRlbXB0IHRpbWVkIG91dCwgY29udGludWUgd2l0aCB0aGUgbmV4dFxuICAgICAgaWYgKCFzaWduYWwuYWJvcnRlZCAmJiBlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubmFtZSA9PT0gJ1RpbWVvdXRFcnJvcicpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZ2V0IHJlc3BvbnNlIGZyb20gU1FMIFNlcnZlciBCcm93c2VyIG9uICcgKyBzZXJ2ZXIpO1xuICB9XG5cbiAgY29uc3QgbWVzc2FnZSA9IHJlc3BvbnNlLnRvU3RyaW5nKCdhc2NpaScsIE1ZU1RFUllfSEVBREVSX0xFTkdUSCk7XG4gIGNvbnN0IGZvdW5kUG9ydCA9IHBhcnNlQnJvd3NlclJlc3BvbnNlKG1lc3NhZ2UsIGluc3RhbmNlTmFtZSk7XG5cbiAgaWYgKCFmb3VuZFBvcnQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1BvcnQgZm9yICcgKyBpbnN0YW5jZU5hbWUgKyAnIG5vdCBmb3VuZCBpbiAnICsgb3B0aW9ucy5zZXJ2ZXIpO1xuICB9XG5cbiAgcmV0dXJuIGZvdW5kUG9ydDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQnJvd3NlclJlc3BvbnNlKHJlc3BvbnNlOiBzdHJpbmcsIGluc3RhbmNlTmFtZTogc3RyaW5nKSB7XG4gIGxldCBnZXRQb3J0O1xuXG4gIGNvbnN0IGluc3RhbmNlcyA9IHJlc3BvbnNlLnNwbGl0KCc7OycpO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gaW5zdGFuY2VzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBpbnN0YW5jZXNbaV07XG4gICAgY29uc3QgcGFydHMgPSBpbnN0YW5jZS5zcGxpdCgnOycpO1xuXG4gICAgZm9yIChsZXQgcCA9IDAsIHBhcnRzTGVuID0gcGFydHMubGVuZ3RoOyBwIDwgcGFydHNMZW47IHAgKz0gMikge1xuICAgICAgY29uc3QgbmFtZSA9IHBhcnRzW3BdO1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJ0c1twICsgMV07XG5cbiAgICAgIGlmIChuYW1lID09PSAndGNwJyAmJiBnZXRQb3J0KSB7XG4gICAgICAgIGNvbnN0IHBvcnQgPSBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgICAgICByZXR1cm4gcG9ydDtcbiAgICAgIH1cblxuICAgICAgaWYgKG5hbWUgPT09ICdJbnN0YW5jZU5hbWUnKSB7XG4gICAgICAgIGlmICh2YWx1ZS50b1VwcGVyQ2FzZSgpID09PSBpbnN0YW5jZU5hbWUudG9VcHBlckNhc2UoKSkge1xuICAgICAgICAgIGdldFBvcnQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdldFBvcnQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsSUFBQSxHQUFBQyxzQkFBQSxD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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance-lookup.js","names":["_dns","_interopRequireDefault","require","_abortError","_sender","_withTimeout","obj","__esModule","default","SQL_SERVER_BROWSER_PORT","TIMEOUT","RETRIES","MYSTERY_HEADER_LENGTH","instanceLookup","options","server","TypeError","instanceName","timeout","undefined","retries","lookup","dns","port","signal","aborted","AbortError","response","i","withTimeout","request","Buffer","from","sendMessage","err","Error","name","message","toString","foundPort","parseBrowserResponse","getPort","instances","split","len","length","instance","parts","p","partsLen","value","parseInt","toUpperCase"],"sources":["../src/instance-lookup.ts"],"sourcesContent":["import dns from 'dns';\nimport { AbortSignal } from 'node-abort-controller';\n\nimport AbortError from './errors/abort-error';\nimport { sendMessage } from './sender';\nimport { withTimeout } from './utils/with-timeout';\n\nconst SQL_SERVER_BROWSER_PORT = 1434;\nconst TIMEOUT = 2 * 1000;\nconst RETRIES = 3;\n// There are three bytes at the start of the response, whose purpose is unknown.\nconst MYSTERY_HEADER_LENGTH = 3;\n\ntype LookupFunction = (hostname: string, options: dns.LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: dns.LookupAddress[]) => void) => void;\n\n// Most of the functionality has been determined from from jTDS's MSSqlServerInfo class.\nexport async function instanceLookup(options: { server: string, instanceName: string, timeout?: number, retries?: number, port?: number, lookup?: LookupFunction, signal: AbortSignal }) {\n const server = options.server;\n if (typeof server !== 'string') {\n throw new TypeError('Invalid arguments: \"server\" must be a string');\n }\n\n const instanceName = options.instanceName;\n if (typeof instanceName !== 'string') {\n throw new TypeError('Invalid arguments: \"instanceName\" must be a string');\n }\n\n const timeout = options.timeout === undefined ? TIMEOUT : options.timeout;\n if (typeof timeout !== 'number') {\n throw new TypeError('Invalid arguments: \"timeout\" must be a number');\n }\n\n const retries = options.retries === undefined ? RETRIES : options.retries;\n if (typeof retries !== 'number') {\n throw new TypeError('Invalid arguments: \"retries\" must be a number');\n }\n\n if (options.lookup !== undefined && typeof options.lookup !== 'function') {\n throw new TypeError('Invalid arguments: \"lookup\" must be a function');\n }\n const lookup = options.lookup ?? dns.lookup;\n\n if (options.port !== undefined && typeof options.port !== 'number') {\n throw new TypeError('Invalid arguments: \"port\" must be a number');\n }\n const port = options.port ?? SQL_SERVER_BROWSER_PORT;\n\n const signal = options.signal;\n\n if (signal.aborted) {\n throw new AbortError();\n }\n\n let response;\n\n for (let i = 0; i <= retries; i++) {\n try {\n response = await withTimeout(timeout, async (signal) => {\n const request = Buffer.from([0x02]);\n return await sendMessage(options.server, port, lookup, signal, request);\n }, signal);\n } catch (err) {\n // If the current attempt timed out, continue with the next\n if (!signal.aborted && err instanceof Error && err.name === 'TimeoutError') {\n continue;\n }\n\n throw err;\n }\n }\n\n if (!response) {\n throw new Error('Failed to get response from SQL Server Browser on ' + server);\n }\n\n const message = response.toString('ascii', MYSTERY_HEADER_LENGTH);\n const foundPort = parseBrowserResponse(message, instanceName);\n\n if (!foundPort) {\n throw new Error('Port for ' + instanceName + ' not found in ' + options.server);\n }\n\n return foundPort;\n}\n\nexport function parseBrowserResponse(response: string, instanceName: string) {\n let getPort;\n\n const instances = response.split(';;');\n for (let i = 0, len = instances.length; i < len; i++) {\n const instance = instances[i];\n const parts = instance.split(';');\n\n for (let p = 0, partsLen = parts.length; p < partsLen; p += 2) {\n const name = parts[p];\n const value = parts[p + 1];\n\n if (name === 'tcp' && getPort) {\n const port = parseInt(value, 10);\n return port;\n }\n\n if (name === 'InstanceName') {\n if (value.toUpperCase() === instanceName.toUpperCase()) {\n getPort = true;\n } else {\n getPort = false;\n }\n }\n }\n }\n}\n"],"mappings":"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"}
|
package/lib/library.js
CHANGED
|
@@ -6,4 +6,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.name = void 0;
|
|
7
7
|
const name = 'Tedious';
|
|
8
8
|
exports.name = name;
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJuYW1lIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9saWJyYXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBuYW1lID0gJ1RlZGlvdXMnO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxNQUFNQSxJQUFJLEdBQUcsU0FBUztBQUFDQyxPQUFBLENBQUFELElBQUEsR0FBQUEsSUFBQSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library.js","names":["name","exports"],"sources":["../src/library.ts"],"sourcesContent":["export const name = 'Tedious';\n"],"mappings":";;;;;;AAAO,MAAMA,IAAI,GAAG,SAAS;AAACC,OAAA,CAAAD,IAAA,GAAAA,IAAA"}
|