tedious 16.4.1 → 16.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/benchmarks/bulk-load/iterable.js +1 -1
  2. package/benchmarks/common.js +2 -4
  3. package/benchmarks/package-lock.json +21173 -0
  4. package/benchmarks/package.json +11 -0
  5. package/benchmarks/query/call-tvp.js +1 -1
  6. package/benchmarks/query/insert-varbinary.js +1 -1
  7. package/benchmarks/query/select-many-rows.js +1 -1
  8. package/benchmarks/query/select-nvarchar.js +1 -1
  9. package/benchmarks/query/select-varbinary.js +1 -1
  10. package/benchmarks/request/rpcrequest-payload-tvp.js +2 -2
  11. package/benchmarks/request/rpcrequest-payload-varbinary.js +2 -2
  12. package/benchmarks/token-parser/colmetadata-token.js +4 -2
  13. package/benchmarks/token-parser/done-token.js +5 -2
  14. package/benchmarks/token-parser/simple-tokens.js +8 -2
  15. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js +1 -8
  16. package/lib/always-encrypted/aead-aes-256-cbc-hmac-algorithm.js.map +1 -1
  17. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js +1 -8
  18. package/lib/always-encrypted/aead-aes-256-cbc-hmac-encryption-key.js.map +1 -1
  19. package/lib/always-encrypted/cek-entry.js +1 -7
  20. package/lib/always-encrypted/cek-entry.js.map +1 -1
  21. package/lib/always-encrypted/keystore-provider-azure-key-vault.js +1 -8
  22. package/lib/always-encrypted/keystore-provider-azure-key-vault.js.map +1 -1
  23. package/lib/always-encrypted/symmetric-key.js +1 -2
  24. package/lib/always-encrypted/symmetric-key.js.map +1 -1
  25. package/lib/bulk-load-payload.js +1 -3
  26. package/lib/bulk-load-payload.js.map +1 -1
  27. package/lib/bulk-load.js +15 -23
  28. package/lib/bulk-load.js.map +1 -1
  29. package/lib/collation.js +1 -7
  30. package/lib/collation.js.map +1 -1
  31. package/lib/connection.js +22 -28
  32. package/lib/connection.js.map +1 -1
  33. package/lib/debug.js +1 -4
  34. package/lib/debug.js.map +1 -1
  35. package/lib/errors/abort-error.js +1 -2
  36. package/lib/errors/abort-error.js.map +1 -1
  37. package/lib/errors/timeout-error.js +1 -2
  38. package/lib/errors/timeout-error.js.map +1 -1
  39. package/lib/errors.js +1 -10
  40. package/lib/errors.js.map +1 -1
  41. package/lib/incoming-message-stream.js +1 -4
  42. package/lib/incoming-message-stream.js.map +1 -1
  43. package/lib/login7-payload.js +1 -23
  44. package/lib/login7-payload.js.map +1 -1
  45. package/lib/message-io.js +1 -8
  46. package/lib/message-io.js.map +1 -1
  47. package/lib/message.js +1 -4
  48. package/lib/message.js.map +1 -1
  49. package/lib/metadata-parser.js +361 -241
  50. package/lib/metadata-parser.js.map +1 -1
  51. package/lib/ntlm-payload.js +1 -2
  52. package/lib/ntlm-payload.js.map +1 -1
  53. package/lib/outgoing-message-stream.js +1 -5
  54. package/lib/outgoing-message-stream.js.map +1 -1
  55. package/lib/packet.js +1 -2
  56. package/lib/packet.js.map +1 -1
  57. package/lib/prelogin-payload.js +1 -11
  58. package/lib/prelogin-payload.js.map +1 -1
  59. package/lib/request.js +13 -19
  60. package/lib/request.js.map +1 -1
  61. package/lib/rpcrequest-payload.js +1 -6
  62. package/lib/rpcrequest-payload.js.map +1 -1
  63. package/lib/sqlbatch-payload.js +1 -4
  64. package/lib/sqlbatch-payload.js.map +1 -1
  65. package/lib/token/colmetadata-token-parser.js +103 -74
  66. package/lib/token/colmetadata-token-parser.js.map +1 -1
  67. package/lib/token/done-token-parser.js +52 -40
  68. package/lib/token/done-token-parser.js.map +1 -1
  69. package/lib/token/env-change-token-parser.js +110 -81
  70. package/lib/token/env-change-token-parser.js.map +1 -1
  71. package/lib/token/feature-ext-ack-parser.js +30 -22
  72. package/lib/token/feature-ext-ack-parser.js.map +1 -1
  73. package/lib/token/fedauth-info-parser.js +47 -30
  74. package/lib/token/fedauth-info-parser.js.map +1 -1
  75. package/lib/token/handler.js +3 -13
  76. package/lib/token/handler.js.map +1 -1
  77. package/lib/token/helpers.js +205 -0
  78. package/lib/token/helpers.js.map +1 -0
  79. package/lib/token/infoerror-token-parser.js +69 -36
  80. package/lib/token/infoerror-token-parser.js.map +1 -1
  81. package/lib/token/loginack-token-parser.js +59 -31
  82. package/lib/token/loginack-token-parser.js.map +1 -1
  83. package/lib/token/nbcrow-token-parser.js +60 -23
  84. package/lib/token/nbcrow-token-parser.js.map +1 -1
  85. package/lib/token/order-token-parser.js +22 -20
  86. package/lib/token/order-token-parser.js.map +1 -1
  87. package/lib/token/returnstatus-token-parser.js +9 -5
  88. package/lib/token/returnstatus-token-parser.js.map +1 -1
  89. package/lib/token/returnvalue-token-parser.js +79 -22
  90. package/lib/token/returnvalue-token-parser.js.map +1 -1
  91. package/lib/token/row-token-parser.js +50 -20
  92. package/lib/token/row-token-parser.js.map +1 -1
  93. package/lib/token/sspi-token-parser.js +14 -5
  94. package/lib/token/sspi-token-parser.js.map +1 -1
  95. package/lib/token/stream-parser.js +289 -330
  96. package/lib/token/stream-parser.js.map +1 -1
  97. package/lib/token/token-stream-parser.js +1 -4
  98. package/lib/token/token-stream-parser.js.map +1 -1
  99. package/lib/token/token.js +2 -88
  100. package/lib/token/token.js.map +1 -1
  101. package/lib/tracking-buffer/writable-tracking-buffer.js +1 -7
  102. package/lib/tracking-buffer/writable-tracking-buffer.js.map +1 -1
  103. package/lib/transaction.js +1 -4
  104. package/lib/transaction.js.map +1 -1
  105. package/lib/value-parser.js +655 -438
  106. package/lib/value-parser.js.map +1 -1
  107. package/package.json +1 -1
  108. package/benchmarks/bulk-load/stream.js +0 -62
  109. package/benchmarks/bulk-load/sync.js +0 -59
@@ -1 +1 @@
1
- {"version":3,"file":"rpcrequest-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","_allHeaders","obj","__esModule","default","STATUS","BY_REF_VALUE","DEFAULT_VALUE","RpcRequestPayload","procedure","parameters","options","txnDescriptor","collation","constructor","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","_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';\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 procedure: string | number;\n parameters: Parameter[];\n\n options: InternalConnectionOptions;\n txnDescriptor: Buffer;\n 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 yield * type.generateParameterData(param, this.options);\n }\n}\n\nexport default RpcRequestPayload;\nmodule.exports = RpcRequestPayload;\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAAsD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAKtD;AACA;AACA;AACA;AACA;AAEA,MAAMG,MAAM,GAAG;EACbC,YAAY,EAAE,IAAI;EAClBC,aAAa,EAAE;AACjB,CAAC;;AAED;AACA;AACA;AACA,MAAMC,iBAAiB,CAA6B;EAClDC,SAAS;EACTC,UAAU;EAEVC,OAAO;EACPC,aAAa;EACbC,SAAS;EAETC,WAAWA,CAACL,SAA0B,EAAEC,UAAuB,EAAEE,aAAqB,EAAED,OAAkC,EAAEE,SAAgC,EAAE;IAC5J,IAAI,CAACJ,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,SAAS,GAAGA,SAAS;EAC5B;EAEA,CAACE,MAAM,CAACC,QAAQ,IAAI;IAClB,OAAO,IAAI,CAACC,YAAY,CAAC,CAAC;EAC5B;EAEA,CAAEA,YAAYA,CAAA,EAAG;IACf,MAAMC,MAAM,GAAG,IAAIC,+BAAsB,CAAC,GAAG,CAAC;IAC9C,IAAI,IAAI,CAACR,OAAO,CAACS,UAAU,IAAI,KAAK,EAAE;MACpC,MAAMC,uBAAuB,GAAG,CAAC;MACjC,IAAAC,iCAAqB,EAACJ,MAAM,EAAE,IAAI,CAACN,aAAa,EAAES,uBAAuB,CAAC;IAC5E;IAEA,IAAI,OAAO,IAAI,CAACZ,SAAS,KAAK,QAAQ,EAAE;MACtCS,MAAM,CAACK,cAAc,CAAC,IAAI,CAACd,SAAS,CAAC;IACvC,CAAC,MAAM;MACLS,MAAM,CAACM,WAAW,CAAC,MAAM,CAAC;MAC1BN,MAAM,CAACM,WAAW,CAAC,IAAI,CAACf,SAAS,CAAC;IACpC;IAEA,MAAMgB,WAAW,GAAG,CAAC;IACrBP,MAAM,CAACQ,aAAa,CAACD,WAAW,CAAC;IACjC,MAAMP,MAAM,CAACS,IAAI;IAEjB,MAAMC,gBAAgB,GAAG,IAAI,CAAClB,UAAU,CAACmB,MAAM;IAC/C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,gBAAgB,EAAEE,CAAC,EAAE,EAAE;MACzC,OAAQ,IAAI,CAACC,qBAAqB,CAAC,IAAI,CAACrB,UAAU,CAACoB,CAAC,CAAC,CAAC;IACxD;EACF;EAEAE,QAAQA,CAACC,MAAM,GAAG,EAAE,EAAE;IACpB,OAAOA,MAAM,IAAI,gBAAgB,GAAG,IAAI,CAACxB,SAAS,CAAC;EACrD;EAEA,CAAEsB,qBAAqBA,CAACG,SAAoB,EAAE;IAC5C,MAAMhB,MAAM,GAAG,IAAIC,+BAAsB,CAAC,CAAC,GAAG,CAAC,GAAGgB,MAAM,CAACC,UAAU,CAACF,SAAS,CAACG,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAEjG,IAAIH,SAAS,CAACG,IAAI,EAAE;MAClBnB,MAAM,CAACoB,aAAa,CAAC,GAAG,GAAGJ,SAAS,CAACG,IAAI,CAAC;IAC5C,CAAC,MAAM;MACLnB,MAAM,CAACoB,aAAa,CAAC,EAAE,CAAC;IAC1B;IAEA,IAAIC,WAAW,GAAG,CAAC;IACnB,IAAIL,SAAS,CAACM,MAAM,EAAE;MACpBD,WAAW,IAAIlC,MAAM,CAACC,YAAY;IACpC;IACAY,MAAM,CAACuB,UAAU,CAACF,WAAW,CAAC;IAE9B,MAAMrB,MAAM,CAACS,IAAI;IAEjB,MAAMe,KAAoB,GAAG;MAAEC,KAAK,EAAET,SAAS,CAACS;IAAM,CAAC;IAEvD,MAAMC,IAAI,GAAGV,SAAS,CAACU,IAAI;IAE3B,IAAI,CAACA,IAAI,CAACC,EAAE,GAAG,IAAI,MAAM,IAAI,EAAE;MAC7B,IAAIX,SAAS,CAACL,MAAM,EAAE;QACpBa,KAAK,CAACb,MAAM,GAAGK,SAAS,CAACL,MAAM;MACjC,CAAC,MAAM,IAAIe,IAAI,CAACE,aAAa,EAAE;QAC7BJ,KAAK,CAACb,MAAM,GAAGe,IAAI,CAACE,aAAa,CAACZ,SAAS,CAAC;MAC9C;IACF;IAEA,IAAIA,SAAS,CAACa,SAAS,EAAE;MACvBL,KAAK,CAACK,SAAS,GAAGb,SAAS,CAACa,SAAS;IACvC,CAAC,MAAM,IAAIH,IAAI,CAACI,gBAAgB,EAAE;MAChCN,KAAK,CAACK,SAAS,GAAGH,IAAI,CAACI,gBAAgB,CAACd,SAAS,CAAC;IACpD;IAEA,IAAIA,SAAS,CAACe,KAAK,EAAE;MACnBP,KAAK,CAACO,KAAK,GAAGf,SAAS,CAACe,KAAK;IAC/B,CAAC,MAAM,IAAIL,IAAI,CAACM,YAAY,EAAE;MAC5BR,KAAK,CAACO,KAAK,GAAGL,IAAI,CAACM,YAAY,CAAChB,SAAS,CAAC;IAC5C;IAEA,IAAI,IAAI,CAACrB,SAAS,EAAE;MAClB6B,KAAK,CAAC7B,SAAS,GAAG,IAAI,CAACA,SAAS;IAClC;IAEA,MAAM+B,IAAI,CAACO,gBAAgB,CAACT,KAAK,EAAE,IAAI,CAAC/B,OAAO,CAAC;IAChD,MAAMiC,IAAI,CAACQ,uBAAuB,CAACV,KAAK,EAAE,IAAI,CAAC/B,OAAO,CAAC;IACvD,OAAQiC,IAAI,CAACb,qBAAqB,CAACW,KAAK,EAAE,IAAI,CAAC/B,OAAO,CAAC;EACzD;AACF;AAAC,IAAA0C,QAAA,GAEc7C,iBAAiB;AAAA8C,OAAA,CAAAlD,OAAA,GAAAiD,QAAA;AAChCE,MAAM,CAACD,OAAO,GAAG9C,iBAAiB"}
1
+ {"version":3,"file":"rpcrequest-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","_allHeaders","obj","__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","_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';\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 yield * type.generateParameterData(param, this.options);\n }\n}\n\nexport default RpcRequestPayload;\nmodule.exports = RpcRequestPayload;\n"],"mappings":"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"}
@@ -11,9 +11,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
11
11
  s2.2.6.6
12
12
  */
13
13
  class SqlBatchPayload {
14
- sqlText;
15
- txnDescriptor;
16
- options;
17
14
  constructor(sqlText, txnDescriptor, options) {
18
15
  this.sqlText = sqlText;
19
16
  this.txnDescriptor = txnDescriptor;
@@ -35,4 +32,4 @@ class SqlBatchPayload {
35
32
  var _default = SqlBatchPayload;
36
33
  exports.default = _default;
37
34
  module.exports = SqlBatchPayload;
38
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FsbEhlYWRlcnMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlNxbEJhdGNoUGF5bG9hZCIsInNxbFRleHQiLCJ0eG5EZXNjcmlwdG9yIiwib3B0aW9ucyIsImNvbnN0cnVjdG9yIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJ0ZHNWZXJzaW9uIiwiYnVmZmVyIiwiV3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIm91dHN0YW5kaW5nUmVxdWVzdENvdW50Iiwid3JpdGVUb1RyYWNraW5nQnVmZmVyIiwiZGF0YSIsIkJ1ZmZlciIsImZyb20iLCJ0b1N0cmluZyIsImluZGVudCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zcWxiYXRjaC1wYXlsb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXcml0YWJsZVRyYWNraW5nQnVmZmVyIGZyb20gJy4vdHJhY2tpbmctYnVmZmVyL3dyaXRhYmxlLXRyYWNraW5nLWJ1ZmZlcic7XG5pbXBvcnQgeyB3cml0ZVRvVHJhY2tpbmdCdWZmZXIgfSBmcm9tICcuL2FsbC1oZWFkZXJzJztcblxuLypcbiAgczIuMi42LjZcbiAqL1xuY2xhc3MgU3FsQmF0Y2hQYXlsb2FkIGltcGxlbWVudHMgSXRlcmFibGU8QnVmZmVyPiB7XG4gIHNxbFRleHQ6IHN0cmluZztcbiAgdHhuRGVzY3JpcHRvcjogQnVmZmVyO1xuICBvcHRpb25zOiB7IHRkc1ZlcnNpb246IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHNxbFRleHQ6IHN0cmluZywgdHhuRGVzY3JpcHRvcjogQnVmZmVyLCBvcHRpb25zOiB7IHRkc1ZlcnNpb246IHN0cmluZyB9KSB7XG4gICAgdGhpcy5zcWxUZXh0ID0gc3FsVGV4dDtcbiAgICB0aGlzLnR4bkRlc2NyaXB0b3IgPSB0eG5EZXNjcmlwdG9yO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy50ZHNWZXJzaW9uID49ICc3XzInKSB7XG4gICAgICBjb25zdCBidWZmZXIgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcigxOCwgJ3VjczInKTtcbiAgICAgIGNvbnN0IG91dHN0YW5kaW5nUmVxdWVzdENvdW50ID0gMTtcblxuICAgICAgd3JpdGVUb1RyYWNraW5nQnVmZmVyKGJ1ZmZlciwgdGhpcy50eG5EZXNjcmlwdG9yLCBvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCk7XG5cbiAgICAgIHlpZWxkIGJ1ZmZlci5kYXRhO1xuICAgIH1cblxuICAgIHlpZWxkIEJ1ZmZlci5mcm9tKHRoaXMuc3FsVGV4dCwgJ3VjczInKTtcbiAgfVxuXG4gIHRvU3RyaW5nKGluZGVudCA9ICcnKSB7XG4gICAgcmV0dXJuIGluZGVudCArICgnU1FMIEJhdGNoIC0gJyArIHRoaXMuc3FsVGV4dCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3FsQmF0Y2hQYXlsb2FkO1xubW9kdWxlLmV4cG9ydHMgPSBTcWxCYXRjaFBheWxvYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLHVCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFBc0QsU0FBQUQsdUJBQUFHLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFdEQ7QUFDQTtBQUNBO0FBQ0EsTUFBTUcsZUFBZSxDQUE2QjtFQUNoREMsT0FBTztFQUNQQyxhQUFhO0VBQ2JDLE9BQU87RUFFUEMsV0FBV0EsQ0FBQ0gsT0FBZSxFQUFFQyxhQUFxQixFQUFFQyxPQUErQixFQUFFO0lBQ25GLElBQUksQ0FBQ0YsT0FBTyxHQUFHQSxPQUFPO0lBQ3RCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQSxhQUFhO0lBQ2xDLElBQUksQ0FBQ0MsT0FBTyxHQUFHQSxPQUFPO0VBQ3hCO0VBRUEsRUFBRUUsTUFBTSxDQUFDQyxRQUFRLElBQUk7SUFDbkIsSUFBSSxJQUFJLENBQUNILE9BQU8sQ0FBQ0ksVUFBVSxJQUFJLEtBQUssRUFBRTtNQUNwQyxNQUFNQyxNQUFNLEdBQUcsSUFBSUMsK0JBQXNCLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQztNQUNyRCxNQUFNQyx1QkFBdUIsR0FBRyxDQUFDO01BRWpDLElBQUFDLGlDQUFxQixFQUFDSCxNQUFNLEVBQUUsSUFBSSxDQUFDTixhQUFhLEVBQUVRLHVCQUF1QixDQUFDO01BRTFFLE1BQU1GLE1BQU0sQ0FBQ0ksSUFBSTtJQUNuQjtJQUVBLE1BQU1DLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQ2IsT0FBTyxFQUFFLE1BQU0sQ0FBQztFQUN6QztFQUVBYyxRQUFRQSxDQUFDQyxNQUFNLEdBQUcsRUFBRSxFQUFFO0lBQ3BCLE9BQU9BLE1BQU0sSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDZixPQUFPLENBQUM7RUFDakQ7QUFDRjtBQUFDLElBQUFnQixRQUFBLEdBRWNqQixlQUFlO0FBQUFrQixPQUFBLENBQUFuQixPQUFBLEdBQUFrQixRQUFBO0FBQzlCRSxNQUFNLENBQUNELE9BQU8sR0FBR2xCLGVBQWUifQ==
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX2FsbEhlYWRlcnMiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlNxbEJhdGNoUGF5bG9hZCIsImNvbnN0cnVjdG9yIiwic3FsVGV4dCIsInR4bkRlc2NyaXB0b3IiLCJvcHRpb25zIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJ0ZHNWZXJzaW9uIiwiYnVmZmVyIiwiV3JpdGFibGVUcmFja2luZ0J1ZmZlciIsIm91dHN0YW5kaW5nUmVxdWVzdENvdW50Iiwid3JpdGVUb1RyYWNraW5nQnVmZmVyIiwiZGF0YSIsIkJ1ZmZlciIsImZyb20iLCJ0b1N0cmluZyIsImluZGVudCIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zcWxiYXRjaC1wYXlsb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXcml0YWJsZVRyYWNraW5nQnVmZmVyIGZyb20gJy4vdHJhY2tpbmctYnVmZmVyL3dyaXRhYmxlLXRyYWNraW5nLWJ1ZmZlcic7XG5pbXBvcnQgeyB3cml0ZVRvVHJhY2tpbmdCdWZmZXIgfSBmcm9tICcuL2FsbC1oZWFkZXJzJztcblxuLypcbiAgczIuMi42LjZcbiAqL1xuY2xhc3MgU3FsQmF0Y2hQYXlsb2FkIGltcGxlbWVudHMgSXRlcmFibGU8QnVmZmVyPiB7XG4gIGRlY2xhcmUgc3FsVGV4dDogc3RyaW5nO1xuICBkZWNsYXJlIHR4bkRlc2NyaXB0b3I6IEJ1ZmZlcjtcbiAgZGVjbGFyZSBvcHRpb25zOiB7IHRkc1ZlcnNpb246IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHNxbFRleHQ6IHN0cmluZywgdHhuRGVzY3JpcHRvcjogQnVmZmVyLCBvcHRpb25zOiB7IHRkc1ZlcnNpb246IHN0cmluZyB9KSB7XG4gICAgdGhpcy5zcWxUZXh0ID0gc3FsVGV4dDtcbiAgICB0aGlzLnR4bkRlc2NyaXB0b3IgPSB0eG5EZXNjcmlwdG9yO1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gIH1cblxuICAqW1N5bWJvbC5pdGVyYXRvcl0oKSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy50ZHNWZXJzaW9uID49ICc3XzInKSB7XG4gICAgICBjb25zdCBidWZmZXIgPSBuZXcgV3JpdGFibGVUcmFja2luZ0J1ZmZlcigxOCwgJ3VjczInKTtcbiAgICAgIGNvbnN0IG91dHN0YW5kaW5nUmVxdWVzdENvdW50ID0gMTtcblxuICAgICAgd3JpdGVUb1RyYWNraW5nQnVmZmVyKGJ1ZmZlciwgdGhpcy50eG5EZXNjcmlwdG9yLCBvdXRzdGFuZGluZ1JlcXVlc3RDb3VudCk7XG5cbiAgICAgIHlpZWxkIGJ1ZmZlci5kYXRhO1xuICAgIH1cblxuICAgIHlpZWxkIEJ1ZmZlci5mcm9tKHRoaXMuc3FsVGV4dCwgJ3VjczInKTtcbiAgfVxuXG4gIHRvU3RyaW5nKGluZGVudCA9ICcnKSB7XG4gICAgcmV0dXJuIGluZGVudCArICgnU1FMIEJhdGNoIC0gJyArIHRoaXMuc3FsVGV4dCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3FsQmF0Y2hQYXlsb2FkO1xubW9kdWxlLmV4cG9ydHMgPSBTcWxCYXRjaFBheWxvYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLHVCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFBc0QsU0FBQUQsdUJBQUFHLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFdEQ7QUFDQTtBQUNBO0FBQ0EsTUFBTUcsZUFBZSxDQUE2QjtFQUtoREMsV0FBV0EsQ0FBQ0MsT0FBZSxFQUFFQyxhQUFxQixFQUFFQyxPQUErQixFQUFFO0lBQ25GLElBQUksQ0FBQ0YsT0FBTyxHQUFHQSxPQUFPO0lBQ3RCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQSxhQUFhO0lBQ2xDLElBQUksQ0FBQ0MsT0FBTyxHQUFHQSxPQUFPO0VBQ3hCO0VBRUEsRUFBRUMsTUFBTSxDQUFDQyxRQUFRLElBQUk7SUFDbkIsSUFBSSxJQUFJLENBQUNGLE9BQU8sQ0FBQ0csVUFBVSxJQUFJLEtBQUssRUFBRTtNQUNwQyxNQUFNQyxNQUFNLEdBQUcsSUFBSUMsK0JBQXNCLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQztNQUNyRCxNQUFNQyx1QkFBdUIsR0FBRyxDQUFDO01BRWpDLElBQUFDLGlDQUFxQixFQUFDSCxNQUFNLEVBQUUsSUFBSSxDQUFDTCxhQUFhLEVBQUVPLHVCQUF1QixDQUFDO01BRTFFLE1BQU1GLE1BQU0sQ0FBQ0ksSUFBSTtJQUNuQjtJQUVBLE1BQU1DLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQ1osT0FBTyxFQUFFLE1BQU0sQ0FBQztFQUN6QztFQUVBYSxRQUFRQSxDQUFDQyxNQUFNLEdBQUcsRUFBRSxFQUFFO0lBQ3BCLE9BQU9BLE1BQU0sSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDZCxPQUFPLENBQUM7RUFDakQ7QUFDRjtBQUFDLElBQUFlLFFBQUEsR0FFY2pCLGVBQWU7QUFBQWtCLE9BQUEsQ0FBQW5CLE9BQUEsR0FBQWtCLFFBQUE7QUFDOUJFLE1BQU0sQ0FBQ0QsT0FBTyxHQUFHbEIsZUFBZSJ9
@@ -1 +1 @@
1
- {"version":3,"file":"sqlbatch-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","_allHeaders","obj","__esModule","default","SqlBatchPayload","sqlText","txnDescriptor","options","constructor","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 sqlText: string;\n txnDescriptor: Buffer;\n 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,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEtD;AACA;AACA;AACA,MAAMG,eAAe,CAA6B;EAChDC,OAAO;EACPC,aAAa;EACbC,OAAO;EAEPC,WAAWA,CAACH,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,EAAEE,MAAM,CAACC,QAAQ,IAAI;IACnB,IAAI,IAAI,CAACH,OAAO,CAACI,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,CAACN,aAAa,EAAEQ,uBAAuB,CAAC;MAE1E,MAAMF,MAAM,CAACI,IAAI;IACnB;IAEA,MAAMC,MAAM,CAACC,IAAI,CAAC,IAAI,CAACb,OAAO,EAAE,MAAM,CAAC;EACzC;EAEAc,QAAQA,CAACC,MAAM,GAAG,EAAE,EAAE;IACpB,OAAOA,MAAM,IAAI,cAAc,GAAG,IAAI,CAACf,OAAO,CAAC;EACjD;AACF;AAAC,IAAAgB,QAAA,GAEcjB,eAAe;AAAAkB,OAAA,CAAAnB,OAAA,GAAAkB,QAAA;AAC9BE,MAAM,CAACD,OAAO,GAAGlB,eAAe"}
1
+ {"version":3,"file":"sqlbatch-payload.js","names":["_writableTrackingBuffer","_interopRequireDefault","require","_allHeaders","obj","__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,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;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,GAEcjB,eAAe;AAAAkB,OAAA,CAAAnB,OAAA,GAAAkB,QAAA;AAC9BE,MAAM,CAACD,OAAO,GAAGlB,eAAe"}
@@ -4,93 +4,122 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _metadataParser = _interopRequireDefault(require("../metadata-parser"));
7
+ var _metadataParser = require("../metadata-parser");
8
8
  var _token = require("./token");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- function readTableName(parser, options, metadata, callback) {
11
- if (metadata.type.hasTableName) {
12
- if (options.tdsVersion >= '7_2') {
13
- parser.readUInt8(numberOfTableNameParts => {
14
- const tableName = [];
15
- let i = 0;
16
- function next(done) {
17
- if (numberOfTableNameParts === i) {
18
- return done();
19
- }
20
- parser.readUsVarChar(part => {
21
- tableName.push(part);
22
- i++;
23
- next(done);
24
- });
25
- }
26
- next(() => {
27
- callback(tableName);
28
- });
29
- });
30
- } else {
31
- parser.readUsVarChar(callback);
32
- }
33
- } else {
34
- callback(undefined);
9
+ var _helpers = require("./helpers");
10
+ function readTableName(buf, offset, metadata, options) {
11
+ if (!metadata.type.hasTableName) {
12
+ return new _helpers.Result(undefined, offset);
13
+ }
14
+ if (options.tdsVersion < '7_2') {
15
+ return (0, _helpers.readUsVarChar)(buf, offset);
16
+ }
17
+ let numberOfTableNameParts;
18
+ ({
19
+ offset,
20
+ value: numberOfTableNameParts
21
+ } = (0, _helpers.readUInt8)(buf, offset));
22
+ const tableName = [];
23
+ for (let i = 0; i < numberOfTableNameParts; i++) {
24
+ let tableNamePart;
25
+ ({
26
+ offset,
27
+ value: tableNamePart
28
+ } = (0, _helpers.readUsVarChar)(buf, offset));
29
+ tableName.push(tableNamePart);
35
30
  }
31
+ return new _helpers.Result(tableName, offset);
36
32
  }
37
- function readColumnName(parser, options, index, metadata, callback) {
38
- parser.readBVarChar(colName => {
39
- if (options.columnNameReplacer) {
40
- callback(options.columnNameReplacer(colName, index, metadata));
41
- } else if (options.camelCaseColumns) {
42
- callback(colName.replace(/^[A-Z]/, function (s) {
43
- return s.toLowerCase();
44
- }));
45
- } else {
46
- callback(colName);
47
- }
48
- });
33
+ function readColumnName(buf, offset, index, metadata, options) {
34
+ let colName;
35
+ ({
36
+ offset,
37
+ value: colName
38
+ } = (0, _helpers.readBVarChar)(buf, offset));
39
+ if (options.columnNameReplacer) {
40
+ return new _helpers.Result(options.columnNameReplacer(colName, index, metadata), offset);
41
+ } else if (options.camelCaseColumns) {
42
+ return new _helpers.Result(colName.replace(/^[A-Z]/, function (s) {
43
+ return s.toLowerCase();
44
+ }), offset);
45
+ } else {
46
+ return new _helpers.Result(colName, offset);
47
+ }
49
48
  }
50
- function readColumn(parser, options, index, callback) {
51
- (0, _metadataParser.default)(parser, options, metadata => {
52
- readTableName(parser, options, metadata, tableName => {
53
- readColumnName(parser, options, index, metadata, colName => {
54
- callback({
55
- userType: metadata.userType,
56
- flags: metadata.flags,
57
- type: metadata.type,
58
- collation: metadata.collation,
59
- precision: metadata.precision,
60
- scale: metadata.scale,
61
- udtInfo: metadata.udtInfo,
62
- dataLength: metadata.dataLength,
63
- schema: metadata.schema,
64
- colName: colName,
65
- tableName: tableName
66
- });
67
- });
68
- });
69
- });
49
+ function readColumn(buf, offset, options, index) {
50
+ let metadata;
51
+ ({
52
+ offset,
53
+ value: metadata
54
+ } = (0, _metadataParser.readMetadata)(buf, offset, options));
55
+ let tableName;
56
+ ({
57
+ offset,
58
+ value: tableName
59
+ } = readTableName(buf, offset, metadata, options));
60
+ let colName;
61
+ ({
62
+ offset,
63
+ value: colName
64
+ } = readColumnName(buf, offset, index, metadata, options));
65
+ return new _helpers.Result({
66
+ userType: metadata.userType,
67
+ flags: metadata.flags,
68
+ type: metadata.type,
69
+ collation: metadata.collation,
70
+ precision: metadata.precision,
71
+ scale: metadata.scale,
72
+ udtInfo: metadata.udtInfo,
73
+ dataLength: metadata.dataLength,
74
+ schema: metadata.schema,
75
+ colName: colName,
76
+ tableName: tableName
77
+ }, offset);
70
78
  }
71
79
  async function colMetadataParser(parser) {
72
- while (parser.buffer.length - parser.position < 2) {
73
- await parser.streamBuffer.waitForChunk();
80
+ let columnCount;
81
+ while (true) {
82
+ let offset;
83
+ try {
84
+ ({
85
+ offset,
86
+ value: columnCount
87
+ } = (0, _helpers.readUInt16LE)(parser.buffer, parser.position));
88
+ } catch (err) {
89
+ if (err instanceof _helpers.NotEnoughDataError) {
90
+ await parser.waitForChunk();
91
+ continue;
92
+ }
93
+ throw err;
94
+ }
95
+ parser.position = offset;
96
+ break;
74
97
  }
75
- const columnCount = parser.buffer.readUInt16LE(parser.position);
76
- parser.position += 2;
77
98
  const columns = [];
78
99
  for (let i = 0; i < columnCount; i++) {
79
- let column;
80
- readColumn(parser, parser.options, i, c => {
81
- column = c;
82
- });
83
- while (parser.suspended) {
84
- await parser.streamBuffer.waitForChunk();
85
- parser.suspended = false;
86
- const next = parser.next;
87
- next();
100
+ while (true) {
101
+ let column;
102
+ let offset;
103
+ try {
104
+ ({
105
+ offset,
106
+ value: column
107
+ } = readColumn(parser.buffer, parser.position, parser.options, i));
108
+ } catch (err) {
109
+ if (err instanceof _helpers.NotEnoughDataError) {
110
+ await parser.waitForChunk();
111
+ continue;
112
+ }
113
+ throw err;
114
+ }
115
+ parser.position = offset;
116
+ columns.push(column);
117
+ break;
88
118
  }
89
- columns.push(column);
90
119
  }
91
120
  return new _token.ColMetadataToken(columns);
92
121
  }
93
122
  var _default = colMetadataParser;
94
123
  exports.default = _default;
95
124
  module.exports = colMetadataParser;
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWV0YWRhdGFQYXJzZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl90b2tlbiIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwicmVhZFRhYmxlTmFtZSIsInBhcnNlciIsIm9wdGlvbnMiLCJtZXRhZGF0YSIsImNhbGxiYWNrIiwidHlwZSIsImhhc1RhYmxlTmFtZSIsInRkc1ZlcnNpb24iLCJyZWFkVUludDgiLCJudW1iZXJPZlRhYmxlTmFtZVBhcnRzIiwidGFibGVOYW1lIiwiaSIsIm5leHQiLCJkb25lIiwicmVhZFVzVmFyQ2hhciIsInBhcnQiLCJwdXNoIiwidW5kZWZpbmVkIiwicmVhZENvbHVtbk5hbWUiLCJpbmRleCIsInJlYWRCVmFyQ2hhciIsImNvbE5hbWUiLCJjb2x1bW5OYW1lUmVwbGFjZXIiLCJjYW1lbENhc2VDb2x1bW5zIiwicmVwbGFjZSIsInMiLCJ0b0xvd2VyQ2FzZSIsInJlYWRDb2x1bW4iLCJtZXRhZGF0YVBhcnNlIiwidXNlclR5cGUiLCJmbGFncyIsImNvbGxhdGlvbiIsInByZWNpc2lvbiIsInNjYWxlIiwidWR0SW5mbyIsImRhdGFMZW5ndGgiLCJzY2hlbWEiLCJjb2xNZXRhZGF0YVBhcnNlciIsImJ1ZmZlciIsImxlbmd0aCIsInBvc2l0aW9uIiwic3RyZWFtQnVmZmVyIiwid2FpdEZvckNodW5rIiwiY29sdW1uQ291bnQiLCJyZWFkVUludDE2TEUiLCJjb2x1bW5zIiwiY29sdW1uIiwiYyIsInN1c3BlbmRlZCIsIkNvbE1ldGFkYXRhVG9rZW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJtb2R1bGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vY29sbWV0YWRhdGEtdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZXRhZGF0YVBhcnNlLCB7IHR5cGUgTWV0YWRhdGEgfSBmcm9tICcuLi9tZXRhZGF0YS1wYXJzZXInO1xuXG5pbXBvcnQgUGFyc2VyLCB7IHR5cGUgUGFyc2VyT3B0aW9ucyB9IGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyBDb2xNZXRhZGF0YVRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uTWV0YWRhdGEgZXh0ZW5kcyBNZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBUaGUgY29sdW1uJ3MgbmFtZeOAglxuICAgKi9cbiAgY29sTmFtZTogc3RyaW5nO1xuXG4gIHRhYmxlTmFtZT86IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiByZWFkVGFibGVOYW1lKHBhcnNlcjogUGFyc2VyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBtZXRhZGF0YTogTWV0YWRhdGEsIGNhbGxiYWNrOiAodGFibGVOYW1lPzogc3RyaW5nIHwgc3RyaW5nW10pID0+IHZvaWQpIHtcbiAgaWYgKG1ldGFkYXRhLnR5cGUuaGFzVGFibGVOYW1lKSB7XG4gICAgaWYgKG9wdGlvbnMudGRzVmVyc2lvbiA+PSAnN18yJykge1xuICAgICAgcGFyc2VyLnJlYWRVSW50OCgobnVtYmVyT2ZUYWJsZU5hbWVQYXJ0cykgPT4ge1xuICAgICAgICBjb25zdCB0YWJsZU5hbWU6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBmdW5jdGlvbiBuZXh0KGRvbmU6ICgpID0+IHZvaWQpIHtcbiAgICAgICAgICBpZiAobnVtYmVyT2ZUYWJsZU5hbWVQYXJ0cyA9PT0gaSkge1xuICAgICAgICAgICAgcmV0dXJuIGRvbmUoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBwYXJzZXIucmVhZFVzVmFyQ2hhcigocGFydCkgPT4ge1xuICAgICAgICAgICAgdGFibGVOYW1lLnB1c2gocGFydCk7XG5cbiAgICAgICAgICAgIGkrKztcblxuICAgICAgICAgICAgbmV4dChkb25lKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5leHQoKCkgPT4ge1xuICAgICAgICAgIGNhbGxiYWNrKHRhYmxlTmFtZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcnNlci5yZWFkVXNWYXJDaGFyKGNhbGxiYWNrKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY2FsbGJhY2sodW5kZWZpbmVkKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWFkQ29sdW1uTmFtZShwYXJzZXI6IFBhcnNlciwgb3B0aW9uczogUGFyc2VyT3B0aW9ucywgaW5kZXg6IG51bWJlciwgbWV0YWRhdGE6IE1ldGFkYXRhLCBjYWxsYmFjazogKGNvbE5hbWU6IHN0cmluZykgPT4gdm9pZCkge1xuICBwYXJzZXIucmVhZEJWYXJDaGFyKChjb2xOYW1lKSA9PiB7XG4gICAgaWYgKG9wdGlvbnMuY29sdW1uTmFtZVJlcGxhY2VyKSB7XG4gICAgICBjYWxsYmFjayhvcHRpb25zLmNvbHVtbk5hbWVSZXBsYWNlcihjb2xOYW1lLCBpbmRleCwgbWV0YWRhdGEpKTtcbiAgICB9IGVsc2UgaWYgKG9wdGlvbnMuY2FtZWxDYXNlQ29sdW1ucykge1xuICAgICAgY2FsbGJhY2soY29sTmFtZS5yZXBsYWNlKC9eW0EtWl0vLCBmdW5jdGlvbihzKSB7XG4gICAgICAgIHJldHVybiBzLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrKGNvbE5hbWUpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlYWRDb2x1bW4ocGFyc2VyOiBQYXJzZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoY29sdW1uOiBDb2x1bW5NZXRhZGF0YSkgPT4gdm9pZCkge1xuICBtZXRhZGF0YVBhcnNlKHBhcnNlciwgb3B0aW9ucywgKG1ldGFkYXRhKSA9PiB7XG4gICAgcmVhZFRhYmxlTmFtZShwYXJzZXIsIG9wdGlvbnMsIG1ldGFkYXRhLCAodGFibGVOYW1lKSA9PiB7XG4gICAgICByZWFkQ29sdW1uTmFtZShwYXJzZXIsIG9wdGlvbnMsIGluZGV4LCBtZXRhZGF0YSwgKGNvbE5hbWUpID0+IHtcbiAgICAgICAgY2FsbGJhY2soe1xuICAgICAgICAgIHVzZXJUeXBlOiBtZXRhZGF0YS51c2VyVHlwZSxcbiAgICAgICAgICBmbGFnczogbWV0YWRhdGEuZmxhZ3MsXG4gICAgICAgICAgdHlwZTogbWV0YWRhdGEudHlwZSxcbiAgICAgICAgICBjb2xsYXRpb246IG1ldGFkYXRhLmNvbGxhdGlvbixcbiAgICAgICAgICBwcmVjaXNpb246IG1ldGFkYXRhLnByZWNpc2lvbixcbiAgICAgICAgICBzY2FsZTogbWV0YWRhdGEuc2NhbGUsXG4gICAgICAgICAgdWR0SW5mbzogbWV0YWRhdGEudWR0SW5mbyxcbiAgICAgICAgICBkYXRhTGVuZ3RoOiBtZXRhZGF0YS5kYXRhTGVuZ3RoLFxuICAgICAgICAgIHNjaGVtYTogbWV0YWRhdGEuc2NoZW1hLFxuICAgICAgICAgIGNvbE5hbWU6IGNvbE5hbWUsXG4gICAgICAgICAgdGFibGVOYW1lOiB0YWJsZU5hbWVcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbE1ldGFkYXRhUGFyc2VyKHBhcnNlcjogUGFyc2VyKTogUHJvbWlzZTxDb2xNZXRhZGF0YVRva2VuPiB7XG4gIHdoaWxlIChwYXJzZXIuYnVmZmVyLmxlbmd0aCAtIHBhcnNlci5wb3NpdGlvbiA8IDIpIHtcbiAgICBhd2FpdCBwYXJzZXIuc3RyZWFtQnVmZmVyLndhaXRGb3JDaHVuaygpO1xuICB9XG5cbiAgY29uc3QgY29sdW1uQ291bnQgPSBwYXJzZXIuYnVmZmVyLnJlYWRVSW50MTZMRShwYXJzZXIucG9zaXRpb24pO1xuICBwYXJzZXIucG9zaXRpb24gKz0gMjtcblxuICBjb25zdCBjb2x1bW5zOiBDb2x1bW5NZXRhZGF0YVtdID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1uQ291bnQ7IGkrKykge1xuICAgIGxldCBjb2x1bW46IENvbHVtbk1ldGFkYXRhO1xuXG4gICAgcmVhZENvbHVtbihwYXJzZXIsIHBhcnNlci5vcHRpb25zLCBpLCAoYykgPT4ge1xuICAgICAgY29sdW1uID0gYztcbiAgICB9KTtcblxuICAgIHdoaWxlIChwYXJzZXIuc3VzcGVuZGVkKSB7XG4gICAgICBhd2FpdCBwYXJzZXIuc3RyZWFtQnVmZmVyLndhaXRGb3JDaHVuaygpO1xuXG4gICAgICBwYXJzZXIuc3VzcGVuZGVkID0gZmFsc2U7XG4gICAgICBjb25zdCBuZXh0ID0gcGFyc2VyLm5leHQhO1xuXG4gICAgICBuZXh0KCk7XG4gICAgfVxuXG4gICAgY29sdW1ucy5wdXNoKGNvbHVtbiEpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBDb2xNZXRhZGF0YVRva2VuKGNvbHVtbnMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjb2xNZXRhZGF0YVBhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gY29sTWV0YWRhdGFQYXJzZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUdBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUEyQyxTQUFBRCx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQVczQyxTQUFTRyxhQUFhQSxDQUFDQyxNQUFjLEVBQUVDLE9BQXNCLEVBQUVDLFFBQWtCLEVBQUVDLFFBQWlELEVBQUU7RUFDcEksSUFBSUQsUUFBUSxDQUFDRSxJQUFJLENBQUNDLFlBQVksRUFBRTtJQUM5QixJQUFJSixPQUFPLENBQUNLLFVBQVUsSUFBSSxLQUFLLEVBQUU7TUFDL0JOLE1BQU0sQ0FBQ08sU0FBUyxDQUFFQyxzQkFBc0IsSUFBSztRQUMzQyxNQUFNQyxTQUFtQixHQUFHLEVBQUU7UUFFOUIsSUFBSUMsQ0FBQyxHQUFHLENBQUM7UUFDVCxTQUFTQyxJQUFJQSxDQUFDQyxJQUFn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
125
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWV0YWRhdGFQYXJzZXIiLCJyZXF1aXJlIiwiX3Rva2VuIiwiX2hlbHBlcnMiLCJyZWFkVGFibGVOYW1lIiwiYnVmIiwib2Zmc2V0IiwibWV0YWRhdGEiLCJvcHRpb25zIiwidHlwZSIsImhhc1RhYmxlTmFtZSIsIlJlc3VsdCIsInVuZGVmaW5lZCIsInRkc1ZlcnNpb24iLCJyZWFkVXNWYXJDaGFyIiwibnVtYmVyT2ZUYWJsZU5hbWVQYXJ0cyIsInZhbHVlIiwicmVhZFVJbnQ4IiwidGFibGVOYW1lIiwiaSIsInRhYmxlTmFtZVBhcnQiLCJwdXNoIiwicmVhZENvbHVtbk5hbWUiLCJpbmRleCIsImNvbE5hbWUiLCJyZWFkQlZhckNoYXIiLCJjb2x1bW5OYW1lUmVwbGFjZXIiLCJjYW1lbENhc2VDb2x1bW5zIiwicmVwbGFjZSIsInMiLCJ0b0xvd2VyQ2FzZSIsInJlYWRDb2x1bW4iLCJyZWFkTWV0YWRhdGEiLCJ1c2VyVHlwZSIsImZsYWdzIiwiY29sbGF0aW9uIiwicHJlY2lzaW9uIiwic2NhbGUiLCJ1ZHRJbmZvIiwiZGF0YUxlbmd0aCIsInNjaGVtYSIsImNvbE1ldGFkYXRhUGFyc2VyIiwicGFyc2VyIiwiY29sdW1uQ291bnQiLCJyZWFkVUludDE2TEUiLCJidWZmZXIiLCJwb3NpdGlvbiIsImVyciIsIk5vdEVub3VnaERhdGFFcnJvciIsIndhaXRGb3JDaHVuayIsImNvbHVtbnMiLCJjb2x1bW4iLCJDb2xNZXRhZGF0YVRva2VuIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiZGVmYXVsdCIsIm1vZHVsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9jb2xtZXRhZGF0YS10b2tlbi1wYXJzZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZE1ldGFkYXRhLCB0eXBlIE1ldGFkYXRhIH0gZnJvbSAnLi4vbWV0YWRhdGEtcGFyc2VyJztcblxuaW1wb3J0IFBhcnNlciwgeyB0eXBlIFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuaW1wb3J0IHsgQ29sTWV0YWRhdGFUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgTm90RW5vdWdoRGF0YUVycm9yLCBSZXN1bHQsIHJlYWRCVmFyQ2hhciwgcmVhZFVJbnQxNkxFLCByZWFkVUludDgsIHJlYWRVc1ZhckNoYXIgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbk1ldGFkYXRhIGV4dGVuZHMgTWV0YWRhdGEge1xuICAvKipcbiAgICogVGhlIGNvbHVtbidzIG5hbWXjgIJcbiAgICovXG4gIGNvbE5hbWU6IHN0cmluZztcblxuICB0YWJsZU5hbWU/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbn1cblxuZnVuY3Rpb24gcmVhZFRhYmxlTmFtZShidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG1ldGFkYXRhOiBNZXRhZGF0YSwgb3B0aW9uczogUGFyc2VyT3B0aW9ucyk6IFJlc3VsdDxzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4ge1xuICBpZiAoIW1ldGFkYXRhLnR5cGUuaGFzVGFibGVOYW1lKSB7XG4gICAgcmV0dXJuIG5ldyBSZXN1bHQodW5kZWZpbmVkLCBvZmZzZXQpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMudGRzVmVyc2lvbiA8ICc3XzInKSB7XG4gICAgcmV0dXJuIHJlYWRVc1ZhckNoYXIoYnVmLCBvZmZzZXQpO1xuICB9XG5cbiAgbGV0IG51bWJlck9mVGFibGVOYW1lUGFydHM7XG4gICh7IG9mZnNldCwgdmFsdWU6IG51bWJlck9mVGFibGVOYW1lUGFydHMgfSA9IHJlYWRVSW50OChidWYsIG9mZnNldCkpO1xuXG4gIGNvbnN0IHRhYmxlTmFtZTogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1iZXJPZlRhYmxlTmFtZVBhcnRzOyBpKyspIHtcbiAgICBsZXQgdGFibGVOYW1lUGFydDtcbiAgICAoeyBvZmZzZXQsIHZhbHVlOiB0YWJsZU5hbWVQYXJ0IH0gPSByZWFkVXNWYXJDaGFyKGJ1Ziwgb2Zmc2V0KSk7XG5cbiAgICB0YWJsZU5hbWUucHVzaCh0YWJsZU5hbWVQYXJ0KTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUmVzdWx0KHRhYmxlTmFtZSwgb2Zmc2V0KTtcbn1cblxuZnVuY3Rpb24gcmVhZENvbHVtbk5hbWUoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBpbmRleDogbnVtYmVyLCBtZXRhZGF0YTogTWV0YWRhdGEsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8c3RyaW5nPiB7XG4gIGxldCBjb2xOYW1lO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjb2xOYW1lIH0gPSByZWFkQlZhckNoYXIoYnVmLCBvZmZzZXQpKTtcblxuICBpZiAob3B0aW9ucy5jb2x1bW5OYW1lUmVwbGFjZXIpIHtcbiAgICByZXR1cm4gbmV3IFJlc3VsdChvcHRpb25zLmNvbHVtbk5hbWVSZXBsYWNlcihjb2xOYW1lLCBpbmRleCwgbWV0YWRhdGEpLCBvZmZzZXQpO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMuY2FtZWxDYXNlQ29sdW1ucykge1xuICAgIHJldHVybiBuZXcgUmVzdWx0KGNvbE5hbWUucmVwbGFjZSgvXltBLVpdLywgZnVuY3Rpb24ocykge1xuICAgICAgcmV0dXJuIHMudG9Mb3dlckNhc2UoKTtcbiAgICB9KSwgb2Zmc2V0KTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IFJlc3VsdChjb2xOYW1lLCBvZmZzZXQpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlYWRDb2x1bW4oYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBpbmRleDogbnVtYmVyKSB7XG4gIGxldCBtZXRhZGF0YTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogbWV0YWRhdGEgfSA9IHJlYWRNZXRhZGF0YShidWYsIG9mZnNldCwgb3B0aW9ucykpO1xuXG4gIGxldCB0YWJsZU5hbWU7XG4gICh7IG9mZnNldCwgdmFsdWU6IHRhYmxlTmFtZSB9ID0gcmVhZFRhYmxlTmFtZShidWYsIG9mZnNldCwgbWV0YWRhdGEsIG9wdGlvbnMpKTtcblxuICBsZXQgY29sTmFtZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sTmFtZSB9ID0gcmVhZENvbHVtbk5hbWUoYnVmLCBvZmZzZXQsIGluZGV4LCBtZXRhZGF0YSwgb3B0aW9ucykpO1xuXG4gIHJldHVybiBuZXcgUmVzdWx0KHtcbiAgICB1c2VyVHlwZTogbWV0YWRhdGEudXNlclR5cGUsXG4gICAgZmxhZ3M6IG1ldGFkYXRhLmZsYWdzLFxuICAgIHR5cGU6IG1ldGFkYXRhLnR5cGUsXG4gICAgY29sbGF0aW9uOiBtZXRhZGF0YS5jb2xsYXRpb24sXG4gICAgcHJlY2lzaW9uOiBtZXRhZGF0YS5wcmVjaXNpb24sXG4gICAgc2NhbGU6IG1ldGFkYXRhLnNjYWxlLFxuICAgIHVkdEluZm86IG1ldGFkYXRhLnVkdEluZm8sXG4gICAgZGF0YUxlbmd0aDogbWV0YWRhdGEuZGF0YUxlbmd0aCxcbiAgICBzY2hlbWE6IG1ldGFkYXRhLnNjaGVtYSxcbiAgICBjb2xOYW1lOiBjb2xOYW1lLFxuICAgIHRhYmxlTmFtZTogdGFibGVOYW1lXG4gIH0sIG9mZnNldCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNvbE1ldGFkYXRhUGFyc2VyKHBhcnNlcjogUGFyc2VyKTogUHJvbWlzZTxDb2xNZXRhZGF0YVRva2VuPiB7XG4gIGxldCBjb2x1bW5Db3VudDtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGxldCBvZmZzZXQ7XG5cbiAgICB0cnkge1xuICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sdW1uQ291bnQgfSA9IHJlYWRVSW50MTZMRShwYXJzZXIuYnVmZmVyLCBwYXJzZXIucG9zaXRpb24pKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgYXdhaXQgcGFyc2VyLndhaXRGb3JDaHVuaygpO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIHBhcnNlci5wb3NpdGlvbiA9IG9mZnNldDtcbiAgICBicmVhaztcbiAgfVxuXG4gIGNvbnN0IGNvbHVtbnM6IENvbHVtbk1ldGFkYXRhW10gPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2x1bW5Db3VudDsgaSsrKSB7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGxldCBjb2x1bW46IENvbHVtbk1ldGFkYXRhO1xuICAgICAgbGV0IG9mZnNldDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgKHsgb2Zmc2V0LCB2YWx1ZTogY29sdW1uIH0gPSByZWFkQ29sdW1uKHBhcnNlci5idWZmZXIsIHBhcnNlci5wb3NpdGlvbiwgcGFyc2VyLm9wdGlvbnMsIGkpKTtcbiAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RFbm91Z2hEYXRhRXJyb3IpIHtcbiAgICAgICAgICBhd2FpdCBwYXJzZXIud2FpdEZvckNodW5rKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIHBhcnNlci5wb3NpdGlvbiA9IG9mZnNldDtcbiAgICAgIGNvbHVtbnMucHVzaChjb2x1bW4pO1xuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbmV3IENvbE1ldGFkYXRhVG9rZW4oY29sdW1ucyk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNvbE1ldGFkYXRhUGFyc2VyO1xubW9kdWxlLmV4cG9ydHMgPSBjb2xNZXRhZGF0YVBhcnNlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsZUFBQSxHQUFBQyxPQUFBO0FBR0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBV0EsU0FBU0csYUFBYUEsQ0FBQ0MsR0FBVyxF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
@@ -1 +1 @@
1
- {"version":3,"file":"colmetadata-token-parser.js","names":["_metadataParser","_interopRequireDefault","require","_token","obj","__esModule","default","readTableName","parser","options","metadata","callback","type","hasTableName","tdsVersion","readUInt8","numberOfTableNameParts","tableName","i","next","done","readUsVarChar","part","push","undefined","readColumnName","index","readBVarChar","colName","columnNameReplacer","camelCaseColumns","replace","s","toLowerCase","readColumn","metadataParse","userType","flags","collation","precision","scale","udtInfo","dataLength","schema","colMetadataParser","buffer","length","position","streamBuffer","waitForChunk","columnCount","readUInt16LE","columns","column","c","suspended","ColMetadataToken","_default","exports","module"],"sources":["../../src/token/colmetadata-token-parser.ts"],"sourcesContent":["import metadataParse, { type Metadata } from '../metadata-parser';\n\nimport Parser, { type ParserOptions } from './stream-parser';\nimport { ColMetadataToken } from './token';\n\nexport interface ColumnMetadata extends Metadata {\n /**\n * The column's name。\n */\n colName: string;\n\n tableName?: string | string[] | undefined;\n}\n\nfunction readTableName(parser: Parser, options: ParserOptions, metadata: Metadata, callback: (tableName?: string | string[]) => void) {\n if (metadata.type.hasTableName) {\n if (options.tdsVersion >= '7_2') {\n parser.readUInt8((numberOfTableNameParts) => {\n const tableName: string[] = [];\n\n let i = 0;\n function next(done: () => void) {\n if (numberOfTableNameParts === i) {\n return done();\n }\n\n parser.readUsVarChar((part) => {\n tableName.push(part);\n\n i++;\n\n next(done);\n });\n }\n\n next(() => {\n callback(tableName);\n });\n });\n } else {\n parser.readUsVarChar(callback);\n }\n } else {\n callback(undefined);\n }\n}\n\nfunction readColumnName(parser: Parser, options: ParserOptions, index: number, metadata: Metadata, callback: (colName: string) => void) {\n parser.readBVarChar((colName) => {\n if (options.columnNameReplacer) {\n callback(options.columnNameReplacer(colName, index, metadata));\n } else if (options.camelCaseColumns) {\n callback(colName.replace(/^[A-Z]/, function(s) {\n return s.toLowerCase();\n }));\n } else {\n callback(colName);\n }\n });\n}\n\nfunction readColumn(parser: Parser, options: ParserOptions, index: number, callback: (column: ColumnMetadata) => void) {\n metadataParse(parser, options, (metadata) => {\n readTableName(parser, options, metadata, (tableName) => {\n readColumnName(parser, options, index, metadata, (colName) => {\n callback({\n userType: metadata.userType,\n flags: metadata.flags,\n type: metadata.type,\n collation: metadata.collation,\n precision: metadata.precision,\n scale: metadata.scale,\n udtInfo: metadata.udtInfo,\n dataLength: metadata.dataLength,\n schema: metadata.schema,\n colName: colName,\n tableName: tableName\n });\n });\n });\n });\n}\n\nasync function colMetadataParser(parser: Parser): Promise<ColMetadataToken> {\n while (parser.buffer.length - parser.position < 2) {\n await parser.streamBuffer.waitForChunk();\n }\n\n const columnCount = parser.buffer.readUInt16LE(parser.position);\n parser.position += 2;\n\n const columns: ColumnMetadata[] = [];\n for (let i = 0; i < columnCount; i++) {\n let column: ColumnMetadata;\n\n readColumn(parser, parser.options, i, (c) => {\n column = c;\n });\n\n while (parser.suspended) {\n await parser.streamBuffer.waitForChunk();\n\n parser.suspended = false;\n const next = parser.next!;\n\n next();\n }\n\n columns.push(column!);\n }\n\n return new ColMetadataToken(columns);\n}\n\nexport default colMetadataParser;\nmodule.exports = colMetadataParser;\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAA2C,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAW3C,SAASG,aAAaA,CAACC,MAAc,EAAEC,OAAsB,EAAEC,QAAkB,EAAEC,QAAiD,EAAE;EACpI,IAAID,QAAQ,CAACE,IAAI,CAACC,YAAY,EAAE;IAC9B,IAAIJ,OAAO,CAACK,UAAU,IAAI,KAAK,EAAE;MAC/BN,MAAM,CAACO,SAAS,CAAEC,sBAAsB,IAAK;QAC3C,MAAMC,SAAmB,GAAG,EAAE;QAE9B,IAAIC,CAAC,GAAG,CAAC;QACT,SAASC,IAAIA,CAACC,IAAgB,EAAE;UAC9B,IAAIJ,sBAAsB,KAAKE,CAAC,EAAE;YAChC,OAAOE,IAAI,CAAC,CAAC;UACf;UAEAZ,MAAM,CAACa,aAAa,CAAEC,IAAI,IAAK;YAC7BL,SAAS,CAACM,IAAI,CAACD,IAAI,CAAC;YAEpBJ,CAAC,EAAE;YAEHC,IAAI,CAACC,IAAI,CAAC;UACZ,CAAC,CAAC;QACJ;QAEAD,IAAI,CAAC,MAAM;UACTR,QAAQ,CAACM,SAAS,CAAC;QACrB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,MAAM;MACLT,MAAM,CAACa,aAAa,CAACV,QAAQ,CAAC;IAChC;EACF,CAAC,MAAM;IACLA,QAAQ,CAACa,SAAS,CAAC;EACrB;AACF;AAEA,SAASC,cAAcA,CAACjB,MAAc,EAAEC,OAAsB,EAAEiB,KAAa,EAAEhB,QAAkB,EAAEC,QAAmC,EAAE;EACtIH,MAAM,CAACmB,YAAY,CAAEC,OAAO,IAAK;IAC/B,IAAInB,OAAO,CAACoB,kBAAkB,EAAE;MAC9BlB,QAAQ,CAACF,OAAO,CAACoB,kBAAkB,CAACD,OAAO,EAAEF,KAAK,EAAEhB,QAAQ,CAAC,CAAC;IAChE,CAAC,MAAM,IAAID,OAAO,CAACqB,gBAAgB,EAAE;MACnCnB,QAAQ,CAACiB,OAAO,CAACG,OAAO,CAAC,QAAQ,EAAE,UAASC,CAAC,EAAE;QAC7C,OAAOA,CAAC,CAACC,WAAW,CAAC,CAAC;MACxB,CAAC,CAAC,CAAC;IACL,CAAC,MAAM;MACLtB,QAAQ,CAACiB,OAAO,CAAC;IACnB;EACF,CAAC,CAAC;AACJ;AAEA,SAASM,UAAUA,CAAC1B,MAAc,EAAEC,OAAsB,EAAEiB,KAAa,EAAEf,QAA0C,EAAE;EACrH,IAAAwB,uBAAa,EAAC3B,MAAM,EAAEC,OAAO,EAAGC,QAAQ,IAAK;IAC3CH,aAAa,CAACC,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAGO,SAAS,IAAK;MACtDQ,cAAc,CAACjB,MAAM,EAAEC,OAAO,EAAEiB,KAAK,EAAEhB,QAAQ,EAAGkB,OAAO,IAAK;QAC5DjB,QAAQ,CAAC;UACPyB,QAAQ,EAAE1B,QAAQ,CAAC0B,QAAQ;UAC3BC,KAAK,EAAE3B,QAAQ,CAAC2B,KAAK;UACrBzB,IAAI,EAAEF,QAAQ,CAACE,IAAI;UACnB0B,SAAS,EAAE5B,QAAQ,CAAC4B,SAAS;UAC7BC,SAAS,EAAE7B,QAAQ,CAAC6B,SAAS;UAC7BC,KAAK,EAAE9B,QAAQ,CAAC8B,KAAK;UACrBC,OAAO,EAAE/B,QAAQ,CAAC+B,OAAO;UACzBC,UAAU,EAAEhC,QAAQ,CAACgC,UAAU;UAC/BC,MAAM,EAAEjC,QAAQ,CAACiC,MAAM;UACvBf,OAAO,EAAEA,OAAO;UAChBX,SAAS,EAAEA;QACb,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,eAAe2B,iBAAiBA,CAACpC,MAAc,EAA6B;EAC1E,OAAOA,MAAM,CAACqC,MAAM,CAACC,MAAM,GAAGtC,MAAM,CAACuC,QAAQ,GAAG,CAAC,EAAE;IACjD,MAAMvC,MAAM,CAACwC,YAAY,CAACC,YAAY,CAAC,CAAC;EAC1C;EAEA,MAAMC,WAAW,GAAG1C,MAAM,CAACqC,MAAM,CAACM,YAAY,CAAC3C,MAAM,CAACuC,QAAQ,CAAC;EAC/DvC,MAAM,CAACuC,QAAQ,IAAI,CAAC;EAEpB,MAAMK,OAAyB,GAAG,EAAE;EACpC,KAAK,IAAIlC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgC,WAAW,EAAEhC,CAAC,EAAE,EAAE;IACpC,IAAImC,MAAsB;IAE1BnB,UAAU,CAAC1B,MAAM,EAAEA,MAAM,CAACC,OAAO,EAAES,CAAC,EAAGoC,CAAC,IAAK;MAC3CD,MAAM,GAAGC,CAAC;IACZ,CAAC,CAAC;IAEF,OAAO9C,MAAM,CAAC+C,SAAS,EAAE;MACvB,MAAM/C,MAAM,CAACwC,YAAY,CAACC,YAAY,CAAC,CAAC;MAExCzC,MAAM,CAAC+C,SAAS,GAAG,KAAK;MACxB,MAAMpC,IAAI,GAAGX,MAAM,CAACW,IAAK;MAEzBA,IAAI,CAAC,CAAC;IACR;IAEAiC,OAAO,CAAC7B,IAAI,CAAC8B,MAAO,CAAC;EACvB;EAEA,OAAO,IAAIG,uBAAgB,CAACJ,OAAO,CAAC;AACtC;AAAC,IAAAK,QAAA,GAEcb,iBAAiB;AAAAc,OAAA,CAAApD,OAAA,GAAAmD,QAAA;AAChCE,MAAM,CAACD,OAAO,GAAGd,iBAAiB"}
1
+ {"version":3,"file":"colmetadata-token-parser.js","names":["_metadataParser","require","_token","_helpers","readTableName","buf","offset","metadata","options","type","hasTableName","Result","undefined","tdsVersion","readUsVarChar","numberOfTableNameParts","value","readUInt8","tableName","i","tableNamePart","push","readColumnName","index","colName","readBVarChar","columnNameReplacer","camelCaseColumns","replace","s","toLowerCase","readColumn","readMetadata","userType","flags","collation","precision","scale","udtInfo","dataLength","schema","colMetadataParser","parser","columnCount","readUInt16LE","buffer","position","err","NotEnoughDataError","waitForChunk","columns","column","ColMetadataToken","_default","exports","default","module"],"sources":["../../src/token/colmetadata-token-parser.ts"],"sourcesContent":["import { readMetadata, type Metadata } from '../metadata-parser';\n\nimport Parser, { type ParserOptions } from './stream-parser';\nimport { ColMetadataToken } from './token';\nimport { NotEnoughDataError, Result, readBVarChar, readUInt16LE, readUInt8, readUsVarChar } from './helpers';\n\nexport interface ColumnMetadata extends Metadata {\n /**\n * The column's name。\n */\n colName: string;\n\n tableName?: string | string[] | undefined;\n}\n\nfunction readTableName(buf: Buffer, offset: number, metadata: Metadata, options: ParserOptions): Result<string | string[] | undefined> {\n if (!metadata.type.hasTableName) {\n return new Result(undefined, offset);\n }\n\n if (options.tdsVersion < '7_2') {\n return readUsVarChar(buf, offset);\n }\n\n let numberOfTableNameParts;\n ({ offset, value: numberOfTableNameParts } = readUInt8(buf, offset));\n\n const tableName: string[] = [];\n for (let i = 0; i < numberOfTableNameParts; i++) {\n let tableNamePart;\n ({ offset, value: tableNamePart } = readUsVarChar(buf, offset));\n\n tableName.push(tableNamePart);\n }\n\n return new Result(tableName, offset);\n}\n\nfunction readColumnName(buf: Buffer, offset: number, index: number, metadata: Metadata, options: ParserOptions): Result<string> {\n let colName;\n ({ offset, value: colName } = readBVarChar(buf, offset));\n\n if (options.columnNameReplacer) {\n return new Result(options.columnNameReplacer(colName, index, metadata), offset);\n } else if (options.camelCaseColumns) {\n return new Result(colName.replace(/^[A-Z]/, function(s) {\n return s.toLowerCase();\n }), offset);\n } else {\n return new Result(colName, offset);\n }\n}\n\nfunction readColumn(buf: Buffer, offset: number, options: ParserOptions, index: number) {\n let metadata;\n ({ offset, value: metadata } = readMetadata(buf, offset, options));\n\n let tableName;\n ({ offset, value: tableName } = readTableName(buf, offset, metadata, options));\n\n let colName;\n ({ offset, value: colName } = readColumnName(buf, offset, index, metadata, options));\n\n return new Result({\n userType: metadata.userType,\n flags: metadata.flags,\n type: metadata.type,\n collation: metadata.collation,\n precision: metadata.precision,\n scale: metadata.scale,\n udtInfo: metadata.udtInfo,\n dataLength: metadata.dataLength,\n schema: metadata.schema,\n colName: colName,\n tableName: tableName\n }, offset);\n}\n\nasync function colMetadataParser(parser: Parser): Promise<ColMetadataToken> {\n let columnCount;\n\n while (true) {\n let offset;\n\n try {\n ({ offset, value: columnCount } = readUInt16LE(parser.buffer, parser.position));\n } catch (err) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = offset;\n break;\n }\n\n const columns: ColumnMetadata[] = [];\n for (let i = 0; i < columnCount; i++) {\n while (true) {\n let column: ColumnMetadata;\n let offset;\n\n try {\n ({ offset, value: column } = readColumn(parser.buffer, parser.position, parser.options, i));\n } catch (err: any) {\n if (err instanceof NotEnoughDataError) {\n await parser.waitForChunk();\n continue;\n }\n\n throw err;\n }\n\n parser.position = offset;\n columns.push(column);\n\n break;\n }\n }\n\n return new ColMetadataToken(columns);\n}\n\nexport default colMetadataParser;\nmodule.exports = colMetadataParser;\n"],"mappings":"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"}
@@ -7,6 +7,7 @@ exports.doneInProcParser = doneInProcParser;
7
7
  exports.doneParser = doneParser;
8
8
  exports.doneProcParser = doneProcParser;
9
9
  var _token = require("./token");
10
+ var _helpers = require("./helpers");
10
11
  // s2.2.7.5/6/7
11
12
 
12
13
  const STATUS = {
@@ -18,47 +19,58 @@ const STATUS = {
18
19
  ATTN: 0x0020,
19
20
  SRVERROR: 0x0100
20
21
  };
21
- function parseToken(parser, options, callback) {
22
- parser.readUInt16LE(status => {
23
- const more = !!(status & STATUS.MORE);
24
- const sqlError = !!(status & STATUS.ERROR);
25
- const rowCountValid = !!(status & STATUS.COUNT);
26
- const attention = !!(status & STATUS.ATTN);
27
- const serverError = !!(status & STATUS.SRVERROR);
28
- parser.readUInt16LE(curCmd => {
29
- const next = rowCount => {
30
- callback({
31
- more: more,
32
- sqlError: sqlError,
33
- attention: attention,
34
- serverError: serverError,
35
- rowCount: rowCountValid ? rowCount : undefined,
36
- curCmd: curCmd
37
- });
38
- };
39
- if (options.tdsVersion < '7_2') {
40
- parser.readUInt32LE(next);
41
- } else {
42
- parser.readBigUInt64LE(rowCount => {
43
- next(Number(rowCount));
44
- });
45
- }
46
- });
47
- });
22
+ function readToken(buf, offset, options) {
23
+ let status;
24
+ ({
25
+ offset,
26
+ value: status
27
+ } = (0, _helpers.readUInt16LE)(buf, offset));
28
+ const more = !!(status & STATUS.MORE);
29
+ const sqlError = !!(status & STATUS.ERROR);
30
+ const rowCountValid = !!(status & STATUS.COUNT);
31
+ const attention = !!(status & STATUS.ATTN);
32
+ const serverError = !!(status & STATUS.SRVERROR);
33
+ let curCmd;
34
+ ({
35
+ offset,
36
+ value: curCmd
37
+ } = (0, _helpers.readUInt16LE)(buf, offset));
38
+ let rowCount;
39
+ ({
40
+ offset,
41
+ value: rowCount
42
+ } = (options.tdsVersion < '7_2' ? _helpers.readUInt32LE : _helpers.readBigUInt64LE)(buf, offset));
43
+ return new _helpers.Result({
44
+ more: more,
45
+ sqlError: sqlError,
46
+ attention: attention,
47
+ serverError: serverError,
48
+ rowCount: rowCountValid ? Number(rowCount) : undefined,
49
+ curCmd: curCmd
50
+ }, offset);
48
51
  }
49
- function doneParser(parser, options, callback) {
50
- parseToken(parser, options, data => {
51
- callback(new _token.DoneToken(data));
52
- });
52
+ function doneParser(buf, offset, options) {
53
+ let value;
54
+ ({
55
+ offset,
56
+ value
57
+ } = readToken(buf, offset, options));
58
+ return new _helpers.Result(new _token.DoneToken(value), offset);
53
59
  }
54
- function doneInProcParser(parser, options, callback) {
55
- parseToken(parser, options, data => {
56
- callback(new _token.DoneInProcToken(data));
57
- });
60
+ function doneInProcParser(buf, offset, options) {
61
+ let value;
62
+ ({
63
+ offset,
64
+ value
65
+ } = readToken(buf, offset, options));
66
+ return new _helpers.Result(new _token.DoneInProcToken(value), offset);
58
67
  }
59
- function doneProcParser(parser, options, callback) {
60
- parseToken(parser, options, data => {
61
- callback(new _token.DoneProcToken(data));
62
- });
68
+ function doneProcParser(buf, offset, options) {
69
+ let value;
70
+ ({
71
+ offset,
72
+ value
73
+ } = readToken(buf, offset, options));
74
+ return new _helpers.Result(new _token.DoneProcToken(value), offset);
63
75
  }
64
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiU1RBVFVTIiwiTU9SRSIsIkVSUk9SIiwiSU5YQUNUIiwiQ09VTlQiLCJBVFROIiwiU1JWRVJST1IiLCJwYXJzZVRva2VuIiwicGFyc2VyIiwib3B0aW9ucyIsImNhbGxiYWNrIiwicmVhZFVJbnQxNkxFIiwic3RhdHVzIiwibW9yZSIsInNxbEVycm9yIiwicm93Q291bnRWYWxpZCIsImF0dGVudGlvbiIsInNlcnZlckVycm9yIiwiY3VyQ21kIiwibmV4dCIsInJvd0NvdW50IiwidW5kZWZpbmVkIiwidGRzVmVyc2lvbiIsInJlYWRVSW50MzJMRSIsInJlYWRCaWdVSW50NjRMRSIsIk51bWJlciIsImRvbmVQYXJzZXIiLCJkYXRhIiwiRG9uZVRva2VuIiwiZG9uZUluUHJvY1BhcnNlciIsIkRvbmVJblByb2NUb2tlbiIsImRvbmVQcm9jUGFyc2VyIiwiRG9uZVByb2NUb2tlbiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9kb25lLXRva2VuLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUGFyc2VyLCB7IHR5cGUgUGFyc2VyT3B0aW9ucyB9IGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyBEb25lVG9rZW4sIERvbmVJblByb2NUb2tlbiwgRG9uZVByb2NUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG4vLyBzMi4yLjcuNS82LzdcblxuY29uc3QgU1RBVFVTID0ge1xuICBNT1JFOiAweDAwMDEsXG4gIEVSUk9SOiAweDAwMDIsXG4gIC8vIFRoaXMgYml0IGlzIG5vdCB5ZXQgaW4gdXNlIGJ5IFNRTCBTZXJ2ZXIsIHNvIGlzIG5vdCBleHBvc2VkIGluIHRoZSByZXR1cm5lZCB0b2tlblxuICBJTlhBQ1Q6IDB4MDAwNCxcbiAgQ09VTlQ6IDB4MDAxMCxcbiAgQVRUTjogMHgwMDIwLFxuICBTUlZFUlJPUjogMHgwMTAwXG59O1xuXG5pbnRlcmZhY2UgVG9rZW5EYXRhIHtcbiAgbW9yZTogYm9vbGVhbjtcbiAgc3FsRXJyb3I6IGJvb2xlYW47XG4gIGF0dGVudGlvbjogYm9vbGVhbjtcbiAgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGN1ckNtZDogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRva2VuKHBhcnNlcjogUGFyc2VyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBjYWxsYmFjazogKGRhdGE6IFRva2VuRGF0YSkgPT4gdm9pZCkge1xuICBwYXJzZXIucmVhZFVJbnQxNkxFKChzdGF0dXMpID0+IHtcbiAgICBjb25zdCBtb3JlID0gISEoc3RhdHVzICYgU1RBVFVTLk1PUkUpO1xuICAgIGNvbnN0IHNxbEVycm9yID0gISEoc3RhdHVzICYgU1RBVFVTLkVSUk9SKTtcbiAgICBjb25zdCByb3dDb3VudFZhbGlkID0gISEoc3RhdHVzICYgU1RBVFVTLkNPVU5UKTtcbiAgICBjb25zdCBhdHRlbnRpb24gPSAhIShzdGF0dXMgJiBTVEFUVVMuQVRUTik7XG4gICAgY29uc3Qgc2VydmVyRXJyb3IgPSAhIShzdGF0dXMgJiBTVEFUVVMuU1JWRVJST1IpO1xuXG4gICAgcGFyc2VyLnJlYWRVSW50MTZMRSgoY3VyQ21kKSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gKHJvd0NvdW50OiBudW1iZXIpID0+IHtcbiAgICAgICAgY2FsbGJhY2soe1xuICAgICAgICAgIG1vcmU6IG1vcmUsXG4gICAgICAgICAgc3FsRXJyb3I6IHNxbEVycm9yLFxuICAgICAgICAgIGF0dGVudGlvbjogYXR0ZW50aW9uLFxuICAgICAgICAgIHNlcnZlckVycm9yOiBzZXJ2ZXJFcnJvcixcbiAgICAgICAgICByb3dDb3VudDogcm93Q291bnRWYWxpZCA/IHJvd0NvdW50IDogdW5kZWZpbmVkLFxuICAgICAgICAgIGN1ckNtZDogY3VyQ21kXG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgaWYgKG9wdGlvbnMudGRzVmVyc2lvbiA8ICc3XzInKSB7XG4gICAgICAgIHBhcnNlci5yZWFkVUludDMyTEUobmV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZXIucmVhZEJpZ1VJbnQ2NExFKChyb3dDb3VudCkgPT4ge1xuICAgICAgICAgIG5leHQoTnVtYmVyKHJvd0NvdW50KSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRvbmVQYXJzZXIocGFyc2VyOiBQYXJzZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGNhbGxiYWNrOiAodG9rZW46IERvbmVUb2tlbikgPT4gdm9pZCkge1xuICBwYXJzZVRva2VuKHBhcnNlciwgb3B0aW9ucywgKGRhdGEpID0+IHtcbiAgICBjYWxsYmFjayhuZXcgRG9uZVRva2VuKGRhdGEpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb25lSW5Qcm9jUGFyc2VyKHBhcnNlcjogUGFyc2VyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBjYWxsYmFjazogKHRva2VuOiBEb25lSW5Qcm9jVG9rZW4pID0+IHZvaWQpIHtcbiAgcGFyc2VUb2tlbihwYXJzZXIsIG9wdGlvbnMsIChkYXRhKSA9PiB7XG4gICAgY2FsbGJhY2sobmV3IERvbmVJblByb2NUb2tlbihkYXRhKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9uZVByb2NQYXJzZXIocGFyc2VyOiBQYXJzZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGNhbGxiYWNrOiAodG9rZW46IERvbmVQcm9jVG9rZW4pID0+IHZvaWQpIHtcbiAgcGFyc2VUb2tlbihwYXJzZXIsIG9wdGlvbnMsIChkYXRhKSA9PiB7XG4gICAgY2FsbGJhY2sobmV3IERvbmVQcm9jVG9rZW4oZGF0YSkpO1xuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQTs7QUFFQSxNQUFNQyxNQUFNLEdBQUc7RUFDYkMsSUFBSSxFQUFF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
76
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9rZW4iLCJyZXF1aXJlIiwiX2hlbHBlcnMiLCJTVEFUVVMiLCJNT1JFIiwiRVJST1IiLCJJTlhBQ1QiLCJDT1VOVCIsIkFUVE4iLCJTUlZFUlJPUiIsInJlYWRUb2tlbiIsImJ1ZiIsIm9mZnNldCIsIm9wdGlvbnMiLCJzdGF0dXMiLCJ2YWx1ZSIsInJlYWRVSW50MTZMRSIsIm1vcmUiLCJzcWxFcnJvciIsInJvd0NvdW50VmFsaWQiLCJhdHRlbnRpb24iLCJzZXJ2ZXJFcnJvciIsImN1ckNtZCIsInJvd0NvdW50IiwidGRzVmVyc2lvbiIsInJlYWRVSW50MzJMRSIsInJlYWRCaWdVSW50NjRMRSIsIlJlc3VsdCIsIk51bWJlciIsInVuZGVmaW5lZCIsImRvbmVQYXJzZXIiLCJEb25lVG9rZW4iLCJkb25lSW5Qcm9jUGFyc2VyIiwiRG9uZUluUHJvY1Rva2VuIiwiZG9uZVByb2NQYXJzZXIiLCJEb25lUHJvY1Rva2VuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2RvbmUtdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgUGFyc2VyT3B0aW9ucyB9IGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyBEb25lVG9rZW4sIERvbmVJblByb2NUb2tlbiwgRG9uZVByb2NUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgUmVzdWx0LCByZWFkQmlnVUludDY0TEUsIHJlYWRVSW50MTZMRSwgcmVhZFVJbnQzMkxFIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuLy8gczIuMi43LjUvNi83XG5cbmNvbnN0IFNUQVRVUyA9IHtcbiAgTU9SRTogMHgwMDAxLFxuICBFUlJPUjogMHgwMDAyLFxuICAvLyBUaGlzIGJpdCBpcyBub3QgeWV0IGluIHVzZSBieSBTUUwgU2VydmVyLCBzbyBpcyBub3QgZXhwb3NlZCBpbiB0aGUgcmV0dXJuZWQgdG9rZW5cbiAgSU5YQUNUOiAweDAwMDQsXG4gIENPVU5UOiAweDAwMTAsXG4gIEFUVE46IDB4MDAyMCxcbiAgU1JWRVJST1I6IDB4MDEwMFxufTtcblxuaW50ZXJmYWNlIFRva2VuRGF0YSB7XG4gIG1vcmU6IGJvb2xlYW47XG4gIHNxbEVycm9yOiBib29sZWFuO1xuICBhdHRlbnRpb246IGJvb2xlYW47XG4gIHNlcnZlckVycm9yOiBib29sZWFuO1xuICByb3dDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjdXJDbWQ6IG51bWJlcjtcbn1cblxuZnVuY3Rpb24gcmVhZFRva2VuKGJ1ZjogQnVmZmVyLCBvZmZzZXQ6IG51bWJlciwgb3B0aW9uczogUGFyc2VyT3B0aW9ucyk6IFJlc3VsdDxUb2tlbkRhdGE+IHtcbiAgbGV0IHN0YXR1cztcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogc3RhdHVzIH0gPSByZWFkVUludDE2TEUoYnVmLCBvZmZzZXQpKTtcblxuICBjb25zdCBtb3JlID0gISEoc3RhdHVzICYgU1RBVFVTLk1PUkUpO1xuICBjb25zdCBzcWxFcnJvciA9ICEhKHN0YXR1cyAmIFNUQVRVUy5FUlJPUik7XG4gIGNvbnN0IHJvd0NvdW50VmFsaWQgPSAhIShzdGF0dXMgJiBTVEFUVVMuQ09VTlQpO1xuICBjb25zdCBhdHRlbnRpb24gPSAhIShzdGF0dXMgJiBTVEFUVVMuQVRUTik7XG4gIGNvbnN0IHNlcnZlckVycm9yID0gISEoc3RhdHVzICYgU1RBVFVTLlNSVkVSUk9SKTtcblxuICBsZXQgY3VyQ21kO1xuICAoeyBvZmZzZXQsIHZhbHVlOiBjdXJDbWQgfSA9IHJlYWRVSW50MTZMRShidWYsIG9mZnNldCkpO1xuXG4gIGxldCByb3dDb3VudDtcbiAgKHsgb2Zmc2V0LCB2YWx1ZTogcm93Q291bnQgfSA9IChvcHRpb25zLnRkc1ZlcnNpb24gPCAnN18yJyA/IHJlYWRVSW50MzJMRSA6IHJlYWRCaWdVSW50NjRMRSkoYnVmLCBvZmZzZXQpKTtcblxuICByZXR1cm4gbmV3IFJlc3VsdCh7XG4gICAgbW9yZTogbW9yZSxcbiAgICBzcWxFcnJvcjogc3FsRXJyb3IsXG4gICAgYXR0ZW50aW9uOiBhdHRlbnRpb24sXG4gICAgc2VydmVyRXJyb3I6IHNlcnZlckVycm9yLFxuICAgIHJvd0NvdW50OiByb3dDb3VudFZhbGlkID8gTnVtYmVyKHJvd0NvdW50KSA6IHVuZGVmaW5lZCxcbiAgICBjdXJDbWQ6IGN1ckNtZFxuICB9LCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9uZVBhcnNlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8RG9uZVRva2VuPiB7XG4gIGxldCB2YWx1ZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZSB9ID0gcmVhZFRva2VuKGJ1Ziwgb2Zmc2V0LCBvcHRpb25zKSk7XG4gIHJldHVybiBuZXcgUmVzdWx0KG5ldyBEb25lVG9rZW4odmFsdWUpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9uZUluUHJvY1BhcnNlcihidWY6IEJ1ZmZlciwgb2Zmc2V0OiBudW1iZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMpOiBSZXN1bHQ8RG9uZUluUHJvY1Rva2VuPiB7XG4gIGxldCB2YWx1ZTtcbiAgKHsgb2Zmc2V0LCB2YWx1ZSB9ID0gcmVhZFRva2VuKGJ1Ziwgb2Zmc2V0LCBvcHRpb25zKSk7XG4gIHJldHVybiBuZXcgUmVzdWx0KG5ldyBEb25lSW5Qcm9jVG9rZW4odmFsdWUpLCBvZmZzZXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9uZVByb2NQYXJzZXIoYnVmOiBCdWZmZXIsIG9mZnNldDogbnVtYmVyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zKTogUmVzdWx0PERvbmVQcm9jVG9rZW4+IHtcbiAgbGV0IHZhbHVlO1xuICAoeyBvZmZzZXQsIHZhbHVlIH0gPSByZWFkVG9rZW4oYnVmLCBvZmZzZXQsIG9wdGlvbnMpKTtcbiAgcmV0dXJuIG5ldyBSZXN1bHQobmV3IERvbmVQcm9jVG9rZW4odmFsdWUpLCBvZmZzZXQpO1xufVxuIl0sIm1hcHBpbmdzIjoi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
@@ -1 +1 @@
1
- {"version":3,"file":"done-token-parser.js","names":["_token","require","STATUS","MORE","ERROR","INXACT","COUNT","ATTN","SRVERROR","parseToken","parser","options","callback","readUInt16LE","status","more","sqlError","rowCountValid","attention","serverError","curCmd","next","rowCount","undefined","tdsVersion","readUInt32LE","readBigUInt64LE","Number","doneParser","data","DoneToken","doneInProcParser","DoneInProcToken","doneProcParser","DoneProcToken"],"sources":["../../src/token/done-token-parser.ts"],"sourcesContent":["import Parser, { type ParserOptions } from './stream-parser';\nimport { DoneToken, DoneInProcToken, DoneProcToken } from './token';\n\n// s2.2.7.5/6/7\n\nconst STATUS = {\n MORE: 0x0001,\n ERROR: 0x0002,\n // This bit is not yet in use by SQL Server, so is not exposed in the returned token\n INXACT: 0x0004,\n COUNT: 0x0010,\n ATTN: 0x0020,\n SRVERROR: 0x0100\n};\n\ninterface TokenData {\n more: boolean;\n sqlError: boolean;\n attention: boolean;\n serverError: boolean;\n rowCount: number | undefined;\n curCmd: number;\n}\n\nfunction parseToken(parser: Parser, options: ParserOptions, callback: (data: TokenData) => void) {\n parser.readUInt16LE((status) => {\n const more = !!(status & STATUS.MORE);\n const sqlError = !!(status & STATUS.ERROR);\n const rowCountValid = !!(status & STATUS.COUNT);\n const attention = !!(status & STATUS.ATTN);\n const serverError = !!(status & STATUS.SRVERROR);\n\n parser.readUInt16LE((curCmd) => {\n const next = (rowCount: number) => {\n callback({\n more: more,\n sqlError: sqlError,\n attention: attention,\n serverError: serverError,\n rowCount: rowCountValid ? rowCount : undefined,\n curCmd: curCmd\n });\n };\n\n if (options.tdsVersion < '7_2') {\n parser.readUInt32LE(next);\n } else {\n parser.readBigUInt64LE((rowCount) => {\n next(Number(rowCount));\n });\n }\n });\n });\n}\n\nexport function doneParser(parser: Parser, options: ParserOptions, callback: (token: DoneToken) => void) {\n parseToken(parser, options, (data) => {\n callback(new DoneToken(data));\n });\n}\n\nexport function doneInProcParser(parser: Parser, options: ParserOptions, callback: (token: DoneInProcToken) => void) {\n parseToken(parser, options, (data) => {\n callback(new DoneInProcToken(data));\n });\n}\n\nexport function doneProcParser(parser: Parser, options: ParserOptions, callback: (token: DoneProcToken) => void) {\n parseToken(parser, options, (data) => {\n callback(new DoneProcToken(data));\n });\n}\n"],"mappings":";;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEA;;AAEA,MAAMC,MAAM,GAAG;EACbC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,MAAM;EACb;EACAC,MAAM,EAAE,MAAM;EACdC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE;AACZ,CAAC;AAWD,SAASC,UAAUA,CAACC,MAAc,EAAEC,OAAsB,EAAEC,QAAmC,EAAE;EAC/FF,MAAM,CAACG,YAAY,CAAEC,MAAM,IAAK;IAC9B,MAAMC,IAAI,GAAG,CAAC,EAAED,MAAM,GAAGZ,MAAM,CAACC,IAAI,CAAC;IACrC,MAAMa,QAAQ,GAAG,CAAC,EAAEF,MAAM,GAAGZ,MAAM,CAACE,KAAK,CAAC;IAC1C,MAAMa,aAAa,GAAG,CAAC,EAAEH,MAAM,GAAGZ,MAAM,CAACI,KAAK,CAAC;IAC/C,MAAMY,SAAS,GAAG,CAAC,EAAEJ,MAAM,GAAGZ,MAAM,CAACK,IAAI,CAAC;IAC1C,MAAMY,WAAW,GAAG,CAAC,EAAEL,MAAM,GAAGZ,MAAM,CAACM,QAAQ,CAAC;IAEhDE,MAAM,CAACG,YAAY,CAAEO,MAAM,IAAK;MAC9B,MAAMC,IAAI,GAAIC,QAAgB,IAAK;QACjCV,QAAQ,CAAC;UACPG,IAAI,EAAEA,IAAI;UACVC,QAAQ,EAAEA,QAAQ;UAClBE,SAAS,EAAEA,SAAS;UACpBC,WAAW,EAAEA,WAAW;UACxBG,QAAQ,EAAEL,aAAa,GAAGK,QAAQ,GAAGC,SAAS;UAC9CH,MAAM,EAAEA;QACV,CAAC,CAAC;MACJ,CAAC;MAED,IAAIT,OAAO,CAACa,UAAU,GAAG,KAAK,EAAE;QAC9Bd,MAAM,CAACe,YAAY,CAACJ,IAAI,CAAC;MAC3B,CAAC,MAAM;QACLX,MAAM,CAACgB,eAAe,CAAEJ,QAAQ,IAAK;UACnCD,IAAI,CAACM,MAAM,CAACL,QAAQ,CAAC,CAAC;QACxB,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEO,SAASM,UAAUA,CAAClB,MAAc,EAAEC,OAAsB,EAAEC,QAAoC,EAAE;EACvGH,UAAU,CAACC,MAAM,EAAEC,OAAO,EAAGkB,IAAI,IAAK;IACpCjB,QAAQ,CAAC,IAAIkB,gBAAS,CAACD,IAAI,CAAC,CAAC;EAC/B,CAAC,CAAC;AACJ;AAEO,SAASE,gBAAgBA,CAACrB,MAAc,EAAEC,OAAsB,EAAEC,QAA0C,EAAE;EACnHH,UAAU,CAACC,MAAM,EAAEC,OAAO,EAAGkB,IAAI,IAAK;IACpCjB,QAAQ,CAAC,IAAIoB,sBAAe,CAACH,IAAI,CAAC,CAAC;EACrC,CAAC,CAAC;AACJ;AAEO,SAASI,cAAcA,CAACvB,MAAc,EAAEC,OAAsB,EAAEC,QAAwC,EAAE;EAC/GH,UAAU,CAACC,MAAM,EAAEC,OAAO,EAAGkB,IAAI,IAAK;IACpCjB,QAAQ,CAAC,IAAIsB,oBAAa,CAACL,IAAI,CAAC,CAAC;EACnC,CAAC,CAAC;AACJ"}
1
+ {"version":3,"file":"done-token-parser.js","names":["_token","require","_helpers","STATUS","MORE","ERROR","INXACT","COUNT","ATTN","SRVERROR","readToken","buf","offset","options","status","value","readUInt16LE","more","sqlError","rowCountValid","attention","serverError","curCmd","rowCount","tdsVersion","readUInt32LE","readBigUInt64LE","Result","Number","undefined","doneParser","DoneToken","doneInProcParser","DoneInProcToken","doneProcParser","DoneProcToken"],"sources":["../../src/token/done-token-parser.ts"],"sourcesContent":["import { type ParserOptions } from './stream-parser';\nimport { DoneToken, DoneInProcToken, DoneProcToken } from './token';\nimport { Result, readBigUInt64LE, readUInt16LE, readUInt32LE } from './helpers';\n\n// s2.2.7.5/6/7\n\nconst STATUS = {\n MORE: 0x0001,\n ERROR: 0x0002,\n // This bit is not yet in use by SQL Server, so is not exposed in the returned token\n INXACT: 0x0004,\n COUNT: 0x0010,\n ATTN: 0x0020,\n SRVERROR: 0x0100\n};\n\ninterface TokenData {\n more: boolean;\n sqlError: boolean;\n attention: boolean;\n serverError: boolean;\n rowCount: number | undefined;\n curCmd: number;\n}\n\nfunction readToken(buf: Buffer, offset: number, options: ParserOptions): Result<TokenData> {\n let status;\n ({ offset, value: status } = readUInt16LE(buf, offset));\n\n const more = !!(status & STATUS.MORE);\n const sqlError = !!(status & STATUS.ERROR);\n const rowCountValid = !!(status & STATUS.COUNT);\n const attention = !!(status & STATUS.ATTN);\n const serverError = !!(status & STATUS.SRVERROR);\n\n let curCmd;\n ({ offset, value: curCmd } = readUInt16LE(buf, offset));\n\n let rowCount;\n ({ offset, value: rowCount } = (options.tdsVersion < '7_2' ? readUInt32LE : readBigUInt64LE)(buf, offset));\n\n return new Result({\n more: more,\n sqlError: sqlError,\n attention: attention,\n serverError: serverError,\n rowCount: rowCountValid ? Number(rowCount) : undefined,\n curCmd: curCmd\n }, offset);\n}\n\nexport function doneParser(buf: Buffer, offset: number, options: ParserOptions): Result<DoneToken> {\n let value;\n ({ offset, value } = readToken(buf, offset, options));\n return new Result(new DoneToken(value), offset);\n}\n\nexport function doneInProcParser(buf: Buffer, offset: number, options: ParserOptions): Result<DoneInProcToken> {\n let value;\n ({ offset, value } = readToken(buf, offset, options));\n return new Result(new DoneInProcToken(value), offset);\n}\n\nexport function doneProcParser(buf: Buffer, offset: number, options: ParserOptions): Result<DoneProcToken> {\n let value;\n ({ offset, value } = readToken(buf, offset, options));\n return new Result(new DoneProcToken(value), offset);\n}\n"],"mappings":";;;;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAEA;;AAEA,MAAME,MAAM,GAAG;EACbC,IAAI,EAAE,MAAM;EACZC,KAAK,EAAE,MAAM;EACb;EACAC,MAAM,EAAE,MAAM;EACdC,KAAK,EAAE,MAAM;EACbC,IAAI,EAAE,MAAM;EACZC,QAAQ,EAAE;AACZ,CAAC;AAWD,SAASC,SAASA,CAACC,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAAqB;EACzF,IAAIC,MAAM;EACV,CAAC;IAAEF,MAAM;IAAEG,KAAK,EAAED;EAAO,CAAC,GAAG,IAAAE,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAEtD,MAAMK,IAAI,GAAG,CAAC,EAAEH,MAAM,GAAGX,MAAM,CAACC,IAAI,CAAC;EACrC,MAAMc,QAAQ,GAAG,CAAC,EAAEJ,MAAM,GAAGX,MAAM,CAACE,KAAK,CAAC;EAC1C,MAAMc,aAAa,GAAG,CAAC,EAAEL,MAAM,GAAGX,MAAM,CAACI,KAAK,CAAC;EAC/C,MAAMa,SAAS,GAAG,CAAC,EAAEN,MAAM,GAAGX,MAAM,CAACK,IAAI,CAAC;EAC1C,MAAMa,WAAW,GAAG,CAAC,EAAEP,MAAM,GAAGX,MAAM,CAACM,QAAQ,CAAC;EAEhD,IAAIa,MAAM;EACV,CAAC;IAAEV,MAAM;IAAEG,KAAK,EAAEO;EAAO,CAAC,GAAG,IAAAN,qBAAY,EAACL,GAAG,EAAEC,MAAM,CAAC;EAEtD,IAAIW,QAAQ;EACZ,CAAC;IAAEX,MAAM;IAAEG,KAAK,EAAEQ;EAAS,CAAC,GAAG,CAACV,OAAO,CAACW,UAAU,GAAG,KAAK,GAAGC,qBAAY,GAAGC,wBAAe,EAAEf,GAAG,EAAEC,MAAM,CAAC;EAEzG,OAAO,IAAIe,eAAM,CAAC;IAChBV,IAAI,EAAEA,IAAI;IACVC,QAAQ,EAAEA,QAAQ;IAClBE,SAAS,EAAEA,SAAS;IACpBC,WAAW,EAAEA,WAAW;IACxBE,QAAQ,EAAEJ,aAAa,GAAGS,MAAM,CAACL,QAAQ,CAAC,GAAGM,SAAS;IACtDP,MAAM,EAAEA;EACV,CAAC,EAAEV,MAAM,CAAC;AACZ;AAEO,SAASkB,UAAUA,CAACnB,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAAqB;EACjG,IAAIE,KAAK;EACT,CAAC;IAAEH,MAAM;IAAEG;EAAM,CAAC,GAAGL,SAAS,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACpD,OAAO,IAAIc,eAAM,CAAC,IAAII,gBAAS,CAAChB,KAAK,CAAC,EAAEH,MAAM,CAAC;AACjD;AAEO,SAASoB,gBAAgBA,CAACrB,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAA2B;EAC7G,IAAIE,KAAK;EACT,CAAC;IAAEH,MAAM;IAAEG;EAAM,CAAC,GAAGL,SAAS,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACpD,OAAO,IAAIc,eAAM,CAAC,IAAIM,sBAAe,CAAClB,KAAK,CAAC,EAAEH,MAAM,CAAC;AACvD;AAEO,SAASsB,cAAcA,CAACvB,GAAW,EAAEC,MAAc,EAAEC,OAAsB,EAAyB;EACzG,IAAIE,KAAK;EACT,CAAC;IAAEH,MAAM;IAAEG;EAAM,CAAC,GAAGL,SAAS,CAACC,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;EACpD,OAAO,IAAIc,eAAM,CAAC,IAAIQ,oBAAa,CAACpB,KAAK,CAAC,EAAEH,MAAM,CAAC;AACrD"}