dbgate-plugin-mysql 6.6.2 → 6.6.4
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 +1 -1
- package/dist/frontend.js +1 -1
- package/package.json +3 -3
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:{"'":"'",'"':'"'}})},464:e=>{var t=Array.isArray;e.exports=t},688:(e,t,a)=>{const n=a(825),s=a(926),{DatabaseAnalyser:r,isTypeString:i,isTypeNumeric:o}=global.DBGATE_PACKAGES["dbgate-tools"];function E(e){return/int\(\d+\)/.test(e)?"int":e}function l({isNullable:e,extra:t,columnName:a,dataType:s,charMaxLength:r,numericPrecision:E,numericScale:l,defaultValue:c,columnComment:m,columnType:N},T){const{quoteDefaultValues:u}=T.__analyserInternals;let p={};const A=n.isString(N)?N.split(" ").map((e=>e.trim().toLowerCase())):[];let S=s;if(r&&i(s))S=`${s}(${r})`;else if(E&&l&&o(s))S=`${s}(${E},${l})`;else{const e=N.match(/^(enum|set)\((.+)\)/i);e?.length&&(S=N,p.options=e[2].split(",").map((e=>e.substring(1,e.length-1))),p.canSelectMultipleOptions="set"==e[1])}return{notNull:!e||"NO"==e||"no"==e,autoIncrement:!(!t||!t.toLowerCase().includes("auto_increment")),columnName:a,columnComment:m,dataType:S,defaultValue:u?(d=c,null==d?d:isNaN(d)||isNaN(parseFloat(d))?n.isString(d)&&d.startsWith("CURRENT_")?d:n.isString(d)&&"NULL"==d?.toUpperCase()?"NULL":n.isString(d)?`'${d.replace("'","\\'")}'`:d:d):c,isUnsigned:A.includes("unsigned"),isZerofill:A.includes("zerofill"),...p};var d}function c(e=[]){return e?.length?e.map((e=>{const t=e.parameterMode?`${e.parameterMode} `:"",a=e.dataType?` ${e.dataType.toUpperCase()}`:"";return t+e.parameterName+a})).join(", "):""}e.exports=class extends r{constructor(e,t,a){super(e,t,a)}createQuery(e,t,a={}){let n=s[e];return n=n.replace("#DATABASE#",this.dbhan.database),super.createQuery(n,t,a)}getRequestedViewNames(e){return this.getRequestedObjectPureNames("views",e)}async _computeSingleObjectId(){const{pureName:e}=this.singleObjectFilter;this.singleObjectId=e}async getViewTexts(e){const t={},a=await this.analyserQuery("viewTexts",["views"]);for(const e of a.rows)t[e.pureName]=`CREATE VIEW \`${e.pureName}\` AS ${e.viewDefinition}`;return t}async _runAnalysis(){this.feedback({analysingMessage:"DBGM-00218 Loading tables"});const e=await this.analyserQuery("tables",["tables"]);this.feedback({analysingMessage:"DBGM-00219 Loading columns"});const t=await this.analyserQuery("columns",["tables","views"]);this.feedback({analysingMessage:"DBGM-00220 Loading primary keys"});const a=await this.analyserQuery("primaryKeys",["tables"]);this.feedback({analysingMessage:"DBGM-00221 Loading foreign keys"});const s=await this.analyserQuery("foreignKeys",["tables"]);this.feedback({analysingMessage:"DBGM-00222 Loading views"});const i=await this.analyserQuery("views",["views"]);this.feedback({analysingMessage:"DBGM-00223 Loading programmables"});const o=await this.analyserQuery("programmables",["procedures","functions"]),m=await this.analyserQuery("parameters",["procedures","functions"]),N=m.rows.filter((e=>"FUNCTION"==e.routineType)).reduce(((e,t)=>(e[t.pureName]||(e[t.pureName]=[]),e[t.pureName].push({...t,dataType:E(t.dataType)}),e)),{}),T=m.rows.filter((e=>"PROCEDURE"==e.routineType)).reduce(((e,t)=>(e[t.pureName]||(e[t.pureName]=[]),e[t.pureName].push({...t,dataType:E(t.dataType)}),e)),{});this.feedback({analysingMessage:"DBGM-00224 Loading view texts"});const u=await this.getViewTexts(i.rows.map((e=>e.pureName)));this.feedback({analysingMessage:"DBGM-00225 Loading indexes"});const p=await this.analyserQuery("indexes",["tables"]);this.feedback({analysingMessage:"DBGM-00226 Loading uniques"}),this.feedback({analysingMessage:"DBGM-00227 Loading triggers"});const A=await this.analyserQuery("triggers");this.feedback({analysingMessage:"DBGM-00228 Loading scheduler events"});const S=await this.analyserQuery("schedulerEvents"),d=await this.analyserQuery("uniqueNames",["tables"]);this.feedback({analysingMessage:"DBGM-00229 Finalizing DB structure"});const I={tables:e.rows.map((e=>({...e,objectId:e.pureName,objectComment:n.isString(e.objectComment)?e.objectComment:void 0,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,columns:t.rows.filter((t=>t.pureName==e.pureName)).map((e=>l(e,this.driver))),primaryKey:r.extractPrimaryKeys(e,a.rows),foreignKeys:r.extractForeignKeys(e,s.rows),tableRowCount:e.tableRowCount,indexes:n.uniqBy(p.rows.filter((t=>t.tableName==e.pureName&&!d.rows.find((e=>e.constraintName==t.constraintName)))),"constraintName").map((e=>({...n.pick(e,["constraintName","indexType"]),isUnique:!e.nonUnique,columns:p.rows.filter((t=>t.tableName==e.tableName&&t.constraintName==e.constraintName)).map((e=>({...n.pick(e,["columnName","isDescending"])})))}))),uniques:n.uniqBy(p.rows.filter((t=>t.tableName==e.pureName&&d.rows.find((e=>e.constraintName==t.constraintName)))),"constraintName").map((e=>({...n.pick(e,["constraintName"]),columns:p.rows.filter((t=>t.tableName==e.tableName&&t.constraintName==e.constraintName)).map((e=>({...n.pick(e,["columnName"])})))})))}))),views:i.rows.map((e=>({...e,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,columns:t.rows.filter((t=>t.pureName==e.pureName)).map((e=>l(e,this.driver))),createSql:u[e.pureName],requiresFormat:!0}))),procedures:o.rows.filter((e=>"PROCEDURE"==e.objectType)).map((e=>n.omit(e,["objectType"]))).map((e=>({...e,createSql:`DELIMITER //\n\nCREATE PROCEDURE \`${e.pureName}\`(${c(T[e.pureName])})\n${e.routineDefinition}\n\nDELIMITER ;\n`,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,parameters:T[e.pureName]}))),functions:o.rows.filter((e=>"FUNCTION"==e.objectType)).map((e=>n.omit(e,["objectType"]))).map((e=>({...e,createSql:`CREATE FUNCTION \`${e.pureName}\`(${c(N[e.pureName]?.filter((e=>"RETURN"!==e.parameterMode)))})\nRETURNS ${e.returnDataType} ${"YES"==e.isDeterministic?"DETERMINISTIC":"NOT DETERMINISTIC"}\n${e.routineDefinition}`,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,parameters:N[e.pureName]}))),triggers:A.rows.map((e=>({objectId:"triggers:"+e.triggerName,contentHash:e.modifyDate,pureName:e.triggerName,eventType:e.eventType,triggerTiming:e.triggerTiming,tableName:e.tableName,createSql:`CREATE TRIGGER ${e.triggerName} ${e.triggerTiming} ${e.eventType} ON ${e.tableName} FOR EACH ROW ${e.definition}`}))),schedulerEvents:S.rows.map((e=>({contentHash:n.isDate(e.LAST_ALTERED)?e.LAST_ALTERED.toISOString():e.LAST_ALTERED,pureName:e.EVENT_NAME,createSql:e.CREATE_SQL,objectId:e.EVENT_NAME,intervalValue:e.INTERVAL_VALUE,intervalField:e.INTERVAL_FIELD,starts:e.STARTS,status:e.STATUS,executeAt:e.EXECUTE_AT,lastExecuted:e.LAST_EXECUTED,eventType:e.EVENT_TYPE,definer:e.DEFINER,objectTypeField:"schedulerEvents"})))};return this.feedback({analysingMessage:null}),I}async _getFastSnapshot(){const e=await this.analyserQuery("tableModifications"),t=await this.analyserQuery("procedureModifications"),a=await this.analyserQuery("functionModifications"),s=await this.analyserQuery("schedulerEventsModifications"),r=await this.analyserQuery("triggersModifications");return{tables:e.rows.filter((e=>"BASE TABLE"==e.objectType)).map((e=>({...e,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,tableRowCount:e.tableRowCount}))),views:e.rows.filter((e=>"VIEW"==e.objectType)).map((e=>({...e,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate}))),procedures:t.rows.map((e=>({contentHash:e.Modified,objectId:e.Name,pureName:e.Name}))),functions:a.rows.map((e=>({contentHash:e.Modified,objectId:e.Name,pureName:e.Name}))),schedulerEvents:s.rows.map((e=>({contentHash:n.isDate(e.LAST_ALTERED)?e.LAST_ALTERED.toISOString():e.LAST_ALTERED,pureName:e.EVENT_NAME,objectId:e.EVENT_NAME}))),triggers:r.rows.map((e=>({contentHash:e.modifyDate,objectId:"triggers:"+e.triggerName,pureName:e.triggerName,tableName:e.tableName})))}}}},378:(e,t,a)=>{const n=a(825),s=a(203),r=a(293),i=a(688),o=a(12),{getLogger:E,createBulkInsertStreamBase:l,makeUniqueColumnNames:c,extractErrorLogData:m}=global.DBGATE_PACKAGES["dbgate-tools"],N=E("mysqlDriver");let T;function u(e){if(e){const t=e.map((e=>({columnName:e.name})));return c(t),t}return null}function p(e,t){return n.zipObject(t.map((e=>e.columnName)),e)}const A=r.map((e=>({...e,analyserClass:i,async connect(t){const{conid:a,server:n,port:s,user:r,password:i,database:E,ssl:l,isReadOnly:c,forceRowsAsObjects:m,socketPath:N,authType:u}=t;let p=null;"awsIam"==u&&(p=await T.getAwsIamToken(t));const A={host:"socket"==u?null:n,port:"socket"==u?null:s,socketPath:"socket"==u?N||e.defaultSocketPath:null,user:r,password:p||i,database:E,ssl:"awsIam"==u?l||{rejectUnauthorized:!1}:l,rowsAsArray:!m,supportBigNumbers:!0,bigNumberStrings:!0,dateStrings:!0},S={client:o.createConnection(A),database:E,conid:a};return c&&await this.query(S,"SET SESSION TRANSACTION READ ONLY"),S},close:e=>new Promise((t=>{e.client.end(t)})),query:(e,t,a)=>null==t||a?.importSqlDump&&(t.trim().startsWith("/*!")||t.trim().startsWith("/*M!"))&&(t.includes("character_set_client")||t.includes("NOTE_VERBOSITY"))?{rows:[],columns:[]}:new Promise(((a,n)=>{e.client.query(t,(function(e,t,s){e&&n(e);const r=u(s);a({rows:t&&r&&t.map&&t.map((e=>p(e,r))),columns:r})}))})),async stream(e,t,a){const n=e.client.query(t);let s=[];n.on("error",(t=>{N.error(m(t,this.getLogDbInfo(e)),"DBGM-00200 Stream error");const{message:n}=t;a.info({message:n,line:0,time:new Date,severity:"error"})})).on("fields",(e=>{s=u(e),s&&a.recordset(s)})).on("result",(e=>{e&&e.constructor&&("OkPacket"==e.constructor.name||"ResultSetHeader"==e.constructor.name)?a.info({message:`${e.affectedRows} rows affected`,time:new Date,severity:"info"}):s&&a.row(p(e,s))})).on("end",(()=>{a.done()}))},async readQuery(e,t,a){const n=e.client.query(t),r=new s.PassThrough({objectMode:!0,highWaterMark:100});let i=[];return n.on("error",(e=>{console.error(e),r.end()})).on("fields",(e=>{i=u(e),r.write({__isStreamHeader:!0,...a||{columns:i}})})).on("result",(e=>r.write(p(e,i)))).on("end",(()=>r.end())),r},async getVersion(e){const{rows:t}=await this.query(e,"show variables like 'version'"),a=t[0].Value;if(a){const e=a.match(/(.*)-MariaDB-/);if(e)return{version:a,versionText:`MariaDB ${e[1]}`}}return{version:a,versionText:`MySQL ${a}`}},async listDatabases(e){const{rows:t}=await this.query(e,"show databases");return t.map((e=>({name:e.Database})))},async listVariables(e){const{rows:t}=await this.query(e,"SHOW VARIABLES");return t.map((e=>({variable:e.Variable_name,value:e.Value})))},async listProcesses(e){const{rows:t}=await this.query(e,"SHOW FULL PROCESSLIST");return t.map((e=>({processId:e.Id,connectionId:null,client:e.Host,operation:e.Info,namespace:e.Database,runningTime:e.Time,state:e.State,waitingFor:e.State&&e.State.includes("Waiting")})))},async killProcess(e,t){await this.query(e,`KILL ${t}`)},async serverSummary(e){const[t,a,n]=await Promise.all([this.listVariables(e),this.listProcesses(e),this.listDatabases(e)]);return{variables:t,processes:a.map((e=>({processId:e.processId,connectionId:e.connectionId,client:e.client,operation:e.operation,namespace:e.namespace,runningTime:e.runningTime,state:e.state,waitingFor:e.waitingFor}))),databases:{rows:n.map((e=>({name:e.name}))),columns:[{filterable:!0,sortable:!0,header:"Database",fieldName:"name",type:"data"}]}}},async writeTable(e,t,a){return l(this,s,e,t,a)},getAuthTypes(){const e=[{title:"Host and port",name:"hostPort",disabledFields:["socketPath"]},{title:"Socket",name:"socket",disabledFields:["server","port"]}];return T.supportsAwsIam()&&e.push({title:"AWS IAM",name:"awsIam"}),e}})));A.initialize=e=>{T=e.authProxy},e.exports=A},237:(e,t,a)=>{const n=a(378);e.exports={packageName:"dbgate-plugin-mysql",drivers:n,initialize(e){n.initialize(e)}}},925:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n\tCOLUMN_NAME as columnName,\n\tIS_NULLABLE as isNullable,\n\tDATA_TYPE as dataType,\n\tCHARACTER_MAXIMUM_LENGTH as charMaxLength,\n\tNUMERIC_PRECISION as numericPrecision,\n\tNUMERIC_SCALE as numericScale,\n\tCOLUMN_DEFAULT as defaultValue,\n\tCOLUMN_COMMENT as columnComment,\n\tCOLUMN_TYPE as columnType,\n\tEXTRA as extra\nfrom INFORMATION_SCHEMA.COLUMNS\nwhere TABLE_SCHEMA = '#DATABASE#' and TABLE_NAME =OBJECT_ID_CONDITION\norder by ORDINAL_POSITION\n"},958:e=>{e.exports="\nselect \n\tREFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME as constraintName,\n\tREFERENTIAL_CONSTRAINTS.TABLE_NAME as pureName,\n\tREFERENTIAL_CONSTRAINTS.UPDATE_RULE as updateAction,\n\tREFERENTIAL_CONSTRAINTS.DELETE_RULE as deleteAction,\n\tREFERENTIAL_CONSTRAINTS.REFERENCED_TABLE_NAME as refTableName,\n\tKEY_COLUMN_USAGE.COLUMN_NAME as columnName,\n\tKEY_COLUMN_USAGE.REFERENCED_COLUMN_NAME as refColumnName\nfrom INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS\ninner join INFORMATION_SCHEMA.KEY_COLUMN_USAGE \n\ton REFERENTIAL_CONSTRAINTS.TABLE_NAME = KEY_COLUMN_USAGE.TABLE_NAME \n\tand REFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME = KEY_COLUMN_USAGE.CONSTRAINT_NAME\n\tand REFERENTIAL_CONSTRAINTS.CONSTRAINT_SCHEMA = KEY_COLUMN_USAGE.CONSTRAINT_SCHEMA\nwhere REFERENTIAL_CONSTRAINTS.CONSTRAINT_SCHEMA = '#DATABASE#' and REFERENTIAL_CONSTRAINTS.TABLE_NAME =OBJECT_ID_CONDITION\norder by KEY_COLUMN_USAGE.ORDINAL_POSITION\n"},623:e=>{e.exports="\nSHOW FUNCTION STATUS WHERE Db = '#DATABASE#'\n"},926:(e,t,a)=>{const n=a(925),s=a(97),r=a(916),i=a(958),o=a(697),E=a(864),l=a(474),c=a(990),m=a(746),N=a(623),T=a(171),u=a(913),p=a(332),A=a(377),S=a(996),d=a(262),I=a(469);e.exports={columns:n,tables:s,primaryKeys:r,foreignKeys:i,tableModifications:o,views:E,programmables:c,parameters:p,procedureModifications:m,functionModifications:N,indexes:l,uniqueNames:T,viewTexts:u,triggers:A,triggersModifications:S,schedulerEvents:d,schedulerEventsModifications:I}},474:e=>{e.exports="\n SELECT \n INDEX_NAME AS constraintName,\n TABLE_NAME AS tableName,\n COLUMN_NAME AS columnName,\n INDEX_TYPE AS indexType,\n NON_UNIQUE AS nonUnique,\n CASE COLLATION\n WHEN 'D' THEN 1\n ELSE 0\n END AS isDescending\n FROM INFORMATION_SCHEMA.STATISTICS\n WHERE TABLE_SCHEMA = '#DATABASE#' AND TABLE_NAME =OBJECT_ID_CONDITION AND INDEX_NAME != 'PRIMARY'\n ORDER BY SEQ_IN_INDEX\n"},332:e=>{e.exports="\nSELECT\n r.ROUTINE_SCHEMA AS schemaName,\n r.SPECIFIC_NAME AS pureName,\n CASE \n WHEN COALESCE(NULLIF(PARAMETER_MODE, ''), 'RETURN') = 'RETURN' THEN 'Return'\n ELSE PARAMETER_NAME\n END AS parameterName,\n p.CHARACTER_MAXIMUM_LENGTH AS charMaxLength,\n p.NUMERIC_PRECISION AS numericPrecision,\n p.NUMERIC_SCALE AS numericScale,\n p.DTD_IDENTIFIER AS dataType,\n COALESCE(NULLIF(PARAMETER_MODE, ''), 'RETURN') AS parameterMode,\n r.ROUTINE_TYPE AS routineType, -- Function or Procedure\n p.ORDINAL_POSITION AS ordinalPosition\nFROM \n information_schema.PARAMETERS p\nJOIN \n information_schema.ROUTINES r\nON \n p.SPECIFIC_NAME = r.SPECIFIC_NAME AND r.ROUTINE_SCHEMA = p.SPECIFIC_SCHEMA\nWHERE \n r.ROUTINE_SCHEMA = '#DATABASE#' AND r.ROUTINE_NAME =OBJECT_ID_CONDITION\nORDER BY\n r.ROUTINE_SCHEMA, r.SPECIFIC_NAME, p.ORDINAL_POSITION\n"},916:e=>{e.exports="select \n\tTABLE_CONSTRAINTS.CONSTRAINT_NAME as constraintName,\n\tTABLE_CONSTRAINTS.TABLE_NAME as pureName,\n\tKEY_COLUMN_USAGE.COLUMN_NAME as columnName\nfrom INFORMATION_SCHEMA.TABLE_CONSTRAINTS\ninner join INFORMATION_SCHEMA.KEY_COLUMN_USAGE \n\ton TABLE_CONSTRAINTS.TABLE_NAME = KEY_COLUMN_USAGE.TABLE_NAME \n\t\tand TABLE_CONSTRAINTS.CONSTRAINT_NAME = KEY_COLUMN_USAGE.CONSTRAINT_NAME\n\t\tand TABLE_CONSTRAINTS.CONSTRAINT_SCHEMA = KEY_COLUMN_USAGE.CONSTRAINT_SCHEMA\nwhere TABLE_CONSTRAINTS.CONSTRAINT_SCHEMA = '#DATABASE#' and TABLE_CONSTRAINTS.TABLE_NAME =OBJECT_ID_CONDITION AND TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'PRIMARY KEY'\norder by KEY_COLUMN_USAGE.ORDINAL_POSITION\n"},746:e=>{e.exports="\nSHOW PROCEDURE STATUS WHERE Db = '#DATABASE#'\n"},990:e=>{e.exports="\nselect \n ROUTINE_NAME as pureName,\n ROUTINE_TYPE as objectType,\n COALESCE(LAST_ALTERED, CREATED) as modifyDate,\n DATA_TYPE AS returnDataType,\n ROUTINE_DEFINITION as routineDefinition,\n IS_DETERMINISTIC as isDeterministic\nfrom information_schema.routines\nwhere ROUTINE_SCHEMA = '#DATABASE#' and ROUTINE_NAME =OBJECT_ID_CONDITION\n"},262:e=>{e.exports="\nSELECT \n EVENT_SCHEMA,\n EVENT_NAME,\n DEFINER,\n EVENT_TYPE,\n EXECUTE_AT,\n INTERVAL_VALUE,\n INTERVAL_FIELD,\n CREATED,\n LAST_EXECUTED,\n LAST_ALTERED,\n STARTS,\n ENDS,\n STATUS,\n ON_COMPLETION,\n CONCAT(\n 'CREATE EVENT `', EVENT_NAME, '` ',\n CASE WHEN EVENT_TYPE = 'RECURRING' THEN\n 'ON SCHEDULE EVERY ' \n ELSE 'ON SCHEDULE AT ' \n END,\n CASE WHEN EVENT_TYPE = 'RECURRING' THEN \n CONCAT(INTERVAL_VALUE, ' ', INTERVAL_FIELD)\n ELSE DATE_FORMAT(EXECUTE_AT, '%Y-%m-%d %H:%i:%s') \n END,\n ' DO ',\n EVENT_DEFINITION\n ) AS CREATE_SQL\nFROM INFORMATION_SCHEMA.EVENTS\nWHERE EVENT_SCHEMA = '#DATABASE#' AND EVENT_NAME =OBJECT_ID_CONDITION\n"},469:e=>{e.exports="\nSELECT \n EVENT_NAME,\n LAST_ALTERED\nFROM INFORMATION_SCHEMA.EVENTS\nWHERE EVENT_SCHEMA = '#DATABASE#'\n"},697:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n\tTABLE_TYPE as objectType,\n\tTABLE_ROWS as tableRowCount,\n\tcase when ENGINE='InnoDB' then CREATE_TIME else coalesce(UPDATE_TIME, CREATE_TIME) end as modifyDate \nfrom information_schema.tables \nwhere TABLE_SCHEMA = '#DATABASE#'\n"},97:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n\tTABLE_ROWS as tableRowCount,\n\tENGINE as tableEngine,\n\tTABLE_COMMENT as objectComment,\n\tcase when ENGINE='InnoDB' then CREATE_TIME else coalesce(UPDATE_TIME, CREATE_TIME) end as modifyDate \nfrom information_schema.tables \nwhere TABLE_SCHEMA = '#DATABASE#' and (TABLE_TYPE='BASE TABLE' or TABLE_TYPE='SYSTEM VERSIONED') and TABLE_NAME =OBJECT_ID_CONDITION;\n"},377:e=>{e.exports="\nSELECT \n TRIGGER_NAME AS triggerName,\n EVENT_MANIPULATION AS eventType,\n ACTION_TIMING AS triggerTiming,\n EVENT_OBJECT_SCHEMA AS schemaName,\n EVENT_OBJECT_TABLE AS tableName,\n ACTION_STATEMENT AS definition,\n CREATED as modifyDate\nFROM \n INFORMATION_SCHEMA.TRIGGERS\n WHERE EVENT_OBJECT_SCHEMA = '#DATABASE#' AND TRIGGER_NAME =OBJECT_ID_CONDITION\n"},996:e=>{e.exports="\nSELECT \n TRIGGER_NAME AS triggerName,\n EVENT_OBJECT_TABLE AS tableName,\n CREATED as modifyDate\nFROM \n INFORMATION_SCHEMA.TRIGGERS\n WHERE EVENT_OBJECT_SCHEMA = '#DATABASE#'\n"},171:e=>{e.exports="\n select CONSTRAINT_NAME as constraintName\n from information_schema.TABLE_CONSTRAINTS\n where CONSTRAINT_SCHEMA = '#DATABASE#' and constraint_type = 'UNIQUE'\n"},913:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n VIEW_DEFINITION as viewDefinition\nfrom information_schema.views \nwhere TABLE_SCHEMA = '#DATABASE#' and TABLE_NAME =OBJECT_ID_CONDITION;\n"},864:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n coalesce(UPDATE_TIME, CREATE_TIME) as modifyDate\nfrom information_schema.tables \nwhere TABLE_SCHEMA = '#DATABASE#' and TABLE_NAME =OBJECT_ID_CONDITION and TABLE_TYPE = 'VIEW';\n"},197:(e,t,a)=>{const{SqlDumper:n,arrayToHexString:s}=global.DBGATE_PACKAGES["dbgate-tools"];a(464),e.exports=class extends n{transform(e,t){switch(e){case"GROUP:YEAR":case"YEAR":this.put("^year(%c)",t);break;case"MONTH":this.put("^month(%c)",t);break;case"DAY":this.put("^day(%c)",t);break;case"GROUP:MONTH":this.put("^date_format(%c, '%s')",t,"%Y-%m");break;case"GROUP:DAY":this.put("^date_format(%c, '%s')",t,"%Y-%m-%d");break;default:t()}}renameTable(e,t){this.putCmd("^rename ^table %f ^to %i",e,t)}changeColumn(e,t,a){e.notNull||this.fillNewNotNullDefaults({...t,columnName:e.columnName}),this.put("^alter ^table %f ^change ^column %i %i ",e,e.columnName,t.columnName),this.columnDefinition(t),this.inlineConstraints(a),this.endCommand()}autoIncrement(){}specialColumnOptions(e){e.isUnsigned&&this.put("^unsigned "),e.isZerofill&&this.put("^zerofill "),e.autoIncrement&&this.put("^auto_increment ")}columnDefinition(e,t){super.columnDefinition(e,t),e.columnComment&&this.put(" ^comment %v ",e.columnComment)}renameColumn(e,t){this.changeColumn(e,{...e,columnName:t},[])}enableConstraints(e,t){this.putCmd("^set FOREIGN_KEY_CHECKS = %s",t?"1":"0")}comment(e){this.put("/* %s */",e)}beginTransaction(){this.putCmd("^start ^transaction")}selectTableIntoNewTable(e,t){this.putCmd("^create ^table %f (^select * ^from %f)",t,e)}putByteArrayValue(e){this.putRaw(`unhex('${s(e)}')`)}selectScopeIdentity(){this.put("^select ^last_insert_id()")}callableTemplate(e){const t=(e.parameters||[]).filter((e=>"RETURN"!=e.parameterMode)),a=(e,t)=>{this.putCollection(t,e||[],(e=>{"IN"==e.parameterMode?this.putRaw("@"+e.parameterName):this.putRaw("@"+e.parameterName+"Output")}))},n=e=>{for(const t of e||[])"IN"==t.parameterMode&&(this.put("SET @%s = :%s",t.parameterName,t.parameterName),this.endCommand());this.put("&n")};"procedures"==e.objectTypeField&&(n(e.parameters),this.put("^call %f(&>&n",e),a(t,",&n"),this.put("&<&n)"),this.endCommand()),"functions"==e.objectTypeField&&(n(t),this.put("^select %f(&>&n",e),a(t,",&n"),this.put("&<&n)"),this.endCommand())}putValue(e,t){const a=t?.toLowerCase();if(a?.includes("date")&&"string"==typeof e)return this.putRaw("'"),this.putRaw(this.escapeString(e.replace(/(?:Z|[+-]\d{2}:?\d{2})$/,""))),void this.putRaw("'");super.putValue(e,t)}}},293:(e,t,a)=>{const{driverBase:n}=global.DBGATE_PACKAGES["dbgate-tools"],{mysqlSplitterOptions:s}=a(994),r=a(197),i=["POINT","LINESTRING","POLYGON","GEOMETRY","MULTIPOINT","MULTILINESTRING","MULTIPOLYGON","GEOMCOLLECTION","GEOMETRYCOLLECTION"],o={rangeSelect:!0,stringEscapeChar:"\\",fallbackDataType:"longtext",enableConstraintsPerTable:!1,anonymousPrimaryKey:!0,explicitDropConstraint:!0,allowMultipleValuesInsert:!0,quoteIdentifier:e=>"`"+e+"`",createColumn:!0,dropColumn:!0,changeColumn:!0,changeAutoIncrement:!0,createIndex:!0,dropIndex:!0,createForeignKey:!0,dropForeignKey:!0,createPrimaryKey:!0,dropPrimaryKey:!0,dropIndexContainsTableSpec:!0,createUnique:!0,dropUnique:!0,createCheck:!0,dropCheck:!0,dropReferencesWhenDropTable:!1,requireStandaloneSelectForScopeIdentity:!0,columnProperties:{columnComment:!0,isUnsigned:!0,isZerofill:!0},predefinedDataTypes:["char(20)","varchar(250)","binary(250)","varbinary(250)","tinyblob","tinytext","text(1000)","blob(1000)","mediumtext","mediumblob","longtext","longblob","enum('val1','val2','val3')","set('val1','val2','val3')","bit(32)","tinyint","bool","smallint","mediumint","int","bigint","float","double","decimal","date","datetime","timestamp","time","year"],createColumnViewExpression(e,t,a,n){if(t&&i.includes(t.toUpperCase()))return{exprType:"call",func:"ST_AsText",alias:n||e,args:[{exprType:"column",columnName:e,source:a}]}},getSupportedEngines:()=>[],getTableFormOptions(e){return[{type:"dropdowntext",options:this.getSupportedEngines(),label:"Engine",name:"tableEngine",sqlFormatString:"^engine = %s"},{type:"text",label:"Comment",name:"objectComment",sqlFormatString:"^comment = %v",allowEmptyValue:!0}]}},E={...o,getSupportedEngines:()=>["InnoDB","MyISAM","MEMORY","CSV","ARCHIVE","BLACKHOLE","FEDERATED","MRG_MYISAM","NDB","EXAMPLE","PERFORMANCE_SCHEMA","SEQUENCE","SPIDER","ROCKSDB","TokuDB"]},l={...n,showConnectionField:(e,t)=>!!["authType","user","defaultDatabase","singleDatabase","isReadOnly"].includes(e)||("awsIam"==t.authType?["awsRegion","secretAccessKey","accessKeyId","server","port"].includes(e):!!["password"].includes(e)||("socket"==t.authType?["socketPath"].includes(e):["server","port"].includes(e))),dumperClass:r,defaultPort:3306,getQuerySplitterOptions:e=>"editor"==e?{...s,ignoreComments:!0,preventSingleLineSplit:!0}:s,readOnlySessions:!0,supportsDatabaseBackup:!0,supportsDatabaseRestore:!0,authTypeLabel:"Connection mode",defaultAuthTypeName:"hostPort",defaultSocketPath:"/var/run/mysqld/mysqld.sock",supportsTransactions:!0,getNewObjectTemplates:()=>[{label:"New view",sql:"CREATE VIEW myview\nAS\nSELECT * FROM table1"},{label:"New procedure",sql:"DELIMITER //\n\nCREATE PROCEDURE myproc (IN arg1 INT)\nBEGIN\n SELECT * FROM table1;\nEND\n\nDELIMITER ;"},{label:"New function",sql:"CREATE FUNCTION myfunc (arg1 INT)\nRETURNS INT DETERMINISTIC\nRETURN 1"},{label:"New trigger",sql:"CREATE TRIGGER myTrigger AFTER INSERT ON myTable FOR EACH ROW BEGIN\n END"},{label:"New event",sql:"CREATE EVENT `event_name`\nON SCHEDULE EVERY 1 HOUR\nDO\nBEGIN\n\nEND"}],getCliConnectionArgs(e,t){const a=[`--user=${e.user}`,`--password=${e.password}`,`--host=${e.server}`];return e.port&&a.push(`--port=${e.port}`),t.mysqlPlugins&&a.push(`--plugin-dir=${t.mysqlPlugins}`),"localhost"==e.server&&a.push("--protocol=tcp"),a},backupDatabaseCommand(e,t,a){const{outputFile:n,database:s,skippedTables:r,options:i}=t,o=a.mysqldump||"mysqldump",E=this.getCliConnectionArgs(e,a);E.push(`--result-file=${n}`),E.push("--verbose");for(const e of r)E.push(`--ignore-table=${s}.${e.pureName}`);if(i.noData&&E.push("--no-data"),i.noStructure&&E.push("--no-create-info"),!1===i.includeEvents||i.noStructure||E.push("--events"),!1===i.includeRoutines||i.noStructure||E.push("--routines"),!1===i.includeTriggers||i.noStructure||E.push("--triggers"),i.force&&E.push("--force"),i.lockTables&&E.push("--lock-tables"),i.skipLockTables&&E.push("--skip-lock-tables"),i.singleTransaction&&E.push("--single-transaction"),i.customArgs?.trim()){const e=i.customArgs.split(/\s+/).filter((e=>""!=e.trim()));E.push(...e)}return i.createDatabase?(E.push("--databases",s),i.dropDatabase&&E.push("--add-drop-database")):E.push(s),{command:o,args:E}},restoreDatabaseCommand(e,t,a){const{inputFile:n,database:s}=t,r=a.mysql||"mysql",i=this.getCliConnectionArgs(e,a);return s&&i.push(s),{command:r,args:i,stdinFilePath:n}},transformNativeCommandMessage:e=>e.message?.startsWith("--")?e.message.startsWith("-- Retrieving table structure for table")?{...e,severity:"info",message:e.message.replace("-- Retrieving table structure for table","Processing table")}:{...e,severity:"debug",message:e.message.replace("-- ","")}:e,getNativeOperationFormArgs:e=>"backup"==e?[{type:"checkbox",label:"No data (dump only structure)",name:"noData",default:!1},{type:"checkbox",label:"No structure (dump only data)",name:"noStructure",default:!1},{type:"checkbox",label:"Force (ignore all errors)",name:"force",default:!1},{type:"checkbox",label:"Backup events",name:"includeEvents",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Backup routines",name:"includeRoutines",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Backup triggers",name:"includeTriggers",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Lock tables",name:"lockTables",default:!1,disabledFn:e=>e.skipLockTables||e.singleTransaction},{type:"checkbox",label:"Skip lock tables",name:"skipLockTables",default:!1,disabledFn:e=>e.lockTables||e.singleTransaction},{type:"checkbox",label:"Single transaction",name:"singleTransaction",default:!1,disabledFn:e=>e.lockTables||e.skipLockTables},{type:"checkbox",label:"Create database",name:"createDatabase",default:!1},{type:"checkbox",label:"Drop database before import",name:"dropDatabase",default:!1,disabledFn:e=>!e.createDatabase},{type:"text",label:"Custom arguments",name:"customArgs"}]:null,adaptDataType:e=>"money"==e?.toLowerCase()?"decimal(15,2)":e},c={...l,supportsServerSummary:!0,dialect:E,engine:"mysql@dbgate-plugin-mysql",title:"MySQL",__analyserInternals:{quoteDefaultValues:!0}},m={...o,getSupportedEngines:()=>["InnoDB","Aria","MyISAM","MEMORY","CSV","ARCHIVE","BLACKHOLE","FEDERATED","MRG_MyISAM","SEQUENCE","SphinxSE","SPIDER","TokuDB","RocksDB","CONNECT","OQGRAPH","ColumnStore","Mroonga","S3","XtraDB"]},N={...l,supportsServerSummary:!0,dialect:m,engine:"mariadb@dbgate-plugin-mysql",title:"MariaDB",__analyserInternals:{quoteDefaultValues:!1}};e.exports=[c,N]},825:e=>{"use strict";e.exports=require("lodash")},12:e=>{"use strict";e.exports=require("mysql2")},203:e=>{"use strict";e.exports=require("stream")}},t={},a=function a(n){var s=t[n];if(void 0!==s)return s.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,a),r.exports}(237);module.exports=a})();
|
|
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:":"})},464:e=>{var t=Array.isArray;e.exports=t},688:(e,t,a)=>{const n=a(825),s=a(926),{DatabaseAnalyser:r,isTypeString:i,isTypeNumeric:o}=global.DBGATE_PACKAGES["dbgate-tools"];function E(e){return/int\(\d+\)/.test(e)?"int":e}function l({isNullable:e,extra:t,columnName:a,dataType:s,charMaxLength:r,numericPrecision:E,numericScale:l,defaultValue:c,columnComment:m,columnType:N},T){const{quoteDefaultValues:u}=T.__analyserInternals;let p={};const A=n.isString(N)?N.split(" ").map((e=>e.trim().toLowerCase())):[];let S=s;if(r&&i(s))S=`${s}(${r})`;else if(E&&l&&o(s))S=`${s}(${E},${l})`;else{const e=N.match(/^(enum|set)\((.+)\)/i);e?.length&&(S=N,p.options=e[2].split(",").map((e=>e.substring(1,e.length-1))),p.canSelectMultipleOptions="set"==e[1])}return{notNull:!e||"NO"==e||"no"==e,autoIncrement:!(!t||!t.toLowerCase().includes("auto_increment")),columnName:a,columnComment:m,dataType:S,defaultValue:u?(d=c,null==d?d:isNaN(d)||isNaN(parseFloat(d))?n.isString(d)&&d.startsWith("CURRENT_")?d:n.isString(d)&&"NULL"==d?.toUpperCase()?"NULL":n.isString(d)?`'${d.replace("'","\\'")}'`:d:d):c,isUnsigned:A.includes("unsigned"),isZerofill:A.includes("zerofill"),...p};var d}function c(e=[]){return e?.length?e.map((e=>{const t=e.parameterMode?`${e.parameterMode} `:"",a=e.dataType?` ${e.dataType.toUpperCase()}`:"";return t+e.parameterName+a})).join(", "):""}e.exports=class extends r{constructor(e,t,a){super(e,t,a)}createQuery(e,t,a={}){let n=s[e];return n=n.replace("#DATABASE#",this.dbhan.database),super.createQuery(n,t,a)}getRequestedViewNames(e){return this.getRequestedObjectPureNames("views",e)}async _computeSingleObjectId(){const{pureName:e}=this.singleObjectFilter;this.singleObjectId=e}async getViewTexts(e){const t={},a=await this.analyserQuery("viewTexts",["views"]);for(const e of a.rows)t[e.pureName]=`CREATE VIEW \`${e.pureName}\` AS ${e.viewDefinition}`;return t}async _runAnalysis(){this.feedback({analysingMessage:"DBGM-00218 Loading tables"});const e=await this.analyserQuery("tables",["tables"]);this.feedback({analysingMessage:"DBGM-00219 Loading columns"});const t=await this.analyserQuery("columns",["tables","views"]);this.feedback({analysingMessage:"DBGM-00220 Loading primary keys"});const a=await this.analyserQuery("primaryKeys",["tables"]);this.feedback({analysingMessage:"DBGM-00221 Loading foreign keys"});const s=await this.analyserQuery("foreignKeys",["tables"]);this.feedback({analysingMessage:"DBGM-00222 Loading views"});const i=await this.analyserQuery("views",["views"]);this.feedback({analysingMessage:"DBGM-00223 Loading programmables"});const o=await this.analyserQuery("programmables",["procedures","functions"]),m=await this.analyserQuery("parameters",["procedures","functions"]),N=m.rows.filter((e=>"FUNCTION"==e.routineType)).reduce(((e,t)=>(e[t.pureName]||(e[t.pureName]=[]),e[t.pureName].push({...t,dataType:E(t.dataType)}),e)),{}),T=m.rows.filter((e=>"PROCEDURE"==e.routineType)).reduce(((e,t)=>(e[t.pureName]||(e[t.pureName]=[]),e[t.pureName].push({...t,dataType:E(t.dataType)}),e)),{});this.feedback({analysingMessage:"DBGM-00224 Loading view texts"});const u=await this.getViewTexts(i.rows.map((e=>e.pureName)));this.feedback({analysingMessage:"DBGM-00225 Loading indexes"});const p=await this.analyserQuery("indexes",["tables"]);this.feedback({analysingMessage:"DBGM-00226 Loading uniques"}),this.feedback({analysingMessage:"DBGM-00227 Loading triggers"});const A=await this.analyserQuery("triggers");this.feedback({analysingMessage:"DBGM-00228 Loading scheduler events"});const S=await this.analyserQuery("schedulerEvents"),d=await this.analyserQuery("uniqueNames",["tables"]);this.feedback({analysingMessage:"DBGM-00229 Finalizing DB structure"});const I={tables:e.rows.map((e=>({...e,objectId:e.pureName,objectComment:n.isString(e.objectComment)?e.objectComment:void 0,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,columns:t.rows.filter((t=>t.pureName==e.pureName)).map((e=>l(e,this.driver))),primaryKey:r.extractPrimaryKeys(e,a.rows),foreignKeys:r.extractForeignKeys(e,s.rows),tableRowCount:e.tableRowCount,indexes:n.uniqBy(p.rows.filter((t=>t.tableName==e.pureName&&!d.rows.find((e=>e.constraintName==t.constraintName)))),"constraintName").map((e=>({...n.pick(e,["constraintName","indexType"]),isUnique:!e.nonUnique,columns:p.rows.filter((t=>t.tableName==e.tableName&&t.constraintName==e.constraintName)).map((e=>({...n.pick(e,["columnName","isDescending"])})))}))),uniques:n.uniqBy(p.rows.filter((t=>t.tableName==e.pureName&&d.rows.find((e=>e.constraintName==t.constraintName)))),"constraintName").map((e=>({...n.pick(e,["constraintName"]),columns:p.rows.filter((t=>t.tableName==e.tableName&&t.constraintName==e.constraintName)).map((e=>({...n.pick(e,["columnName"])})))})))}))),views:i.rows.map((e=>({...e,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,columns:t.rows.filter((t=>t.pureName==e.pureName)).map((e=>l(e,this.driver))),createSql:u[e.pureName],requiresFormat:!0}))),procedures:o.rows.filter((e=>"PROCEDURE"==e.objectType)).map((e=>n.omit(e,["objectType"]))).map((e=>({...e,createSql:`DELIMITER //\n\nCREATE PROCEDURE \`${e.pureName}\`(${c(T[e.pureName])})\n${e.routineDefinition}\n\nDELIMITER ;\n`,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,parameters:T[e.pureName]}))),functions:o.rows.filter((e=>"FUNCTION"==e.objectType)).map((e=>n.omit(e,["objectType"]))).map((e=>({...e,createSql:`CREATE FUNCTION \`${e.pureName}\`(${c(N[e.pureName]?.filter((e=>"RETURN"!==e.parameterMode)))})\nRETURNS ${e.returnDataType} ${"YES"==e.isDeterministic?"DETERMINISTIC":"NOT DETERMINISTIC"}\n${e.routineDefinition}`,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,parameters:N[e.pureName]}))),triggers:A.rows.map((e=>({objectId:"triggers:"+e.triggerName,contentHash:e.modifyDate,pureName:e.triggerName,eventType:e.eventType,triggerTiming:e.triggerTiming,tableName:e.tableName,createSql:`CREATE TRIGGER ${e.triggerName} ${e.triggerTiming} ${e.eventType} ON ${e.tableName} FOR EACH ROW ${e.definition}`}))),schedulerEvents:S.rows.map((e=>({contentHash:n.isDate(e.LAST_ALTERED)?e.LAST_ALTERED.toISOString():e.LAST_ALTERED,pureName:e.EVENT_NAME,createSql:e.CREATE_SQL,objectId:e.EVENT_NAME,intervalValue:e.INTERVAL_VALUE,intervalField:e.INTERVAL_FIELD,starts:e.STARTS,status:e.STATUS,executeAt:e.EXECUTE_AT,lastExecuted:e.LAST_EXECUTED,eventType:e.EVENT_TYPE,definer:e.DEFINER,objectTypeField:"schedulerEvents"})))};return this.feedback({analysingMessage:null}),I}async _getFastSnapshot(){const e=await this.analyserQuery("tableModifications"),t=await this.analyserQuery("procedureModifications"),a=await this.analyserQuery("functionModifications"),s=await this.analyserQuery("schedulerEventsModifications"),r=await this.analyserQuery("triggersModifications");return{tables:e.rows.filter((e=>"BASE TABLE"==e.objectType)).map((e=>({...e,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate,tableRowCount:e.tableRowCount}))),views:e.rows.filter((e=>"VIEW"==e.objectType)).map((e=>({...e,objectId:e.pureName,contentHash:n.isDate(e.modifyDate)?e.modifyDate.toISOString():e.modifyDate}))),procedures:t.rows.map((e=>({contentHash:e.Modified,objectId:e.Name,pureName:e.Name}))),functions:a.rows.map((e=>({contentHash:e.Modified,objectId:e.Name,pureName:e.Name}))),schedulerEvents:s.rows.map((e=>({contentHash:n.isDate(e.LAST_ALTERED)?e.LAST_ALTERED.toISOString():e.LAST_ALTERED,pureName:e.EVENT_NAME,objectId:e.EVENT_NAME}))),triggers:r.rows.map((e=>({contentHash:e.modifyDate,objectId:"triggers:"+e.triggerName,pureName:e.triggerName,tableName:e.tableName})))}}}},378:(e,t,a)=>{const n=a(825),s=a(203),r=a(293),i=a(688),o=a(12),{getLogger:E,createBulkInsertStreamBase:l,makeUniqueColumnNames:c,extractErrorLogData:m}=global.DBGATE_PACKAGES["dbgate-tools"],N=E("mysqlDriver");let T;function u(e){if(e){const t=e.map((e=>({columnName:e.name})));return c(t),t}return null}function p(e,t){return n.zipObject(t.map((e=>e.columnName)),e)}const A=r.map((e=>({...e,analyserClass:i,async connect(t){const{conid:a,server:n,port:s,user:r,password:i,database:E,ssl:l,isReadOnly:c,forceRowsAsObjects:m,socketPath:N,authType:u}=t;let p=null;"awsIam"==u&&(p=await T.getAwsIamToken(t));const A={host:"socket"==u?null:n,port:"socket"==u?null:s,socketPath:"socket"==u?N||e.defaultSocketPath:null,user:r,password:p||i,database:E,ssl:"awsIam"==u?l||{rejectUnauthorized:!1}:l,rowsAsArray:!m,supportBigNumbers:!0,bigNumberStrings:!0,dateStrings:!0},S={client:o.createConnection(A),database:E,conid:a};return c&&await this.query(S,"SET SESSION TRANSACTION READ ONLY"),S},close:e=>new Promise((t=>{e.client.end(t)})),query:(e,t,a)=>null==t||a?.importSqlDump&&(t.trim().startsWith("/*!")||t.trim().startsWith("/*M!"))&&(t.includes("character_set_client")||t.includes("NOTE_VERBOSITY"))?{rows:[],columns:[]}:new Promise(((a,n)=>{e.client.query(t,(function(e,t,s){e&&n(e);const r=u(s);a({rows:t&&r&&t.map&&t.map((e=>p(e,r))),columns:r})}))})),async stream(e,t,a){const n=e.client.query(t);let s=[];n.on("error",(t=>{N.error(m(t,this.getLogDbInfo(e)),"DBGM-00200 Stream error");const{message:n}=t;a.info({message:n,line:0,time:new Date,severity:"error"})})).on("fields",(e=>{s=u(e),s&&a.recordset(s)})).on("result",(e=>{e&&e.constructor&&("OkPacket"==e.constructor.name||"ResultSetHeader"==e.constructor.name)?a.info({message:`${e.affectedRows} rows affected`,time:new Date,severity:"info"}):s&&a.row(p(e,s))})).on("end",(()=>{a.done()}))},async readQuery(e,t,a){const n=e.client.query(t),r=new s.PassThrough({objectMode:!0,highWaterMark:100});let i=[];return n.on("error",(e=>{console.error(e),r.end()})).on("fields",(e=>{i=u(e),r.write({__isStreamHeader:!0,...a||{columns:i}})})).on("result",(e=>r.write(p(e,i)))).on("end",(()=>r.end())),r},async getVersion(e){const{rows:t}=await this.query(e,"show variables like 'version'"),a=t[0].Value;if(a){const e=a.match(/(.*)-MariaDB-/);if(e)return{version:a,versionText:`MariaDB ${e[1]}`}}return{version:a,versionText:`MySQL ${a}`}},async listDatabases(e){const{rows:t}=await this.query(e,"show databases");return t.map((e=>({name:e.Database})))},async listVariables(e){const{rows:t}=await this.query(e,"SHOW VARIABLES");return t.map((e=>({variable:e.Variable_name,value:e.Value})))},async listProcesses(e){const{rows:t}=await this.query(e,"SHOW FULL PROCESSLIST");return t.map((e=>({processId:e.Id,connectionId:null,client:e.Host,operation:e.Info,namespace:e.Database,runningTime:e.Time,state:e.State,waitingFor:e.State&&e.State.includes("Waiting")})))},async killProcess(e,t){await this.query(e,`KILL ${t}`)},async serverSummary(e){const[t,a,n]=await Promise.all([this.listVariables(e),this.listProcesses(e),this.listDatabases(e)]);return{variables:t,processes:a.map((e=>({processId:e.processId,connectionId:e.connectionId,client:e.client,operation:e.operation,namespace:e.namespace,runningTime:e.runningTime,state:e.state,waitingFor:e.waitingFor}))),databases:{rows:n.map((e=>({name:e.name}))),columns:[{filterable:!0,sortable:!0,header:"Database",fieldName:"name",type:"data"}]}}},async writeTable(e,t,a){return l(this,s,e,t,a)},getAuthTypes(){const e=[{title:"Host and port",name:"hostPort",disabledFields:["socketPath"]},{title:"Socket",name:"socket",disabledFields:["server","port"]}];return T.supportsAwsIam()&&e.push({title:"AWS IAM",name:"awsIam"}),e}})));A.initialize=e=>{T=e.authProxy},e.exports=A},237:(e,t,a)=>{const n=a(378);e.exports={packageName:"dbgate-plugin-mysql",drivers:n,initialize(e){n.initialize(e)}}},925:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n\tCOLUMN_NAME as columnName,\n\tIS_NULLABLE as isNullable,\n\tDATA_TYPE as dataType,\n\tCHARACTER_MAXIMUM_LENGTH as charMaxLength,\n\tNUMERIC_PRECISION as numericPrecision,\n\tNUMERIC_SCALE as numericScale,\n\tCOLUMN_DEFAULT as defaultValue,\n\tCOLUMN_COMMENT as columnComment,\n\tCOLUMN_TYPE as columnType,\n\tEXTRA as extra\nfrom INFORMATION_SCHEMA.COLUMNS\nwhere TABLE_SCHEMA = '#DATABASE#' and TABLE_NAME =OBJECT_ID_CONDITION\norder by ORDINAL_POSITION\n"},958:e=>{e.exports="\nselect \n\tREFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME as constraintName,\n\tREFERENTIAL_CONSTRAINTS.TABLE_NAME as pureName,\n\tREFERENTIAL_CONSTRAINTS.UPDATE_RULE as updateAction,\n\tREFERENTIAL_CONSTRAINTS.DELETE_RULE as deleteAction,\n\tREFERENTIAL_CONSTRAINTS.REFERENCED_TABLE_NAME as refTableName,\n\tKEY_COLUMN_USAGE.COLUMN_NAME as columnName,\n\tKEY_COLUMN_USAGE.REFERENCED_COLUMN_NAME as refColumnName\nfrom INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS\ninner join INFORMATION_SCHEMA.KEY_COLUMN_USAGE \n\ton REFERENTIAL_CONSTRAINTS.TABLE_NAME = KEY_COLUMN_USAGE.TABLE_NAME \n\tand REFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME = KEY_COLUMN_USAGE.CONSTRAINT_NAME\n\tand REFERENTIAL_CONSTRAINTS.CONSTRAINT_SCHEMA = KEY_COLUMN_USAGE.CONSTRAINT_SCHEMA\nwhere REFERENTIAL_CONSTRAINTS.CONSTRAINT_SCHEMA = '#DATABASE#' and REFERENTIAL_CONSTRAINTS.TABLE_NAME =OBJECT_ID_CONDITION\norder by KEY_COLUMN_USAGE.ORDINAL_POSITION\n"},623:e=>{e.exports="\nSHOW FUNCTION STATUS WHERE Db = '#DATABASE#'\n"},926:(e,t,a)=>{const n=a(925),s=a(97),r=a(916),i=a(958),o=a(697),E=a(864),l=a(474),c=a(990),m=a(746),N=a(623),T=a(171),u=a(913),p=a(332),A=a(377),S=a(996),d=a(262),I=a(469);e.exports={columns:n,tables:s,primaryKeys:r,foreignKeys:i,tableModifications:o,views:E,programmables:c,parameters:p,procedureModifications:m,functionModifications:N,indexes:l,uniqueNames:T,viewTexts:u,triggers:A,triggersModifications:S,schedulerEvents:d,schedulerEventsModifications:I}},474:e=>{e.exports="\n SELECT \n INDEX_NAME AS constraintName,\n TABLE_NAME AS tableName,\n COLUMN_NAME AS columnName,\n INDEX_TYPE AS indexType,\n NON_UNIQUE AS nonUnique,\n CASE COLLATION\n WHEN 'D' THEN 1\n ELSE 0\n END AS isDescending\n FROM INFORMATION_SCHEMA.STATISTICS\n WHERE TABLE_SCHEMA = '#DATABASE#' AND TABLE_NAME =OBJECT_ID_CONDITION AND INDEX_NAME != 'PRIMARY'\n ORDER BY SEQ_IN_INDEX\n"},332:e=>{e.exports="\nSELECT\n r.ROUTINE_SCHEMA AS schemaName,\n r.SPECIFIC_NAME AS pureName,\n CASE \n WHEN COALESCE(NULLIF(PARAMETER_MODE, ''), 'RETURN') = 'RETURN' THEN 'Return'\n ELSE PARAMETER_NAME\n END AS parameterName,\n p.CHARACTER_MAXIMUM_LENGTH AS charMaxLength,\n p.NUMERIC_PRECISION AS numericPrecision,\n p.NUMERIC_SCALE AS numericScale,\n p.DTD_IDENTIFIER AS dataType,\n COALESCE(NULLIF(PARAMETER_MODE, ''), 'RETURN') AS parameterMode,\n r.ROUTINE_TYPE AS routineType, -- Function or Procedure\n p.ORDINAL_POSITION AS ordinalPosition\nFROM \n information_schema.PARAMETERS p\nJOIN \n information_schema.ROUTINES r\nON \n p.SPECIFIC_NAME = r.SPECIFIC_NAME AND r.ROUTINE_SCHEMA = p.SPECIFIC_SCHEMA\nWHERE \n r.ROUTINE_SCHEMA = '#DATABASE#' AND r.ROUTINE_NAME =OBJECT_ID_CONDITION\nORDER BY\n r.ROUTINE_SCHEMA, r.SPECIFIC_NAME, p.ORDINAL_POSITION\n"},916:e=>{e.exports="select \n\tTABLE_CONSTRAINTS.CONSTRAINT_NAME as constraintName,\n\tTABLE_CONSTRAINTS.TABLE_NAME as pureName,\n\tKEY_COLUMN_USAGE.COLUMN_NAME as columnName\nfrom INFORMATION_SCHEMA.TABLE_CONSTRAINTS\ninner join INFORMATION_SCHEMA.KEY_COLUMN_USAGE \n\ton TABLE_CONSTRAINTS.TABLE_NAME = KEY_COLUMN_USAGE.TABLE_NAME \n\t\tand TABLE_CONSTRAINTS.CONSTRAINT_NAME = KEY_COLUMN_USAGE.CONSTRAINT_NAME\n\t\tand TABLE_CONSTRAINTS.CONSTRAINT_SCHEMA = KEY_COLUMN_USAGE.CONSTRAINT_SCHEMA\nwhere TABLE_CONSTRAINTS.CONSTRAINT_SCHEMA = '#DATABASE#' and TABLE_CONSTRAINTS.TABLE_NAME =OBJECT_ID_CONDITION AND TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'PRIMARY KEY'\norder by KEY_COLUMN_USAGE.ORDINAL_POSITION\n"},746:e=>{e.exports="\nSHOW PROCEDURE STATUS WHERE Db = '#DATABASE#'\n"},990:e=>{e.exports="\nselect \n ROUTINE_NAME as pureName,\n ROUTINE_TYPE as objectType,\n COALESCE(LAST_ALTERED, CREATED) as modifyDate,\n DATA_TYPE AS returnDataType,\n ROUTINE_DEFINITION as routineDefinition,\n IS_DETERMINISTIC as isDeterministic\nfrom information_schema.routines\nwhere ROUTINE_SCHEMA = '#DATABASE#' and ROUTINE_NAME =OBJECT_ID_CONDITION\n"},262:e=>{e.exports="\nSELECT \n EVENT_SCHEMA,\n EVENT_NAME,\n DEFINER,\n EVENT_TYPE,\n EXECUTE_AT,\n INTERVAL_VALUE,\n INTERVAL_FIELD,\n CREATED,\n LAST_EXECUTED,\n LAST_ALTERED,\n STARTS,\n ENDS,\n STATUS,\n ON_COMPLETION,\n CONCAT(\n 'CREATE EVENT `', EVENT_NAME, '` ',\n CASE WHEN EVENT_TYPE = 'RECURRING' THEN\n 'ON SCHEDULE EVERY ' \n ELSE 'ON SCHEDULE AT ' \n END,\n CASE WHEN EVENT_TYPE = 'RECURRING' THEN \n CONCAT(INTERVAL_VALUE, ' ', INTERVAL_FIELD)\n ELSE DATE_FORMAT(EXECUTE_AT, '%Y-%m-%d %H:%i:%s') \n END,\n ' DO ',\n EVENT_DEFINITION\n ) AS CREATE_SQL\nFROM INFORMATION_SCHEMA.EVENTS\nWHERE EVENT_SCHEMA = '#DATABASE#' AND EVENT_NAME =OBJECT_ID_CONDITION\n"},469:e=>{e.exports="\nSELECT \n EVENT_NAME,\n LAST_ALTERED\nFROM INFORMATION_SCHEMA.EVENTS\nWHERE EVENT_SCHEMA = '#DATABASE#'\n"},697:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n\tTABLE_TYPE as objectType,\n\tTABLE_ROWS as tableRowCount,\n\tcase when ENGINE='InnoDB' then CREATE_TIME else coalesce(UPDATE_TIME, CREATE_TIME) end as modifyDate \nfrom information_schema.tables \nwhere TABLE_SCHEMA = '#DATABASE#'\n"},97:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n\tTABLE_ROWS as tableRowCount,\n\tENGINE as tableEngine,\n\tTABLE_COMMENT as objectComment,\n\tcase when ENGINE='InnoDB' then CREATE_TIME else coalesce(UPDATE_TIME, CREATE_TIME) end as modifyDate \nfrom information_schema.tables \nwhere TABLE_SCHEMA = '#DATABASE#' and (TABLE_TYPE='BASE TABLE' or TABLE_TYPE='SYSTEM VERSIONED') and TABLE_NAME =OBJECT_ID_CONDITION;\n"},377:e=>{e.exports="\nSELECT \n TRIGGER_NAME AS triggerName,\n EVENT_MANIPULATION AS eventType,\n ACTION_TIMING AS triggerTiming,\n EVENT_OBJECT_SCHEMA AS schemaName,\n EVENT_OBJECT_TABLE AS tableName,\n ACTION_STATEMENT AS definition,\n CREATED as modifyDate\nFROM \n INFORMATION_SCHEMA.TRIGGERS\n WHERE EVENT_OBJECT_SCHEMA = '#DATABASE#' AND TRIGGER_NAME =OBJECT_ID_CONDITION\n"},996:e=>{e.exports="\nSELECT \n TRIGGER_NAME AS triggerName,\n EVENT_OBJECT_TABLE AS tableName,\n CREATED as modifyDate\nFROM \n INFORMATION_SCHEMA.TRIGGERS\n WHERE EVENT_OBJECT_SCHEMA = '#DATABASE#'\n"},171:e=>{e.exports="\n select CONSTRAINT_NAME as constraintName\n from information_schema.TABLE_CONSTRAINTS\n where CONSTRAINT_SCHEMA = '#DATABASE#' and constraint_type = 'UNIQUE'\n"},913:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n VIEW_DEFINITION as viewDefinition\nfrom information_schema.views \nwhere TABLE_SCHEMA = '#DATABASE#' and TABLE_NAME =OBJECT_ID_CONDITION;\n"},864:e=>{e.exports="\nselect \n\tTABLE_NAME as pureName, \n coalesce(UPDATE_TIME, CREATE_TIME) as modifyDate\nfrom information_schema.tables \nwhere TABLE_SCHEMA = '#DATABASE#' and TABLE_NAME =OBJECT_ID_CONDITION and TABLE_TYPE = 'VIEW';\n"},197:(e,t,a)=>{const{SqlDumper:n,arrayToHexString:s}=global.DBGATE_PACKAGES["dbgate-tools"];a(464),e.exports=class extends n{transform(e,t){switch(e){case"GROUP:YEAR":case"YEAR":this.put("^year(%c)",t);break;case"MONTH":this.put("^month(%c)",t);break;case"DAY":this.put("^day(%c)",t);break;case"GROUP:MONTH":this.put("^date_format(%c, '%s')",t,"%Y-%m");break;case"GROUP:DAY":this.put("^date_format(%c, '%s')",t,"%Y-%m-%d");break;default:t()}}renameTable(e,t){this.putCmd("^rename ^table %f ^to %i",e,t)}changeColumn(e,t,a){e.notNull||this.fillNewNotNullDefaults({...t,columnName:e.columnName}),this.put("^alter ^table %f ^change ^column %i %i ",e,e.columnName,t.columnName),this.columnDefinition(t),this.inlineConstraints(a),this.endCommand()}autoIncrement(){}specialColumnOptions(e){e.isUnsigned&&this.put("^unsigned "),e.isZerofill&&this.put("^zerofill "),e.autoIncrement&&this.put("^auto_increment ")}columnDefinition(e,t){super.columnDefinition(e,t),e.columnComment&&this.put(" ^comment %v ",e.columnComment)}renameColumn(e,t){this.changeColumn(e,{...e,columnName:t},[])}enableConstraints(e,t){this.putCmd("^set FOREIGN_KEY_CHECKS = %s",t?"1":"0")}comment(e){this.put("/* %s */",e)}beginTransaction(){this.putCmd("^start ^transaction")}selectTableIntoNewTable(e,t){this.putCmd("^create ^table %f (^select * ^from %f)",t,e)}putByteArrayValue(e){this.putRaw(`unhex('${s(e)}')`)}selectScopeIdentity(){this.put("^select ^last_insert_id()")}callableTemplate(e){const t=(e.parameters||[]).filter((e=>"RETURN"!=e.parameterMode)),a=(e,t)=>{this.putCollection(t,e||[],(e=>{"IN"==e.parameterMode?this.putRaw("@"+e.parameterName):this.putRaw("@"+e.parameterName+"Output")}))},n=e=>{for(const t of e||[])"IN"==t.parameterMode&&(this.put("SET @%s = :%s",t.parameterName,t.parameterName),this.endCommand());this.put("&n")};"procedures"==e.objectTypeField&&(n(e.parameters),this.put("^call %f(&>&n",e),a(t,",&n"),this.put("&<&n)"),this.endCommand()),"functions"==e.objectTypeField&&(n(t),this.put("^select %f(&>&n",e),a(t,",&n"),this.put("&<&n)"),this.endCommand())}putValue(e,t){const a=t?.toLowerCase();if(a?.includes("date")&&"string"==typeof e)return this.putRaw("'"),this.putRaw(this.escapeString(e.replace(/(?:Z|[+-]\d{2}:?\d{2})$/,""))),void this.putRaw("'");super.putValue(e,t)}}},293:(e,t,a)=>{const{driverBase:n}=global.DBGATE_PACKAGES["dbgate-tools"],{mysqlSplitterOptions:s}=a(994),r=a(197),i=["POINT","LINESTRING","POLYGON","GEOMETRY","MULTIPOINT","MULTILINESTRING","MULTIPOLYGON","GEOMCOLLECTION","GEOMETRYCOLLECTION"],o={rangeSelect:!0,stringEscapeChar:"\\",fallbackDataType:"longtext",enableConstraintsPerTable:!1,anonymousPrimaryKey:!0,explicitDropConstraint:!0,allowMultipleValuesInsert:!0,quoteIdentifier:e=>"`"+e+"`",createColumn:!0,dropColumn:!0,changeColumn:!0,changeAutoIncrement:!0,createIndex:!0,dropIndex:!0,createForeignKey:!0,dropForeignKey:!0,createPrimaryKey:!0,dropPrimaryKey:!0,dropIndexContainsTableSpec:!0,createUnique:!0,dropUnique:!0,createCheck:!0,dropCheck:!0,dropReferencesWhenDropTable:!1,requireStandaloneSelectForScopeIdentity:!0,columnProperties:{columnComment:!0,isUnsigned:!0,isZerofill:!0},predefinedDataTypes:["char(20)","varchar(250)","binary(250)","varbinary(250)","tinyblob","tinytext","text(1000)","blob(1000)","mediumtext","mediumblob","longtext","longblob","enum('val1','val2','val3')","set('val1','val2','val3')","bit(32)","tinyint","bool","smallint","mediumint","int","bigint","float","double","decimal","date","datetime","timestamp","time","year"],createColumnViewExpression(e,t,a,n){if(t&&i.includes(t.toUpperCase()))return{exprType:"call",func:"ST_AsText",alias:n||e,args:[{exprType:"column",columnName:e,source:a}]}},getSupportedEngines:()=>[],getTableFormOptions(e){return[{type:"dropdowntext",options:this.getSupportedEngines(),label:"Engine",name:"tableEngine",sqlFormatString:"^engine = %s"},{type:"text",label:"Comment",name:"objectComment",sqlFormatString:"^comment = %v",allowEmptyValue:!0}]}},E={...o,getSupportedEngines:()=>["InnoDB","MyISAM","MEMORY","CSV","ARCHIVE","BLACKHOLE","FEDERATED","MRG_MYISAM","NDB","EXAMPLE","PERFORMANCE_SCHEMA","SEQUENCE","SPIDER","ROCKSDB","TokuDB"]},l={...n,showConnectionField:(e,t)=>!!["authType","user","defaultDatabase","singleDatabase","isReadOnly"].includes(e)||("awsIam"==t.authType?["awsRegion","secretAccessKey","accessKeyId","server","port"].includes(e):!!["password"].includes(e)||("socket"==t.authType?["socketPath"].includes(e):["server","port"].includes(e))),dumperClass:r,defaultPort:3306,getQuerySplitterOptions:e=>"editor"==e?{...s,ignoreComments:!0,preventSingleLineSplit:!0}:s,readOnlySessions:!0,supportsDatabaseBackup:!0,supportsDatabaseRestore:!0,authTypeLabel:"Connection mode",defaultAuthTypeName:"hostPort",defaultSocketPath:"/var/run/mysqld/mysqld.sock",supportsTransactions:!0,getNewObjectTemplates:()=>[{label:"New view",sql:"CREATE VIEW myview\nAS\nSELECT * FROM table1"},{label:"New procedure",sql:"DELIMITER //\n\nCREATE PROCEDURE myproc (IN arg1 INT)\nBEGIN\n SELECT * FROM table1;\nEND\n\nDELIMITER ;"},{label:"New function",sql:"CREATE FUNCTION myfunc (arg1 INT)\nRETURNS INT DETERMINISTIC\nRETURN 1"},{label:"New trigger",sql:"CREATE TRIGGER myTrigger AFTER INSERT ON myTable FOR EACH ROW BEGIN\n END"},{label:"New event",sql:"CREATE EVENT `event_name`\nON SCHEDULE EVERY 1 HOUR\nDO\nBEGIN\n\nEND"}],getCliConnectionArgs(e,t){const a=[`--user=${e.user}`,`--password=${e.password}`,`--host=${e.server}`];return e.port&&a.push(`--port=${e.port}`),t.mysqlPlugins&&a.push(`--plugin-dir=${t.mysqlPlugins}`),"localhost"==e.server&&a.push("--protocol=tcp"),a},backupDatabaseCommand(e,t,a){const{outputFile:n,database:s,skippedTables:r,options:i}=t,o=a.mysqldump||"mysqldump",E=this.getCliConnectionArgs(e,a);E.push(`--result-file=${n}`),E.push("--verbose");for(const e of r)E.push(`--ignore-table=${s}.${e.pureName}`);if(i.noData&&E.push("--no-data"),i.noStructure&&E.push("--no-create-info"),!1===i.includeEvents||i.noStructure||E.push("--events"),!1===i.includeRoutines||i.noStructure||E.push("--routines"),!1===i.includeTriggers||i.noStructure||E.push("--triggers"),i.force&&E.push("--force"),i.lockTables&&E.push("--lock-tables"),i.skipLockTables&&E.push("--skip-lock-tables"),i.singleTransaction&&E.push("--single-transaction"),i.customArgs?.trim()){const e=i.customArgs.split(/\s+/).filter((e=>""!=e.trim()));E.push(...e)}return i.createDatabase?(E.push("--databases",s),i.dropDatabase&&E.push("--add-drop-database")):E.push(s),{command:o,args:E}},restoreDatabaseCommand(e,t,a){const{inputFile:n,database:s}=t,r=a.mysql||"mysql",i=this.getCliConnectionArgs(e,a);return s&&i.push(s),{command:r,args:i,stdinFilePath:n}},transformNativeCommandMessage:e=>e.message?.startsWith("--")?e.message.startsWith("-- Retrieving table structure for table")?{...e,severity:"info",message:e.message.replace("-- Retrieving table structure for table","Processing table")}:{...e,severity:"debug",message:e.message.replace("-- ","")}:e,getNativeOperationFormArgs:e=>"backup"==e?[{type:"checkbox",label:"No data (dump only structure)",name:"noData",default:!1},{type:"checkbox",label:"No structure (dump only data)",name:"noStructure",default:!1},{type:"checkbox",label:"Force (ignore all errors)",name:"force",default:!1},{type:"checkbox",label:"Backup events",name:"includeEvents",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Backup routines",name:"includeRoutines",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Backup triggers",name:"includeTriggers",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Lock tables",name:"lockTables",default:!1,disabledFn:e=>e.skipLockTables||e.singleTransaction},{type:"checkbox",label:"Skip lock tables",name:"skipLockTables",default:!1,disabledFn:e=>e.lockTables||e.singleTransaction},{type:"checkbox",label:"Single transaction",name:"singleTransaction",default:!1,disabledFn:e=>e.lockTables||e.skipLockTables},{type:"checkbox",label:"Create database",name:"createDatabase",default:!1},{type:"checkbox",label:"Drop database before import",name:"dropDatabase",default:!1,disabledFn:e=>!e.createDatabase},{type:"text",label:"Custom arguments",name:"customArgs"}]:null,adaptDataType:e=>"money"==e?.toLowerCase()?"decimal(15,2)":e},c={...l,supportsServerSummary:!0,dialect:E,engine:"mysql@dbgate-plugin-mysql",title:"MySQL",__analyserInternals:{quoteDefaultValues:!0}},m={...o,getSupportedEngines:()=>["InnoDB","Aria","MyISAM","MEMORY","CSV","ARCHIVE","BLACKHOLE","FEDERATED","MRG_MyISAM","SEQUENCE","SphinxSE","SPIDER","TokuDB","RocksDB","CONNECT","OQGRAPH","ColumnStore","Mroonga","S3","XtraDB"]},N={...l,supportsServerSummary:!0,dialect:m,engine:"mariadb@dbgate-plugin-mysql",title:"MariaDB",__analyserInternals:{quoteDefaultValues:!1}};e.exports=[c,N]},825:e=>{"use strict";e.exports=require("lodash")},12:e=>{"use strict";e.exports=require("mysql2")},203:e=>{"use strict";e.exports=require("stream")}},t={},a=function a(n){var s=t[n];if(void 0!==s)return s.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,a),r.exports}(237);module.exports=a})();
|
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:{"'":"'",'"':'"'}})},464:e=>{var t=Array.isArray;e.exports=t},56:(e,t,s)=>{const{SqlDumper:a,arrayToHexString:n}=window.DBGATE_PACKAGES["dbgate-tools"];s(464),e.exports=class extends a{transform(e,t){switch(e){case"GROUP:YEAR":case"YEAR":this.put("^year(%c)",t);break;case"MONTH":this.put("^month(%c)",t);break;case"DAY":this.put("^day(%c)",t);break;case"GROUP:MONTH":this.put("^date_format(%c, '%s')",t,"%Y-%m");break;case"GROUP:DAY":this.put("^date_format(%c, '%s')",t,"%Y-%m-%d");break;default:t()}}renameTable(e,t){this.putCmd("^rename ^table %f ^to %i",e,t)}changeColumn(e,t,s){e.notNull||this.fillNewNotNullDefaults({...t,columnName:e.columnName}),this.put("^alter ^table %f ^change ^column %i %i ",e,e.columnName,t.columnName),this.columnDefinition(t),this.inlineConstraints(s),this.endCommand()}autoIncrement(){}specialColumnOptions(e){e.isUnsigned&&this.put("^unsigned "),e.isZerofill&&this.put("^zerofill "),e.autoIncrement&&this.put("^auto_increment ")}columnDefinition(e,t){super.columnDefinition(e,t),e.columnComment&&this.put(" ^comment %v ",e.columnComment)}renameColumn(e,t){this.changeColumn(e,{...e,columnName:t},[])}enableConstraints(e,t){this.putCmd("^set FOREIGN_KEY_CHECKS = %s",t?"1":"0")}comment(e){this.put("/* %s */",e)}beginTransaction(){this.putCmd("^start ^transaction")}selectTableIntoNewTable(e,t){this.putCmd("^create ^table %f (^select * ^from %f)",t,e)}putByteArrayValue(e){this.putRaw(`unhex('${n(e)}')`)}selectScopeIdentity(){this.put("^select ^last_insert_id()")}callableTemplate(e){const t=(e.parameters||[]).filter((e=>"RETURN"!=e.parameterMode)),s=(e,t)=>{this.putCollection(t,e||[],(e=>{"IN"==e.parameterMode?this.putRaw("@"+e.parameterName):this.putRaw("@"+e.parameterName+"Output")}))},a=e=>{for(const t of e||[])"IN"==t.parameterMode&&(this.put("SET @%s = :%s",t.parameterName,t.parameterName),this.endCommand());this.put("&n")};"procedures"==e.objectTypeField&&(a(e.parameters),this.put("^call %f(&>&n",e),s(t,",&n"),this.put("&<&n)"),this.endCommand()),"functions"==e.objectTypeField&&(a(t),this.put("^select %f(&>&n",e),s(t,",&n"),this.put("&<&n)"),this.endCommand())}putValue(e,t){const s=t?.toLowerCase();if(s?.includes("date")&&"string"==typeof e)return this.putRaw("'"),this.putRaw(this.escapeString(e.replace(/(?:Z|[+-]\d{2}:?\d{2})$/,""))),void this.putRaw("'");super.putValue(e,t)}}},378:(e,t,s)=>{const{driverBase:a}=window.DBGATE_PACKAGES["dbgate-tools"],{mysqlSplitterOptions:n}=s(994),r=s(56),i=["POINT","LINESTRING","POLYGON","GEOMETRY","MULTIPOINT","MULTILINESTRING","MULTIPOLYGON","GEOMCOLLECTION","GEOMETRYCOLLECTION"],l={rangeSelect:!0,stringEscapeChar:"\\",fallbackDataType:"longtext",enableConstraintsPerTable:!1,anonymousPrimaryKey:!0,explicitDropConstraint:!0,allowMultipleValuesInsert:!0,quoteIdentifier:e=>"`"+e+"`",createColumn:!0,dropColumn:!0,changeColumn:!0,changeAutoIncrement:!0,createIndex:!0,dropIndex:!0,createForeignKey:!0,dropForeignKey:!0,createPrimaryKey:!0,dropPrimaryKey:!0,dropIndexContainsTableSpec:!0,createUnique:!0,dropUnique:!0,createCheck:!0,dropCheck:!0,dropReferencesWhenDropTable:!1,requireStandaloneSelectForScopeIdentity:!0,columnProperties:{columnComment:!0,isUnsigned:!0,isZerofill:!0},predefinedDataTypes:["char(20)","varchar(250)","binary(250)","varbinary(250)","tinyblob","tinytext","text(1000)","blob(1000)","mediumtext","mediumblob","longtext","longblob","enum('val1','val2','val3')","set('val1','val2','val3')","bit(32)","tinyint","bool","smallint","mediumint","int","bigint","float","double","decimal","date","datetime","timestamp","time","year"],createColumnViewExpression(e,t,s,a){if(t&&i.includes(t.toUpperCase()))return{exprType:"call",func:"ST_AsText",alias:a||e,args:[{exprType:"column",columnName:e,source:s}]}},getSupportedEngines:()=>[],getTableFormOptions(e){return[{type:"dropdowntext",options:this.getSupportedEngines(),label:"Engine",name:"tableEngine",sqlFormatString:"^engine = %s"},{type:"text",label:"Comment",name:"objectComment",sqlFormatString:"^comment = %v",allowEmptyValue:!0}]}},o={...l,getSupportedEngines:()=>["InnoDB","MyISAM","MEMORY","CSV","ARCHIVE","BLACKHOLE","FEDERATED","MRG_MYISAM","NDB","EXAMPLE","PERFORMANCE_SCHEMA","SEQUENCE","SPIDER","ROCKSDB","TokuDB"]},p={...a,showConnectionField:(e,t)=>!!["authType","user","defaultDatabase","singleDatabase","isReadOnly"].includes(e)||("awsIam"==t.authType?["awsRegion","secretAccessKey","accessKeyId","server","port"].includes(e):!!["password"].includes(e)||("socket"==t.authType?["socketPath"].includes(e):["server","port"].includes(e))),dumperClass:r,defaultPort:3306,getQuerySplitterOptions:e=>"editor"==e?{...n,ignoreComments:!0,preventSingleLineSplit:!0}:n,readOnlySessions:!0,supportsDatabaseBackup:!0,supportsDatabaseRestore:!0,authTypeLabel:"Connection mode",defaultAuthTypeName:"hostPort",defaultSocketPath:"/var/run/mysqld/mysqld.sock",supportsTransactions:!0,getNewObjectTemplates:()=>[{label:"New view",sql:"CREATE VIEW myview\nAS\nSELECT * FROM table1"},{label:"New procedure",sql:"DELIMITER //\n\nCREATE PROCEDURE myproc (IN arg1 INT)\nBEGIN\n SELECT * FROM table1;\nEND\n\nDELIMITER ;"},{label:"New function",sql:"CREATE FUNCTION myfunc (arg1 INT)\nRETURNS INT DETERMINISTIC\nRETURN 1"},{label:"New trigger",sql:"CREATE TRIGGER myTrigger AFTER INSERT ON myTable FOR EACH ROW BEGIN\n END"},{label:"New event",sql:"CREATE EVENT `event_name`\nON SCHEDULE EVERY 1 HOUR\nDO\nBEGIN\n\nEND"}],getCliConnectionArgs(e,t){const s=[`--user=${e.user}`,`--password=${e.password}`,`--host=${e.server}`];return e.port&&s.push(`--port=${e.port}`),t.mysqlPlugins&&s.push(`--plugin-dir=${t.mysqlPlugins}`),"localhost"==e.server&&s.push("--protocol=tcp"),s},backupDatabaseCommand(e,t,s){const{outputFile:a,database:n,skippedTables:r,options:i}=t,l=s.mysqldump||"mysqldump",o=this.getCliConnectionArgs(e,s);o.push(`--result-file=${a}`),o.push("--verbose");for(const e of r)o.push(`--ignore-table=${n}.${e.pureName}`);if(i.noData&&o.push("--no-data"),i.noStructure&&o.push("--no-create-info"),!1===i.includeEvents||i.noStructure||o.push("--events"),!1===i.includeRoutines||i.noStructure||o.push("--routines"),!1===i.includeTriggers||i.noStructure||o.push("--triggers"),i.force&&o.push("--force"),i.lockTables&&o.push("--lock-tables"),i.skipLockTables&&o.push("--skip-lock-tables"),i.singleTransaction&&o.push("--single-transaction"),i.customArgs?.trim()){const e=i.customArgs.split(/\s+/).filter((e=>""!=e.trim()));o.push(...e)}return i.createDatabase?(o.push("--databases",n),i.dropDatabase&&o.push("--add-drop-database")):o.push(n),{command:l,args:o}},restoreDatabaseCommand(e,t,s){const{inputFile:a,database:n}=t,r=s.mysql||"mysql",i=this.getCliConnectionArgs(e,s);return n&&i.push(n),{command:r,args:i,stdinFilePath:a}},transformNativeCommandMessage:e=>e.message?.startsWith("--")?e.message.startsWith("-- Retrieving table structure for table")?{...e,severity:"info",message:e.message.replace("-- Retrieving table structure for table","Processing table")}:{...e,severity:"debug",message:e.message.replace("-- ","")}:e,getNativeOperationFormArgs:e=>"backup"==e?[{type:"checkbox",label:"No data (dump only structure)",name:"noData",default:!1},{type:"checkbox",label:"No structure (dump only data)",name:"noStructure",default:!1},{type:"checkbox",label:"Force (ignore all errors)",name:"force",default:!1},{type:"checkbox",label:"Backup events",name:"includeEvents",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Backup routines",name:"includeRoutines",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Backup triggers",name:"includeTriggers",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Lock tables",name:"lockTables",default:!1,disabledFn:e=>e.skipLockTables||e.singleTransaction},{type:"checkbox",label:"Skip lock tables",name:"skipLockTables",default:!1,disabledFn:e=>e.lockTables||e.singleTransaction},{type:"checkbox",label:"Single transaction",name:"singleTransaction",default:!1,disabledFn:e=>e.lockTables||e.skipLockTables},{type:"checkbox",label:"Create database",name:"createDatabase",default:!1},{type:"checkbox",label:"Drop database before import",name:"dropDatabase",default:!1,disabledFn:e=>!e.createDatabase},{type:"text",label:"Custom arguments",name:"customArgs"}]:null,adaptDataType:e=>"money"==e?.toLowerCase()?"decimal(15,2)":e},u={...p,supportsServerSummary:!0,dialect:o,engine:"mysql@dbgate-plugin-mysql",title:"MySQL",__analyserInternals:{quoteDefaultValues:!0}},c={...l,getSupportedEngines:()=>["InnoDB","Aria","MyISAM","MEMORY","CSV","ARCHIVE","BLACKHOLE","FEDERATED","MRG_MyISAM","SEQUENCE","SphinxSE","SPIDER","TokuDB","RocksDB","CONNECT","OQGRAPH","ColumnStore","Mroonga","S3","XtraDB"]},m={...p,supportsServerSummary:!0,dialect:c,engine:"mariadb@dbgate-plugin-mysql",title:"MariaDB",__analyserInternals:{quoteDefaultValues:!1}};e.exports=[u,m]}},t={};function s(a){var n=t[a];if(void 0!==n)return n.exports;var r=t[a]={exports:{}};return e[a](r,r.exports,s),r.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 a in t)s.o(t,a)&&!s.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},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 a={};(()=>{"use strict";s.r(a),s.d(a,{default:()=>t});var e=s(378);const t={packageName:"dbgate-plugin-mysql",drivers:s.n(e)()}})(),plugin=a})();
|
|
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:":"})},464:e=>{var t=Array.isArray;e.exports=t},56:(e,t,s)=>{const{SqlDumper:a,arrayToHexString:n}=window.DBGATE_PACKAGES["dbgate-tools"];s(464),e.exports=class extends a{transform(e,t){switch(e){case"GROUP:YEAR":case"YEAR":this.put("^year(%c)",t);break;case"MONTH":this.put("^month(%c)",t);break;case"DAY":this.put("^day(%c)",t);break;case"GROUP:MONTH":this.put("^date_format(%c, '%s')",t,"%Y-%m");break;case"GROUP:DAY":this.put("^date_format(%c, '%s')",t,"%Y-%m-%d");break;default:t()}}renameTable(e,t){this.putCmd("^rename ^table %f ^to %i",e,t)}changeColumn(e,t,s){e.notNull||this.fillNewNotNullDefaults({...t,columnName:e.columnName}),this.put("^alter ^table %f ^change ^column %i %i ",e,e.columnName,t.columnName),this.columnDefinition(t),this.inlineConstraints(s),this.endCommand()}autoIncrement(){}specialColumnOptions(e){e.isUnsigned&&this.put("^unsigned "),e.isZerofill&&this.put("^zerofill "),e.autoIncrement&&this.put("^auto_increment ")}columnDefinition(e,t){super.columnDefinition(e,t),e.columnComment&&this.put(" ^comment %v ",e.columnComment)}renameColumn(e,t){this.changeColumn(e,{...e,columnName:t},[])}enableConstraints(e,t){this.putCmd("^set FOREIGN_KEY_CHECKS = %s",t?"1":"0")}comment(e){this.put("/* %s */",e)}beginTransaction(){this.putCmd("^start ^transaction")}selectTableIntoNewTable(e,t){this.putCmd("^create ^table %f (^select * ^from %f)",t,e)}putByteArrayValue(e){this.putRaw(`unhex('${n(e)}')`)}selectScopeIdentity(){this.put("^select ^last_insert_id()")}callableTemplate(e){const t=(e.parameters||[]).filter((e=>"RETURN"!=e.parameterMode)),s=(e,t)=>{this.putCollection(t,e||[],(e=>{"IN"==e.parameterMode?this.putRaw("@"+e.parameterName):this.putRaw("@"+e.parameterName+"Output")}))},a=e=>{for(const t of e||[])"IN"==t.parameterMode&&(this.put("SET @%s = :%s",t.parameterName,t.parameterName),this.endCommand());this.put("&n")};"procedures"==e.objectTypeField&&(a(e.parameters),this.put("^call %f(&>&n",e),s(t,",&n"),this.put("&<&n)"),this.endCommand()),"functions"==e.objectTypeField&&(a(t),this.put("^select %f(&>&n",e),s(t,",&n"),this.put("&<&n)"),this.endCommand())}putValue(e,t){const s=t?.toLowerCase();if(s?.includes("date")&&"string"==typeof e)return this.putRaw("'"),this.putRaw(this.escapeString(e.replace(/(?:Z|[+-]\d{2}:?\d{2})$/,""))),void this.putRaw("'");super.putValue(e,t)}}},378:(e,t,s)=>{const{driverBase:a}=window.DBGATE_PACKAGES["dbgate-tools"],{mysqlSplitterOptions:n}=s(994),i=s(56),r=["POINT","LINESTRING","POLYGON","GEOMETRY","MULTIPOINT","MULTILINESTRING","MULTIPOLYGON","GEOMCOLLECTION","GEOMETRYCOLLECTION"],l={rangeSelect:!0,stringEscapeChar:"\\",fallbackDataType:"longtext",enableConstraintsPerTable:!1,anonymousPrimaryKey:!0,explicitDropConstraint:!0,allowMultipleValuesInsert:!0,quoteIdentifier:e=>"`"+e+"`",createColumn:!0,dropColumn:!0,changeColumn:!0,changeAutoIncrement:!0,createIndex:!0,dropIndex:!0,createForeignKey:!0,dropForeignKey:!0,createPrimaryKey:!0,dropPrimaryKey:!0,dropIndexContainsTableSpec:!0,createUnique:!0,dropUnique:!0,createCheck:!0,dropCheck:!0,dropReferencesWhenDropTable:!1,requireStandaloneSelectForScopeIdentity:!0,columnProperties:{columnComment:!0,isUnsigned:!0,isZerofill:!0},predefinedDataTypes:["char(20)","varchar(250)","binary(250)","varbinary(250)","tinyblob","tinytext","text(1000)","blob(1000)","mediumtext","mediumblob","longtext","longblob","enum('val1','val2','val3')","set('val1','val2','val3')","bit(32)","tinyint","bool","smallint","mediumint","int","bigint","float","double","decimal","date","datetime","timestamp","time","year"],createColumnViewExpression(e,t,s,a){if(t&&r.includes(t.toUpperCase()))return{exprType:"call",func:"ST_AsText",alias:a||e,args:[{exprType:"column",columnName:e,source:s}]}},getSupportedEngines:()=>[],getTableFormOptions(e){return[{type:"dropdowntext",options:this.getSupportedEngines(),label:"Engine",name:"tableEngine",sqlFormatString:"^engine = %s"},{type:"text",label:"Comment",name:"objectComment",sqlFormatString:"^comment = %v",allowEmptyValue:!0}]}},o={...l,getSupportedEngines:()=>["InnoDB","MyISAM","MEMORY","CSV","ARCHIVE","BLACKHOLE","FEDERATED","MRG_MYISAM","NDB","EXAMPLE","PERFORMANCE_SCHEMA","SEQUENCE","SPIDER","ROCKSDB","TokuDB"]},p={...a,showConnectionField:(e,t)=>!!["authType","user","defaultDatabase","singleDatabase","isReadOnly"].includes(e)||("awsIam"==t.authType?["awsRegion","secretAccessKey","accessKeyId","server","port"].includes(e):!!["password"].includes(e)||("socket"==t.authType?["socketPath"].includes(e):["server","port"].includes(e))),dumperClass:i,defaultPort:3306,getQuerySplitterOptions:e=>"editor"==e?{...n,ignoreComments:!0,preventSingleLineSplit:!0}:n,readOnlySessions:!0,supportsDatabaseBackup:!0,supportsDatabaseRestore:!0,authTypeLabel:"Connection mode",defaultAuthTypeName:"hostPort",defaultSocketPath:"/var/run/mysqld/mysqld.sock",supportsTransactions:!0,getNewObjectTemplates:()=>[{label:"New view",sql:"CREATE VIEW myview\nAS\nSELECT * FROM table1"},{label:"New procedure",sql:"DELIMITER //\n\nCREATE PROCEDURE myproc (IN arg1 INT)\nBEGIN\n SELECT * FROM table1;\nEND\n\nDELIMITER ;"},{label:"New function",sql:"CREATE FUNCTION myfunc (arg1 INT)\nRETURNS INT DETERMINISTIC\nRETURN 1"},{label:"New trigger",sql:"CREATE TRIGGER myTrigger AFTER INSERT ON myTable FOR EACH ROW BEGIN\n END"},{label:"New event",sql:"CREATE EVENT `event_name`\nON SCHEDULE EVERY 1 HOUR\nDO\nBEGIN\n\nEND"}],getCliConnectionArgs(e,t){const s=[`--user=${e.user}`,`--password=${e.password}`,`--host=${e.server}`];return e.port&&s.push(`--port=${e.port}`),t.mysqlPlugins&&s.push(`--plugin-dir=${t.mysqlPlugins}`),"localhost"==e.server&&s.push("--protocol=tcp"),s},backupDatabaseCommand(e,t,s){const{outputFile:a,database:n,skippedTables:i,options:r}=t,l=s.mysqldump||"mysqldump",o=this.getCliConnectionArgs(e,s);o.push(`--result-file=${a}`),o.push("--verbose");for(const e of i)o.push(`--ignore-table=${n}.${e.pureName}`);if(r.noData&&o.push("--no-data"),r.noStructure&&o.push("--no-create-info"),!1===r.includeEvents||r.noStructure||o.push("--events"),!1===r.includeRoutines||r.noStructure||o.push("--routines"),!1===r.includeTriggers||r.noStructure||o.push("--triggers"),r.force&&o.push("--force"),r.lockTables&&o.push("--lock-tables"),r.skipLockTables&&o.push("--skip-lock-tables"),r.singleTransaction&&o.push("--single-transaction"),r.customArgs?.trim()){const e=r.customArgs.split(/\s+/).filter((e=>""!=e.trim()));o.push(...e)}return r.createDatabase?(o.push("--databases",n),r.dropDatabase&&o.push("--add-drop-database")):o.push(n),{command:l,args:o}},restoreDatabaseCommand(e,t,s){const{inputFile:a,database:n}=t,i=s.mysql||"mysql",r=this.getCliConnectionArgs(e,s);return n&&r.push(n),{command:i,args:r,stdinFilePath:a}},transformNativeCommandMessage:e=>e.message?.startsWith("--")?e.message.startsWith("-- Retrieving table structure for table")?{...e,severity:"info",message:e.message.replace("-- Retrieving table structure for table","Processing table")}:{...e,severity:"debug",message:e.message.replace("-- ","")}:e,getNativeOperationFormArgs:e=>"backup"==e?[{type:"checkbox",label:"No data (dump only structure)",name:"noData",default:!1},{type:"checkbox",label:"No structure (dump only data)",name:"noStructure",default:!1},{type:"checkbox",label:"Force (ignore all errors)",name:"force",default:!1},{type:"checkbox",label:"Backup events",name:"includeEvents",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Backup routines",name:"includeRoutines",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Backup triggers",name:"includeTriggers",default:!0,disabledFn:e=>e.noStructure},{type:"checkbox",label:"Lock tables",name:"lockTables",default:!1,disabledFn:e=>e.skipLockTables||e.singleTransaction},{type:"checkbox",label:"Skip lock tables",name:"skipLockTables",default:!1,disabledFn:e=>e.lockTables||e.singleTransaction},{type:"checkbox",label:"Single transaction",name:"singleTransaction",default:!1,disabledFn:e=>e.lockTables||e.skipLockTables},{type:"checkbox",label:"Create database",name:"createDatabase",default:!1},{type:"checkbox",label:"Drop database before import",name:"dropDatabase",default:!1,disabledFn:e=>!e.createDatabase},{type:"text",label:"Custom arguments",name:"customArgs"}]:null,adaptDataType:e=>"money"==e?.toLowerCase()?"decimal(15,2)":e},u={...p,supportsServerSummary:!0,dialect:o,engine:"mysql@dbgate-plugin-mysql",title:"MySQL",__analyserInternals:{quoteDefaultValues:!0}},c={...l,getSupportedEngines:()=>["InnoDB","Aria","MyISAM","MEMORY","CSV","ARCHIVE","BLACKHOLE","FEDERATED","MRG_MyISAM","SEQUENCE","SphinxSE","SPIDER","TokuDB","RocksDB","CONNECT","OQGRAPH","ColumnStore","Mroonga","S3","XtraDB"]},m={...p,supportsServerSummary:!0,dialect:c,engine:"mariadb@dbgate-plugin-mysql",title:"MariaDB",__analyserInternals:{quoteDefaultValues:!1}};e.exports=[u,m]}},t={};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}s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var a in t)s.o(t,a)&&!s.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},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 a={};(()=>{"use strict";s.r(a),s.d(a,{default:()=>t});var e=s(378);const t={packageName:"dbgate-plugin-mysql",drivers:s.n(e)()}})(),plugin=a})();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dbgate-plugin-mysql",
|
|
3
3
|
"main": "dist/backend.js",
|
|
4
|
-
"version": "6.6.
|
|
4
|
+
"version": "6.6.4",
|
|
5
5
|
"homepage": "https://dbgate.org",
|
|
6
6
|
"description": "MySQL connect plugin for DbGate",
|
|
7
7
|
"repository": {
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"webpack-cli": "^5.1.4"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"dbgate-query-splitter": "^4.11.
|
|
40
|
-
"dbgate-tools": "^6.6.
|
|
39
|
+
"dbgate-query-splitter": "^4.11.7",
|
|
40
|
+
"dbgate-tools": "^6.6.4",
|
|
41
41
|
"lodash": "^4.17.21",
|
|
42
42
|
"mysql2": "^3.11.3"
|
|
43
43
|
}
|