dbgate-plugin-postgres 6.8.2 → 7.0.0-alpha.12

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,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.firebirdSplitterOptions=a.oracleSplitterOptions=a.redisSplitterOptions=a.noSplitSplitterOptions=a.mongoSplitterOptions=a.sqliteSplitterOptions=a.postgreSplitterOptions=a.mssqlSplitterOptions=a.mysqlSplitterOptions=a.defaultSplitterOptions=void 0,a.defaultSplitterOptions={stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'},allowSemicolon:!0,allowCustomDelimiter:!1,allowCustomSqlTerminator:!1,allowGoDelimiter:!1,allowSlashDelimiter:!1,allowDollarDollarString:!1,noSplit:!1,skipSeparatorBeginEnd:!1,keepSemicolonInCommands:!1,doubleDashComments:!0,multilineComments:!0,javaScriptComments:!1,returnRichInfo:!1,splitByLines:!1,splitByEmptyLine:!1,preventSingleLineSplit:!1,adaptiveGoSplit:!1,ignoreComments:!1,copyFromStdin:!1,queryParameterStyle:null},a.mysqlSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{allowCustomDelimiter:!0,stringsBegins:["'","`",'"'],stringsEnds:{"'":"'","`":"`",'"':'"'},stringEscapes:{"'":"\\","`":"`",'"':"\\"}}),a.mssqlSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{allowSemicolon:!1,allowGoDelimiter:!0,keepSemicolonInCommands:!0,stringsBegins:["'","["],stringsEnds:{"'":"'","[":"]"},stringEscapes:{"'":"'"}}),a.postgreSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{allowDollarDollarString:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),a.sqliteSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),a.mongoSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"\\",'"':"\\"}}),a.noSplitSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{noSplit:!0}),a.redisSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{splitByLines:!0}),a.oracleSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{allowCustomSqlTerminator:!0,allowSlashDelimiter:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),a.firebirdSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,queryParameterStyle:":"})},688:(e,a,n)=>{const t=n(825),s=n(926),{DatabaseAnalyser:r,isTypeString:i,isTypeNumeric:o,isCompositeDbName:m,splitCompositeDbName:l}=global.DBGATE_PACKAGES["dbgate-tools"];function c(e){return"character varying"==e?"varchar":"timestamp without time zone"==e?"timestamp":e}function p({is_nullable:e,column_name:a,data_type:n,char_max_length:t,numeric_precision:s,numeric_ccale:r,default_value:m},l=void 0,p=void 0,u=void 0){const d=c(n);let _=d;t&&i(d)&&(_=`${d}(${t})`),s&&r&&o(d)&&(_=`${d}(${s},${r})`);const g=!(!m||!m.startsWith("nextval("));return l&&p&&p.rows.find((e=>e.schema_name==l.schemaName&&e.pure_name==l.pureName&&e.column_name==a))&&(_="geometry"),l&&u&&u.rows.find((e=>e.schema_name==l.schemaName&&e.pure_name==l.pureName&&e.column_name==a))&&(_="geography"),{columnName:a,dataType:_,notNull:!e||"NO"==e||"no"==e,defaultValue:g?void 0:m,autoIncrement:g}}function u(e=[]){return e?.length?e.map((e=>{const a=e.parameterMode?`${e.parameterMode} `:"",n=e.dataType?` ${e.dataType.toUpperCase()}`:"";return`${a}${e.parameterName??""}${n}`})).join(", "):""}e.exports=class extends r{constructor(e,a,n){super(e,a,n)}createQuery(e,a,n={}){return super.createQuery(s[e],a,{...n,$typeAggFunc:this.driver.dialect.stringAgg?"string_agg":"max",$typeAggParam:this.driver.dialect.stringAgg?", '|'":"",$md5Function:this.dialect?.isFipsComplianceOn?"LENGTH":"MD5"})}async _computeSingleObjectId(){const{typeField:e,schemaName:a,pureName:n}=this.singleObjectFilter;this.singleObjectId=`${e}:${a||"public"}.${n}`}async _runAnalysis(){this.feedback({analysingMessage:"DBGM-00241 Loading tables"});const e=await this.analyserQuery("tableList",["tables"]);this.feedback({analysingMessage:"DBGM-00242 Loading columns"});const a=await this.analyserQuery("columns",["tables","views"]);this.feedback({analysingMessage:"DBGM-00243 Loading primary keys"});const n=await this.analyserQuery("primaryKeys",["tables"]);let s=null;this.feedback({analysingMessage:"DBGM-00244 Loading foreign key constraints"}),this.feedback({analysingMessage:"DBGM-00245 Loading foreign key refs"});const i=await this.analyserQuery("foreignKeys",["tables"]);this.feedback({analysingMessage:"DBGM-00246 Loading foreign key columns"});const o=await this.analyserQuery("fk_keyColumnUsage",["tables"]),m=[];for(const e of i.rows){const a=t.sortBy(o.rows.filter((a=>a.table_name==e.table_name&&a.constraint_name==e.constraint_name&&a.table_schema==e.table_schema)),"ordinal_position"),n=t.sortBy(o.rows.filter((a=>a.table_name==e.ref_table_name&&a.constraint_name==e.unique_constraint_name&&a.table_schema==e.ref_table_schema)),"ordinal_position");if(a.length==n.length)for(let t=0;t<a.length;t++){const s=a[t],r=n[t];m.push({...e,pure_name:e.table_name,schema_name:e.table_schema,ref_table_name:e.ref_table_name,ref_schema_name:e.ref_table_schema,column_name:s.column_name,ref_column_name:r.column_name})}}s={rows:m},this.feedback({analysingMessage:"DBGM-00247 Loading views"});const l=await this.analyserQuery("views",["views"]);this.feedback({analysingMessage:"DBGM-00248 Loading materialized views"});const d=this.driver.dialect.materializedViews?await this.analyserQuery("matviews",["matviews"]):null;this.feedback({analysingMessage:"DBGM-00249 Loading materialized view columns"});const _=this.driver.dialect.materializedViews?await this.analyserQuery("matviewColumns",["matviews"]):null;this.feedback({analysingMessage:"DBGM-00250 Loading routines"});const g=await this.analyserQuery("routines",["procedures","functions"]);this.feedback({analysingMessage:"DBGM-00251 Loading routine parameters"});const h=await this.analyserQuery("proceduresParameters");this.feedback({analysingMessage:"DBGM-00252 Loading indexes"});const b=this.driver.__analyserInternals.skipIndexes?{rows:[]}:await this.analyserQuery("indexes",["tables"]);this.feedback({analysingMessage:"DBGM-00253 Loading index columns"});const y=this.driver.__analyserInternals.skipIndexes?{rows:[]}:await this.analyserQuery("indexcols",["tables"]);this.feedback({analysingMessage:"DBGM-00254 Loading unique names"});const N=await this.analyserQuery("uniqueNames",["tables"]);let f={rows:[]};l.rows.find((e=>"geometry_columns"==e.pure_name&&"public"==e.schema_name))&&(this.feedback({analysingMessage:"DBGM-00255 Loading geometry columns"}),f=await this.analyserQuery("geometryColumns",["tables"]));let E={rows:[]};l.rows.find((e=>"geography_columns"==e.pure_name&&"public"==e.schema_name))&&(this.feedback({analysingMessage:"DBGM-00256 Loading geography columns"}),E=await this.analyserQuery("geographyColumns",["tables"])),this.feedback({analysingMessage:"DBGM-00257 Loading triggers"});const O=await this.analyserQuery("triggers");this.feedback({analysingMessage:"DBGM-00258 Finalizing DB structure"});const S=s.rows.map((e=>({pureName:e.pure_name,schemaName:e.schema_name,constraintSchema:e.constraint_schema,constraintName:e.constraint_name,columnName:e.column_name,refColumnName:e.ref_column_name,updateAction:e.update_action,deleteAction:e.delete_action,refTableName:e.ref_table_name,refSchemaName:e.ref_schema_name}))),C=n.rows.map((e=>({pureName:e.pure_name,schemaName:e.schema_name,constraintSchema:e.constraint_schema,constraintName:e.constraint_name,columnName:e.column_name}))),T=h.rows.filter((e=>"PROCEDURE"==e.routine_type)).map((e=>({pureName:e.pure_name,parameterName:e.parameter_name,dataType:c(e.data_type),parameterMode:e.parameter_mode,schemaName:e.schema_name}))).reduce(((e,a)=>(e[`${a.schemaName}.${a.pureName}`]||(e[`${a.schemaName}.${a.pureName}`]=[]),e[`${a.schemaName}.${a.pureName}`].push(a),e)),{}),w=h.rows.filter((e=>"FUNCTION"==e.routine_type)).map((e=>({pureName:e.pure_name,parameterName:e.parameter_name,dataType:c(e.data_type),parameterMode:e.parameter_mode,schemaName:e.schema_name}))).reduce(((e,a)=>(e[`${a.schemaName}.${a.pureName}`]||(e[`${a.schemaName}.${a.pureName}`]=[]),e[`${a.schemaName}.${a.pureName}`].push(a),e)),{}),I={tables:e.rows.map((e=>{const n={pureName:e.pure_name,schemaName:e.schema_name,sizeBytes:e.size_bytes,objectId:`tables:${e.schema_name}.${e.pure_name}`,contentHash:e.hash_code_columns?`${e.hash_code_columns}-${e.hash_code_constraints}`:null};return{...n,columns:a.rows.filter((a=>a.pure_name==e.pure_name&&a.schema_name==e.schema_name)).map((e=>p(e,n,f,E))),primaryKey:r.extractPrimaryKeys(n,C),foreignKeys:r.extractForeignKeys(n,S),indexes:b.rows.filter((a=>a.table_name==e.pure_name&&a.schema_name==e.schema_name&&!N.rows.find((e=>e.constraint_name==a.index_name)))).map((e=>{const a=e.indoption.split(" ");return{constraintName:e.index_name,isUnique:e.is_unique,columns:t.compact(e.indkey.split(" ").map((a=>y.rows.find((n=>n.oid==e.oid&&n.attnum==a)))).filter((e=>null!=e)).map(((e,n)=>({columnName:e.column_name,isDescending:parseInt(a[n])>0}))))}})),uniques:b.rows.filter((a=>a.table_name==e.pure_name&&a.schema_name==e.schema_name&&N.rows.find((e=>e.constraint_name==a.index_name)))).map((e=>({constraintName:e.index_name,columns:t.compact(e.indkey.split(" ").map((a=>y.rows.find((n=>n.oid==e.oid&&n.attnum==a)))).filter((e=>null!=e)).map((e=>({columnName:e.column_name}))))})))}})),views:l.rows.map((e=>({objectId:`views:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code,createSql:`CREATE VIEW "${e.schema_name}"."${e.pure_name}"\nAS\n${e.create_sql}`,columns:a.rows.filter((a=>a.pure_name==e.pure_name&&a.schema_name==e.schema_name)).map((e=>p(e)))}))),matviews:d?d.rows.map((e=>({objectId:`matviews:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code,createSql:`CREATE MATERIALIZED VIEW "${e.schema_name}"."${e.pure_name}"\nAS\n${e.definition}`,columns:_.rows.filter((a=>a.pure_name==e.pure_name&&a.schema_name==e.schema_name)).map((e=>p(e)))}))):void 0,procedures:g.rows.filter((e=>"PROCEDURE"==e.object_type)).map((e=>({objectId:`procedures:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,createSql:`CREATE PROCEDURE "${e.schema_name}"."${e.pure_name}"(${u(T[`${e.schema_name}.${e.pure_name}`])}) LANGUAGE ${e.language}\nAS\n$$\n${e.definition}\n$$`,contentHash:e.hash_code,parameters:T[`${e.schema_name}.${e.pure_name}`]}))),functions:g.rows.filter((e=>"FUNCTION"==e.object_type)).map((e=>({objectId:`functions:${e.schema_name}.${e.pure_name}`,createSql:`CREATE FUNCTION "${e.schema_name}"."${e.pure_name}"(${u(w[`${e.schema_name}.${e.pure_name}`])}) RETURNS ${e.data_type.toUpperCase()} LANGUAGE ${e.language}\nAS\n$$\n${e.definition}\n$$`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code,parameters:w[`${e.schema_name}.${e.pure_name}`],returnType:e.data_type}))),triggers:O.rows.map((e=>({pureName:e.trigger_name,trigerName:e.trigger_name,functionName:e.function_name,triggerTiming:e.trigger_timing,triggerLevel:e.trigger_level,eventType:e.event_type,schemaName:e.schema_name,tableName:e.table_name,createSql:e.definition,contentHash:`triggers:${e.trigger_id}`,objectId:`triggers:${e.trigger_id}`})))};return this.feedback({analysingMessage:null}),this.logger.debug({...this.getLogDbInfo(),tables:I.tables?.length,columns:t.sum(I.tables?.map((e=>e.columns?.length))),primaryKeys:I.tables?.filter((e=>e.primaryKey))?.length,foreignKeys:t.sum(I.tables?.map((e=>e.foreignKeys?.length))),indexes:t.sum(I.tables?.map((e=>e.indexes?.length))),uniques:t.sum(I.tables?.map((e=>e.uniques?.length))),views:I.views?.length,matviews:I.matviews?.length,procedures:I.procedures?.length,functions:I.functions?.length},"DBGM-00141 Database structured finalized"),I}async _getFastSnapshot(){const e=await this.analyserQuery("viewModifications"),a=this.driver.dialect.materializedViews?await this.analyserQuery("matviewModifications"):null,n=await this.analyserQuery("routineModifications");return{tables:null,views:e.rows.map((e=>({objectId:`views:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code}))),matviews:a?a.rows.map((e=>({objectId:`matviews:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code}))):void 0,procedures:n.rows.filter((e=>"PROCEDURE"==e.object_type)).map((e=>({objectId:`procedures:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code}))),functions:n.rows.filter((e=>"FUNCTION"==e.object_type)).map((e=>({objectId:`functions:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code})))}}getDefaultSchemaNameCondition(){return"not in ('pg_catalog', 'pg_toast', 'information_schema')"}}},378:(e,a,n)=>{const t=n(825),s=n(203),r=n(293),i=n(688),o=n(158),m=n(449),l=n(269),c=n(926),{getLogger:p,createBulkInsertStreamBase:u,makeUniqueColumnNames:d,extractDbNameFromComposite:_,extractErrorLogData:g,getConflictingColumnNames:h}=global.DBGATE_PACKAGES["dbgate-tools"];let b;const y=p("postreDriver");function N(e){try{const a=Buffer.from(e,"hex");return o.Geometry.parse(a).toWkt()}catch(a){return e}}function f(e,a){if(!a?.length)return e;for(const n of a){const{columnName:a,dataTypeName:t}=n;"geography"==t?e[a]=N(e[a]):"bytea"==t&&e[a]&&(e[a]={$binary:{base64:Buffer.from(e[a]).toString("base64")}})}return e}function E(e,a){if(!e||!e.fields)return[];const{typeIdToName:n={}}=a,t=e.fields.map((e=>({columnName:e.name,dataTypeId:e.dataTypeID,dataTypeName:n[e.dataTypeID],tableId:e.tableID})));return d(t),t}function O(e,a){return t.zipObject(a.map((e=>e.columnName)),e)}m.types.setTypeParser(1082,"text",(e=>e)),m.types.setTypeParser(1114,"text",(e=>e)),m.types.setTypeParser(1184,"text",(e=>e)),m.types.setTypeParser(20,"text",(e=>{const a=parseInt(e);return Number.isSafeInteger(a)?a:{$bigint:e}})),m.types.setTypeParser(1700,"text",(e=>({$decimal:e})));const S=r.map((e=>({...e,analyserClass:i,async connect(a){const{conid:n,engine:s,server:r,port:i,user:o,password:l,database:c,databaseUrl:p,useDatabaseUrl:u,ssl:d,isReadOnly:g,authType:h,socketPath:y}=a;let N=null,f=null;if("awsIam"==h&&(f=await b.getAwsIamToken(a)),"redshift@dbgate-plugin-postgres"==s){let e=p;e&&e.startsWith("jdbc:redshift://")&&(e=e.substring(16)),e=o&&l?`postgres://${o}:${l}@${e}`:o?`postgres://${o}@${e}`:`postgres://${e}`,N={connectionString:e}}else N=u?{connectionString:p,application_name:"DbGate"}:{host:"socket"==h?y||e.defaultSocketPath:r,port:"socket"==h?null:i,user:o,password:f||l,database:_(c)||"postgres",ssl:"awsIam"==h?d||{rejectUnauthorized:!1}:d,application_name:"DbGate"};const E=new m.Client(N);await E.connect();const O={client:E,database:c,conid:n},S=await this.query(O,"SELECT oid, typname FROM pg_type WHERE typname in ('geography', 'bytea')"),C=t.fromPairs(S.rows.map((e=>[e.oid,e.typname])));return O.typeIdToName=C,g&&await this.query(O,"SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY"),O},close:async e=>e.client.end(),async query(e,a){if(null==a)return{rows:[],columns:[]};const n=await e.client.query({text:a,rowMode:"array"}),t=E(n,e),s=Object.values(e.typeIdToName??{}),r=t.filter((e=>s.includes(e.dataTypeName)));return{rows:(n.rows||[]).map((e=>O(e,t))).map((e=>f(e,r))),columns:t}},stream(a,n,s){const r=e=>{const{message:a,where:n}=e;s.info({message:a,procedure:n,time:new Date,severity:"info",detail:e})},i=new m.Query({text:n,rowMode:"array"});let o=!1,l=null;a.client.on("notice",r),i.on("row",(n=>{if(o||(columns=E(i._result,a),columns&&columns.length>0&&s.recordset(columns,{engine:e.engine}),o=!0),!l){const e=Object.values(a.typeIdToName??{});l=columns.filter((a=>e.includes(a.dataTypeName)))}const t=f(O(n,columns),l);s.row(t)})),i.on("end",(()=>{const{command:e,rowCount:n}=i._result||{};"SELECT"!=e&&t.isNumber(n)&&s.info({message:`${n} rows affected`,time:new Date,severity:"info",rowsAffected:n}),o||(columns=E(i._result,a),columns&&columns.length>0&&s.recordset(columns),o=!0),a.client.off("notice",r),s.done()})),i.on("error",(e=>{y.error(g(e,this.getLogDbInfo(a)),"DBGM-00201 Stream error");const{message:t,position:i,procName:o}=e;let m=null;i&&(m=n.substring(0,parseInt(i)).replace(/[^\n]/g,"").length),s.info({message:t,line:m,procedure:o,time:new Date,severity:"error"}),a.client.off("notice",r),s.done()})),a.client.query(i)},async getVersion(e){const{rows:a}=await this.query(e,"SELECT version()"),{version:n}=a[0];let t=!1;try{await this.query(e,"SELECT MD5('test')")}catch(e){t=!0}const s=n.toLowerCase().includes("cockroachdb"),r=n.toLowerCase().includes("redshift"),i=!s&&!r,o=n.match(/([\d\.]+)/);let m=null,l=null,c=null;if(o){s&&(m=`CockroachDB ${o[1]}`),r&&(m=`Redshift ${o[1]}`),i&&(m=`PostgreSQL ${o[1]}`);const e=o[1].split(".");e[0]&&(l=parseInt(e[0])),e[1]&&(c=parseInt(e[1]))}return{version:n,versionText:m,isPostgres:i,isCockroach:s,isRedshift:r,versionMajor:l,versionMinor:c,isFipsComplianceOn:t}},async readQuery(a,n,t){const r=new m.Query({text:n,rowMode:"array"});let i=!1,o=null,l=null;const c=new s.PassThrough({objectMode:!0,highWaterMark:100});return r.on("row",(n=>{if(i||(o=E(r._result,a),c.write({__isStreamHeader:!0,engine:e.engine,...t||{columns:o}}),i=!0),!l){const e=Object.values(a.typeIdToName??{});l=o.filter((a=>e.includes(a.dataTypeName)))}const s=f(O(n,o),l);c.write(s)})),r.on("end",(()=>{i||(o=E(r._result,a),c.write({__isStreamHeader:!0,...t||{columns:o}}),i=!0),c.end()})),r.on("error",(e=>{console.error(e),c.end()})),a.client.query(r),c},async writeTable(e,a,n){return u(this,s,e,a,n)},async serverSummary(e){const[a,n,t]=await Promise.all([this.listProcesses(e),this.listVariables(e),this.listDatabasesFull(e)]);return{processes:a,variables:n,databases:{rows:t,columns:[{header:"Name",fieldName:"name",type:"data"},{header:"Size on disk",fieldName:"sizeOnDisk",type:"fileSize"}]}}},async killProcess(e,a){return await this.query(e,`SELECT pg_terminate_backend(${parseInt(a)})`)},async listDatabasesFull(e){const{rows:a}=await this.query(e,c.listDatabases);return a},async listDatabases(e){const{rows:a}=await this.query(e,"SELECT datname AS name FROM pg_database WHERE datistemplate = false");return a},async listVariables(e){return(await this.query(e,c.listVariables)).rows.map((e=>({variable:e.variable,value:e.value})))},async listProcesses(e){return(await this.query(e,c.listProcesses)).rows.map((e=>({processId:e.processId,connectionId:e.connectionId,client:e.client,operation:e.operation,namespace:null,command:e.operation,runningTime:e.runningTime?Math.max(Number(e.runningTime),0):null,state:e.state,waitingFor:e.waitingFor,locks:null,progress:null})))},getAuthTypes(){const e=[{title:"Host and port",name:"hostPort"},{title:"Socket",name:"socket"}];return b.supportsAwsIam()&&e.push({title:"AWS IAM",name:"awsIam"}),e},async listSchemas(e){const a=await this.query(e,'select oid as "object_id", nspname as "schema_name" from pg_catalog.pg_namespace'),n=await this.query(e,"SELECT current_schema"),t=n.rows[0]?.current_schema?.trim();return y.debug(this.getLogDbInfo(e),`DBGM-00142 Loaded ${a.rows.length} postgres schemas`),a.rows.map((e=>({schemaName:e.schema_name,objectId:e.object_id,isDefault:e.schema_name==t})))},writeQueryFromStream:(e,a)=>e.client.query(l.from(a))})));S.initialize=e=>{b=e.authProxy},e.exports=S},237:(e,a,n)=>{const t=n(378);e.exports={packageName:"dbgate-plugin-postgres",drivers:t,initialize(e){t.initialize(e)}}},925:e=>{e.exports='\nselect \n\ttable_schema as "schema_name", \n\ttable_name as "pure_name", \n\tcolumn_name as "column_name",\n\tis_nullable as "is_nullable",\n\tdata_type as "data_type",\n\tcharacter_maximum_length as "char_max_length",\n\tnumeric_precision as "numeric_precision",\n\tnumeric_scale as "numeric_scale",\n\tcolumn_default as "default_value"\nfrom information_schema.columns\nwhere \n\t\ttable_schema !~ \'^_timescaledb_\' \n\t\tand (\n\t\t\t(\'tables:\' || table_schema || \'.\' || table_name) =OBJECT_ID_CONDITION\n\t\t\tor\n\t\t\t(\'views:\' || table_schema || \'.\' || table_name) =OBJECT_ID_CONDITION\n\t\t)\n\t\tand table_schema =SCHEMA_NAME_CONDITION\norder by ordinal_position\n'},883:e=>{e.exports="\nselect \n\tbasecol.constraint_name,\n\tbasecol.constraint_schema,\n\tbasecol.column_name as \"column_name\",\n\tbasecol.table_schema,\n\tbasecol.table_name,\n\tbasecol.ordinal_position\nfrom information_schema.key_column_usage basecol\nwhere ('tables:' || basecol.table_schema || '.' || basecol.table_name) =OBJECT_ID_CONDITION and basecol.table_schema =SCHEMA_NAME_CONDITION\n"},958:e=>{e.exports="\nSELECT \n nsp.nspname AS table_schema,\n rel.relname AS table_name,\n con.conname AS constraint_name,\n nsp2.nspname AS ref_table_schema,\n rel2.relname AS ref_table_name,\n conpk.conname AS unique_constraint_name\nFROM pg_constraint con\nJOIN pg_class rel ON rel.oid = con.conrelid\nJOIN pg_namespace nsp ON nsp.oid = rel.relnamespace\nJOIN pg_class rel2 ON rel2.oid = con.confrelid\nJOIN pg_namespace nsp2 ON nsp2.oid = rel2.relnamespace\nJOIN pg_constraint conpk \n ON conpk.conrelid = con.confrelid \n AND conpk.conkey = con.confkey\n AND conpk.contype IN ('p','u') -- 'p' = primary key, 'u' = unique constraint\nWHERE con.contype = 'f' AND ('tables:' || nsp.nspname || '.' || rel.relname) =OBJECT_ID_CONDITION AND nsp.nspname =SCHEMA_NAME_CONDITION\n;\n"},477:e=>{e.exports='\nselect \n\tf_table_schema as "schema_name", \n\tf_table_name as "pure_name", \n\tf_geography_column as "column_name"\nfrom public.geography_columns\nwhere (\'tables:\' || f_table_schema || \'.\' || f_table_name) =OBJECT_ID_CONDITION and f_table_schema =SCHEMA_NAME_CONDITION\n'},981:e=>{e.exports='\nselect \n\tf_table_schema as "schema_name", \n\tf_table_name as "pure_name", \n\tf_geometry_column as "column_name"\nfrom public.geometry_columns\nwhere (\'tables:\' || f_table_schema || \'.\' || f_table_name) =OBJECT_ID_CONDITION and f_table_schema =SCHEMA_NAME_CONDITION\n'},926:(e,a,n)=>{const t=n(925),s=n(382),r=n(432),i=n(748),o=n(916),m=n(864),l=n(124),c=n(701),p=n(389),u=n(422),d=n(474),_=n(689),g=n(171),h=n(981),b=n(477),y=n(754),N=n(958),f=n(377),E=n(264),O=n(447),S=n(823),C=n(883);e.exports={columns:t,tableList:s,viewModifications:r,primaryKeys:o,fk_keyColumnUsage:C,foreignKeys:N,views:m,routines:c,routineModifications:p,matviews:l,matviewModifications:i,matviewColumns:u,indexes:d,indexcols:_,uniqueNames:g,geometryColumns:h,geographyColumns:b,proceduresParameters:y,triggers:f,listDatabases:E,listVariables:O,listProcesses:S}},689:e=>{e.exports="\n select\n a.attname as \"column_name\",\n a.attnum as \"attnum\",\n a.attrelid as \"oid\"\n from\n pg_class t,\n pg_class i,\n pg_attribute a,\n pg_index ix,\n pg_namespace c\n where\n t.oid = ix.indrelid\n and a.attnum = ANY(ix.indkey)\n and a.attrelid = t.oid\n and i.oid = ix.indexrelid\n and t.relkind = 'r'\n and ix.indisprimary = false\n and t.relnamespace = c.oid\n and c.nspname != 'pg_catalog'\n and ('tables:' || c.nspname || '.' || t.relname) =OBJECT_ID_CONDITION\n and c.nspname =SCHEMA_NAME_CONDITION\n order by\n t.relname\n"},474:e=>{e.exports='\n select\n t.relname as "table_name",\n c.nspname as "schema_name",\n i.relname as "index_name",\n ix.indisprimary as "is_primary",\n ix.indisunique as "is_unique",\n ix.indkey as "indkey",\n ix.indoption as "indoption",\n t.oid as "oid"\n from\n pg_class t,\n pg_class i,\n pg_index ix,\n pg_namespace c\n where\n t.oid = ix.indrelid\n and i.oid = ix.indexrelid\n and t.relkind = \'r\'\n and ix.indisprimary = false\n and t.relnamespace = c.oid\n and c.nspname != \'pg_catalog\'\n and (\'tables:\' || c.nspname || \'.\' || t.relname) =OBJECT_ID_CONDITION\n and c.nspname =SCHEMA_NAME_CONDITION\n order by\n t.relname\n'},264:e=>{e.exports='\nSELECT \n "datname" AS "name",\n pg_database_size("datname") AS "sizeOnDisk",\n 0 AS "tableCount",\n 0 AS "viewCount", \n 0 AS "matviewCount"\nFROM "pg_database" \nWHERE "datistemplate" = false\nORDER BY pg_database_size("datname") DESC\n'},823:e=>{e.exports='\nSELECT \n "pid" AS "processId",\n "application_name" AS "client",\n "client_addr" AS "connectionId",\n "state" AS "state",\n "query" AS "operation",\n EXTRACT(EPOCH FROM (NOW() - "state_change")) AS "runningTime",\n "wait_event" IS NOT NULL AS "waitingFor"\nFROM "pg_stat_activity" \nWHERE "state" IS NOT NULL\nORDER BY "pid"\n'},447:e=>{e.exports='\nSELECT "name" AS "variable", "setting" AS "value" \nFROM "pg_settings" \nORDER BY "name"\n'},422:e=>{e.exports='\nSELECT pg_namespace.nspname AS "schema_name"\n , pg_class.relname AS "pure_name"\n , pg_attribute.attname AS "column_name"\n , pg_catalog.format_type(pg_attribute.atttypid, pg_attribute.atttypmod) AS "data_type"\nFROM pg_catalog.pg_class\n INNER JOIN pg_catalog.pg_namespace\n ON pg_class.relnamespace = pg_namespace.oid\n INNER JOIN pg_catalog.pg_attribute\n ON pg_class.oid = pg_attribute.attrelid\n-- Keeps only materialized views, and non-db/catalog/index columns \nWHERE pg_class.relkind = \'m\'\n AND pg_attribute.attnum >= 1\n AND (\'matviews:\' || pg_namespace.nspname || \'.\' || pg_class.relname) =OBJECT_ID_CONDITION\n AND pg_namespace.nspname =SCHEMA_NAME_CONDITION\n\nORDER BY pg_attribute.attnum\n'},748:e=>{e.exports='\nselect \n matviewname as "pure_name",\n schemaname as "schema_name",\n $md5Function(definition) as "hash_code"\nfrom\n pg_catalog.pg_matviews WHERE schemaname NOT LIKE \'pg_%\' AND schemaname =SCHEMA_NAME_CONDITION\n'},124:e=>{e.exports='\nselect \n matviewname as "pure_name",\n schemaname as "schema_name",\n definition as "definition",\n $md5Function(definition) as "hash_code"\nfrom\n pg_catalog.pg_matviews WHERE schemaname NOT LIKE \'pg_%\' \n and (\'matviews:\' || schemaname || \'.\' || matviewname) =OBJECT_ID_CONDITION\n and schemaname =SCHEMA_NAME_CONDITION\n'},916:e=>{e.exports='\nSELECT\n n.nspname AS "constraint_schema",\n c.conname AS "constraint_name",\n n.nspname AS "schema_name",\n t.relname AS "pure_name",\n a.attname AS "column_name"\nFROM pg_catalog.pg_constraint AS c\nJOIN pg_catalog.pg_class AS t\n ON t.oid = c.conrelid\nJOIN pg_catalog.pg_namespace AS n\n ON n.oid = t.relnamespace\nJOIN LATERAL unnest(c.conkey) WITH ORDINALITY AS cols(attnum, ordinal_position)\n ON TRUE\nJOIN pg_catalog.pg_attribute AS a\n ON a.attrelid = t.oid\n AND a.attnum = cols.attnum\nWHERE \n c.contype = \'p\' -- PRIMARY KEY\n AND n.nspname !~ \'^_timescaledb_\' \n AND (\'tables:\' || n.nspname || \'.\' || t.relname) =OBJECT_ID_CONDITION\n AND n.nspname =SCHEMA_NAME_CONDITION\nORDER BY cols.ordinal_position\n'},754:e=>{e.exports="\nSELECT \n proc.specific_schema AS schema_name,\n proc.routine_name AS pure_name,\n proc.routine_type as routine_type,\n args.parameter_name AS parameter_name,\n args.parameter_mode,\n args.data_type AS data_type,\n args.ordinal_position AS parameter_index,\n args.parameter_mode AS parameter_mode\nFROM \n information_schema.routines proc \nLEFT JOIN \n information_schema.parameters args\n ON proc.specific_schema = args.specific_schema\n AND proc.specific_name = args.specific_name\nWHERE \n proc.specific_schema NOT IN ('pg_catalog', 'information_schema') -- Exclude system schemas\n AND args.parameter_name IS NOT NULL\n AND proc.routine_type IN ('PROCEDURE', 'FUNCTION') -- Filter for procedures\n AND proc.specific_schema !~ '^_timescaledb_' \n AND proc.specific_schema =SCHEMA_NAME_CONDITION\n AND (\n (routine_type = 'PROCEDURE' AND ('procedures:' || proc.specific_schema || '.' || routine_name) =OBJECT_ID_CONDITION)\n OR\n (routine_type = 'FUNCTION' AND ('functions:' || proc.specific_schema || '.' || routine_name) =OBJECT_ID_CONDITION)\n )\nORDER BY \n schema_name,\n args.ordinal_position;\n"},389:e=>{e.exports='\nselect \n routine_name as "pure_name",\n routine_schema as "schema_name",\n $md5Function(routine_definition) as "hash_code",\n routine_type as "object_type"\nfrom\n information_schema.routines where routine_schema !~ \'^_timescaledb_\' \n and routine_type in (\'PROCEDURE\', \'FUNCTION\') and routine_schema =SCHEMA_NAME_CONDITION\n'},701:e=>{e.exports="\nselect \n routine_name as \"pure_name\",\n routine_schema as \"schema_name\",\n max(routine_definition) as \"definition\",\n max($md5Function(routine_definition)) as \"hash_code\",\n routine_type as \"object_type\",\n $typeAggFunc(data_type $typeAggParam) as \"data_type\",\n max(external_language) as \"language\"\nfrom\n information_schema.routines where routine_schema !~ '^_timescaledb_' \n and routine_schema =SCHEMA_NAME_CONDITION\n and (\n (routine_type = 'PROCEDURE' and ('procedures:' || routine_schema || '.' || routine_name) =OBJECT_ID_CONDITION)\n or\n (routine_type = 'FUNCTION' and ('functions:' || routine_schema || '.' || routine_name) =OBJECT_ID_CONDITION)\n )\n group by routine_name, routine_schema, routine_type\n"},382:e=>{e.exports="\nselect infoTables.table_schema as \"schema_name\", infoTables.table_name as \"pure_name\", \n pg_relation_size('\"'||infoTables.table_schema||'\".\"'||infoTables.table_name||'\"') as \"size_bytes\"\nfrom information_schema.tables infoTables \nwhere infoTables.table_type not like '%VIEW%' \n and ('tables:' || infoTables.table_schema || '.' || infoTables.table_name) =OBJECT_ID_CONDITION\nand infoTables.table_schema <> 'pg_internal'\nand infoTables.table_schema !~ '^_timescaledb_'\nand infoTables.table_schema =SCHEMA_NAME_CONDITION\n"},377:e=>{e.exports="\nSELECT \n t.oid AS trigger_id,\n t.tgname AS trigger_name,\n n.nspname AS schema_name,\n c.relname AS table_name,\n p.proname AS function_name,\n t.tgtype AS original_tgtype,\n CASE \n WHEN t.tgtype & 1 = 1 THEN 'ROW' \n ELSE 'STATEMENT' \n END AS trigger_level,\n COALESCE(\n CASE WHEN (tgtype::int::bit(7) & b'0000010')::int = 0 THEN NULL ELSE 'BEFORE' END,\n CASE WHEN (tgtype::int::bit(7) & b'0000010')::int = 0 THEN 'AFTER' ELSE NULL END,\n CASE WHEN (tgtype::int::bit(7) & b'1000000')::int = 0 THEN NULL ELSE 'INSTEAD OF' END,\n ''\n )::text as trigger_timing, \n (CASE WHEN (tgtype::int::bit(7) & b'0000100')::int = 0 THEN '' ELSE 'INSERT' END) ||\n (CASE WHEN (tgtype::int::bit(7) & b'0001000')::int = 0 THEN '' ELSE 'DELETE' END) ||\n (CASE WHEN (tgtype::int::bit(7) & b'0010000')::int = 0 THEN '' ELSE 'UPDATE' END) ||\n (CASE WHEN (tgtype::int::bit(7) & b'0100000')::int = 0 THEN '' ELSE 'TRUNCATE' END)\n as event_type,\n pg_get_triggerdef(t.oid) AS definition\nFROM \n pg_trigger t\nJOIN \n pg_class c ON c.oid = t.tgrelid\nJOIN \n pg_namespace n ON n.oid = c.relnamespace\nJOIN \n pg_proc p ON p.oid = t.tgfoid\nWHERE \n NOT t.tgisinternal AND n.nspname =SCHEMA_NAME_CONDITION\n"},171:e=>{e.exports="\n select cnt.conname as \"constraint_name\" from pg_constraint cnt \n inner join pg_namespace c on c.oid = cnt.connamespace\n where cnt.contype = 'u' and c.nspname =SCHEMA_NAME_CONDITION\n"},432:e=>{e.exports="\nselect \n table_name as \"pure_name\",\n table_schema as \"schema_name\",\n $md5Function(view_definition) as \"hash_code\"\nfrom\n information_schema.views where table_schema != 'information_schema' and table_schema != 'pg_catalog' and table_schema !~ '^_timescaledb_' and table_schema =SCHEMA_NAME_CONDITION\n"},864:e=>{e.exports='\nselect \n table_name as "pure_name",\n table_schema as "schema_name",\n view_definition as "create_sql",\n $md5Function(view_definition) as "hash_code"\nfrom\n information_schema.views \nwhere table_schema !~ \'^_timescaledb_\' and table_schema =SCHEMA_NAME_CONDITION\n and (\'views:\' || table_schema || \'.\' || table_name) =OBJECT_ID_CONDITION\n'},197:e=>{const{SqlDumper:a,arrayToHexString:n,testEqualTypes:t}=global.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends a{transform(e,a){switch(e){case"GROUP:YEAR":case"YEAR":this.put("^extract(^year ^from %c)",a);break;case"MONTH":this.put("^extract(^month ^from %c)",a);break;case"DAY":this.put("^extract(^day ^from %c)",a);break;case"GROUP:MONTH":this.put("^to_char(%c, '%s')",a,"YYYY-MM");break;case"GROUP:DAY":this.put("^to_char(%c, '%s')",a,"YYYY-MM-DD");break;default:a()}}dropDatabase(e){this.putCmd("^drop ^database %i ^with(^force)",e)}dropRecreatedTempTable(e){this.putCmd("^drop ^table %i ^cascade",e)}renameTable(e,a){this.putCmd("^alter ^table %f ^rename ^to %i",e,a)}renameSqlObject(e,a){this.putCmd("^alter %k %f ^rename ^to %i",this.getSqlObjectSqlName(e.objectTypeField),e,a)}renameColumn(e,a){this.putCmd("^alter ^table %f ^rename ^column %i ^to %i",e,e.columnName,a)}dropTable(e,a={}){this.put("^drop ^table"),a.testIfExists&&this.put(" ^if ^exists"),this.put(" %f",e),this.endCommand()}enableConstraints(e,a){this.putCmd("^alter ^table %f %k ^trigger ^all",e,a?"enable":"disable")}columnDefinition(e,a){e.autoIncrement?this.put("^serial"):super.columnDefinition(e,a)}changeColumn(e,a,n){e.columnName!=a.columnName&&this.putCmd("^alter ^table %f ^rename ^column %i ^to %i",e,e.columnName,a.columnName),t(e,a)||this.putCmd("^alter ^table %f ^alter ^column %i ^type %s",e,a.columnName,a.dataType),e.defaultValue!=a.defaultValue&&(null==a.defaultValue?this.putCmd("^alter ^table %f ^alter ^column %i ^drop ^default",a,a.columnName):this.putCmd("^alter ^table %f ^alter ^column %i ^set ^default %s",a,a.columnName,a.defaultValue)),e.notNull!=a.notNull&&(e.notNull||this.fillNewNotNullDefaults(a),a.notNull?this.putCmd("^alter ^table %f ^alter ^column %i ^set ^not ^null",a,a.columnName):this.putCmd("^alter ^table %f ^alter ^column %i ^drop ^not ^null",a,a.columnName))}putValue(e){!0===e?this.putRaw("true"):!1===e?this.putRaw("false"):super.putValue(e)}putByteArrayValue(e){this.putRaw(`e'\\\\x${n(e)}'`)}selectScopeIdentity(e){const a=e.columns&&e.columns.find((e=>e.autoIncrement));this.put("^SELECT currval(pg_get_serial_sequence('%f','%s'))",e,a?a.columnName:null)}callableTemplate(e){const a=e=>{for(const a of e.filter((e=>"RETURN"!=e.parameterMode)))"IN"==a.parameterMode?(this.put("%s %s := :%s",a.parameterName,a.dataType,a.parameterName),this.endCommand()):(this.put("%s %s",a.parameterName,a.dataType),this.endCommand());this.put("&n")},n=(e,a)=>{this.putCollection(a,e||[],(e=>{this.putRaw(e.parameterName)}))};"procedures"==e.objectTypeField&&(this.put("^do $$&n"),this.put("^declare&n"),a(e.parameters),this.put("^begin&n"),this.put("^call %f(&>&n",e),n(e.parameters,",&n"),this.put("&<&n)"),this.endCommand(),this.put("&n"),this.put("^end $$"),this.endCommand()),"functions"==e.objectTypeField&&(this.put("^do $$&n"),this.put("^declare&n"),this.put("result %s",e.returnType),this.endCommand(),a(e.parameters),this.put("^begin&n"),this.put("result := %f(&>&n",e),n(e.parameters,",&n"),this.put("&<&n)"),this.endCommand(),this.put("&n"),this.put("^end $$"),this.endCommand())}}},293:(e,a,n)=>{const{driverBase:t}=global.DBGATE_PACKAGES["dbgate-tools"],s=n(197),{postgreSplitterOptions:r}=n(994),i=["GEOGRAPHY","GEOMETRY"],o={rangeSelect:!0,ilike:!0,defaultSchemaName:"public",multipleSchema:!0,stringEscapeChar:"'",fallbackDataType:"varchar",anonymousPrimaryKey:!1,enableConstraintsPerTable:!0,dropColumnDependencies:["dependencies"],quoteIdentifier:e=>'"'+e+'"',stringAgg:!0,createColumn:!0,dropColumn:!0,changeColumn:!0,createIndex:!0,dropIndex:!0,createForeignKey:!0,dropForeignKey:!0,createPrimaryKey:!0,dropPrimaryKey:!0,createUnique:!0,dropUnique:!0,createCheck:!0,dropCheck:!0,allowMultipleValuesInsert:!0,renameSqlObject:!0,filteredIndexes:!0,dropReferencesWhenDropTable:!0,requireStandaloneSelectForScopeIdentity:!0,predefinedDataTypes:["bigint","bigserial","bit","varbit","boolean","box","bytea","char(20)","varchar(250)","cidr","circle","date","double precision","inet","int","interval","json","jsonb","line","lseg","macaddr","macaddr8","money","numeric(10,2)","path","pg_lsn","pg_snapshot","point","polygon","real","smallint","smallserial","serial","text","time","timetz","timestamp","timestamptz","tsquery","tsvector","txid_snapshot","uuid","xml"],createColumnViewExpression:(e,a,n,t,s)=>a&&i.includes(a.toUpperCase())?{exprType:"call",func:"ST_AsText",alias:t||e,args:[{exprType:"column",columnName:e,source:n}]}:"uuid"==a?.toLowerCase()||"filter"==s&&a?.toLowerCase()?.startsWith("json")?{exprType:"unaryRaw",expr:{exprType:"column",source:n,columnName:e},afterSql:"::text",alias:t||e}:void 0},m={...t,supportsTransactions:!0,supportsIncrementalAnalysis:!0,dumperClass:s,dialect:o,getQuerySplitterOptions:e=>"editor"==e?{...r,ignoreComments:!0,preventSingleLineSplit:!0}:"import"==e?{...r,copyFromStdin:!0}:r,readOnlySessions:!0,databaseUrlPlaceholder:"e.g. postgresql://user:password@localhost:5432/default_database",showConnectionField:(e,a)=>{const n=["useDatabaseUrl","authType","user","isReadOnly","useSeparateSchemas"];return"awsIam"==a.authType&&n.push("awsRegion","secretAccessKey","accessKeyId"),"socket"==a.authType?n.push("socketPath"):a.useDatabaseUrl?n.push("databaseUrl"):n.push("server","port"),"awsIam"!=a.authType&&"socket"!=a.authType&&n.push("password"),a.useDatabaseUrl||n.push("defaultDatabase","singleDatabase"),n.includes(e)},beforeConnectionSave:e=>{const{databaseUrl:a}=e;if(a){const n=a.match(/\/([^/]+)($|\?)/);return{...e,singleDatabase:!!n,defaultDatabase:n?n[1]:null}}return e},__analyserInternals:{},getNewObjectTemplates:()=>[{label:"New view",sql:"CREATE VIEW myview\nAS\nSELECT * FROM table1"},{label:"New materialized view",sql:"CREATE MATERIALIZED VIEW myview\nAS\nSELECT * FROM table1"},{label:"New procedure",sql:"CREATE PROCEDURE myproc (arg1 INT)\nLANGUAGE SQL \nAS $$\n SELECT * FROM table1;\n$$"},{label:"New function (plpgsql)",sql:"CREATE FUNCTION myfunc (arg1 INT)\nRETURNS INT\nAS $$\nBEGIN\n RETURN 1;\nEND\n$$ LANGUAGE plpgsql;"},{label:"New trigger",sql:"CREATE TRIGGER trigger_name\nBEFORE INSERT ON table_name\nFOR EACH ROW\nEXECUTE FUNCTION function_name();"}],authTypeLabel:"Connection mode",defaultAuthTypeName:"hostPort",defaultSocketPath:"/var/run/postgresql",supportsDatabaseBackup:!0,supportsDatabaseRestore:!0,adaptDataType:e=>"datetime"==e?.toLowerCase()?"timestamp":e,getCliConnectionArgs(e){const a=[`--username=${e.user}`,`--host=${e.server}`];return e.port&&a.push(`--port=${e.port}`),a},getNativeOperationFormArgs:e=>"backup"==e?[{type:"checkbox",label:"Dump only data (without structure)",name:"dataOnly",default:!1},{type:"checkbox",label:"Dump schema only (no data)",name:"schemaOnly",default:!1},{type:"checkbox",label:"Use SQL insert instead of COPY for rows",name:"insert",default:!1},{type:"checkbox",label:"Prevent dumping of access privileges (grant/revoke)",name:"noPrivileges",default:!1},{type:"checkbox",label:"Do not output commands to set ownership of objects ",name:"noOwner",default:!1},{type:"text",label:"Custom arguments",name:"customArgs"}]:null,backupDatabaseCommand(e,a,n){const{outputFile:t,database:s,selectedTables:r,skippedTables:i,options:o,argsFormat:m}=a,l=n.pg_dump||"pg_dump",c=this.getCliConnectionArgs(e,n);if(c.push(`--file=${t}`),c.push("--verbose"),c.push(s),o.dataOnly&&c.push("--data-only"),o.schemaOnly&&c.push("--schema-only"),o.insert&&c.push("--insert"),o.noPrivileges&&c.push("--no-privileges"),o.noOwner&&c.push("--no-owner"),i.length>0)for(const e of r)c.push("spawn"==m?`--table="${e.schemaName}"."${e.pureName}"`:`--table='"${e.schemaName}"."${e.pureName}"'`);if(o.customArgs?.trim()){const e=o.customArgs.split(/\s+/).filter((e=>""!=e.trim()));c.push(...e)}return{command:l,args:c,env:{PGPASSWORD:e.password}}},restoreDatabaseCommand(e,a,n){const{inputFile:t,database:s}=a,r=n.psql||"psql",i=this.getCliConnectionArgs(e,n);return i.push(`--dbname=${s}`),i.push(`--file=${t}`),{command:r,args:i,env:{PGPASSWORD:e.password}}},transformNativeCommandMessage:e=>e.message.startsWith("INSERT ")||"SET"==e.message?null:e.message.startsWith("pg_dump: processing data for table")?{...e,severity:"info",message:e.message.replace("pg_dump: processing data for table","Processing table")}:e.message.toLowerCase().includes("error:")?{...e,severity:"error"}:{...e,severity:"debug"}},l={...m,supportsServerSummary:!0,engine:"postgres@dbgate-plugin-postgres",title:"PostgreSQL",defaultPort:5432,dialect:{...o,materializedViews:!0},dialectByVersion:e=>e?{...o,materializedViews:e&&null!=e.versionMajor&&null!=e.versionMinor&&(e.versionMajor>9||9==e.versionMajor||e.versionMinor>=3),isFipsComplianceOn:e.isFipsComplianceOn}:o},c={...m,supportsServerSummary:!0,engine:"cockroach@dbgate-plugin-postgres",title:"CockroachDB",defaultPort:26257,dialect:{...o,materializedViews:!0,dropColumnDependencies:["primaryKey","dependencies"],dropPrimaryKey:!1},__analyserInternals:{}},p={...m,supportsServerSummary:!0,dialect:{...o,stringAgg:!1},__analyserInternals:{skipIndexes:!0},engine:"redshift@dbgate-plugin-postgres",title:"Amazon Redshift",defaultPort:5439,premiumOnly:!0,databaseUrlPlaceholder:"e.g. redshift-cluster-1.xxxx.redshift.amazonaws.com:5439/dev",showConnectionField:(e,a)=>["databaseUrl","user","password","isReadOnly","useSeparateSchemas"].includes(e),beforeConnectionSave:e=>{const{databaseUrl:a}=e;if(a){const n=a.match(/\/([^/]+)$/);if(n)return{...e,singleDatabase:!0,defaultDatabase:n[1]}}return e}};e.exports=[l,c,p]},825:e=>{"use strict";e.exports=require("lodash")},449:e=>{"use strict";e.exports=require("pg")},269:e=>{"use strict";e.exports=require("pg-copy-streams")},158:e=>{"use strict";e.exports=require("wkx")},203:e=>{"use strict";e.exports=require("stream")}},a={},n=function n(t){var s=a[t];if(void 0!==s)return s.exports;var r=a[t]={exports:{}};return e[t](r,r.exports,n),r.exports}(237);module.exports=n})();
1
+ (()=>{var e={994:(e,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.firebirdSplitterOptions=a.oracleSplitterOptions=a.redisSplitterOptions=a.noSplitSplitterOptions=a.mongoSplitterOptions=a.sqliteSplitterOptions=a.postgreSplitterOptions=a.mssqlSplitterOptions=a.mysqlSplitterOptions=a.defaultSplitterOptions=void 0,a.defaultSplitterOptions={stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'},allowSemicolon:!0,allowCustomDelimiter:!1,allowCustomSqlTerminator:!1,allowGoDelimiter:!1,allowSlashDelimiter:!1,allowDollarDollarString:!1,noSplit:!1,skipSeparatorBeginEnd:!1,keepSemicolonInCommands:!1,doubleDashComments:!0,multilineComments:!0,javaScriptComments:!1,returnRichInfo:!1,splitByLines:!1,splitByEmptyLine:!1,preventSingleLineSplit:!1,adaptiveGoSplit:!1,ignoreComments:!1,copyFromStdin:!1,queryParameterStyle:null},a.mysqlSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{allowCustomDelimiter:!0,stringsBegins:["'","`",'"'],stringsEnds:{"'":"'","`":"`",'"':'"'},stringEscapes:{"'":"\\","`":"`",'"':"\\"}}),a.mssqlSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{allowSemicolon:!1,allowGoDelimiter:!0,keepSemicolonInCommands:!0,stringsBegins:["'","["],stringsEnds:{"'":"'","[":"]"},stringEscapes:{"'":"'"}}),a.postgreSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{allowDollarDollarString:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),a.sqliteSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),a.mongoSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"\\",'"':"\\"}}),a.noSplitSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{noSplit:!0}),a.redisSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{splitByLines:!0}),a.oracleSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{allowCustomSqlTerminator:!0,allowSlashDelimiter:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),a.firebirdSplitterOptions=Object.assign(Object.assign({},a.defaultSplitterOptions),{skipSeparatorBeginEnd:!0,queryParameterStyle:":"})},688:(e,a,n)=>{const t=n(825),s=n(926),{DatabaseAnalyser:r,isTypeString:i,isTypeNumeric:o,isCompositeDbName:m,splitCompositeDbName:c}=global.DBGATE_PACKAGES["dbgate-tools"];function l(e){return"character varying"==e?"varchar":"timestamp without time zone"==e?"timestamp":e}function p({is_nullable:e,column_name:a,data_type:n,char_max_length:t,numeric_precision:s,numeric_ccale:r,default_value:m},c=void 0,p=void 0,u=void 0){const d=l(n);let _=d;t&&i(d)&&(_=`${d}(${t})`),s&&r&&o(d)&&(_=`${d}(${s},${r})`);const g=!(!m||!m.startsWith("nextval("));return c&&p&&p.rows.find((e=>e.schema_name==c.schemaName&&e.pure_name==c.pureName&&e.column_name==a))&&(_="geometry"),c&&u&&u.rows.find((e=>e.schema_name==c.schemaName&&e.pure_name==c.pureName&&e.column_name==a))&&(_="geography"),{columnName:a,dataType:_,notNull:!e||"NO"==e||"no"==e,defaultValue:g?void 0:m,autoIncrement:g}}function u(e=[]){return e?.length?e.map((e=>{const a=e.parameterMode?`${e.parameterMode} `:"",n=e.dataType?` ${e.dataType.toUpperCase()}`:"";return`${a}${e.parameterName??""}${n}`})).join(", "):""}e.exports=class extends r{constructor(e,a,n){super(e,a,n)}createQuery(e,a,n={}){return super.createQuery(s[e],a,{...n,$typeAggFunc:this.driver.dialect.stringAgg?"string_agg":"max",$typeAggParam:this.driver.dialect.stringAgg?", '|'":"",$md5Function:this.dialect?.isFipsComplianceOn?"LENGTH":"MD5"})}async _computeSingleObjectId(){const{typeField:e,schemaName:a,pureName:n}=this.singleObjectFilter;this.singleObjectId=`${e}:${a||"public"}.${n}`}async _runAnalysis(){this.feedback({analysingMessage:"DBGM-00241 Loading tables"});const e=await this.analyserQuery("tableList",["tables"]);this.feedback({analysingMessage:"DBGM-00242 Loading columns"});const a=await this.analyserQuery("columns",["tables","views"]);this.feedback({analysingMessage:"DBGM-00243 Loading primary keys"});const n=await this.analyserQuery("primaryKeys",["tables"]);let s=null;this.feedback({analysingMessage:"DBGM-00244 Loading foreign key constraints"}),this.feedback({analysingMessage:"DBGM-00245 Loading foreign key refs"});const i=await this.analyserQuery("foreignKeys",["tables"]);this.feedback({analysingMessage:"DBGM-00246 Loading foreign key columns"});const o=await this.analyserQuery("fk_keyColumnUsage",["tables"]),m=[];for(const e of i.rows){const a=t.sortBy(o.rows.filter((a=>a.table_name==e.table_name&&a.constraint_name==e.constraint_name&&a.table_schema==e.table_schema)),"ordinal_position"),n=t.sortBy(o.rows.filter((a=>a.table_name==e.ref_table_name&&a.constraint_name==e.unique_constraint_name&&a.table_schema==e.ref_table_schema)),"ordinal_position");if(a.length==n.length)for(let t=0;t<a.length;t++){const s=a[t],r=n[t];m.push({...e,pure_name:e.table_name,schema_name:e.table_schema,ref_table_name:e.ref_table_name,ref_schema_name:e.ref_table_schema,column_name:s.column_name,ref_column_name:r.column_name})}}s={rows:m},this.feedback({analysingMessage:"DBGM-00247 Loading views"});const c=await this.analyserQuery("views",["views"]);this.feedback({analysingMessage:"DBGM-00248 Loading materialized views"});const d=this.driver.dialect.materializedViews?await this.analyserQuery("matviews",["matviews"]):null;this.feedback({analysingMessage:"DBGM-00249 Loading materialized view columns"});const _=this.driver.dialect.materializedViews?await this.analyserQuery("matviewColumns",["matviews"]):null;this.feedback({analysingMessage:"DBGM-00250 Loading routines"});const g=await this.analyserQuery("routines",["procedures","functions"]);this.feedback({analysingMessage:"DBGM-00251 Loading routine parameters"});const h=await this.analyserQuery("proceduresParameters");this.feedback({analysingMessage:"DBGM-00252 Loading indexes"});const b=this.driver.__analyserInternals.skipIndexes?{rows:[]}:await this.analyserQuery("indexes",["tables"]);this.feedback({analysingMessage:"DBGM-00253 Loading index columns"});const y=this.driver.__analyserInternals.skipIndexes?{rows:[]}:await this.analyserQuery("indexcols",["tables"]);this.feedback({analysingMessage:"DBGM-00254 Loading unique names"});const f=await this.analyserQuery("uniqueNames",["tables"]);let N={rows:[]};c.rows.find((e=>"geometry_columns"==e.pure_name&&"public"==e.schema_name))&&(this.feedback({analysingMessage:"DBGM-00255 Loading geometry columns"}),N=await this.analyserQuery("geometryColumns",["tables"]));let C={rows:[]};c.rows.find((e=>"geography_columns"==e.pure_name&&"public"==e.schema_name))&&(this.feedback({analysingMessage:"DBGM-00256 Loading geography columns"}),C=await this.analyserQuery("geographyColumns",["tables"])),this.feedback({analysingMessage:"DBGM-00257 Loading triggers"});const E=await this.analyserQuery("triggers");this.feedback({analysingMessage:"DBGM-00258 Finalizing DB structure"});const O=s.rows.map((e=>({pureName:e.pure_name,schemaName:e.schema_name,constraintSchema:e.constraint_schema,constraintName:e.constraint_name,columnName:e.column_name,refColumnName:e.ref_column_name,updateAction:e.update_action,deleteAction:e.delete_action,refTableName:e.ref_table_name,refSchemaName:e.ref_schema_name}))),S=n.rows.map((e=>({pureName:e.pure_name,schemaName:e.schema_name,constraintSchema:e.constraint_schema,constraintName:e.constraint_name,columnName:e.column_name}))),w=h.rows.filter((e=>"PROCEDURE"==e.routine_type)).map((e=>({pureName:e.pure_name,parameterName:e.parameter_name,dataType:l(e.data_type),parameterMode:e.parameter_mode,schemaName:e.schema_name}))).reduce(((e,a)=>(e[`${a.schemaName}.${a.pureName}`]||(e[`${a.schemaName}.${a.pureName}`]=[]),e[`${a.schemaName}.${a.pureName}`].push(a),e)),{}),T=h.rows.filter((e=>"FUNCTION"==e.routine_type)).map((e=>({pureName:e.pure_name,parameterName:e.parameter_name,dataType:l(e.data_type),parameterMode:e.parameter_mode,schemaName:e.schema_name}))).reduce(((e,a)=>(e[`${a.schemaName}.${a.pureName}`]||(e[`${a.schemaName}.${a.pureName}`]=[]),e[`${a.schemaName}.${a.pureName}`].push(a),e)),{}),I={tables:e.rows.map((e=>{const n={pureName:e.pure_name,schemaName:e.schema_name,sizeBytes:e.size_bytes,objectId:`tables:${e.schema_name}.${e.pure_name}`,contentHash:e.hash_code_columns?`${e.hash_code_columns}-${e.hash_code_constraints}`:null};return{...n,columns:a.rows.filter((a=>a.pure_name==e.pure_name&&a.schema_name==e.schema_name)).map((e=>p(e,n,N,C))),primaryKey:r.extractPrimaryKeys(n,S),foreignKeys:r.extractForeignKeys(n,O),indexes:b.rows.filter((a=>a.table_name==e.pure_name&&a.schema_name==e.schema_name&&!f.rows.find((e=>e.constraint_name==a.index_name)))).map((e=>{const a=e.indoption.split(" ");return{constraintName:e.index_name,isUnique:e.is_unique,columns:t.compact(e.indkey.split(" ").map((a=>y.rows.find((n=>n.oid==e.oid&&n.attnum==a)))).filter((e=>null!=e)).map(((e,n)=>({columnName:e.column_name,isDescending:parseInt(a[n])>0}))))}})),uniques:b.rows.filter((a=>a.table_name==e.pure_name&&a.schema_name==e.schema_name&&f.rows.find((e=>e.constraint_name==a.index_name)))).map((e=>({constraintName:e.index_name,columns:t.compact(e.indkey.split(" ").map((a=>y.rows.find((n=>n.oid==e.oid&&n.attnum==a)))).filter((e=>null!=e)).map((e=>({columnName:e.column_name}))))})))}})),views:c.rows.map((e=>({objectId:`views:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code,createSql:`CREATE VIEW "${e.schema_name}"."${e.pure_name}"\nAS\n${e.create_sql}`,columns:a.rows.filter((a=>a.pure_name==e.pure_name&&a.schema_name==e.schema_name)).map((e=>p(e)))}))),matviews:d?d.rows.map((e=>({objectId:`matviews:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code,createSql:`CREATE MATERIALIZED VIEW "${e.schema_name}"."${e.pure_name}"\nAS\n${e.definition}`,columns:_.rows.filter((a=>a.pure_name==e.pure_name&&a.schema_name==e.schema_name)).map((e=>p(e)))}))):void 0,procedures:g.rows.filter((e=>"PROCEDURE"==e.object_type)).map((e=>({objectId:`procedures:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,createSql:`CREATE PROCEDURE "${e.schema_name}"."${e.pure_name}"(${u(w[`${e.schema_name}.${e.pure_name}`])}) LANGUAGE ${e.language}\nAS\n$$\n${e.definition}\n$$`,contentHash:e.hash_code,parameters:w[`${e.schema_name}.${e.pure_name}`]}))),functions:g.rows.filter((e=>"FUNCTION"==e.object_type)).map((e=>({objectId:`functions:${e.schema_name}.${e.pure_name}`,createSql:`CREATE FUNCTION "${e.schema_name}"."${e.pure_name}"(${u(T[`${e.schema_name}.${e.pure_name}`])}) RETURNS ${e.data_type.toUpperCase()} LANGUAGE ${e.language}\nAS\n$$\n${e.definition}\n$$`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code,parameters:T[`${e.schema_name}.${e.pure_name}`],returnType:e.data_type}))),triggers:E.rows.map((e=>({pureName:e.trigger_name,trigerName:e.trigger_name,functionName:e.function_name,triggerTiming:e.trigger_timing,triggerLevel:e.trigger_level,eventType:e.event_type,schemaName:e.schema_name,tableName:e.table_name,createSql:e.definition,contentHash:`triggers:${e.trigger_id}`,objectId:`triggers:${e.trigger_id}`})))};return this.feedback({analysingMessage:null}),this.logger.debug({...this.getLogDbInfo(),tables:I.tables?.length,columns:t.sum(I.tables?.map((e=>e.columns?.length))),primaryKeys:I.tables?.filter((e=>e.primaryKey))?.length,foreignKeys:t.sum(I.tables?.map((e=>e.foreignKeys?.length))),indexes:t.sum(I.tables?.map((e=>e.indexes?.length))),uniques:t.sum(I.tables?.map((e=>e.uniques?.length))),views:I.views?.length,matviews:I.matviews?.length,procedures:I.procedures?.length,functions:I.functions?.length},"DBGM-00141 Database structured finalized"),I}async _getFastSnapshot(){const e=await this.analyserQuery("viewModifications"),a=this.driver.dialect.materializedViews?await this.analyserQuery("matviewModifications"):null,n=await this.analyserQuery("routineModifications");return{tables:null,views:e.rows.map((e=>({objectId:`views:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code}))),matviews:a?a.rows.map((e=>({objectId:`matviews:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code}))):void 0,procedures:n.rows.filter((e=>"PROCEDURE"==e.object_type)).map((e=>({objectId:`procedures:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code}))),functions:n.rows.filter((e=>"FUNCTION"==e.object_type)).map((e=>({objectId:`functions:${e.schema_name}.${e.pure_name}`,pureName:e.pure_name,schemaName:e.schema_name,contentHash:e.hash_code})))}}getDefaultSchemaNameCondition(){return"not in ('pg_catalog', 'pg_toast', 'information_schema')"}}},378:(e,a,n)=>{const t=n(825),s=n(203),r=n(293),i=n(688),o=n(158),m=n(449),c=n(269),l=n(926),{getLogger:p,createBulkInsertStreamBase:u,makeUniqueColumnNames:d,extractDbNameFromComposite:_,extractErrorLogData:g,getConflictingColumnNames:h}=global.DBGATE_PACKAGES["dbgate-tools"];let b;const y=p("postreDriver");function f(e){try{const a=Buffer.from(e,"hex");return o.Geometry.parse(a).toWkt()}catch(a){return e}}function N(e,a){if(!a?.length)return e;for(const n of a){const{columnName:a,dataTypeName:t}=n;"geography"==t?e[a]=f(e[a]):"bytea"==t&&e[a]&&(e[a]={$binary:{base64:Buffer.from(e[a]).toString("base64")}})}return e}function C(e,a){if(!e||!e.fields)return[];const{typeIdToName:n={}}=a,t=e.fields.map((e=>({columnName:e.name,dataTypeId:e.dataTypeID,dataTypeName:n[e.dataTypeID],tableId:e.tableID})));return d(t),t}function E(e,a){return t.zipObject(a.map((e=>e.columnName)),e)}m.types.setTypeParser(1082,"text",(e=>e)),m.types.setTypeParser(1114,"text",(e=>e)),m.types.setTypeParser(1184,"text",(e=>e)),m.types.setTypeParser(20,"text",(e=>{const a=parseInt(e);return Number.isSafeInteger(a)?a:{$bigint:e}})),m.types.setTypeParser(1700,"text",(e=>({$decimal:e})));const O=r.map((e=>({...e,analyserClass:i,async connect(a){const{conid:n,engine:s,server:r,port:i,user:o,password:c,database:l,databaseUrl:p,useDatabaseUrl:u,ssl:d,isReadOnly:g,authType:h,socketPath:y}=a;let f=null,N=null;if("awsIam"==h&&(N=await b.getAwsIamToken(a)),"redshift@dbgate-plugin-postgres"==s){let e=p;e&&e.startsWith("jdbc:redshift://")&&(e=e.substring(16)),e=o&&c?`postgres://${o}:${c}@${e}`:o?`postgres://${o}@${e}`:`postgres://${e}`,f={connectionString:e}}else f=u?{connectionString:p,application_name:"DbGate"}:{host:"socket"==h?y||e.defaultSocketPath:r,port:"socket"==h?null:i,user:o,password:N||c,database:_(l)||"postgres",ssl:"awsIam"==h?d||{rejectUnauthorized:!1}:d,application_name:"DbGate"};const C=new m.Client(f);await C.connect();const E={client:C,database:l,conid:n},O=await this.query(E,"SELECT oid, typname FROM pg_type WHERE typname in ('geography', 'bytea')"),S=t.fromPairs(O.rows.map((e=>[e.oid,e.typname])));return E.typeIdToName=S,g&&await this.query(E,"SET SESSION CHARACTERISTICS AS TRANSACTION READ ONLY"),E},close:async e=>e.client.end(),async query(e,a){if(null==a)return{rows:[],columns:[]};const n=await e.client.query({text:a,rowMode:"array"}),t=C(n,e),s=Object.values(e.typeIdToName??{}),r=t.filter((e=>s.includes(e.dataTypeName)));return{rows:(n.rows||[]).map((e=>E(e,t))).map((e=>N(e,r))),columns:t}},stream(a,n,s){const r=e=>{const{message:a,where:n}=e;s.info({message:a,procedure:n,time:new Date,severity:"info",detail:e})},i=new m.Query({text:n,rowMode:"array"});let o=!1,c=null;a.client.on("notice",r),i.on("row",(n=>{if(o||(columns=C(i._result,a),columns&&columns.length>0&&s.recordset(columns,{engine:e.engine}),o=!0),!c){const e=Object.values(a.typeIdToName??{});c=columns.filter((a=>e.includes(a.dataTypeName)))}const t=N(E(n,columns),c);s.row(t)})),i.on("end",(()=>{const{command:e,rowCount:n}=i._result||{};"SELECT"!=e&&t.isNumber(n)&&s.info({message:`${n} rows affected`,time:new Date,severity:"info",rowsAffected:n}),o||(columns=C(i._result,a),columns&&columns.length>0&&s.recordset(columns),o=!0),a.client.off("notice",r),s.done()})),i.on("error",(e=>{y.error(g(e,this.getLogDbInfo(a)),"DBGM-00201 Stream error");const{message:t,position:i,procName:o}=e;let m=null;i&&(m=n.substring(0,parseInt(i)).replace(/[^\n]/g,"").length),s.info({message:t,line:m,procedure:o,time:new Date,severity:"error"}),a.client.off("notice",r),s.done()})),a.client.query(i)},async getVersion(e){const{rows:a}=await this.query(e,"SELECT version()"),{version:n}=a[0];let t=!1;try{await this.query(e,"SELECT MD5('test')")}catch(e){t=!0}const s=n.toLowerCase().includes("cockroachdb"),r=n.toLowerCase().includes("redshift"),i=!s&&!r,o=n.match(/([\d\.]+)/);let m=null,c=null,l=null;if(o){s&&(m=`CockroachDB ${o[1]}`),r&&(m=`Redshift ${o[1]}`),i&&(m=`PostgreSQL ${o[1]}`);const e=o[1].split(".");e[0]&&(c=parseInt(e[0])),e[1]&&(l=parseInt(e[1]))}return{version:n,versionText:m,isPostgres:i,isCockroach:s,isRedshift:r,versionMajor:c,versionMinor:l,isFipsComplianceOn:t}},async readQuery(a,n,t){const r=new m.Query({text:n,rowMode:"array"});let i=!1,o=null,c=null;const l=new s.PassThrough({objectMode:!0,highWaterMark:100});return r.on("row",(n=>{if(i||(o=C(r._result,a),l.write({__isStreamHeader:!0,engine:e.engine,...t||{columns:o}}),i=!0),!c){const e=Object.values(a.typeIdToName??{});c=o.filter((a=>e.includes(a.dataTypeName)))}const s=N(E(n,o),c);l.write(s)})),r.on("end",(()=>{i||(o=C(r._result,a),l.write({__isStreamHeader:!0,...t||{columns:o}}),i=!0),l.end()})),r.on("error",(e=>{console.error(e),l.end()})),a.client.query(r),l},async writeTable(e,a,n){return u(this,s,e,a,n)},async serverSummary(e){const[a,n,t]=await Promise.all([this.listProcesses(e),this.listVariables(e),this.listDatabasesFull(e)]);return{processes:a,variables:n,databases:{rows:t,columns:[{header:"Name",fieldName:"name",type:"data"},{header:"Size on disk",fieldName:"sizeOnDisk",type:"fileSize"}]}}},async killProcess(e,a){return await this.query(e,`SELECT pg_terminate_backend(${parseInt(a)})`)},async listDatabasesFull(e){const{rows:a}=await this.query(e,l.listDatabases);return a},async listDatabases(e){const{rows:a}=await this.query(e,"SELECT datname AS name FROM pg_database WHERE datistemplate = false");return a},async listVariables(e){return(await this.query(e,l.listVariables)).rows.map((e=>({variable:e.variable,value:e.value})))},async listProcesses(e){return(await this.query(e,l.listProcesses)).rows.map((e=>({processId:e.processId,connectionId:e.connectionId,client:e.client,operation:e.operation,namespace:null,command:e.operation,runningTime:e.runningTime?Math.max(Number(e.runningTime),0):null,state:e.state,waitingFor:e.waitingFor,locks:null,progress:null})))},getAuthTypes(){const e=[{title:"Host and port",name:"hostPort"},{title:"Socket",name:"socket"}];return b.supportsAwsIam()&&e.push({title:"AWS IAM",name:"awsIam"}),e},async listSchemas(e){const a=await this.query(e,'select oid as "object_id", nspname as "schema_name" from pg_catalog.pg_namespace'),n=await this.query(e,"SELECT current_schema"),t=n.rows[0]?.current_schema?.trim();return y.debug(this.getLogDbInfo(e),`DBGM-00142 Loaded ${a.rows.length} postgres schemas`),a.rows.map((e=>({schemaName:e.schema_name,objectId:e.object_id,isDefault:e.schema_name==t})))},writeQueryFromStream:(e,a)=>e.client.query(c.from(a))})));O.initialize=e=>{b=e.authProxy},e.exports=O},237:(e,a,n)=>{const t=n(378);e.exports={packageName:"dbgate-plugin-postgres",drivers:t,initialize(e){t.initialize(e)}}},925:e=>{e.exports='\nselect \n\ttable_schema as "schema_name", \n\ttable_name as "pure_name", \n\tcolumn_name as "column_name",\n\tis_nullable as "is_nullable",\n\tdata_type as "data_type",\n\tcharacter_maximum_length as "char_max_length",\n\tnumeric_precision as "numeric_precision",\n\tnumeric_scale as "numeric_scale",\n\tcolumn_default as "default_value"\nfrom information_schema.columns\nwhere \n\t\ttable_schema !~ \'^_timescaledb_\' \n\t\tand (\n\t\t\t(\'tables:\' || table_schema || \'.\' || table_name) =OBJECT_ID_CONDITION\n\t\t\tor\n\t\t\t(\'views:\' || table_schema || \'.\' || table_name) =OBJECT_ID_CONDITION\n\t\t)\n\t\tand table_schema =SCHEMA_NAME_CONDITION\norder by ordinal_position\n'},883:e=>{e.exports="\nselect \n\tbasecol.constraint_name,\n\tbasecol.constraint_schema,\n\tbasecol.column_name as \"column_name\",\n\tbasecol.table_schema,\n\tbasecol.table_name,\n\tbasecol.ordinal_position\nfrom information_schema.key_column_usage basecol\nwhere ('tables:' || basecol.table_schema || '.' || basecol.table_name) =OBJECT_ID_CONDITION and basecol.table_schema =SCHEMA_NAME_CONDITION\n"},958:e=>{e.exports="\nSELECT \n nsp.nspname AS table_schema,\n rel.relname AS table_name,\n con.conname AS constraint_name,\n nsp2.nspname AS ref_table_schema,\n rel2.relname AS ref_table_name,\n conpk.conname AS unique_constraint_name\nFROM pg_constraint con\nJOIN pg_class rel ON rel.oid = con.conrelid\nJOIN pg_namespace nsp ON nsp.oid = rel.relnamespace\nJOIN pg_class rel2 ON rel2.oid = con.confrelid\nJOIN pg_namespace nsp2 ON nsp2.oid = rel2.relnamespace\nJOIN pg_constraint conpk \n ON conpk.conrelid = con.confrelid \n AND conpk.conkey = con.confkey\n AND conpk.contype IN ('p','u') -- 'p' = primary key, 'u' = unique constraint\nWHERE con.contype = 'f' AND ('tables:' || nsp.nspname || '.' || rel.relname) =OBJECT_ID_CONDITION AND nsp.nspname =SCHEMA_NAME_CONDITION\n;\n"},477:e=>{e.exports='\nselect \n\tf_table_schema as "schema_name", \n\tf_table_name as "pure_name", \n\tf_geography_column as "column_name"\nfrom public.geography_columns\nwhere (\'tables:\' || f_table_schema || \'.\' || f_table_name) =OBJECT_ID_CONDITION and f_table_schema =SCHEMA_NAME_CONDITION\n'},981:e=>{e.exports='\nselect \n\tf_table_schema as "schema_name", \n\tf_table_name as "pure_name", \n\tf_geometry_column as "column_name"\nfrom public.geometry_columns\nwhere (\'tables:\' || f_table_schema || \'.\' || f_table_name) =OBJECT_ID_CONDITION and f_table_schema =SCHEMA_NAME_CONDITION\n'},926:(e,a,n)=>{const t=n(925),s=n(382),r=n(432),i=n(748),o=n(916),m=n(864),c=n(124),l=n(701),p=n(389),u=n(422),d=n(474),_=n(689),g=n(171),h=n(981),b=n(477),y=n(754),f=n(958),N=n(377),C=n(264),E=n(447),O=n(823),S=n(883);e.exports={columns:t,tableList:s,viewModifications:r,primaryKeys:o,fk_keyColumnUsage:S,foreignKeys:f,views:m,routines:l,routineModifications:p,matviews:c,matviewModifications:i,matviewColumns:u,indexes:d,indexcols:_,uniqueNames:g,geometryColumns:h,geographyColumns:b,proceduresParameters:y,triggers:N,listDatabases:C,listVariables:E,listProcesses:O}},689:e=>{e.exports="\n select\n a.attname as \"column_name\",\n a.attnum as \"attnum\",\n a.attrelid as \"oid\"\n from\n pg_class t,\n pg_class i,\n pg_attribute a,\n pg_index ix,\n pg_namespace c\n where\n t.oid = ix.indrelid\n and a.attnum = ANY(ix.indkey)\n and a.attrelid = t.oid\n and i.oid = ix.indexrelid\n and t.relkind = 'r'\n and ix.indisprimary = false\n and t.relnamespace = c.oid\n and c.nspname != 'pg_catalog'\n and ('tables:' || c.nspname || '.' || t.relname) =OBJECT_ID_CONDITION\n and c.nspname =SCHEMA_NAME_CONDITION\n order by\n t.relname\n"},474:e=>{e.exports='\n select\n t.relname as "table_name",\n c.nspname as "schema_name",\n i.relname as "index_name",\n ix.indisprimary as "is_primary",\n ix.indisunique as "is_unique",\n ix.indkey as "indkey",\n ix.indoption as "indoption",\n t.oid as "oid"\n from\n pg_class t,\n pg_class i,\n pg_index ix,\n pg_namespace c\n where\n t.oid = ix.indrelid\n and i.oid = ix.indexrelid\n and t.relkind = \'r\'\n and ix.indisprimary = false\n and t.relnamespace = c.oid\n and c.nspname != \'pg_catalog\'\n and (\'tables:\' || c.nspname || \'.\' || t.relname) =OBJECT_ID_CONDITION\n and c.nspname =SCHEMA_NAME_CONDITION\n order by\n t.relname\n'},264:e=>{e.exports='\nSELECT \n "datname" AS "name",\n pg_database_size("datname") AS "sizeOnDisk",\n 0 AS "tableCount",\n 0 AS "viewCount", \n 0 AS "matviewCount"\nFROM "pg_database" \nWHERE "datistemplate" = false\nORDER BY pg_database_size("datname") DESC\n'},823:e=>{e.exports='\nSELECT \n "pid" AS "processId",\n "application_name" AS "client",\n "client_addr" AS "connectionId",\n "state" AS "state",\n "query" AS "operation",\n EXTRACT(EPOCH FROM (NOW() - "state_change")) AS "runningTime",\n "wait_event" IS NOT NULL AS "waitingFor"\nFROM "pg_stat_activity" \nWHERE "state" IS NOT NULL\nORDER BY "pid"\n'},447:e=>{e.exports='\nSELECT "name" AS "variable", "setting" AS "value" \nFROM "pg_settings" \nORDER BY "name"\n'},422:e=>{e.exports='\nSELECT pg_namespace.nspname AS "schema_name"\n , pg_class.relname AS "pure_name"\n , pg_attribute.attname AS "column_name"\n , pg_catalog.format_type(pg_attribute.atttypid, pg_attribute.atttypmod) AS "data_type"\nFROM pg_catalog.pg_class\n INNER JOIN pg_catalog.pg_namespace\n ON pg_class.relnamespace = pg_namespace.oid\n INNER JOIN pg_catalog.pg_attribute\n ON pg_class.oid = pg_attribute.attrelid\n-- Keeps only materialized views, and non-db/catalog/index columns \nWHERE pg_class.relkind = \'m\'\n AND pg_attribute.attnum >= 1\n AND (\'matviews:\' || pg_namespace.nspname || \'.\' || pg_class.relname) =OBJECT_ID_CONDITION\n AND pg_namespace.nspname =SCHEMA_NAME_CONDITION\n\nORDER BY pg_attribute.attnum\n'},748:e=>{e.exports='\nselect \n matviewname as "pure_name",\n schemaname as "schema_name",\n $md5Function(definition) as "hash_code"\nfrom\n pg_catalog.pg_matviews WHERE schemaname NOT LIKE \'pg_%\' AND schemaname =SCHEMA_NAME_CONDITION\n'},124:e=>{e.exports='\nselect \n matviewname as "pure_name",\n schemaname as "schema_name",\n definition as "definition",\n $md5Function(definition) as "hash_code"\nfrom\n pg_catalog.pg_matviews WHERE schemaname NOT LIKE \'pg_%\' \n and (\'matviews:\' || schemaname || \'.\' || matviewname) =OBJECT_ID_CONDITION\n and schemaname =SCHEMA_NAME_CONDITION\n'},916:e=>{e.exports='\nSELECT\n n.nspname AS "constraint_schema",\n c.conname AS "constraint_name",\n n.nspname AS "schema_name",\n t.relname AS "pure_name",\n a.attname AS "column_name"\nFROM pg_catalog.pg_constraint AS c\nJOIN pg_catalog.pg_class AS t\n ON t.oid = c.conrelid\nJOIN pg_catalog.pg_namespace AS n\n ON n.oid = t.relnamespace\nJOIN LATERAL unnest(c.conkey) WITH ORDINALITY AS cols(attnum, ordinal_position)\n ON TRUE\nJOIN pg_catalog.pg_attribute AS a\n ON a.attrelid = t.oid\n AND a.attnum = cols.attnum\nWHERE \n c.contype = \'p\' -- PRIMARY KEY\n AND n.nspname !~ \'^_timescaledb_\' \n AND (\'tables:\' || n.nspname || \'.\' || t.relname) =OBJECT_ID_CONDITION\n AND n.nspname =SCHEMA_NAME_CONDITION\nORDER BY cols.ordinal_position\n'},754:e=>{e.exports="\nSELECT \n proc.specific_schema AS schema_name,\n proc.routine_name AS pure_name,\n proc.routine_type as routine_type,\n args.parameter_name AS parameter_name,\n args.parameter_mode,\n args.data_type AS data_type,\n args.ordinal_position AS parameter_index,\n args.parameter_mode AS parameter_mode\nFROM \n information_schema.routines proc \nLEFT JOIN \n information_schema.parameters args\n ON proc.specific_schema = args.specific_schema\n AND proc.specific_name = args.specific_name\nWHERE \n proc.specific_schema NOT IN ('pg_catalog', 'information_schema') -- Exclude system schemas\n AND args.parameter_name IS NOT NULL\n AND proc.routine_type IN ('PROCEDURE', 'FUNCTION') -- Filter for procedures\n AND proc.specific_schema !~ '^_timescaledb_' \n AND proc.specific_schema =SCHEMA_NAME_CONDITION\n AND (\n (routine_type = 'PROCEDURE' AND ('procedures:' || proc.specific_schema || '.' || routine_name) =OBJECT_ID_CONDITION)\n OR\n (routine_type = 'FUNCTION' AND ('functions:' || proc.specific_schema || '.' || routine_name) =OBJECT_ID_CONDITION)\n )\nORDER BY \n schema_name,\n args.ordinal_position;\n"},389:e=>{e.exports='\nselect \n routine_name as "pure_name",\n routine_schema as "schema_name",\n $md5Function(routine_definition) as "hash_code",\n routine_type as "object_type"\nfrom\n information_schema.routines where routine_schema !~ \'^_timescaledb_\' \n and routine_type in (\'PROCEDURE\', \'FUNCTION\') and routine_schema =SCHEMA_NAME_CONDITION\n'},701:e=>{e.exports="\nselect \n routine_name as \"pure_name\",\n routine_schema as \"schema_name\",\n max(routine_definition) as \"definition\",\n max($md5Function(routine_definition)) as \"hash_code\",\n routine_type as \"object_type\",\n $typeAggFunc(data_type $typeAggParam) as \"data_type\",\n max(external_language) as \"language\"\nfrom\n information_schema.routines where routine_schema !~ '^_timescaledb_' \n and routine_schema =SCHEMA_NAME_CONDITION\n and (\n (routine_type = 'PROCEDURE' and ('procedures:' || routine_schema || '.' || routine_name) =OBJECT_ID_CONDITION)\n or\n (routine_type = 'FUNCTION' and ('functions:' || routine_schema || '.' || routine_name) =OBJECT_ID_CONDITION)\n )\n group by routine_name, routine_schema, routine_type\n"},382:e=>{e.exports="\nselect infoTables.table_schema as \"schema_name\", infoTables.table_name as \"pure_name\", \n pg_relation_size('\"'||infoTables.table_schema||'\".\"'||infoTables.table_name||'\"') as \"size_bytes\"\nfrom information_schema.tables infoTables \nwhere infoTables.table_type not like '%VIEW%' \n and ('tables:' || infoTables.table_schema || '.' || infoTables.table_name) =OBJECT_ID_CONDITION\nand infoTables.table_schema <> 'pg_internal'\nand infoTables.table_schema !~ '^_timescaledb_'\nand infoTables.table_schema =SCHEMA_NAME_CONDITION\n"},377:e=>{e.exports="\nSELECT \n t.oid AS trigger_id,\n t.tgname AS trigger_name,\n n.nspname AS schema_name,\n c.relname AS table_name,\n p.proname AS function_name,\n t.tgtype AS original_tgtype,\n CASE \n WHEN t.tgtype & 1 = 1 THEN 'ROW' \n ELSE 'STATEMENT' \n END AS trigger_level,\n COALESCE(\n CASE WHEN (tgtype::int::bit(7) & b'0000010')::int = 0 THEN NULL ELSE 'BEFORE' END,\n CASE WHEN (tgtype::int::bit(7) & b'0000010')::int = 0 THEN 'AFTER' ELSE NULL END,\n CASE WHEN (tgtype::int::bit(7) & b'1000000')::int = 0 THEN NULL ELSE 'INSTEAD OF' END,\n ''\n )::text as trigger_timing, \n (CASE WHEN (tgtype::int::bit(7) & b'0000100')::int = 0 THEN '' ELSE 'INSERT' END) ||\n (CASE WHEN (tgtype::int::bit(7) & b'0001000')::int = 0 THEN '' ELSE 'DELETE' END) ||\n (CASE WHEN (tgtype::int::bit(7) & b'0010000')::int = 0 THEN '' ELSE 'UPDATE' END) ||\n (CASE WHEN (tgtype::int::bit(7) & b'0100000')::int = 0 THEN '' ELSE 'TRUNCATE' END)\n as event_type,\n pg_get_triggerdef(t.oid) AS definition\nFROM \n pg_trigger t\nJOIN \n pg_class c ON c.oid = t.tgrelid\nJOIN \n pg_namespace n ON n.oid = c.relnamespace\nJOIN \n pg_proc p ON p.oid = t.tgfoid\nWHERE \n NOT t.tgisinternal AND n.nspname =SCHEMA_NAME_CONDITION\n"},171:e=>{e.exports="\n select cnt.conname as \"constraint_name\" from pg_constraint cnt \n inner join pg_namespace c on c.oid = cnt.connamespace\n where cnt.contype = 'u' and c.nspname =SCHEMA_NAME_CONDITION\n"},432:e=>{e.exports="\nselect \n table_name as \"pure_name\",\n table_schema as \"schema_name\",\n $md5Function(view_definition) as \"hash_code\"\nfrom\n information_schema.views where table_schema != 'information_schema' and table_schema != 'pg_catalog' and table_schema !~ '^_timescaledb_' and table_schema =SCHEMA_NAME_CONDITION\n"},864:e=>{e.exports='\nselect \n table_name as "pure_name",\n table_schema as "schema_name",\n view_definition as "create_sql",\n $md5Function(view_definition) as "hash_code"\nfrom\n information_schema.views \nwhere table_schema !~ \'^_timescaledb_\' and table_schema =SCHEMA_NAME_CONDITION\n and (\'views:\' || table_schema || \'.\' || table_name) =OBJECT_ID_CONDITION\n'},197:e=>{const{SqlDumper:a,arrayToHexString:n,testEqualTypes:t}=global.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends a{transform(e,a){switch(e){case"GROUP:YEAR":case"YEAR":this.put("^extract(^year ^from %c)",a);break;case"MONTH":this.put("^extract(^month ^from %c)",a);break;case"DAY":this.put("^extract(^day ^from %c)",a);break;case"GROUP:MONTH":this.put("^to_char(%c, '%s')",a,"YYYY-MM");break;case"GROUP:DAY":this.put("^to_char(%c, '%s')",a,"YYYY-MM-DD");break;default:a()}}dropDatabase(e){this.putCmd("^drop ^database %i ^with(^force)",e)}dropRecreatedTempTable(e){this.putCmd("^drop ^table %i ^cascade",e)}renameTable(e,a){this.putCmd("^alter ^table %f ^rename ^to %i",e,a)}renameSqlObject(e,a){this.putCmd("^alter %k %f ^rename ^to %i",this.getSqlObjectSqlName(e.objectTypeField),e,a)}renameColumn(e,a){this.putCmd("^alter ^table %f ^rename ^column %i ^to %i",e,e.columnName,a)}dropTable(e,a={}){this.put("^drop ^table"),a.testIfExists&&this.put(" ^if ^exists"),this.put(" %f",e),this.endCommand()}enableConstraints(e,a){this.putCmd("^alter ^table %f %k ^trigger ^all",e,a?"enable":"disable")}columnDefinition(e,a){e.autoIncrement?this.put("^serial"):super.columnDefinition(e,a)}changeColumn(e,a,n){e.columnName!=a.columnName&&this.putCmd("^alter ^table %f ^rename ^column %i ^to %i",e,e.columnName,a.columnName),t(e,a)||this.putCmd("^alter ^table %f ^alter ^column %i ^type %s",e,a.columnName,a.dataType),e.defaultValue!=a.defaultValue&&(null==a.defaultValue?this.putCmd("^alter ^table %f ^alter ^column %i ^drop ^default",a,a.columnName):this.putCmd("^alter ^table %f ^alter ^column %i ^set ^default %s",a,a.columnName,a.defaultValue)),e.notNull!=a.notNull&&(e.notNull||this.fillNewNotNullDefaults(a),a.notNull?this.putCmd("^alter ^table %f ^alter ^column %i ^set ^not ^null",a,a.columnName):this.putCmd("^alter ^table %f ^alter ^column %i ^drop ^not ^null",a,a.columnName))}putValue(e){!0===e?this.putRaw("true"):!1===e?this.putRaw("false"):super.putValue(e)}putByteArrayValue(e){this.putRaw(`e'\\\\x${n(e)}'`)}selectScopeIdentity(e){const a=e.columns&&e.columns.find((e=>e.autoIncrement));this.put("^SELECT currval(pg_get_serial_sequence('%f','%s'))",e,a?a.columnName:null)}callableTemplate(e){const a=e=>{for(const a of e.filter((e=>"RETURN"!=e.parameterMode)))"IN"==a.parameterMode?(this.put("%s %s := :%s",a.parameterName,a.dataType,a.parameterName),this.endCommand()):(this.put("%s %s",a.parameterName,a.dataType),this.endCommand());this.put("&n")},n=(e,a)=>{this.putCollection(a,e||[],(e=>{this.putRaw(e.parameterName)}))};"procedures"==e.objectTypeField&&(this.put("^do $$&n"),this.put("^declare&n"),a(e.parameters),this.put("^begin&n"),this.put("^call %f(&>&n",e),n(e.parameters,",&n"),this.put("&<&n)"),this.endCommand(),this.put("&n"),this.put("^end $$"),this.endCommand()),"functions"==e.objectTypeField&&(this.put("^do $$&n"),this.put("^declare&n"),this.put("result %s",e.returnType),this.endCommand(),a(e.parameters),this.put("^begin&n"),this.put("result := %f(&>&n",e),n(e.parameters,",&n"),this.put("&<&n)"),this.endCommand(),this.put("&n"),this.put("^end $$"),this.endCommand())}}},293:(e,a,n)=>{const{driverBase:t}=global.DBGATE_PACKAGES["dbgate-tools"],s=n(197),{postgreSplitterOptions:r}=n(994),i=["GEOGRAPHY","GEOMETRY"],o={rangeSelect:!0,ilike:!0,defaultSchemaName:"public",multipleSchema:!0,stringEscapeChar:"'",fallbackDataType:"varchar",anonymousPrimaryKey:!1,enableConstraintsPerTable:!0,dropColumnDependencies:["dependencies"],quoteIdentifier:e=>'"'+e+'"',stringAgg:!0,createColumn:!0,dropColumn:!0,changeColumn:!0,createIndex:!0,dropIndex:!0,createForeignKey:!0,dropForeignKey:!0,createPrimaryKey:!0,dropPrimaryKey:!0,createUnique:!0,dropUnique:!0,createCheck:!0,dropCheck:!0,allowMultipleValuesInsert:!0,renameSqlObject:!0,filteredIndexes:!0,dropReferencesWhenDropTable:!0,requireStandaloneSelectForScopeIdentity:!0,predefinedDataTypes:["bigint","bigserial","bit","varbit","boolean","box","bytea","char(20)","varchar(250)","cidr","circle","date","double precision","inet","int","interval","json","jsonb","line","lseg","macaddr","macaddr8","money","numeric(10,2)","path","pg_lsn","pg_snapshot","point","polygon","real","smallint","smallserial","serial","text","time","timetz","timestamp","timestamptz","tsquery","tsvector","txid_snapshot","uuid","xml"],createColumnViewExpression:(e,a,n,t,s)=>a&&i.includes(a.toUpperCase())?{exprType:"call",func:"ST_AsText",alias:t||e,args:[{exprType:"column",columnName:e,source:n}]}:"uuid"==a?.toLowerCase()||"filter"==s&&a?.toLowerCase()?.startsWith("json")?{exprType:"unaryRaw",expr:{exprType:"column",source:n,columnName:e},afterSql:"::text",alias:t||e}:void 0},m={...t,supportsTransactions:!0,supportsIncrementalAnalysis:!0,dumperClass:s,dialect:o,getQuerySplitterOptions:e=>"editor"==e?{...r,ignoreComments:!0,preventSingleLineSplit:!0}:"import"==e?{...r,copyFromStdin:!0}:r,readOnlySessions:!0,databaseUrlPlaceholder:"e.g. postgresql://user:password@localhost:5432/default_database",showConnectionField:(e,a)=>{const n=["useDatabaseUrl","authType","user","isReadOnly","useSeparateSchemas"];return"awsIam"==a.authType&&n.push("awsRegion","secretAccessKey","accessKeyId"),"socket"==a.authType?n.push("socketPath"):a.useDatabaseUrl?n.push("databaseUrl"):n.push("server","port"),"awsIam"!=a.authType&&"socket"!=a.authType&&n.push("password"),a.useDatabaseUrl||n.push("defaultDatabase","singleDatabase"),n.includes(e)},beforeConnectionSave:e=>{const{databaseUrl:a}=e;if(a){const n=a.match(/\/([^/]+)($|\?)/);return{...e,singleDatabase:!!n,defaultDatabase:n?n[1]:null}}return e},__analyserInternals:{},getNewObjectTemplates:()=>[{label:"New view",sql:"CREATE VIEW myview\nAS\nSELECT * FROM table1"},{label:"New materialized view",sql:"CREATE MATERIALIZED VIEW myview\nAS\nSELECT * FROM table1"},{label:"New procedure",sql:"CREATE PROCEDURE myproc (arg1 INT)\nLANGUAGE SQL \nAS $$\n SELECT * FROM table1;\n$$"},{label:"New function (plpgsql)",sql:"CREATE FUNCTION myfunc (arg1 INT)\nRETURNS INT\nAS $$\nBEGIN\n RETURN 1;\nEND\n$$ LANGUAGE plpgsql;"},{label:"New trigger",sql:"CREATE TRIGGER trigger_name\nBEFORE INSERT ON table_name\nFOR EACH ROW\nEXECUTE FUNCTION function_name();"}],authTypeLabel:"Connection mode",defaultAuthTypeName:"hostPort",defaultSocketPath:"/var/run/postgresql",supportsDatabaseBackup:!0,supportsDatabaseRestore:!0,adaptDataType:e=>"datetime"==e?.toLowerCase()?"timestamp":e,getCliConnectionArgs(e){const a=[`--username=${e.user}`,`--host=${e.server}`];return e.port&&a.push(`--port=${e.port}`),a},getNativeOperationFormArgs:e=>"backup"==e?[{type:"checkbox",label:"Dump only data (without structure)",name:"dataOnly",default:!1},{type:"checkbox",label:"Dump schema only (no data)",name:"schemaOnly",default:!1},{type:"checkbox",label:"Use SQL insert instead of COPY for rows",name:"insert",default:!1},{type:"checkbox",label:"Prevent dumping of access privileges (grant/revoke)",name:"noPrivileges",default:!1},{type:"checkbox",label:"Do not output commands to set ownership of objects ",name:"noOwner",default:!1},{type:"text",label:"Custom arguments",name:"customArgs"}]:null,backupDatabaseCommand(e,a,n){const{outputFile:t,database:s,selectedTables:r,skippedTables:i,options:o,argsFormat:m}=a,c=n.pg_dump||"pg_dump",l=this.getCliConnectionArgs(e,n);if(l.push(`--file=${t}`),l.push("--verbose"),l.push(s),o.dataOnly&&l.push("--data-only"),o.schemaOnly&&l.push("--schema-only"),o.insert&&l.push("--insert"),o.noPrivileges&&l.push("--no-privileges"),o.noOwner&&l.push("--no-owner"),i.length>0)for(const e of r)l.push("spawn"==m?`--table="${e.schemaName}"."${e.pureName}"`:`--table='"${e.schemaName}"."${e.pureName}"'`);if(o.customArgs?.trim()){const e=o.customArgs.split(/\s+/).filter((e=>""!=e.trim()));l.push(...e)}return{command:c,args:l,env:{PGPASSWORD:e.password}}},restoreDatabaseCommand(e,a,n){const{inputFile:t,database:s}=a,r=n.psql||"psql",i=this.getCliConnectionArgs(e,n);return i.push(`--dbname=${s}`),i.push(`--file=${t}`),{command:r,args:i,env:{PGPASSWORD:e.password}}},transformNativeCommandMessage:e=>e.message.startsWith("INSERT ")||"SET"==e.message?null:e.message.startsWith("pg_dump: processing data for table")?{...e,severity:"info",message:e.message.replace("pg_dump: processing data for table","Processing table")}:e.message.toLowerCase().includes("error:")?{...e,severity:"error"}:{...e,severity:"debug"}},c={...m,supportsServerSummary:!0,engine:"postgres@dbgate-plugin-postgres",title:"PostgreSQL",defaultPort:5432,dialect:{...o,materializedViews:!0},icon:'<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="200" height="200" viewBox="0,0,256,256"><g fill="none" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(5.33333,5.33333)"><path d="M44.083,29.79c-0.183,-0.829 -0.935,-1.796 -2.452,-1.796c-0.31,0 -0.649,0.039 -1.035,0.119c-0.708,0.146 -1.311,0.217 -1.842,0.241c4.133,-7.04 6.816,-16.819 4.159,-20.214c-3.501,-4.473 -8.214,-5.141 -10.711,-5.141l-0.235,0.001c-0.929,0.015 -1.893,0.129 -2.863,0.339l-3.583,0.774c-0.488,-0.061 -0.985,-0.104 -1.503,-0.113h-0.03h-0.016l-0.152,-0.001c-1.593,0 -3.046,0.338 -4.341,0.973l-1.251,-0.493c-1.72,-0.678 -4.308,-1.485 -6.868,-1.485c-0.144,0 -0.287,0.003 -0.431,0.008c-2.522,0.091 -4.688,1.048 -6.265,2.767c-1.968,2.146 -2.864,5.285 -2.661,9.331c0.01,0.209 2.458,20.9 9.397,20.9h0.025l0.064,-0.001c0.901,-0.022 1.76,-0.384 2.563,-1.077c0.613,0.46 1.406,0.732 2.145,0.84c0.488,0.115 1.366,0.278 2.418,0.278c1.284,0 2.442,-0.263 3.44,-0.738c-0.001,0.88 -0.006,1.994 -0.016,3.418l-0.001,0.075l0.005,0.075c0.097,1.419 0.342,2.698 0.711,3.701c1.051,2.859 2.866,4.434 5.111,4.434c0.093,0 0.188,-0.003 0.284,-0.009c1.846,-0.114 3.717,-1.151 5.004,-2.772c1.393,-1.755 1.715,-3.607 1.839,-5.026l0.008,-0.087v-0.088v-4.079l0.103,0.01l0.436,0.038l0.042,0.004l0.042,0.002c0.124,0.006 0.252,0.008 0.381,0.008c1.507,0 3.362,-0.391 4.616,-0.974c1.199,-0.556 3.939,-2.084 3.463,-4.242z" fill-opacity="0" fill="#ffffff"></path><path d="M33,34c0,-0.205 0.012,-0.376 0.018,-0.565c-0.01,-0.251 -0.018,-0.435 -0.018,-0.435c0,0 0.012,-0.009 0.032,-0.022c0.149,-2.673 0.886,-3.703 1.675,-4.29c-0.11,-0.153 -0.237,-0.318 -0.356,-0.475c-0.333,-0.437 -0.748,-0.979 -1.192,-1.674l-0.082,-0.158c-0.067,-0.164 -0.229,-0.447 -0.435,-0.819c-1.183,-2.14 -3.645,-6.592 -1.96,-9.404c0.738,-1.232 2.122,-1.942 4.121,-2.117c-0.817,-2.323 -3.878,-7.926 -10.818,-8.041c-0.002,0 -0.004,0 -0.006,0c-6.041,-0.098 -8.026,5.392 -8.672,8.672c0.89,-0.377 1.906,-0.606 2.836,-0.606c0.014,0 0.029,0 0.043,0c2.29,0.017 3.865,1.239 4.323,3.354c0.335,1.552 0.496,2.91 0.492,4.153c-0.01,2.719 -0.558,4.149 -1.042,5.411l-0.154,0.408c-0.124,0.334 -0.255,0.645 -0.379,0.937c-0.126,0.298 -0.237,0.563 -0.318,0.802c0.484,0.11 0.864,0.265 1.125,0.38l0.151,0.066c0.047,0.02 0.094,0.043 0.137,0.069c0.848,0.516 1.376,1.309 1.489,2.233c0.061,0.498 0.051,3.893 0.03,6.855c0.087,1.285 0.305,2.364 0.593,3.146c0.409,1.114 1.431,3.241 3.394,3.119c1.37,-0.085 2.687,-0.919 3.561,-2.019c0.938,-1.181 1.284,-2.487 1.414,-3.958v-5.022z" fill="#0277bd"></path><path d="M15.114,28.917c-1.613,-1.683 -2.399,-3.947 -2.104,-6.056c0.285,-2.035 0.124,-4.027 0.037,-5.098c-0.029,-0.357 -0.048,-0.623 -0.047,-0.77c0,-0.008 0.002,-0.015 0.003,-0.023c0,-0.004 -0.002,-0.007 -0.002,-0.011c0.121,-3.021 1.286,-7.787 4.493,-10.62c-1.562,-0.615 -4.106,-1.426 -6.494,-1.339c-3.742,0.136 -7.364,2.724 -7,10c0.137,2.73 3.222,19.103 7.44,19c0.603,-0.015 1.229,-0.402 1.872,-1.176c1.017,-1.223 2.005,-2.332 2.708,-3.104c-0.315,-0.239 -0.619,-0.503 -0.906,-0.803zM37.023,14.731c0.015,0.154 0.002,0.286 -0.022,0.408c0.031,0.92 -0.068,1.813 -0.169,2.677c-0.074,0.636 -0.15,1.293 -0.171,1.952c-0.021,0.645 0.07,1.282 0.166,1.956c0.225,1.578 0.459,3.359 -0.765,5.437c0.225,0.296 0.423,0.571 0.581,0.837c4.61,-7.475 6.468,-16.361 4.695,-18.626c-2.683,-3.428 -6.397,-4.42 -9.339,-4.372c-0.921,0.015 -1.758,0.139 -2.473,0.294c5.076,2.46 7.337,7.732 7.497,9.437zM41,30.071c-2.665,0.55 -3.947,0.257 -4.569,-0.126c-0.1,0.072 -0.2,0.133 -0.293,0.19c-0.372,0.225 -0.961,0.583 -1.105,2.782c0.083,0.016 0.156,0.025 0.246,0.044l0.435,0.039c1.32,0.06 3.049,-0.31 4.063,-0.781c2.185,-1.014 3.376,-2.592 1.223,-2.148zM22.023,32.119c-0.037,-0.298 -0.198,-0.539 -0.492,-0.732l-0.108,-0.047c-0.361,-0.159 -0.77,-0.34 -1.423,-0.34h-0.004c-0.127,0.01 -0.253,0.019 -0.38,0.019c-0.052,0 -0.103,-0.007 -0.155,-0.009c-0.474,0.365 -1.148,0.647 -2.816,0.99c-2.98,0.759 -1.221,1.655 -0.078,1.794c1.106,0.277 3.735,0.614 5.481,-0.809c-0.005,-0.448 -0.013,-0.756 -0.025,-0.866zM20.681,18.501c-0.292,0.302 -0.753,0.566 -1.262,0.484c-0.828,-0.134 -1.463,-1.133 -1.417,-1.508v0c0.044,-0.374 0.751,-0.569 1.578,-0.435c0.287,0.047 0.548,0.128 0.768,0.228c-0.32,-0.688 -0.899,-1.085 -1.782,-1.182c-1.565,-0.174 -3.226,0.644 -3.56,1.097c0.007,0.11 0.02,0.251 0.033,0.417c0.093,1.147 0.265,3.284 -0.05,5.537c-0.208,1.485 0.393,3.169 1.567,4.395c0.757,0.79 1.641,1.29 2.513,1.438c0.111,-0.478 0.309,-0.944 0.513,-1.425c0.113,-0.265 0.233,-0.547 0.346,-0.852l0.162,-0.427c0.443,-1.155 0.9,-2.35 0.909,-4.703c0.004,-0.905 -0.107,-1.938 -0.318,-3.064zM34.847,22.007c-0.104,-0.729 -0.211,-1.484 -0.185,-2.303c0.023,-0.742 0.105,-1.442 0.184,-2.119c0.062,-0.533 0.11,-1.045 0.138,-1.55c-1.289,0.107 -2.145,0.479 -2.551,1.108c0.168,-0.057 0.358,-0.102 0.568,-0.129c0.892,-0.116 1.543,0.141 1.618,0.637c0.055,0.363 -0.253,0.705 -0.388,0.836c-0.277,0.269 -0.626,0.442 -0.981,0.488c-0.064,0.008 -0.129,0.012 -0.192,0.012c-0.353,0 -0.69,-0.121 -0.949,-0.3c0.112,1.973 1.567,4.612 2.283,5.907c0.153,0.277 0.271,0.498 0.369,0.688c0.393,-1.119 0.248,-2.139 0.086,-3.275z" fill="#0277bd"></path></g></g></svg>',dialectByVersion:e=>e?{...o,materializedViews:e&&null!=e.versionMajor&&null!=e.versionMinor&&(e.versionMajor>9||9==e.versionMajor||e.versionMinor>=3),isFipsComplianceOn:e.isFipsComplianceOn}:o},l={...m,supportsServerSummary:!0,engine:"cockroach@dbgate-plugin-postgres",title:"CockroachDB",defaultPort:26257,dialect:{...o,materializedViews:!0,dropColumnDependencies:["primaryKey","dependencies"],dropPrimaryKey:!1},__analyserInternals:{},icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1216 1216" preserveAspectRatio="none"><defs><linearGradient id="logoGradient" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#6A3BFF"/><stop offset="50%" stop-color="#2E6CFF"/><stop offset="100%" stop-color="#21E6D6"/></linearGradient></defs><path fill="url(#logoGradient)" d="M 602.142 194.554 C 602.924 194.946 605.532 195.734 605.934 195.47 C 611.2 192.006 618.7 187.368 623.854 184.227 C 660.266 162.342 699.354 145.255 740.147 133.392 C 803.3 114.439 874.321 105.199 940.302 110.373 C 951.886 111.244 963.442 112.453 974.955 113.997 C 985.529 115.504 1004.69 118.906 1014.82 118.489 L 1015.34 118.465 C 1013.38 139.181 1004.56 159.848 1003.11 176.387 C 930.665 163.406 861.372 163.08 789.939 180.33 C 779.674 182.808 768.846 186.442 758.643 188.418 L 757.774 188.582 C 750.444 192.26 730.953 197.566 721.874 201.364 C 702.142 209.62 674.841 221.148 656.683 232.361 C 664.44 239.704 673.844 246.602 681.162 253.467 C 701.644 272.679 737.141 307.193 751.353 330.113 C 791.477 379.813 824.792 450.59 842.159 512.165 C 844.728 521.273 849.507 536.977 850.424 546.08 C 859.572 586.983 863.707 625.487 863.107 667.426 C 862.945 678.787 863.291 691.969 862.083 703.154 C 862.647 719.546 853.81 770.027 849.875 787.15 C 817.771 930.808 730.03 1055.88 605.878 1134.97 C 596.127 1129.24 586.056 1121.61 576.866 1114.9 C 531.272 1081.93 491.003 1042.16 457.465 996.979 C 370.216 879.542 332.66 732.5 352.908 587.608 C 372.443 452.546 444.303 315.101 554.457 232.719 C 474.98 183.972 364.943 160.784 272.709 168.11 C 252.039 169.751 228.723 173.096 208.142 176.366 L 195.254 120.695 C 215.988 114.774 264.639 110.498 287.038 109.611 C 377.235 106.038 466.191 124.994 547.716 163.612 C 560.179 169.515 592.937 185.964 602.142 194.554 z M 600.783 626.64 L 605.246 629.503 C 607.954 629.191 645.058 595.063 649.818 590.225 C 689.504 549.896 731.492 509.82 732.783 449.492 C 734.3 378.617 676.423 329.517 628.967 285.108 C 621.884 278.502 613.487 273.217 606.841 266.25 L 606.014 265.374 C 592.722 276.144 579.919 287.501 566.462 298.021 C 556.961 308.516 548.237 316.693 538.294 326.581 C 532.779 332.066 525.931 341.879 520.478 348.025 C 492.154 379.952 477.076 411.751 478.285 455.347 C 479.976 516.377 531.141 563.393 572.369 602.637 C 580.636 610.505 592.787 618.27 600.783 626.64 z M 647.455 686.6 C 643.014 698.923 637.697 712.975 636.365 726.018 C 633.475 754.335 634.49 785.882 634.496 814.507 L 634.705 972.314 C 634.732 991.435 635.761 1024.51 633.001 1042.47 C 712.113 968.011 769.322 882.202 792.973 775.116 C 797.835 753.104 803.459 724.271 803.976 701.755 C 803.472 694.089 804.971 682.488 804.863 674.359 C 804.632 656.838 805.121 634.695 803.242 617.51 C 801.083 595.757 797.514 574.168 792.557 552.878 C 789.903 541.531 784.654 525.86 783.217 515.414 C 779.194 526.425 769.403 540.684 762.576 550.455 C 748.203 571.025 731.041 592.04 713.972 610.555 C 697.963 627.92 677.626 644.446 662.16 662.432 C 659.255 665.811 650.048 682.025 647.455 686.6 z M 566.649 1031.91 C 570.138 1035.15 573.657 1038.35 577.206 1041.52 C 575.705 1021.19 576.795 984.286 576.808 962.442 L 576.891 808.643 C 576.896 746.673 583.791 691.499 532.942 645.219 C 492.743 608.633 455.741 565.331 428.123 518.419 C 427.876 517.999 427.114 517.724 426.674 517.533 C 420.694 548.029 412.574 573.891 408.648 606.016 C 394.786 726.125 424.793 847.198 493.143 946.932 C 509.674 971.46 544.155 1012.82 566.649 1031.91 z"/></svg>'},p={...m,supportsServerSummary:!0,dialect:{...o,stringAgg:!1},__analyserInternals:{skipIndexes:!0},engine:"redshift@dbgate-plugin-postgres",title:"Amazon Redshift",defaultPort:5439,premiumOnly:!0,databaseUrlPlaceholder:"e.g. redshift-cluster-1.xxxx.redshift.amazonaws.com:5439/dev",icon:'<svg enable-background="new 0 0 1615 1783.7" viewBox="0 0 1615 1783.7" xmlns="http://www.w3.org/2000/svg"><path d="m807.5 1363.8 678.3 161.5v-1270.5l-678.3 161.5z" fill="#205b97"/><path d="m1485.8 254.8 129.2 64.6v1141.3l-129.2 64.6zm-678.3 1109-678.3 161.5v-1270.5l678.3 161.5z" fill="#5193ce"/><path d="m129.2 254.8-129.2 64.6v1141.3l129.2 64.6z" fill="#205b97"/><path d="m979.8 1783.7 258.4-129.2v-1525.3l-258.4-129.2-79 847z" fill="#5193ce"/><path d="m635.2 1783.7-258.4-129.2v-1525.3l258.4-129.2 79 847z" fill="#205b97"/><path d="m635.2 0h348.1v1780.1h-348.1z" fill="#2e73b7"/></svg>',showConnectionField:(e,a)=>["databaseUrl","user","password","isReadOnly","useSeparateSchemas"].includes(e),beforeConnectionSave:e=>{const{databaseUrl:a}=e;if(a){const n=a.match(/\/([^/]+)$/);if(n)return{...e,singleDatabase:!0,defaultDatabase:n[1]}}return e}};e.exports=[c,l,p]},825:e=>{"use strict";e.exports=require("lodash")},449:e=>{"use strict";e.exports=require("pg")},269:e=>{"use strict";e.exports=require("pg-copy-streams")},158:e=>{"use strict";e.exports=require("wkx")},203:e=>{"use strict";e.exports=require("stream")}},a={},n=function n(t){var s=a[t];if(void 0!==s)return s.exports;var r=a[t]={exports:{}};return e[t](r,r.exports,n),r.exports}(237);module.exports=n})();
package/dist/frontend.js CHANGED
@@ -1 +1 @@
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,keepSemicolonInCommands:!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,keepSemicolonInCommands:!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=>{const{SqlDumper:t,arrayToHexString:s,testEqualTypes:a}=window.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends t{transform(e,t){switch(e){case"GROUP:YEAR":case"YEAR":this.put("^extract(^year ^from %c)",t);break;case"MONTH":this.put("^extract(^month ^from %c)",t);break;case"DAY":this.put("^extract(^day ^from %c)",t);break;case"GROUP:MONTH":this.put("^to_char(%c, '%s')",t,"YYYY-MM");break;case"GROUP:DAY":this.put("^to_char(%c, '%s')",t,"YYYY-MM-DD");break;default:t()}}dropDatabase(e){this.putCmd("^drop ^database %i ^with(^force)",e)}dropRecreatedTempTable(e){this.putCmd("^drop ^table %i ^cascade",e)}renameTable(e,t){this.putCmd("^alter ^table %f ^rename ^to %i",e,t)}renameSqlObject(e,t){this.putCmd("^alter %k %f ^rename ^to %i",this.getSqlObjectSqlName(e.objectTypeField),e,t)}renameColumn(e,t){this.putCmd("^alter ^table %f ^rename ^column %i ^to %i",e,e.columnName,t)}dropTable(e,t={}){this.put("^drop ^table"),t.testIfExists&&this.put(" ^if ^exists"),this.put(" %f",e),this.endCommand()}enableConstraints(e,t){this.putCmd("^alter ^table %f %k ^trigger ^all",e,t?"enable":"disable")}columnDefinition(e,t){e.autoIncrement?this.put("^serial"):super.columnDefinition(e,t)}changeColumn(e,t,s){e.columnName!=t.columnName&&this.putCmd("^alter ^table %f ^rename ^column %i ^to %i",e,e.columnName,t.columnName),a(e,t)||this.putCmd("^alter ^table %f ^alter ^column %i ^type %s",e,t.columnName,t.dataType),e.defaultValue!=t.defaultValue&&(null==t.defaultValue?this.putCmd("^alter ^table %f ^alter ^column %i ^drop ^default",t,t.columnName):this.putCmd("^alter ^table %f ^alter ^column %i ^set ^default %s",t,t.columnName,t.defaultValue)),e.notNull!=t.notNull&&(e.notNull||this.fillNewNotNullDefaults(t),t.notNull?this.putCmd("^alter ^table %f ^alter ^column %i ^set ^not ^null",t,t.columnName):this.putCmd("^alter ^table %f ^alter ^column %i ^drop ^not ^null",t,t.columnName))}putValue(e){!0===e?this.putRaw("true"):!1===e?this.putRaw("false"):super.putValue(e)}putByteArrayValue(e){this.putRaw(`e'\\\\x${s(e)}'`)}selectScopeIdentity(e){const t=e.columns&&e.columns.find((e=>e.autoIncrement));this.put("^SELECT currval(pg_get_serial_sequence('%f','%s'))",e,t?t.columnName:null)}callableTemplate(e){const t=e=>{for(const t of e.filter((e=>"RETURN"!=e.parameterMode)))"IN"==t.parameterMode?(this.put("%s %s := :%s",t.parameterName,t.dataType,t.parameterName),this.endCommand()):(this.put("%s %s",t.parameterName,t.dataType),this.endCommand());this.put("&n")},s=(e,t)=>{this.putCollection(t,e||[],(e=>{this.putRaw(e.parameterName)}))};"procedures"==e.objectTypeField&&(this.put("^do $$&n"),this.put("^declare&n"),t(e.parameters),this.put("^begin&n"),this.put("^call %f(&>&n",e),s(e.parameters,",&n"),this.put("&<&n)"),this.endCommand(),this.put("&n"),this.put("^end $$"),this.endCommand()),"functions"==e.objectTypeField&&(this.put("^do $$&n"),this.put("^declare&n"),this.put("result %s",e.returnType),this.endCommand(),t(e.parameters),this.put("^begin&n"),this.put("result := %f(&>&n",e),s(e.parameters,",&n"),this.put("&<&n)"),this.endCommand(),this.put("&n"),this.put("^end $$"),this.endCommand())}}},378:(e,t,s)=>{const{driverBase:a}=window.DBGATE_PACKAGES["dbgate-tools"],r=s(56),{postgreSplitterOptions:n}=s(994),i=["GEOGRAPHY","GEOMETRY"],l={rangeSelect:!0,ilike:!0,defaultSchemaName:"public",multipleSchema:!0,stringEscapeChar:"'",fallbackDataType:"varchar",anonymousPrimaryKey:!1,enableConstraintsPerTable:!0,dropColumnDependencies:["dependencies"],quoteIdentifier:e=>'"'+e+'"',stringAgg:!0,createColumn:!0,dropColumn:!0,changeColumn:!0,createIndex:!0,dropIndex:!0,createForeignKey:!0,dropForeignKey:!0,createPrimaryKey:!0,dropPrimaryKey:!0,createUnique:!0,dropUnique:!0,createCheck:!0,dropCheck:!0,allowMultipleValuesInsert:!0,renameSqlObject:!0,filteredIndexes:!0,dropReferencesWhenDropTable:!0,requireStandaloneSelectForScopeIdentity:!0,predefinedDataTypes:["bigint","bigserial","bit","varbit","boolean","box","bytea","char(20)","varchar(250)","cidr","circle","date","double precision","inet","int","interval","json","jsonb","line","lseg","macaddr","macaddr8","money","numeric(10,2)","path","pg_lsn","pg_snapshot","point","polygon","real","smallint","smallserial","serial","text","time","timetz","timestamp","timestamptz","tsquery","tsvector","txid_snapshot","uuid","xml"],createColumnViewExpression:(e,t,s,a,r)=>t&&i.includes(t.toUpperCase())?{exprType:"call",func:"ST_AsText",alias:a||e,args:[{exprType:"column",columnName:e,source:s}]}:"uuid"==t?.toLowerCase()||"filter"==r&&t?.toLowerCase()?.startsWith("json")?{exprType:"unaryRaw",expr:{exprType:"column",source:s,columnName:e},afterSql:"::text",alias:a||e}:void 0},o={...a,supportsTransactions:!0,supportsIncrementalAnalysis:!0,dumperClass:r,dialect:l,getQuerySplitterOptions:e=>"editor"==e?{...n,ignoreComments:!0,preventSingleLineSplit:!0}:"import"==e?{...n,copyFromStdin:!0}:n,readOnlySessions:!0,databaseUrlPlaceholder:"e.g. postgresql://user:password@localhost:5432/default_database",showConnectionField:(e,t)=>{const s=["useDatabaseUrl","authType","user","isReadOnly","useSeparateSchemas"];return"awsIam"==t.authType&&s.push("awsRegion","secretAccessKey","accessKeyId"),"socket"==t.authType?s.push("socketPath"):t.useDatabaseUrl?s.push("databaseUrl"):s.push("server","port"),"awsIam"!=t.authType&&"socket"!=t.authType&&s.push("password"),t.useDatabaseUrl||s.push("defaultDatabase","singleDatabase"),s.includes(e)},beforeConnectionSave:e=>{const{databaseUrl:t}=e;if(t){const s=t.match(/\/([^/]+)($|\?)/);return{...e,singleDatabase:!!s,defaultDatabase:s?s[1]:null}}return e},__analyserInternals:{},getNewObjectTemplates:()=>[{label:"New view",sql:"CREATE VIEW myview\nAS\nSELECT * FROM table1"},{label:"New materialized view",sql:"CREATE MATERIALIZED VIEW myview\nAS\nSELECT * FROM table1"},{label:"New procedure",sql:"CREATE PROCEDURE myproc (arg1 INT)\nLANGUAGE SQL \nAS $$\n SELECT * FROM table1;\n$$"},{label:"New function (plpgsql)",sql:"CREATE FUNCTION myfunc (arg1 INT)\nRETURNS INT\nAS $$\nBEGIN\n RETURN 1;\nEND\n$$ LANGUAGE plpgsql;"},{label:"New trigger",sql:"CREATE TRIGGER trigger_name\nBEFORE INSERT ON table_name\nFOR EACH ROW\nEXECUTE FUNCTION function_name();"}],authTypeLabel:"Connection mode",defaultAuthTypeName:"hostPort",defaultSocketPath:"/var/run/postgresql",supportsDatabaseBackup:!0,supportsDatabaseRestore:!0,adaptDataType:e=>"datetime"==e?.toLowerCase()?"timestamp":e,getCliConnectionArgs(e){const t=[`--username=${e.user}`,`--host=${e.server}`];return e.port&&t.push(`--port=${e.port}`),t},getNativeOperationFormArgs:e=>"backup"==e?[{type:"checkbox",label:"Dump only data (without structure)",name:"dataOnly",default:!1},{type:"checkbox",label:"Dump schema only (no data)",name:"schemaOnly",default:!1},{type:"checkbox",label:"Use SQL insert instead of COPY for rows",name:"insert",default:!1},{type:"checkbox",label:"Prevent dumping of access privileges (grant/revoke)",name:"noPrivileges",default:!1},{type:"checkbox",label:"Do not output commands to set ownership of objects ",name:"noOwner",default:!1},{type:"text",label:"Custom arguments",name:"customArgs"}]:null,backupDatabaseCommand(e,t,s){const{outputFile:a,database:r,selectedTables:n,skippedTables:i,options:l,argsFormat:o}=t,p=s.pg_dump||"pg_dump",u=this.getCliConnectionArgs(e,s);if(u.push(`--file=${a}`),u.push("--verbose"),u.push(r),l.dataOnly&&u.push("--data-only"),l.schemaOnly&&u.push("--schema-only"),l.insert&&u.push("--insert"),l.noPrivileges&&u.push("--no-privileges"),l.noOwner&&u.push("--no-owner"),i.length>0)for(const e of n)u.push("spawn"==o?`--table="${e.schemaName}"."${e.pureName}"`:`--table='"${e.schemaName}"."${e.pureName}"'`);if(l.customArgs?.trim()){const e=l.customArgs.split(/\s+/).filter((e=>""!=e.trim()));u.push(...e)}return{command:p,args:u,env:{PGPASSWORD:e.password}}},restoreDatabaseCommand(e,t,s){const{inputFile:a,database:r}=t,n=s.psql||"psql",i=this.getCliConnectionArgs(e,s);return i.push(`--dbname=${r}`),i.push(`--file=${a}`),{command:n,args:i,env:{PGPASSWORD:e.password}}},transformNativeCommandMessage:e=>e.message.startsWith("INSERT ")||"SET"==e.message?null:e.message.startsWith("pg_dump: processing data for table")?{...e,severity:"info",message:e.message.replace("pg_dump: processing data for table","Processing table")}:e.message.toLowerCase().includes("error:")?{...e,severity:"error"}:{...e,severity:"debug"}},p={...o,supportsServerSummary:!0,engine:"postgres@dbgate-plugin-postgres",title:"PostgreSQL",defaultPort:5432,dialect:{...l,materializedViews:!0},dialectByVersion:e=>e?{...l,materializedViews:e&&null!=e.versionMajor&&null!=e.versionMinor&&(e.versionMajor>9||9==e.versionMajor||e.versionMinor>=3),isFipsComplianceOn:e.isFipsComplianceOn}:l},u={...o,supportsServerSummary:!0,engine:"cockroach@dbgate-plugin-postgres",title:"CockroachDB",defaultPort:26257,dialect:{...l,materializedViews:!0,dropColumnDependencies:["primaryKey","dependencies"],dropPrimaryKey:!1},__analyserInternals:{}},m={...o,supportsServerSummary:!0,dialect:{...l,stringAgg:!1},__analyserInternals:{skipIndexes:!0},engine:"redshift@dbgate-plugin-postgres",title:"Amazon Redshift",defaultPort:5439,premiumOnly:!0,databaseUrlPlaceholder:"e.g. redshift-cluster-1.xxxx.redshift.amazonaws.com:5439/dev",showConnectionField:(e,t)=>["databaseUrl","user","password","isReadOnly","useSeparateSchemas"].includes(e),beforeConnectionSave:e=>{const{databaseUrl:t}=e;if(t){const s=t.match(/\/([^/]+)$/);if(s)return{...e,singleDatabase:!0,defaultDatabase:s[1]}}return e}};e.exports=[p,u,m]}},t={};function s(a){var r=t[a];if(void 0!==r)return r.exports;var n=t[a]={exports:{}};return e[a](n,n.exports,s),n.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-postgres",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,keepSemicolonInCommands:!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,keepSemicolonInCommands:!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=>{const{SqlDumper:t,arrayToHexString:s,testEqualTypes:a}=window.DBGATE_PACKAGES["dbgate-tools"];e.exports=class extends t{transform(e,t){switch(e){case"GROUP:YEAR":case"YEAR":this.put("^extract(^year ^from %c)",t);break;case"MONTH":this.put("^extract(^month ^from %c)",t);break;case"DAY":this.put("^extract(^day ^from %c)",t);break;case"GROUP:MONTH":this.put("^to_char(%c, '%s')",t,"YYYY-MM");break;case"GROUP:DAY":this.put("^to_char(%c, '%s')",t,"YYYY-MM-DD");break;default:t()}}dropDatabase(e){this.putCmd("^drop ^database %i ^with(^force)",e)}dropRecreatedTempTable(e){this.putCmd("^drop ^table %i ^cascade",e)}renameTable(e,t){this.putCmd("^alter ^table %f ^rename ^to %i",e,t)}renameSqlObject(e,t){this.putCmd("^alter %k %f ^rename ^to %i",this.getSqlObjectSqlName(e.objectTypeField),e,t)}renameColumn(e,t){this.putCmd("^alter ^table %f ^rename ^column %i ^to %i",e,e.columnName,t)}dropTable(e,t={}){this.put("^drop ^table"),t.testIfExists&&this.put(" ^if ^exists"),this.put(" %f",e),this.endCommand()}enableConstraints(e,t){this.putCmd("^alter ^table %f %k ^trigger ^all",e,t?"enable":"disable")}columnDefinition(e,t){e.autoIncrement?this.put("^serial"):super.columnDefinition(e,t)}changeColumn(e,t,s){e.columnName!=t.columnName&&this.putCmd("^alter ^table %f ^rename ^column %i ^to %i",e,e.columnName,t.columnName),a(e,t)||this.putCmd("^alter ^table %f ^alter ^column %i ^type %s",e,t.columnName,t.dataType),e.defaultValue!=t.defaultValue&&(null==t.defaultValue?this.putCmd("^alter ^table %f ^alter ^column %i ^drop ^default",t,t.columnName):this.putCmd("^alter ^table %f ^alter ^column %i ^set ^default %s",t,t.columnName,t.defaultValue)),e.notNull!=t.notNull&&(e.notNull||this.fillNewNotNullDefaults(t),t.notNull?this.putCmd("^alter ^table %f ^alter ^column %i ^set ^not ^null",t,t.columnName):this.putCmd("^alter ^table %f ^alter ^column %i ^drop ^not ^null",t,t.columnName))}putValue(e){!0===e?this.putRaw("true"):!1===e?this.putRaw("false"):super.putValue(e)}putByteArrayValue(e){this.putRaw(`e'\\\\x${s(e)}'`)}selectScopeIdentity(e){const t=e.columns&&e.columns.find((e=>e.autoIncrement));this.put("^SELECT currval(pg_get_serial_sequence('%f','%s'))",e,t?t.columnName:null)}callableTemplate(e){const t=e=>{for(const t of e.filter((e=>"RETURN"!=e.parameterMode)))"IN"==t.parameterMode?(this.put("%s %s := :%s",t.parameterName,t.dataType,t.parameterName),this.endCommand()):(this.put("%s %s",t.parameterName,t.dataType),this.endCommand());this.put("&n")},s=(e,t)=>{this.putCollection(t,e||[],(e=>{this.putRaw(e.parameterName)}))};"procedures"==e.objectTypeField&&(this.put("^do $$&n"),this.put("^declare&n"),t(e.parameters),this.put("^begin&n"),this.put("^call %f(&>&n",e),s(e.parameters,",&n"),this.put("&<&n)"),this.endCommand(),this.put("&n"),this.put("^end $$"),this.endCommand()),"functions"==e.objectTypeField&&(this.put("^do $$&n"),this.put("^declare&n"),this.put("result %s",e.returnType),this.endCommand(),t(e.parameters),this.put("^begin&n"),this.put("result := %f(&>&n",e),s(e.parameters,",&n"),this.put("&<&n)"),this.endCommand(),this.put("&n"),this.put("^end $$"),this.endCommand())}}},378:(e,t,s)=>{const{driverBase:a}=window.DBGATE_PACKAGES["dbgate-tools"],n=s(56),{postgreSplitterOptions:r}=s(994),l=["GEOGRAPHY","GEOMETRY"],i={rangeSelect:!0,ilike:!0,defaultSchemaName:"public",multipleSchema:!0,stringEscapeChar:"'",fallbackDataType:"varchar",anonymousPrimaryKey:!1,enableConstraintsPerTable:!0,dropColumnDependencies:["dependencies"],quoteIdentifier:e=>'"'+e+'"',stringAgg:!0,createColumn:!0,dropColumn:!0,changeColumn:!0,createIndex:!0,dropIndex:!0,createForeignKey:!0,dropForeignKey:!0,createPrimaryKey:!0,dropPrimaryKey:!0,createUnique:!0,dropUnique:!0,createCheck:!0,dropCheck:!0,allowMultipleValuesInsert:!0,renameSqlObject:!0,filteredIndexes:!0,dropReferencesWhenDropTable:!0,requireStandaloneSelectForScopeIdentity:!0,predefinedDataTypes:["bigint","bigserial","bit","varbit","boolean","box","bytea","char(20)","varchar(250)","cidr","circle","date","double precision","inet","int","interval","json","jsonb","line","lseg","macaddr","macaddr8","money","numeric(10,2)","path","pg_lsn","pg_snapshot","point","polygon","real","smallint","smallserial","serial","text","time","timetz","timestamp","timestamptz","tsquery","tsvector","txid_snapshot","uuid","xml"],createColumnViewExpression:(e,t,s,a,n)=>t&&l.includes(t.toUpperCase())?{exprType:"call",func:"ST_AsText",alias:a||e,args:[{exprType:"column",columnName:e,source:s}]}:"uuid"==t?.toLowerCase()||"filter"==n&&t?.toLowerCase()?.startsWith("json")?{exprType:"unaryRaw",expr:{exprType:"column",source:s,columnName:e},afterSql:"::text",alias:a||e}:void 0},o={...a,supportsTransactions:!0,supportsIncrementalAnalysis:!0,dumperClass:n,dialect:i,getQuerySplitterOptions:e=>"editor"==e?{...r,ignoreComments:!0,preventSingleLineSplit:!0}:"import"==e?{...r,copyFromStdin:!0}:r,readOnlySessions:!0,databaseUrlPlaceholder:"e.g. postgresql://user:password@localhost:5432/default_database",showConnectionField:(e,t)=>{const s=["useDatabaseUrl","authType","user","isReadOnly","useSeparateSchemas"];return"awsIam"==t.authType&&s.push("awsRegion","secretAccessKey","accessKeyId"),"socket"==t.authType?s.push("socketPath"):t.useDatabaseUrl?s.push("databaseUrl"):s.push("server","port"),"awsIam"!=t.authType&&"socket"!=t.authType&&s.push("password"),t.useDatabaseUrl||s.push("defaultDatabase","singleDatabase"),s.includes(e)},beforeConnectionSave:e=>{const{databaseUrl:t}=e;if(t){const s=t.match(/\/([^/]+)($|\?)/);return{...e,singleDatabase:!!s,defaultDatabase:s?s[1]:null}}return e},__analyserInternals:{},getNewObjectTemplates:()=>[{label:"New view",sql:"CREATE VIEW myview\nAS\nSELECT * FROM table1"},{label:"New materialized view",sql:"CREATE MATERIALIZED VIEW myview\nAS\nSELECT * FROM table1"},{label:"New procedure",sql:"CREATE PROCEDURE myproc (arg1 INT)\nLANGUAGE SQL \nAS $$\n SELECT * FROM table1;\n$$"},{label:"New function (plpgsql)",sql:"CREATE FUNCTION myfunc (arg1 INT)\nRETURNS INT\nAS $$\nBEGIN\n RETURN 1;\nEND\n$$ LANGUAGE plpgsql;"},{label:"New trigger",sql:"CREATE TRIGGER trigger_name\nBEFORE INSERT ON table_name\nFOR EACH ROW\nEXECUTE FUNCTION function_name();"}],authTypeLabel:"Connection mode",defaultAuthTypeName:"hostPort",defaultSocketPath:"/var/run/postgresql",supportsDatabaseBackup:!0,supportsDatabaseRestore:!0,adaptDataType:e=>"datetime"==e?.toLowerCase()?"timestamp":e,getCliConnectionArgs(e){const t=[`--username=${e.user}`,`--host=${e.server}`];return e.port&&t.push(`--port=${e.port}`),t},getNativeOperationFormArgs:e=>"backup"==e?[{type:"checkbox",label:"Dump only data (without structure)",name:"dataOnly",default:!1},{type:"checkbox",label:"Dump schema only (no data)",name:"schemaOnly",default:!1},{type:"checkbox",label:"Use SQL insert instead of COPY for rows",name:"insert",default:!1},{type:"checkbox",label:"Prevent dumping of access privileges (grant/revoke)",name:"noPrivileges",default:!1},{type:"checkbox",label:"Do not output commands to set ownership of objects ",name:"noOwner",default:!1},{type:"text",label:"Custom arguments",name:"customArgs"}]:null,backupDatabaseCommand(e,t,s){const{outputFile:a,database:n,selectedTables:r,skippedTables:l,options:i,argsFormat:o}=t,p=s.pg_dump||"pg_dump",c=this.getCliConnectionArgs(e,s);if(c.push(`--file=${a}`),c.push("--verbose"),c.push(n),i.dataOnly&&c.push("--data-only"),i.schemaOnly&&c.push("--schema-only"),i.insert&&c.push("--insert"),i.noPrivileges&&c.push("--no-privileges"),i.noOwner&&c.push("--no-owner"),l.length>0)for(const e of r)c.push("spawn"==o?`--table="${e.schemaName}"."${e.pureName}"`:`--table='"${e.schemaName}"."${e.pureName}"'`);if(i.customArgs?.trim()){const e=i.customArgs.split(/\s+/).filter((e=>""!=e.trim()));c.push(...e)}return{command:p,args:c,env:{PGPASSWORD:e.password}}},restoreDatabaseCommand(e,t,s){const{inputFile:a,database:n}=t,r=s.psql||"psql",l=this.getCliConnectionArgs(e,s);return l.push(`--dbname=${n}`),l.push(`--file=${a}`),{command:r,args:l,env:{PGPASSWORD:e.password}}},transformNativeCommandMessage:e=>e.message.startsWith("INSERT ")||"SET"==e.message?null:e.message.startsWith("pg_dump: processing data for table")?{...e,severity:"info",message:e.message.replace("pg_dump: processing data for table","Processing table")}:e.message.toLowerCase().includes("error:")?{...e,severity:"error"}:{...e,severity:"debug"}},p={...o,supportsServerSummary:!0,engine:"postgres@dbgate-plugin-postgres",title:"PostgreSQL",defaultPort:5432,dialect:{...i,materializedViews:!0},icon:'<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="200" height="200" viewBox="0,0,256,256"><g fill="none" fill-rule="nonzero" stroke="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><g transform="scale(5.33333,5.33333)"><path d="M44.083,29.79c-0.183,-0.829 -0.935,-1.796 -2.452,-1.796c-0.31,0 -0.649,0.039 -1.035,0.119c-0.708,0.146 -1.311,0.217 -1.842,0.241c4.133,-7.04 6.816,-16.819 4.159,-20.214c-3.501,-4.473 -8.214,-5.141 -10.711,-5.141l-0.235,0.001c-0.929,0.015 -1.893,0.129 -2.863,0.339l-3.583,0.774c-0.488,-0.061 -0.985,-0.104 -1.503,-0.113h-0.03h-0.016l-0.152,-0.001c-1.593,0 -3.046,0.338 -4.341,0.973l-1.251,-0.493c-1.72,-0.678 -4.308,-1.485 -6.868,-1.485c-0.144,0 -0.287,0.003 -0.431,0.008c-2.522,0.091 -4.688,1.048 -6.265,2.767c-1.968,2.146 -2.864,5.285 -2.661,9.331c0.01,0.209 2.458,20.9 9.397,20.9h0.025l0.064,-0.001c0.901,-0.022 1.76,-0.384 2.563,-1.077c0.613,0.46 1.406,0.732 2.145,0.84c0.488,0.115 1.366,0.278 2.418,0.278c1.284,0 2.442,-0.263 3.44,-0.738c-0.001,0.88 -0.006,1.994 -0.016,3.418l-0.001,0.075l0.005,0.075c0.097,1.419 0.342,2.698 0.711,3.701c1.051,2.859 2.866,4.434 5.111,4.434c0.093,0 0.188,-0.003 0.284,-0.009c1.846,-0.114 3.717,-1.151 5.004,-2.772c1.393,-1.755 1.715,-3.607 1.839,-5.026l0.008,-0.087v-0.088v-4.079l0.103,0.01l0.436,0.038l0.042,0.004l0.042,0.002c0.124,0.006 0.252,0.008 0.381,0.008c1.507,0 3.362,-0.391 4.616,-0.974c1.199,-0.556 3.939,-2.084 3.463,-4.242z" fill-opacity="0" fill="#ffffff"></path><path d="M33,34c0,-0.205 0.012,-0.376 0.018,-0.565c-0.01,-0.251 -0.018,-0.435 -0.018,-0.435c0,0 0.012,-0.009 0.032,-0.022c0.149,-2.673 0.886,-3.703 1.675,-4.29c-0.11,-0.153 -0.237,-0.318 -0.356,-0.475c-0.333,-0.437 -0.748,-0.979 -1.192,-1.674l-0.082,-0.158c-0.067,-0.164 -0.229,-0.447 -0.435,-0.819c-1.183,-2.14 -3.645,-6.592 -1.96,-9.404c0.738,-1.232 2.122,-1.942 4.121,-2.117c-0.817,-2.323 -3.878,-7.926 -10.818,-8.041c-0.002,0 -0.004,0 -0.006,0c-6.041,-0.098 -8.026,5.392 -8.672,8.672c0.89,-0.377 1.906,-0.606 2.836,-0.606c0.014,0 0.029,0 0.043,0c2.29,0.017 3.865,1.239 4.323,3.354c0.335,1.552 0.496,2.91 0.492,4.153c-0.01,2.719 -0.558,4.149 -1.042,5.411l-0.154,0.408c-0.124,0.334 -0.255,0.645 -0.379,0.937c-0.126,0.298 -0.237,0.563 -0.318,0.802c0.484,0.11 0.864,0.265 1.125,0.38l0.151,0.066c0.047,0.02 0.094,0.043 0.137,0.069c0.848,0.516 1.376,1.309 1.489,2.233c0.061,0.498 0.051,3.893 0.03,6.855c0.087,1.285 0.305,2.364 0.593,3.146c0.409,1.114 1.431,3.241 3.394,3.119c1.37,-0.085 2.687,-0.919 3.561,-2.019c0.938,-1.181 1.284,-2.487 1.414,-3.958v-5.022z" fill="#0277bd"></path><path d="M15.114,28.917c-1.613,-1.683 -2.399,-3.947 -2.104,-6.056c0.285,-2.035 0.124,-4.027 0.037,-5.098c-0.029,-0.357 -0.048,-0.623 -0.047,-0.77c0,-0.008 0.002,-0.015 0.003,-0.023c0,-0.004 -0.002,-0.007 -0.002,-0.011c0.121,-3.021 1.286,-7.787 4.493,-10.62c-1.562,-0.615 -4.106,-1.426 -6.494,-1.339c-3.742,0.136 -7.364,2.724 -7,10c0.137,2.73 3.222,19.103 7.44,19c0.603,-0.015 1.229,-0.402 1.872,-1.176c1.017,-1.223 2.005,-2.332 2.708,-3.104c-0.315,-0.239 -0.619,-0.503 -0.906,-0.803zM37.023,14.731c0.015,0.154 0.002,0.286 -0.022,0.408c0.031,0.92 -0.068,1.813 -0.169,2.677c-0.074,0.636 -0.15,1.293 -0.171,1.952c-0.021,0.645 0.07,1.282 0.166,1.956c0.225,1.578 0.459,3.359 -0.765,5.437c0.225,0.296 0.423,0.571 0.581,0.837c4.61,-7.475 6.468,-16.361 4.695,-18.626c-2.683,-3.428 -6.397,-4.42 -9.339,-4.372c-0.921,0.015 -1.758,0.139 -2.473,0.294c5.076,2.46 7.337,7.732 7.497,9.437zM41,30.071c-2.665,0.55 -3.947,0.257 -4.569,-0.126c-0.1,0.072 -0.2,0.133 -0.293,0.19c-0.372,0.225 -0.961,0.583 -1.105,2.782c0.083,0.016 0.156,0.025 0.246,0.044l0.435,0.039c1.32,0.06 3.049,-0.31 4.063,-0.781c2.185,-1.014 3.376,-2.592 1.223,-2.148zM22.023,32.119c-0.037,-0.298 -0.198,-0.539 -0.492,-0.732l-0.108,-0.047c-0.361,-0.159 -0.77,-0.34 -1.423,-0.34h-0.004c-0.127,0.01 -0.253,0.019 -0.38,0.019c-0.052,0 -0.103,-0.007 -0.155,-0.009c-0.474,0.365 -1.148,0.647 -2.816,0.99c-2.98,0.759 -1.221,1.655 -0.078,1.794c1.106,0.277 3.735,0.614 5.481,-0.809c-0.005,-0.448 -0.013,-0.756 -0.025,-0.866zM20.681,18.501c-0.292,0.302 -0.753,0.566 -1.262,0.484c-0.828,-0.134 -1.463,-1.133 -1.417,-1.508v0c0.044,-0.374 0.751,-0.569 1.578,-0.435c0.287,0.047 0.548,0.128 0.768,0.228c-0.32,-0.688 -0.899,-1.085 -1.782,-1.182c-1.565,-0.174 -3.226,0.644 -3.56,1.097c0.007,0.11 0.02,0.251 0.033,0.417c0.093,1.147 0.265,3.284 -0.05,5.537c-0.208,1.485 0.393,3.169 1.567,4.395c0.757,0.79 1.641,1.29 2.513,1.438c0.111,-0.478 0.309,-0.944 0.513,-1.425c0.113,-0.265 0.233,-0.547 0.346,-0.852l0.162,-0.427c0.443,-1.155 0.9,-2.35 0.909,-4.703c0.004,-0.905 -0.107,-1.938 -0.318,-3.064zM34.847,22.007c-0.104,-0.729 -0.211,-1.484 -0.185,-2.303c0.023,-0.742 0.105,-1.442 0.184,-2.119c0.062,-0.533 0.11,-1.045 0.138,-1.55c-1.289,0.107 -2.145,0.479 -2.551,1.108c0.168,-0.057 0.358,-0.102 0.568,-0.129c0.892,-0.116 1.543,0.141 1.618,0.637c0.055,0.363 -0.253,0.705 -0.388,0.836c-0.277,0.269 -0.626,0.442 -0.981,0.488c-0.064,0.008 -0.129,0.012 -0.192,0.012c-0.353,0 -0.69,-0.121 -0.949,-0.3c0.112,1.973 1.567,4.612 2.283,5.907c0.153,0.277 0.271,0.498 0.369,0.688c0.393,-1.119 0.248,-2.139 0.086,-3.275z" fill="#0277bd"></path></g></g></svg>',dialectByVersion:e=>e?{...i,materializedViews:e&&null!=e.versionMajor&&null!=e.versionMinor&&(e.versionMajor>9||9==e.versionMajor||e.versionMinor>=3),isFipsComplianceOn:e.isFipsComplianceOn}:i},c={...o,supportsServerSummary:!0,engine:"cockroach@dbgate-plugin-postgres",title:"CockroachDB",defaultPort:26257,dialect:{...i,materializedViews:!0,dropColumnDependencies:["primaryKey","dependencies"],dropPrimaryKey:!1},__analyserInternals:{},icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1216 1216" preserveAspectRatio="none"><defs><linearGradient id="logoGradient" x1="0%" y1="0%" x2="100%" y2="100%"><stop offset="0%" stop-color="#6A3BFF"/><stop offset="50%" stop-color="#2E6CFF"/><stop offset="100%" stop-color="#21E6D6"/></linearGradient></defs><path fill="url(#logoGradient)" d="M 602.142 194.554 C 602.924 194.946 605.532 195.734 605.934 195.47 C 611.2 192.006 618.7 187.368 623.854 184.227 C 660.266 162.342 699.354 145.255 740.147 133.392 C 803.3 114.439 874.321 105.199 940.302 110.373 C 951.886 111.244 963.442 112.453 974.955 113.997 C 985.529 115.504 1004.69 118.906 1014.82 118.489 L 1015.34 118.465 C 1013.38 139.181 1004.56 159.848 1003.11 176.387 C 930.665 163.406 861.372 163.08 789.939 180.33 C 779.674 182.808 768.846 186.442 758.643 188.418 L 757.774 188.582 C 750.444 192.26 730.953 197.566 721.874 201.364 C 702.142 209.62 674.841 221.148 656.683 232.361 C 664.44 239.704 673.844 246.602 681.162 253.467 C 701.644 272.679 737.141 307.193 751.353 330.113 C 791.477 379.813 824.792 450.59 842.159 512.165 C 844.728 521.273 849.507 536.977 850.424 546.08 C 859.572 586.983 863.707 625.487 863.107 667.426 C 862.945 678.787 863.291 691.969 862.083 703.154 C 862.647 719.546 853.81 770.027 849.875 787.15 C 817.771 930.808 730.03 1055.88 605.878 1134.97 C 596.127 1129.24 586.056 1121.61 576.866 1114.9 C 531.272 1081.93 491.003 1042.16 457.465 996.979 C 370.216 879.542 332.66 732.5 352.908 587.608 C 372.443 452.546 444.303 315.101 554.457 232.719 C 474.98 183.972 364.943 160.784 272.709 168.11 C 252.039 169.751 228.723 173.096 208.142 176.366 L 195.254 120.695 C 215.988 114.774 264.639 110.498 287.038 109.611 C 377.235 106.038 466.191 124.994 547.716 163.612 C 560.179 169.515 592.937 185.964 602.142 194.554 z M 600.783 626.64 L 605.246 629.503 C 607.954 629.191 645.058 595.063 649.818 590.225 C 689.504 549.896 731.492 509.82 732.783 449.492 C 734.3 378.617 676.423 329.517 628.967 285.108 C 621.884 278.502 613.487 273.217 606.841 266.25 L 606.014 265.374 C 592.722 276.144 579.919 287.501 566.462 298.021 C 556.961 308.516 548.237 316.693 538.294 326.581 C 532.779 332.066 525.931 341.879 520.478 348.025 C 492.154 379.952 477.076 411.751 478.285 455.347 C 479.976 516.377 531.141 563.393 572.369 602.637 C 580.636 610.505 592.787 618.27 600.783 626.64 z M 647.455 686.6 C 643.014 698.923 637.697 712.975 636.365 726.018 C 633.475 754.335 634.49 785.882 634.496 814.507 L 634.705 972.314 C 634.732 991.435 635.761 1024.51 633.001 1042.47 C 712.113 968.011 769.322 882.202 792.973 775.116 C 797.835 753.104 803.459 724.271 803.976 701.755 C 803.472 694.089 804.971 682.488 804.863 674.359 C 804.632 656.838 805.121 634.695 803.242 617.51 C 801.083 595.757 797.514 574.168 792.557 552.878 C 789.903 541.531 784.654 525.86 783.217 515.414 C 779.194 526.425 769.403 540.684 762.576 550.455 C 748.203 571.025 731.041 592.04 713.972 610.555 C 697.963 627.92 677.626 644.446 662.16 662.432 C 659.255 665.811 650.048 682.025 647.455 686.6 z M 566.649 1031.91 C 570.138 1035.15 573.657 1038.35 577.206 1041.52 C 575.705 1021.19 576.795 984.286 576.808 962.442 L 576.891 808.643 C 576.896 746.673 583.791 691.499 532.942 645.219 C 492.743 608.633 455.741 565.331 428.123 518.419 C 427.876 517.999 427.114 517.724 426.674 517.533 C 420.694 548.029 412.574 573.891 408.648 606.016 C 394.786 726.125 424.793 847.198 493.143 946.932 C 509.674 971.46 544.155 1012.82 566.649 1031.91 z"/></svg>'},u={...o,supportsServerSummary:!0,dialect:{...i,stringAgg:!1},__analyserInternals:{skipIndexes:!0},engine:"redshift@dbgate-plugin-postgres",title:"Amazon Redshift",defaultPort:5439,premiumOnly:!0,databaseUrlPlaceholder:"e.g. redshift-cluster-1.xxxx.redshift.amazonaws.com:5439/dev",icon:'<svg enable-background="new 0 0 1615 1783.7" viewBox="0 0 1615 1783.7" xmlns="http://www.w3.org/2000/svg"><path d="m807.5 1363.8 678.3 161.5v-1270.5l-678.3 161.5z" fill="#205b97"/><path d="m1485.8 254.8 129.2 64.6v1141.3l-129.2 64.6zm-678.3 1109-678.3 161.5v-1270.5l678.3 161.5z" fill="#5193ce"/><path d="m129.2 254.8-129.2 64.6v1141.3l129.2 64.6z" fill="#205b97"/><path d="m979.8 1783.7 258.4-129.2v-1525.3l-258.4-129.2-79 847z" fill="#5193ce"/><path d="m635.2 1783.7-258.4-129.2v-1525.3l258.4-129.2 79 847z" fill="#205b97"/><path d="m635.2 0h348.1v1780.1h-348.1z" fill="#2e73b7"/></svg>',showConnectionField:(e,t)=>["databaseUrl","user","password","isReadOnly","useSeparateSchemas"].includes(e),beforeConnectionSave:e=>{const{databaseUrl:t}=e;if(t){const s=t.match(/\/([^/]+)$/);if(s)return{...e,singleDatabase:!0,defaultDatabase:s[1]}}return e}};e.exports=[p,c,u]}},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-postgres",drivers:s.n(e)()}})(),plugin=a})();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dbgate-plugin-postgres",
3
3
  "main": "dist/backend.js",
4
- "version": "6.8.2",
4
+ "version": "7.0.0-alpha.12",
5
5
  "license": "GPL-3.0",
6
6
  "description": "PostgreSQL connector plugin for DbGate",
7
7
  "homepage": "https://dbgate.org",
@@ -38,7 +38,7 @@
38
38
  "wkx": "^0.5.0",
39
39
  "pg-copy-streams": "^6.0.6",
40
40
  "dbgate-query-splitter": "^4.11.9",
41
- "dbgate-tools": "^6.8.2",
41
+ "dbgate-tools": "^7.0.0-alpha.12",
42
42
  "lodash": "^4.17.21",
43
43
  "pg": "^8.11.5"
44
44
  }