dbgate-plugin-mssql 4.7.0 → 4.7.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 (2) hide show
  1. package/dist/backend.js +1 -1
  2. package/package.json +3 -3
package/dist/backend.js CHANGED
@@ -555,4 +555,4 @@ var r=n(4),i=n(6).parse,o=["acl","location","logging","notification","partNumber
555
555
  * Copyright(c) 2014-2018 Douglas Christopher Wilson
556
556
  * MIT Licensed
557
557
  */
558
- var r=n(93).relative;e.exports=function(e){if(!e)throw new TypeError("argument namespace is required");var t=u(h()[1])[0];function n(e){s.call(n,e)}return n._file=t,n._ignored=function(e){if(process.noDeprecation)return!0;return o(process.env.NO_DEPRECATION||"",e)}(e),n._namespace=e,n._traced=function(e){if(process.traceDeprecation)return!0;return o(process.env.TRACE_DEPRECATION||"",e)}(e),n._warned=Object.create(null),n.function=m,n.property=g,n};var i=process.cwd();function o(e,t){for(var n=e.split(/[ ,]+/),r=String(t).toLowerCase(),i=0;i<n.length;i++){var o=n[i];if(o&&("*"===o||o.toLowerCase()===r))return!0}return!1}function a(e){var t=this.name+": "+this.namespace;this.message&&(t+=" deprecated "+this.message);for(var n=0;n<e.length;n++)t+="\n at "+e[n].toString();return t}function s(e,t){var n,r,i=(n=process,r="deprecation",("function"!=typeof n.listenerCount?n.listeners(r).length:n.listenerCount(r))>0);if(i||!this._ignored){var o,a,s,f,d=0,m=!1,g=h(),y=this._file;for(t?(f=t,(s=u(g[1])).name=f.name,y=s[0]):s=f=u(g[d=2]);d<g.length;d++)if((a=(o=u(g[d]))[0])===y)m=!0;else if(a===this._file)y=this._file;else if(m)break;var b=o?f.join(":")+"__"+o.join(":"):void 0;if(!(void 0!==b&&b in this._warned)){this._warned[b]=!0;var _=e;if(_||(_=s!==f&&s.name?c(s):c(f)),i){var w=v(this._namespace,_,g.slice(d));process.emit("deprecation",w)}else{var E=(process.stderr.isTTY?p:l).call(this,_,o,g.slice(d));process.stderr.write(E+"\n","utf8")}}}}function u(e){var t=e.getFileName()||"<anonymous>",n=e.getLineNumber(),r=e.getColumnNumber();e.isEval()&&(t=e.getEvalOrigin()+", "+t);var i=[t,n,r];return i.callSite=e,i.name=e.getFunctionName(),i}function c(e){var t=e.callSite,n=e.name;n||(n="<anonymous@"+f(e)+">");var r=t.getThis(),i=r&&t.getTypeName();return"Object"===i&&(i=void 0),"Function"===i&&(i=r.name||i),i&&t.getMethodName()?i+"."+n:n}function l(e,t,n){var r=(new Date).toUTCString()+" "+this._namespace+" deprecated "+e;if(this._traced){for(var i=0;i<n.length;i++)r+="\n at "+n[i].toString();return r}return t&&(r+=" at "+f(t)),r}function p(e,t,n){var r=""+this._namespace+" deprecated "+e+"";if(this._traced){for(var i=0;i<n.length;i++)r+="\n at "+n[i].toString()+"";return r}return t&&(r+=" "+f(t)+""),r}function f(e){return r(i,e[0])+":"+e[1]+":"+e[2]}function h(){var e=Error.stackTraceLimit,t={},n=Error.prepareStackTrace;Error.prepareStackTrace=d,Error.stackTraceLimit=Math.max(10,e),Error.captureStackTrace(t);var r=t.stack.slice(1);return Error.prepareStackTrace=n,Error.stackTraceLimit=e,r}function d(e,t){return t}function m(e,t){if("function"!=typeof e)throw new TypeError("argument fn must be a function");var n=function(e){for(var t="",n=0;n<e;n++)t+=", arg"+n;return t.substr(2)}(e.length),r=u(h()[1]);return r.name=e.name,new Function("fn","log","deprecate","message","site",'"use strict"\nreturn function ('+n+") {log.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n}")(e,s,this,t,r)}function g(e,t,n){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("argument obj must be object");var r=Object.getOwnPropertyDescriptor(e,t);if(!r)throw new TypeError("must call property on owner object");if(!r.configurable)throw new TypeError("property must be configurable");var i=this,o=u(h()[1]);o.name=t,"value"in r&&(r=function(e,t,n){var r=Object.getOwnPropertyDescriptor(e,t),i=r.value;return r.get=function(){return i},r.writable&&(r.set=function(e){return i=e}),delete r.value,delete r.writable,Object.defineProperty(e,t,r),r}(e,t));var a=r.get,c=r.set;"function"==typeof a&&(r.get=function(){return s.call(i,n,o),a.apply(this,arguments)}),"function"==typeof c&&(r.set=function(){return s.call(i,n,o),c.apply(this,arguments)}),Object.defineProperty(e,t,r)}function v(e,t,n){var r,i=new Error;return Object.defineProperty(i,"constructor",{value:v}),Object.defineProperty(i,"message",{configurable:!0,enumerable:!1,value:t,writable:!0}),Object.defineProperty(i,"name",{enumerable:!1,configurable:!0,value:"DeprecationError",writable:!0}),Object.defineProperty(i,"namespace",{configurable:!0,enumerable:!1,value:e,writable:!0}),Object.defineProperty(i,"stack",{configurable:!0,enumerable:!1,get:function(){return void 0!==r?r:r=a.call(this,n)},set:function(e){r=e}}),i}},function(e,t,n){const r=n(131),{TYPES:i}=r,o=104,a=111,s=106,u=109,c=38,l=110,p=108;e.exports=function(e,t){switch(e.id){case o:return i.Bit;case p:return i.Numeric;case s:return i.Decimal;case c:return 8===t?i.BigInt:4===t?i.Int:2===t?i.SmallInt:i.TinyInt;case u:return 8===t?i.Float:i.Real;case l:return 8===t?i.Money:i.SmallMoney;case a:return 8===t?i.DateTime:i.SmallDateTime}return e}},function(e,t,n){const{createBulkInsertStreamBase:r}=n(77);e.exports=function(e,t,n,i,o){const a=r(e,t,n,i,o),s=i.schemaName?`[${i.schemaName}].[${i.pureName}]`:i.pureName;return a.send=async()=>{const e=a.buffer;a.buffer=[],await function(e,t,n,r){return new Promise((n,i)=>{e.tableMgr().bind(t,e=>{e.insertRows(r,e=>{e&&i(e),n()})})})}(n,s,0,e)},a}},function(e,t,n){"use strict";e.exports=n(726)},function(e,t,n){"use strict";var r=function(e){if(e=e||{},this.Promise=e.Promise||Promise,this.queues=Object.create(null),this.domainReentrant=e.domainReentrant||!1,this.domainReentrant){if("undefined"==typeof process||void 0===process.domain)throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");this.domains=Object.create(null)}this.timeout=e.timeout||r.DEFAULT_TIMEOUT,e.maxPending===1/0||Number.isInteger(e.maxPending)&&e.maxPending>=0?this.maxPending=e.maxPending:this.maxPending=r.DEFAULT_MAX_PENDING};r.DEFAULT_TIMEOUT=0,r.DEFAULT_MAX_PENDING=1e3,r.prototype.acquire=function(e,t,n,r){if(Array.isArray(e))return this._acquireBatch(e,t,n,r);if("function"!=typeof t)throw new Error("You must pass a function to execute");var i=null,o=null,a=null;"function"!=typeof n&&(r=n,n=null,a=new this.Promise((function(e,t){i=e,o=t}))),r=r||{};var s=!1,u=null,c=this,l=function(t,r,u){t&&(0===c.queues[e].length&&delete c.queues[e],c.domainReentrant&&delete c.domains[e]),s||(a?r?o(r):i(u):"function"==typeof n&&n(r,u),s=!0),t&&c.queues[e]&&c.queues[e].length>0&&c.queues[e].shift()()},p=function(n){if(s)return l(n);if(u&&(clearTimeout(u),u=null),c.domainReentrant&&n&&(c.domains[e]=process.domain),1===t.length){var r=!1;t((function(e,t){r||(r=!0,l(n,e,t))}))}else c._promiseTry((function(){return t()})).then((function(e){l(n,void 0,e)}),(function(e){l(n,e)}))};if(c.domainReentrant&&process.domain&&(p=process.domain.bind(p)),c.queues[e])if(c.domainReentrant&&process.domain&&process.domain===c.domains[e])p(!1);else if(c.queues[e].length>=c.maxPending)l(!1,new Error("Too much pending tasks"));else{var f=function(){p(!0)};r.skipQueue?c.queues[e].unshift(f):c.queues[e].push(f);var h=r.timeout||c.timeout;h&&(u=setTimeout((function(){u=null,l(!1,new Error("async-lock timed out"))}),h))}else c.queues[e]=[],p(!0);return a||void 0},r.prototype._acquireBatch=function(e,t,n,r){"function"!=typeof n&&(r=n,n=null);var i=this,o=t;if(e.reverse().forEach((function(e){o=function(e,t){return function(n){i.acquire(e,t,n,r)}}(e,o)})),"function"!=typeof n)return new this.Promise((function(e,t){1===o.length?o((function(n,r){n?t(n):e(r)})):e(o())}));o(n)},r.prototype.isBusy=function(e){return e?!!this.queues[e]:Object.keys(this.queues).length>0},r.prototype._promiseTry=function(e){try{return this.Promise.resolve(e())}catch(e){return this.Promise.reject(e)}},e.exports=r},function(e,t,n){n(19);const r=n(2),i=n(290);let o;function a(e){const t=e.map(e=>{const t={columnName:e.name,dataType:e.sqlType.toLowerCase(),notNull:!e.nullable};return t.dataType.endsWith(" identity")&&(t.dataType=t.dataType.replace(" identity",""),t.autoIncrement=!0),e.size&&t.dataType.includes("char")&&(t.dataType+=`(${e.size})`),t});return i(t),t}async function s({server:e,port:t,user:n,password:r,database:i,authType:a},s){let u=`server=${e}`;return t&&!e.includes("\\")&&(u+=`,${t}`),u+=`;Driver={${s}}`,u+="sspi"==a?";Trusted_Connection=Yes":`;UID=${n};PWD=${r}`,i&&(u+=`;Database=${i}`),new Promise((e,t)=>{o.open(u,(n,r)=>{n?t(n):(r._connectionType="msnodesqlv8",e(r))})})}e.exports={nativeConnect:async function(e){const t=["ODBC Driver 17 for SQL Server","SQL Server Native Client 11.0"];for(let n=0;n<t.length;n+=1)try{const r=await s(e,t[n]);return console.error(`Connected SQL Server with ${t[n]} driver`),r}catch(e){if(e.message&&e.message.includes("[ODBC Driver Manager]")&&n<t.length-1){console.error(`Failed connecting with ${t[n]} driver, trying next`,e);continue}throw new Error(`${e}`)}},nativeQueryCore:async function(e,t,n){return null==t?Promise.resolve({rows:[],columns:[]}):new Promise((n,r)=>{let i=null,o=null;const s=e.query(t),u=[];s.on("meta",e=>{i=a(e)}),s.on("column",(e,t)=>{o[i[e].columnName]=t}),s.on("row",e=>{o&&u.push(o),o={}}),s.on("error",e=>{r(e)}),s.on("done",()=>{o&&u.push(o),n({columns:i,rows:u})})})},nativeReadQuery:async function(e,t,n){const i=new r.PassThrough({objectMode:!0,highWaterMark:100});let o=null,s=null;const u=e.query(t);return u.on("meta",e=>{o=a(e),i.write({__isStreamHeader:!0,...n||{columns:o}})}),u.on("column",(e,t)=>{s[o[e].columnName]=t}),u.on("row",e=>{s&&i.write(s),s={}}),u.on("error",e=>{console.error(e),i.end()}),u.on("done",()=>{s&&i.write(s),i.end()}),i},nativeStream:async function(e,t,n){let r=null,i=null;const o=e.query(t);o.on("meta",e=>{i&&n.row(i),i=null,r=a(e),n.recordset(r)}),o.on("column",(e,t)=>{i[r[e].columnName]=t}),o.on("row",e=>{i&&n.row(i),i={}}),o.on("error",e=>{(e=>{const{message:t,lineNumber:r,procName:i}=e;n.info({message:t,line:r,procedure:i,time:new Date,severity:"error"})})(e),n.done()}),o.on("info",e=>{(e=>{const{message:t,lineNumber:r,procName:i}=e;n.info({message:t,line:r,procedure:i,time:new Date,severity:"info"})})(e)}),o.on("done",()=>{i&&n.row(i),n.done()})},initialize:e=>{e.nativeModules&&e.nativeModules.msnodesqlv8&&(o=e.nativeModules.msnodesqlv8())}}},function(e,t,n){const r=n(19),i=n(2),o=n(131),a=n(290);function s(e,t=!1){const n=e.map(e=>{const n={columnName:e.colName,dataType:e.type.name.toLowerCase(),driverNativeColumn:t?e:void 0,notNull:!(1&e.flags),autoIncrement:!!(16&e.flags)};return e.dataLength&&(n.dataType+=`(${e.dataLength})`),n});return a(n),n}e.exports={tediousConnect:async function({server:e,port:t,user:n,password:i,database:a,ssl:s}){return new Promise((u,c)=>{const l=new o.Connection({server:e,authentication:{type:"default",options:{userName:n,password:i}},options:{encrypt:!!s,cryptoCredentialsDetails:s?r.pick(s,["ca","cert","key"]):void 0,trustServerCertificate:s?!(s.ca||s.cert||s.key)||s.rejectUnauthorized:void 0,enableArithAbort:!0,validateBulkLoadParameters:!1,requestTimeout:36e5,database:a,port:t?parseInt(t):void 0}});l.on("connect",(function(e){e&&c(e),l._connectionType="tedious",u(l)})),l.connect()})},tediousQueryCore:async function(e,t,n){if(null==t)return Promise.resolve({rows:[],columns:[]});const{addDriverNativeColumn:i,discardResult:a}=n||{};return new Promise((n,u)=>{const c={rows:[],columns:[]},l=new o.Request(t,(e,t)=>{e?u(e):n(c)});l.on("columnMetadata",(function(e){c.columns=s(e,i)})),l.on("row",(function(e){c.rows.push(r.zipObject(c.columns.map(e=>e.columnName),e.map(e=>e.value)))})),a?e.execSqlBatch(l):e.execSql(l)})},tediousReadQuery:async function(e,t,n){const a=new i.PassThrough({objectMode:!0,highWaterMark:100});let u=[];const c=new o.Request(t,(e,t)=>{e&&console.error(e),a.end()});return c.on("columnMetadata",(function(e){u=s(e),a.write({__isStreamHeader:!0,...n||{columns:u}})})),c.on("row",(function(e){const t=r.zipObject(u.map(e=>e.columnName),e.map(e=>e.value));a.write(t)})),e.execSql(c),a},tediousStream:async function(e,t,n){let i=[];const a=e=>{const{message:t,lineNumber:r,procName:i}=e;n.info({message:t,line:r,procedure:i,time:new Date,severity:"info"})},u=e=>{const{message:t,lineNumber:r,procName:i}=e;n.info({message:t,line:r,procedure:i,time:new Date,severity:"error"})};e.on("infoMessage",a),e.on("errorMessage",u);const c=new o.Request(t,(t,r)=>{n.done(),e.off("infoMessage",a),e.off("errorMessage",u),n.info({message:`${r} rows affected`,time:new Date,severity:"info"})});c.on("columnMetadata",(function(e){i=s(e),n.recordset(i)})),c.on("row",(function(e){const t=r.zipObject(i.map(e=>e.columnName),e.map(e=>e.value));n.row(t)})),e.execSqlBatch(c)}}}]);
558
+ var r=n(93).relative;e.exports=function(e){if(!e)throw new TypeError("argument namespace is required");var t=u(h()[1])[0];function n(e){s.call(n,e)}return n._file=t,n._ignored=function(e){if(process.noDeprecation)return!0;return o(process.env.NO_DEPRECATION||"",e)}(e),n._namespace=e,n._traced=function(e){if(process.traceDeprecation)return!0;return o(process.env.TRACE_DEPRECATION||"",e)}(e),n._warned=Object.create(null),n.function=m,n.property=g,n};var i=process.cwd();function o(e,t){for(var n=e.split(/[ ,]+/),r=String(t).toLowerCase(),i=0;i<n.length;i++){var o=n[i];if(o&&("*"===o||o.toLowerCase()===r))return!0}return!1}function a(e){var t=this.name+": "+this.namespace;this.message&&(t+=" deprecated "+this.message);for(var n=0;n<e.length;n++)t+="\n at "+e[n].toString();return t}function s(e,t){var n,r,i=(n=process,r="deprecation",("function"!=typeof n.listenerCount?n.listeners(r).length:n.listenerCount(r))>0);if(i||!this._ignored){var o,a,s,f,d=0,m=!1,g=h(),y=this._file;for(t?(f=t,(s=u(g[1])).name=f.name,y=s[0]):s=f=u(g[d=2]);d<g.length;d++)if((a=(o=u(g[d]))[0])===y)m=!0;else if(a===this._file)y=this._file;else if(m)break;var b=o?f.join(":")+"__"+o.join(":"):void 0;if(!(void 0!==b&&b in this._warned)){this._warned[b]=!0;var _=e;if(_||(_=s!==f&&s.name?c(s):c(f)),i){var w=v(this._namespace,_,g.slice(d));process.emit("deprecation",w)}else{var E=(process.stderr.isTTY?p:l).call(this,_,o,g.slice(d));process.stderr.write(E+"\n","utf8")}}}}function u(e){var t=e.getFileName()||"<anonymous>",n=e.getLineNumber(),r=e.getColumnNumber();e.isEval()&&(t=e.getEvalOrigin()+", "+t);var i=[t,n,r];return i.callSite=e,i.name=e.getFunctionName(),i}function c(e){var t=e.callSite,n=e.name;n||(n="<anonymous@"+f(e)+">");var r=t.getThis(),i=r&&t.getTypeName();return"Object"===i&&(i=void 0),"Function"===i&&(i=r.name||i),i&&t.getMethodName()?i+"."+n:n}function l(e,t,n){var r=(new Date).toUTCString()+" "+this._namespace+" deprecated "+e;if(this._traced){for(var i=0;i<n.length;i++)r+="\n at "+n[i].toString();return r}return t&&(r+=" at "+f(t)),r}function p(e,t,n){var r=""+this._namespace+" deprecated "+e+"";if(this._traced){for(var i=0;i<n.length;i++)r+="\n at "+n[i].toString()+"";return r}return t&&(r+=" "+f(t)+""),r}function f(e){return r(i,e[0])+":"+e[1]+":"+e[2]}function h(){var e=Error.stackTraceLimit,t={},n=Error.prepareStackTrace;Error.prepareStackTrace=d,Error.stackTraceLimit=Math.max(10,e),Error.captureStackTrace(t);var r=t.stack.slice(1);return Error.prepareStackTrace=n,Error.stackTraceLimit=e,r}function d(e,t){return t}function m(e,t){if("function"!=typeof e)throw new TypeError("argument fn must be a function");var n=function(e){for(var t="",n=0;n<e;n++)t+=", arg"+n;return t.substr(2)}(e.length),r=u(h()[1]);return r.name=e.name,new Function("fn","log","deprecate","message","site",'"use strict"\nreturn function ('+n+") {log.call(deprecate, message, site)\nreturn fn.apply(this, arguments)\n}")(e,s,this,t,r)}function g(e,t,n){if(!e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("argument obj must be object");var r=Object.getOwnPropertyDescriptor(e,t);if(!r)throw new TypeError("must call property on owner object");if(!r.configurable)throw new TypeError("property must be configurable");var i=this,o=u(h()[1]);o.name=t,"value"in r&&(r=function(e,t,n){var r=Object.getOwnPropertyDescriptor(e,t),i=r.value;return r.get=function(){return i},r.writable&&(r.set=function(e){return i=e}),delete r.value,delete r.writable,Object.defineProperty(e,t,r),r}(e,t));var a=r.get,c=r.set;"function"==typeof a&&(r.get=function(){return s.call(i,n,o),a.apply(this,arguments)}),"function"==typeof c&&(r.set=function(){return s.call(i,n,o),c.apply(this,arguments)}),Object.defineProperty(e,t,r)}function v(e,t,n){var r,i=new Error;return Object.defineProperty(i,"constructor",{value:v}),Object.defineProperty(i,"message",{configurable:!0,enumerable:!1,value:t,writable:!0}),Object.defineProperty(i,"name",{enumerable:!1,configurable:!0,value:"DeprecationError",writable:!0}),Object.defineProperty(i,"namespace",{configurable:!0,enumerable:!1,value:e,writable:!0}),Object.defineProperty(i,"stack",{configurable:!0,enumerable:!1,get:function(){return void 0!==r?r:r=a.call(this,n)},set:function(e){r=e}}),i}},function(e,t,n){const r=n(131),{TYPES:i}=r,o=104,a=111,s=106,u=109,c=38,l=110,p=108;e.exports=function(e,t){switch(e.id){case o:return i.Bit;case p:return i.Numeric;case s:return i.Decimal;case c:return 8===t?i.BigInt:4===t?i.Int:2===t?i.SmallInt:i.TinyInt;case u:return 8===t?i.Float:i.Real;case l:return 8===t?i.Money:i.SmallMoney;case a:return 8===t?i.DateTime:i.SmallDateTime}return e}},function(e,t,n){const{createBulkInsertStreamBase:r}=n(77);e.exports=function(e,t,n,i,o){const a=r(e,t,n,i,o),s=i.schemaName?`[${i.schemaName}].[${i.pureName}]`:i.pureName;return a.send=async()=>{const e=a.buffer;a.buffer=[],await function(e,t,n,r){return new Promise((n,i)=>{e.tableMgr().bind(t,e=>{e.insertRows(r,e=>{e&&i(e),n()})})})}(n,s,0,e)},a}},function(e,t,n){"use strict";e.exports=n(726)},function(e,t,n){"use strict";var r=function(e){if(e=e||{},this.Promise=e.Promise||Promise,this.queues=Object.create(null),this.domainReentrant=e.domainReentrant||!1,this.domainReentrant){if("undefined"==typeof process||void 0===process.domain)throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");this.domains=Object.create(null)}this.timeout=e.timeout||r.DEFAULT_TIMEOUT,e.maxPending===1/0||Number.isInteger(e.maxPending)&&e.maxPending>=0?this.maxPending=e.maxPending:this.maxPending=r.DEFAULT_MAX_PENDING};r.DEFAULT_TIMEOUT=0,r.DEFAULT_MAX_PENDING=1e3,r.prototype.acquire=function(e,t,n,r){if(Array.isArray(e))return this._acquireBatch(e,t,n,r);if("function"!=typeof t)throw new Error("You must pass a function to execute");var i=null,o=null,a=null;"function"!=typeof n&&(r=n,n=null,a=new this.Promise((function(e,t){i=e,o=t}))),r=r||{};var s=!1,u=null,c=this,l=function(t,r,u){t&&(0===c.queues[e].length&&delete c.queues[e],c.domainReentrant&&delete c.domains[e]),s||(a?r?o(r):i(u):"function"==typeof n&&n(r,u),s=!0),t&&c.queues[e]&&c.queues[e].length>0&&c.queues[e].shift()()},p=function(n){if(s)return l(n);if(u&&(clearTimeout(u),u=null),c.domainReentrant&&n&&(c.domains[e]=process.domain),1===t.length){var r=!1;t((function(e,t){r||(r=!0,l(n,e,t))}))}else c._promiseTry((function(){return t()})).then((function(e){l(n,void 0,e)}),(function(e){l(n,e)}))};if(c.domainReentrant&&process.domain&&(p=process.domain.bind(p)),c.queues[e])if(c.domainReentrant&&process.domain&&process.domain===c.domains[e])p(!1);else if(c.queues[e].length>=c.maxPending)l(!1,new Error("Too much pending tasks"));else{var f=function(){p(!0)};r.skipQueue?c.queues[e].unshift(f):c.queues[e].push(f);var h=r.timeout||c.timeout;h&&(u=setTimeout((function(){u=null,l(!1,new Error("async-lock timed out"))}),h))}else c.queues[e]=[],p(!0);return a||void 0},r.prototype._acquireBatch=function(e,t,n,r){"function"!=typeof n&&(r=n,n=null);var i=this,o=t;if(e.reverse().forEach((function(e){o=function(e,t){return function(n){i.acquire(e,t,n,r)}}(e,o)})),"function"!=typeof n)return new this.Promise((function(e,t){1===o.length?o((function(n,r){n?t(n):e(r)})):e(o())}));o(n)},r.prototype.isBusy=function(e){return e?!!this.queues[e]:Object.keys(this.queues).length>0},r.prototype._promiseTry=function(e){try{return this.Promise.resolve(e())}catch(e){return this.Promise.reject(e)}},e.exports=r},function(e,t,n){n(19);const r=n(2),i=n(290);let o;function a(e){const t=e.map(e=>{const t={columnName:e.name,dataType:e.sqlType.toLowerCase(),notNull:!e.nullable};return t.dataType.endsWith(" identity")&&(t.dataType=t.dataType.replace(" identity",""),t.autoIncrement=!0),e.size&&t.dataType.includes("char")&&(t.dataType+=`(${e.size})`),t});return i(t),t}async function s({server:e,port:t,user:n,password:r,database:i,authType:a},s){let u=`server=${e}`;return t&&!e.includes("\\")&&(u+=`,${t}`),u+=`;Driver={${s}}`,u+="sspi"==a?";Trusted_Connection=Yes":`;UID=${n};PWD=${r}`,i&&(u+=`;Database=${i}`),new Promise((e,t)=>{o.open(u,(n,r)=>{n?t(n):(r._connectionType="msnodesqlv8",e(r))})})}e.exports={nativeConnect:async function(e){const t=["ODBC Driver 17 for SQL Server","SQL Server Native Client 11.0"];for(let n=0;n<t.length;n+=1)try{const r=await s(e,t[n]);return console.error(`Connected SQL Server with ${t[n]} driver`),r}catch(e){if(e.message&&e.message.includes("[ODBC Driver Manager]")&&n<t.length-1){console.error(`Failed connecting with ${t[n]} driver, trying next`,e);continue}throw new Error(`${e}`)}},nativeQueryCore:async function(e,t,n){return null==t?Promise.resolve({rows:[],columns:[]}):new Promise((n,r)=>{let i=null,o=null;const s=e.query(t),u=[];s.on("meta",e=>{i=a(e)}),s.on("column",(e,t)=>{o[i[e].columnName]=t}),s.on("row",e=>{o&&u.push(o),o={}}),s.on("error",e=>{r(e)}),s.on("done",()=>{o&&u.push(o),n({columns:i,rows:u})})})},nativeReadQuery:async function(e,t,n){const i=new r.PassThrough({objectMode:!0,highWaterMark:100});let o=null,s=null;const u=e.query(t);return u.on("meta",e=>{o=a(e),i.write({__isStreamHeader:!0,...n||{columns:o}})}),u.on("column",(e,t)=>{s[o[e].columnName]=t}),u.on("row",e=>{s&&i.write(s),s={}}),u.on("error",e=>{console.error(e),i.end()}),u.on("done",()=>{s&&i.write(s),i.end()}),i},nativeStream:async function(e,t,n){let r=null,i=null;const o=e.query(t);o.on("meta",e=>{i&&n.row(i),i=null,r=a(e),n.recordset(r)}),o.on("column",(e,t)=>{i[r[e].columnName]=t}),o.on("row",e=>{i&&n.row(i),i={}}),o.on("error",e=>{(e=>{const{message:t,lineNumber:r,procName:i}=e;n.info({message:t,line:r,procedure:i,time:new Date,severity:"error"})})(e),n.done()}),o.on("info",e=>{(e=>{const{message:t,lineNumber:r,procName:i}=e;n.info({message:t,line:r,procedure:i,time:new Date,severity:"info"})})(e)}),o.on("done",()=>{i&&n.row(i),n.done()})},initialize:e=>{e.nativeModules&&e.nativeModules.msnodesqlv8&&(o=e.nativeModules.msnodesqlv8())}}},function(e,t,n){const r=n(19),i=n(2),o=n(131),a=n(290);function s(e,t=!1){const n=e.map(e=>{const n={columnName:e.colName,dataType:e.type.name.toLowerCase(),driverNativeColumn:t?e:void 0,notNull:!(1&e.flags),autoIncrement:!!(16&e.flags)};return e.dataLength&&(n.dataType+=`(${e.dataLength})`),n});return a(n),n}e.exports={tediousConnect:async function({server:e,port:t,user:n,password:i,database:a,ssl:s}){return new Promise((u,c)=>{const l={encrypt:!!s,cryptoCredentialsDetails:s?r.pick(s,["ca","cert","key"]):void 0,trustServerCertificate:s?!(s.ca||s.cert||s.key)||s.rejectUnauthorized:void 0,enableArithAbort:!0,validateBulkLoadParameters:!1,requestTimeout:36e5,port:t?parseInt(t):void 0};a&&(l.database=a);const p=new o.Connection({server:e,authentication:{type:"default",options:{userName:n,password:i}},options:l});p.on("connect",(function(e){e&&c(e),p._connectionType="tedious",u(p)})),p.connect()})},tediousQueryCore:async function(e,t,n){if(null==t)return Promise.resolve({rows:[],columns:[]});const{addDriverNativeColumn:i,discardResult:a}=n||{};return new Promise((n,u)=>{const c={rows:[],columns:[]},l=new o.Request(t,(e,t)=>{e?u(e):n(c)});l.on("columnMetadata",(function(e){c.columns=s(e,i)})),l.on("row",(function(e){c.rows.push(r.zipObject(c.columns.map(e=>e.columnName),e.map(e=>e.value)))})),a?e.execSqlBatch(l):e.execSql(l)})},tediousReadQuery:async function(e,t,n){const a=new i.PassThrough({objectMode:!0,highWaterMark:100});let u=[];const c=new o.Request(t,(e,t)=>{e&&console.error(e),a.end()});return c.on("columnMetadata",(function(e){u=s(e),a.write({__isStreamHeader:!0,...n||{columns:u}})})),c.on("row",(function(e){const t=r.zipObject(u.map(e=>e.columnName),e.map(e=>e.value));a.write(t)})),e.execSql(c),a},tediousStream:async function(e,t,n){let i=[];const a=e=>{const{message:t,lineNumber:r,procName:i}=e;n.info({message:t,line:r,procedure:i,time:new Date,severity:"info"})},u=e=>{const{message:t,lineNumber:r,procName:i}=e;n.info({message:t,line:r,procedure:i,time:new Date,severity:"error"})};e.on("infoMessage",a),e.on("errorMessage",u);const c=new o.Request(t,(t,r)=>{n.done(),e.off("infoMessage",a),e.off("errorMessage",u),n.info({message:`${r} rows affected`,time:new Date,severity:"info"})});c.on("columnMetadata",(function(e){i=s(e),n.recordset(i)})),c.on("row",(function(e){const t=r.zipObject(i.map(e=>e.columnName),e.map(e=>e.value));n.row(t)})),e.execSqlBatch(c)}}}]);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dbgate-plugin-mssql",
3
3
  "main": "dist/backend.js",
4
- "version": "4.7.0",
4
+ "version": "4.7.1",
5
5
  "homepage": "https://dbgate.org",
6
6
  "description": "MS SQL connect plugin for DbGate",
7
7
  "repository": {
@@ -32,10 +32,10 @@
32
32
  },
33
33
  "devDependencies": {
34
34
  "dbgate-plugin-tools": "^1.0.7",
35
- "dbgate-query-splitter": "^4.7.0",
35
+ "dbgate-query-splitter": "^4.7.1",
36
36
  "webpack": "^4.42.0",
37
37
  "webpack-cli": "^3.3.11",
38
- "dbgate-tools": "^4.7.0",
38
+ "dbgate-tools": "^4.7.1",
39
39
  "tedious": "^9.2.3",
40
40
  "async-lock": "^1.2.6"
41
41
  }