tedious 18.6.2 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/README.md +1 -1
  2. package/lib/all-headers.js +1 -1
  3. package/lib/all-headers.js.map +1 -1
  4. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +1 -1
  5. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -1
  6. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +2 -2
  7. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -1
  8. package/lib/always-encrypted/cek-entry.js +1 -1
  9. package/lib/always-encrypted/cek-entry.js.map +1 -1
  10. package/lib/always-encrypted/get-parameter-encryption-metadata.js +2 -2
  11. package/lib/always-encrypted/get-parameter-encryption-metadata.js.map +1 -1
  12. package/lib/always-encrypted/key-crypto.js +1 -1
  13. package/lib/always-encrypted/key-crypto.js.map +1 -1
  14. package/lib/always-encrypted/keystore-provider-azure-key-vault.js +1 -1
  15. package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -1
  16. package/lib/always-encrypted/symmetric-key-cache.js +2 -2
  17. package/lib/always-encrypted/symmetric-key-cache.js.map +1 -1
  18. package/lib/always-encrypted/symmetric-key.js +1 -1
  19. package/lib/always-encrypted/symmetric-key.js.map +1 -1
  20. package/lib/always-encrypted/types.js +1 -1
  21. package/lib/always-encrypted/types.js.map +1 -1
  22. package/lib/always-encrypted/utils.js +1 -1
  23. package/lib/always-encrypted/utils.js.map +1 -1
  24. package/lib/bulk-load-payload.js +1 -1
  25. package/lib/bulk-load-payload.js.map +1 -1
  26. package/lib/bulk-load.js +2 -2
  27. package/lib/bulk-load.js.map +1 -1
  28. package/lib/collation.js +1 -1
  29. package/lib/collation.js.map +1 -1
  30. package/lib/connection.d.ts +44 -50
  31. package/lib/connection.js +579 -580
  32. package/lib/connection.js.map +1 -1
  33. package/lib/connector.js +10 -18
  34. package/lib/connector.js.map +1 -1
  35. package/lib/data-type.js +2 -2
  36. package/lib/data-type.js.map +1 -1
  37. package/lib/data-types/bigint.js +2 -2
  38. package/lib/data-types/bigint.js.map +1 -1
  39. package/lib/data-types/binary.js +1 -1
  40. package/lib/data-types/binary.js.map +1 -1
  41. package/lib/data-types/bit.js +2 -2
  42. package/lib/data-types/bit.js.map +1 -1
  43. package/lib/data-types/bitn.js +1 -1
  44. package/lib/data-types/bitn.js.map +1 -1
  45. package/lib/data-types/char.js +2 -2
  46. package/lib/data-types/char.js.map +1 -1
  47. package/lib/data-types/date.js +1 -1
  48. package/lib/data-types/date.js.map +1 -1
  49. package/lib/data-types/datetime.js +2 -2
  50. package/lib/data-types/datetime.js.map +1 -1
  51. package/lib/data-types/datetime2.js +2 -2
  52. package/lib/data-types/datetime2.js.map +1 -1
  53. package/lib/data-types/datetimen.js +1 -1
  54. package/lib/data-types/datetimen.js.map +1 -1
  55. package/lib/data-types/datetimeoffset.js +2 -2
  56. package/lib/data-types/datetimeoffset.js.map +1 -1
  57. package/lib/data-types/decimal.js +2 -2
  58. package/lib/data-types/decimal.js.map +1 -1
  59. package/lib/data-types/decimaln.js +1 -1
  60. package/lib/data-types/decimaln.js.map +1 -1
  61. package/lib/data-types/float.js +2 -2
  62. package/lib/data-types/float.js.map +1 -1
  63. package/lib/data-types/floatn.js +1 -1
  64. package/lib/data-types/floatn.js.map +1 -1
  65. package/lib/data-types/image.js +1 -1
  66. package/lib/data-types/image.js.map +1 -1
  67. package/lib/data-types/int.js +2 -2
  68. package/lib/data-types/int.js.map +1 -1
  69. package/lib/data-types/intn.js +1 -1
  70. package/lib/data-types/intn.js.map +1 -1
  71. package/lib/data-types/money.js +2 -2
  72. package/lib/data-types/money.js.map +1 -1
  73. package/lib/data-types/moneyn.js +1 -1
  74. package/lib/data-types/moneyn.js.map +1 -1
  75. package/lib/data-types/nchar.js +1 -1
  76. package/lib/data-types/nchar.js.map +1 -1
  77. package/lib/data-types/ntext.js +1 -1
  78. package/lib/data-types/ntext.js.map +1 -1
  79. package/lib/data-types/null.js +1 -1
  80. package/lib/data-types/null.js.map +1 -1
  81. package/lib/data-types/numeric.js +2 -2
  82. package/lib/data-types/numeric.js.map +1 -1
  83. package/lib/data-types/numericn.js +1 -1
  84. package/lib/data-types/numericn.js.map +1 -1
  85. package/lib/data-types/nvarchar.js +1 -1
  86. package/lib/data-types/nvarchar.js.map +1 -1
  87. package/lib/data-types/real.js +2 -2
  88. package/lib/data-types/real.js.map +1 -1
  89. package/lib/data-types/smalldatetime.js +2 -2
  90. package/lib/data-types/smalldatetime.js.map +1 -1
  91. package/lib/data-types/smallint.js +2 -2
  92. package/lib/data-types/smallint.js.map +1 -1
  93. package/lib/data-types/smallmoney.js +2 -2
  94. package/lib/data-types/smallmoney.js.map +1 -1
  95. package/lib/data-types/sql-variant.js +1 -1
  96. package/lib/data-types/sql-variant.js.map +1 -1
  97. package/lib/data-types/text.js +2 -2
  98. package/lib/data-types/text.js.map +1 -1
  99. package/lib/data-types/time.js +2 -2
  100. package/lib/data-types/time.js.map +1 -1
  101. package/lib/data-types/tinyint.js +2 -2
  102. package/lib/data-types/tinyint.js.map +1 -1
  103. package/lib/data-types/tvp.js +2 -2
  104. package/lib/data-types/tvp.js.map +1 -1
  105. package/lib/data-types/udt.js +1 -1
  106. package/lib/data-types/udt.js.map +1 -1
  107. package/lib/data-types/uniqueidentifier.js +1 -1
  108. package/lib/data-types/uniqueidentifier.js.map +1 -1
  109. package/lib/data-types/varbinary.js +1 -1
  110. package/lib/data-types/varbinary.js.map +1 -1
  111. package/lib/data-types/varchar.js +2 -2
  112. package/lib/data-types/varchar.js.map +1 -1
  113. package/lib/data-types/xml.js +1 -1
  114. package/lib/data-types/xml.js.map +1 -1
  115. package/lib/debug.js +2 -2
  116. package/lib/debug.js.map +1 -1
  117. package/lib/errors.js +1 -1
  118. package/lib/errors.js.map +1 -1
  119. package/lib/guid-parser.js +1 -1
  120. package/lib/guid-parser.js.map +1 -1
  121. package/lib/incoming-message-stream.js +2 -2
  122. package/lib/incoming-message-stream.js.map +1 -1
  123. package/lib/instance-lookup.js +7 -12
  124. package/lib/instance-lookup.js.map +1 -1
  125. package/lib/library.js +1 -1
  126. package/lib/library.js.map +1 -1
  127. package/lib/login7-payload.js +1 -1
  128. package/lib/login7-payload.js.map +1 -1
  129. package/lib/message-io.js +3 -3
  130. package/lib/message-io.js.map +1 -1
  131. package/lib/message.js +1 -1
  132. package/lib/message.js.map +1 -1
  133. package/lib/metadata-parser.js +1 -1
  134. package/lib/metadata-parser.js.map +1 -1
  135. package/lib/ntlm-payload.js +3 -3
  136. package/lib/ntlm-payload.js.map +1 -1
  137. package/lib/ntlm.js +1 -1
  138. package/lib/ntlm.js.map +1 -1
  139. package/lib/outgoing-message-stream.js +2 -2
  140. package/lib/outgoing-message-stream.js.map +1 -1
  141. package/lib/packet.js +1 -1
  142. package/lib/packet.js.map +1 -1
  143. package/lib/prelogin-payload.js +2 -2
  144. package/lib/prelogin-payload.js.map +1 -1
  145. package/lib/request.js +1 -1
  146. package/lib/request.js.map +1 -1
  147. package/lib/rpcrequest-payload.js +2 -2
  148. package/lib/rpcrequest-payload.js.map +1 -1
  149. package/lib/sender.js +6 -11
  150. package/lib/sender.js.map +1 -1
  151. package/lib/special-stored-procedure.js +1 -1
  152. package/lib/special-stored-procedure.js.map +1 -1
  153. package/lib/sqlbatch-payload.js +2 -2
  154. package/lib/sqlbatch-payload.js.map +1 -1
  155. package/lib/tds-versions.js +1 -1
  156. package/lib/tds-versions.js.map +1 -1
  157. package/lib/tedious.js +2 -2
  158. package/lib/tedious.js.map +1 -1
  159. package/lib/token/colmetadata-token-parser.js +1 -1
  160. package/lib/token/colmetadata-token-parser.js.map +1 -1
  161. package/lib/token/done-token-parser.js +1 -1
  162. package/lib/token/done-token-parser.js.map +1 -1
  163. package/lib/token/env-change-token-parser.js +1 -1
  164. package/lib/token/env-change-token-parser.js.map +1 -1
  165. package/lib/token/feature-ext-ack-parser.js +1 -1
  166. package/lib/token/feature-ext-ack-parser.js.map +1 -1
  167. package/lib/token/fedauth-info-parser.js +1 -1
  168. package/lib/token/fedauth-info-parser.js.map +1 -1
  169. package/lib/token/handler.js +2 -2
  170. package/lib/token/handler.js.map +1 -1
  171. package/lib/token/helpers.js +1 -1
  172. package/lib/token/helpers.js.map +1 -1
  173. package/lib/token/infoerror-token-parser.js +1 -1
  174. package/lib/token/infoerror-token-parser.js.map +1 -1
  175. package/lib/token/loginack-token-parser.js +1 -1
  176. package/lib/token/loginack-token-parser.js.map +1 -1
  177. package/lib/token/nbcrow-token-parser.js +2 -2
  178. package/lib/token/nbcrow-token-parser.js.map +1 -1
  179. package/lib/token/order-token-parser.js +1 -1
  180. package/lib/token/order-token-parser.js.map +1 -1
  181. package/lib/token/returnstatus-token-parser.js +1 -1
  182. package/lib/token/returnstatus-token-parser.js.map +1 -1
  183. package/lib/token/returnvalue-token-parser.js +2 -2
  184. package/lib/token/returnvalue-token-parser.js.map +1 -1
  185. package/lib/token/row-token-parser.js +2 -2
  186. package/lib/token/row-token-parser.js.map +1 -1
  187. package/lib/token/sspi-token-parser.js +1 -1
  188. package/lib/token/sspi-token-parser.js.map +1 -1
  189. package/lib/token/stream-parser.js +2 -2
  190. package/lib/token/stream-parser.js.map +1 -1
  191. package/lib/token/token-stream-parser.js +2 -2
  192. package/lib/token/token-stream-parser.js.map +1 -1
  193. package/lib/token/token.js +1 -1
  194. package/lib/token/token.js.map +1 -1
  195. package/lib/tracking-buffer/writable-tracking-buffer.js +1 -1
  196. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -1
  197. package/lib/transaction.js +2 -2
  198. package/lib/transaction.js.map +1 -1
  199. package/lib/transient-error-lookup.js +1 -1
  200. package/lib/transient-error-lookup.js.map +1 -1
  201. package/lib/value-parser.js +2 -2
  202. package/lib/value-parser.js.map +1 -1
  203. package/package.json +19 -20
  204. package/benchmarks/README.md +0 -12
  205. package/benchmarks/bulk-load/iterable.js +0 -61
  206. package/benchmarks/common.js +0 -287
  207. package/benchmarks/connection/open.js +0 -26
  208. package/benchmarks/package-lock.json +0 -21173
  209. package/benchmarks/package.json +0 -11
  210. package/benchmarks/query/call-tvp.js +0 -105
  211. package/benchmarks/query/insert-varbinary.js +0 -46
  212. package/benchmarks/query/select-many-rows.js +0 -63
  213. package/benchmarks/query/select-nvarchar.js +0 -50
  214. package/benchmarks/query/select-varbinary.js +0 -50
  215. package/benchmarks/request/rpcrequest-payload-tvp.js +0 -45
  216. package/benchmarks/request/rpcrequest-payload-varbinary.js +0 -37
  217. package/benchmarks/token-parser/colmetadata-token.js +0 -27
  218. package/benchmarks/token-parser/done-token.js +0 -28
  219. package/benchmarks/token-parser/simple-tokens.js +0 -363
  220. package/lib/errors/abort-error.d.ts +0 -4
  221. package/lib/errors/abort-error.js +0 -15
  222. package/lib/errors/abort-error.js.map +0 -1
  223. package/lib/errors/timeout-error.d.ts +0 -4
  224. package/lib/errors/timeout-error.js +0 -15
  225. package/lib/errors/timeout-error.js.map +0 -1
  226. package/lib/utils/with-timeout.d.ts +0 -7
  227. package/lib/utils/with-timeout.js +0 -36
  228. package/lib/utils/with-timeout.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","names":["_request","_interopRequireDefault","require","_errors","obj","__esModule","default","UnexpectedTokenError","Error","constructor","handler","token","name","exports","TokenHandler","onInfoMessage","onErrorMessage","onSSPI","onDatabaseChange","onLanguageChange","onCharsetChange","onSqlCollationChange","onRoutingChange","onPacketSizeChange","onResetConnection","onBeginTransaction","onCommitTransaction","onRollbackTransaction","onFedAuthInfo","onFeatureExtAck","onLoginAck","onColMetadata","onOrder","onRow","onReturnStatus","onReturnValue","onDoneProc","onDoneInProc","onDone","onDatabaseMirroringPartner","InitialSqlTokenHandler","connection","emit","newValue","databaseCollation","messageIo","packetSize","transactionDescriptors","push","inTransaction","length","close","Login7TokenHandler","loginAckReceived","error","ConnectionError","message","isLoginErrorTransient","transientErrorLookup","isTransientError","number","curTransientRetryCount","config","options","maxRetriesOnTransientErrors","isTransient","loginError","ntlmpacket","ntlmpacketBuffer","fedAuthInfoToken","authentication","type","fedAuth","undefined","utf8Support","tdsVersion","interface","server","split","routingData","port","RequestTokenHandler","request","errors","canceled","RequestError","state","class","serverName","procName","lineNumber","Request","AggregateError","useColumnNames","columns","Object","create","j","len","col","colName","orderColumns","rowCollectionOnRequestCompletion","rows","rowCollectionOnDone","rst","procReturnStatusValue","value","paramName","metadata","sqlError","rowCount","more","AttentionTokenHandler","attentionReceived","attention"],"sources":["../../src/token/handler.ts"],"sourcesContent":["import Connection from '../connection';\nimport Request from '../request';\nimport { ConnectionError, RequestError } from '../errors';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\nimport {\n BeginTransactionEnvChangeToken,\n CharsetEnvChangeToken,\n CollationChangeToken,\n ColMetadataToken,\n CommitTransactionEnvChangeToken,\n DatabaseEnvChangeToken,\n DatabaseMirroringPartnerEnvChangeToken,\n DoneInProcToken,\n DoneProcToken,\n DoneToken,\n ErrorMessageToken,\n FeatureExtAckToken,\n FedAuthInfoToken,\n InfoMessageToken,\n LanguageEnvChangeToken,\n LoginAckToken,\n NBCRowToken,\n OrderToken,\n PacketSizeEnvChangeToken,\n ResetConnectionEnvChangeToken,\n ReturnStatusToken,\n ReturnValueToken,\n RollbackTransactionEnvChangeToken,\n RoutingEnvChangeToken,\n RowToken,\n SSPIToken,\n Token\n} from './token';\nimport BulkLoad from '../bulk-load';\n\nexport class UnexpectedTokenError extends Error {\n constructor(handler: TokenHandler, token: Token) {\n super('Unexpected token `' + token.name + '` in `' + handler.constructor.name + '`');\n }\n}\n\nexport class TokenHandler {\n onInfoMessage(token: InfoMessageToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onErrorMessage(token: ErrorMessageToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onSSPI(token: SSPIToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDatabaseChange(token: DatabaseEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onLanguageChange(token: LanguageEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onCharsetChange(token: CharsetEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onSqlCollationChange(token: CollationChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onRoutingChange(token: RoutingEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onPacketSizeChange(token: PacketSizeEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onResetConnection(token: ResetConnectionEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onBeginTransaction(token: BeginTransactionEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onCommitTransaction(token: CommitTransactionEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onRollbackTransaction(token: RollbackTransactionEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onFedAuthInfo(token: FedAuthInfoToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onFeatureExtAck(token: FeatureExtAckToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onLoginAck(token: LoginAckToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onColMetadata(token: ColMetadataToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onOrder(token: OrderToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onRow(token: RowToken | NBCRowToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onReturnStatus(token: ReturnStatusToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onReturnValue(token: ReturnValueToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDoneProc(token: DoneProcToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDoneInProc(token: DoneInProcToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDone(token: DoneToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDatabaseMirroringPartner(token: DatabaseMirroringPartnerEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n}\n\n/**\n * A handler for tokens received in the response message to the initial SQL Batch request\n * that sets up different connection settings.\n */\nexport class InitialSqlTokenHandler extends TokenHandler {\n declare connection: Connection;\n\n constructor(connection: Connection) {\n super();\n\n this.connection = connection;\n }\n\n onInfoMessage(token: InfoMessageToken) {\n this.connection.emit('infoMessage', token);\n }\n\n onErrorMessage(token: ErrorMessageToken) {\n this.connection.emit('errorMessage', token);\n }\n\n onDatabaseChange(token: DatabaseEnvChangeToken) {\n this.connection.emit('databaseChange', token.newValue);\n }\n\n onLanguageChange(token: LanguageEnvChangeToken) {\n this.connection.emit('languageChange', token.newValue);\n }\n\n onCharsetChange(token: CharsetEnvChangeToken) {\n this.connection.emit('charsetChange', token.newValue);\n }\n\n onSqlCollationChange(token: CollationChangeToken) {\n this.connection.databaseCollation = token.newValue;\n }\n\n onPacketSizeChange(token: PacketSizeEnvChangeToken) {\n this.connection.messageIo.packetSize(token.newValue);\n }\n\n onBeginTransaction(token: BeginTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.push(token.newValue);\n this.connection.inTransaction = true;\n }\n\n onCommitTransaction(token: CommitTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.length = 1;\n this.connection.inTransaction = false;\n }\n\n onRollbackTransaction(token: RollbackTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.length = 1;\n // An outermost transaction was rolled back. Reset the transaction counter\n this.connection.inTransaction = false;\n this.connection.emit('rollbackTransaction');\n }\n\n onColMetadata(token: ColMetadataToken) {\n this.connection.emit('error', new Error(\"Received 'columnMetadata' when no sqlRequest is in progress\"));\n this.connection.close();\n }\n\n onOrder(token: OrderToken) {\n this.connection.emit('error', new Error(\"Received 'order' when no sqlRequest is in progress\"));\n this.connection.close();\n }\n\n onRow(token: RowToken | NBCRowToken) {\n this.connection.emit('error', new Error(\"Received 'row' when no sqlRequest is in progress\"));\n this.connection.close();\n }\n\n onReturnStatus(token: ReturnStatusToken) {\n // Do nothing\n }\n\n onReturnValue(token: ReturnValueToken) {\n // Do nothing\n }\n\n onDoneProc(token: DoneProcToken) {\n // Do nothing\n }\n\n onDoneInProc(token: DoneInProcToken) {\n // Do nothing\n }\n\n onDone(token: DoneToken) {\n // Do nothing\n }\n\n onResetConnection(token: ResetConnectionEnvChangeToken) {\n this.connection.emit('resetConnection');\n }\n}\n\n/**\n * A handler for tokens received in the response message to a Login7 message.\n */\nexport class Login7TokenHandler extends TokenHandler {\n declare connection: Connection;\n\n declare fedAuthInfoToken: FedAuthInfoToken | undefined;\n declare routingData: { server: string, port: number } | undefined;\n\n declare loginAckReceived: boolean;\n\n constructor(connection: Connection) {\n super();\n this.loginAckReceived = false;\n this.connection = connection;\n }\n\n onInfoMessage(token: InfoMessageToken) {\n this.connection.emit('infoMessage', token);\n }\n\n onErrorMessage(token: ErrorMessageToken) {\n this.connection.emit('errorMessage', token);\n\n const error = new ConnectionError(token.message, 'ELOGIN');\n\n const isLoginErrorTransient = this.connection.transientErrorLookup.isTransientError(token.number);\n if (isLoginErrorTransient && this.connection.curTransientRetryCount !== this.connection.config.options.maxRetriesOnTransientErrors) {\n error.isTransient = true;\n }\n\n this.connection.loginError = error;\n }\n\n onSSPI(token: SSPIToken) {\n if (token.ntlmpacket) {\n this.connection.ntlmpacket = token.ntlmpacket;\n this.connection.ntlmpacketBuffer = token.ntlmpacketBuffer;\n }\n }\n\n onDatabaseChange(token: DatabaseEnvChangeToken) {\n this.connection.emit('databaseChange', token.newValue);\n }\n\n onLanguageChange(token: LanguageEnvChangeToken) {\n this.connection.emit('languageChange', token.newValue);\n }\n\n onCharsetChange(token: CharsetEnvChangeToken) {\n this.connection.emit('charsetChange', token.newValue);\n }\n\n onSqlCollationChange(token: CollationChangeToken) {\n this.connection.databaseCollation = token.newValue;\n }\n\n onFedAuthInfo(token: FedAuthInfoToken) {\n this.fedAuthInfoToken = token;\n }\n\n onFeatureExtAck(token: FeatureExtAckToken) {\n const { authentication } = this.connection.config;\n\n if (authentication.type === 'azure-active-directory-password' || authentication.type === 'azure-active-directory-access-token' || authentication.type === 'azure-active-directory-msi-vm' || authentication.type === 'azure-active-directory-msi-app-service' || authentication.type === 'azure-active-directory-service-principal-secret' || authentication.type === 'azure-active-directory-default') {\n if (token.fedAuth === undefined) {\n this.connection.loginError = new ConnectionError('Did not receive Active Directory authentication acknowledgement');\n } else if (token.fedAuth.length !== 0) {\n this.connection.loginError = new ConnectionError(`Active Directory authentication acknowledgment for ${authentication.type} authentication method includes extra data`);\n }\n } else if (token.fedAuth === undefined && token.utf8Support === undefined) {\n this.connection.loginError = new ConnectionError('Received acknowledgement for unknown feature');\n } else if (token.fedAuth) {\n this.connection.loginError = new ConnectionError('Did not request Active Directory authentication, but received the acknowledgment');\n }\n }\n\n onLoginAck(token: LoginAckToken) {\n if (!token.tdsVersion) {\n // unsupported TDS version\n this.connection.loginError = new ConnectionError('Server responded with unknown TDS version.', 'ETDS');\n return;\n }\n\n if (!token.interface) {\n // unsupported interface\n this.connection.loginError = new ConnectionError('Server responded with unsupported interface.', 'EINTERFACENOTSUPP');\n return;\n }\n\n // use negotiated version\n this.connection.config.options.tdsVersion = token.tdsVersion;\n\n this.loginAckReceived = true;\n }\n\n onRoutingChange(token: RoutingEnvChangeToken) {\n // Removes instance name attached to the redirect url. E.g., redirect.db.net\\instance1 --> redirect.db.net\n const [ server ] = token.newValue.server.split('\\\\');\n\n this.routingData = {\n server, port: token.newValue.port\n };\n }\n\n onDoneInProc(token: DoneInProcToken) {\n // Do nothing\n }\n\n onDone(token: DoneToken) {\n // Do nothing\n }\n\n onPacketSizeChange(token: PacketSizeEnvChangeToken) {\n this.connection.messageIo.packetSize(token.newValue);\n }\n\n onDatabaseMirroringPartner(token: DatabaseMirroringPartnerEnvChangeToken) {\n // Do nothing\n }\n}\n\n/**\n * A handler for tokens received in the response message to a RPC Request,\n * a SQL Batch Request, a Bulk Load BCP Request or a Transaction Manager Request.\n */\nexport class RequestTokenHandler extends TokenHandler {\n declare connection: Connection;\n declare request: Request | BulkLoad;\n declare errors: RequestError[];\n\n constructor(connection: Connection, request: Request | BulkLoad) {\n super();\n\n this.connection = connection;\n this.request = request;\n this.errors = [];\n }\n\n onInfoMessage(token: InfoMessageToken) {\n this.connection.emit('infoMessage', token);\n }\n\n onErrorMessage(token: ErrorMessageToken) {\n this.connection.emit('errorMessage', token);\n\n if (!this.request.canceled) {\n const error = new RequestError(token.message, 'EREQUEST');\n\n error.number = token.number;\n error.state = token.state;\n error.class = token.class;\n error.serverName = token.serverName;\n error.procName = token.procName;\n error.lineNumber = token.lineNumber;\n this.errors.push(error);\n this.request.error = error;\n if (this.request instanceof Request && this.errors.length > 1) {\n this.request.error = new AggregateError(this.errors);\n }\n }\n }\n\n onDatabaseChange(token: DatabaseEnvChangeToken) {\n this.connection.emit('databaseChange', token.newValue);\n }\n\n onLanguageChange(token: LanguageEnvChangeToken) {\n this.connection.emit('languageChange', token.newValue);\n }\n\n onCharsetChange(token: CharsetEnvChangeToken) {\n this.connection.emit('charsetChange', token.newValue);\n }\n\n onSqlCollationChange(token: CollationChangeToken) {\n this.connection.databaseCollation = token.newValue;\n }\n\n onPacketSizeChange(token: PacketSizeEnvChangeToken) {\n this.connection.messageIo.packetSize(token.newValue);\n }\n\n onBeginTransaction(token: BeginTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.push(token.newValue);\n this.connection.inTransaction = true;\n }\n\n onCommitTransaction(token: CommitTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.length = 1;\n this.connection.inTransaction = false;\n }\n\n onRollbackTransaction(token: RollbackTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.length = 1;\n // An outermost transaction was rolled back. Reset the transaction counter\n this.connection.inTransaction = false;\n this.connection.emit('rollbackTransaction');\n }\n\n onColMetadata(token: ColMetadataToken) {\n if (!this.request.canceled) {\n if (this.connection.config.options.useColumnNames) {\n const columns: { [key: string]: ColumnMetadata } = Object.create(null);\n\n for (let j = 0, len = token.columns.length; j < len; j++) {\n const col = token.columns[j];\n if (columns[col.colName] == null) {\n columns[col.colName] = col;\n }\n }\n\n this.request.emit('columnMetadata', columns);\n } else {\n this.request.emit('columnMetadata', token.columns);\n }\n }\n }\n\n onOrder(token: OrderToken) {\n if (!this.request.canceled) {\n this.request.emit('order', token.orderColumns);\n }\n }\n\n onRow(token: RowToken | NBCRowToken) {\n if (!this.request.canceled) {\n if (this.connection.config.options.rowCollectionOnRequestCompletion) {\n this.request.rows!.push(token.columns);\n }\n\n if (this.connection.config.options.rowCollectionOnDone) {\n this.request.rst!.push(token.columns);\n }\n\n this.request.emit('row', token.columns);\n }\n }\n\n onReturnStatus(token: ReturnStatusToken) {\n if (!this.request.canceled) {\n // Keep value for passing in 'doneProc' event.\n this.connection.procReturnStatusValue = token.value;\n }\n }\n\n onReturnValue(token: ReturnValueToken) {\n if (!this.request.canceled) {\n this.request.emit('returnValue', token.paramName, token.value, token.metadata);\n }\n }\n\n onDoneProc(token: DoneProcToken) {\n if (!this.request.canceled) {\n if (token.sqlError && !this.request.error) {\n // check if the DONE_ERROR flags was set, but an ERROR token was not sent.\n this.request.error = new RequestError('An unknown error has occurred.', 'UNKNOWN');\n }\n\n this.request.emit('doneProc', token.rowCount, token.more, this.connection.procReturnStatusValue, this.request.rst);\n\n this.connection.procReturnStatusValue = undefined;\n\n if (token.rowCount !== undefined) {\n this.request.rowCount! += token.rowCount;\n }\n\n if (this.connection.config.options.rowCollectionOnDone) {\n this.request.rst = [];\n }\n }\n }\n\n onDoneInProc(token: DoneInProcToken) {\n if (!this.request.canceled) {\n this.request.emit('doneInProc', token.rowCount, token.more, this.request.rst);\n\n if (token.rowCount !== undefined) {\n this.request.rowCount! += token.rowCount;\n }\n\n if (this.connection.config.options.rowCollectionOnDone) {\n this.request.rst = [];\n }\n }\n }\n\n onDone(token: DoneToken) {\n if (!this.request.canceled) {\n if (token.sqlError && !this.request.error) {\n // check if the DONE_ERROR flags was set, but an ERROR token was not sent.\n this.request.error = new RequestError('An unknown error has occurred.', 'UNKNOWN');\n }\n\n this.request.emit('done', token.rowCount, token.more, this.request.rst);\n\n if (token.rowCount !== undefined) {\n this.request.rowCount! += token.rowCount;\n }\n\n if (this.connection.config.options.rowCollectionOnDone) {\n this.request.rst = [];\n }\n }\n }\n\n onResetConnection(token: ResetConnectionEnvChangeToken) {\n this.connection.emit('resetConnection');\n }\n}\n\n/**\n * A handler for the attention acknowledgement message.\n *\n * This message only contains a `DONE` token that acknowledges\n * that the attention message was received by the server.\n */\nexport class AttentionTokenHandler extends TokenHandler {\n declare connection: Connection;\n declare request: Request | BulkLoad;\n\n /**\n * Returns whether an attention acknowledgement was received.\n */\n declare attentionReceived: boolean;\n\n constructor(connection: Connection, request: Request | BulkLoad) {\n super();\n\n this.connection = connection;\n this.request = request;\n\n this.attentionReceived = false;\n }\n\n onDone(token: DoneToken) {\n if (token.attention) {\n this.attentionReceived = true;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","names":["_request","_interopRequireDefault","require","_errors","e","__esModule","default","UnexpectedTokenError","Error","constructor","handler","token","name","exports","TokenHandler","onInfoMessage","onErrorMessage","onSSPI","onDatabaseChange","onLanguageChange","onCharsetChange","onSqlCollationChange","onRoutingChange","onPacketSizeChange","onResetConnection","onBeginTransaction","onCommitTransaction","onRollbackTransaction","onFedAuthInfo","onFeatureExtAck","onLoginAck","onColMetadata","onOrder","onRow","onReturnStatus","onReturnValue","onDoneProc","onDoneInProc","onDone","onDatabaseMirroringPartner","InitialSqlTokenHandler","connection","emit","newValue","databaseCollation","messageIo","packetSize","transactionDescriptors","push","inTransaction","length","close","Login7TokenHandler","loginAckReceived","error","ConnectionError","message","isLoginErrorTransient","transientErrorLookup","isTransientError","number","curTransientRetryCount","config","options","maxRetriesOnTransientErrors","isTransient","loginError","ntlmpacket","ntlmpacketBuffer","fedAuthInfoToken","authentication","type","fedAuth","undefined","utf8Support","tdsVersion","interface","server","split","routingData","port","RequestTokenHandler","request","errors","canceled","RequestError","state","class","serverName","procName","lineNumber","Request","AggregateError","useColumnNames","columns","Object","create","j","len","col","colName","orderColumns","rowCollectionOnRequestCompletion","rows","rowCollectionOnDone","rst","procReturnStatusValue","value","paramName","metadata","sqlError","rowCount","more","AttentionTokenHandler","attentionReceived","attention"],"sources":["../../src/token/handler.ts"],"sourcesContent":["import Connection from '../connection';\nimport Request from '../request';\nimport { ConnectionError, RequestError } from '../errors';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\nimport {\n BeginTransactionEnvChangeToken,\n CharsetEnvChangeToken,\n CollationChangeToken,\n ColMetadataToken,\n CommitTransactionEnvChangeToken,\n DatabaseEnvChangeToken,\n DatabaseMirroringPartnerEnvChangeToken,\n DoneInProcToken,\n DoneProcToken,\n DoneToken,\n ErrorMessageToken,\n FeatureExtAckToken,\n FedAuthInfoToken,\n InfoMessageToken,\n LanguageEnvChangeToken,\n LoginAckToken,\n NBCRowToken,\n OrderToken,\n PacketSizeEnvChangeToken,\n ResetConnectionEnvChangeToken,\n ReturnStatusToken,\n ReturnValueToken,\n RollbackTransactionEnvChangeToken,\n RoutingEnvChangeToken,\n RowToken,\n SSPIToken,\n Token\n} from './token';\nimport BulkLoad from '../bulk-load';\n\nexport class UnexpectedTokenError extends Error {\n constructor(handler: TokenHandler, token: Token) {\n super('Unexpected token `' + token.name + '` in `' + handler.constructor.name + '`');\n }\n}\n\nexport class TokenHandler {\n onInfoMessage(token: InfoMessageToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onErrorMessage(token: ErrorMessageToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onSSPI(token: SSPIToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDatabaseChange(token: DatabaseEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onLanguageChange(token: LanguageEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onCharsetChange(token: CharsetEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onSqlCollationChange(token: CollationChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onRoutingChange(token: RoutingEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onPacketSizeChange(token: PacketSizeEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onResetConnection(token: ResetConnectionEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onBeginTransaction(token: BeginTransactionEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onCommitTransaction(token: CommitTransactionEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onRollbackTransaction(token: RollbackTransactionEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onFedAuthInfo(token: FedAuthInfoToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onFeatureExtAck(token: FeatureExtAckToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onLoginAck(token: LoginAckToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onColMetadata(token: ColMetadataToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onOrder(token: OrderToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onRow(token: RowToken | NBCRowToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onReturnStatus(token: ReturnStatusToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onReturnValue(token: ReturnValueToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDoneProc(token: DoneProcToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDoneInProc(token: DoneInProcToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDone(token: DoneToken) {\n throw new UnexpectedTokenError(this, token);\n }\n\n onDatabaseMirroringPartner(token: DatabaseMirroringPartnerEnvChangeToken) {\n throw new UnexpectedTokenError(this, token);\n }\n}\n\n/**\n * A handler for tokens received in the response message to the initial SQL Batch request\n * that sets up different connection settings.\n */\nexport class InitialSqlTokenHandler extends TokenHandler {\n declare connection: Connection;\n\n constructor(connection: Connection) {\n super();\n\n this.connection = connection;\n }\n\n onInfoMessage(token: InfoMessageToken) {\n this.connection.emit('infoMessage', token);\n }\n\n onErrorMessage(token: ErrorMessageToken) {\n this.connection.emit('errorMessage', token);\n }\n\n onDatabaseChange(token: DatabaseEnvChangeToken) {\n this.connection.emit('databaseChange', token.newValue);\n }\n\n onLanguageChange(token: LanguageEnvChangeToken) {\n this.connection.emit('languageChange', token.newValue);\n }\n\n onCharsetChange(token: CharsetEnvChangeToken) {\n this.connection.emit('charsetChange', token.newValue);\n }\n\n onSqlCollationChange(token: CollationChangeToken) {\n this.connection.databaseCollation = token.newValue;\n }\n\n onPacketSizeChange(token: PacketSizeEnvChangeToken) {\n this.connection.messageIo.packetSize(token.newValue);\n }\n\n onBeginTransaction(token: BeginTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.push(token.newValue);\n this.connection.inTransaction = true;\n }\n\n onCommitTransaction(token: CommitTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.length = 1;\n this.connection.inTransaction = false;\n }\n\n onRollbackTransaction(token: RollbackTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.length = 1;\n // An outermost transaction was rolled back. Reset the transaction counter\n this.connection.inTransaction = false;\n this.connection.emit('rollbackTransaction');\n }\n\n onColMetadata(token: ColMetadataToken) {\n this.connection.emit('error', new Error(\"Received 'columnMetadata' when no sqlRequest is in progress\"));\n this.connection.close();\n }\n\n onOrder(token: OrderToken) {\n this.connection.emit('error', new Error(\"Received 'order' when no sqlRequest is in progress\"));\n this.connection.close();\n }\n\n onRow(token: RowToken | NBCRowToken) {\n this.connection.emit('error', new Error(\"Received 'row' when no sqlRequest is in progress\"));\n this.connection.close();\n }\n\n onReturnStatus(token: ReturnStatusToken) {\n // Do nothing\n }\n\n onReturnValue(token: ReturnValueToken) {\n // Do nothing\n }\n\n onDoneProc(token: DoneProcToken) {\n // Do nothing\n }\n\n onDoneInProc(token: DoneInProcToken) {\n // Do nothing\n }\n\n onDone(token: DoneToken) {\n // Do nothing\n }\n\n onResetConnection(token: ResetConnectionEnvChangeToken) {\n this.connection.emit('resetConnection');\n }\n}\n\n/**\n * A handler for tokens received in the response message to a Login7 message.\n */\nexport class Login7TokenHandler extends TokenHandler {\n declare connection: Connection;\n\n declare fedAuthInfoToken: FedAuthInfoToken | undefined;\n declare routingData: { server: string, port: number } | undefined;\n\n declare loginAckReceived: boolean;\n\n constructor(connection: Connection) {\n super();\n this.loginAckReceived = false;\n this.connection = connection;\n }\n\n onInfoMessage(token: InfoMessageToken) {\n this.connection.emit('infoMessage', token);\n }\n\n onErrorMessage(token: ErrorMessageToken) {\n this.connection.emit('errorMessage', token);\n\n const error = new ConnectionError(token.message, 'ELOGIN');\n\n const isLoginErrorTransient = this.connection.transientErrorLookup.isTransientError(token.number);\n if (isLoginErrorTransient && this.connection.curTransientRetryCount !== this.connection.config.options.maxRetriesOnTransientErrors) {\n error.isTransient = true;\n }\n\n this.connection.loginError = error;\n }\n\n onSSPI(token: SSPIToken) {\n if (token.ntlmpacket) {\n this.connection.ntlmpacket = token.ntlmpacket;\n this.connection.ntlmpacketBuffer = token.ntlmpacketBuffer;\n }\n }\n\n onDatabaseChange(token: DatabaseEnvChangeToken) {\n this.connection.emit('databaseChange', token.newValue);\n }\n\n onLanguageChange(token: LanguageEnvChangeToken) {\n this.connection.emit('languageChange', token.newValue);\n }\n\n onCharsetChange(token: CharsetEnvChangeToken) {\n this.connection.emit('charsetChange', token.newValue);\n }\n\n onSqlCollationChange(token: CollationChangeToken) {\n this.connection.databaseCollation = token.newValue;\n }\n\n onFedAuthInfo(token: FedAuthInfoToken) {\n this.fedAuthInfoToken = token;\n }\n\n onFeatureExtAck(token: FeatureExtAckToken) {\n const { authentication } = this.connection.config;\n\n if (authentication.type === 'azure-active-directory-password' || authentication.type === 'azure-active-directory-access-token' || authentication.type === 'azure-active-directory-msi-vm' || authentication.type === 'azure-active-directory-msi-app-service' || authentication.type === 'azure-active-directory-service-principal-secret' || authentication.type === 'azure-active-directory-default') {\n if (token.fedAuth === undefined) {\n this.connection.loginError = new ConnectionError('Did not receive Active Directory authentication acknowledgement');\n } else if (token.fedAuth.length !== 0) {\n this.connection.loginError = new ConnectionError(`Active Directory authentication acknowledgment for ${authentication.type} authentication method includes extra data`);\n }\n } else if (token.fedAuth === undefined && token.utf8Support === undefined) {\n this.connection.loginError = new ConnectionError('Received acknowledgement for unknown feature');\n } else if (token.fedAuth) {\n this.connection.loginError = new ConnectionError('Did not request Active Directory authentication, but received the acknowledgment');\n }\n }\n\n onLoginAck(token: LoginAckToken) {\n if (!token.tdsVersion) {\n // unsupported TDS version\n this.connection.loginError = new ConnectionError('Server responded with unknown TDS version.', 'ETDS');\n return;\n }\n\n if (!token.interface) {\n // unsupported interface\n this.connection.loginError = new ConnectionError('Server responded with unsupported interface.', 'EINTERFACENOTSUPP');\n return;\n }\n\n // use negotiated version\n this.connection.config.options.tdsVersion = token.tdsVersion;\n\n this.loginAckReceived = true;\n }\n\n onRoutingChange(token: RoutingEnvChangeToken) {\n // Removes instance name attached to the redirect url. E.g., redirect.db.net\\instance1 --> redirect.db.net\n const [ server ] = token.newValue.server.split('\\\\');\n\n this.routingData = {\n server, port: token.newValue.port\n };\n }\n\n onDoneInProc(token: DoneInProcToken) {\n // Do nothing\n }\n\n onDone(token: DoneToken) {\n // Do nothing\n }\n\n onPacketSizeChange(token: PacketSizeEnvChangeToken) {\n this.connection.messageIo.packetSize(token.newValue);\n }\n\n onDatabaseMirroringPartner(token: DatabaseMirroringPartnerEnvChangeToken) {\n // Do nothing\n }\n}\n\n/**\n * A handler for tokens received in the response message to a RPC Request,\n * a SQL Batch Request, a Bulk Load BCP Request or a Transaction Manager Request.\n */\nexport class RequestTokenHandler extends TokenHandler {\n declare connection: Connection;\n declare request: Request | BulkLoad;\n declare errors: RequestError[];\n\n constructor(connection: Connection, request: Request | BulkLoad) {\n super();\n\n this.connection = connection;\n this.request = request;\n this.errors = [];\n }\n\n onInfoMessage(token: InfoMessageToken) {\n this.connection.emit('infoMessage', token);\n }\n\n onErrorMessage(token: ErrorMessageToken) {\n this.connection.emit('errorMessage', token);\n\n if (!this.request.canceled) {\n const error = new RequestError(token.message, 'EREQUEST');\n\n error.number = token.number;\n error.state = token.state;\n error.class = token.class;\n error.serverName = token.serverName;\n error.procName = token.procName;\n error.lineNumber = token.lineNumber;\n this.errors.push(error);\n this.request.error = error;\n if (this.request instanceof Request && this.errors.length > 1) {\n this.request.error = new AggregateError(this.errors);\n }\n }\n }\n\n onDatabaseChange(token: DatabaseEnvChangeToken) {\n this.connection.emit('databaseChange', token.newValue);\n }\n\n onLanguageChange(token: LanguageEnvChangeToken) {\n this.connection.emit('languageChange', token.newValue);\n }\n\n onCharsetChange(token: CharsetEnvChangeToken) {\n this.connection.emit('charsetChange', token.newValue);\n }\n\n onSqlCollationChange(token: CollationChangeToken) {\n this.connection.databaseCollation = token.newValue;\n }\n\n onPacketSizeChange(token: PacketSizeEnvChangeToken) {\n this.connection.messageIo.packetSize(token.newValue);\n }\n\n onBeginTransaction(token: BeginTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.push(token.newValue);\n this.connection.inTransaction = true;\n }\n\n onCommitTransaction(token: CommitTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.length = 1;\n this.connection.inTransaction = false;\n }\n\n onRollbackTransaction(token: RollbackTransactionEnvChangeToken) {\n this.connection.transactionDescriptors.length = 1;\n // An outermost transaction was rolled back. Reset the transaction counter\n this.connection.inTransaction = false;\n this.connection.emit('rollbackTransaction');\n }\n\n onColMetadata(token: ColMetadataToken) {\n if (!this.request.canceled) {\n if (this.connection.config.options.useColumnNames) {\n const columns: { [key: string]: ColumnMetadata } = Object.create(null);\n\n for (let j = 0, len = token.columns.length; j < len; j++) {\n const col = token.columns[j];\n if (columns[col.colName] == null) {\n columns[col.colName] = col;\n }\n }\n\n this.request.emit('columnMetadata', columns);\n } else {\n this.request.emit('columnMetadata', token.columns);\n }\n }\n }\n\n onOrder(token: OrderToken) {\n if (!this.request.canceled) {\n this.request.emit('order', token.orderColumns);\n }\n }\n\n onRow(token: RowToken | NBCRowToken) {\n if (!this.request.canceled) {\n if (this.connection.config.options.rowCollectionOnRequestCompletion) {\n this.request.rows!.push(token.columns);\n }\n\n if (this.connection.config.options.rowCollectionOnDone) {\n this.request.rst!.push(token.columns);\n }\n\n this.request.emit('row', token.columns);\n }\n }\n\n onReturnStatus(token: ReturnStatusToken) {\n if (!this.request.canceled) {\n // Keep value for passing in 'doneProc' event.\n this.connection.procReturnStatusValue = token.value;\n }\n }\n\n onReturnValue(token: ReturnValueToken) {\n if (!this.request.canceled) {\n this.request.emit('returnValue', token.paramName, token.value, token.metadata);\n }\n }\n\n onDoneProc(token: DoneProcToken) {\n if (!this.request.canceled) {\n if (token.sqlError && !this.request.error) {\n // check if the DONE_ERROR flags was set, but an ERROR token was not sent.\n this.request.error = new RequestError('An unknown error has occurred.', 'UNKNOWN');\n }\n\n this.request.emit('doneProc', token.rowCount, token.more, this.connection.procReturnStatusValue, this.request.rst);\n\n this.connection.procReturnStatusValue = undefined;\n\n if (token.rowCount !== undefined) {\n this.request.rowCount! += token.rowCount;\n }\n\n if (this.connection.config.options.rowCollectionOnDone) {\n this.request.rst = [];\n }\n }\n }\n\n onDoneInProc(token: DoneInProcToken) {\n if (!this.request.canceled) {\n this.request.emit('doneInProc', token.rowCount, token.more, this.request.rst);\n\n if (token.rowCount !== undefined) {\n this.request.rowCount! += token.rowCount;\n }\n\n if (this.connection.config.options.rowCollectionOnDone) {\n this.request.rst = [];\n }\n }\n }\n\n onDone(token: DoneToken) {\n if (!this.request.canceled) {\n if (token.sqlError && !this.request.error) {\n // check if the DONE_ERROR flags was set, but an ERROR token was not sent.\n this.request.error = new RequestError('An unknown error has occurred.', 'UNKNOWN');\n }\n\n this.request.emit('done', token.rowCount, token.more, this.request.rst);\n\n if (token.rowCount !== undefined) {\n this.request.rowCount! += token.rowCount;\n }\n\n if (this.connection.config.options.rowCollectionOnDone) {\n this.request.rst = [];\n }\n }\n }\n\n onResetConnection(token: ResetConnectionEnvChangeToken) {\n this.connection.emit('resetConnection');\n }\n}\n\n/**\n * A handler for the attention acknowledgement message.\n *\n * This message only contains a `DONE` token that acknowledges\n * that the attention message was received by the server.\n */\nexport class AttentionTokenHandler extends TokenHandler {\n declare connection: Connection;\n declare request: Request | BulkLoad;\n\n /**\n * Returns whether an attention acknowledgement was received.\n */\n declare attentionReceived: boolean;\n\n constructor(connection: Connection, request: Request | BulkLoad) {\n super();\n\n this.connection = connection;\n this.request = request;\n\n this.attentionReceived = false;\n }\n\n onDone(token: DoneToken) {\n if (token.attention) {\n this.attentionReceived = true;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -202,4 +202,4 @@ function readUNumeric128LE(buf, offset) {
202
202
  const dword4 = buf.readUInt32LE(offset + 12);
203
203
  return new Result(dword1 + 0x100000000 * dword2 + 0x100000000 * 0x100000000 * dword3 + 0x100000000 * 0x100000000 * 0x100000000 * dword4, offset + 16);
204
204
  }
205
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXN1bHQiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwib2Zmc2V0IiwiZXhwb3J0cyIsIk5vdEVub3VnaERhdGFFcnJvciIsIkVycm9yIiwiYnl0ZUNvdW50IiwicmVhZFVJbnQ4IiwiYnVmIiwibGVuZ3RoIiwicmVhZFVJbnQxNkxFIiwicmVhZEludDE2TEUiLCJyZWFkVUludDI0TEUiLCJyZWFkVUludExFIiwicmVhZFVJbnQzMkxFIiwicmVhZFVJbnQzMkJFIiwicmVhZFVJbnQ0MExFIiwicmVhZEludDMyTEUiLCJyZWFkQmlnVUludDY0TEUiLCJyZWFkQmlnSW50NjRMRSIsInJlYWRGbG9hdExFIiwicmVhZERvdWJsZUxFIiwicmVhZEJWYXJDaGFyIiwiY2hhckNvdW50IiwiYnl0ZUxlbmd0aCIsInRvU3RyaW5nIiwicmVhZEJWYXJCeXRlIiwic2xpY2UiLCJyZWFkVXNWYXJDaGFyIiwicmVhZFVzVmFyQnl0ZSIsInJlYWRVTnVtZXJpYzY0TEUiLCJsb3ciLCJoaWdoIiwicmVhZFVOdW1lcmljOTZMRSIsImR3b3JkMSIsImR3b3JkMiIsImR3b3JkMyIsInJlYWRVTnVtZXJpYzEyOExFIiwiZHdvcmQ0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2hlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJlc3VsdDxUPiB7XG4gIGRlY2xhcmUgdmFsdWU6IFQ7XG4gIGRlY2xhcmUgb2Zmc2V0OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IodmFsdWU6IFQsIG9mZnNldDogbnVtYmVyKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub2Zmc2V0ID0gb2Zmc2V0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RFbm91Z2hEYXRhRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGJ5dGVDb3VudDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGJ5dGVDb3VudDogbnVtYmVyKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYnl0ZUNvdW50ID0gYnl0ZUNvdW50O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVUludDgoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgMSkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgMSk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZFVJbnQ4KG9mZnNldCksIG9mZnNldCArIDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVJbnQxNkxFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDIpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDIpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRVSW50MTZMRShvZmZzZXQpLCBvZmZzZXQgKyAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJbnQxNkxFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDIpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDIpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRJbnQxNkxFKG9mZnNldCksIG9mZnNldCArIDIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVJbnQyNExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDMpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDMpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRVSW50TEUob2Zmc2V0LCAzKSwgb2Zmc2V0ICsgMyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVUludDMyTEUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgNCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgNCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZFVJbnQzMkxFKG9mZnNldCksIG9mZnNldCArIDQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVJbnQzMkJFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDQpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRVSW50MzJCRShvZmZzZXQpLCBvZmZzZXQgKyA0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVSW50NDBMRShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyA1KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyA1KTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVzdWx0KGJ1Zi5yZWFkVUludExFKG9mZnNldCwgNSksIG9mZnNldCArIDUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJbnQzMkxFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDQpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRJbnQzMkxFKG9mZnNldCksIG9mZnNldCArIDQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEJpZ1VJbnQ2NExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxiaWdpbnQ+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDgpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRCaWdVSW50NjRMRShvZmZzZXQpLCBvZmZzZXQgKyA4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRCaWdJbnQ2NExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxiaWdpbnQ+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDgpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRCaWdJbnQ2NExFKG9mZnNldCksIG9mZnNldCArIDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEZsb2F0TEUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgNCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgNCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZEZsb2F0TEUob2Zmc2V0KSwgb2Zmc2V0ICsgNCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkRG91YmxlTEUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgOCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgOCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZERvdWJsZUxFKG9mZnNldCksIG9mZnNldCArIDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEJWYXJDaGFyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxzdHJpbmc+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBsZXQgY2hhckNvdW50O1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjaGFyQ291bnQgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGNvbnN0IGJ5dGVMZW5ndGggPSBjaGFyQ291bnQgKiAyO1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYudG9TdHJpbmcoJ3VjczInLCBvZmZzZXQsIG9mZnNldCArIGJ5dGVMZW5ndGgpLCBvZmZzZXQgKyBieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRCVmFyQnl0ZShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8QnVmZmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgbGV0IGJ5dGVMZW5ndGg7XG4gICh7IG9mZnNldCwgdmFsdWU6IGJ5dGVMZW5ndGggfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBieXRlTGVuZ3RoKSwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVXNWYXJDaGFyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxzdHJpbmc+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBsZXQgY2hhckNvdW50O1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjaGFyQ291bnQgfSA9IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkpO1xuXG4gIGNvbnN0IGJ5dGVMZW5ndGggPSBjaGFyQ291bnQgKiAyO1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYudG9TdHJpbmcoJ3VjczInLCBvZmZzZXQsIG9mZnNldCArIGJ5dGVMZW5ndGgpLCBvZmZzZXQgKyBieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVc1ZhckJ5dGUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PEJ1ZmZlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGxldCBieXRlTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBieXRlTGVuZ3RoIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIGJ5dGVMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIGJ5dGVMZW5ndGgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCksIG9mZnNldCArIGJ5dGVMZW5ndGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVOdW1lcmljNjRMRShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyA4KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyA4KTtcbiAgfVxuXG4gIGNvbnN0IGxvdyA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0KTtcbiAgY29uc3QgaGlnaCA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgNCk7XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoKDB4MTAwMDAwMDAwICogaGlnaCkgKyBsb3csIG9mZnNldCArIDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVOdW1lcmljOTZMRShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyAxMikge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgMTIpO1xuICB9XG5cbiAgY29uc3QgZHdvcmQxID0gYnVmLnJlYWRVSW50MzJMRShvZmZzZXQpO1xuICBjb25zdCBkd29yZDIgPSBidWYucmVhZFVJbnQzMkxFKG9mZnNldCArIDQpO1xuICBjb25zdCBkd29yZDMgPSBidWYucmVhZFVJbnQzMkxFKG9mZnNldCArIDgpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KGR3b3JkMSArICgweDEwMDAwMDAwMCAqIGR3b3JkMikgKyAoMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIGR3b3JkMyksIG9mZnNldCArIDEyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVTnVtZXJpYzEyOExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDE2KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyAxNik7XG4gIH1cblxuICBjb25zdCBkd29yZDEgPSBidWYucmVhZFVJbnQzMkxFKG9mZnNldCk7XG4gIGNvbnN0IGR3b3JkMiA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgNCk7XG4gIGNvbnN0IGR3b3JkMyA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgOCk7XG4gIGNvbnN0IGR3b3JkNCA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgMTIpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KGR3b3JkMSArICgweDEwMDAwMDAwMCAqIGR3b3JkMikgKyAoMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIGR3b3JkMykgKyAoMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIDB4MTAwMDAwMDAwICogZHdvcmQ0KSwgb2Zmc2V0ICsgMTYpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU8sTUFBTUEsTUFBTSxDQUFJO0VBSXJCQyxXQUFXQSxDQUFDQyxLQUFRLEVBQUVDLE1BQWMsRUFBRTtJQUNwQyxJQUFJLENBQUNELEtBQUssR0FBR0EsS0FBSztJQUNsQixJQUFJLENBQUNDLE1BQU0sR0FBR0EsTUFBTTtFQUN0QjtBQUNGO0FBQUNDLE9BQUEsQ0FBQUosTUFBQSxHQUFBQSxNQUFBO0FBRU0sTUFBTUssa0JBQWtCLFNBQVNDLEtBQUssQ0FBQztFQUM1Q0MsU0FBUztFQUVUTixXQUFXQSxD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
205
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXN1bHQiLCJjb25zdHJ1Y3RvciIsInZhbHVlIiwib2Zmc2V0IiwiZXhwb3J0cyIsIk5vdEVub3VnaERhdGFFcnJvciIsIkVycm9yIiwiYnl0ZUNvdW50IiwicmVhZFVJbnQ4IiwiYnVmIiwibGVuZ3RoIiwicmVhZFVJbnQxNkxFIiwicmVhZEludDE2TEUiLCJyZWFkVUludDI0TEUiLCJyZWFkVUludExFIiwicmVhZFVJbnQzMkxFIiwicmVhZFVJbnQzMkJFIiwicmVhZFVJbnQ0MExFIiwicmVhZEludDMyTEUiLCJyZWFkQmlnVUludDY0TEUiLCJyZWFkQmlnSW50NjRMRSIsInJlYWRGbG9hdExFIiwicmVhZERvdWJsZUxFIiwicmVhZEJWYXJDaGFyIiwiY2hhckNvdW50IiwiYnl0ZUxlbmd0aCIsInRvU3RyaW5nIiwicmVhZEJWYXJCeXRlIiwic2xpY2UiLCJyZWFkVXNWYXJDaGFyIiwicmVhZFVzVmFyQnl0ZSIsInJlYWRVTnVtZXJpYzY0TEUiLCJsb3ciLCJoaWdoIiwicmVhZFVOdW1lcmljOTZMRSIsImR3b3JkMSIsImR3b3JkMiIsImR3b3JkMyIsInJlYWRVTnVtZXJpYzEyOExFIiwiZHdvcmQ0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2hlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFJlc3VsdDxUPiB7XG4gIGRlY2xhcmUgdmFsdWU6IFQ7XG4gIGRlY2xhcmUgb2Zmc2V0OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IodmFsdWU6IFQsIG9mZnNldDogbnVtYmVyKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub2Zmc2V0ID0gb2Zmc2V0O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb3RFbm91Z2hEYXRhRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGJ5dGVDb3VudDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGJ5dGVDb3VudDogbnVtYmVyKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYnl0ZUNvdW50ID0gYnl0ZUNvdW50O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVUludDgoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgMSkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgMSk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZFVJbnQ4KG9mZnNldCksIG9mZnNldCArIDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVJbnQxNkxFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDIpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDIpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRVSW50MTZMRShvZmZzZXQpLCBvZmZzZXQgKyAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJbnQxNkxFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDIpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDIpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRJbnQxNkxFKG9mZnNldCksIG9mZnNldCArIDIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVJbnQyNExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDMpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDMpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRVSW50TEUob2Zmc2V0LCAzKSwgb2Zmc2V0ICsgMyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVUludDMyTEUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgNCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgNCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZFVJbnQzMkxFKG9mZnNldCksIG9mZnNldCArIDQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVJbnQzMkJFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDQpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRVSW50MzJCRShvZmZzZXQpLCBvZmZzZXQgKyA0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVSW50NDBMRShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyA1KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyA1KTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVzdWx0KGJ1Zi5yZWFkVUludExFKG9mZnNldCwgNSksIG9mZnNldCArIDUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRJbnQzMkxFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDQpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDQpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRJbnQzMkxFKG9mZnNldCksIG9mZnNldCArIDQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEJpZ1VJbnQ2NExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxiaWdpbnQ+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDgpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRCaWdVSW50NjRMRShvZmZzZXQpLCBvZmZzZXQgKyA4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRCaWdJbnQ2NExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxiaWdpbnQ+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDgpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIDgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnJlYWRCaWdJbnQ2NExFKG9mZnNldCksIG9mZnNldCArIDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEZsb2F0TEUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgNCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgNCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZEZsb2F0TEUob2Zmc2V0KSwgb2Zmc2V0ICsgNCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkRG91YmxlTEUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PG51bWJlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgOCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgOCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYucmVhZERvdWJsZUxFKG9mZnNldCksIG9mZnNldCArIDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZEJWYXJDaGFyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxzdHJpbmc+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBsZXQgY2hhckNvdW50O1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjaGFyQ291bnQgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGNvbnN0IGJ5dGVMZW5ndGggPSBjaGFyQ291bnQgKiAyO1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYudG9TdHJpbmcoJ3VjczInLCBvZmZzZXQsIG9mZnNldCArIGJ5dGVMZW5ndGgpLCBvZmZzZXQgKyBieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRCVmFyQnl0ZShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8QnVmZmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgbGV0IGJ5dGVMZW5ndGg7XG4gICh7IG9mZnNldCwgdmFsdWU6IGJ5dGVMZW5ndGggfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBieXRlTGVuZ3RoKSwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVXNWYXJDaGFyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxzdHJpbmc+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBsZXQgY2hhckNvdW50O1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjaGFyQ291bnQgfSA9IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkpO1xuXG4gIGNvbnN0IGJ5dGVMZW5ndGggPSBjaGFyQ291bnQgKiAyO1xuXG4gIGlmIChidWYubGVuZ3RoIDwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgYnl0ZUxlbmd0aCk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChidWYudG9TdHJpbmcoJ3VjczInLCBvZmZzZXQsIG9mZnNldCArIGJ5dGVMZW5ndGgpLCBvZmZzZXQgKyBieXRlTGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVc1ZhckJ5dGUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyKTogUmVzdWx0PEJ1ZmZlcj4ge1xuICBvZmZzZXQgPSArb2Zmc2V0O1xuXG4gIGxldCBieXRlTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBieXRlTGVuZ3RoIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIGJ5dGVMZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgTm90RW5vdWdoRGF0YUVycm9yKG9mZnNldCArIGJ5dGVMZW5ndGgpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoYnVmLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgYnl0ZUxlbmd0aCksIG9mZnNldCArIGJ5dGVMZW5ndGgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVOdW1lcmljNjRMRShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyA4KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyA4KTtcbiAgfVxuXG4gIGNvbnN0IGxvdyA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0KTtcbiAgY29uc3QgaGlnaCA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgNCk7XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQoKDB4MTAwMDAwMDAwICogaGlnaCkgKyBsb3csIG9mZnNldCArIDgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZFVOdW1lcmljOTZMRShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIpOiBSZXN1bHQ8bnVtYmVyPiB7XG4gIG9mZnNldCA9ICtvZmZzZXQ7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyAxMikge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgMTIpO1xuICB9XG5cbiAgY29uc3QgZHdvcmQxID0gYnVmLnJlYWRVSW50MzJMRShvZmZzZXQpO1xuICBjb25zdCBkd29yZDIgPSBidWYucmVhZFVJbnQzMkxFKG9mZnNldCArIDQpO1xuICBjb25zdCBkd29yZDMgPSBidWYucmVhZFVJbnQzMkxFKG9mZnNldCArIDgpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KGR3b3JkMSArICgweDEwMDAwMDAwMCAqIGR3b3JkMikgKyAoMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIGR3b3JkMyksIG9mZnNldCArIDEyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRVTnVtZXJpYzEyOExFKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlcik6IFJlc3VsdDxudW1iZXI+IHtcbiAgb2Zmc2V0ID0gK29mZnNldDtcblxuICBpZiAoYnVmLmxlbmd0aCA8IG9mZnNldCArIDE2KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcihvZmZzZXQgKyAxNik7XG4gIH1cblxuICBjb25zdCBkd29yZDEgPSBidWYucmVhZFVJbnQzMkxFKG9mZnNldCk7XG4gIGNvbnN0IGR3b3JkMiA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgNCk7XG4gIGNvbnN0IGR3b3JkMyA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgOCk7XG4gIGNvbnN0IGR3b3JkNCA9IGJ1Zi5yZWFkVUludDMyTEUob2Zmc2V0ICsgMTIpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KGR3b3JkMSArICgweDEwMDAwMDAwMCAqIGR3b3JkMikgKyAoMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIGR3b3JkMykgKyAoMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIDB4MTAwMDAwMDAwICogZHdvcmQ0KSwgb2Zmc2V0ICsgMTYpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQU8sTUFBTUEsTUFBTSxDQUFJO0VBSXJCQyxXQUFXQSxDQUFDQyxLQUFRLEVBQUVDLE1BQWMsRUFBRTtJQUNwQyxJQUFJLENBQUNELEtBQUssR0FBR0EsS0FBSztJQUNsQixJQUFJLENBQUNDLE1BQU0sR0FBR0EsTUFBTTtFQUN0QjtBQUNGO0FBQUNDLE9BQUEsQ0FBQUosTUFBQSxHQUFBQSxNQUFBO0FBRU0sTUFBTUssa0JBQWtCLFNBQVNDLEtBQUssQ0FBQztFQUM1Q0MsU0FBUztFQUVUTixXQUFXQSxD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
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["Result","constructor","value","offset","exports","NotEnoughDataError","Error","byteCount","readUInt8","buf","length","readUInt16LE","readInt16LE","readUInt24LE","readUIntLE","readUInt32LE","readUInt32BE","readUInt40LE","readInt32LE","readBigUInt64LE","readBigInt64LE","readFloatLE","readDoubleLE","readBVarChar","charCount","byteLength","toString","readBVarByte","slice","readUsVarChar","readUsVarByte","readUNumeric64LE","low","high","readUNumeric96LE","dword1","dword2","dword3","readUNumeric128LE","dword4"],"sources":["../../src/token/helpers.ts"],"sourcesContent":["export class Result<T> {\n declare value: T;\n declare offset: number;\n\n constructor(value: T, offset: number) {\n this.value = value;\n this.offset = offset;\n }\n}\n\nexport class NotEnoughDataError extends Error {\n byteCount: number;\n\n constructor(byteCount: number) {\n super();\n\n this.byteCount = byteCount;\n }\n}\n\nexport function readUInt8(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 1) {\n throw new NotEnoughDataError(offset + 1);\n }\n\n return new Result(buf.readUInt8(offset), offset + 1);\n}\n\nexport function readUInt16LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 2) {\n throw new NotEnoughDataError(offset + 2);\n }\n\n return new Result(buf.readUInt16LE(offset), offset + 2);\n}\n\nexport function readInt16LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 2) {\n throw new NotEnoughDataError(offset + 2);\n }\n\n return new Result(buf.readInt16LE(offset), offset + 2);\n}\n\nexport function readUInt24LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 3) {\n throw new NotEnoughDataError(offset + 3);\n }\n\n return new Result(buf.readUIntLE(offset, 3), offset + 3);\n}\n\nexport function readUInt32LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readUInt32LE(offset), offset + 4);\n}\n\nexport function readUInt32BE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readUInt32BE(offset), offset + 4);\n}\n\nexport function readUInt40LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 5) {\n throw new NotEnoughDataError(offset + 5);\n }\n\n return new Result(buf.readUIntLE(offset, 5), offset + 5);\n}\nexport function readInt32LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readInt32LE(offset), offset + 4);\n}\n\nexport function readBigUInt64LE(buf: Buffer, offset: number): Result<bigint> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n return new Result(buf.readBigUInt64LE(offset), offset + 8);\n}\n\nexport function readBigInt64LE(buf: Buffer, offset: number): Result<bigint> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n return new Result(buf.readBigInt64LE(offset), offset + 8);\n}\n\nexport function readFloatLE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readFloatLE(offset), offset + 4);\n}\n\nexport function readDoubleLE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n return new Result(buf.readDoubleLE(offset), offset + 8);\n}\n\nexport function readBVarChar(buf: Buffer, offset: number): Result<string> {\n offset = +offset;\n\n let charCount;\n ({ offset, value: charCount } = readUInt8(buf, offset));\n\n const byteLength = charCount * 2;\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.toString('ucs2', offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readBVarByte(buf: Buffer, offset: number): Result<Buffer> {\n offset = +offset;\n\n let byteLength;\n ({ offset, value: byteLength } = readUInt8(buf, offset));\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.slice(offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readUsVarChar(buf: Buffer, offset: number): Result<string> {\n offset = +offset;\n\n let charCount;\n ({ offset, value: charCount } = readUInt16LE(buf, offset));\n\n const byteLength = charCount * 2;\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.toString('ucs2', offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readUsVarByte(buf: Buffer, offset: number): Result<Buffer> {\n offset = +offset;\n\n let byteLength;\n ({ offset, value: byteLength } = readUInt16LE(buf, offset));\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.slice(offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readUNumeric64LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n const low = buf.readUInt32LE(offset);\n const high = buf.readUInt32LE(offset + 4);\n\n return new Result((0x100000000 * high) + low, offset + 8);\n}\n\nexport function readUNumeric96LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 12) {\n throw new NotEnoughDataError(offset + 12);\n }\n\n const dword1 = buf.readUInt32LE(offset);\n const dword2 = buf.readUInt32LE(offset + 4);\n const dword3 = buf.readUInt32LE(offset + 8);\n\n return new Result(dword1 + (0x100000000 * dword2) + (0x100000000 * 0x100000000 * dword3), offset + 12);\n}\n\nexport function readUNumeric128LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 16) {\n throw new NotEnoughDataError(offset + 16);\n }\n\n const dword1 = buf.readUInt32LE(offset);\n const dword2 = buf.readUInt32LE(offset + 4);\n const dword3 = buf.readUInt32LE(offset + 8);\n const dword4 = buf.readUInt32LE(offset + 12);\n\n return new Result(dword1 + (0x100000000 * dword2) + (0x100000000 * 0x100000000 * dword3) + (0x100000000 * 0x100000000 * 0x100000000 * dword4), offset + 16);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["Result","constructor","value","offset","exports","NotEnoughDataError","Error","byteCount","readUInt8","buf","length","readUInt16LE","readInt16LE","readUInt24LE","readUIntLE","readUInt32LE","readUInt32BE","readUInt40LE","readInt32LE","readBigUInt64LE","readBigInt64LE","readFloatLE","readDoubleLE","readBVarChar","charCount","byteLength","toString","readBVarByte","slice","readUsVarChar","readUsVarByte","readUNumeric64LE","low","high","readUNumeric96LE","dword1","dword2","dword3","readUNumeric128LE","dword4"],"sources":["../../src/token/helpers.ts"],"sourcesContent":["export class Result<T> {\n declare value: T;\n declare offset: number;\n\n constructor(value: T, offset: number) {\n this.value = value;\n this.offset = offset;\n }\n}\n\nexport class NotEnoughDataError extends Error {\n byteCount: number;\n\n constructor(byteCount: number) {\n super();\n\n this.byteCount = byteCount;\n }\n}\n\nexport function readUInt8(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 1) {\n throw new NotEnoughDataError(offset + 1);\n }\n\n return new Result(buf.readUInt8(offset), offset + 1);\n}\n\nexport function readUInt16LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 2) {\n throw new NotEnoughDataError(offset + 2);\n }\n\n return new Result(buf.readUInt16LE(offset), offset + 2);\n}\n\nexport function readInt16LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 2) {\n throw new NotEnoughDataError(offset + 2);\n }\n\n return new Result(buf.readInt16LE(offset), offset + 2);\n}\n\nexport function readUInt24LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 3) {\n throw new NotEnoughDataError(offset + 3);\n }\n\n return new Result(buf.readUIntLE(offset, 3), offset + 3);\n}\n\nexport function readUInt32LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readUInt32LE(offset), offset + 4);\n}\n\nexport function readUInt32BE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readUInt32BE(offset), offset + 4);\n}\n\nexport function readUInt40LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 5) {\n throw new NotEnoughDataError(offset + 5);\n }\n\n return new Result(buf.readUIntLE(offset, 5), offset + 5);\n}\nexport function readInt32LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readInt32LE(offset), offset + 4);\n}\n\nexport function readBigUInt64LE(buf: Buffer, offset: number): Result<bigint> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n return new Result(buf.readBigUInt64LE(offset), offset + 8);\n}\n\nexport function readBigInt64LE(buf: Buffer, offset: number): Result<bigint> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n return new Result(buf.readBigInt64LE(offset), offset + 8);\n}\n\nexport function readFloatLE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 4) {\n throw new NotEnoughDataError(offset + 4);\n }\n\n return new Result(buf.readFloatLE(offset), offset + 4);\n}\n\nexport function readDoubleLE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n return new Result(buf.readDoubleLE(offset), offset + 8);\n}\n\nexport function readBVarChar(buf: Buffer, offset: number): Result<string> {\n offset = +offset;\n\n let charCount;\n ({ offset, value: charCount } = readUInt8(buf, offset));\n\n const byteLength = charCount * 2;\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.toString('ucs2', offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readBVarByte(buf: Buffer, offset: number): Result<Buffer> {\n offset = +offset;\n\n let byteLength;\n ({ offset, value: byteLength } = readUInt8(buf, offset));\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.slice(offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readUsVarChar(buf: Buffer, offset: number): Result<string> {\n offset = +offset;\n\n let charCount;\n ({ offset, value: charCount } = readUInt16LE(buf, offset));\n\n const byteLength = charCount * 2;\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.toString('ucs2', offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readUsVarByte(buf: Buffer, offset: number): Result<Buffer> {\n offset = +offset;\n\n let byteLength;\n ({ offset, value: byteLength } = readUInt16LE(buf, offset));\n\n if (buf.length < offset + byteLength) {\n throw new NotEnoughDataError(offset + byteLength);\n }\n\n return new Result(buf.slice(offset, offset + byteLength), offset + byteLength);\n}\n\nexport function readUNumeric64LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 8) {\n throw new NotEnoughDataError(offset + 8);\n }\n\n const low = buf.readUInt32LE(offset);\n const high = buf.readUInt32LE(offset + 4);\n\n return new Result((0x100000000 * high) + low, offset + 8);\n}\n\nexport function readUNumeric96LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 12) {\n throw new NotEnoughDataError(offset + 12);\n }\n\n const dword1 = buf.readUInt32LE(offset);\n const dword2 = buf.readUInt32LE(offset + 4);\n const dword3 = buf.readUInt32LE(offset + 8);\n\n return new Result(dword1 + (0x100000000 * dword2) + (0x100000000 * 0x100000000 * dword3), offset + 12);\n}\n\nexport function readUNumeric128LE(buf: Buffer, offset: number): Result<number> {\n offset = +offset;\n\n if (buf.length < offset + 16) {\n throw new NotEnoughDataError(offset + 16);\n }\n\n const dword1 = buf.readUInt32LE(offset);\n const dword2 = buf.readUInt32LE(offset + 4);\n const dword3 = buf.readUInt32LE(offset + 8);\n const dword4 = buf.readUInt32LE(offset + 12);\n\n return new Result(dword1 + (0x100000000 * dword2) + (0x100000000 * 0x100000000 * dword3) + (0x100000000 * 0x100000000 * 0x100000000 * dword4), offset + 16);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -77,4 +77,4 @@ function errorParser(buf, offset, options) {
77
77
  } = readToken(buf, offset, options));
78
78
  return new _helpers.Result(new _token.ErrorMessageToken(data), offset);
79
79
  }
80
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaGVscGVycyIsInJlcXVpcmUiLCJfdG9rZW4iLCJyZWFkVG9rZW4iLCJidWYiLCJvZmZzZXQiLCJvcHRpb25zIiwidG9rZW5MZW5ndGgiLCJ2YWx1ZSIsInJlYWRVSW50MTZMRSIsImxlbmd0aCIsIk5vdEVub3VnaERhdGFFcnJvciIsIm51bWJlciIsInJlYWRVSW50MzJMRSIsInN0YXRlIiwicmVhZFVJbnQ4IiwiY2xhenoiLCJtZXNzYWdlIiwicmVhZFVzVmFyQ2hhciIsInNlcnZlck5hbWUiLCJyZWFkQlZhckNoYXIiLCJwcm9jTmFtZSIsImxpbmVOdW1iZXIiLCJ0ZHNWZXJzaW9uIiwiUmVzdWx0IiwiaW5mb1BhcnNlciIsImRhdGEiLCJJbmZvTWVzc2FnZVRva2VuIiwiZXJyb3JQYXJzZXIiLCJFcnJvck1lc3NhZ2VUb2tlbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9pbmZvZXJyb3ItdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdEVub3VnaERhdGFFcnJvciwgcmVhZEJWYXJDaGFyLCByZWFkVUludDE2TEUsIHJlYWRVSW50MzJMRSwgcmVhZFVJbnQ4LCByZWFkVXNWYXJDaGFyLCBSZXN1bHQgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgSW5mb01lc3NhZ2VUb2tlbiwgRXJyb3JNZXNzYWdlVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuaW50ZXJmYWNlIFRva2VuRGF0YSB7XG4gIG51bWJlcjogbnVtYmVyO1xuICBzdGF0ZTogbnVtYmVyO1xuICBjbGFzczogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHNlcnZlck5hbWU6IHN0cmluZztcbiAgcHJvY05hbWU6IHN0cmluZztcbiAgbGluZU51bWJlcjogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiByZWFkVG9rZW4oYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zKTogUmVzdWx0PFRva2VuRGF0YT4ge1xuICBsZXQgdG9rZW5MZW5ndGg7XG4gICh7IG9mZnNldCwgdmFsdWU6IHRva2VuTGVuZ3RoIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAoYnVmLmxlbmd0aCA8IHRva2VuTGVuZ3RoICsgb2Zmc2V0KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcih0b2tlbkxlbmd0aCArIG9mZnNldCk7XG4gIH1cblxuICBsZXQgbnVtYmVyO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBudW1iZXIgfSA9IHJlYWRVSW50MzJMRShidWYsIG9mZnNldCkpO1xuXG4gIGxldCBzdGF0ZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogc3RhdGUgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBjbGF6ejtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogY2xhenogfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBtZXNzYWdlO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBtZXNzYWdlIH0gPSByZWFkVXNWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgbGV0IHNlcnZlck5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IHNlcnZlck5hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBwcm9jTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogcHJvY05hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBsaW5lTnVtYmVyO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBsaW5lTnVtYmVyIH0gPSBvcHRpb25zLnRkc1ZlcnNpb24gPCAnN18yJyA/IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkgOiByZWFkVUludDMyTEUoYnVmLCBvZmZzZXQpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgJ251bWJlcic6IG51bWJlcixcbiAgICAnc3RhdGUnOiBzdGF0ZSxcbiAgICAnY2xhc3MnOiBjbGF6eixcbiAgICAnbWVzc2FnZSc6IG1lc3NhZ2UsXG4gICAgJ3NlcnZlck5hbWUnOiBzZXJ2ZXJOYW1lLFxuICAgICdwcm9jTmFtZSc6IHByb2NOYW1lLFxuICAgICdsaW5lTnVtYmVyJzogbGluZU51bWJlclxuICB9LCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5mb1BhcnNlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8SW5mb01lc3NhZ2VUb2tlbj4ge1xuICBsZXQgZGF0YTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogZGF0YSB9ID0gcmVhZFRva2VuKGJ1Ziwgb2Zmc2V0LCBvcHRpb25zKSk7XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQobmV3IEluZm9NZXNzYWdlVG9rZW4oZGF0YSksIG9mZnNldCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclBhcnNlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8RXJyb3JNZXNzYWdlVG9rZW4+IHtcbiAgbGV0IGRhdGE7XG4gICh7IG9mZnNldCwgdmFsdWU6IGRhdGEgfSA9IHJlYWRUb2tlbihidWYsIG9mZnNldCwgb3B0aW9ucykpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KG5ldyBFcnJvck1lc3NhZ2VUb2tlbihkYXRhKSwgb2Zmc2V0KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUdBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQVlBLFNBQVNFLFNBQVNBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxPQUFzQixFQUFxQjtFQUN6RixJQUFJQyxXQUFXO0VBQ2YsQ0FBQztJQUFFRixNQUFNO0lBQUVHLEtBQUssRUFBRUQ7RUFBWSxDQUFDLEdBQUcs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
80
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaGVscGVycyIsInJlcXVpcmUiLCJfdG9rZW4iLCJyZWFkVG9rZW4iLCJidWYiLCJvZmZzZXQiLCJvcHRpb25zIiwidG9rZW5MZW5ndGgiLCJ2YWx1ZSIsInJlYWRVSW50MTZMRSIsImxlbmd0aCIsIk5vdEVub3VnaERhdGFFcnJvciIsIm51bWJlciIsInJlYWRVSW50MzJMRSIsInN0YXRlIiwicmVhZFVJbnQ4IiwiY2xhenoiLCJtZXNzYWdlIiwicmVhZFVzVmFyQ2hhciIsInNlcnZlck5hbWUiLCJyZWFkQlZhckNoYXIiLCJwcm9jTmFtZSIsImxpbmVOdW1iZXIiLCJ0ZHNWZXJzaW9uIiwiUmVzdWx0IiwiaW5mb1BhcnNlciIsImRhdGEiLCJJbmZvTWVzc2FnZVRva2VuIiwiZXJyb3JQYXJzZXIiLCJFcnJvck1lc3NhZ2VUb2tlbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9pbmZvZXJyb3ItdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vdEVub3VnaERhdGFFcnJvciwgcmVhZEJWYXJDaGFyLCByZWFkVUludDE2TEUsIHJlYWRVSW50MzJMRSwgcmVhZFVJbnQ4LCByZWFkVXNWYXJDaGFyLCBSZXN1bHQgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgSW5mb01lc3NhZ2VUb2tlbiwgRXJyb3JNZXNzYWdlVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuaW50ZXJmYWNlIFRva2VuRGF0YSB7XG4gIG51bWJlcjogbnVtYmVyO1xuICBzdGF0ZTogbnVtYmVyO1xuICBjbGFzczogbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHNlcnZlck5hbWU6IHN0cmluZztcbiAgcHJvY05hbWU6IHN0cmluZztcbiAgbGluZU51bWJlcjogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiByZWFkVG9rZW4oYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zKTogUmVzdWx0PFRva2VuRGF0YT4ge1xuICBsZXQgdG9rZW5MZW5ndGg7XG4gICh7IG9mZnNldCwgdmFsdWU6IHRva2VuTGVuZ3RoIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAoYnVmLmxlbmd0aCA8IHRva2VuTGVuZ3RoICsgb2Zmc2V0KSB7XG4gICAgdGhyb3cgbmV3IE5vdEVub3VnaERhdGFFcnJvcih0b2tlbkxlbmd0aCArIG9mZnNldCk7XG4gIH1cblxuICBsZXQgbnVtYmVyO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBudW1iZXIgfSA9IHJlYWRVSW50MzJMRShidWYsIG9mZnNldCkpO1xuXG4gIGxldCBzdGF0ZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogc3RhdGUgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBjbGF6ejtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogY2xhenogfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBtZXNzYWdlO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBtZXNzYWdlIH0gPSByZWFkVXNWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgbGV0IHNlcnZlck5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IHNlcnZlck5hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBwcm9jTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogcHJvY05hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBsaW5lTnVtYmVyO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBsaW5lTnVtYmVyIH0gPSBvcHRpb25zLnRkc1ZlcnNpb24gPCAnN18yJyA/IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkgOiByZWFkVUludDMyTEUoYnVmLCBvZmZzZXQpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgJ251bWJlcic6IG51bWJlcixcbiAgICAnc3RhdGUnOiBzdGF0ZSxcbiAgICAnY2xhc3MnOiBjbGF6eixcbiAgICAnbWVzc2FnZSc6IG1lc3NhZ2UsXG4gICAgJ3NlcnZlck5hbWUnOiBzZXJ2ZXJOYW1lLFxuICAgICdwcm9jTmFtZSc6IHByb2NOYW1lLFxuICAgICdsaW5lTnVtYmVyJzogbGluZU51bWJlclxuICB9LCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5mb1BhcnNlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8SW5mb01lc3NhZ2VUb2tlbj4ge1xuICBsZXQgZGF0YTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogZGF0YSB9ID0gcmVhZFRva2VuKGJ1Ziwgb2Zmc2V0LCBvcHRpb25zKSk7XG5cbiAgcmV0dXJuIG5ldyBSZXN1bHQobmV3IEluZm9NZXNzYWdlVG9rZW4oZGF0YSksIG9mZnNldCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlcnJvclBhcnNlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8RXJyb3JNZXNzYWdlVG9rZW4+IHtcbiAgbGV0IGRhdGE7XG4gICh7IG9mZnNldCwgdmFsdWU6IGRhdGEgfSA9IHJlYWRUb2tlbihidWYsIG9mZnNldCwgb3B0aW9ucykpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KG5ldyBFcnJvck1lc3NhZ2VUb2tlbihkYXRhKSwgb2Zmc2V0KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUdBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQVlBLFNBQVNFLFNBQVNBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxPQUFzQixFQUFxQjtFQUN6RixJQUFJQyxXQUFXO0VBQ2YsQ0FBQztJQUFFRixNQUFNO0lBQUVHLEtBQUssRUFBRUQ7RUFBWSxDQUFDLEdBQUcs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
@@ -1 +1 @@
1
- {"version":3,"file":"infoerror-token-parser.js","names":["_helpers","require","_token","readToken","buf","offset","options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","number","readUInt32LE","state","readUInt8","clazz","message","readUsVarChar","serverName","readBVarChar","procName","lineNumber","tdsVersion","Result","infoParser","data","InfoMessageToken","errorParser","ErrorMessageToken"],"sources":["../../src/token/infoerror-token-parser.ts"],"sourcesContent":["import { NotEnoughDataError, readBVarChar, readUInt16LE, readUInt32LE, readUInt8, readUsVarChar, Result } from './helpers';\nimport { type ParserOptions } from './stream-parser';\n\nimport { InfoMessageToken, ErrorMessageToken } from './token';\n\ninterface TokenData {\n number: number;\n state: number;\n class: number;\n message: string;\n serverName: string;\n procName: string;\n lineNumber: number;\n}\n\nfunction readToken(buf: Buffer, offset: number, options: ParserOptions): Result<TokenData> {\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < tokenLength + offset) {\n throw new NotEnoughDataError(tokenLength + offset);\n }\n\n let number;\n ({ offset, value: number } = readUInt32LE(buf, offset));\n\n let state;\n ({ offset, value: state } = readUInt8(buf, offset));\n\n let clazz;\n ({ offset, value: clazz } = readUInt8(buf, offset));\n\n let message;\n ({ offset, value: message } = readUsVarChar(buf, offset));\n\n let serverName;\n ({ offset, value: serverName } = readBVarChar(buf, offset));\n\n let procName;\n ({ offset, value: procName } = readBVarChar(buf, offset));\n\n let lineNumber;\n ({ offset, value: lineNumber } = options.tdsVersion < '7_2' ? readUInt16LE(buf, offset) : readUInt32LE(buf, offset));\n\n return new Result({\n 'number': number,\n 'state': state,\n 'class': clazz,\n 'message': message,\n 'serverName': serverName,\n 'procName': procName,\n 'lineNumber': lineNumber\n }, offset);\n}\n\nexport function infoParser(buf: Buffer, offset: number, options: ParserOptions): Result<InfoMessageToken> {\n let data;\n ({ offset, value: data } = readToken(buf, offset, options));\n\n return new Result(new InfoMessageToken(data), offset);\n}\n\nexport function errorParser(buf: Buffer, offset: number, options: ParserOptions): Result<ErrorMessageToken> {\n let data;\n ({ offset, value: data } = readToken(buf, offset, options));\n\n return new Result(new ErrorMessageToken(data), offset);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAYA,SAASE,SAASA,CAACC,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAAqB;EACzF,IAAIC,WAAW;EACf,CAAC;IAAEF,MAAM;IAAEG,KAAK,EAAED;EAAY,CAAC,GAAG,IAAAE,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAE3D,IAAID,GAAG,CAACM,MAAM,GAAGH,WAAW,GAAGF,MAAM,EAAE;IACrC,MAAM,IAAIM,2BAAkB,CAACJ,WAAW,GAAGF,MAAM,CAAC;EACpD;EAEA,IAAIO,MAAM;EACV,CAAC;IAAEP,MAAM;IAAEG,KAAK,EAAEI;EAAO,CAAC,GAAG,IAAAC,qBAAY,EAACT,GAAG,EAAEC,MAAM,CAAC;EAEtD,IAAIS,KAAK;EACT,CAAC;IAAET,MAAM;IAAEG,KAAK,EAAEM;EAAM,CAAC,GAAG,IAAAC,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIW,KAAK;EACT,CAAC;IAAEX,MAAM;IAAEG,KAAK,EAAEQ;EAAM,CAAC,GAAG,IAAAD,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIY,OAAO;EACX,CAAC;IAAEZ,MAAM;IAAEG,KAAK,EAAES;EAAQ,CAAC,GAAG,IAAAC,sBAAa,EAACd,GAAG,EAAEC,MAAM,CAAC;EAExD,IAAIc,UAAU;EACd,CAAC;IAAEd,MAAM;IAAEG,KAAK,EAAEW;EAAW,CAAC,GAAG,IAAAC,qBAAY,EAAChB,GAAG,EAAEC,MAAM,CAAC;EAE1D,IAAIgB,QAAQ;EACZ,CAAC;IAAEhB,MAAM;IAAEG,KAAK,EAAEa;EAAS,CAAC,GAAG,IAAAD,qBAAY,EAAChB,GAAG,EAAEC,MAAM,CAAC;EAExD,IAAIiB,UAAU;EACd,CAAC;IAAEjB,MAAM;IAAEG,KAAK,EAAEc;EAAW,CAAC,GAAGhB,OAAO,CAACiB,UAAU,GAAG,KAAK,GAAG,IAAAd,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC,GAAG,IAAAQ,qBAAY,EAACT,GAAG,EAAEC,MAAM,CAAC;EAEnH,OAAO,IAAImB,eAAM,CAAC;IAChB,QAAQ,EAAEZ,MAAM;IAChB,OAAO,EAAEE,KAAK;IACd,OAAO,EAAEE,KAAK;IACd,SAAS,EAAEC,OAAO;IAClB,YAAY,EAAEE,UAAU;IACxB,UAAU,EAAEE,QAAQ;IACpB,YAAY,EAAEC;EAChB,CAAC,EAAEjB,MAAM,CAAC;AACZ;AAEO,SAASoB,UAAUA,CAACrB,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAA4B;EACxG,IAAIoB,IAAI;EACR,CAAC;IAAErB,MAAM;IAAEG,KAAK,EAAEkB;EAAK,CAAC,GAAGvB,SAAS,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAE1D,OAAO,IAAIkB,eAAM,CAAC,IAAIG,uBAAgB,CAACD,IAAI,CAAC,EAAErB,MAAM,CAAC;AACvD;AAEO,SAASuB,WAAWA,CAACxB,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAA6B;EAC1G,IAAIoB,IAAI;EACR,CAAC;IAAErB,MAAM;IAAEG,KAAK,EAAEkB;EAAK,CAAC,GAAGvB,SAAS,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAE1D,OAAO,IAAIkB,eAAM,CAAC,IAAIK,wBAAiB,CAACH,IAAI,CAAC,EAAErB,MAAM,CAAC;AACxD"}
1
+ {"version":3,"file":"infoerror-token-parser.js","names":["_helpers","require","_token","readToken","buf","offset","options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","number","readUInt32LE","state","readUInt8","clazz","message","readUsVarChar","serverName","readBVarChar","procName","lineNumber","tdsVersion","Result","infoParser","data","InfoMessageToken","errorParser","ErrorMessageToken"],"sources":["../../src/token/infoerror-token-parser.ts"],"sourcesContent":["import { NotEnoughDataError, readBVarChar, readUInt16LE, readUInt32LE, readUInt8, readUsVarChar, Result } from './helpers';\nimport { type ParserOptions } from './stream-parser';\n\nimport { InfoMessageToken, ErrorMessageToken } from './token';\n\ninterface TokenData {\n number: number;\n state: number;\n class: number;\n message: string;\n serverName: string;\n procName: string;\n lineNumber: number;\n}\n\nfunction readToken(buf: Buffer, offset: number, options: ParserOptions): Result<TokenData> {\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < tokenLength + offset) {\n throw new NotEnoughDataError(tokenLength + offset);\n }\n\n let number;\n ({ offset, value: number } = readUInt32LE(buf, offset));\n\n let state;\n ({ offset, value: state } = readUInt8(buf, offset));\n\n let clazz;\n ({ offset, value: clazz } = readUInt8(buf, offset));\n\n let message;\n ({ offset, value: message } = readUsVarChar(buf, offset));\n\n let serverName;\n ({ offset, value: serverName } = readBVarChar(buf, offset));\n\n let procName;\n ({ offset, value: procName } = readBVarChar(buf, offset));\n\n let lineNumber;\n ({ offset, value: lineNumber } = options.tdsVersion < '7_2' ? readUInt16LE(buf, offset) : readUInt32LE(buf, offset));\n\n return new Result({\n 'number': number,\n 'state': state,\n 'class': clazz,\n 'message': message,\n 'serverName': serverName,\n 'procName': procName,\n 'lineNumber': lineNumber\n }, offset);\n}\n\nexport function infoParser(buf: Buffer, offset: number, options: ParserOptions): Result<InfoMessageToken> {\n let data;\n ({ offset, value: data } = readToken(buf, offset, options));\n\n return new Result(new InfoMessageToken(data), offset);\n}\n\nexport function errorParser(buf: Buffer, offset: number, options: ParserOptions): Result<ErrorMessageToken> {\n let data;\n ({ offset, value: data } = readToken(buf, offset, options));\n\n return new Result(new ErrorMessageToken(data), offset);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAYA,SAASE,SAASA,CAACC,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAAqB;EACzF,IAAIC,WAAW;EACf,CAAC;IAAEF,MAAM;IAAEG,KAAK,EAAED;EAAY,CAAC,GAAG,IAAAE,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAE3D,IAAID,GAAG,CAACM,MAAM,GAAGH,WAAW,GAAGF,MAAM,EAAE;IACrC,MAAM,IAAIM,2BAAkB,CAACJ,WAAW,GAAGF,MAAM,CAAC;EACpD;EAEA,IAAIO,MAAM;EACV,CAAC;IAAEP,MAAM;IAAEG,KAAK,EAAEI;EAAO,CAAC,GAAG,IAAAC,qBAAY,EAACT,GAAG,EAAEC,MAAM,CAAC;EAEtD,IAAIS,KAAK;EACT,CAAC;IAAET,MAAM;IAAEG,KAAK,EAAEM;EAAM,CAAC,GAAG,IAAAC,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIW,KAAK;EACT,CAAC;IAAEX,MAAM;IAAEG,KAAK,EAAEQ;EAAM,CAAC,GAAG,IAAAD,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIY,OAAO;EACX,CAAC;IAAEZ,MAAM;IAAEG,KAAK,EAAES;EAAQ,CAAC,GAAG,IAAAC,sBAAa,EAACd,GAAG,EAAEC,MAAM,CAAC;EAExD,IAAIc,UAAU;EACd,CAAC;IAAEd,MAAM;IAAEG,KAAK,EAAEW;EAAW,CAAC,GAAG,IAAAC,qBAAY,EAAChB,GAAG,EAAEC,MAAM,CAAC;EAE1D,IAAIgB,QAAQ;EACZ,CAAC;IAAEhB,MAAM;IAAEG,KAAK,EAAEa;EAAS,CAAC,GAAG,IAAAD,qBAAY,EAAChB,GAAG,EAAEC,MAAM,CAAC;EAExD,IAAIiB,UAAU;EACd,CAAC;IAAEjB,MAAM;IAAEG,KAAK,EAAEc;EAAW,CAAC,GAAGhB,OAAO,CAACiB,UAAU,GAAG,KAAK,GAAG,IAAAd,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC,GAAG,IAAAQ,qBAAY,EAACT,GAAG,EAAEC,MAAM,CAAC;EAEnH,OAAO,IAAImB,eAAM,CAAC;IAChB,QAAQ,EAAEZ,MAAM;IAChB,OAAO,EAAEE,KAAK;IACd,OAAO,EAAEE,KAAK;IACd,SAAS,EAAEC,OAAO;IAClB,YAAY,EAAEE,UAAU;IACxB,UAAU,EAAEE,QAAQ;IACpB,YAAY,EAAEC;EAChB,CAAC,EAAEjB,MAAM,CAAC;AACZ;AAEO,SAASoB,UAAUA,CAACrB,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAA4B;EACxG,IAAIoB,IAAI;EACR,CAAC;IAAErB,MAAM;IAAEG,KAAK,EAAEkB;EAAK,CAAC,GAAGvB,SAAS,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAE1D,OAAO,IAAIkB,eAAM,CAAC,IAAIG,uBAAgB,CAACD,IAAI,CAAC,EAAErB,MAAM,CAAC;AACvD;AAEO,SAASuB,WAAWA,CAACxB,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAA6B;EAC1G,IAAIoB,IAAI;EACR,CAAC;IAAErB,MAAM;IAAEG,KAAK,EAAEkB;EAAK,CAAC,GAAGvB,SAAS,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EAE1D,OAAO,IAAIkB,eAAM,CAAC,IAAIK,wBAAiB,CAACH,IAAI,CAAC,EAAErB,MAAM,CAAC;AACxD","ignoreList":[]}
@@ -72,4 +72,4 @@ function loginAckParser(buf, offset, _options) {
72
72
  }
73
73
  var _default = exports.default = loginAckParser;
74
74
  module.exports = loginAckParser;
75
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX3Rkc1ZlcnNpb25zIiwiX2hlbHBlcnMiLCJpbnRlcmZhY2VUeXBlcyIsImxvZ2luQWNrUGFyc2VyIiwiYnVmIiwib2Zmc2V0IiwiX29wdGlvbnMiLCJ0b2tlbkxlbmd0aCIsInZhbHVlIiwicmVhZFVJbnQxNkxFIiwibGVuZ3RoIiwiTm90RW5vdWdoRGF0YUVycm9yIiwiaW50ZXJmYWNlTnVtYmVyIiwicmVhZFVJbnQ4IiwiaW50ZXJmYWNlVHlwZSIsInRkc1ZlcnNpb25OdW1iZXIiLCJyZWFkVUludDMyQkUiLCJ0ZHNWZXJzaW9uIiwidmVyc2lvbnMiLCJwcm9nTmFtZSIsInJlYWRCVmFyQ2hhciIsIm1ham9yIiwibWlub3IiLCJidWlsZE51bUhpIiwiYnVpbGROdW1Mb3ciLCJSZXN1bHQiLCJMb2dpbkFja1Rva2VuIiwiaW50ZXJmYWNlIiwicHJvZ1ZlcnNpb24iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2xvZ2luYWNrLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuXG5pbXBvcnQgeyBMb2dpbkFja1Rva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmltcG9ydCB7IHZlcnNpb25zQnlWYWx1ZSBhcyB2ZXJzaW9ucyB9IGZyb20gJy4uL3Rkcy12ZXJzaW9ucyc7XG5pbXBvcnQgeyBOb3RFbm91Z2hEYXRhRXJyb3IsIHJlYWRCVmFyQ2hhciwgcmVhZFVJbnQxNkxFLCByZWFkVUludDMyQkUsIHJlYWRVSW50OCwgUmVzdWx0IH0gZnJvbSAnLi9oZWxwZXJzJztcblxuY29uc3QgaW50ZXJmYWNlVHlwZXM6IHsgW2tleTogbnVtYmVyXTogc3RyaW5nIH0gPSB7XG4gIDA6ICdTUUxfREZMVCcsXG4gIDE6ICdTUUxfVFNRTCdcbn07XG5cbmZ1bmN0aW9uIGxvZ2luQWNrUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8TG9naW5BY2tUb2tlbj4ge1xuICAvLyBsZW5ndGhcbiAgbGV0IHRva2VuTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0b2tlbkxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCB0b2tlbkxlbmd0aCArIG9mZnNldCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3IodG9rZW5MZW5ndGggKyBvZmZzZXQpO1xuICB9XG5cbiAgbGV0IGludGVyZmFjZU51bWJlcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogaW50ZXJmYWNlTnVtYmVyIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICBjb25zdCBpbnRlcmZhY2VUeXBlID0gaW50ZXJmYWNlVHlwZXNbaW50ZXJmYWNlTnVtYmVyXTtcblxuICBsZXQgdGRzVmVyc2lvbk51bWJlcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogdGRzVmVyc2lvbk51bWJlciB9ID0gcmVhZFVJbnQzMkJFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgY29uc3QgdGRzVmVyc2lvbiA9IHZlcnNpb25zW3Rkc1ZlcnNpb25OdW1iZXJdO1xuXG4gIGxldCBwcm9nTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogcHJvZ05hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBtYWpvcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbWFqb3IgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBtaW5vcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbWlub3IgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBidWlsZE51bUhpO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBidWlsZE51bUhpIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgYnVpbGROdW1Mb3c7XG4gICh7IG9mZnNldCwgdmFsdWU6IGJ1aWxkTnVtTG93IH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgTG9naW5BY2tUb2tlbih7XG4gICAgaW50ZXJmYWNlOiBpbnRlcmZhY2VUeXBlLFxuICAgIHRkc1ZlcnNpb246IHRkc1ZlcnNpb24sXG4gICAgcHJvZ05hbWU6IHByb2dOYW1lLFxuICAgIHByb2dWZXJzaW9uOiB7XG4gICAgICBtYWpvcjogbWFqb3IsXG4gICAgICBtaW5vcjogbWlub3IsXG4gICAgICBidWlsZE51bUhpOiBidWlsZE51bUhpLFxuICAgICAgYnVpbGROdW1Mb3c6IGJ1aWxkTnVtTG93XG4gICAgfVxuICB9KSwgb2Zmc2V0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbG9naW5BY2tQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGxvZ2luQWNrUGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFFQSxNQUFNRyxjQUF5QyxHQUFHO0VBQ2hELENBQUMsRUFBRSxVQUFVO0VBQ2IsQ0FBQyxFQUFFO0FBQ0wsQ0FBQztBQUVELFNBQVNDLGNBQWNBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxRQUF1QixFQUF5QjtFQUNuRztFQUNBLElBQUlDLFdBQVc7RUFDZixDQUFDO0lBQUVGLE1BQU07SUFBRUcsS0FBSyxFQUFFRDtFQUFZLENBQUMsR0FBRyxJQUFBRSxxQkFBWSxFQUFDTCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUUzRCxJQUFJRCxHQUFHLENBQUNNLE1BQU0sR0FBR0gsV0FBVyxHQUFHRixNQUFNLEVBQUU7SUFDckMsTUFBTSxJQUFJTSwyQkFBa0IsQ0FBQ0osV0FBVyxHQUFHRixNQUFNLENBQUM7RUFDcEQ7RUFFQSxJQUFJTyxlQUFlO0VBQ25CLENBQUM7SUFBRVAsTUFBTTtJQUFFRyxLQUFLLEVBQUVJO0VBQWdCLENBQUMsR0FBRyxJQUFBQyxrQkFBUyxFQUFDVCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUU1RCxNQUFNUyxhQUFhLEdBQUdaLGNBQWMsQ0FBQ1UsZUFBZSxDQUFDO0VBRXJELElBQUlHLGdCQUFnQjtFQUNwQixDQUFDO0lBQUVWLE1BQU07SUFBRUcsS0FBSyxFQUFFTztFQUFpQixDQUFDLEdBQUcsSUFBQUMscUJBQVksRUFBQ1osR0FBRyxFQUFFQyxNQUFNLENBQUM7RUFFaEUsTUFBTVksVUFBVSxHQUFHQyw0QkFBUSxDQUFDSCxnQkFBZ0IsQ0FBQztFQUU3QyxJQUFJSSxRQUFRO0VBQ1osQ0FBQztJQUFFZCxNQUFNO0lBQUVHLEtBQUssRUFBRVc7RUFBUyxDQUFDLEdBQUcsSUFBQUMscUJBQVksRUFBQ2hCLEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRXhELElBQUlnQixLQUFLO0VBQ1QsQ0FBQztJQUFFaEIsTUFBTTtJQUFFRyxLQUFLLEVBQUVhO0VBQU0sQ0FBQyxHQUFHLElBQUFSLGtCQUFTLEVBQUNULEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRWxELElBQUlpQixLQUFLO0VBQ1QsQ0FBQztJQUFFakIsTUFBTTtJQUFFRyxLQUFLLEVBQUVjO0VBQU0sQ0FBQyxHQUFHLElBQUFULGtCQUFTLEVBQUNULEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRWxELElBQUlrQixVQUFVO0VBQ2QsQ0FBQztJQUFFbEIsTUFBTTtJQUFFRyxLQUFLLEVBQUVlO0VBQVcsQ0FBQyxHQUFHLElBQUFWLGtCQUFTLEVBQUNULEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRXZELElBQUltQixXQUFXO0VBQ2YsQ0FBQztJQUFFbkIsTUFBTTtJQUFFRyxLQUFLLEVBQUVnQjtFQUFZLENBQUMsR0FBRyxJQUFBWCxrQkFBUyxFQUFDVCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUV4RCxPQUFPLElBQUlvQixlQUFNLENBQUMsSUFBSUMsb0JBQWEsQ0FBQztJQUNsQ0MsU0FBUyxFQUFFYixhQUFhO0lBQ3hCRyxVQUFVLEVBQUVBLFVBQVU7SUFDdEJFLFFBQVEsRUFBRUEsUUFBUTtJQUNsQlMsV0FBVyxFQUFFO01BQ1hQLEtBQUssRUFBRUEsS0FBSztNQUNaQyxLQUFLLEVBQUVBLEtBQUs7TUFDWkMsVUFBVSxFQUFFQSxVQUFVO01BQ3RCQyxXQUFXLEVBQUVBO0lBQ2Y7RUFDRixDQUFDLENBQUMsRUFBRW5CLE1BQU0sQ0FBQztBQUNiO0FBQUMsSUFBQXdCLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWM1QixjQUFjO0FBQzdCNkIsTUFBTSxDQUFDRixPQUFPLEdBQUczQixjQUFjIn0=
75
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX3Rkc1ZlcnNpb25zIiwiX2hlbHBlcnMiLCJpbnRlcmZhY2VUeXBlcyIsImxvZ2luQWNrUGFyc2VyIiwiYnVmIiwib2Zmc2V0IiwiX29wdGlvbnMiLCJ0b2tlbkxlbmd0aCIsInZhbHVlIiwicmVhZFVJbnQxNkxFIiwibGVuZ3RoIiwiTm90RW5vdWdoRGF0YUVycm9yIiwiaW50ZXJmYWNlTnVtYmVyIiwicmVhZFVJbnQ4IiwiaW50ZXJmYWNlVHlwZSIsInRkc1ZlcnNpb25OdW1iZXIiLCJyZWFkVUludDMyQkUiLCJ0ZHNWZXJzaW9uIiwidmVyc2lvbnMiLCJwcm9nTmFtZSIsInJlYWRCVmFyQ2hhciIsIm1ham9yIiwibWlub3IiLCJidWlsZE51bUhpIiwiYnVpbGROdW1Mb3ciLCJSZXN1bHQiLCJMb2dpbkFja1Rva2VuIiwiaW50ZXJmYWNlIiwicHJvZ1ZlcnNpb24iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2xvZ2luYWNrLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuXG5pbXBvcnQgeyBMb2dpbkFja1Rva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmltcG9ydCB7IHZlcnNpb25zQnlWYWx1ZSBhcyB2ZXJzaW9ucyB9IGZyb20gJy4uL3Rkcy12ZXJzaW9ucyc7XG5pbXBvcnQgeyBOb3RFbm91Z2hEYXRhRXJyb3IsIHJlYWRCVmFyQ2hhciwgcmVhZFVJbnQxNkxFLCByZWFkVUludDMyQkUsIHJlYWRVSW50OCwgUmVzdWx0IH0gZnJvbSAnLi9oZWxwZXJzJztcblxuY29uc3QgaW50ZXJmYWNlVHlwZXM6IHsgW2tleTogbnVtYmVyXTogc3RyaW5nIH0gPSB7XG4gIDA6ICdTUUxfREZMVCcsXG4gIDE6ICdTUUxfVFNRTCdcbn07XG5cbmZ1bmN0aW9uIGxvZ2luQWNrUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8TG9naW5BY2tUb2tlbj4ge1xuICAvLyBsZW5ndGhcbiAgbGV0IHRva2VuTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0b2tlbkxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCB0b2tlbkxlbmd0aCArIG9mZnNldCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3IodG9rZW5MZW5ndGggKyBvZmZzZXQpO1xuICB9XG5cbiAgbGV0IGludGVyZmFjZU51bWJlcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogaW50ZXJmYWNlTnVtYmVyIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICBjb25zdCBpbnRlcmZhY2VUeXBlID0gaW50ZXJmYWNlVHlwZXNbaW50ZXJmYWNlTnVtYmVyXTtcblxuICBsZXQgdGRzVmVyc2lvbk51bWJlcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogdGRzVmVyc2lvbk51bWJlciB9ID0gcmVhZFVJbnQzMkJFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgY29uc3QgdGRzVmVyc2lvbiA9IHZlcnNpb25zW3Rkc1ZlcnNpb25OdW1iZXJdO1xuXG4gIGxldCBwcm9nTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogcHJvZ05hbWUgfSA9IHJlYWRCVmFyQ2hhcihidWYsIG9mZnNldCkpO1xuXG4gIGxldCBtYWpvcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbWFqb3IgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBtaW5vcjtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbWlub3IgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGxldCBidWlsZE51bUhpO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBidWlsZE51bUhpIH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICBsZXQgYnVpbGROdW1Mb3c7XG4gICh7IG9mZnNldCwgdmFsdWU6IGJ1aWxkTnVtTG93IH0gPSByZWFkVUludDgoYnVmLCBvZmZzZXQpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgTG9naW5BY2tUb2tlbih7XG4gICAgaW50ZXJmYWNlOiBpbnRlcmZhY2VUeXBlLFxuICAgIHRkc1ZlcnNpb246IHRkc1ZlcnNpb24sXG4gICAgcHJvZ05hbWU6IHByb2dOYW1lLFxuICAgIHByb2dWZXJzaW9uOiB7XG4gICAgICBtYWpvcjogbWFqb3IsXG4gICAgICBtaW5vcjogbWlub3IsXG4gICAgICBidWlsZE51bUhpOiBidWlsZE51bUhpLFxuICAgICAgYnVpbGROdW1Mb3c6IGJ1aWxkTnVtTG93XG4gICAgfVxuICB9KSwgb2Zmc2V0KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgbG9naW5BY2tQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IGxvZ2luQWNrUGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxRQUFBLEdBQUFGLE9BQUE7QUFFQSxNQUFNRyxjQUF5QyxHQUFHO0VBQ2hELENBQUMsRUFBRSxVQUFVO0VBQ2IsQ0FBQyxFQUFFO0FBQ0wsQ0FBQztBQUVELFNBQVNDLGNBQWNBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxRQUF1QixFQUF5QjtFQUNuRztFQUNBLElBQUlDLFdBQVc7RUFDZixDQUFDO0lBQUVGLE1BQU07SUFBRUcsS0FBSyxFQUFFRDtFQUFZLENBQUMsR0FBRyxJQUFBRSxxQkFBWSxFQUFDTCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUUzRCxJQUFJRCxHQUFHLENBQUNNLE1BQU0sR0FBR0gsV0FBVyxHQUFHRixNQUFNLEVBQUU7SUFDckMsTUFBTSxJQUFJTSwyQkFBa0IsQ0FBQ0osV0FBVyxHQUFHRixNQUFNLENBQUM7RUFDcEQ7RUFFQSxJQUFJTyxlQUFlO0VBQ25CLENBQUM7SUFBRVAsTUFBTTtJQUFFRyxLQUFLLEVBQUVJO0VBQWdCLENBQUMsR0FBRyxJQUFBQyxrQkFBUyxFQUFDVCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUU1RCxNQUFNUyxhQUFhLEdBQUdaLGNBQWMsQ0FBQ1UsZUFBZSxDQUFDO0VBRXJELElBQUlHLGdCQUFnQjtFQUNwQixDQUFDO0lBQUVWLE1BQU07SUFBRUcsS0FBSyxFQUFFTztFQUFpQixDQUFDLEdBQUcsSUFBQUMscUJBQVksRUFBQ1osR0FBRyxFQUFFQyxNQUFNLENBQUM7RUFFaEUsTUFBTVksVUFBVSxHQUFHQyw0QkFBUSxDQUFDSCxnQkFBZ0IsQ0FBQztFQUU3QyxJQUFJSSxRQUFRO0VBQ1osQ0FBQztJQUFFZCxNQUFNO0lBQUVHLEtBQUssRUFBRVc7RUFBUyxDQUFDLEdBQUcsSUFBQUMscUJBQVksRUFBQ2hCLEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRXhELElBQUlnQixLQUFLO0VBQ1QsQ0FBQztJQUFFaEIsTUFBTTtJQUFFRyxLQUFLLEVBQUVhO0VBQU0sQ0FBQyxHQUFHLElBQUFSLGtCQUFTLEVBQUNULEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRWxELElBQUlpQixLQUFLO0VBQ1QsQ0FBQztJQUFFakIsTUFBTTtJQUFFRyxLQUFLLEVBQUVjO0VBQU0sQ0FBQyxHQUFHLElBQUFULGtCQUFTLEVBQUNULEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRWxELElBQUlrQixVQUFVO0VBQ2QsQ0FBQztJQUFFbEIsTUFBTTtJQUFFRyxLQUFLLEVBQUVlO0VBQVcsQ0FBQyxHQUFHLElBQUFWLGtCQUFTLEVBQUNULEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRXZELElBQUltQixXQUFXO0VBQ2YsQ0FBQztJQUFFbkIsTUFBTTtJQUFFRyxLQUFLLEVBQUVnQjtFQUFZLENBQUMsR0FBRyxJQUFBWCxrQkFBUyxFQUFDVCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUV4RCxPQUFPLElBQUlvQixlQUFNLENBQUMsSUFBSUMsb0JBQWEsQ0FBQztJQUNsQ0MsU0FBUyxFQUFFYixhQUFhO0lBQ3hCRyxVQUFVLEVBQUVBLFVBQVU7SUFDdEJFLFFBQVEsRUFBRUEsUUFBUTtJQUNsQlMsV0FBVyxFQUFFO01BQ1hQLEtBQUssRUFBRUEsS0FBSztNQUNaQyxLQUFLLEVBQUVBLEtBQUs7TUFDWkMsVUFBVSxFQUFFQSxVQUFVO01BQ3RCQyxXQUFXLEVBQUVBO0lBQ2Y7RUFDRixDQUFDLENBQUMsRUFBRW5CLE1BQU0sQ0FBQztBQUNiO0FBQUMsSUFBQXdCLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWM1QixjQUFjO0FBQzdCNkIsTUFBTSxDQUFDRixPQUFPLEdBQUczQixjQUFjIiwiaWdub3JlTGlzdCI6W119
@@ -1 +1 @@
1
- {"version":3,"file":"loginack-token-parser.js","names":["_token","require","_tdsVersions","_helpers","interfaceTypes","loginAckParser","buf","offset","_options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","interfaceNumber","readUInt8","interfaceType","tdsVersionNumber","readUInt32BE","tdsVersion","versions","progName","readBVarChar","major","minor","buildNumHi","buildNumLow","Result","LoginAckToken","interface","progVersion","_default","exports","default","module"],"sources":["../../src/token/loginack-token-parser.ts"],"sourcesContent":["import { type ParserOptions } from './stream-parser';\n\nimport { LoginAckToken } from './token';\n\nimport { versionsByValue as versions } from '../tds-versions';\nimport { NotEnoughDataError, readBVarChar, readUInt16LE, readUInt32BE, readUInt8, Result } from './helpers';\n\nconst interfaceTypes: { [key: number]: string } = {\n 0: 'SQL_DFLT',\n 1: 'SQL_TSQL'\n};\n\nfunction loginAckParser(buf: Buffer, offset: number, _options: ParserOptions): Result<LoginAckToken> {\n // length\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < tokenLength + offset) {\n throw new NotEnoughDataError(tokenLength + offset);\n }\n\n let interfaceNumber;\n ({ offset, value: interfaceNumber } = readUInt8(buf, offset));\n\n const interfaceType = interfaceTypes[interfaceNumber];\n\n let tdsVersionNumber;\n ({ offset, value: tdsVersionNumber } = readUInt32BE(buf, offset));\n\n const tdsVersion = versions[tdsVersionNumber];\n\n let progName;\n ({ offset, value: progName } = readBVarChar(buf, offset));\n\n let major;\n ({ offset, value: major } = readUInt8(buf, offset));\n\n let minor;\n ({ offset, value: minor } = readUInt8(buf, offset));\n\n let buildNumHi;\n ({ offset, value: buildNumHi } = readUInt8(buf, offset));\n\n let buildNumLow;\n ({ offset, value: buildNumLow } = readUInt8(buf, offset));\n\n return new Result(new LoginAckToken({\n interface: interfaceType,\n tdsVersion: tdsVersion,\n progName: progName,\n progVersion: {\n major: major,\n minor: minor,\n buildNumHi: buildNumHi,\n buildNumLow: buildNumLow\n }\n }), offset);\n}\n\nexport default loginAckParser;\nmodule.exports = loginAckParser;\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,MAAMG,cAAyC,GAAG;EAChD,CAAC,EAAE,UAAU;EACb,CAAC,EAAE;AACL,CAAC;AAED,SAASC,cAAcA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAAyB;EACnG;EACA,IAAIC,WAAW;EACf,CAAC;IAAEF,MAAM;IAAEG,KAAK,EAAED;EAAY,CAAC,GAAG,IAAAE,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAE3D,IAAID,GAAG,CAACM,MAAM,GAAGH,WAAW,GAAGF,MAAM,EAAE;IACrC,MAAM,IAAIM,2BAAkB,CAACJ,WAAW,GAAGF,MAAM,CAAC;EACpD;EAEA,IAAIO,eAAe;EACnB,CAAC;IAAEP,MAAM;IAAEG,KAAK,EAAEI;EAAgB,CAAC,GAAG,IAAAC,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAE5D,MAAMS,aAAa,GAAGZ,cAAc,CAACU,eAAe,CAAC;EAErD,IAAIG,gBAAgB;EACpB,CAAC;IAAEV,MAAM;IAAEG,KAAK,EAAEO;EAAiB,CAAC,GAAG,IAAAC,qBAAY,EAACZ,GAAG,EAAEC,MAAM,CAAC;EAEhE,MAAMY,UAAU,GAAGC,4BAAQ,CAACH,gBAAgB,CAAC;EAE7C,IAAII,QAAQ;EACZ,CAAC;IAAEd,MAAM;IAAEG,KAAK,EAAEW;EAAS,CAAC,GAAG,IAAAC,qBAAY,EAAChB,GAAG,EAAEC,MAAM,CAAC;EAExD,IAAIgB,KAAK;EACT,CAAC;IAAEhB,MAAM;IAAEG,KAAK,EAAEa;EAAM,CAAC,GAAG,IAAAR,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIiB,KAAK;EACT,CAAC;IAAEjB,MAAM;IAAEG,KAAK,EAAEc;EAAM,CAAC,GAAG,IAAAT,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIkB,UAAU;EACd,CAAC;IAAElB,MAAM;IAAEG,KAAK,EAAEe;EAAW,CAAC,GAAG,IAAAV,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAEvD,IAAImB,WAAW;EACf,CAAC;IAAEnB,MAAM;IAAEG,KAAK,EAAEgB;EAAY,CAAC,GAAG,IAAAX,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAExD,OAAO,IAAIoB,eAAM,CAAC,IAAIC,oBAAa,CAAC;IAClCC,SAAS,EAAEb,aAAa;IACxBG,UAAU,EAAEA,UAAU;IACtBE,QAAQ,EAAEA,QAAQ;IAClBS,WAAW,EAAE;MACXP,KAAK,EAAEA,KAAK;MACZC,KAAK,EAAEA,KAAK;MACZC,UAAU,EAAEA,UAAU;MACtBC,WAAW,EAAEA;IACf;EACF,CAAC,CAAC,EAAEnB,MAAM,CAAC;AACb;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc5B,cAAc;AAC7B6B,MAAM,CAACF,OAAO,GAAG3B,cAAc"}
1
+ {"version":3,"file":"loginack-token-parser.js","names":["_token","require","_tdsVersions","_helpers","interfaceTypes","loginAckParser","buf","offset","_options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","interfaceNumber","readUInt8","interfaceType","tdsVersionNumber","readUInt32BE","tdsVersion","versions","progName","readBVarChar","major","minor","buildNumHi","buildNumLow","Result","LoginAckToken","interface","progVersion","_default","exports","default","module"],"sources":["../../src/token/loginack-token-parser.ts"],"sourcesContent":["import { type ParserOptions } from './stream-parser';\n\nimport { LoginAckToken } from './token';\n\nimport { versionsByValue as versions } from '../tds-versions';\nimport { NotEnoughDataError, readBVarChar, readUInt16LE, readUInt32BE, readUInt8, Result } from './helpers';\n\nconst interfaceTypes: { [key: number]: string } = {\n 0: 'SQL_DFLT',\n 1: 'SQL_TSQL'\n};\n\nfunction loginAckParser(buf: Buffer, offset: number, _options: ParserOptions): Result<LoginAckToken> {\n // length\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < tokenLength + offset) {\n throw new NotEnoughDataError(tokenLength + offset);\n }\n\n let interfaceNumber;\n ({ offset, value: interfaceNumber } = readUInt8(buf, offset));\n\n const interfaceType = interfaceTypes[interfaceNumber];\n\n let tdsVersionNumber;\n ({ offset, value: tdsVersionNumber } = readUInt32BE(buf, offset));\n\n const tdsVersion = versions[tdsVersionNumber];\n\n let progName;\n ({ offset, value: progName } = readBVarChar(buf, offset));\n\n let major;\n ({ offset, value: major } = readUInt8(buf, offset));\n\n let minor;\n ({ offset, value: minor } = readUInt8(buf, offset));\n\n let buildNumHi;\n ({ offset, value: buildNumHi } = readUInt8(buf, offset));\n\n let buildNumLow;\n ({ offset, value: buildNumLow } = readUInt8(buf, offset));\n\n return new Result(new LoginAckToken({\n interface: interfaceType,\n tdsVersion: tdsVersion,\n progName: progName,\n progVersion: {\n major: major,\n minor: minor,\n buildNumHi: buildNumHi,\n buildNumLow: buildNumLow\n }\n }), offset);\n}\n\nexport default loginAckParser;\nmodule.exports = loginAckParser;\n"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,MAAMG,cAAyC,GAAG;EAChD,CAAC,EAAE,UAAU;EACb,CAAC,EAAE;AACL,CAAC;AAED,SAASC,cAAcA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAAyB;EACnG;EACA,IAAIC,WAAW;EACf,CAAC;IAAEF,MAAM;IAAEG,KAAK,EAAED;EAAY,CAAC,GAAG,IAAAE,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAE3D,IAAID,GAAG,CAACM,MAAM,GAAGH,WAAW,GAAGF,MAAM,EAAE;IACrC,MAAM,IAAIM,2BAAkB,CAACJ,WAAW,GAAGF,MAAM,CAAC;EACpD;EAEA,IAAIO,eAAe;EACnB,CAAC;IAAEP,MAAM;IAAEG,KAAK,EAAEI;EAAgB,CAAC,GAAG,IAAAC,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAE5D,MAAMS,aAAa,GAAGZ,cAAc,CAACU,eAAe,CAAC;EAErD,IAAIG,gBAAgB;EACpB,CAAC;IAAEV,MAAM;IAAEG,KAAK,EAAEO;EAAiB,CAAC,GAAG,IAAAC,qBAAY,EAACZ,GAAG,EAAEC,MAAM,CAAC;EAEhE,MAAMY,UAAU,GAAGC,4BAAQ,CAACH,gBAAgB,CAAC;EAE7C,IAAII,QAAQ;EACZ,CAAC;IAAEd,MAAM;IAAEG,KAAK,EAAEW;EAAS,CAAC,GAAG,IAAAC,qBAAY,EAAChB,GAAG,EAAEC,MAAM,CAAC;EAExD,IAAIgB,KAAK;EACT,CAAC;IAAEhB,MAAM;IAAEG,KAAK,EAAEa;EAAM,CAAC,GAAG,IAAAR,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIiB,KAAK;EACT,CAAC;IAAEjB,MAAM;IAAEG,KAAK,EAAEc;EAAM,CAAC,GAAG,IAAAT,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAElD,IAAIkB,UAAU;EACd,CAAC;IAAElB,MAAM;IAAEG,KAAK,EAAEe;EAAW,CAAC,GAAG,IAAAV,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAEvD,IAAImB,WAAW;EACf,CAAC;IAAEnB,MAAM;IAAEG,KAAK,EAAEgB;EAAY,CAAC,GAAG,IAAAX,kBAAS,EAACT,GAAG,EAAEC,MAAM,CAAC;EAExD,OAAO,IAAIoB,eAAM,CAAC,IAAIC,oBAAa,CAAC;IAClCC,SAAS,EAAEb,aAAa;IACxBG,UAAU,EAAEA,UAAU;IACtBE,QAAQ,EAAEA,QAAQ;IAClBS,WAAW,EAAE;MACXP,KAAK,EAAEA,KAAK;MACZC,KAAK,EAAEA,KAAK;MACZC,UAAU,EAAEA,UAAU;MACtBC,WAAW,EAAEA;IACf;EACF,CAAC,CAAC,EAAEnB,MAAM,CAAC;AACb;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc5B,cAAc;AAC7B6B,MAAM,CAACF,OAAO,GAAG3B,cAAc","ignoreList":[]}
@@ -9,7 +9,7 @@ var iconv = _interopRequireWildcard(require("iconv-lite"));
9
9
  var _valueParser = require("../value-parser");
10
10
  var _helpers = require("./helpers");
11
11
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
13
  // s2.2.7.13 (introduced in TDS 7.3.B)
14
14
 
15
15
  async function nbcRowParser(parser) {
@@ -101,4 +101,4 @@ async function nbcRowParser(parser) {
101
101
  }
102
102
  var _default = exports.default = nbcRowParser;
103
103
  module.exports = nbcRowParser;
104
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiaWNvbnYiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92YWx1ZVBhcnNlciIsIl9oZWxwZXJzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwibmJjUm93UGFyc2VyIiwicGFyc2VyIiwiY29sTWV0YWRhdGEiLCJjb2x1bW5zIiwiYml0bWFwIiwiYml0bWFwQnl0ZUxlbmd0aCIsIk1hdGgiLCJjZWlsIiwibGVuZ3RoIiwiYnVmZmVyIiwicG9zaXRpb24iLCJ3YWl0Rm9yQ2h1bmsiLCJieXRlcyIsInNsaWNlIiwibGVuIiwiYnl0ZSIsInB1c2giLCJtZXRhZGF0YSIsInZhbHVlIiwiaXNQTFBTdHJlYW0iLCJjaHVua3MiLCJyZWFkUExQU3RyZWFtIiwidHlwZSIsIm5hbWUiLCJCdWZmZXIiLCJjb25jYXQiLCJ0b1N0cmluZyIsImRlY29kZSIsImNvbGxhdGlvbiIsImNvZGVwYWdlIiwicmVzdWx0IiwicmVhZFZhbHVlIiwib3B0aW9ucyIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9mZnNldCIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1uc01hcCIsImNyZWF0ZSIsImZvckVhY2giLCJjb2x1bW4iLCJjb2xOYW1lIiwiTkJDUm93VG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vbmJjcm93LXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTMgKGludHJvZHVjZWQgaW4gVERTIDcuMy5CKVxuXG5pbXBvcnQgUGFyc2VyIGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyB0eXBlIENvbHVtbk1ldGFkYXRhIH0gZnJvbSAnLi9jb2xtZXRhZGF0YS10b2tlbi1wYXJzZXInO1xuXG5pbXBvcnQgeyBOQkNSb3dUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0ICogYXMgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmltcG9ydCB7IGlzUExQU3RyZWFtLCByZWFkUExQU3RyZWFtLCByZWFkVmFsdWUgfSBmcm9tICcuLi92YWx1ZS1wYXJzZXInO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIENvbHVtbiB7XG4gIHZhbHVlOiB1bmtub3duO1xuICBtZXRhZGF0YTogQ29sdW1uTWV0YWRhdGE7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5iY1Jvd1BhcnNlcihwYXJzZXI6IFBhcnNlcik6IFByb21pc2U8TkJDUm93VG9rZW4+IHtcbiAgY29uc3QgY29sTWV0YWRhdGEgPSBwYXJzZXIuY29sTWV0YWRhdGE7XG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gW107XG4gIGNvbnN0IGJpdG1hcDogYm9vbGVhbltdID0gW107XG4gIGNvbnN0IGJpdG1hcEJ5dGVMZW5ndGggPSBNYXRoLmNlaWwoY29sTWV0YWRhdGEubGVuZ3RoIC8gOCk7XG5cbiAgd2hpbGUgKHBhcnNlci5idWZmZXIubGVuZ3RoIC0gcGFyc2VyLnBvc2l0aW9uIDwgYml0bWFwQnl0ZUxlbmd0aCkge1xuICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgfVxuXG4gIGNvbnN0IGJ5dGVzID0gcGFyc2VyLmJ1ZmZlci5zbGljZShwYXJzZXIucG9zaXRpb24sIHBhcnNlci5wb3NpdGlvbiArIGJpdG1hcEJ5dGVMZW5ndGgpO1xuICBwYXJzZXIucG9zaXRpb24gKz0gYml0bWFwQnl0ZUxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYnl0ZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gYnl0ZXNbaV07XG5cbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbE1ldGFkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBjb2xNZXRhZGF0YVtpXTtcbiAgICBpZiAoYml0bWFwW2ldKSB7XG4gICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogbnVsbCwgbWV0YWRhdGEgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGlzUExQU3RyZWFtKG1ldGFkYXRhKSkge1xuICAgICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCByZWFkUExQU3RyZWFtKHBhcnNlcik7XG5cbiAgICAgICAgaWYgKGNodW5rcyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBjaHVua3MsIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ05WYXJDaGFyJyB8fCBtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdYbWwnKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHsgdmFsdWU6IEJ1ZmZlci5jb25jYXQoY2h1bmtzKS50b1N0cmluZygndWNzMicpLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJDaGFyJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBpY29udi5kZWNvZGUoQnVmZmVyLmNvbmNhdChjaHVua3MpLCBtZXRhZGF0YS5jb2xsYXRpb24/LmNvZGVwYWdlID8/ICd1dGY4JyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckJpbmFyeScgfHwgbWV0YWRhdGEudHlwZS5uYW1lID09PSAnVURUJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBCdWZmZXIuY29uY2F0KGNodW5rcyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlYWRWYWx1ZShwYXJzZXIuYnVmZmVyLCBwYXJzZXIucG9zaXRpb24sIG1ldGFkYXRhLCBwYXJzZXIub3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnNlci5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiByZXN1bHQudmFsdWUsIG1ldGFkYXRhIH0pO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAocGFyc2VyLm9wdGlvbnMudXNlQ29sdW1uTmFtZXMpIHtcbiAgICBjb25zdCBjb2x1bW5zTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbiB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb2xOYW1lID0gY29sdW1uLm1ldGFkYXRhLmNvbE5hbWU7XG4gICAgICBpZiAoY29sdW1uc01hcFtjb2xOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGNvbHVtbnNNYXBbY29sTmFtZV0gPSBjb2x1bW47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IE5CQ1Jvd1Rva2VuKGNvbHVtbnNNYXApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgTkJDUm93VG9rZW4oY29sdW1ucyk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBuYmNSb3dQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IG5iY1Jvd1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQStDLFNBQUFLLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFKLHdCQUFBSSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFB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
104
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiaWNvbnYiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl92YWx1ZVBhcnNlciIsIl9oZWxwZXJzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwibmJjUm93UGFyc2VyIiwicGFyc2VyIiwiY29sTWV0YWRhdGEiLCJjb2x1bW5zIiwiYml0bWFwIiwiYml0bWFwQnl0ZUxlbmd0aCIsIk1hdGgiLCJjZWlsIiwibGVuZ3RoIiwiYnVmZmVyIiwicG9zaXRpb24iLCJ3YWl0Rm9yQ2h1bmsiLCJieXRlcyIsInNsaWNlIiwibGVuIiwiYnl0ZSIsInB1c2giLCJtZXRhZGF0YSIsInZhbHVlIiwiaXNQTFBTdHJlYW0iLCJjaHVua3MiLCJyZWFkUExQU3RyZWFtIiwidHlwZSIsIm5hbWUiLCJCdWZmZXIiLCJjb25jYXQiLCJ0b1N0cmluZyIsImRlY29kZSIsImNvbGxhdGlvbiIsImNvZGVwYWdlIiwicmVzdWx0IiwicmVhZFZhbHVlIiwib3B0aW9ucyIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9mZnNldCIsInVzZUNvbHVtbk5hbWVzIiwiY29sdW1uc01hcCIsImNyZWF0ZSIsImZvckVhY2giLCJjb2x1bW4iLCJjb2xOYW1lIiwiTkJDUm93VG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vbmJjcm93LXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzMi4yLjcuMTMgKGludHJvZHVjZWQgaW4gVERTIDcuMy5CKVxuXG5pbXBvcnQgUGFyc2VyIGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyB0eXBlIENvbHVtbk1ldGFkYXRhIH0gZnJvbSAnLi9jb2xtZXRhZGF0YS10b2tlbi1wYXJzZXInO1xuXG5pbXBvcnQgeyBOQkNSb3dUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0ICogYXMgaWNvbnYgZnJvbSAnaWNvbnYtbGl0ZSc7XG5cbmltcG9ydCB7IGlzUExQU3RyZWFtLCByZWFkUExQU3RyZWFtLCByZWFkVmFsdWUgfSBmcm9tICcuLi92YWx1ZS1wYXJzZXInO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW50ZXJmYWNlIENvbHVtbiB7XG4gIHZhbHVlOiB1bmtub3duO1xuICBtZXRhZGF0YTogQ29sdW1uTWV0YWRhdGE7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIG5iY1Jvd1BhcnNlcihwYXJzZXI6IFBhcnNlcik6IFByb21pc2U8TkJDUm93VG9rZW4+IHtcbiAgY29uc3QgY29sTWV0YWRhdGEgPSBwYXJzZXIuY29sTWV0YWRhdGE7XG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbltdID0gW107XG4gIGNvbnN0IGJpdG1hcDogYm9vbGVhbltdID0gW107XG4gIGNvbnN0IGJpdG1hcEJ5dGVMZW5ndGggPSBNYXRoLmNlaWwoY29sTWV0YWRhdGEubGVuZ3RoIC8gOCk7XG5cbiAgd2hpbGUgKHBhcnNlci5idWZmZXIubGVuZ3RoIC0gcGFyc2VyLnBvc2l0aW9uIDwgYml0bWFwQnl0ZUxlbmd0aCkge1xuICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgfVxuXG4gIGNvbnN0IGJ5dGVzID0gcGFyc2VyLmJ1ZmZlci5zbGljZShwYXJzZXIucG9zaXRpb24sIHBhcnNlci5wb3NpdGlvbiArIGJpdG1hcEJ5dGVMZW5ndGgpO1xuICBwYXJzZXIucG9zaXRpb24gKz0gYml0bWFwQnl0ZUxlbmd0aDtcblxuICBmb3IgKGxldCBpID0gMCwgbGVuID0gYnl0ZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjb25zdCBieXRlID0gYnl0ZXNbaV07XG5cbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gICAgYml0bWFwLnB1c2goYnl0ZSAmIDBiMTAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwID8gdHJ1ZSA6IGZhbHNlKTtcbiAgICBiaXRtYXAucHVzaChieXRlICYgMGIxMDAwMDAwMCA/IHRydWUgOiBmYWxzZSk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbE1ldGFkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgbWV0YWRhdGEgPSBjb2xNZXRhZGF0YVtpXTtcbiAgICBpZiAoYml0bWFwW2ldKSB7XG4gICAgICBjb2x1bW5zLnB1c2goeyB2YWx1ZTogbnVsbCwgbWV0YWRhdGEgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgaWYgKGlzUExQU3RyZWFtKG1ldGFkYXRhKSkge1xuICAgICAgICBjb25zdCBjaHVua3MgPSBhd2FpdCByZWFkUExQU3RyZWFtKHBhcnNlcik7XG5cbiAgICAgICAgaWYgKGNodW5rcyA9PT0gbnVsbCkge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBjaHVua3MsIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ05WYXJDaGFyJyB8fCBtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdYbWwnKSB7XG4gICAgICAgICAgY29sdW1ucy5wdXNoKHsgdmFsdWU6IEJ1ZmZlci5jb25jYXQoY2h1bmtzKS50b1N0cmluZygndWNzMicpLCBtZXRhZGF0YSB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRhZGF0YS50eXBlLm5hbWUgPT09ICdWYXJDaGFyJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBpY29udi5kZWNvZGUoQnVmZmVyLmNvbmNhdChjaHVua3MpLCBtZXRhZGF0YS5jb2xsYXRpb24/LmNvZGVwYWdlID8/ICd1dGY4JyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGFkYXRhLnR5cGUubmFtZSA9PT0gJ1ZhckJpbmFyeScgfHwgbWV0YWRhdGEudHlwZS5uYW1lID09PSAnVURUJykge1xuICAgICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiBCdWZmZXIuY29uY2F0KGNodW5rcyksIG1ldGFkYXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlYWRWYWx1ZShwYXJzZXIuYnVmZmVyLCBwYXJzZXIucG9zaXRpb24sIG1ldGFkYXRhLCBwYXJzZXIub3B0aW9ucyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgICAgIGF3YWl0IHBhcnNlci53YWl0Rm9yQ2h1bmsoKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhcnNlci5wb3NpdGlvbiA9IHJlc3VsdC5vZmZzZXQ7XG4gICAgICAgIGNvbHVtbnMucHVzaCh7IHZhbHVlOiByZXN1bHQudmFsdWUsIG1ldGFkYXRhIH0pO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAocGFyc2VyLm9wdGlvbnMudXNlQ29sdW1uTmFtZXMpIHtcbiAgICBjb25zdCBjb2x1bW5zTWFwOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbiB9ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb2xOYW1lID0gY29sdW1uLm1ldGFkYXRhLmNvbE5hbWU7XG4gICAgICBpZiAoY29sdW1uc01hcFtjb2xOYW1lXSA9PSBudWxsKSB7XG4gICAgICAgIGNvbHVtbnNNYXBbY29sTmFtZV0gPSBjb2x1bW47XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IE5CQ1Jvd1Rva2VuKGNvbHVtbnNNYXApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgTkJDUm93VG9rZW4oY29sdW1ucyk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVmYXVsdCBuYmNSb3dQYXJzZXI7XG5tb2R1bGUuZXhwb3J0cyA9IG5iY1Jvd1BhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsWUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBSixPQUFBO0FBQStDLFNBQUFLLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFKLHdCQUFBSSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"nbcrow-token-parser.js","names":["_token","require","iconv","_interopRequireWildcard","_valueParser","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","nbcRowParser","parser","colMetadata","columns","bitmap","bitmapByteLength","Math","ceil","length","buffer","position","waitForChunk","bytes","slice","len","byte","push","metadata","value","isPLPStream","chunks","readPLPStream","type","name","Buffer","concat","toString","decode","collation","codepage","result","readValue","options","err","NotEnoughDataError","offset","useColumnNames","columnsMap","create","forEach","column","colName","NBCRowToken","_default","exports","module"],"sources":["../../src/token/nbcrow-token-parser.ts"],"sourcesContent":["// s2.2.7.13 (introduced in TDS 7.3.B)\n\nimport Parser from './stream-parser';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\n\nimport { NBCRowToken } from './token';\nimport * as iconv from 'iconv-lite';\n\nimport { isPLPStream, readPLPStream, readValue } from '../value-parser';\nimport { NotEnoughDataError } from './helpers';\n\ninterface Column {\n value: unknown;\n metadata: ColumnMetadata;\n}\n\nasync function nbcRowParser(parser: Parser): Promise<NBCRowToken> {\n const colMetadata = parser.colMetadata;\n const columns: Column[] = [];\n const bitmap: boolean[] = [];\n const bitmapByteLength = Math.ceil(colMetadata.length / 8);\n\n while (parser.buffer.length - parser.position < bitmapByteLength) {\n await parser.waitForChunk();\n }\n\n const bytes = parser.buffer.slice(parser.position, parser.position + bitmapByteLength);\n parser.position += bitmapByteLength;\n\n for (let i = 0, len = bytes.length; i < len; i++) {\n const byte = bytes[i];\n\n bitmap.push(byte & 0b1 ? true : false);\n bitmap.push(byte & 0b10 ? true : false);\n bitmap.push(byte & 0b100 ? true : false);\n bitmap.push(byte & 0b1000 ? true : false);\n bitmap.push(byte & 0b10000 ? true : false);\n bitmap.push(byte & 0b100000 ? true : false);\n bitmap.push(byte & 0b1000000 ? true : false);\n bitmap.push(byte & 0b10000000 ? true : false);\n }\n\n for (let i = 0; i < colMetadata.length; i++) {\n const metadata = colMetadata[i];\n if (bitmap[i]) {\n columns.push({ value: null, metadata });\n continue;\n }\n\n while (true) {\n if (isPLPStream(metadata)) {\n const chunks = await readPLPStream(parser);\n\n if (chunks === null) {\n columns.push({ value: chunks, metadata });\n } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {\n columns.push({ value: Buffer.concat(chunks).toString('ucs2'), metadata });\n } else if (metadata.type.name === 'VarChar') {\n columns.push({ value: iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8'), metadata });\n } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {\n columns.push({ value: Buffer.concat(chunks), metadata });\n }\n } else {\n let result;\n try {\n result = readValue(parser.buffer, parser.position, metadata, parser.options);\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = result.offset;\n columns.push({ value: result.value, metadata });\n }\n\n break;\n }\n }\n\n if (parser.options.useColumnNames) {\n const columnsMap: { [key: string]: Column } = Object.create(null);\n\n columns.forEach((column) => {\n const colName = column.metadata.colName;\n if (columnsMap[colName] == null) {\n columnsMap[colName] = column;\n }\n });\n\n return new NBCRowToken(columnsMap);\n } else {\n return new NBCRowToken(columns);\n }\n}\n\n\nexport default nbcRowParser;\nmodule.exports = nbcRowParser;\n"],"mappings":"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"}
1
+ {"version":3,"file":"nbcrow-token-parser.js","names":["_token","require","iconv","_interopRequireWildcard","_valueParser","_helpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","nbcRowParser","parser","colMetadata","columns","bitmap","bitmapByteLength","Math","ceil","length","buffer","position","waitForChunk","bytes","slice","len","byte","push","metadata","value","isPLPStream","chunks","readPLPStream","type","name","Buffer","concat","toString","decode","collation","codepage","result","readValue","options","err","NotEnoughDataError","offset","useColumnNames","columnsMap","create","forEach","column","colName","NBCRowToken","_default","exports","module"],"sources":["../../src/token/nbcrow-token-parser.ts"],"sourcesContent":["// s2.2.7.13 (introduced in TDS 7.3.B)\n\nimport Parser from './stream-parser';\nimport { type ColumnMetadata } from './colmetadata-token-parser';\n\nimport { NBCRowToken } from './token';\nimport * as iconv from 'iconv-lite';\n\nimport { isPLPStream, readPLPStream, readValue } from '../value-parser';\nimport { NotEnoughDataError } from './helpers';\n\ninterface Column {\n value: unknown;\n metadata: ColumnMetadata;\n}\n\nasync function nbcRowParser(parser: Parser): Promise<NBCRowToken> {\n const colMetadata = parser.colMetadata;\n const columns: Column[] = [];\n const bitmap: boolean[] = [];\n const bitmapByteLength = Math.ceil(colMetadata.length / 8);\n\n while (parser.buffer.length - parser.position < bitmapByteLength) {\n await parser.waitForChunk();\n }\n\n const bytes = parser.buffer.slice(parser.position, parser.position + bitmapByteLength);\n parser.position += bitmapByteLength;\n\n for (let i = 0, len = bytes.length; i < len; i++) {\n const byte = bytes[i];\n\n bitmap.push(byte & 0b1 ? true : false);\n bitmap.push(byte & 0b10 ? true : false);\n bitmap.push(byte & 0b100 ? true : false);\n bitmap.push(byte & 0b1000 ? true : false);\n bitmap.push(byte & 0b10000 ? true : false);\n bitmap.push(byte & 0b100000 ? true : false);\n bitmap.push(byte & 0b1000000 ? true : false);\n bitmap.push(byte & 0b10000000 ? true : false);\n }\n\n for (let i = 0; i < colMetadata.length; i++) {\n const metadata = colMetadata[i];\n if (bitmap[i]) {\n columns.push({ value: null, metadata });\n continue;\n }\n\n while (true) {\n if (isPLPStream(metadata)) {\n const chunks = await readPLPStream(parser);\n\n if (chunks === null) {\n columns.push({ value: chunks, metadata });\n } else if (metadata.type.name === 'NVarChar' || metadata.type.name === 'Xml') {\n columns.push({ value: Buffer.concat(chunks).toString('ucs2'), metadata });\n } else if (metadata.type.name === 'VarChar') {\n columns.push({ value: iconv.decode(Buffer.concat(chunks), metadata.collation?.codepage ?? 'utf8'), metadata });\n } else if (metadata.type.name === 'VarBinary' || metadata.type.name === 'UDT') {\n columns.push({ value: Buffer.concat(chunks), metadata });\n }\n } else {\n let result;\n try {\n result = readValue(parser.buffer, parser.position, metadata, parser.options);\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = result.offset;\n columns.push({ value: result.value, metadata });\n }\n\n break;\n }\n }\n\n if (parser.options.useColumnNames) {\n const columnsMap: { [key: string]: Column } = Object.create(null);\n\n columns.forEach((column) => {\n const colName = column.metadata.colName;\n if (columnsMap[colName] == null) {\n columnsMap[colName] = column;\n }\n });\n\n return new NBCRowToken(columnsMap);\n } else {\n return new NBCRowToken(columns);\n }\n}\n\n\nexport default nbcRowParser;\nmodule.exports = nbcRowParser;\n"],"mappings":"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","ignoreList":[]}
@@ -31,4 +31,4 @@ function orderParser(buf, offset, _options) {
31
31
  }
32
32
  var _default = exports.default = orderParser;
33
33
  module.exports = orderParser;
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2hlbHBlcnMiLCJvcmRlclBhcnNlciIsImJ1ZiIsIm9mZnNldCIsIl9vcHRpb25zIiwidG9rZW5MZW5ndGgiLCJ2YWx1ZSIsInJlYWRVSW50MTZMRSIsImxlbmd0aCIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9yZGVyQ29sdW1ucyIsImkiLCJjb2x1bW4iLCJwdXNoIiwiUmVzdWx0IiwiT3JkZXJUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vb3JkZXItdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHMyLjIuNy4xNFxuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgT3JkZXJUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yLCByZWFkVUludDE2TEUsIFJlc3VsdCB9IGZyb20gJy4vaGVscGVycyc7XG5cbmZ1bmN0aW9uIG9yZGVyUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8T3JkZXJUb2tlbj4ge1xuICAvLyBsZW5ndGhcbiAgbGV0IHRva2VuTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0b2tlbkxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyB0b2tlbkxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgdG9rZW5MZW5ndGgpO1xuICB9XG5cbiAgY29uc3Qgb3JkZXJDb2x1bW5zOiBudW1iZXJbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5MZW5ndGg7IGkgKz0gMikge1xuICAgIGxldCBjb2x1bW47XG4gICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sdW1uIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICAgIG9yZGVyQ29sdW1ucy5wdXNoKGNvbHVtbik7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgT3JkZXJUb2tlbihvcmRlckNvbHVtbnMpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBvcmRlclBhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gb3JkZXJQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUpBOztBQU1BLFNBQVNFLFdBQVdBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxRQUF1QixFQUFzQjtFQUM3RjtFQUNBLElBQUlDLFdBQVc7RUFDZixDQUFDO0lBQUVGLE1BQU07SUFBRUcsS0FBSyxFQUFFRDtFQUFZLENBQUMsR0FBRyxJQUFBRSxxQkFBWSxFQUFDTCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUUzRCxJQUFJRCxHQUFHLENBQUNNLE1BQU0sR0FBR0wsTUFBTSxHQUFHRSxXQUFXLEVBQUU7SUFDckMsTUFBTSxJQUFJSSwyQkFBa0IsQ0FBQ04sTUFBTSxHQUFHRSxXQUFXLENBQUM7RUFDcEQ7RUFFQSxNQUFNSyxZQUFzQixHQUFHLEVBQUU7RUFFakMsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdOLFdBQVcsRUFBRU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUN2QyxJQUFJQyxNQUFNO0lBQ1YsQ0FBQztNQUFFVCxNQUFNO01BQUVHLEtBQUssRUFBRU07SUFBTyxDQUFDLEdBQUcsSUFBQUwscUJBQVksRUFBQ0wsR0FBRyxFQUFFQyxNQUFNLENBQUM7SUFFdERPLFlBQVksQ0FBQ0csSUFBSSxDQUFDRCxNQUFNLENBQUM7RUFDM0I7RUFFQSxPQUFPLElBQUlFLGVBQU0sQ0FBQyxJQUFJQyxpQkFBVSxDQUFDTCxZQUFZLENBQUMsRUFBRVAsTUFBTSxDQUFDO0FBQ3pEO0FBQUMsSUFBQWEsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFY2pCLFdBQVc7QUFDMUJrQixNQUFNLENBQUNGLE9BQU8sR0FBR2hCLFdBQVcifQ==
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2hlbHBlcnMiLCJvcmRlclBhcnNlciIsImJ1ZiIsIm9mZnNldCIsIl9vcHRpb25zIiwidG9rZW5MZW5ndGgiLCJ2YWx1ZSIsInJlYWRVSW50MTZMRSIsImxlbmd0aCIsIk5vdEVub3VnaERhdGFFcnJvciIsIm9yZGVyQ29sdW1ucyIsImkiLCJjb2x1bW4iLCJwdXNoIiwiUmVzdWx0IiwiT3JkZXJUb2tlbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vb3JkZXItdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHMyLjIuNy4xNFxuaW1wb3J0IHsgdHlwZSBQYXJzZXJPcHRpb25zIH0gZnJvbSAnLi9zdHJlYW0tcGFyc2VyJztcblxuaW1wb3J0IHsgT3JkZXJUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yLCByZWFkVUludDE2TEUsIFJlc3VsdCB9IGZyb20gJy4vaGVscGVycyc7XG5cbmZ1bmN0aW9uIG9yZGVyUGFyc2VyKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgX29wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8T3JkZXJUb2tlbj4ge1xuICAvLyBsZW5ndGhcbiAgbGV0IHRva2VuTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0b2tlbkxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyB0b2tlbkxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgdG9rZW5MZW5ndGgpO1xuICB9XG5cbiAgY29uc3Qgb3JkZXJDb2x1bW5zOiBudW1iZXJbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5MZW5ndGg7IGkgKz0gMikge1xuICAgIGxldCBjb2x1bW47XG4gICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sdW1uIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICAgIG9yZGVyQ29sdW1ucy5wdXNoKGNvbHVtbik7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgT3JkZXJUb2tlbihvcmRlckNvbHVtbnMpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBvcmRlclBhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gb3JkZXJQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUpBOztBQU1BLFNBQVNFLFdBQVdBLENBQUNDLEdBQVcsRUFBRUMsTUFBYyxFQUFFQyxRQUF1QixFQUFzQjtFQUM3RjtFQUNBLElBQUlDLFdBQVc7RUFDZixDQUFDO0lBQUVGLE1BQU07SUFBRUcsS0FBSyxFQUFFRDtFQUFZLENBQUMsR0FBRyxJQUFBRSxxQkFBWSxFQUFDTCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztFQUUzRCxJQUFJRCxHQUFHLENBQUNNLE1BQU0sR0FBR0wsTUFBTSxHQUFHRSxXQUFXLEVBQUU7SUFDckMsTUFBTSxJQUFJSSwyQkFBa0IsQ0FBQ04sTUFBTSxHQUFHRSxXQUFXLENBQUM7RUFDcEQ7RUFFQSxNQUFNSyxZQUFzQixHQUFHLEVBQUU7RUFFakMsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdOLFdBQVcsRUFBRU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUN2QyxJQUFJQyxNQUFNO0lBQ1YsQ0FBQztNQUFFVCxNQUFNO01BQUVHLEtBQUssRUFBRU07SUFBTyxDQUFDLEdBQUcsSUFBQUwscUJBQVksRUFBQ0wsR0FBRyxFQUFFQyxNQUFNLENBQUM7SUFFdERPLFlBQVksQ0FBQ0csSUFBSSxDQUFDRCxNQUFNLENBQUM7RUFDM0I7RUFFQSxPQUFPLElBQUlFLGVBQU0sQ0FBQyxJQUFJQyxpQkFBVSxDQUFDTCxZQUFZLENBQUMsRUFBRVAsTUFBTSxDQUFDO0FBQ3pEO0FBQUMsSUFBQWEsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUEsR0FFY2pCLFdBQVc7QUFDMUJrQixNQUFNLENBQUNGLE9BQU8sR0FBR2hCLFdBQVciLCJpZ25vcmVMaXN0IjpbXX0=