tedious 20.1.0 → 20.2.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 (48) hide show
  1. package/lib/all-headers.js +4 -4
  2. package/lib/all-headers.js.map +1 -1
  3. package/lib/bulk-load.js +3 -3
  4. package/lib/bulk-load.js.map +1 -1
  5. package/lib/data-types/bigint.js +2 -2
  6. package/lib/data-types/bigint.js.map +1 -1
  7. package/lib/data-types/datetime2.js +2 -2
  8. package/lib/data-types/datetime2.js.map +1 -1
  9. package/lib/data-types/datetimeoffset.js +2 -2
  10. package/lib/data-types/datetimeoffset.js.map +1 -1
  11. package/lib/data-types/time.js +2 -2
  12. package/lib/data-types/time.js.map +1 -1
  13. package/lib/data-types/tvp.js +5 -6
  14. package/lib/data-types/tvp.js.map +1 -1
  15. package/lib/data-types/varbinary.js +1 -3
  16. package/lib/data-types/varbinary.js.map +1 -1
  17. package/lib/ntlm-payload.js +7 -9
  18. package/lib/ntlm-payload.js.map +1 -1
  19. package/lib/prelogin-payload.js +8 -9
  20. package/lib/prelogin-payload.js.map +1 -1
  21. package/lib/request.d.ts +33 -0
  22. package/lib/request.js +20 -1
  23. package/lib/request.js.map +1 -1
  24. package/lib/rpcrequest-payload.js +6 -6
  25. package/lib/rpcrequest-payload.js.map +1 -1
  26. package/lib/sqlbatch-payload.js +2 -2
  27. package/lib/sqlbatch-payload.js.map +1 -1
  28. package/lib/token/colinfo-token-parser.d.ts +5 -0
  29. package/lib/token/colinfo-token-parser.js +68 -0
  30. package/lib/token/colinfo-token-parser.js.map +1 -0
  31. package/lib/token/handler.d.ts +5 -1
  32. package/lib/token/handler.js +17 -1
  33. package/lib/token/handler.js.map +1 -1
  34. package/lib/token/stream-parser.d.ts +3 -1
  35. package/lib/token/stream-parser.js +41 -1
  36. package/lib/token/stream-parser.js.map +1 -1
  37. package/lib/token/tabname-token-parser.d.ts +5 -0
  38. package/lib/token/tabname-token-parser.js +51 -0
  39. package/lib/token/tabname-token-parser.js.map +1 -0
  40. package/lib/token/token.d.ts +47 -0
  41. package/lib/token/token.js +22 -2
  42. package/lib/token/token.js.map +1 -1
  43. package/lib/tracking-buffer/writable-tracking-buffer.d.ts +58 -21
  44. package/lib/tracking-buffer/writable-tracking-buffer.js +187 -170
  45. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -1
  46. package/lib/transaction.js +5 -5
  47. package/lib/transaction.js.map +1 -1
  48. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","names":["_events","require","_errors","_types","Request","EventEmitter","on","event","listener","emit","args","constructor","sqlTextOrProcedure","callback","options","parameters","parametersByName","preparing","handle","undefined","canceled","paused","error","connection","timeout","userCallback","statementColumnEncryptionSetting","SQLServerStatementColumnEncryptionSetting","UseConnectionSetting","cryptoMetadataLoaded","err","rowCount","rows","addParameter","name","type","value","output","length","precision","scale","parameter","push","addOutputParameter","makeParamsParameter","paramsParameter","i","len","declaration","validateParameters","collation","validate","RequestError","message","cause","pause","resume","cancel","setTimeout","_default","exports","default","module"],"sources":["../src/request.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { type Parameter, type DataType } from './data-type';\nimport { RequestError } from './errors';\n\nimport Connection from './connection';\nimport { type Metadata } from './metadata-parser';\nimport { SQLServerStatementColumnEncryptionSetting } from './always-encrypted/types';\nimport { type ColumnMetadata } from './token/colmetadata-token-parser';\nimport { Collation } from './collation';\n\n/**\n * The callback is called when the request has completed, either successfully or with an error.\n * If an error occurs during execution of the statement(s), then `err` will describe the error.\n *\n * As only one request at a time may be executed on a connection, another request should not\n * be initiated until this callback is called.\n *\n * This callback is called before `requestCompleted` is emitted.\n */\ntype CompletionCallback =\n /**\n * @param error\n * If an error occurred, an error object.\n *\n * @param rowCount\n * The number of rows emitted as result of executing the SQL statement.\n *\n * @param rows\n * Rows as a result of executing the SQL statement.\n * Will only be available if [[ConnectionOptions.rowCollectionOnRequestCompletion]] is `true`.\n */\n // TODO: Figure out how to type the `rows` parameter here.\n (error: Error | null | undefined, rowCount?: number, rows?: any) => void;\n\nexport interface ParameterOptions {\n output?: boolean;\n length?: number;\n precision?: number;\n scale?: number;\n}\n\ninterface RequestOptions {\n statementColumnEncryptionSetting?: SQLServerStatementColumnEncryptionSetting;\n}\n\n/**\n * ```js\n * const { Request } = require('tedious');\n * const request = new Request(\"select 42, 'hello world'\", (err, rowCount) => {\n * // Request completion callback...\n * });\n * connection.execSql(request);\n * ```\n */\nclass Request extends EventEmitter {\n /**\n * @private\n */\n declare sqlTextOrProcedure: string | undefined;\n /**\n * @private\n */\n declare parameters: Parameter[];\n /**\n * @private\n */\n declare parametersByName: { [key: string]: Parameter };\n /**\n * @private\n */\n declare preparing: boolean;\n /**\n * @private\n */\n declare canceled: boolean;\n /**\n * @private\n */\n declare paused: boolean;\n /**\n * @private\n */\n declare userCallback: CompletionCallback;\n /**\n * @private\n */\n declare handle: number | undefined;\n /**\n * @private\n */\n declare error: Error | undefined;\n /**\n * @private\n */\n declare connection: Connection | undefined;\n /**\n * @private\n */\n declare timeout: number | undefined;\n\n /**\n * @private\n */\n declare rows?: Array<any>;\n /**\n * @private\n */\n declare rst?: Array<any>;\n /**\n * @private\n */\n declare rowCount?: number;\n\n /**\n * @private\n */\n declare callback: CompletionCallback;\n\n\n declare shouldHonorAE?: boolean;\n declare statementColumnEncryptionSetting: SQLServerStatementColumnEncryptionSetting;\n declare cryptoMetadataLoaded: boolean;\n\n /**\n * This event, describing result set columns, will be emitted before row\n * events are emitted. This event may be emitted multiple times when more\n * than one recordset is produced by the statement.\n *\n * An array like object, where the columns can be accessed either by index\n * or name. Columns with a name that is an integer are not accessible by name,\n * as it would be interpreted as an array index.\n */\n on(\n event: 'columnMetadata',\n listener:\n (columns: ColumnMetadata[] | { [key: string]: ColumnMetadata }) => void\n ): this\n\n /**\n * The request has been prepared and can be used in subsequent calls to execute and unprepare.\n */\n on(event: 'prepared', listener: () => void): this\n\n /**\n * The request encountered an error and has not been prepared.\n */\n on(event: 'error', listener: (err: Error) => void): this\n\n /**\n * A row resulting from execution of the SQL statement.\n */\n on(\n event: 'row',\n listener:\n /**\n * An array or object (depends on [[ConnectionOptions.useColumnNames]]), where the columns can be accessed by index/name.\n * Each column has two properties, `metadata` and `value`:\n *\n * * `metadata`\n *\n * The same data that is exposed in the `columnMetadata` event.\n *\n * * `value`\n *\n * The column's value. It will be `null` for a `NULL`.\n * If there are multiple columns with the same name, then this will be an array of the values.\n */\n (columns: any) => void\n ): this\n\n /**\n * All rows from a result set have been provided (through `row` events).\n *\n * This token is used to indicate the completion of a SQL statement.\n * As multiple SQL statements can be sent to the server in a single SQL batch, multiple `done` can be generated.\n * An `done` event is emitted for each SQL statement in the SQL batch except variable declarations.\n * For execution of SQL statements within stored procedures, `doneProc` and `doneInProc` events are used in place of `done`.\n *\n * If you are using [[Connection.execSql]] then SQL server may treat the multiple calls with the same query as a stored procedure.\n * When this occurs, the `doneProc` and `doneInProc` events may be emitted instead. You must handle both events to ensure complete coverage.\n */\n on(\n event: 'done',\n listener:\n /**\n * @param rowCount\n * The number of result rows. May be `undefined` if not available.\n *\n * @param more\n * If there are more results to come (probably because multiple statements are being executed), then `true`.\n *\n * @param rst\n * Rows as a result of executing the SQL statement.\n * Will only be available if Connection's [[ConnectionOptions.rowCollectionOnDone]] is `true`.\n */\n (rowCount: number | undefined, more: boolean, rst?: any[]) => void\n ): this\n\n /**\n * `request.on('doneInProc', function (rowCount, more, rows) { });`\n *\n * Indicates the completion status of a SQL statement within a stored procedure. All rows from a statement\n * in a stored procedure have been provided (through `row` events).\n *\n * This event may also occur when executing multiple calls with the same query using [[execSql]].\n */\n on(\n event: 'doneInProc',\n listener:\n /**\n * @param rowCount\n * The number of result rows. May be `undefined` if not available.\n *\n * @param more\n * If there are more results to come (probably because multiple statements are being executed), then `true`.\n *\n * @param rst\n * Rows as a result of executing the SQL statement.\n * Will only be available if Connection's [[ConnectionOptions.rowCollectionOnDone]] is `true`.\n */\n (rowCount: number | undefined, more: boolean, rst?: any[]) => void\n ): this\n\n /**\n * Indicates the completion status of a stored procedure. This is also generated for stored procedures\n * executed through SQL statements.\\\n * This event may also occur when executing multiple calls with the same query using [[execSql]].\n */\n on(\n event: 'doneProc',\n listener:\n /**\n * @param rowCount\n * The number of result rows. May be `undefined` if not available.\n *\n * @param more\n * If there are more results to come (probably because multiple statements are being executed), then `true`.\n *\n * @param rst\n * Rows as a result of executing the SQL statement.\n * Will only be available if Connection's [[ConnectionOptions.rowCollectionOnDone]] is `true`.\n */\n (rowCount: number | undefined, more: boolean, procReturnStatusValue: number, rst?: any[]) => void\n ): this\n\n /**\n * A value for an output parameter (that was added to the request with [[addOutputParameter]]).\n * See also `Using Parameters`.\n */\n on(\n event: 'returnValue',\n listener:\n /**\n * @param parameterName\n * The parameter name. (Does not start with '@'.)\n *\n * @param value\n * The parameter's output value.\n *\n * @param metadata\n * The same data that is exposed in the `columnMetadata` event.\n */\n (parameterName: string, value: unknown, metadata: Metadata) => void\n ): this\n\n /**\n * This event gives the columns by which data is ordered, if `ORDER BY` clause is executed in SQL Server.\n */\n on(\n event: 'order',\n listener:\n /**\n * @param orderColumns\n * An array of column numbers in the result set by which data is ordered.\n */\n (orderColumns: number[]) => void\n ): this\n\n on(event: 'requestCompleted', listener: () => void): this\n\n on(event: 'cancel', listener: () => void): this\n\n on(event: 'pause', listener: () => void): this\n\n on(event: 'resume', listener: () => void): this\n\n on(event: string | symbol, listener: (...args: any[]) => void) {\n return super.on(event, listener);\n }\n\n /**\n * @private\n */\n emit(event: 'columnMetadata', columns: ColumnMetadata[] | { [key: string]: ColumnMetadata }): boolean\n /**\n * @private\n */\n emit(event: 'prepared'): boolean\n /**\n * @private\n */\n emit(event: 'error', err: Error): boolean\n /**\n * @private\n */\n emit(event: 'row', columns: any): boolean\n /**\n * @private\n */\n emit(event: 'done', rowCount: number | undefined, more: boolean, rst?: any[]): boolean\n /**\n * @private\n */\n emit(event: 'doneInProc', rowCount: number | undefined, more: boolean, rst?: any[]): boolean\n /**\n * @private\n */\n emit(event: 'doneProc', rowCount: number | undefined, more: boolean, procReturnStatusValue: number, rst?: any[]): boolean\n /**\n * @private\n */\n emit(event: 'returnValue', parameterName: string, value: unknown, metadata: Metadata): boolean\n /**\n * @private\n */\n emit(event: 'requestCompleted'): boolean\n /**\n * @private\n */\n emit(event: 'cancel'): boolean\n /**\n * @private\n */\n emit(event: 'pause'): boolean\n /**\n * @private\n */\n emit(event: 'resume'): boolean\n /**\n * @private\n */\n emit(event: 'order', orderColumns: number[]): boolean\n emit(event: string | symbol, ...args: any[]) {\n return super.emit(event, ...args);\n }\n\n /**\n * @param sqlTextOrProcedure\n * The SQL statement to be executed\n *\n * @param callback\n * The callback to execute once the request has been fully completed.\n */\n constructor(sqlTextOrProcedure: string | undefined, callback: CompletionCallback, options?: RequestOptions) {\n super();\n\n this.sqlTextOrProcedure = sqlTextOrProcedure;\n this.parameters = [];\n this.parametersByName = {};\n this.preparing = false;\n this.handle = undefined;\n this.canceled = false;\n this.paused = false;\n this.error = undefined;\n this.connection = undefined;\n this.timeout = undefined;\n this.userCallback = callback;\n this.statementColumnEncryptionSetting = (options && options.statementColumnEncryptionSetting) || SQLServerStatementColumnEncryptionSetting.UseConnectionSetting;\n this.cryptoMetadataLoaded = false;\n this.callback = function(err: Error | undefined | null, rowCount?: number, rows?: any) {\n if (this.preparing) {\n this.preparing = false;\n if (err) {\n this.emit('error', err);\n } else {\n this.emit('prepared');\n }\n } else {\n this.userCallback(err, rowCount, rows);\n this.emit('requestCompleted');\n }\n };\n }\n\n /**\n * @param name\n * The parameter name. This should correspond to a parameter in the SQL,\n * or a parameter that a called procedure expects. The name should not start with `@`.\n *\n * @param type\n * One of the supported data types.\n *\n * @param value\n * The value that the parameter is to be given. The Javascript type of the\n * argument should match that documented for data types.\n *\n * @param options\n * Additional type options. Optional.\n */\n // TODO: `type` must be a valid TDS value type\n addParameter(name: string, type: DataType, value?: unknown, options?: Readonly<ParameterOptions> | null) {\n const { output = false, length, precision, scale } = options ?? {};\n\n const parameter: Parameter = {\n type: type,\n name: name,\n value: value,\n output: output,\n length: length,\n precision: precision,\n scale: scale\n };\n\n this.parameters.push(parameter);\n this.parametersByName[name] = parameter;\n }\n\n /**\n * @param name\n * The parameter name. This should correspond to a parameter in the SQL,\n * or a parameter that a called procedure expects.\n *\n * @param type\n * One of the supported data types.\n *\n * @param value\n * The value that the parameter is to be given. The Javascript type of the\n * argument should match that documented for data types\n *\n * @param options\n * Additional type options. Optional.\n */\n addOutputParameter(name: string, type: DataType, value?: unknown, options?: Readonly<ParameterOptions> | null) {\n this.addParameter(name, type, value, { ...options, output: true });\n }\n\n /**\n * @private\n */\n makeParamsParameter(parameters: Parameter[]) {\n let paramsParameter = '';\n for (let i = 0, len = parameters.length; i < len; i++) {\n const parameter = parameters[i];\n if (paramsParameter.length > 0) {\n paramsParameter += ', ';\n }\n paramsParameter += '@' + parameter.name + ' ';\n paramsParameter += parameter.type.declaration(parameter);\n if (parameter.output) {\n paramsParameter += ' OUTPUT';\n }\n }\n return paramsParameter;\n }\n\n /**\n * @private\n */\n validateParameters(collation: Collation | undefined) {\n for (let i = 0, len = this.parameters.length; i < len; i++) {\n const parameter = this.parameters[i];\n\n try {\n parameter.value = parameter.type.validate(parameter.value, collation);\n } catch (error: any) {\n throw new RequestError('Validation failed for parameter \\'' + parameter.name + '\\'. ' + error.message, 'EPARAM', { cause: error });\n }\n }\n }\n\n /**\n * Temporarily suspends the flow of data from the database. No more `row` events will be emitted until [[resume]] is called.\n * If this request is already in a paused state, calling [[pause]] has no effect.\n */\n pause() {\n if (this.paused) {\n return;\n }\n this.emit('pause');\n this.paused = true;\n }\n\n /**\n * Resumes the flow of data from the database.\n * If this request is not in a paused state, calling [[resume]] has no effect.\n */\n resume() {\n if (!this.paused) {\n return;\n }\n this.paused = false;\n this.emit('resume');\n }\n\n /**\n * Cancels a request while waiting for a server response.\n */\n cancel() {\n if (this.canceled) {\n return;\n }\n\n this.canceled = true;\n this.emit('cancel');\n }\n\n /**\n * Sets a timeout for this request.\n *\n * @param timeout\n * The number of milliseconds before the request is considered failed,\n * or `0` for no timeout. When no timeout is set for the request,\n * the [[ConnectionOptions.requestTimeout]] of the [[Connection]] is used.\n */\n setTimeout(timeout?: number) {\n this.timeout = timeout;\n }\n}\n\nexport default Request;\nmodule.exports = Request;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,OAAO,SAASC,oBAAY,CAAC;EACjC;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAGE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAGE;AACF;AACA;;EAQE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAOE;AACF;AACA;;EAGE;AACF;AACA;;EAGE;AACF;AACA;;EAoBE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAkBE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAkBE;AACF;AACA;AACA;AACA;;EAkBE;AACF;AACA;AACA;;EAiBE;AACF;AACA;;EAmBEC,EAAEA,CAACC,KAAsB,EAAEC,QAAkC,EAAE;IAC7D,OAAO,KAAK,CAACF,EAAE,CAACC,KAAK,EAAEC,QAAQ,CAAC;EAClC;;EAEA;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEEC,IAAIA,CAACF,KAAsB,EAAE,GAAGG,IAAW,EAAE;IAC3C,OAAO,KAAK,CAACD,IAAI,CAACF,KAAK,EAAE,GAAGG,IAAI,CAAC;EACnC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,WAAWA,CAACC,kBAAsC,EAAEC,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","ignoreList":[]}
1
+ {"version":3,"file":"request.js","names":["_events","require","_errors","_types","Request","EventEmitter","on","event","listener","emit","args","constructor","sqlTextOrProcedure","callback","options","parameters","parametersByName","preparing","handle","undefined","canceled","paused","error","connection","timeout","userCallback","statementColumnEncryptionSetting","SQLServerStatementColumnEncryptionSetting","UseConnectionSetting","cryptoMetadataLoaded","err","rowCount","rows","addParameter","name","type","value","output","length","precision","scale","parameter","push","addOutputParameter","makeParamsParameter","paramsParameter","i","len","declaration","validateParameters","collation","validate","RequestError","message","cause","pause","resume","cancel","setTimeout","_default","exports","default","module"],"sources":["../src/request.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { type Parameter, type DataType } from './data-type';\nimport { RequestError } from './errors';\n\nimport Connection from './connection';\nimport { type Metadata } from './metadata-parser';\nimport { SQLServerStatementColumnEncryptionSetting } from './always-encrypted/types';\nimport { type ColumnMetadata } from './token/colmetadata-token-parser';\nimport { type ColumnInfo } from './token/token';\nimport { Collation } from './collation';\n\n/**\n * The callback is called when the request has completed, either successfully or with an error.\n * If an error occurs during execution of the statement(s), then `err` will describe the error.\n *\n * As only one request at a time may be executed on a connection, another request should not\n * be initiated until this callback is called.\n *\n * This callback is called before `requestCompleted` is emitted.\n */\ntype CompletionCallback =\n /**\n * @param error\n * If an error occurred, an error object.\n *\n * @param rowCount\n * The number of rows emitted as result of executing the SQL statement.\n *\n * @param rows\n * Rows as a result of executing the SQL statement.\n * Will only be available if [[ConnectionOptions.rowCollectionOnRequestCompletion]] is `true`.\n */\n // TODO: Figure out how to type the `rows` parameter here.\n (error: Error | null | undefined, rowCount?: number, rows?: any) => void;\n\nexport interface ParameterOptions {\n output?: boolean;\n length?: number;\n precision?: number;\n scale?: number;\n}\n\ninterface RequestOptions {\n statementColumnEncryptionSetting?: SQLServerStatementColumnEncryptionSetting;\n}\n\n/**\n * ```js\n * const { Request } = require('tedious');\n * const request = new Request(\"select 42, 'hello world'\", (err, rowCount) => {\n * // Request completion callback...\n * });\n * connection.execSql(request);\n * ```\n */\nclass Request extends EventEmitter {\n /**\n * @private\n */\n declare sqlTextOrProcedure: string | undefined;\n /**\n * @private\n */\n declare parameters: Parameter[];\n /**\n * @private\n */\n declare parametersByName: { [key: string]: Parameter };\n /**\n * @private\n */\n declare preparing: boolean;\n /**\n * @private\n */\n declare canceled: boolean;\n /**\n * @private\n */\n declare paused: boolean;\n /**\n * @private\n */\n declare userCallback: CompletionCallback;\n /**\n * @private\n */\n declare handle: number | undefined;\n /**\n * @private\n */\n declare error: Error | undefined;\n /**\n * @private\n */\n declare connection: Connection | undefined;\n /**\n * @private\n */\n declare timeout: number | undefined;\n\n /**\n * @private\n */\n declare rows?: Array<any>;\n /**\n * @private\n */\n declare rst?: Array<any>;\n /**\n * @private\n */\n declare rowCount?: number;\n\n /**\n * @private\n */\n declare callback: CompletionCallback;\n\n\n declare shouldHonorAE?: boolean;\n declare statementColumnEncryptionSetting: SQLServerStatementColumnEncryptionSetting;\n declare cryptoMetadataLoaded: boolean;\n\n /**\n * This event, describing result set columns, will be emitted before row\n * events are emitted. This event may be emitted multiple times when more\n * than one recordset is produced by the statement.\n *\n * An array like object, where the columns can be accessed either by index\n * or name. Columns with a name that is an integer are not accessible by name,\n * as it would be interpreted as an array index.\n */\n on(\n event: 'columnMetadata',\n listener:\n (columns: ColumnMetadata[] | { [key: string]: ColumnMetadata }) => void\n ): this\n\n /**\n * The request has been prepared and can be used in subsequent calls to execute and unprepare.\n */\n on(event: 'prepared', listener: () => void): this\n\n /**\n * The request encountered an error and has not been prepared.\n */\n on(event: 'error', listener: (err: Error) => void): this\n\n /**\n * A row resulting from execution of the SQL statement.\n */\n on(\n event: 'row',\n listener:\n /**\n * An array or object (depends on [[ConnectionOptions.useColumnNames]]), where the columns can be accessed by index/name.\n * Each column has two properties, `metadata` and `value`:\n *\n * * `metadata`\n *\n * The same data that is exposed in the `columnMetadata` event.\n *\n * * `value`\n *\n * The column's value. It will be `null` for a `NULL`.\n * If there are multiple columns with the same name, then this will be an array of the values.\n */\n (columns: any) => void\n ): this\n\n /**\n * All rows from a result set have been provided (through `row` events).\n *\n * This token is used to indicate the completion of a SQL statement.\n * As multiple SQL statements can be sent to the server in a single SQL batch, multiple `done` can be generated.\n * An `done` event is emitted for each SQL statement in the SQL batch except variable declarations.\n * For execution of SQL statements within stored procedures, `doneProc` and `doneInProc` events are used in place of `done`.\n *\n * If you are using [[Connection.execSql]] then SQL server may treat the multiple calls with the same query as a stored procedure.\n * When this occurs, the `doneProc` and `doneInProc` events may be emitted instead. You must handle both events to ensure complete coverage.\n */\n on(\n event: 'done',\n listener:\n /**\n * @param rowCount\n * The number of result rows. May be `undefined` if not available.\n *\n * @param more\n * If there are more results to come (probably because multiple statements are being executed), then `true`.\n *\n * @param rst\n * Rows as a result of executing the SQL statement.\n * Will only be available if Connection's [[ConnectionOptions.rowCollectionOnDone]] is `true`.\n */\n (rowCount: number | undefined, more: boolean, rst?: any[]) => void\n ): this\n\n /**\n * `request.on('doneInProc', function (rowCount, more, rows) { });`\n *\n * Indicates the completion status of a SQL statement within a stored procedure. All rows from a statement\n * in a stored procedure have been provided (through `row` events).\n *\n * This event may also occur when executing multiple calls with the same query using [[execSql]].\n */\n on(\n event: 'doneInProc',\n listener:\n /**\n * @param rowCount\n * The number of result rows. May be `undefined` if not available.\n *\n * @param more\n * If there are more results to come (probably because multiple statements are being executed), then `true`.\n *\n * @param rst\n * Rows as a result of executing the SQL statement.\n * Will only be available if Connection's [[ConnectionOptions.rowCollectionOnDone]] is `true`.\n */\n (rowCount: number | undefined, more: boolean, rst?: any[]) => void\n ): this\n\n /**\n * Indicates the completion status of a stored procedure. This is also generated for stored procedures\n * executed through SQL statements.\\\n * This event may also occur when executing multiple calls with the same query using [[execSql]].\n */\n on(\n event: 'doneProc',\n listener:\n /**\n * @param rowCount\n * The number of result rows. May be `undefined` if not available.\n *\n * @param more\n * If there are more results to come (probably because multiple statements are being executed), then `true`.\n *\n * @param rst\n * Rows as a result of executing the SQL statement.\n * Will only be available if Connection's [[ConnectionOptions.rowCollectionOnDone]] is `true`.\n */\n (rowCount: number | undefined, more: boolean, procReturnStatusValue: number, rst?: any[]) => void\n ): this\n\n /**\n * A value for an output parameter (that was added to the request with [[addOutputParameter]]).\n * See also `Using Parameters`.\n */\n on(\n event: 'returnValue',\n listener:\n /**\n * @param parameterName\n * The parameter name. (Does not start with '@'.)\n *\n * @param value\n * The parameter's output value.\n *\n * @param metadata\n * The same data that is exposed in the `columnMetadata` event.\n */\n (parameterName: string, value: unknown, metadata: Metadata) => void\n ): this\n\n /**\n * This event gives the columns by which data is ordered, if `ORDER BY` clause is executed in SQL Server.\n */\n on(\n event: 'order',\n listener:\n /**\n * @param orderColumns\n * An array of column numbers in the result set by which data is ordered.\n */\n (orderColumns: number[]) => void\n ): this\n\n /**\n * This event gives the names of the base tables of the result set, if the query was\n * executed in browse mode (e.g. with a `FOR BROWSE` clause or `SET NO_BROWSETABLE ON`).\n */\n on(\n event: 'tabName',\n listener:\n /**\n * @param tableNames\n * The names of the base tables referenced in the query, in the order the\n * `colInfo` event's `tableNum` values refer to them. Each name is given\n * as its individual parts (e.g. `['dbo', 'employees']`).\n */\n (tableNames: string[][]) => void\n ): this\n\n /**\n * This event describes how the columns of the result set map back to the base tables\n * given in the `tabName` event, if the query was executed in browse mode (e.g. with a\n * `FOR BROWSE` clause or `SET NO_BROWSETABLE ON`).\n */\n on(\n event: 'colInfo',\n listener:\n /**\n * @param columns\n * One entry for each column in the result set, describing the base table\n * the column was derived from.\n */\n (columns: ColumnInfo[]) => void\n ): this\n\n on(event: 'requestCompleted', listener: () => void): this\n\n on(event: 'cancel', listener: () => void): this\n\n on(event: 'pause', listener: () => void): this\n\n on(event: 'resume', listener: () => void): this\n\n on(event: string | symbol, listener: (...args: any[]) => void) {\n return super.on(event, listener);\n }\n\n /**\n * @private\n */\n emit(event: 'columnMetadata', columns: ColumnMetadata[] | { [key: string]: ColumnMetadata }): boolean\n /**\n * @private\n */\n emit(event: 'prepared'): boolean\n /**\n * @private\n */\n emit(event: 'error', err: Error): boolean\n /**\n * @private\n */\n emit(event: 'row', columns: any): boolean\n /**\n * @private\n */\n emit(event: 'done', rowCount: number | undefined, more: boolean, rst?: any[]): boolean\n /**\n * @private\n */\n emit(event: 'doneInProc', rowCount: number | undefined, more: boolean, rst?: any[]): boolean\n /**\n * @private\n */\n emit(event: 'doneProc', rowCount: number | undefined, more: boolean, procReturnStatusValue: number, rst?: any[]): boolean\n /**\n * @private\n */\n emit(event: 'returnValue', parameterName: string, value: unknown, metadata: Metadata): boolean\n /**\n * @private\n */\n emit(event: 'requestCompleted'): boolean\n /**\n * @private\n */\n emit(event: 'cancel'): boolean\n /**\n * @private\n */\n emit(event: 'pause'): boolean\n /**\n * @private\n */\n emit(event: 'resume'): boolean\n /**\n * @private\n */\n emit(event: 'order', orderColumns: number[]): boolean\n /**\n * @private\n */\n emit(event: 'tabName', tableNames: string[][]): boolean\n /**\n * @private\n */\n emit(event: 'colInfo', columns: ColumnInfo[]): boolean\n emit(event: string | symbol, ...args: any[]) {\n return super.emit(event, ...args);\n }\n\n /**\n * @param sqlTextOrProcedure\n * The SQL statement to be executed\n *\n * @param callback\n * The callback to execute once the request has been fully completed.\n */\n constructor(sqlTextOrProcedure: string | undefined, callback: CompletionCallback, options?: RequestOptions) {\n super();\n\n this.sqlTextOrProcedure = sqlTextOrProcedure;\n this.parameters = [];\n this.parametersByName = {};\n this.preparing = false;\n this.handle = undefined;\n this.canceled = false;\n this.paused = false;\n this.error = undefined;\n this.connection = undefined;\n this.timeout = undefined;\n this.userCallback = callback;\n this.statementColumnEncryptionSetting = (options && options.statementColumnEncryptionSetting) || SQLServerStatementColumnEncryptionSetting.UseConnectionSetting;\n this.cryptoMetadataLoaded = false;\n this.callback = function(err: Error | undefined | null, rowCount?: number, rows?: any) {\n if (this.preparing) {\n this.preparing = false;\n if (err) {\n this.emit('error', err);\n } else {\n this.emit('prepared');\n }\n } else {\n this.userCallback(err, rowCount, rows);\n this.emit('requestCompleted');\n }\n };\n }\n\n /**\n * @param name\n * The parameter name. This should correspond to a parameter in the SQL,\n * or a parameter that a called procedure expects. The name should not start with `@`.\n *\n * @param type\n * One of the supported data types.\n *\n * @param value\n * The value that the parameter is to be given. The Javascript type of the\n * argument should match that documented for data types.\n *\n * @param options\n * Additional type options. Optional.\n */\n // TODO: `type` must be a valid TDS value type\n addParameter(name: string, type: DataType, value?: unknown, options?: Readonly<ParameterOptions> | null) {\n const { output = false, length, precision, scale } = options ?? {};\n\n const parameter: Parameter = {\n type: type,\n name: name,\n value: value,\n output: output,\n length: length,\n precision: precision,\n scale: scale\n };\n\n this.parameters.push(parameter);\n this.parametersByName[name] = parameter;\n }\n\n /**\n * @param name\n * The parameter name. This should correspond to a parameter in the SQL,\n * or a parameter that a called procedure expects.\n *\n * @param type\n * One of the supported data types.\n *\n * @param value\n * The value that the parameter is to be given. The Javascript type of the\n * argument should match that documented for data types\n *\n * @param options\n * Additional type options. Optional.\n */\n addOutputParameter(name: string, type: DataType, value?: unknown, options?: Readonly<ParameterOptions> | null) {\n this.addParameter(name, type, value, { ...options, output: true });\n }\n\n /**\n * @private\n */\n makeParamsParameter(parameters: Parameter[]) {\n let paramsParameter = '';\n for (let i = 0, len = parameters.length; i < len; i++) {\n const parameter = parameters[i];\n if (paramsParameter.length > 0) {\n paramsParameter += ', ';\n }\n paramsParameter += '@' + parameter.name + ' ';\n paramsParameter += parameter.type.declaration(parameter);\n if (parameter.output) {\n paramsParameter += ' OUTPUT';\n }\n }\n return paramsParameter;\n }\n\n /**\n * @private\n */\n validateParameters(collation: Collation | undefined) {\n for (let i = 0, len = this.parameters.length; i < len; i++) {\n const parameter = this.parameters[i];\n\n try {\n parameter.value = parameter.type.validate(parameter.value, collation);\n } catch (error: any) {\n throw new RequestError('Validation failed for parameter \\'' + parameter.name + '\\'. ' + error.message, 'EPARAM', { cause: error });\n }\n }\n }\n\n /**\n * Temporarily suspends the flow of data from the database. No more `row` events will be emitted until [[resume]] is called.\n * If this request is already in a paused state, calling [[pause]] has no effect.\n */\n pause() {\n if (this.paused) {\n return;\n }\n this.emit('pause');\n this.paused = true;\n }\n\n /**\n * Resumes the flow of data from the database.\n * If this request is not in a paused state, calling [[resume]] has no effect.\n */\n resume() {\n if (!this.paused) {\n return;\n }\n this.paused = false;\n this.emit('resume');\n }\n\n /**\n * Cancels a request while waiting for a server response.\n */\n cancel() {\n if (this.canceled) {\n return;\n }\n\n this.canceled = true;\n this.emit('cancel');\n }\n\n /**\n * Sets a timeout for this request.\n *\n * @param timeout\n * The number of milliseconds before the request is considered failed,\n * or `0` for no timeout. When no timeout is set for the request,\n * the [[ConnectionOptions.requestTimeout]] of the [[Connection]] is used.\n */\n setTimeout(timeout?: number) {\n this.timeout = timeout;\n }\n}\n\nexport default Request;\nmodule.exports = Request;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,OAAO,SAASC,oBAAY,CAAC;EACjC;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAGE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAGE;AACF;AACA;;EAQE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAOE;AACF;AACA;;EAGE;AACF;AACA;;EAGE;AACF;AACA;;EAoBE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAkBE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;EAkBE;AACF;AACA;AACA;AACA;;EAkBE;AACF;AACA;AACA;;EAiBE;AACF;AACA;;EAWE;AACF;AACA;AACA;;EAaE;AACF;AACA;AACA;AACA;;EAoBEC,EAAEA,CAACC,KAAsB,EAAEC,QAAkC,EAAE;IAC7D,OAAO,KAAK,CAACF,EAAE,CAACC,KAAK,EAAEC,QAAQ,CAAC;EAClC;;EAEA;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEE;AACF;AACA;;EAEEC,IAAIA,CAACF,KAAsB,EAAE,GAAGG,IAAW,EAAE;IAC3C,OAAO,KAAK,CAACD,IAAI,CAACF,KAAK,EAAE,GAAGG,IAAI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","ignoreList":[]}
@@ -34,13 +34,13 @@ class RpcRequestPayload {
34
34
  return this.generateData();
35
35
  }
36
36
  *generateData() {
37
- const buffer = new _writableTrackingBuffer.default(500);
37
+ const buffer = new _writableTrackingBuffer.default();
38
38
  if (this.options.tdsVersion >= '7_2') {
39
39
  const outstandingRequestCount = 1;
40
40
  (0, _allHeaders.writeToTrackingBuffer)(buffer, this.txnDescriptor, outstandingRequestCount);
41
41
  }
42
42
  if (typeof this.procedure === 'string') {
43
- buffer.writeUsVarchar(this.procedure);
43
+ buffer.writeUsVarchar(this.procedure, 'ucs2');
44
44
  } else {
45
45
  buffer.writeUShort(0xFFFF);
46
46
  buffer.writeUShort(this.procedure);
@@ -57,11 +57,11 @@ class RpcRequestPayload {
57
57
  return indent + ('RPC Request - ' + this.procedure);
58
58
  }
59
59
  *generateParameterData(parameter) {
60
- const buffer = new _writableTrackingBuffer.default(1 + 2 + Buffer.byteLength(parameter.name, 'ucs-2') + 1);
60
+ const buffer = new _writableTrackingBuffer.default();
61
61
  if (parameter.name) {
62
- buffer.writeBVarchar('@' + parameter.name);
62
+ buffer.writeBVarchar('@' + parameter.name, 'ucs2');
63
63
  } else {
64
- buffer.writeBVarchar('');
64
+ buffer.writeBVarchar('', 'ucs2');
65
65
  }
66
66
  let statusFlags = 0;
67
67
  if (parameter.output) {
@@ -106,4 +106,4 @@ class RpcRequestPayload {
106
106
  }
107
107
  var _default = exports.default = RpcRequestPayload;
108
108
  module.exports = RpcRequestPayload;
109
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FsbEhlYWRlcnMiLCJfZXJyb3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiU1RBVFVTIiwiQllfUkVGX1ZBTFVFIiwiREVGQVVMVF9WQUxVRSIsIlJwY1JlcXVlc3RQYXlsb2FkIiwiY29uc3RydWN0b3IiLCJwcm9jZWR1cmUiLCJwYXJhbWV0ZXJzIiwidHhuRGVzY3JpcHRvciIsIm9wdGlvbnMiLCJjb2xsYXRpb24iLCJTeW1ib2wiLCJpdGVyYXRvciIsImdlbmVyYXRlRGF0YSIsImJ1ZmZlciIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJ0ZHNWZXJzaW9uIiwib3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQiLCJ3cml0ZVRvVHJhY2tpbmdCdWZmZXIiLCJ3cml0ZVVzVmFyY2hhciIsIndyaXRlVVNob3J0Iiwib3B0aW9uRmxhZ3MiLCJ3cml0ZVVJbnQxNkxFIiwiZGF0YSIsInBhcmFtZXRlcnNMZW5ndGgiLCJsZW5ndGgiLCJpIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwidG9TdHJpbmciLCJpbmRlbnQiLCJwYXJhbWV0ZXIiLCJCdWZmZXIiLCJieXRlTGVuZ3RoIiwibmFtZSIsIndyaXRlQlZhcmNoYXIiLCJzdGF0dXNGbGFncyIsIm91dHB1dCIsIndyaXRlVUludDgiLCJwYXJhbSIsInZhbHVlIiwidHlwZSIsImlkIiwicmVzb2x2ZUxlbmd0aCIsInByZWNpc2lvbiIsInJlc29sdmVQcmVjaXNpb24iLCJzY2FsZSIsInJlc29sdmVTY2FsZSIsImdlbmVyYXRlVHlwZUluZm8iLCJnZW5lcmF0ZVBhcmFtZXRlckxlbmd0aCIsImVycm9yIiwiSW5wdXRFcnJvciIsImNhdXNlIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vc3JjL3JwY3JlcXVlc3QtcGF5bG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuL3RyYWNraW5nLWJ1ZmZlci93cml0YWJsZS10cmFja2luZy1idWZmZXInO1xuaW1wb3J0IHsgd3JpdGVUb1RyYWNraW5nQnVmZmVyIH0gZnJvbSAnLi9hbGwtaGVhZGVycyc7XG5pbXBvcnQgeyB0eXBlIFBhcmFtZXRlciwgdHlwZSBQYXJhbWV0ZXJEYXRhIH0gZnJvbSAnLi9kYXRhLXR5cGUnO1xuaW1wb3J0IHsgdHlwZSBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zIH0gZnJvbSAnLi9jb25uZWN0aW9uJztcbmltcG9ydCB7IENvbGxhdGlvbiB9IGZyb20gJy4vY29sbGF0aW9uJztcbmltcG9ydCB7IElucHV0RXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5cbi8vIGNvbnN0IE9QVElPTiA9IHtcbi8vICAgV0lUSF9SRUNPTVBJTEU6IDB4MDEsXG4vLyAgIE5PX01FVEFEQVRBOiAweDAyLFxuLy8gICBSRVVTRV9NRVRBREFUQTogMHgwNFxuLy8gfTtcblxuY29uc3QgU1RBVFVTID0ge1xuICBCWV9SRUZfVkFMVUU6IDB4MDEsXG4gIERFRkFVTFRfVkFMVUU6IDB4MDJcbn07XG5cbi8qXG4gIHMyLjIuNi41XG4gKi9cbmNsYXNzIFJwY1JlcXVlc3RQYXlsb2FkIGltcGxlbWVudHMgSXRlcmFibGU8QnVmZmVyPiB7XG4gIGRlY2xhcmUgcHJvY2VkdXJlOiBzdHJpbmcgfCBudW1iZXI7XG4gIGRlY2xhcmUgcGFyYW1ldGVyczogUGFyYW1ldGVyW107XG5cbiAgZGVjbGFyZSBvcHRpb25zOiBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zO1xuICBkZWNsYXJlIHR4bkRlc2NyaXB0b3I6IEJ1ZmZlcjtcbiAgZGVjbGFyZSBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9jZWR1cmU6IHN0cmluZyB8IG51bWJlciwgcGFyYW1ldGVyczogUGFyYW1ldGVyW10sIHR4bkRlc2NyaXB0b3I6IEJ1ZmZlciwgb3B0aW9uczogSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucywgY29sbGF0aW9uOiBDb2xsYXRpb24gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnByb2NlZHVyZSA9IHByb2NlZHVyZTtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy50eG5EZXNjcmlwdG9yID0gdHhuRGVzY3JpcHRvcjtcbiAgICB0aGlzLmNvbGxhdGlvbiA9IGNvbGxhdGlvbjtcbiAgfVxuXG4gIFtTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlRGF0YSgpO1xuICB9XG5cbiAgKiBnZW5lcmF0ZURhdGEoKSB7XG4gICAgY29uc3QgYnVmZmVyID0gbmV3IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIoNTAwKTtcbiAgICBpZiAodGhpcy5vcHRpb25zLnRkc1ZlcnNpb24gPj0gJzdfMicpIHtcbiAgICAgIGNvbnN0IG91dHN0YW5kaW5nUmVxdWVzdENvdW50ID0gMTtcbiAgICAgIHdyaXRlVG9UcmFja2luZ0J1ZmZlcihidWZmZXIsIHRoaXMudHhuRGVzY3JpcHRvciwgb3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdGhpcy5wcm9jZWR1cmUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBidWZmZXIud3JpdGVVc1ZhcmNoYXIodGhpcy5wcm9jZWR1cmUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBidWZmZXIud3JpdGVVU2hvcnQoMHhGRkZGKTtcbiAgICAgIGJ1ZmZlci53cml0ZVVTaG9ydCh0aGlzLnByb2NlZHVyZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9uRmxhZ3MgPSAwO1xuICAgIGJ1ZmZlci53cml0ZVVJbnQxNkxFKG9wdGlvbkZsYWdzKTtcbiAgICB5aWVsZCBidWZmZXIuZGF0YTtcblxuICAgIGNvbnN0IHBhcmFtZXRlcnNMZW5ndGggPSB0aGlzLnBhcmFtZXRlcnMubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGFyYW1ldGVyc0xlbmd0aDsgaSsrKSB7XG4gICAgICB5aWVsZCAqIHRoaXMuZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHRoaXMucGFyYW1ldGVyc1tpXSk7XG4gICAgfVxuICB9XG5cbiAgdG9TdHJpbmcoaW5kZW50ID0gJycpIHtcbiAgICByZXR1cm4gaW5kZW50ICsgKCdSUEMgUmVxdWVzdCAtICcgKyB0aGlzLnByb2NlZHVyZSk7XG4gIH1cblxuICAqIGdlbmVyYXRlUGFyYW1ldGVyRGF0YShwYXJhbWV0ZXI6IFBhcmFtZXRlcikge1xuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKDEgKyAyICsgQnVmZmVyLmJ5dGVMZW5ndGgocGFyYW1ldGVyLm5hbWUsICd1Y3MtMicpICsgMSk7XG5cbiAgICBpZiAocGFyYW1ldGVyLm5hbWUpIHtcbiAgICAgIGJ1ZmZlci53cml0ZUJWYXJjaGFyKCdAJyArIHBhcmFtZXRlci5uYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlQlZhcmNoYXIoJycpO1xuICAgIH1cblxuICAgIGxldCBzdGF0dXNGbGFncyA9IDA7XG4gICAgaWYgKHBhcmFtZXRlci5vdXRwdXQpIHtcbiAgICAgIHN0YXR1c0ZsYWdzIHw9IFNUQVRVUy5CWV9SRUZfVkFMVUU7XG4gICAgfVxuICAgIGJ1ZmZlci53cml0ZVVJbnQ4KHN0YXR1c0ZsYWdzKTtcblxuICAgIHlpZWxkIGJ1ZmZlci5kYXRhO1xuXG4gICAgY29uc3QgcGFyYW06IFBhcmFtZXRlckRhdGEgPSB7IHZhbHVlOiBwYXJhbWV0ZXIudmFsdWUgfTtcblxuICAgIGNvbnN0IHR5cGUgPSBwYXJhbWV0ZXIudHlwZTtcblxuICAgIGlmICgodHlwZS5pZCAmIDB4MzApID09PSAweDIwKSB7XG4gICAgICBpZiAocGFyYW1ldGVyLmxlbmd0aCkge1xuICAgICAgICBwYXJhbS5sZW5ndGggPSBwYXJhbWV0ZXIubGVuZ3RoO1xuICAgICAgfSBlbHNlIGlmICh0eXBlLnJlc29sdmVMZW5ndGgpIHtcbiAgICAgICAgcGFyYW0ubGVuZ3RoID0gdHlwZS5yZXNvbHZlTGVuZ3RoKHBhcmFtZXRlcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtZXRlci5wcmVjaXNpb24pIHtcbiAgICAgIHBhcmFtLnByZWNpc2lvbiA9IHBhcmFtZXRlci5wcmVjaXNpb247XG4gICAgfSBlbHNlIGlmICh0eXBlLnJlc29sdmVQcmVjaXNpb24pIHtcbiAgICAgIHBhcmFtLnByZWNpc2lvbiA9IHR5cGUucmVzb2x2ZVByZWNpc2lvbihwYXJhbWV0ZXIpO1xuICAgIH1cblxuICAgIGlmIChwYXJhbWV0ZXIuc2NhbGUpIHtcbiAgICAgIHBhcmFtLnNjYWxlID0gcGFyYW1ldGVyLnNjYWxlO1xuICAgIH0gZWxzZSBpZiAodHlwZS5yZXNvbHZlU2NhbGUpIHtcbiAgICAgIHBhcmFtLnNjYWxlID0gdHlwZS5yZXNvbHZlU2NhbGUocGFyYW1ldGVyKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb2xsYXRpb24pIHtcbiAgICAgIHBhcmFtLmNvbGxhdGlvbiA9IHRoaXMuY29sbGF0aW9uO1xuICAgIH1cblxuICAgIHlpZWxkIHR5cGUuZ2VuZXJhdGVUeXBlSW5mbyhwYXJhbSwgdGhpcy5vcHRpb25zKTtcbiAgICB5aWVsZCB0eXBlLmdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoKHBhcmFtLCB0aGlzLm9wdGlvbnMpO1xuICAgIHRyeSB7XG4gICAgICB5aWVsZCAqIHR5cGUuZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhKHBhcmFtLCB0aGlzLm9wdGlvbnMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW5wdXRFcnJvcihgSW5wdXQgcGFyYW1ldGVyICcke3BhcmFtZXRlci5uYW1lfScgY291bGQgbm90IGJlIHZhbGlkYXRlZGAsIHsgY2F1c2U6IGVycm9yIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBScGNSZXF1ZXN0UGF5bG9hZDtcbm1vZHVsZS5leHBvcnRzID0gUnBjUmVxdWVzdFBheWxvYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLHVCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFJQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFBc0MsU0FBQUQsdUJBQUFJLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxNQUFNRyxNQUFNLEdBQUc7RUFDYkMsWUFBWSxFQUFFLElBQUk7RUFDbEJDLGFBQWEsRUFBRTtBQUNqQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBLE1BQU1DLGlCQUFpQixDQUE2QjtFQVFsREMsV0FBV0EsQ0FBQ0MsU0FBMEIsRUFBRUMsVUFBdUIsRUFBRUMsYUFBcUIsRUFBRUMsT0FBa0MsRUFBRUMsU0FBZ0MsRUFBRTtJQUM1SixJQUFJLENBQUNKLFNBQVMsR0FBR0EsU0FBUztJQUMxQixJQUFJLENBQUNDLFVBQVUsR0FBR0EsVUFBVTtJQUM1QixJQUFJLENBQUNFLE9BQU8sR0FBR0EsT0FBTztJQUN0QixJQUFJLENBQUNELGFBQWEsR0FBR0EsYUFBYTtJQUNsQyxJQUFJLENBQUNFLFNBQVMsR0FBR0EsU0FBUztFQUM1QjtFQUVBLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxJQUFJO0lBQ2xCLE9BQU8sSUFBSSxDQUFDQyxZQUFZLENBQUMsQ0FBQztFQUM1QjtFQUVBLENBQUVBLFlBQVlBLENBQUEsRUFBRztJQUNmLE1BQU1DLE1BQU0sR0FBRyxJQUFJQywrQkFBc0IsQ0FBQyxHQUFHLENBQUM7SUFDOUMsSUFBSSxJQUFJLENBQUNOLE9BQU8sQ0FBQ08sVUFBVSxJQUFJLEtBQUssRUFBRTtNQUNwQyxNQUFNQyx1QkFBdUIsR0FBRyxDQUFDO01BQ2pDLElBQUFD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
109
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FsbEhlYWRlcnMiLCJfZXJyb3JzIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiU1RBVFVTIiwiQllfUkVGX1ZBTFVFIiwiREVGQVVMVF9WQUxVRSIsIlJwY1JlcXVlc3RQYXlsb2FkIiwiY29uc3RydWN0b3IiLCJwcm9jZWR1cmUiLCJwYXJhbWV0ZXJzIiwidHhuRGVzY3JpcHRvciIsIm9wdGlvbnMiLCJjb2xsYXRpb24iLCJTeW1ib2wiLCJpdGVyYXRvciIsImdlbmVyYXRlRGF0YSIsImJ1ZmZlciIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJ0ZHNWZXJzaW9uIiwib3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQiLCJ3cml0ZVRvVHJhY2tpbmdCdWZmZXIiLCJ3cml0ZVVzVmFyY2hhciIsIndyaXRlVVNob3J0Iiwib3B0aW9uRmxhZ3MiLCJ3cml0ZVVJbnQxNkxFIiwiZGF0YSIsInBhcmFtZXRlcnNMZW5ndGgiLCJsZW5ndGgiLCJpIiwiZ2VuZXJhdGVQYXJhbWV0ZXJEYXRhIiwidG9TdHJpbmciLCJpbmRlbnQiLCJwYXJhbWV0ZXIiLCJuYW1lIiwid3JpdGVCVmFyY2hhciIsInN0YXR1c0ZsYWdzIiwib3V0cHV0Iiwid3JpdGVVSW50OCIsInBhcmFtIiwidmFsdWUiLCJ0eXBlIiwiaWQiLCJyZXNvbHZlTGVuZ3RoIiwicHJlY2lzaW9uIiwicmVzb2x2ZVByZWNpc2lvbiIsInNjYWxlIiwicmVzb2x2ZVNjYWxlIiwiZ2VuZXJhdGVUeXBlSW5mbyIsImdlbmVyYXRlUGFyYW1ldGVyTGVuZ3RoIiwiZXJyb3IiLCJJbnB1dEVycm9yIiwiY2F1c2UiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi9zcmMvcnBjcmVxdWVzdC1wYXlsb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXcml0YWJsZVRyYWNraW5nQnVmZmVyIGZyb20gJy4vdHJhY2tpbmctYnVmZmVyL3dyaXRhYmxlLXRyYWNraW5nLWJ1ZmZlcic7XG5pbXBvcnQgeyB3cml0ZVRvVHJhY2tpbmdCdWZmZXIgfSBmcm9tICcuL2FsbC1oZWFkZXJzJztcbmltcG9ydCB7IHR5cGUgUGFyYW1ldGVyLCB0eXBlIFBhcmFtZXRlckRhdGEgfSBmcm9tICcuL2RhdGEtdHlwZSc7XG5pbXBvcnQgeyB0eXBlIEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnMgfSBmcm9tICcuL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHsgQ29sbGF0aW9uIH0gZnJvbSAnLi9jb2xsYXRpb24nO1xuaW1wb3J0IHsgSW5wdXRFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuLy8gY29uc3QgT1BUSU9OID0ge1xuLy8gICBXSVRIX1JFQ09NUElMRTogMHgwMSxcbi8vICAgTk9fTUVUQURBVEE6IDB4MDIsXG4vLyAgIFJFVVNFX01FVEFEQVRBOiAweDA0XG4vLyB9O1xuXG5jb25zdCBTVEFUVVMgPSB7XG4gIEJZX1JFRl9WQUxVRTogMHgwMSxcbiAgREVGQVVMVF9WQUxVRTogMHgwMlxufTtcblxuLypcbiAgczIuMi42LjVcbiAqL1xuY2xhc3MgUnBjUmVxdWVzdFBheWxvYWQgaW1wbGVtZW50cyBJdGVyYWJsZTxCdWZmZXI+IHtcbiAgZGVjbGFyZSBwcm9jZWR1cmU6IHN0cmluZyB8IG51bWJlcjtcbiAgZGVjbGFyZSBwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJbXTtcblxuICBkZWNsYXJlIG9wdGlvbnM6IEludGVybmFsQ29ubmVjdGlvbk9wdGlvbnM7XG4gIGRlY2xhcmUgdHhuRGVzY3JpcHRvcjogQnVmZmVyO1xuICBkZWNsYXJlIGNvbGxhdGlvbjogQ29sbGF0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByb2NlZHVyZTogc3RyaW5nIHwgbnVtYmVyLCBwYXJhbWV0ZXJzOiBQYXJhbWV0ZXJbXSwgdHhuRGVzY3JpcHRvcjogQnVmZmVyLCBvcHRpb25zOiBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zLCBjb2xsYXRpb246IENvbGxhdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMucHJvY2VkdXJlID0gcHJvY2VkdXJlO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB0aGlzLnR4bkRlc2NyaXB0b3IgPSB0eG5EZXNjcmlwdG9yO1xuICAgIHRoaXMuY29sbGF0aW9uID0gY29sbGF0aW9uO1xuICB9XG5cbiAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVEYXRhKCk7XG4gIH1cblxuICAqIGdlbmVyYXRlRGF0YSgpIHtcbiAgICBjb25zdCBidWZmZXIgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcigpO1xuICAgIGlmICh0aGlzLm9wdGlvbnMudGRzVmVyc2lvbiA+PSAnN18yJykge1xuICAgICAgY29uc3Qgb3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQgPSAxO1xuICAgICAgd3JpdGVUb1RyYWNraW5nQnVmZmVyKGJ1ZmZlciwgdGhpcy50eG5EZXNjcmlwdG9yLCBvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLnByb2NlZHVyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJ1ZmZlci53cml0ZVVzVmFyY2hhcih0aGlzLnByb2NlZHVyZSwgJ3VjczInKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlVVNob3J0KDB4RkZGRik7XG4gICAgICBidWZmZXIud3JpdGVVU2hvcnQodGhpcy5wcm9jZWR1cmUpO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbkZsYWdzID0gMDtcbiAgICBidWZmZXIud3JpdGVVSW50MTZMRShvcHRpb25GbGFncyk7XG4gICAgeWllbGQgYnVmZmVyLmRhdGE7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXJzTGVuZ3RoID0gdGhpcy5wYXJhbWV0ZXJzLmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcmFtZXRlcnNMZW5ndGg7IGkrKykge1xuICAgICAgeWllbGQgKiB0aGlzLmdlbmVyYXRlUGFyYW1ldGVyRGF0YSh0aGlzLnBhcmFtZXRlcnNbaV0pO1xuICAgIH1cbiAgfVxuXG4gIHRvU3RyaW5nKGluZGVudCA9ICcnKSB7XG4gICAgcmV0dXJuIGluZGVudCArICgnUlBDIFJlcXVlc3QgLSAnICsgdGhpcy5wcm9jZWR1cmUpO1xuICB9XG5cbiAgKiBnZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW1ldGVyOiBQYXJhbWV0ZXIpIHtcbiAgICBjb25zdCBidWZmZXIgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcigpO1xuXG4gICAgaWYgKHBhcmFtZXRlci5uYW1lKSB7XG4gICAgICBidWZmZXIud3JpdGVCVmFyY2hhcignQCcgKyBwYXJhbWV0ZXIubmFtZSwgJ3VjczInKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVmZmVyLndyaXRlQlZhcmNoYXIoJycsICd1Y3MyJyk7XG4gICAgfVxuXG4gICAgbGV0IHN0YXR1c0ZsYWdzID0gMDtcbiAgICBpZiAocGFyYW1ldGVyLm91dHB1dCkge1xuICAgICAgc3RhdHVzRmxhZ3MgfD0gU1RBVFVTLkJZX1JFRl9WQUxVRTtcbiAgICB9XG4gICAgYnVmZmVyLndyaXRlVUludDgoc3RhdHVzRmxhZ3MpO1xuXG4gICAgeWllbGQgYnVmZmVyLmRhdGE7XG5cbiAgICBjb25zdCBwYXJhbTogUGFyYW1ldGVyRGF0YSA9IHsgdmFsdWU6IHBhcmFtZXRlci52YWx1ZSB9O1xuXG4gICAgY29uc3QgdHlwZSA9IHBhcmFtZXRlci50eXBlO1xuXG4gICAgaWYgKCh0eXBlLmlkICYgMHgzMCkgPT09IDB4MjApIHtcbiAgICAgIGlmIChwYXJhbWV0ZXIubGVuZ3RoKSB7XG4gICAgICAgIHBhcmFtLmxlbmd0aCA9IHBhcmFtZXRlci5sZW5ndGg7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUucmVzb2x2ZUxlbmd0aCkge1xuICAgICAgICBwYXJhbS5sZW5ndGggPSB0eXBlLnJlc29sdmVMZW5ndGgocGFyYW1ldGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGFyYW1ldGVyLnByZWNpc2lvbikge1xuICAgICAgcGFyYW0ucHJlY2lzaW9uID0gcGFyYW1ldGVyLnByZWNpc2lvbjtcbiAgICB9IGVsc2UgaWYgKHR5cGUucmVzb2x2ZVByZWNpc2lvbikge1xuICAgICAgcGFyYW0ucHJlY2lzaW9uID0gdHlwZS5yZXNvbHZlUHJlY2lzaW9uKHBhcmFtZXRlcik7XG4gICAgfVxuXG4gICAgaWYgKHBhcmFtZXRlci5zY2FsZSkge1xuICAgICAgcGFyYW0uc2NhbGUgPSBwYXJhbWV0ZXIuc2NhbGU7XG4gICAgfSBlbHNlIGlmICh0eXBlLnJlc29sdmVTY2FsZSkge1xuICAgICAgcGFyYW0uc2NhbGUgPSB0eXBlLnJlc29sdmVTY2FsZShwYXJhbWV0ZXIpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbGxhdGlvbikge1xuICAgICAgcGFyYW0uY29sbGF0aW9uID0gdGhpcy5jb2xsYXRpb247XG4gICAgfVxuXG4gICAgeWllbGQgdHlwZS5nZW5lcmF0ZVR5cGVJbmZvKHBhcmFtLCB0aGlzLm9wdGlvbnMpO1xuICAgIHlpZWxkIHR5cGUuZ2VuZXJhdGVQYXJhbWV0ZXJMZW5ndGgocGFyYW0sIHRoaXMub3B0aW9ucyk7XG4gICAgdHJ5IHtcbiAgICAgIHlpZWxkICogdHlwZS5nZW5lcmF0ZVBhcmFtZXRlckRhdGEocGFyYW0sIHRoaXMub3B0aW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBJbnB1dEVycm9yKGBJbnB1dCBwYXJhbWV0ZXIgJyR7cGFyYW1ldGVyLm5hbWV9JyBjb3VsZCBub3QgYmUgdmFsaWRhdGVkYCwgeyBjYXVzZTogZXJyb3IgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJwY1JlcXVlc3RQYXlsb2FkO1xubW9kdWxlLmV4cG9ydHMgPSBScGNSZXF1ZXN0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
@@ -1 +1 @@
1
- {"version":3,"file":"rpcrequest-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","_allHeaders","_errors","e","__esModule","default","STATUS","BY_REF_VALUE","DEFAULT_VALUE","RpcRequestPayload","constructor","procedure","parameters","txnDescriptor","options","collation","Symbol","iterator","generateData","buffer","WritableTrackingBuffer","tdsVersion","outstandingRequestCount","writeToTrackingBuffer","writeUsVarchar","writeUShort","optionFlags","writeUInt16LE","data","parametersLength","length","i","generateParameterData","toString","indent","parameter","Buffer","byteLength","name","writeBVarchar","statusFlags","output","writeUInt8","param","value","type","id","resolveLength","precision","resolvePrecision","scale","resolveScale","generateTypeInfo","generateParameterLength","error","InputError","cause","_default","exports","module"],"sources":["../src/rpcrequest-payload.ts"],"sourcesContent":["import WritableTrackingBuffer from './tracking-buffer/writable-tracking-buffer';\nimport { writeToTrackingBuffer } from './all-headers';\nimport { type Parameter, type ParameterData } from './data-type';\nimport { type InternalConnectionOptions } from './connection';\nimport { Collation } from './collation';\nimport { InputError } from './errors';\n\n// const OPTION = {\n// WITH_RECOMPILE: 0x01,\n// NO_METADATA: 0x02,\n// REUSE_METADATA: 0x04\n// };\n\nconst STATUS = {\n BY_REF_VALUE: 0x01,\n DEFAULT_VALUE: 0x02\n};\n\n/*\n s2.2.6.5\n */\nclass RpcRequestPayload implements Iterable<Buffer> {\n declare procedure: string | number;\n declare parameters: Parameter[];\n\n declare options: InternalConnectionOptions;\n declare txnDescriptor: Buffer;\n declare collation: Collation | undefined;\n\n constructor(procedure: string | number, parameters: Parameter[], txnDescriptor: Buffer, options: InternalConnectionOptions, collation: Collation | undefined) {\n this.procedure = procedure;\n this.parameters = parameters;\n this.options = options;\n this.txnDescriptor = txnDescriptor;\n this.collation = collation;\n }\n\n [Symbol.iterator]() {\n return this.generateData();\n }\n\n * generateData() {\n const buffer = new WritableTrackingBuffer(500);\n if (this.options.tdsVersion >= '7_2') {\n const outstandingRequestCount = 1;\n writeToTrackingBuffer(buffer, this.txnDescriptor, outstandingRequestCount);\n }\n\n if (typeof this.procedure === 'string') {\n buffer.writeUsVarchar(this.procedure);\n } else {\n buffer.writeUShort(0xFFFF);\n buffer.writeUShort(this.procedure);\n }\n\n const optionFlags = 0;\n buffer.writeUInt16LE(optionFlags);\n yield buffer.data;\n\n const parametersLength = this.parameters.length;\n for (let i = 0; i < parametersLength; i++) {\n yield * this.generateParameterData(this.parameters[i]);\n }\n }\n\n toString(indent = '') {\n return indent + ('RPC Request - ' + this.procedure);\n }\n\n * generateParameterData(parameter: Parameter) {\n const buffer = new WritableTrackingBuffer(1 + 2 + Buffer.byteLength(parameter.name, 'ucs-2') + 1);\n\n if (parameter.name) {\n buffer.writeBVarchar('@' + parameter.name);\n } else {\n buffer.writeBVarchar('');\n }\n\n let statusFlags = 0;\n if (parameter.output) {\n statusFlags |= STATUS.BY_REF_VALUE;\n }\n buffer.writeUInt8(statusFlags);\n\n yield buffer.data;\n\n const param: ParameterData = { value: parameter.value };\n\n const type = parameter.type;\n\n if ((type.id & 0x30) === 0x20) {\n if (parameter.length) {\n param.length = parameter.length;\n } else if (type.resolveLength) {\n param.length = type.resolveLength(parameter);\n }\n }\n\n if (parameter.precision) {\n param.precision = parameter.precision;\n } else if (type.resolvePrecision) {\n param.precision = type.resolvePrecision(parameter);\n }\n\n if (parameter.scale) {\n param.scale = parameter.scale;\n } else if (type.resolveScale) {\n param.scale = type.resolveScale(parameter);\n }\n\n if (this.collation) {\n param.collation = this.collation;\n }\n\n yield type.generateTypeInfo(param, this.options);\n yield type.generateParameterLength(param, this.options);\n try {\n yield * type.generateParameterData(param, this.options);\n } catch (error) {\n throw new InputError(`Input parameter '${parameter.name}' could not be validated`, { cause: error });\n }\n }\n}\n\nexport default RpcRequestPayload;\nmodule.exports = RpcRequestPayload;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"rpcrequest-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","_allHeaders","_errors","e","__esModule","default","STATUS","BY_REF_VALUE","DEFAULT_VALUE","RpcRequestPayload","constructor","procedure","parameters","txnDescriptor","options","collation","Symbol","iterator","generateData","buffer","WritableTrackingBuffer","tdsVersion","outstandingRequestCount","writeToTrackingBuffer","writeUsVarchar","writeUShort","optionFlags","writeUInt16LE","data","parametersLength","length","i","generateParameterData","toString","indent","parameter","name","writeBVarchar","statusFlags","output","writeUInt8","param","value","type","id","resolveLength","precision","resolvePrecision","scale","resolveScale","generateTypeInfo","generateParameterLength","error","InputError","cause","_default","exports","module"],"sources":["../src/rpcrequest-payload.ts"],"sourcesContent":["import WritableTrackingBuffer from './tracking-buffer/writable-tracking-buffer';\nimport { writeToTrackingBuffer } from './all-headers';\nimport { type Parameter, type ParameterData } from './data-type';\nimport { type InternalConnectionOptions } from './connection';\nimport { Collation } from './collation';\nimport { InputError } from './errors';\n\n// const OPTION = {\n// WITH_RECOMPILE: 0x01,\n// NO_METADATA: 0x02,\n// REUSE_METADATA: 0x04\n// };\n\nconst STATUS = {\n BY_REF_VALUE: 0x01,\n DEFAULT_VALUE: 0x02\n};\n\n/*\n s2.2.6.5\n */\nclass RpcRequestPayload implements Iterable<Buffer> {\n declare procedure: string | number;\n declare parameters: Parameter[];\n\n declare options: InternalConnectionOptions;\n declare txnDescriptor: Buffer;\n declare collation: Collation | undefined;\n\n constructor(procedure: string | number, parameters: Parameter[], txnDescriptor: Buffer, options: InternalConnectionOptions, collation: Collation | undefined) {\n this.procedure = procedure;\n this.parameters = parameters;\n this.options = options;\n this.txnDescriptor = txnDescriptor;\n this.collation = collation;\n }\n\n [Symbol.iterator]() {\n return this.generateData();\n }\n\n * generateData() {\n const buffer = new WritableTrackingBuffer();\n if (this.options.tdsVersion >= '7_2') {\n const outstandingRequestCount = 1;\n writeToTrackingBuffer(buffer, this.txnDescriptor, outstandingRequestCount);\n }\n\n if (typeof this.procedure === 'string') {\n buffer.writeUsVarchar(this.procedure, 'ucs2');\n } else {\n buffer.writeUShort(0xFFFF);\n buffer.writeUShort(this.procedure);\n }\n\n const optionFlags = 0;\n buffer.writeUInt16LE(optionFlags);\n yield buffer.data;\n\n const parametersLength = this.parameters.length;\n for (let i = 0; i < parametersLength; i++) {\n yield * this.generateParameterData(this.parameters[i]);\n }\n }\n\n toString(indent = '') {\n return indent + ('RPC Request - ' + this.procedure);\n }\n\n * generateParameterData(parameter: Parameter) {\n const buffer = new WritableTrackingBuffer();\n\n if (parameter.name) {\n buffer.writeBVarchar('@' + parameter.name, 'ucs2');\n } else {\n buffer.writeBVarchar('', 'ucs2');\n }\n\n let statusFlags = 0;\n if (parameter.output) {\n statusFlags |= STATUS.BY_REF_VALUE;\n }\n buffer.writeUInt8(statusFlags);\n\n yield buffer.data;\n\n const param: ParameterData = { value: parameter.value };\n\n const type = parameter.type;\n\n if ((type.id & 0x30) === 0x20) {\n if (parameter.length) {\n param.length = parameter.length;\n } else if (type.resolveLength) {\n param.length = type.resolveLength(parameter);\n }\n }\n\n if (parameter.precision) {\n param.precision = parameter.precision;\n } else if (type.resolvePrecision) {\n param.precision = type.resolvePrecision(parameter);\n }\n\n if (parameter.scale) {\n param.scale = parameter.scale;\n } else if (type.resolveScale) {\n param.scale = type.resolveScale(parameter);\n }\n\n if (this.collation) {\n param.collation = this.collation;\n }\n\n yield type.generateTypeInfo(param, this.options);\n yield type.generateParameterLength(param, this.options);\n try {\n yield * type.generateParameterData(param, this.options);\n } catch (error) {\n throw new InputError(`Input parameter '${parameter.name}' could not be validated`, { cause: error });\n }\n }\n}\n\nexport default RpcRequestPayload;\nmodule.exports = RpcRequestPayload;\n"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,7 @@ class SqlBatchPayload {
18
18
  }
19
19
  *[Symbol.iterator]() {
20
20
  if (this.options.tdsVersion >= '7_2') {
21
- const buffer = new _writableTrackingBuffer.default(18, 'ucs2');
21
+ const buffer = new _writableTrackingBuffer.default();
22
22
  const outstandingRequestCount = 1;
23
23
  (0, _allHeaders.writeToTrackingBuffer)(buffer, this.txnDescriptor, outstandingRequestCount);
24
24
  yield buffer.data;
@@ -31,4 +31,4 @@ class SqlBatchPayload {
31
31
  }
32
32
  var _default = exports.default = SqlBatchPayload;
33
33
  module.exports = SqlBatchPayload;
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FsbEhlYWRlcnMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJTcWxCYXRjaFBheWxvYWQiLCJjb25zdHJ1Y3RvciIsInNxbFRleHQiLCJ0eG5EZXNjcmlwdG9yIiwib3B0aW9ucyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwidGRzVmVyc2lvbiIsImJ1ZmZlciIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCIsIndyaXRlVG9UcmFja2luZ0J1ZmZlciIsImRhdGEiLCJCdWZmZXIiLCJmcm9tIiwidG9TdHJpbmciLCJpbmRlbnQiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi9zcmMvc3FsYmF0Y2gtcGF5bG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuL3RyYWNraW5nLWJ1ZmZlci93cml0YWJsZS10cmFja2luZy1idWZmZXInO1xuaW1wb3J0IHsgd3JpdGVUb1RyYWNraW5nQnVmZmVyIH0gZnJvbSAnLi9hbGwtaGVhZGVycyc7XG5cbi8qXG4gIHMyLjIuNi42XG4gKi9cbmNsYXNzIFNxbEJhdGNoUGF5bG9hZCBpbXBsZW1lbnRzIEl0ZXJhYmxlPEJ1ZmZlcj4ge1xuICBkZWNsYXJlIHNxbFRleHQ6IHN0cmluZztcbiAgZGVjbGFyZSB0eG5EZXNjcmlwdG9yOiBCdWZmZXI7XG4gIGRlY2xhcmUgb3B0aW9uczogeyB0ZHNWZXJzaW9uOiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3RvcihzcWxUZXh0OiBzdHJpbmcsIHR4bkRlc2NyaXB0b3I6IEJ1ZmZlciwgb3B0aW9uczogeyB0ZHNWZXJzaW9uOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuc3FsVGV4dCA9IHNxbFRleHQ7XG4gICAgdGhpcy50eG5EZXNjcmlwdG9yID0gdHhuRGVzY3JpcHRvcjtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMudGRzVmVyc2lvbiA+PSAnN18yJykge1xuICAgICAgY29uc3QgYnVmZmVyID0gbmV3IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIoMTgsICd1Y3MyJyk7XG4gICAgICBjb25zdCBvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCA9IDE7XG5cbiAgICAgIHdyaXRlVG9UcmFja2luZ0J1ZmZlcihidWZmZXIsIHRoaXMudHhuRGVzY3JpcHRvciwgb3V0c3RhbmRpbmdSZXF1ZXN0Q291bnQpO1xuXG4gICAgICB5aWVsZCBidWZmZXIuZGF0YTtcbiAgICB9XG5cbiAgICB5aWVsZCBCdWZmZXIuZnJvbSh0aGlzLnNxbFRleHQsICd1Y3MyJyk7XG4gIH1cblxuICB0b1N0cmluZyhpbmRlbnQgPSAnJykge1xuICAgIHJldHVybiBpbmRlbnQgKyAoJ1NRTCBCYXRjaCAtICcgKyB0aGlzLnNxbFRleHQpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNxbEJhdGNoUGF5bG9hZDtcbm1vZHVsZS5leHBvcnRzID0gU3FsQmF0Y2hQYXlsb2FkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBRCxPQUFBO0FBQXNELFNBQUFELHVCQUFBRyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXREO0FBQ0E7QUFDQTtBQUNBLE1BQU1HLGVBQWUsQ0FBNkI7RUFLaERDLFdBQVdBLENBQUNDLE9BQWUsRUFBRUMsYUFBcUIsRUFBRUMsT0FBK0IsRUFBRTtJQUNuRixJQUFJLENBQUNGLE9BQU8sR0FBR0EsT0FBTztJQUN0QixJQUFJLENBQUNDLGFBQWEsR0FBR0EsYUFBYTtJQUNsQyxJQUFJLENBQUNDLE9BQU8sR0FBR0EsT0FBTztFQUN4QjtFQUVBLEVBQUVDLE1BQU0sQ0FBQ0MsUUFBUSxJQUFJO0lBQ25CLElBQUksSUFBSSxDQUFDRixPQUFPLENBQUNHLFVBQVUsSUFBSSxLQUFLLEVBQUU7TUFDcEMsTUFBTUMsTUFBTSxHQUFHLElBQUlDLCtCQUFzQixDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUM7TUFDckQsTUFBTUMsdUJBQXVCLEdBQUcsQ0FBQztNQUVqQyxJQUFBQyxpQ0FBcUIsRUFBQ0gsTUFBTSxFQUFFLElBQUksQ0FBQ0wsYUFBYSxFQUFFTyx1QkFBdUIsQ0FBQztNQUUxRSxNQUFNRixNQUFNLENBQUNJLElBQUk7SUFDbkI7SUFFQSxNQUFNQyxNQUFNLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUNaLE9BQU8sRUFBRSxNQUFNLENBQUM7RUFDekM7RUFFQWEsUUFBUUEsQ0FBQ0MsTUFBTSxHQUFHLEVBQUUsRUFBRTtJQUNwQixPQUFPQSxNQUFNLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQ2QsT0FBTyxDQUFDO0VBQ2pEO0FBQ0Y7QUFBQyxJQUFBZSxRQUFBLEdBQUFDLE9BQUEsQ0FBQW5CLE9BQUEsR0FFY0MsZUFBZTtBQUM5Qm1CLE1BQU0sQ0FBQ0QsT0FBTyxHQUFHbEIsZUFBZSIsImlnbm9yZUxpc3QiOltdfQ==
34
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FsbEhlYWRlcnMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJTcWxCYXRjaFBheWxvYWQiLCJjb25zdHJ1Y3RvciIsInNxbFRleHQiLCJ0eG5EZXNjcmlwdG9yIiwib3B0aW9ucyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwidGRzVmVyc2lvbiIsImJ1ZmZlciIsIldyaXRhYmxlVHJhY2tpbmdCdWZmZXIiLCJvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCIsIndyaXRlVG9UcmFja2luZ0J1ZmZlciIsImRhdGEiLCJCdWZmZXIiLCJmcm9tIiwidG9TdHJpbmciLCJpbmRlbnQiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi9zcmMvc3FsYmF0Y2gtcGF5bG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuL3RyYWNraW5nLWJ1ZmZlci93cml0YWJsZS10cmFja2luZy1idWZmZXInO1xuaW1wb3J0IHsgd3JpdGVUb1RyYWNraW5nQnVmZmVyIH0gZnJvbSAnLi9hbGwtaGVhZGVycyc7XG5cbi8qXG4gIHMyLjIuNi42XG4gKi9cbmNsYXNzIFNxbEJhdGNoUGF5bG9hZCBpbXBsZW1lbnRzIEl0ZXJhYmxlPEJ1ZmZlcj4ge1xuICBkZWNsYXJlIHNxbFRleHQ6IHN0cmluZztcbiAgZGVjbGFyZSB0eG5EZXNjcmlwdG9yOiBCdWZmZXI7XG4gIGRlY2xhcmUgb3B0aW9uczogeyB0ZHNWZXJzaW9uOiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3RvcihzcWxUZXh0OiBzdHJpbmcsIHR4bkRlc2NyaXB0b3I6IEJ1ZmZlciwgb3B0aW9uczogeyB0ZHNWZXJzaW9uOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuc3FsVGV4dCA9IHNxbFRleHQ7XG4gICAgdGhpcy50eG5EZXNjcmlwdG9yID0gdHhuRGVzY3JpcHRvcjtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICB9XG5cbiAgKltTeW1ib2wuaXRlcmF0b3JdKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMudGRzVmVyc2lvbiA+PSAnN18yJykge1xuICAgICAgY29uc3QgYnVmZmVyID0gbmV3IFdyaXRhYmxlVHJhY2tpbmdCdWZmZXIoKTtcbiAgICAgIGNvbnN0IG91dHN0YW5kaW5nUmVxdWVzdENvdW50ID0gMTtcblxuICAgICAgd3JpdGVUb1RyYWNraW5nQnVmZmVyKGJ1ZmZlciwgdGhpcy50eG5EZXNjcmlwdG9yLCBvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCk7XG5cbiAgICAgIHlpZWxkIGJ1ZmZlci5kYXRhO1xuICAgIH1cblxuICAgIHlpZWxkIEJ1ZmZlci5mcm9tKHRoaXMuc3FsVGV4dCwgJ3VjczInKTtcbiAgfVxuXG4gIHRvU3RyaW5nKGluZGVudCA9ICcnKSB7XG4gICAgcmV0dXJuIGluZGVudCArICgnU1FMIEJhdGNoIC0gJyArIHRoaXMuc3FsVGV4dCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3FsQmF0Y2hQYXlsb2FkO1xubW9kdWxlLmV4cG9ydHMgPSBTcWxCYXRjaFBheWxvYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLHVCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFBc0QsU0FBQUQsdUJBQUFHLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFdEQ7QUFDQTtBQUNBO0FBQ0EsTUFBTUcsZUFBZSxDQUE2QjtFQUtoREMsV0FBV0EsQ0FBQ0MsT0FBZSxFQUFFQyxhQUFxQixFQUFFQyxPQUErQixFQUFFO0lBQ25GLElBQUksQ0FBQ0YsT0FBTyxHQUFHQSxPQUFPO0lBQ3RCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQSxhQUFhO0lBQ2xDLElBQUksQ0FBQ0MsT0FBTyxHQUFHQSxPQUFPO0VBQ3hCO0VBRUEsRUFBRUMsTUFBTSxDQUFDQyxRQUFRLElBQUk7SUFDbkIsSUFBSSxJQUFJLENBQUNGLE9BQU8sQ0FBQ0csVUFBVSxJQUFJLEtBQUssRUFBRTtNQUNwQyxNQUFNQyxNQUFNLEdBQUcsSUFBSUMsK0JBQXNCLENBQUMsQ0FBQztNQUMzQyxNQUFNQyx1QkFBdUIsR0FBRyxDQUFDO01BRWpDLElBQUFDLGlDQUFxQixFQUFDSCxNQUFNLEVBQUUsSUFBSSxDQUFDTCxhQUFhLEVBQUVPLHVCQUF1QixDQUFDO01BRTFFLE1BQU1GLE1BQU0sQ0FBQ0ksSUFBSTtJQUNuQjtJQUVBLE1BQU1DLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQ1osT0FBTyxFQUFFLE1BQU0sQ0FBQztFQUN6QztFQUVBYSxRQUFRQSxDQUFDQyxNQUFNLEdBQUcsRUFBRSxFQUFFO0lBQ3BCLE9BQU9BLE1BQU0sSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDZCxPQUFPLENBQUM7RUFDakQ7QUFDRjtBQUFDLElBQUFlLFFBQUEsR0FBQUMsT0FBQSxDQUFBbkIsT0FBQSxHQUVjQyxlQUFlO0FBQzlCbUIsTUFBTSxDQUFDRCxPQUFPLEdBQUdsQixlQUFlIiwiaWdub3JlTGlzdCI6W119
@@ -1 +1 @@
1
- {"version":3,"file":"sqlbatch-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","_allHeaders","e","__esModule","default","SqlBatchPayload","constructor","sqlText","txnDescriptor","options","Symbol","iterator","tdsVersion","buffer","WritableTrackingBuffer","outstandingRequestCount","writeToTrackingBuffer","data","Buffer","from","toString","indent","_default","exports","module"],"sources":["../src/sqlbatch-payload.ts"],"sourcesContent":["import WritableTrackingBuffer from './tracking-buffer/writable-tracking-buffer';\nimport { writeToTrackingBuffer } from './all-headers';\n\n/*\n s2.2.6.6\n */\nclass SqlBatchPayload implements Iterable<Buffer> {\n declare sqlText: string;\n declare txnDescriptor: Buffer;\n declare options: { tdsVersion: string };\n\n constructor(sqlText: string, txnDescriptor: Buffer, options: { tdsVersion: string }) {\n this.sqlText = sqlText;\n this.txnDescriptor = txnDescriptor;\n this.options = options;\n }\n\n *[Symbol.iterator]() {\n if (this.options.tdsVersion >= '7_2') {\n const buffer = new WritableTrackingBuffer(18, 'ucs2');\n const outstandingRequestCount = 1;\n\n writeToTrackingBuffer(buffer, this.txnDescriptor, outstandingRequestCount);\n\n yield buffer.data;\n }\n\n yield Buffer.from(this.sqlText, 'ucs2');\n }\n\n toString(indent = '') {\n return indent + ('SQL Batch - ' + this.sqlText);\n }\n}\n\nexport default SqlBatchPayload;\nmodule.exports = SqlBatchPayload;\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAAsD,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD;AACA;AACA;AACA,MAAMG,eAAe,CAA6B;EAKhDC,WAAWA,CAACC,OAAe,EAAEC,aAAqB,EAAEC,OAA+B,EAAE;IACnF,IAAI,CAACF,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;EAEA,EAAEC,MAAM,CAACC,QAAQ,IAAI;IACnB,IAAI,IAAI,CAACF,OAAO,CAACG,UAAU,IAAI,KAAK,EAAE;MACpC,MAAMC,MAAM,GAAG,IAAIC,+BAAsB,CAAC,EAAE,EAAE,MAAM,CAAC;MACrD,MAAMC,uBAAuB,GAAG,CAAC;MAEjC,IAAAC,iCAAqB,EAACH,MAAM,EAAE,IAAI,CAACL,aAAa,EAAEO,uBAAuB,CAAC;MAE1E,MAAMF,MAAM,CAACI,IAAI;IACnB;IAEA,MAAMC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACZ,OAAO,EAAE,MAAM,CAAC;EACzC;EAEAa,QAAQA,CAACC,MAAM,GAAG,EAAE,EAAE;IACpB,OAAOA,MAAM,IAAI,cAAc,GAAG,IAAI,CAACd,OAAO,CAAC;EACjD;AACF;AAAC,IAAAe,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAEcC,eAAe;AAC9BmB,MAAM,CAACD,OAAO,GAAGlB,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"sqlbatch-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","_allHeaders","e","__esModule","default","SqlBatchPayload","constructor","sqlText","txnDescriptor","options","Symbol","iterator","tdsVersion","buffer","WritableTrackingBuffer","outstandingRequestCount","writeToTrackingBuffer","data","Buffer","from","toString","indent","_default","exports","module"],"sources":["../src/sqlbatch-payload.ts"],"sourcesContent":["import WritableTrackingBuffer from './tracking-buffer/writable-tracking-buffer';\nimport { writeToTrackingBuffer } from './all-headers';\n\n/*\n s2.2.6.6\n */\nclass SqlBatchPayload implements Iterable<Buffer> {\n declare sqlText: string;\n declare txnDescriptor: Buffer;\n declare options: { tdsVersion: string };\n\n constructor(sqlText: string, txnDescriptor: Buffer, options: { tdsVersion: string }) {\n this.sqlText = sqlText;\n this.txnDescriptor = txnDescriptor;\n this.options = options;\n }\n\n *[Symbol.iterator]() {\n if (this.options.tdsVersion >= '7_2') {\n const buffer = new WritableTrackingBuffer();\n const outstandingRequestCount = 1;\n\n writeToTrackingBuffer(buffer, this.txnDescriptor, outstandingRequestCount);\n\n yield buffer.data;\n }\n\n yield Buffer.from(this.sqlText, 'ucs2');\n }\n\n toString(indent = '') {\n return indent + ('SQL Batch - ' + this.sqlText);\n }\n}\n\nexport default SqlBatchPayload;\nmodule.exports = SqlBatchPayload;\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAAsD,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEtD;AACA;AACA;AACA,MAAMG,eAAe,CAA6B;EAKhDC,WAAWA,CAACC,OAAe,EAAEC,aAAqB,EAAEC,OAA+B,EAAE;IACnF,IAAI,CAACF,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;EAEA,EAAEC,MAAM,CAACC,QAAQ,IAAI;IACnB,IAAI,IAAI,CAACF,OAAO,CAACG,UAAU,IAAI,KAAK,EAAE;MACpC,MAAMC,MAAM,GAAG,IAAIC,+BAAsB,CAAC,CAAC;MAC3C,MAAMC,uBAAuB,GAAG,CAAC;MAEjC,IAAAC,iCAAqB,EAACH,MAAM,EAAE,IAAI,CAACL,aAAa,EAAEO,uBAAuB,CAAC;MAE1E,MAAMF,MAAM,CAACI,IAAI;IACnB;IAEA,MAAMC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACZ,OAAO,EAAE,MAAM,CAAC;EACzC;EAEAa,QAAQA,CAACC,MAAM,GAAG,EAAE,EAAE;IACpB,OAAOA,MAAM,IAAI,cAAc,GAAG,IAAI,CAACd,OAAO,CAAC;EACjD;AACF;AAAC,IAAAe,QAAA,GAAAC,OAAA,CAAAnB,OAAA,GAEcC,eAAe;AAC9BmB,MAAM,CAACD,OAAO,GAAGlB,eAAe","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { type ParserOptions } from './stream-parser';
2
+ import { ColInfoToken } from './token';
3
+ import { Result } from './helpers';
4
+ declare function colInfoParser(buf: Buffer, offset: number, _options: ParserOptions): Result<ColInfoToken>;
5
+ export default colInfoParser;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _token = require("./token");
8
+ var _helpers = require("./helpers");
9
+ // s2.2.7.3
10
+
11
+ const STATUS = {
12
+ EXPRESSION: 0x04,
13
+ KEY: 0x08,
14
+ HIDDEN: 0x10,
15
+ DIFFERENT_NAME: 0x20
16
+ };
17
+ function colInfoParser(buf, offset, _options) {
18
+ // length
19
+ let tokenLength;
20
+ ({
21
+ offset,
22
+ value: tokenLength
23
+ } = (0, _helpers.readUInt16LE)(buf, offset));
24
+ if (buf.length < offset + tokenLength) {
25
+ throw new _helpers.NotEnoughDataError(offset + tokenLength);
26
+ }
27
+ const end = offset + tokenLength;
28
+ const columns = [];
29
+ while (offset < end) {
30
+ let colNum;
31
+ ({
32
+ offset,
33
+ value: colNum
34
+ } = (0, _helpers.readUInt8)(buf, offset));
35
+ let tableNum;
36
+ ({
37
+ offset,
38
+ value: tableNum
39
+ } = (0, _helpers.readUInt8)(buf, offset));
40
+ let status;
41
+ ({
42
+ offset,
43
+ value: status
44
+ } = (0, _helpers.readUInt8)(buf, offset));
45
+ let colName;
46
+ if (status & STATUS.DIFFERENT_NAME) {
47
+ ({
48
+ offset,
49
+ value: colName
50
+ } = (0, _helpers.readBVarChar)(buf, offset));
51
+ }
52
+ columns.push({
53
+ colNum: colNum,
54
+ tableNum: tableNum,
55
+ expression: !!(status & STATUS.EXPRESSION),
56
+ key: !!(status & STATUS.KEY),
57
+ hidden: !!(status & STATUS.HIDDEN),
58
+ colName: colName
59
+ });
60
+ }
61
+ if (offset !== end) {
62
+ throw new Error('Malformed COLINFO token');
63
+ }
64
+ return new _helpers.Result(new _token.ColInfoToken(columns), offset);
65
+ }
66
+ var _default = exports.default = colInfoParser;
67
+ module.exports = colInfoParser;
68
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2hlbHBlcnMiLCJTVEFUVVMiLCJFWFBSRVNTSU9OIiwiS0VZIiwiSElEREVOIiwiRElGRkVSRU5UX05BTUUiLCJjb2xJbmZvUGFyc2VyIiwiYnVmIiwib2Zmc2V0IiwiX29wdGlvbnMiLCJ0b2tlbkxlbmd0aCIsInZhbHVlIiwicmVhZFVJbnQxNkxFIiwibGVuZ3RoIiwiTm90RW5vdWdoRGF0YUVycm9yIiwiZW5kIiwiY29sdW1ucyIsImNvbE51bSIsInJlYWRVSW50OCIsInRhYmxlTnVtIiwic3RhdHVzIiwiY29sTmFtZSIsInJlYWRCVmFyQ2hhciIsInB1c2giLCJleHByZXNzaW9uIiwia2V5IiwiaGlkZGVuIiwiRXJyb3IiLCJSZXN1bHQiLCJDb2xJbmZvVG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0IiwibW9kdWxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2NvbGluZm8tdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIHMyLjIuNy4zXG5pbXBvcnQgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuXG5pbXBvcnQgeyBDb2xJbmZvVG9rZW4sIHR5cGUgQ29sdW1uSW5mbyB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yLCByZWFkQlZhckNoYXIsIHJlYWRVSW50MTZMRSwgcmVhZFVJbnQ4LCBSZXN1bHQgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5jb25zdCBTVEFUVVMgPSB7XG4gIEVYUFJFU1NJT046IDB4MDQsXG4gIEtFWTogMHgwOCxcbiAgSElEREVOOiAweDEwLFxuICBESUZGRVJFTlRfTkFNRTogMHgyMFxufTtcblxuZnVuY3Rpb24gY29sSW5mb1BhcnNlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIF9vcHRpb25zOiBQYXJzZXJPcHRpb25zKTogUmVzdWx0PENvbEluZm9Ub2tlbj4ge1xuICAvLyBsZW5ndGhcbiAgbGV0IHRva2VuTGVuZ3RoO1xuICAoeyBvZmZzZXQsIHZhbHVlOiB0b2tlbkxlbmd0aCB9ID0gcmVhZFVJbnQxNkxFKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgaWYgKGJ1Zi5sZW5ndGggPCBvZmZzZXQgKyB0b2tlbkxlbmd0aCkge1xuICAgIHRocm93IG5ldyBOb3RFbm91Z2hEYXRhRXJyb3Iob2Zmc2V0ICsgdG9rZW5MZW5ndGgpO1xuICB9XG5cbiAgY29uc3QgZW5kID0gb2Zmc2V0ICsgdG9rZW5MZW5ndGg7XG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbkluZm9bXSA9IFtdO1xuXG4gIHdoaWxlIChvZmZzZXQgPCBlbmQpIHtcbiAgICBsZXQgY29sTnVtO1xuICAgICh7IG9mZnNldCwgdmFsdWU6IGNvbE51bSB9ID0gcmVhZFVJbnQ4KGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICBsZXQgdGFibGVOdW07XG4gICAgKHsgb2Zmc2V0LCB2YWx1ZTogdGFibGVOdW0gfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gICAgbGV0IHN0YXR1cztcbiAgICAoeyBvZmZzZXQsIHZhbHVlOiBzdGF0dXMgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gICAgbGV0IGNvbE5hbWU7XG4gICAgaWYgKHN0YXR1cyAmIFNUQVRVUy5ESUZGRVJFTlRfTkFNRSkge1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sTmFtZSB9ID0gcmVhZEJWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG4gICAgfVxuXG4gICAgY29sdW1ucy5wdXNoKHtcbiAgICAgIGNvbE51bTogY29sTnVtLFxuICAgICAgdGFibGVOdW06IHRhYmxlTnVtLFxuICAgICAgZXhwcmVzc2lvbjogISEoc3RhdHVzICYgU1RBVFVTLkVYUFJFU1NJT04pLFxuICAgICAga2V5OiAhIShzdGF0dXMgJiBTVEFUVVMuS0VZKSxcbiAgICAgIGhpZGRlbjogISEoc3RhdHVzICYgU1RBVFVTLkhJRERFTiksXG4gICAgICBjb2xOYW1lOiBjb2xOYW1lXG4gICAgfSk7XG4gIH1cblxuICBpZiAob2Zmc2V0ICE9PSBlbmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbGZvcm1lZCBDT0xJTkZPIHRva2VuJyk7XG4gIH1cblxuICByZXR1cm4gbmV3IFJlc3VsdChuZXcgQ29sSW5mb1Rva2VuKGNvbHVtbnMpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb2xJbmZvUGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBjb2xJbmZvUGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFKQTs7QUFNQSxNQUFNRSxNQUFNLEdBQUc7RUFDYkMsVUFBVSxFQUFFLElBQUk7RUFDaEJDLEdBQUcsRUFBRSxJQUFJO0VBQ1RDLE1BQU0sRUFBRSxJQUFJO0VBQ1pDLGNBQWMsRUFBRTtBQUNsQixDQUFDO0FBRUQsU0FBU0MsYUFBYUEsQ0FBQ0MsR0FBVyxFQUFFQyxNQUFjLEVBQUVDLFFBQXVCLEVBQXdCO0VBQ2pHO0VBQ0EsSUFBSUMsV0FBVztFQUNmLENBQUM7SUFBRUYsTUFBTTtJQUFFRyxLQUFLLEVBQUVEO0VBQVksQ0FBQyxHQUFHLElBQUFFLHFCQUFZLEVBQUNMLEdBQUcsRUFBRUMsTUFBTSxDQUFDO0VBRTNELElBQUlELEdBQUcsQ0FBQ00sTUFBTSxHQUFHTCxNQUFNLEdBQUdFLFdBQVcsRUFBRTtJQUNyQyxNQUFNLElBQUlJLDJCQUFrQixDQUFDTixNQUFNLEdBQUdFLFdBQVcsQ0FBQztFQUNwRDtFQUVBLE1BQU1LLEdBQUcsR0FBR1AsTUFBTSxHQUFHRSxXQUFXO0VBQ2hDLE1BQU1NLE9BQXFCLEdBQUcsRUFBRTtFQUVoQyxPQUFPUixNQUFNLEdBQUdPLEdBQUcsRUFBRTtJQUNuQixJQUFJRSxNQUFNO0lBQ1YsQ0FBQztNQUFFVCxNQUFNO01BQUVHLEtBQUssRUFBRU07SUFBTyxDQUFDLEdBQUcsSUFBQUMsa0JBQVMsRUFBQ1gsR0FBRyxFQUFFQyxNQUFNLENBQUM7SUFFbkQsSUFBSVcsUUFBUTtJQUNaLENBQUM7TUFBRVgsTUFBTTtNQUFFRyxLQUFLLEVBQUVRO0lBQVMsQ0FBQyxHQUFHLElBQUFELGtCQUFTLEVBQUNYLEdBQUcsRUFBRUMsTUFBTSxDQUFDO0lBRXJELElBQUlZLE1BQU07SUFDVixDQUFDO01BQUVaLE1BQU07TUFBRUcsS0FBSyxFQUFFUztJQUFPLENBQUMsR0FBRyxJQUFBRixrQkFBUyxFQUFDWCxHQUFHLEVBQUVDLE1BQU0sQ0FBQztJQUVuRCxJQUFJYSxPQUFPO0lBQ1gsSUFBSUQsTUFBTSxHQUFHbkIsTUFBTSxDQUFDSSxjQUFjLEVBQUU7TUFDbEMsQ0FBQztRQUFFRyxNQUFNO1FBQUVHLEtBQUssRUFBRVU7TUFBUSxDQUFDLEdBQUcsSUFBQUMscUJBQVksRUFBQ2YsR0FBRyxFQUFFQyxNQUFNLENBQUM7SUFDekQ7SUFFQVEsT0FBTyxDQUFDTyxJQUFJLENBQUM7TUFDWE4sTUFBTSxFQUFFQSxNQUFNO01BQ2RFLFFBQVEsRUFBRUEsUUFBUTtNQUNsQkssVUFBVSxFQUFFLENBQUMsRUFBRUosTUFBTSxHQUFHbkIsTUFBTSxDQUFDQyxVQUFVLENBQUM7TUFDMUN1QixHQUFHLEVBQUUsQ0FBQyxFQUFFTCxNQUFNLEdBQUduQixNQUFNLENBQUNFLEdBQUcsQ0FBQztNQUM1QnVCLE1BQU0sRUFBRSxDQUFDLEVBQUVOLE1BQU0sR0FBR25CLE1BQU0sQ0FBQ0csTUFBTSxDQUFDO01BQ2xDaUIsT0FBTyxFQUFFQTtJQUNYLENBQUMsQ0FBQztFQUNKO0VBRUEsSUFBSWIsTUFBTSxLQUFLTyxHQUFHLEVBQUU7SUFDbEIsTUFBTSxJQUFJWSxLQUFLLENBQUMseUJBQXlCLENBQUM7RUFDNUM7RUFFQSxPQUFPLElBQUlDLGVBQU0sQ0FBQyxJQUFJQyxtQkFBWSxDQUFDYixPQUFPLENBQUMsRUFBRVIsTUFBTSxDQUFDO0FBQ3REO0FBQUMsSUFBQXNCLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBLEdBRWMxQixhQUFhO0FBQzVCMkIsTUFBTSxDQUFDRixPQUFPLEdBQUd6QixhQUFhIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colinfo-token-parser.js","names":["_token","require","_helpers","STATUS","EXPRESSION","KEY","HIDDEN","DIFFERENT_NAME","colInfoParser","buf","offset","_options","tokenLength","value","readUInt16LE","length","NotEnoughDataError","end","columns","colNum","readUInt8","tableNum","status","colName","readBVarChar","push","expression","key","hidden","Error","Result","ColInfoToken","_default","exports","default","module"],"sources":["../../src/token/colinfo-token-parser.ts"],"sourcesContent":["// s2.2.7.3\nimport { type ParserOptions } from './stream-parser';\n\nimport { ColInfoToken, type ColumnInfo } from './token';\nimport { NotEnoughDataError, readBVarChar, readUInt16LE, readUInt8, Result } from './helpers';\n\nconst STATUS = {\n EXPRESSION: 0x04,\n KEY: 0x08,\n HIDDEN: 0x10,\n DIFFERENT_NAME: 0x20\n};\n\nfunction colInfoParser(buf: Buffer, offset: number, _options: ParserOptions): Result<ColInfoToken> {\n // length\n let tokenLength;\n ({ offset, value: tokenLength } = readUInt16LE(buf, offset));\n\n if (buf.length < offset + tokenLength) {\n throw new NotEnoughDataError(offset + tokenLength);\n }\n\n const end = offset + tokenLength;\n const columns: ColumnInfo[] = [];\n\n while (offset < end) {\n let colNum;\n ({ offset, value: colNum } = readUInt8(buf, offset));\n\n let tableNum;\n ({ offset, value: tableNum } = readUInt8(buf, offset));\n\n let status;\n ({ offset, value: status } = readUInt8(buf, offset));\n\n let colName;\n if (status & STATUS.DIFFERENT_NAME) {\n ({ offset, value: colName } = readBVarChar(buf, offset));\n }\n\n columns.push({\n colNum: colNum,\n tableNum: tableNum,\n expression: !!(status & STATUS.EXPRESSION),\n key: !!(status & STATUS.KEY),\n hidden: !!(status & STATUS.HIDDEN),\n colName: colName\n });\n }\n\n if (offset !== end) {\n throw new Error('Malformed COLINFO token');\n }\n\n return new Result(new ColInfoToken(columns), offset);\n}\n\nexport default colInfoParser;\nmodule.exports = colInfoParser;\n"],"mappings":";;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAJA;;AAMA,MAAME,MAAM,GAAG;EACbC,UAAU,EAAE,IAAI;EAChBC,GAAG,EAAE,IAAI;EACTC,MAAM,EAAE,IAAI;EACZC,cAAc,EAAE;AAClB,CAAC;AAED,SAASC,aAAaA,CAACC,GAAW,EAAEC,MAAc,EAAEC,QAAuB,EAAwB;EACjG;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,GAAGL,MAAM,GAAGE,WAAW,EAAE;IACrC,MAAM,IAAII,2BAAkB,CAACN,MAAM,GAAGE,WAAW,CAAC;EACpD;EAEA,MAAMK,GAAG,GAAGP,MAAM,GAAGE,WAAW;EAChC,MAAMM,OAAqB,GAAG,EAAE;EAEhC,OAAOR,MAAM,GAAGO,GAAG,EAAE;IACnB,IAAIE,MAAM;IACV,CAAC;MAAET,MAAM;MAAEG,KAAK,EAAEM;IAAO,CAAC,GAAG,IAAAC,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;IAEnD,IAAIW,QAAQ;IACZ,CAAC;MAAEX,MAAM;MAAEG,KAAK,EAAEQ;IAAS,CAAC,GAAG,IAAAD,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;IAErD,IAAIY,MAAM;IACV,CAAC;MAAEZ,MAAM;MAAEG,KAAK,EAAES;IAAO,CAAC,GAAG,IAAAF,kBAAS,EAACX,GAAG,EAAEC,MAAM,CAAC;IAEnD,IAAIa,OAAO;IACX,IAAID,MAAM,GAAGnB,MAAM,CAACI,cAAc,EAAE;MAClC,CAAC;QAAEG,MAAM;QAAEG,KAAK,EAAEU;MAAQ,CAAC,GAAG,IAAAC,qBAAY,EAACf,GAAG,EAAEC,MAAM,CAAC;IACzD;IAEAQ,OAAO,CAACO,IAAI,CAAC;MACXN,MAAM,EAAEA,MAAM;MACdE,QAAQ,EAAEA,QAAQ;MAClBK,UAAU,EAAE,CAAC,EAAEJ,MAAM,GAAGnB,MAAM,CAACC,UAAU,CAAC;MAC1CuB,GAAG,EAAE,CAAC,EAAEL,MAAM,GAAGnB,MAAM,CAACE,GAAG,CAAC;MAC5BuB,MAAM,EAAE,CAAC,EAAEN,MAAM,GAAGnB,MAAM,CAACG,MAAM,CAAC;MAClCiB,OAAO,EAAEA;IACX,CAAC,CAAC;EACJ;EAEA,IAAIb,MAAM,KAAKO,GAAG,EAAE;IAClB,MAAM,IAAIY,KAAK,CAAC,yBAAyB,CAAC;EAC5C;EAEA,OAAO,IAAIC,eAAM,CAAC,IAAIC,mBAAY,CAACb,OAAO,CAAC,EAAER,MAAM,CAAC;AACtD;AAAC,IAAAsB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc1B,aAAa;AAC5B2B,MAAM,CAACF,OAAO,GAAGzB,aAAa","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import Connection from '../connection';
2
2
  import Request from '../request';
3
3
  import { ConnectionError, RequestError } from '../errors';
4
- import { BeginTransactionEnvChangeToken, CharsetEnvChangeToken, CollationChangeToken, ColMetadataToken, CommitTransactionEnvChangeToken, DatabaseEnvChangeToken, DatabaseMirroringPartnerEnvChangeToken, DoneInProcToken, DoneProcToken, DoneToken, ErrorMessageToken, FeatureExtAckToken, FedAuthInfoToken, InfoMessageToken, LanguageEnvChangeToken, LoginAckToken, NBCRowToken, OrderToken, PacketSizeEnvChangeToken, ResetConnectionEnvChangeToken, ReturnStatusToken, ReturnValueToken, RollbackTransactionEnvChangeToken, RoutingEnvChangeToken, RowToken, SSPIToken, Token } from './token';
4
+ import { BeginTransactionEnvChangeToken, CharsetEnvChangeToken, ColInfoToken, CollationChangeToken, ColMetadataToken, CommitTransactionEnvChangeToken, DatabaseEnvChangeToken, DatabaseMirroringPartnerEnvChangeToken, DoneInProcToken, DoneProcToken, DoneToken, ErrorMessageToken, FeatureExtAckToken, FedAuthInfoToken, InfoMessageToken, LanguageEnvChangeToken, LoginAckToken, NBCRowToken, OrderToken, PacketSizeEnvChangeToken, ResetConnectionEnvChangeToken, ReturnStatusToken, ReturnValueToken, RollbackTransactionEnvChangeToken, RoutingEnvChangeToken, RowToken, SSPIToken, TabNameToken, Token } from './token';
5
5
  import BulkLoad from '../bulk-load';
6
6
  export declare class UnexpectedTokenError extends Error {
7
7
  constructor(handler: TokenHandler, token: Token);
@@ -34,6 +34,8 @@ export declare class TokenHandler {
34
34
  onFeatureExtAck(token: FeatureExtAckToken): void;
35
35
  onLoginAck(token: LoginAckToken): void;
36
36
  onColMetadata(token: ColMetadataToken): void;
37
+ onTabName(token: TabNameToken): void;
38
+ onColInfo(token: ColInfoToken): void;
37
39
  onOrder(token: OrderToken): void;
38
40
  onRow(token: RowToken | NBCRowToken): void;
39
41
  onReturnStatus(token: ReturnStatusToken): void;
@@ -120,6 +122,8 @@ export declare class RequestTokenHandler extends TokenHandler {
120
122
  onCommitTransaction(token: CommitTransactionEnvChangeToken): void;
121
123
  onRollbackTransaction(token: RollbackTransactionEnvChangeToken): void;
122
124
  onColMetadata(token: ColMetadataToken): void;
125
+ onTabName(token: TabNameToken): void;
126
+ onColInfo(token: ColInfoToken): void;
123
127
  onOrder(token: OrderToken): void;
124
128
  onRow(token: RowToken | NBCRowToken): void;
125
129
  onReturnStatus(token: ReturnStatusToken): void;