dbgate-plugin-redis 6.6.3 → 6.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/backend.js CHANGED
@@ -1 +1 @@
1
- (()=>{var e={994:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.oracleSplitterOptions=t.redisSplitterOptions=t.noSplitSplitterOptions=t.mongoSplitterOptions=t.sqliteSplitterOptions=t.postgreSplitterOptions=t.mssqlSplitterOptions=t.mysqlSplitterOptions=t.defaultSplitterOptions=void 0,t.defaultSplitterOptions={stringsBegins:["'"],stringsEnds:{"'":"'"},stringEscapes:{"'":"'"},allowSemicolon:!0,allowCustomDelimiter:!1,allowCustomSqlTerminator:!1,allowGoDelimiter:!1,allowSlashDelimiter:!1,allowDollarDollarString:!1,noSplit:!1,skipSeparatorBeginEnd:!1,doubleDashComments:!0,multilineComments:!0,javaScriptComments:!1,returnRichInfo:!1,splitByLines:!1,splitByEmptyLine:!1,preventSingleLineSplit:!1,adaptiveGoSplit:!1,ignoreComments:!1,copyFromStdin:!1,queryParameterStyle:null},t.mysqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomDelimiter:!0,stringsBegins:["'","`",'"'],stringsEnds:{"'":"'","`":"`",'"':'"'},stringEscapes:{"'":"\\","`":"`",'"':"\\"}}),t.mssqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowSemicolon:!1,allowGoDelimiter:!0,stringsBegins:["'","["],stringsEnds:{"'":"'","[":"]"},stringEscapes:{"'":"'"}}),t.postgreSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowDollarDollarString:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.sqliteSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.mongoSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"\\",'"':"\\"}}),t.noSplitSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{noSplit:!0}),t.redisSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{splitByLines:!0}),t.oracleSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomSqlTerminator:!0,allowSlashDelimiter:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}})},688:e=>{const{DatabaseAnalyser:t}=global.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends t{constructor(e,t){super(e,t)}}},831:(e,t,s)=>{const a=s(825),n=s(588),i=s(203),r=s(534),l=s(688),o=s(659),c=s(107),{filterName:p}=global.DBGATE_PACKAGES["dbgate-tools"];function d(e){let t,s=[],a="";for(let n=0;n<e.length;)if(/\s/.test(e[n])){for(;n<e.length&&/\s/.test(e[n]);)n++;s.push(a),a="",t=!1}else if('"'!==e[n])if("'"!==e[n])"\\"!==e[n]?(t=!0,a+=e[n++]):(n++,a+=e[n++]);else{for(n++;n<e.length;){if("'"===e[n]){t=!0;break}"\\"!==e[n]||n++,a+=e[n++]}n++}else{for(n++;n<e.length;){if('"'===e[n]){t=!0;break}"\\"!==e[n]||n++,a+=e[n++]}n++}return t&&s.push(a),s}const u={...r,analyserClass:l,async connect({server:e,port:t,user:s,password:n,database:i,useDatabaseUrl:r,databaseUrl:l,treeKeySeparator:c,ssl:p,skipSetName:d}){let u,y=0;if(r)u=new o(l),d||await u.client("SETNAME","dbgate");else{a.isString(i)&&i.startsWith("db")&&(y=parseInt(i.substring(2))),a.isNumber(i)&&(y=i),p&&(p={...a.omit(p,["rejectUnauthorized","password"]),passphrase:p.password});const r={host:e,port:t,username:s,password:n,db:y,tls:p};d||(r.connectionName="dbgate"),u=new o(r)}return{client:u,treeKeySeparator:c||":"}},async query(e,t){const s=d(t);if(s.length>=1){const t=s[0].toLowerCase(),a=s.slice(1);await e.client.call(t,...a)}return{rows:[],columns:[]}},async stream(e,t,s){const a=d(t);if(a.length<1)return void s.done();const n=a[0].toLowerCase(),i=a.slice(1),r=await e.client.call(n,...i);s.info({message:JSON.stringify(r),time:new Date,severity:"info"}),s.done()},readQuery:async(e,t,s)=>new i.PassThrough({objectMode:!0,highWaterMark:100}),async writeTable(e,t,s){return createBulkInsertStreamBase(this,i,e,t,s)},async info(e){const t=await e.client.info();return a.fromPairs(t.split("\n").filter((e=>e.trim()&&!e.trim().startsWith("#"))).map((e=>e.split(":"))))},async getVersion(e){const t=await this.info(e);return{version:t.redis_version,versionText:`Redis ${t.redis_version}`}},async listDatabases(e){const t=await this.info(e);return a.range(16).map((e=>({name:`db${e}`,extInfo:t[`db${e}`],sortOrder:e})))},async scanKeys(e,t,s=0,a){const n=t?.match(/[\?\[\{]/)?t:t?`*${t}*`:"*",[i,r]=await e.client.scan(s,"MATCH",n,"COUNT",a??2**32),l=await e.client.dbsize(),o=r.map((e=>({key:e})));return await this.enrichKeyInfo(e,o),{nextCursor:i,keys:o,dbsize:l}},async loadKeys(e,t="",s=null,n=null){const i=(await this.getKeys(e,t?`${t}${e.treeKeySeparator}*`:"*")).filter((e=>p(s,e))),r=a.sortBy(i,"text"),l=this.extractKeysFromLevel(e,t,r),o=n?l.slice(0,n):l;return await this.enrichKeyInfo(e,o),o},async exportKeys(e,t){const s=new c({client:e.client});return new Promise(((e,a)=>{s.export({type:"redis",keyPrefix:t.keyPrefix,callback:(t,s)=>{t?a(t):e(s)}})}))},async getKeys(e,t="*"){const s=e.client.scanStream({match:t,count:1e3}),a=[];return s.on("data",(e=>{for(const t of e)a.push(t)})),new Promise(((e,t)=>{s.on("end",(()=>{e(a)})),s.on("error",(e=>{t(e)}))}))},extractKeysFromLevel(e,t,s){const a=t?`${t}${e.treeKeySeparator}`:"",n=""==t?[]:t.split(e.treeKeySeparator),i={};for(const t of s){if(!t.startsWith(a))continue;const s=t.split(e.treeKeySeparator);if(s.length>n.length){const a=s[n.length];if(s.length==n.length+1)i[a]={text:a,key:t};else{const t="::"+a;i[t]?i[t].count++:i[t]={text:a+e.treeKeySeparator+"*",type:"dir",root:s.slice(0,n.length+1).join(e.treeKeySeparator),count:1}}}}return Object.values(i)},async getKeyCardinality(e,t,s){switch(s){case"list":return e.client.llen(t);case"set":return e.client.scard(t);case"zset":return e.client.zcard(t);case"stream":return e.client.xlen(t);case"hash":return e.client.hlen(t)}},async enrichKeyInfo(e,t){const s=e.client.pipeline();for(const e of t)s.type(e.key);const a=await s.exec();for(let e=0;e<a.length;e++)null==a[e][0]&&(t[e].type=a[e][1]);const n=e.client.pipeline();for(const e of t)switch(e.type){case"list":n.llen(e.key);case"set":n.scard(e.key);case"zset":n.zcard(e.key);case"stream":n.xlen(e.key);case"hash":n.hlen(e.key)}const i=await n.exec();let r=0;for(const e of t)"list"!=e.type&&"set"!=e.type&&"zset"!=e.type&&"stream"!=e.type&&"hash"!=e.type||null==i[r][0]&&(e.count=i[r][1],r++)},async loadKeyInfo(e,t){const s={},a=await e.client.type(t);return s.key=t,s.type=a,s.ttl=await e.client.ttl(t),s.count=await this.getKeyCardinality(e,t,a),"string"===a&&(s.value=await e.client.get(t)),s.keyType=this.supportedKeyTypes.find((e=>e.name==a)),s},async deleteBranch(e,t){const s=await this.getKeys(e,t),i=a.chunk(s,10);await n.eachLimit(i,10,(async t=>await e.client.del(...t)))},async callMethod(e,t,s){switch(t){case"mdel":return await this.deleteBranch(e,s[0]);case"xaddjson":let t;try{t=JSON.parse(s[2])}catch(e){throw new Error("Value must be valid JSON. "+e.message)}return await e.client.xadd(s[0],s[1]||"*",...a.flatten(a.toPairs(t)))}return await e.client[t](...s)},async loadKeyTableRange(e,t,s,n){switch(await e.client.type(t)){case"list":{const a=await e.client.lrange(t,s,s+n);return{cursor:a.length>n?s+n:0,items:a.map((e=>({value:e}))).slice(0,n)}}case"set":{const a=await e.client.sscan(t,s,"COUNT",n);return{cursor:parseInt(a[0]),items:a[1].map((e=>({value:e})))}}case"zset":{const i=await e.client.zscan(t,s,"COUNT",n);return{cursor:parseInt(i[0]),items:a.chunk(i[1],2).map((e=>({value:e[0],score:e[1]})))}}case"hash":{const i=await e.client.hscan(t,s,"COUNT",n);return{cursor:parseInt(i[0]),items:a.chunk(i[1],2).map((e=>({key:e[0],value:e[1]})))}}case"stream":{const i=await e.client.xrange(t,0==s?"-":s,"+","COUNT",n);let r=0;if(i.length>0){const e=i[i.length-1][0].split("-");r=`${e[0]}-${parseInt(e[1]+1)}`}return{cursor:r,items:i.map((([e,t])=>({id:e,value:JSON.stringify(a.fromPairs(a.chunk(t,2)),void 0,2)})))}}}return null},close:async e=>e.client.quit()};e.exports=u},237:(e,t,s)=>{const a=s(831);e.exports={packageName:"dbgate-plugin-redis",drivers:[a]}},197:e=>{const{SqlDumper:t}=global.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends t{}},534:(e,t,s)=>{const{driverBase:a}=global.DBGATE_PACKAGES["dbgate-tools"],{redisSplitterOptions:n}=s(994),i={...a,dumperClass:s(197),dialect:{limitSelect:!0,rangeSelect:!0,offsetFetchRangeSyntax:!0,stringEscapeChar:"'",fallbackDataType:"nvarchar(max)",quoteIdentifier:e=>`[${e}]`},engine:"redis@dbgate-plugin-redis",title:"Redis",defaultPort:6379,editorMode:"text",databaseEngineTypes:["keyvalue"],supportedCreateDatabase:!1,getQuerySplitterOptions:()=>n,databaseUrlPlaceholder:"e.g. redis://:authpassword@127.0.0.1:6380/4",supportedKeyTypes:[{name:"string",label:"String",dbKeyFields:[{name:"value"}],addMethod:"set"},{name:"list",label:"List",dbKeyFields:[{name:"value"}],addMethod:"rpush",showItemList:!0},{name:"set",label:"Set",dbKeyFields:[{name:"value"}],keyColumn:"value",addMethod:"sadd",showItemList:!0},{name:"zset",label:"Sorted Set",dbKeyFields:[{name:"score"},{name:"value"}],keyColumn:"value",addMethod:"zadd",showItemList:!0},{name:"hash",label:"Hash",dbKeyFields:[{name:"key"},{name:"value"}],keyColumn:"key",addMethod:"hset",showItemList:!0},{name:"stream",label:"Stream",dbKeyFields:[{name:"id"},{name:"value"}],keyColumn:"id",addMethod:"xaddjson",showItemList:!0}],showConnectionField:(e,t)=>"useDatabaseUrl"==e||(t.useDatabaseUrl?["databaseUrl","isReadOnly","treeKeySeparator"].includes(e):["server","port","user","password","isReadOnly","treeKeySeparator"].includes(e)),getAdvancedConnectionFields:()=>[{type:"checkbox",name:"skipSetName",label:"Skip SETNAME instruction"}]};e.exports=i},588:e=>{"use strict";e.exports=require("async")},659:e=>{"use strict";e.exports=require("ioredis")},825:e=>{"use strict";e.exports=require("lodash")},107:e=>{"use strict";e.exports=require("node-redis-dump2")},203:e=>{"use strict";e.exports=require("stream")}},t={},s=function s(a){var n=t[a];if(void 0!==n)return n.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,s),i.exports}(237);module.exports=s})();
1
+ (()=>{var e={994:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.firebirdSplitterOptions=t.oracleSplitterOptions=t.redisSplitterOptions=t.noSplitSplitterOptions=t.mongoSplitterOptions=t.sqliteSplitterOptions=t.postgreSplitterOptions=t.mssqlSplitterOptions=t.mysqlSplitterOptions=t.defaultSplitterOptions=void 0,t.defaultSplitterOptions={stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'},allowSemicolon:!0,allowCustomDelimiter:!1,allowCustomSqlTerminator:!1,allowGoDelimiter:!1,allowSlashDelimiter:!1,allowDollarDollarString:!1,noSplit:!1,skipSeparatorBeginEnd:!1,doubleDashComments:!0,multilineComments:!0,javaScriptComments:!1,returnRichInfo:!1,splitByLines:!1,splitByEmptyLine:!1,preventSingleLineSplit:!1,adaptiveGoSplit:!1,ignoreComments:!1,copyFromStdin:!1,queryParameterStyle:null},t.mysqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomDelimiter:!0,stringsBegins:["'","`",'"'],stringsEnds:{"'":"'","`":"`",'"':'"'},stringEscapes:{"'":"\\","`":"`",'"':"\\"}}),t.mssqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowSemicolon:!1,allowGoDelimiter:!0,stringsBegins:["'","["],stringsEnds:{"'":"'","[":"]"},stringEscapes:{"'":"'"}}),t.postgreSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowDollarDollarString:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.sqliteSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.mongoSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"\\",'"':"\\"}}),t.noSplitSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{noSplit:!0}),t.redisSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{splitByLines:!0}),t.oracleSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomSqlTerminator:!0,allowSlashDelimiter:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.firebirdSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,queryParameterStyle:":"})},688:e=>{const{DatabaseAnalyser:t}=global.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends t{constructor(e,t){super(e,t)}}},831:(e,t,s)=>{const a=s(825),n=s(588),i=s(203),r=s(534),l=s(688),o=s(659),c=s(107),{filterName:p}=global.DBGATE_PACKAGES["dbgate-tools"];function d(e){let t,s=[],a="";for(let n=0;n<e.length;)if(/\s/.test(e[n])){for(;n<e.length&&/\s/.test(e[n]);)n++;s.push(a),a="",t=!1}else if('"'!==e[n])if("'"!==e[n])"\\"!==e[n]?(t=!0,a+=e[n++]):(n++,a+=e[n++]);else{for(n++;n<e.length;){if("'"===e[n]){t=!0;break}"\\"!==e[n]||n++,a+=e[n++]}n++}else{for(n++;n<e.length;){if('"'===e[n]){t=!0;break}"\\"!==e[n]||n++,a+=e[n++]}n++}return t&&s.push(a),s}const u={...r,analyserClass:l,async connect({server:e,port:t,user:s,password:n,database:i,useDatabaseUrl:r,databaseUrl:l,treeKeySeparator:c,ssl:p,skipSetName:d}){let u,y=0;if(r)u=new o(l),d||await u.client("SETNAME","dbgate");else{a.isString(i)&&i.startsWith("db")&&(y=parseInt(i.substring(2))),a.isNumber(i)&&(y=i),p&&(p={...a.omit(p,["rejectUnauthorized","password"]),passphrase:p.password});const r={host:e,port:t,username:s,password:n,db:y,tls:p};d||(r.connectionName="dbgate"),u=new o(r)}return{client:u,treeKeySeparator:c||":"}},async query(e,t){const s=d(t);if(s.length>=1){const t=s[0].toLowerCase(),a=s.slice(1);await e.client.call(t,...a)}return{rows:[],columns:[]}},async stream(e,t,s){const a=d(t);if(a.length<1)return void s.done();const n=a[0].toLowerCase(),i=a.slice(1),r=await e.client.call(n,...i);s.info({message:JSON.stringify(r),time:new Date,severity:"info"}),s.done()},readQuery:async(e,t,s)=>new i.PassThrough({objectMode:!0,highWaterMark:100}),async writeTable(e,t,s){return createBulkInsertStreamBase(this,i,e,t,s)},async info(e){const t=await e.client.info();return a.fromPairs(t.split("\n").filter((e=>e.trim()&&!e.trim().startsWith("#"))).map((e=>e.split(":"))))},async getVersion(e){const t=await this.info(e);return{version:t.redis_version,versionText:`Redis ${t.redis_version}`}},async listDatabases(e){const t=await this.info(e);return a.range(16).map((e=>({name:`db${e}`,extInfo:t[`db${e}`],sortOrder:e})))},async scanKeys(e,t,s=0,a){const n=t?.match(/[\?\[\{]/)?t:t?`*${t}*`:"*",[i,r]=await e.client.scan(s,"MATCH",n,"COUNT",a??2**32),l=await e.client.dbsize(),o=r.map((e=>({key:e})));return await this.enrichKeyInfo(e,o),{nextCursor:i,keys:o,dbsize:l}},async loadKeys(e,t="",s=null,n=null){const i=(await this.getKeys(e,t?`${t}${e.treeKeySeparator}*`:"*")).filter((e=>p(s,e))),r=a.sortBy(i,"text"),l=this.extractKeysFromLevel(e,t,r),o=n?l.slice(0,n):l;return await this.enrichKeyInfo(e,o),o},async exportKeys(e,t){const s=new c({client:e.client});return new Promise(((e,a)=>{s.export({type:"redis",keyPrefix:t.keyPrefix,callback:(t,s)=>{t?a(t):e(s)}})}))},async getKeys(e,t="*"){const s=e.client.scanStream({match:t,count:1e3}),a=[];return s.on("data",(e=>{for(const t of e)a.push(t)})),new Promise(((e,t)=>{s.on("end",(()=>{e(a)})),s.on("error",(e=>{t(e)}))}))},extractKeysFromLevel(e,t,s){const a=t?`${t}${e.treeKeySeparator}`:"",n=""==t?[]:t.split(e.treeKeySeparator),i={};for(const t of s){if(!t.startsWith(a))continue;const s=t.split(e.treeKeySeparator);if(s.length>n.length){const a=s[n.length];if(s.length==n.length+1)i[a]={text:a,key:t};else{const t="::"+a;i[t]?i[t].count++:i[t]={text:a+e.treeKeySeparator+"*",type:"dir",root:s.slice(0,n.length+1).join(e.treeKeySeparator),count:1}}}}return Object.values(i)},async getKeyCardinality(e,t,s){switch(s){case"list":return e.client.llen(t);case"set":return e.client.scard(t);case"zset":return e.client.zcard(t);case"stream":return e.client.xlen(t);case"hash":return e.client.hlen(t)}},async enrichKeyInfo(e,t){const s=e.client.pipeline();for(const e of t)s.type(e.key);const a=await s.exec();for(let e=0;e<a.length;e++)null==a[e][0]&&(t[e].type=a[e][1]);const n=e.client.pipeline();for(const e of t)switch(e.type){case"list":n.llen(e.key);case"set":n.scard(e.key);case"zset":n.zcard(e.key);case"stream":n.xlen(e.key);case"hash":n.hlen(e.key)}const i=await n.exec();let r=0;for(const e of t)"list"!=e.type&&"set"!=e.type&&"zset"!=e.type&&"stream"!=e.type&&"hash"!=e.type||null==i[r][0]&&(e.count=i[r][1],r++)},async loadKeyInfo(e,t){const s={},a=await e.client.type(t);return s.key=t,s.type=a,s.ttl=await e.client.ttl(t),s.count=await this.getKeyCardinality(e,t,a),"string"===a&&(s.value=await e.client.get(t)),s.keyType=this.supportedKeyTypes.find((e=>e.name==a)),s},async deleteBranch(e,t){const s=await this.getKeys(e,t),i=a.chunk(s,10);await n.eachLimit(i,10,(async t=>await e.client.del(...t)))},async callMethod(e,t,s){switch(t){case"mdel":return await this.deleteBranch(e,s[0]);case"xaddjson":let t;try{t=JSON.parse(s[2])}catch(e){throw new Error("Value must be valid JSON. "+e.message)}return await e.client.xadd(s[0],s[1]||"*",...a.flatten(a.toPairs(t)))}return await e.client[t](...s)},async loadKeyTableRange(e,t,s,n){switch(await e.client.type(t)){case"list":{const a=await e.client.lrange(t,s,s+n);return{cursor:a.length>n?s+n:0,items:a.map((e=>({value:e}))).slice(0,n)}}case"set":{const a=await e.client.sscan(t,s,"COUNT",n);return{cursor:parseInt(a[0]),items:a[1].map((e=>({value:e})))}}case"zset":{const i=await e.client.zscan(t,s,"COUNT",n);return{cursor:parseInt(i[0]),items:a.chunk(i[1],2).map((e=>({value:e[0],score:e[1]})))}}case"hash":{const i=await e.client.hscan(t,s,"COUNT",n);return{cursor:parseInt(i[0]),items:a.chunk(i[1],2).map((e=>({key:e[0],value:e[1]})))}}case"stream":{const i=await e.client.xrange(t,0==s?"-":s,"+","COUNT",n);let r=0;if(i.length>0){const e=i[i.length-1][0].split("-");r=`${e[0]}-${parseInt(e[1]+1)}`}return{cursor:r,items:i.map((([e,t])=>({id:e,value:JSON.stringify(a.fromPairs(a.chunk(t,2)),void 0,2)})))}}}return null},close:async e=>e.client.quit()};e.exports=u},237:(e,t,s)=>{const a=s(831);e.exports={packageName:"dbgate-plugin-redis",drivers:[a]}},197:e=>{const{SqlDumper:t}=global.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends t{}},534:(e,t,s)=>{const{driverBase:a}=global.DBGATE_PACKAGES["dbgate-tools"],{redisSplitterOptions:n}=s(994),i={...a,dumperClass:s(197),dialect:{limitSelect:!0,rangeSelect:!0,offsetFetchRangeSyntax:!0,stringEscapeChar:"'",fallbackDataType:"nvarchar(max)",quoteIdentifier:e=>`[${e}]`},engine:"redis@dbgate-plugin-redis",title:"Redis",defaultPort:6379,editorMode:"text",databaseEngineTypes:["keyvalue"],supportedCreateDatabase:!1,getQuerySplitterOptions:()=>n,databaseUrlPlaceholder:"e.g. redis://:authpassword@127.0.0.1:6380/4",supportedKeyTypes:[{name:"string",label:"String",dbKeyFields:[{name:"value"}],addMethod:"set"},{name:"list",label:"List",dbKeyFields:[{name:"value"}],addMethod:"rpush",showItemList:!0},{name:"set",label:"Set",dbKeyFields:[{name:"value"}],keyColumn:"value",addMethod:"sadd",showItemList:!0},{name:"zset",label:"Sorted Set",dbKeyFields:[{name:"score"},{name:"value"}],keyColumn:"value",addMethod:"zadd",showItemList:!0},{name:"hash",label:"Hash",dbKeyFields:[{name:"key"},{name:"value"}],keyColumn:"key",addMethod:"hset",showItemList:!0},{name:"stream",label:"Stream",dbKeyFields:[{name:"id"},{name:"value"}],keyColumn:"id",addMethod:"xaddjson",showItemList:!0}],showConnectionField:(e,t)=>"useDatabaseUrl"==e||(t.useDatabaseUrl?["databaseUrl","isReadOnly","treeKeySeparator"].includes(e):["server","port","user","password","isReadOnly","treeKeySeparator"].includes(e)),getAdvancedConnectionFields:()=>[{type:"checkbox",name:"skipSetName",label:"Skip SETNAME instruction"}]};e.exports=i},588:e=>{"use strict";e.exports=require("async")},659:e=>{"use strict";e.exports=require("ioredis")},825:e=>{"use strict";e.exports=require("lodash")},107:e=>{"use strict";e.exports=require("node-redis-dump2")},203:e=>{"use strict";e.exports=require("stream")}},t={},s=function s(a){var n=t[a];if(void 0!==n)return n.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,s),i.exports}(237);module.exports=s})();
package/dist/frontend.js CHANGED
@@ -1 +1 @@
1
- var plugin;(()=>{var e={994:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.oracleSplitterOptions=t.redisSplitterOptions=t.noSplitSplitterOptions=t.mongoSplitterOptions=t.sqliteSplitterOptions=t.postgreSplitterOptions=t.mssqlSplitterOptions=t.mysqlSplitterOptions=t.defaultSplitterOptions=void 0,t.defaultSplitterOptions={stringsBegins:["'"],stringsEnds:{"'":"'"},stringEscapes:{"'":"'"},allowSemicolon:!0,allowCustomDelimiter:!1,allowCustomSqlTerminator:!1,allowGoDelimiter:!1,allowSlashDelimiter:!1,allowDollarDollarString:!1,noSplit:!1,skipSeparatorBeginEnd:!1,doubleDashComments:!0,multilineComments:!0,javaScriptComments:!1,returnRichInfo:!1,splitByLines:!1,splitByEmptyLine:!1,preventSingleLineSplit:!1,adaptiveGoSplit:!1,ignoreComments:!1,copyFromStdin:!1,queryParameterStyle:null},t.mysqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomDelimiter:!0,stringsBegins:["'","`",'"'],stringsEnds:{"'":"'","`":"`",'"':'"'},stringEscapes:{"'":"\\","`":"`",'"':"\\"}}),t.mssqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowSemicolon:!1,allowGoDelimiter:!0,stringsBegins:["'","["],stringsEnds:{"'":"'","[":"]"},stringEscapes:{"'":"'"}}),t.postgreSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowDollarDollarString:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.sqliteSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.mongoSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"\\",'"':"\\"}}),t.noSplitSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{noSplit:!0}),t.redisSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{splitByLines:!0}),t.oracleSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomSqlTerminator:!0,allowSlashDelimiter:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}})},56:(e,t,s)=>{const{SqlDumper:i}=s.g.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends i{}},831:(e,t,s)=>{const{driverBase:i}=s.g.DBGATE_PACKAGES["dbgate-tools"],{redisSplitterOptions:n}=s(994),a={...i,dumperClass:s(56),dialect:{limitSelect:!0,rangeSelect:!0,offsetFetchRangeSyntax:!0,stringEscapeChar:"'",fallbackDataType:"nvarchar(max)",quoteIdentifier:e=>`[${e}]`},engine:"redis@dbgate-plugin-redis",title:"Redis",defaultPort:6379,editorMode:"text",databaseEngineTypes:["keyvalue"],supportedCreateDatabase:!1,getQuerySplitterOptions:()=>n,databaseUrlPlaceholder:"e.g. redis://:authpassword@127.0.0.1:6380/4",supportedKeyTypes:[{name:"string",label:"String",dbKeyFields:[{name:"value"}],addMethod:"set"},{name:"list",label:"List",dbKeyFields:[{name:"value"}],addMethod:"rpush",showItemList:!0},{name:"set",label:"Set",dbKeyFields:[{name:"value"}],keyColumn:"value",addMethod:"sadd",showItemList:!0},{name:"zset",label:"Sorted Set",dbKeyFields:[{name:"score"},{name:"value"}],keyColumn:"value",addMethod:"zadd",showItemList:!0},{name:"hash",label:"Hash",dbKeyFields:[{name:"key"},{name:"value"}],keyColumn:"key",addMethod:"hset",showItemList:!0},{name:"stream",label:"Stream",dbKeyFields:[{name:"id"},{name:"value"}],keyColumn:"id",addMethod:"xaddjson",showItemList:!0}],showConnectionField:(e,t)=>"useDatabaseUrl"==e||(t.useDatabaseUrl?["databaseUrl","isReadOnly","treeKeySeparator"].includes(e):["server","port","user","password","isReadOnly","treeKeySeparator"].includes(e)),getAdvancedConnectionFields:()=>[{type:"checkbox",name:"skipSetName",label:"Skip SETNAME instruction"}]};e.exports=a}},t={};function s(i){var n=t[i];if(void 0!==n)return n.exports;var a=t[i]={exports:{}};return e[i](a,a.exports,s),a.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{"use strict";s.r(i),s.d(i,{default:()=>t});var e=s(831);const t={packageName:"dbgate-plugin-redis",drivers:[s.n(e)()]}})(),plugin=i})();
1
+ var plugin;(()=>{var e={994:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.firebirdSplitterOptions=t.oracleSplitterOptions=t.redisSplitterOptions=t.noSplitSplitterOptions=t.mongoSplitterOptions=t.sqliteSplitterOptions=t.postgreSplitterOptions=t.mssqlSplitterOptions=t.mysqlSplitterOptions=t.defaultSplitterOptions=void 0,t.defaultSplitterOptions={stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'},allowSemicolon:!0,allowCustomDelimiter:!1,allowCustomSqlTerminator:!1,allowGoDelimiter:!1,allowSlashDelimiter:!1,allowDollarDollarString:!1,noSplit:!1,skipSeparatorBeginEnd:!1,doubleDashComments:!0,multilineComments:!0,javaScriptComments:!1,returnRichInfo:!1,splitByLines:!1,splitByEmptyLine:!1,preventSingleLineSplit:!1,adaptiveGoSplit:!1,ignoreComments:!1,copyFromStdin:!1,queryParameterStyle:null},t.mysqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomDelimiter:!0,stringsBegins:["'","`",'"'],stringsEnds:{"'":"'","`":"`",'"':'"'},stringEscapes:{"'":"\\","`":"`",'"':"\\"}}),t.mssqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowSemicolon:!1,allowGoDelimiter:!0,stringsBegins:["'","["],stringsEnds:{"'":"'","[":"]"},stringEscapes:{"'":"'"}}),t.postgreSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowDollarDollarString:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.sqliteSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.mongoSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"\\",'"':"\\"}}),t.noSplitSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{noSplit:!0}),t.redisSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{splitByLines:!0}),t.oracleSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomSqlTerminator:!0,allowSlashDelimiter:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.firebirdSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,queryParameterStyle:":"})},56:(e,t,s)=>{const{SqlDumper:i}=s.g.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends i{}},831:(e,t,s)=>{const{driverBase:i}=s.g.DBGATE_PACKAGES["dbgate-tools"],{redisSplitterOptions:n}=s(994),a={...i,dumperClass:s(56),dialect:{limitSelect:!0,rangeSelect:!0,offsetFetchRangeSyntax:!0,stringEscapeChar:"'",fallbackDataType:"nvarchar(max)",quoteIdentifier:e=>`[${e}]`},engine:"redis@dbgate-plugin-redis",title:"Redis",defaultPort:6379,editorMode:"text",databaseEngineTypes:["keyvalue"],supportedCreateDatabase:!1,getQuerySplitterOptions:()=>n,databaseUrlPlaceholder:"e.g. redis://:authpassword@127.0.0.1:6380/4",supportedKeyTypes:[{name:"string",label:"String",dbKeyFields:[{name:"value"}],addMethod:"set"},{name:"list",label:"List",dbKeyFields:[{name:"value"}],addMethod:"rpush",showItemList:!0},{name:"set",label:"Set",dbKeyFields:[{name:"value"}],keyColumn:"value",addMethod:"sadd",showItemList:!0},{name:"zset",label:"Sorted Set",dbKeyFields:[{name:"score"},{name:"value"}],keyColumn:"value",addMethod:"zadd",showItemList:!0},{name:"hash",label:"Hash",dbKeyFields:[{name:"key"},{name:"value"}],keyColumn:"key",addMethod:"hset",showItemList:!0},{name:"stream",label:"Stream",dbKeyFields:[{name:"id"},{name:"value"}],keyColumn:"id",addMethod:"xaddjson",showItemList:!0}],showConnectionField:(e,t)=>"useDatabaseUrl"==e||(t.useDatabaseUrl?["databaseUrl","isReadOnly","treeKeySeparator"].includes(e):["server","port","user","password","isReadOnly","treeKeySeparator"].includes(e)),getAdvancedConnectionFields:()=>[{type:"checkbox",name:"skipSetName",label:"Skip SETNAME instruction"}]};e.exports=a}},t={};function s(i){var n=t[i];if(void 0!==n)return n.exports;var a=t[i]={exports:{}};return e[i](a,a.exports,s),a.exports}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{"use strict";s.r(i),s.d(i,{default:()=>t});var e=s(831);const t={packageName:"dbgate-plugin-redis",drivers:[s.n(e)()]}})(),plugin=i})();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dbgate-plugin-redis",
3
3
  "main": "dist/backend.js",
4
- "version": "6.6.3",
4
+ "version": "6.6.5",
5
5
  "license": "GPL-3.0",
6
6
  "description": "Redis connector plugin for DbGate",
7
7
  "homepage": "https://dbgate.org",
@@ -34,8 +34,8 @@
34
34
  "webpack-cli": "^5.1.4"
35
35
  },
36
36
  "dependencies": {
37
- "dbgate-query-splitter": "^4.11.5",
38
- "dbgate-tools": "^6.6.3",
37
+ "dbgate-query-splitter": "^4.11.7",
38
+ "dbgate-tools": "^6.6.5",
39
39
  "lodash": "^4.17.21",
40
40
  "async": "^3.2.3",
41
41
  "ioredis": "^5.4.1",