planche 0.9.1 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/app/assets/92hmrkfN.css +2 -0
  2. package/app/assets/{G06qjCej.js → B3qo2BmL.js} +1 -1
  3. package/app/assets/{B4S-lOKS.js → B4e4BJ-q.js} +1 -1
  4. package/app/assets/{DF7EZh_S.js → B8kALM_o.js} +1 -1
  5. package/app/assets/BEY3Hwp0.js +1 -0
  6. package/app/assets/{D0Ya12SQ.js → BFUEHSdO.js} +1 -1
  7. package/app/assets/{Do7KpDxk.js → BFddfnRD.js} +1 -1
  8. package/app/assets/{C1kpKIsO.js → BFxd4DZC.js} +1 -1
  9. package/app/assets/{qRIRkBN0.js → BLF41w4B.js} +1 -1
  10. package/app/assets/{CrhJJH3f.js → BNB2k8On.js} +1 -1
  11. package/app/assets/{BjwrN_ch.js → BPLdNS4h.js} +1 -1
  12. package/app/assets/{CFu5QMhX.js → BTpuv2bS.js} +1 -1
  13. package/app/assets/{7jG9Xw-H.js → BXogLn0j.js} +1 -1
  14. package/app/assets/{CExE8dKz.js → B_zu4Zim.js} +184 -183
  15. package/app/assets/{tJkeLYCp.js → BanAYgsJ.js} +1 -1
  16. package/app/assets/{BkXrfAoR.js → BghfQrAj.js} +1 -1
  17. package/app/assets/{DaBfnZOJ.js → Bjupmf7v.js} +1 -1
  18. package/app/assets/{7jD5h8Yx.js → BkujllIu.js} +1 -1
  19. package/app/assets/{BixvbqFe.js → BmnRSOWE.js} +1 -1
  20. package/app/assets/{BhX9zWzC.js → Bsl10NAd.js} +1 -1
  21. package/app/assets/{BNB62Dfu.js → Bx57-46U.js} +1 -1
  22. package/app/assets/{DHZOxCSJ.js → C3skRSMN.js} +1 -1
  23. package/app/assets/{CrlnxAGW.js → C63wLpkg.js} +1 -1
  24. package/app/assets/{BDtsGuIR.js → C9jzAIEJ.js} +2 -2
  25. package/app/assets/{S7HbowYz.js → CAd2f6EE.js} +70 -70
  26. package/app/assets/{Djxg54qH.js → CCBiFHWk.js} +1 -1
  27. package/app/assets/{Bbx7_Uyd.js → CCHDqJU3.js} +1 -1
  28. package/app/assets/{CaU3pCK6.js → CHn2dkeR.js} +1 -1
  29. package/app/assets/{84VwJAQi.js → CMFMZu0I.js} +1 -1
  30. package/app/assets/{DzdX4vRD.js → CSE_C1ca.js} +1 -1
  31. package/app/assets/{B9dhM8vw.js → CSjIZAje.js} +1 -1
  32. package/app/assets/{CHx7zgT8.js → CYqQEBj7.js} +1 -1
  33. package/app/assets/{BRZhVXRC.js → Ci1xBOLy.js} +1 -1
  34. package/app/assets/{BTaXXwBP.js → ClHvsi-E.js} +1 -1
  35. package/app/assets/{CTnwm-29.js → CtvJotUV.js} +1 -1
  36. package/app/assets/{D3lUezEb.js → Cv7B7xE1.js} +1 -1
  37. package/app/assets/{DNHPk-9r.js → Cw4TnfXm.js} +1 -1
  38. package/app/assets/{C6712dxU.js → D2dO-cBr.js} +1 -1
  39. package/app/assets/{BMFLhX-x.js → D4aakMZ1.js} +1 -1
  40. package/app/assets/{C1gqjEN3.js → D6SRSRpo.js} +1 -1
  41. package/app/assets/{BSziALTN.js → DBwwgHNb.js} +1 -1
  42. package/app/assets/{W7D4Svcn.js → DMmbl7oU.js} +1 -1
  43. package/app/assets/{BMBWoD5w.js → DP7G83e7.js} +1 -1
  44. package/app/assets/{aIFwnVFr.js → DPKD37gk.js} +1 -1
  45. package/app/assets/{DTkqO0Em.js → DdGvqbC0.js} +1 -1
  46. package/app/assets/{kXDKfUfE.js → DjsycSVl.js} +1 -1
  47. package/app/assets/{D1kyupCL.js → Dl3kZgxg.js} +1 -1
  48. package/app/assets/{BEH9Jqkv.js → DmDLn1hv.js} +1 -1
  49. package/app/assets/{BnJGrP6V.js → DpPKm22O.js} +2 -2
  50. package/app/assets/{BrVnzO7b.js → DpcElnaI.js} +1 -1
  51. package/app/assets/{B7zF7RU4.js → DtUkSj2L.js} +1 -1
  52. package/app/assets/{ByKF67UY.js → DyPVTkGX.js} +1 -1
  53. package/app/assets/{BbOETtQZ.js → Ec3vNInq.js} +1 -1
  54. package/app/assets/{BQ1Rcyw6.js → TqO-pPrr.js} +1 -1
  55. package/app/assets/{DpEN2jyA.js → Uf0CXpNG.js} +1 -1
  56. package/app/assets/{BPmMKRmE.js → X0frSBI-.js} +1 -1
  57. package/app/assets/{DCHRj2vY.js → Xya13jwA.js} +1 -1
  58. package/app/assets/{CoZCOAph.js → _lYVFvcB.js} +1 -1
  59. package/app/assets/{CFUkTo-F.js → aBt7vbXN.js} +1 -1
  60. package/app/assets/{CRnmOOqq.js → baQnXYR8.js} +1 -1
  61. package/app/assets/{C77ZEZfM.js → cFpo8ItN.js} +1 -1
  62. package/app/assets/{DPyLA6Dl.js → mA16m5gB.js} +1 -1
  63. package/app/assets/{BGvsBpIS.js → mHq6YiMc.js} +1 -1
  64. package/app/assets/{D9QeXBOk.js → rSe5GrVH.js} +1 -1
  65. package/app/assets/{BPPUDpI0.js → uCGINy9d.js} +1 -1
  66. package/app/index.html +12 -12
  67. package/package.json +1 -1
  68. package/app/assets/9gOj-Ty3.js +0 -1
  69. package/app/assets/w46wk7KI.css +0 -2
@@ -1,20 +1,20 @@
1
1
  import{r as e}from"./hePW80VL.js";import{a as t,n,o as r,p as i,s as a,t as o}from"./CYz610vE.js";import{i as s,r as c,t as l}from"./eFSiW0Lh.js";import{r as u}from"./Nro86Y63.js";import{n as d}from"./DU-Eln5x.js";var ee=/^(?:-?\d+(?:\.\d+)?|null|true|false|current_(?:timestamp|date|time)(?:\(\d*\))?|now\(\)|b'[01]+'|x'[0-9a-f]*')$/i;function te(e,t){let n=e.trim();return n===``?t(``):ee.test(n)||/^'.*'$/s.test(n)||/^".*"$/s.test(n)||n.includes(`(`)||n.includes(`::`)?n:t(n)}function ne(e,t,n){let r=t.upperCaseTypes?e.type.toUpperCase():e.type;return e.nullable?t.modify===`mssql`&&(r+=` NULL`):r+=` NOT NULL`,e.defaultValue!==null&&!/auto_increment|identity/i.test(e.extra)&&(r+=` DEFAULT ${te(e.defaultValue,n)}`),t.mysqlAttributes&&(/auto_increment/i.test(e.extra)&&(r+=` AUTO_INCREMENT`),e.comment&&(r+=` COMMENT ${n(e.comment)}`)),r}function f({quoteIdentifier:e,quoteLiteral:t,qualify:n},r){let i=e=>ne(e,r,t),a=(t,i)=>r.qualifiedIndexNames?n(t,i):e(i);return{addColumn(t,a,o){let s=`${e(o.name)} ${i(o)}`;return r.addColumn===`ADD (`?`ALTER TABLE ${n(t,a)} ADD (${s});`:`ALTER TABLE ${n(t,a)} ${r.addColumn} ${s};`},alterColumn(a,o,s){let c=n(a,o),l=e(s.name);switch(r.modify){case`mysql`:return`ALTER TABLE ${c} MODIFY COLUMN ${l} ${i(s)};`;case`oracle`:return`ALTER TABLE ${c} MODIFY (${l} ${i(s)});`;case`mssql`:return`ALTER TABLE ${c} ALTER COLUMN ${l} ${s.type}${s.nullable?` NULL`:` NOT NULL`};`;case`postgres`:return`ALTER TABLE ${c}\n ${[`ALTER COLUMN ${l} TYPE ${s.type}`,s.nullable?`ALTER COLUMN ${l} DROP NOT NULL`:`ALTER COLUMN ${l} SET NOT NULL`,s.defaultValue===null||/auto_increment|identity/i.test(s.extra)?`ALTER COLUMN ${l} DROP DEFAULT`:`ALTER COLUMN ${l} SET DEFAULT ${te(s.defaultValue,t)}`].join(`,
2
2
  `)};`;case`none`:return null}},dropColumn(t,r,i){return`ALTER TABLE ${n(t,r)} DROP COLUMN ${e(i)};`},renameColumn(i,a,o,s){return r.renameColumn===`sp_rename`?`EXEC sp_rename ${t(`${i}.${a}.${o}`)}, ${t(s)}, 'COLUMN';`:`ALTER TABLE ${n(i,a)} RENAME COLUMN ${e(o)} TO ${e(s)};`},createIndex(t,i,o){let s=o.columns.map(e).join(`, `);if(o.type===`PRIMARY`)return`ALTER TABLE ${n(t,i)} ADD PRIMARY KEY (${s});`;let c=o.type===`UNIQUE`?`UNIQUE `:o.type===`FULLTEXT`&&r.fulltext?`FULLTEXT `:``,l=r.unqualifiedIndexTarget?e(i):n(t,i);return`CREATE ${c}INDEX ${a(t,o.name)} ON ${l} (${s});`},dropIndex(t,i,o){return r.dropIndexOnTable?`DROP INDEX ${e(o)} ON ${n(t,i)};`:`DROP INDEX ${a(t,o)};`},insertRows(i,a,o,s){let c=n(i,a),l=o.map(e).join(`, `),u=s.map(e=>`(${e.map(t).join(`, `)})`);return r.multiRowInsert?`INSERT INTO ${c} (${l}) VALUES\n${u.join(`,
3
3
  `)};`:`INSERT ALL\n${u.map(e=>` INTO ${c} (${l}) VALUES ${e}`).join(`
4
- `)}\nSELECT 1 FROM DUAL;`}}}var p={DATABASE:`database`,SCHEMA:`schema`,TABLE:`table`,VIEW:`view`,COLUMN:`column`,INDEX:`index`,PROCEDURE:`procedure`,FUNCTION:`function`,TRIGGER:`trigger`,EVENT:`event`,FOLDER:`folder`,USER:`user`,KEY_PREFIX:`key-prefix`,KEY:`key`,COLLECTION:`collection`,FIELD:`field`};function m(e,t,n){let r=`${t}:${n.replaceAll(`/`,`⁄`)}`;return e?`${e}/${r}`:r}function h(e,t,n,r,i){return{id:m(e,t,n),type:t,text:n,isLeaf:r,isExpanded:!1,isLoading:!1,children:[],metadata:i}}var re=[{text:`Tables`,type:`TABLE`},{text:`Views`,type:`VIEW`},{text:`Procedures`,type:`PROCEDURE`,capability:`procedures`},{text:`Functions`,type:`FUNCTION`,capability:`functions`},{text:`Triggers`,type:`TRIGGER`,capability:`triggers`},{text:`Events`,type:`EVENT`,capability:`events`}],ie=[`Columns`,`Indexes`],ae={TABLE:p.TABLE,VIEW:p.VIEW,PROCEDURE:p.PROCEDURE,FUNCTION:p.FUNCTION,TRIGGER:p.TRIGGER,EVENT:p.EVENT};function oe(e){return re.find(t=>t.type===e).text}function se(e){return re.filter(t=>!t.capability||e.capabilities[t.capability]).map(e=>e.text)}function ce(e,t,n){return se(e).map(e=>h(t,p.FOLDER,e,!1,{...n,countable:!0}))}async function le({engine:e,run:t},n){let{introspect:r}=e,i=n.metadata?.database??``,a={database:i,catalog:n.metadata?.catalog},o=(e,t,r)=>h(n.id,ae[e],t,!0,{...a,...r});switch(n.text){case`Tables`:return(await r.listTables(t,i)).map(e=>h(n.id,p.TABLE,e.name,!1,{...a,table:e.name}));case`Views`:return(await r.listViews(t,i)).map(e=>o(`VIEW`,e));case`Procedures`:return(await r.listProcedures(t,i)).map(e=>o(`PROCEDURE`,e));case`Functions`:return(await r.listFunctions(t,i)).map(e=>o(`FUNCTION`,e));case`Triggers`:return r.listTriggerDetails?(await r.listTriggerDetails(t,i)).map(e=>o(`TRIGGER`,e.name,{table:e.table})):(await r.listTriggers(t,i)).map(e=>o(`TRIGGER`,e));case`Events`:return(await r.listEvents(t,i)).map(e=>o(`EVENT`,e));default:return[]}}function ue(e){let t={database:e.metadata?.database,catalog:e.metadata?.catalog,table:e.text};return ie.map(n=>h(e.id,p.FOLDER,n,!1,t))}async function de({engine:e,run:t},n){let r=n.metadata?.database??``,i=n.metadata?.table;if(!i)return null;let a={database:r,catalog:n.metadata?.catalog,table:i};switch(n.text){case`Columns`:return(await e.introspect.listColumns(t,r,i)).map(e=>{let t=e.extra?` [${e.extra}]`:``;return h(n.id,p.COLUMN,`${e.name} ${e.type}${t}`,!0,{...a,column:e.name,key:e.key})});case`Indexes`:return(await e.introspect.listIndexes(t,r,i)).map(e=>h(n.id,p.INDEX,`${e.name} (${e.columns.join(`, `)})`,!0,{...a,index:e.name}));default:return null}}async function fe(e,t){switch(t.type){case p.FOLDER:return await de(e,t)??le(e,t);case p.TABLE:return ue(t);default:return null}}function pe(e,t,n){let r=m(e,p.FOLDER,oe(t));return[e,r,m(r,ae[t],n)]}var me={async loadRoot({engine:e,run:t}){return(await e.introspect.listDatabases(t)).map(e=>h(null,p.DATABASE,e,!1,{database:e}))},async loadChildren(e,t){return t.type===p.DATABASE?ce(e.engine,t.id,{database:t.text}):await fe(e,t)??[]},objectPath(e,t,n){return pe(m(null,p.DATABASE,e),t,n)},namespacePath(e){return[m(null,p.DATABASE,e)]}},he=class extends Error{constructor(e,t){super(`${e} does not support ${t}`),this.name=`UnsupportedQueryError`}};function ge(e,t,...n){let r=t.identifierQuote,i=t.identifierQuoteClose??r;return e.replace(/(.?)\{(\d+)\}(.?)/gs,(e,a,o,s)=>{let c=parseInt(o,10);if(c>=n.length)return e;let l=n[c];return a===r&&s===i?`${a}${l.replaceAll(i,i+i)}${s}`:a&&a===s&&t.stringQuotes.includes(a)?`${a}${_e(l,a,t.backslashEscapes)}${s}`:`${a}${l}${s}`})}function _e(e,t,n){let r=n?e.replaceAll(`\\`,`\\\\`):e;return r=r.replaceAll(t,t+t),r}function g(e){return String(e).padStart(2,`0`)}function ve(e){return`${e.getFullYear()}-${g(e.getMonth()+1)}-${g(e.getDate())} ${g(e.getHours())}:${g(e.getMinutes())}:${g(e.getSeconds())}`}var ye=/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})/,be=e=>Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``),xe=e=>`X'${e}'`;function Se(e,t,n=!1,r=xe){if(e==null)return`NULL`;if(e instanceof Uint8Array)return r(be(e));if(typeof e==`number`)return Number.isFinite(e)?String(e):`NULL`;if(typeof e==`bigint`)return e.toString();if(typeof e==`boolean`)return n?e?`TRUE`:`FALSE`:e?`1`:`0`;if(e instanceof Date)return`'${ve(e)}'`;let i;if(typeof e==`object`)try{i=JSON.stringify(e)}catch{i=String(e)}else{i=String(e);let t=i.match(ye);t&&(i=`${t[1]} ${t[2]}`)}return`'${_e(i,`'`,t)}'`}function _(e){let t=e.fields.map(e=>e.name);return e.records.map(e=>{let n={};return t.forEach((t,r)=>{n[t]=e[r]}),n})}function v(e,t=``){return e==null?t:String(e)}function y(e){return e==null?null:String(e)}function b(e){if(e==null||e===``)return null;let t=Number(e);return Number.isFinite(t)?t:null}function x(e,t){return e.trim()||t}function S(e){let t=e.identifierQuote,n=e.identifierQuoteClose??t,r=e=>`${t}${e.replaceAll(n,n+n)}${n}`,i=t=>Se(t,e.syntax.backslashEscapes,e.booleanKeywords??!1,e.binaryLiteral),a=(e,t)=>e?`${r(e)}.${r(t)}`:r(t),o={identifierQuote:t,identifierQuoteClose:n,stringQuotes:e.syntax.doubleQuoteIsIdentifier?[`'`]:[`'`,`"`],backslashEscapes:e.syntax.backslashEscapes};return{kind:`sql`,id:e.id,label:e.label,capabilities:e.capabilities,introspect:e.introspect,explain:e.explain,tree:e.tree??me,defaultPort:e.defaultPort,syntax:e.syntax,limitClause:(t,n=0)=>e.syntax.limitStyle===`top`?`OFFSET ${n} ROWS FETCH NEXT ${t} ROWS ONLY`:e.syntax.limitStyle===`fetch`?n>0?`OFFSET ${n} ROWS FETCH NEXT ${t} ROWS ONLY`:`FETCH FIRST ${t} ROWS ONLY`:n>0?`LIMIT ${t} OFFSET ${n}`:`LIMIT ${t}`,quoteIdentifier:r,quoteLiteral:i,qualify:a,ddl:e.ddl({quoteIdentifier:r,quoteLiteral:i,qualify:a}),rowIdExpression:e.rowIdExpression,hasQuery(t){return e.queries[t]!==void 0},getQuery(t,...n){let r=e.queries[t];if(r===void 0)throw new he(e.label,t);return ge(r,o,...n)},getDataTypes:()=>e.dataTypes,getDataTypesToJSON:()=>e.dataTypes.map(e=>[e,e]),getFunctions:()=>e.functions,getReservedWords:()=>e.reservedWords}}var Ce=0,we=()=>`p${++Ce}`;function C(e,t={}){return{id:we(),label:e,rows:null,actualRows:null,cost:null,timeMs:null,details:[],warnings:[],children:[],...t}}function w(e){if(e==null||e===``)return null;let t=typeof e==`number`?e:Number(String(e).replace(/,/g,``));return Number.isFinite(t)?t:null}function T(e){return e==null?``:typeof e==`object`?JSON.stringify(e):String(e)}function Te(e){let t=e.replace(/[_-]+/g,` `).trim();return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}var Ee=10;function E(e,t){return e===null||t===null||Math.max(e,t)<100?[]:(e===0||t===0?Math.max(e,t):Math.max(e/t,t/e))>Ee?[`estimate-off`]:[]}function De(e,t){let n=new Map,r=new Map,i=[],a=[];for(let o of e){let e=t(o);if(e){if(e.id===null){a.push(e.node);continue}n.set(e.id,e.node),r.set(e.id,e.parent),i.push(e.id)}}for(let e of i){let t=n.get(e),i=r.get(e),o=i==null?void 0:n.get(i);o&&o!==t?o.children.push(t):a.push(t)}return a}var Oe=new Set([`Node Type`,`Plans`,`Plan Rows`,`Total Cost`,`Actual Rows`,`Actual Total Time`,`Relation Name`,`Index Name`,`Actual Loops`,`Startup Cost`,`Actual Startup Time`]);function ke(e){let t=T(e[`Node Type`])||`Node`,n=T(e.Strategy??e[`Join Type`]??e[`Partial Mode`]),r=T(e[`Relation Name`]??e[`Index Name`])||void 0,i=w(e[`Actual Loops`])??1,a=w(e[`Actual Rows`]),o=w(e[`Actual Total Time`]),s=w(e[`Plan Rows`]),c=[];t===`Seq Scan`&&c.push(`full-scan`),T(e[`Sort Method`]).toLowerCase().includes(`external`)&&c.push(`filesort`),c.push(...E(s,a));let l=Object.entries(e).filter(([e,t])=>!Oe.has(e)&&t!=null&&t!==``).map(([e,t])=>({label:e,value:T(t)})),u=Array.isArray(e.Plans)?e.Plans.map(ke):[];return C(n?`${t} (${n})`:t,{object:r,rows:s,actualRows:a===null?null:a*i,cost:w(e[`Total Cost`]),timeMs:o===null?null:o*i,details:l,warnings:c,children:u})}function Ae(e){return e.records[0]?.[0]}function je(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return null}}var Me={supportsAnalyze:!0,statements:(e,t)=>({statement:`EXPLAIN (${t?`ANALYZE, BUFFERS, `:``}FORMAT JSON) ${e}`}),parse:e=>{let t=Ae(e),n=typeof t==`string`?t:JSON.stringify(t,null,2),r=je(t),i=Array.isArray(r)?r:r?[r]:[],a=[];for(let e of i){let t=e?.Plan;if(!t||typeof t!=`object`)continue;let n=ke(t),r=w(e[`Planning Time`]),i=w(e[`Execution Time`]);r!==null&&n.details.push({label:`Planning Time`,value:`${r} ms`}),i!==null&&n.details.push({label:`Execution Time`,value:`${i} ms`}),a.push(n)}return{roots:a,raw:n}}},Ne=new Set([`table_name`,`access_type`,`key`,`rows_examined_per_scan`,`rows`,`r_rows`,`r_total_time_ms`,`query_cost`,`select_id`,`cost_info`]),Pe=new Set([`query_block`,`nested_loop`,`ordering_operation`,`grouping_operation`,`duplicates_removal`,`materialized_from_subquery`,`union_result`,`query_specifications`,`attached_subqueries`,`subqueries`,`optimized_away_subqueries`,`select_list_subqueries`,`having_subqueries`,`update_value_subqueries`,`block-nl-join`,`buffer_result`,`filesort`,`temporary_table`,`read_sorted_file`,`range-checked-for-each-record`,`insert_from`,`having_subquery`,`table`]);function D(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Fe(e){let t=T(e.table_name)||`table`,n=T(e.access_type),r=T(e.key),i=w(e.rows_examined_per_scan??e.rows),a=w(e.r_rows),o=[];n===`ALL`&&o.push(`full-scan`),!r&&e.possible_keys==null&&n!==`system`&&n!==`const`&&o.push(`no-index`),e.using_filesort===!0&&o.push(`filesort`),e.using_temporary_table===!0&&o.push(`temporary`),o.push(...E(i,a));let s=[],c=[];for(let[t,n]of Object.entries(e))Pe.has(t)?c.push(...O(t,n)):!Ne.has(t)&&n!=null&&n!==``&&s.push({label:Te(t),value:T(n)});let l=D(e.cost_info)?w(e.cost_info.prefix_cost??e.cost_info.read_cost):null;return C(n?`${n.toUpperCase()} ${t}`:t,{object:t,rows:i,actualRows:a,cost:l,timeMs:w(e.r_total_time_ms),details:s,warnings:o,children:c})}function O(e,t){if(Array.isArray(t))return t.flatMap(t=>O(e,t));if(!D(t))return[];if(e===`table`||`table_name`in t)return[Fe(t)];let n=[],r=[];for(let[e,i]of Object.entries(t))Ne.has(e)||(Pe.has(e)||Array.isArray(i)||D(i)?r.push(...O(e,i)):i!=null&&i!==``&&n.push({label:Te(e),value:T(i)}));let i=[];(e===`filesort`||t.using_filesort===!0)&&i.push(`filesort`),(e===`temporary_table`||t.using_temporary_table===!0)&&i.push(`temporary`);let a=w(t.select_id),o=e===`query_block`&&a!==null?`Query block #${a}`:Te(e),s=D(t.cost_info)?w(t.cost_info.query_cost):null;return e===`nested_loop`?r:[C(o,{rows:w(t.rows),cost:s,details:n,warnings:i,children:r})]}var Ie=/^(\s*)->\s*(.*)$/,Le=/\s*\(cost=([\d.e+-]+)(?:\.\.[\d.e+-]+)? rows=([\d.e+-]+)\)/,Re=/\s*\(actual time=([\d.e+-]+)\.\.([\d.e+-]+) rows=([\d.e+-]+) loops=(\d+)\)/,ze=/\s*\(never executed\)/;function Be(e){let t=/\bon\s+`?([A-Za-z0-9_$]+)`?/.exec(e),n=/\busing\s+`?([A-Za-z0-9_$]+)`?/.exec(e);return{object:t?.[1],index:n?.[1]}}function Ve(e,t,n){let r=[];return/^Table scan on /.test(e)&&r.push(`full-scan`),/^Sort[: ]/.test(e)&&r.push(`filesort`),/^(Materialize|Temporary table)/.test(e)&&r.push(`temporary`),r.push(...E(t,n)),r}function He(e){let t=[],n=[];for(let r of e.split(`
5
- `)){let e=Ie.exec(r);if(!e)continue;let i=e[1].length,a=e[2],o=Le.exec(a),s=Re.exec(a),c=ze.test(a);a=a.replace(Le,``).replace(Re,``).replace(ze,``).trim();let l=o?w(o[2]):null,u=s?w(s[4])??1:1,d=s?w(s[3]):null,ee=d===null?null:d*u,te=s?(w(s[2])??0)*u:null,{object:ne,index:f}=Be(a),p=[];f&&p.push({label:`Index`,value:f}),u>1&&p.push({label:`Loops`,value:String(u)}),c&&p.push({label:`Executed`,value:`never`});let m=C(a||`Node`,{object:ne,rows:l,actualRows:c?0:ee,cost:o?w(o[1]):null,timeMs:c?0:te,details:p,warnings:Ve(a,l,c?0:d)});for(;n.length>0&&n[n.length-1].indent>=i;)n.pop();let h=n[n.length-1];h?h.node.children.push(m):t.push(m),n.push({indent:i,node:m})}return t}function Ue(e){return t=>({statement:`${e?`ANALYZE`:`EXPLAIN`} FORMAT=JSON ${t}`})}function We(e,t){if(!t)return Ge(e);let n=T(Ae(e));return{roots:He(n),raw:n}}function Ge(e){let t=Ae(e),n=typeof t==`string`?t:JSON.stringify(t,null,2),r=je(t);return D(r)?{roots:Object.entries(r).flatMap(([e,t])=>O(e,t)),raw:n}:{roots:[],raw:n}}var Ke={supportsAnalyze:!0,statements:(e,t)=>({statement:t?`EXPLAIN ANALYZE ${e}`:`EXPLAIN FORMAT=JSON ${e}`}),parse:We},qe={supportsAnalyze:!0,statements:(e,t)=>Ue(t)(e),parse:e=>Ge(e)};function Je(e){let t=[],n=e.toUpperCase();return n.startsWith(`SCAN`)&&!n.includes(`USING`)&&t.push(`full-scan`),n.includes(`USE TEMP B-TREE`)&&t.push(n.includes(`ORDER BY`)?`filesort`:`temporary`),t}function Ye(e){return/^(?:SCAN|SEARCH)\s+(?:TABLE\s+)?([^\s(]+)/i.exec(e)?.[1]}var Xe={supportsAnalyze:!1,statements:e=>({statement:`EXPLAIN QUERY PLAN ${e}`}),parse:e=>{let t=_(e),n=t.map(e=>`${e.id}|${e.parent}|${T(e.detail)}`).join(`
6
- `);return{roots:De(t,e=>{let t=T(e.detail);if(!t)return null;let n=w(e.parent);return{id:w(e.id),parent:n===0?null:n,node:C(t,{object:Ye(t),warnings:Je(t)})}}),raw:n}}};function Ze(e){let t=/OBJECT:\(([^)]*)\)/i.exec(e);if(!t)return;let n=t[1].replace(/\s+AS\s+\[[^\]]*\]\s*$/i,``).trim(),r=[...n.matchAll(/\[([^\]]*)\]/g)].map(e=>e[1]).filter(Boolean);return r.length===0?n||void 0:r.slice(2).join(`.`)||r.join(`.`)}var Qe={supportsAnalyze:!0,statements:(e,t)=>({before:[t?`SET STATISTICS PROFILE ON`:`SET SHOWPLAN_ALL ON`],statement:e,after:[t?`SET STATISTICS PROFILE OFF`:`SET SHOWPLAN_ALL OFF`]}),parse:e=>{let t=_(e),n=t.map(e=>T(e.StmtText)).join(``);return{roots:De(t,e=>{let t=T(e.PhysicalOp),n=T(e.LogicalOp),r=T(e.Argument),i=t||T(e.StmtText).trim().replace(/\s+/g,` `).slice(0,120);if(!i)return null;let a=[];/Table Scan|Clustered Index Scan|Index Scan/i.test(t)&&a.push(`full-scan`),T(e.Warnings)&&a.push(`no-index`),/Sort/i.test(t)&&a.push(`filesort`);let o=[];n&&n!==t&&o.push({label:`Logical operation`,value:n}),r&&o.push({label:`Argument`,value:r});for(let t of[`EstimateIO`,`EstimateCPU`,`AvgRowSize`,`EstimateExecutions`,`Parallel`,`OutputList`]){let n=T(e[t]);n&&o.push({label:Te(t),value:n})}let s=w(e.EstimateRows),c=`Rows`in e?w(e.Rows):null,l=w(e.Executes);l!==null&&o.push({label:`Executes`,value:String(l)});let u=c!==null&&l!==null&&l>0?c/l:null;a.push(...E(s,u));let d=w(e.NodeId),ee=w(e.Parent);return{id:d,parent:ee===0?null:ee,node:C(i,{object:t?Ze(r):void 0,rows:s,actualRows:c,cost:w(e.TotalSubtreeCost),details:o,warnings:a})}}),raw:n}}},k=`PLANCHE_PLAN`,$e=`sql_id = (SELECT prev_sql_id FROM v$session WHERE sid = SYS_CONTEXT('USERENV','SID')) AND child_number = (SELECT prev_child_number FROM v$session WHERE sid = SYS_CONTEXT('USERENV','SID'))`,et={supportsAnalyze:!0,statements:(e,t)=>t?{before:[`ALTER SESSION SET STATISTICS_LEVEL = ALL`,e],statement:`SELECT id, parent_id, operation, options, object_name, cardinality, cost, bytes, last_output_rows, last_elapsed_time, last_starts, access_predicates, filter_predicates FROM v$sql_plan_statistics_all WHERE ${$e} ORDER BY id`,after:[`ALTER SESSION SET STATISTICS_LEVEL = TYPICAL`]}:{before:[`DELETE FROM plan_table WHERE statement_id = '${k}'`,`EXPLAIN PLAN SET STATEMENT_ID = '${k}' FOR ${e}`],statement:`SELECT id, parent_id, operation, options, object_name, cardinality, cost, bytes, access_predicates, filter_predicates FROM plan_table WHERE statement_id = '${k}' ORDER BY id`,after:[`DELETE FROM plan_table WHERE statement_id = '${k}'`]},parse:e=>{let t=_(e),n=t.map(e=>`${e.ID}|${e.PARENT_ID}|${T(e.OPERATION)} ${T(e.OPTIONS)} ${T(e.OBJECT_NAME)}`.trim()).join(`
7
- `);return{roots:De(t,e=>{let t=T(e.OPERATION??e.operation);if(!t)return null;let n=T(e.OPTIONS??e.options),r=T(e.OBJECT_NAME??e.object_name)||void 0,i=[];t===`TABLE ACCESS`&&n===`FULL`&&i.push(`full-scan`),t===`SORT`&&n!==`AGGREGATE`&&i.push(`filesort`);let a=[];for(let[t,n]of[[`BYTES`,`Bytes`],[`ACCESS_PREDICATES`,`Access predicates`],[`FILTER_PREDICATES`,`Filter predicates`]]){let r=T(e[t]??e[t.toLowerCase()]);r&&a.push({label:n,value:r})}let o=w(e.CARDINALITY??e.cardinality),s=w(e.LAST_OUTPUT_ROWS??e.last_output_rows),c=w(e.LAST_ELAPSED_TIME??e.last_elapsed_time),l=w(e.LAST_STARTS??e.last_starts);l!==null&&a.push({label:`Starts`,value:String(l)});let u=s!==null&&l!==null&&l>0?s/l:null;return i.push(...E(o,u)),{id:w(e.ID??e.id),parent:w(e.PARENT_ID??e.parent_id),node:C(n?`${t} ${n}`:t,{object:r,rows:o,actualRows:s,cost:w(e.COST??e.cost),timeMs:c===null?null:c/1e3,details:a,warnings:i})}}),raw:n}}},A=e=>`\`${e.replaceAll("`","``")}\``,tt=(e,t)=>`${A(e)}.${A(t)}`,j=e=>`'${e.replace(/\\/g,`\\\\`).replace(/'/g,`''`)}'`;function nt(e){let t=v(e).toUpperCase();return t===`PRI`||t===`UNI`||t===`MUL`?t:``}function rt(e,t,n){if(e===`PRIMARY`)return`PRIMARY`;let r=v(n).toUpperCase();return r===`FULLTEXT`?`FULLTEXT`:r===`SPATIAL`?`SPATIAL`:Number(t)===0?`UNIQUE`:`INDEX`}function it(e){return{name:v(e.Name??e.TABLE_NAME),engine:y(e.Engine??e.ENGINE),rows:b(e.Rows??e.TABLE_ROWS),collation:y(e.Collation??e.TABLE_COLLATION),autoIncrement:y(e.Auto_increment??e.AUTO_INCREMENT),comment:v(e.Comment??e.TABLE_COMMENT),createTime:y(e.Create_time??e.CREATE_TIME),updateTime:y(e.Update_time??e.UPDATE_TIME),dataLength:b(e.Data_length??e.DATA_LENGTH)}}function at(e){return{name:v(e.Field??e.COLUMN_NAME),type:v(e.Type??e.COLUMN_TYPE),nullable:v(e.Null??e.IS_NULLABLE).toUpperCase()===`YES`,key:nt(e.Key??e.COLUMN_KEY),defaultValue:y(e.Default??e.COLUMN_DEFAULT),extra:v(e.Extra??e.EXTRA),comment:v(e.Comment??e.COLUMN_COMMENT),collation:y(e.Collation??e.COLLATION_NAME)}}function ot(e){let t=new Map;for(let n of e){let e=v(n.Table??n.TABLE_NAME),r=v(n.Key_name??n.INDEX_NAME),i=v(n.Column_name??n.COLUMN_NAME),a=t.get(e);a||(a=new Map,t.set(e,a));let o=a.get(r);o?o.columns.push(i):a.set(r,{name:r,type:rt(r,n.Non_unique??n.NON_UNIQUE,n.Index_type??n.INDEX_TYPE),columns:[i]})}return new Map(Array.from(t,([e,t])=>[e,Array.from(t.values())]))}var st={TABLE:`TABLE`,VIEW:`VIEW`,PROCEDURE:`PROCEDURE`,FUNCTION:`FUNCTION`,TRIGGER:`TRIGGER`,EVENT:`EVENT`},ct={async listDatabases(e){return(await e(`SHOW DATABASES`)).records.map(e=>v(e[0]))},async listTables(e,t){return _(await e(`SHOW TABLE STATUS FROM ${A(t)} WHERE ENGINE IS NOT NULL`,t)).map(it)},async listViews(e,t){return(await e(`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = ${j(t)} ORDER BY TABLE_NAME`,t)).records.map(e=>v(e[0]))},async listProcedures(e,t){return _(await e(`SHOW PROCEDURE STATUS WHERE DB = ${j(t)}`,t)).map(e=>v(e.Name))},async listFunctions(e,t){return _(await e(`SHOW FUNCTION STATUS WHERE DB = ${j(t)}`,t)).map(e=>v(e.Name))},async listTriggers(e,t){return _(await e(`SHOW TRIGGERS FROM ${A(t)}`,t)).map(e=>v(e.Trigger))},async listEvents(e,t){return(await e(`SELECT EVENT_NAME FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA = ${j(t)} ORDER BY EVENT_NAME`,t)).records.map(e=>v(e[0]))},async listColumns(e,t,n){return _(await e(`SHOW FULL COLUMNS FROM ${tt(t,n)}`,t)).map(at)},async listIndexes(e,t,n){return ot(_(await e(`SHOW INDEX FROM ${tt(t,n)}`,t))).get(n)??[]},async listAllColumns(e,t){let n=await e(`SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT,
4
+ `)}\nSELECT 1 FROM DUAL;`}}}var p={DATABASE:`database`,SCHEMA:`schema`,TABLE:`table`,VIEW:`view`,COLUMN:`column`,INDEX:`index`,PROCEDURE:`procedure`,FUNCTION:`function`,TRIGGER:`trigger`,EVENT:`event`,FOLDER:`folder`,USER:`user`,KEY_PREFIX:`key-prefix`,KEY:`key`,COLLECTION:`collection`,FIELD:`field`};function m(e,t,n){let r=`${t}:${n.replaceAll(`/`,`⁄`)}`;return e?`${e}/${r}`:r}function h(e,t,n,r,i){return{id:m(e,t,n),type:t,text:n,isLeaf:r,isExpanded:!1,isLoading:!1,children:[],metadata:i}}var re=[{text:`Tables`,type:`TABLE`},{text:`Views`,type:`VIEW`},{text:`Procedures`,type:`PROCEDURE`,capability:`procedures`},{text:`Functions`,type:`FUNCTION`,capability:`functions`},{text:`Triggers`,type:`TRIGGER`,capability:`triggers`},{text:`Events`,type:`EVENT`,capability:`events`}],ie=[`Columns`,`Indexes`],ae={TABLE:p.TABLE,VIEW:p.VIEW,PROCEDURE:p.PROCEDURE,FUNCTION:p.FUNCTION,TRIGGER:p.TRIGGER,EVENT:p.EVENT};function oe(e){return re.find(t=>t.type===e).text}function se(e){return re.filter(t=>!t.capability||e.capabilities[t.capability]).map(e=>e.text)}function ce(e,t,n){return se(e).map(e=>h(t,p.FOLDER,e,!1,{...n,countable:!0}))}async function le({engine:e,run:t},n){let{introspect:r}=e,i=n.metadata?.database??``,a={database:i,catalog:n.metadata?.catalog},o=(e,t,r)=>h(n.id,ae[e],t,!0,{...a,...r});switch(n.text){case`Tables`:return(await r.listTables(t,i)).map(e=>h(n.id,p.TABLE,e.name,!1,{...a,table:e.name}));case`Views`:return(await r.listViews(t,i)).map(e=>o(`VIEW`,e));case`Procedures`:return(await r.listProcedures(t,i)).map(e=>o(`PROCEDURE`,e));case`Functions`:return(await r.listFunctions(t,i)).map(e=>o(`FUNCTION`,e));case`Triggers`:return r.listTriggerDetails?(await r.listTriggerDetails(t,i)).map(e=>o(`TRIGGER`,e.name,{table:e.table})):(await r.listTriggers(t,i)).map(e=>o(`TRIGGER`,e));case`Events`:return(await r.listEvents(t,i)).map(e=>o(`EVENT`,e));default:return[]}}function ue(e){let t={database:e.metadata?.database,catalog:e.metadata?.catalog,table:e.text};return ie.map(n=>h(e.id,p.FOLDER,n,!1,t))}async function de({engine:e,run:t},n){let r=n.metadata?.database??``,i=n.metadata?.table;if(!i)return null;let a={database:r,catalog:n.metadata?.catalog,table:i};switch(n.text){case`Columns`:return(await e.introspect.listColumns(t,r,i)).map(e=>{let t=e.extra?` [${e.extra}]`:``;return h(n.id,p.COLUMN,`${e.name} ${e.type}${t}`,!0,{...a,column:e.name,key:e.key})});case`Indexes`:return(await e.introspect.listIndexes(t,r,i)).map(e=>h(n.id,p.INDEX,`${e.name} (${e.columns.join(`, `)})`,!0,{...a,index:e.name}));default:return null}}async function fe(e,t){switch(t.type){case p.FOLDER:return await de(e,t)??le(e,t);case p.TABLE:return ue(t);default:return null}}function pe(e,t,n){let r=m(e,p.FOLDER,oe(t));return[e,r,m(r,ae[t],n)]}var me={async loadRoot({engine:e,run:t}){return(await e.introspect.listDatabases(t)).map(e=>h(null,p.DATABASE,e,!1,{database:e}))},async loadChildren(e,t){return t.type===p.DATABASE?ce(e.engine,t.id,{database:t.text}):await fe(e,t)??[]},objectPath(e,t,n){return pe(m(null,p.DATABASE,e),t,n)},namespacePath(e){return[m(null,p.DATABASE,e)]}},he=class extends Error{constructor(e,t){super(`${e} does not support ${t}`),this.name=`UnsupportedQueryError`}};function ge(e,t,...n){let r=t.identifierQuote,i=t.identifierQuoteClose??r;return e.replace(/(.?)\{(\d+)\}(.?)/gs,(e,a,o,s)=>{let c=parseInt(o,10);if(c>=n.length)return e;let l=n[c];return a===r&&s===i?`${a}${l.replaceAll(i,i+i)}${s}`:a&&a===s&&t.stringQuotes.includes(a)?`${a}${_e(l,a,t.backslashEscapes)}${s}`:`${a}${l}${s}`})}function _e(e,t,n){let r=n?e.replaceAll(`\\`,`\\\\`):e;return r=r.replaceAll(t,t+t),r}function g(e){return String(e).padStart(2,`0`)}function ve(e){return`${e.getFullYear()}-${g(e.getMonth()+1)}-${g(e.getDate())} ${g(e.getHours())}:${g(e.getMinutes())}:${g(e.getSeconds())}`}var ye=/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})/,be=e=>Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``),xe=e=>`X'${e}'`;function Se(e,t,n=!1,r=xe){if(e==null)return`NULL`;if(e instanceof Uint8Array)return r(be(e));if(typeof e==`number`)return Number.isFinite(e)?String(e):`NULL`;if(typeof e==`bigint`)return e.toString();if(typeof e==`boolean`)return n?e?`TRUE`:`FALSE`:e?`1`:`0`;if(e instanceof Date)return`'${ve(e)}'`;let i;if(typeof e==`object`)try{i=JSON.stringify(e)}catch{i=String(e)}else{i=String(e);let t=i.match(ye);t&&(i=`${t[1]} ${t[2]}`)}return`'${_e(i,`'`,t)}'`}function _(e){let t=e.fields.map(e=>e.name);return e.records.map(e=>{let n={};return t.forEach((t,r)=>{n[t]=e[r]}),n})}function v(e,t=``){return e==null?t:String(e)}function y(e){return e==null?null:String(e)}function b(e){if(e==null||e===``)return null;let t=Number(e);return Number.isFinite(t)?t:null}function x(e,t){return e.trim()||t}function S(e){let t=e.identifierQuote,n=e.identifierQuoteClose??t,r=e=>`${t}${e.replaceAll(n,n+n)}${n}`,i=t=>Se(t,e.syntax.backslashEscapes,e.booleanKeywords??!1,e.binaryLiteral),a=(e,t)=>e?`${r(e)}.${r(t)}`:r(t),o={identifierQuote:t,identifierQuoteClose:n,stringQuotes:e.syntax.doubleQuoteIsIdentifier?[`'`]:[`'`,`"`],backslashEscapes:e.syntax.backslashEscapes};return{kind:`sql`,id:e.id,label:e.label,capabilities:e.capabilities,introspect:e.introspect,explain:e.explain,tree:e.tree??me,defaultPort:e.defaultPort,syntax:e.syntax,limitClause:(t,n=0)=>e.syntax.limitStyle===`top`?`OFFSET ${n} ROWS FETCH NEXT ${t} ROWS ONLY`:e.syntax.limitStyle===`fetch`?n>0?`OFFSET ${n} ROWS FETCH NEXT ${t} ROWS ONLY`:`FETCH FIRST ${t} ROWS ONLY`:n>0?`LIMIT ${t} OFFSET ${n}`:`LIMIT ${t}`,quoteIdentifier:r,quoteLiteral:i,qualify:a,ddl:e.ddl({quoteIdentifier:r,quoteLiteral:i,qualify:a}),rowIdExpression:e.rowIdExpression,hasQuery(t){return e.queries[t]!==void 0},getQuery(t,...n){let r=e.queries[t];if(r===void 0)throw new he(e.label,t);return ge(r,o,...n)},getDataTypes:()=>e.dataTypes,getDataTypesToJSON:()=>e.dataTypes.map(e=>[e,e]),getFunctions:()=>e.functions,getReservedWords:()=>e.reservedWords}}var Ce=0,we=()=>`p${++Ce}`;function C(e,t={}){return{id:we(),label:e,rows:null,actualRows:null,cost:null,timeMs:null,details:[],warnings:[],children:[],...t}}function w(e){if(e==null||e===``)return null;let t=typeof e==`number`?e:Number(String(e).replace(/,/g,``));return Number.isFinite(t)?t:null}function T(e){return e==null?``:typeof e==`object`?JSON.stringify(e):String(e)}function Te(e){let t=e.replace(/[_-]+/g,` `).trim();return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}var Ee=10;function E(e,t){return e===null||t===null||Math.max(e,t)<100?[]:(e===0||t===0?Math.max(e,t):Math.max(e/t,t/e))>Ee?[`estimate-off`]:[]}function De(e,t){let n=new Map,r=new Map,i=[],a=[];for(let o of e){let e=t(o);if(e){if(e.id===null){a.push(e.node);continue}n.set(e.id,e.node),r.set(e.id,e.parent),i.push(e.id)}}for(let e of i){let t=n.get(e),i=r.get(e),o=i==null?void 0:n.get(i);o&&o!==t?o.children.push(t):a.push(t)}return a}var Oe=new Set([`Node Type`,`Plans`,`Plan Rows`,`Total Cost`,`Actual Rows`,`Actual Total Time`,`Relation Name`,`Index Name`,`Actual Loops`,`Startup Cost`,`Actual Startup Time`]);function ke(e){let t=T(e[`Node Type`])||`Node`,n=T(e.Strategy??e[`Join Type`]??e[`Partial Mode`]),r=T(e[`Relation Name`]??e[`Index Name`])||void 0,i=w(e[`Actual Loops`])??1,a=w(e[`Actual Rows`]),o=w(e[`Actual Total Time`]),s=w(e[`Plan Rows`]),c=[];t===`Seq Scan`&&c.push(`full-scan`),T(e[`Sort Method`]).toLowerCase().includes(`external`)&&c.push(`filesort`),c.push(...E(s,a));let l=Object.entries(e).filter(([e,t])=>!Oe.has(e)&&t!=null&&t!==``).map(([e,t])=>({label:e,value:T(t)})),u=Array.isArray(e.Plans)?e.Plans.map(ke):[];return C(n?`${t} (${n})`:t,{object:r,rows:s,actualRows:a===null?null:a*i,cost:w(e[`Total Cost`]),timeMs:o===null?null:o*i,details:l,warnings:c,children:u})}function Ae(e){return e.records[0]?.[0]}function je(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return null}}var Me={supportsAnalyze:!0,statements:(e,t)=>({statement:`EXPLAIN (${t?`ANALYZE, BUFFERS, `:``}FORMAT JSON) ${e}`}),parse:e=>{let t=Ae(e),n=typeof t==`string`?t:JSON.stringify(t,null,2),r=je(t),i=Array.isArray(r)?r:r?[r]:[],a=[];for(let e of i){let t=e?.Plan;if(!t||typeof t!=`object`)continue;let n=ke(t),r=w(e[`Planning Time`]),i=w(e[`Execution Time`]);r!==null&&n.details.push({label:`Planning Time`,value:`${r} ms`}),i!==null&&n.details.push({label:`Execution Time`,value:`${i} ms`}),a.push(n)}return{roots:a,raw:n}}},Ne=new Set([`table_name`,`access_type`,`key`,`rows_examined_per_scan`,`rows`,`r_rows`,`r_total_time_ms`,`query_cost`,`select_id`,`cost_info`]),Pe=new Set([`query_block`,`nested_loop`,`ordering_operation`,`grouping_operation`,`duplicates_removal`,`materialized_from_subquery`,`union_result`,`query_specifications`,`attached_subqueries`,`subqueries`,`optimized_away_subqueries`,`select_list_subqueries`,`having_subqueries`,`update_value_subqueries`,`block-nl-join`,`buffer_result`,`filesort`,`temporary_table`,`read_sorted_file`,`range-checked-for-each-record`,`insert_from`,`having_subquery`,`table`]);function D(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Fe(e){let t=T(e.table_name)||`table`,n=T(e.access_type),r=T(e.key),i=w(e.rows_examined_per_scan??e.rows),a=w(e.r_rows),o=[];n===`ALL`&&o.push(`full-scan`),!r&&e.possible_keys==null&&n!==`system`&&n!==`const`&&o.push(`no-index`),e.using_filesort===!0&&o.push(`filesort`),e.using_temporary_table===!0&&o.push(`temporary`),o.push(...E(i,a));let s=[],c=[];for(let[t,n]of Object.entries(e))Pe.has(t)?c.push(...Ie(t,n)):!Ne.has(t)&&n!=null&&n!==``&&s.push({label:Te(t),value:T(n)});let l=D(e.cost_info)?w(e.cost_info.prefix_cost??e.cost_info.read_cost):null;return C(n?`${n.toUpperCase()} ${t}`:t,{object:t,rows:i,actualRows:a,cost:l,timeMs:w(e.r_total_time_ms),details:s,warnings:o,children:c})}function Ie(e,t){if(Array.isArray(t))return t.flatMap(t=>Ie(e,t));if(!D(t))return[];if(e===`table`||`table_name`in t)return[Fe(t)];let n=[],r=[];for(let[e,i]of Object.entries(t))Ne.has(e)||(Pe.has(e)||Array.isArray(i)||D(i)?r.push(...Ie(e,i)):i!=null&&i!==``&&n.push({label:Te(e),value:T(i)}));let i=[];(e===`filesort`||t.using_filesort===!0)&&i.push(`filesort`),(e===`temporary_table`||t.using_temporary_table===!0)&&i.push(`temporary`);let a=w(t.select_id),o=e===`query_block`&&a!==null?`Query block #${a}`:Te(e),s=D(t.cost_info)?w(t.cost_info.query_cost):null;return e===`nested_loop`?r:[C(o,{rows:w(t.rows),cost:s,details:n,warnings:i,children:r})]}var Le=/^(\s*)->\s*(.*)$/,Re=/\s*\(cost=([\d.e+-]+)(?:\.\.[\d.e+-]+)? rows=([\d.e+-]+)\)/,ze=/\s*\(actual time=([\d.e+-]+)\.\.([\d.e+-]+) rows=([\d.e+-]+) loops=(\d+)\)/,Be=/\s*\(never executed\)/;function Ve(e){let t=/\bon\s+`?([A-Za-z0-9_$]+)`?/.exec(e),n=/\busing\s+`?([A-Za-z0-9_$]+)`?/.exec(e);return{object:t?.[1],index:n?.[1]}}function He(e,t,n){let r=[];return/^Table scan on /.test(e)&&r.push(`full-scan`),/^Sort[: ]/.test(e)&&r.push(`filesort`),/^(Materialize|Temporary table)/.test(e)&&r.push(`temporary`),r.push(...E(t,n)),r}function Ue(e){let t=[],n=[];for(let r of e.split(`
5
+ `)){let e=Le.exec(r);if(!e)continue;let i=e[1].length,a=e[2],o=Re.exec(a),s=ze.exec(a),c=Be.test(a);a=a.replace(Re,``).replace(ze,``).replace(Be,``).trim();let l=o?w(o[2]):null,u=s?w(s[4])??1:1,d=s?w(s[3]):null,ee=d===null?null:d*u,te=s?(w(s[2])??0)*u:null,{object:ne,index:f}=Ve(a),p=[];f&&p.push({label:`Index`,value:f}),u>1&&p.push({label:`Loops`,value:String(u)}),c&&p.push({label:`Executed`,value:`never`});let m=C(a||`Node`,{object:ne,rows:l,actualRows:c?0:ee,cost:o?w(o[1]):null,timeMs:c?0:te,details:p,warnings:He(a,l,c?0:d)});for(;n.length>0&&n[n.length-1].indent>=i;)n.pop();let h=n[n.length-1];h?h.node.children.push(m):t.push(m),n.push({indent:i,node:m})}return t}function We(e){return t=>({statement:`${e?`ANALYZE`:`EXPLAIN`} FORMAT=JSON ${t}`})}function Ge(e,t){if(!t)return Ke(e);let n=T(Ae(e));return{roots:Ue(n),raw:n}}function Ke(e){let t=Ae(e),n=typeof t==`string`?t:JSON.stringify(t,null,2),r=je(t);return D(r)?{roots:Object.entries(r).flatMap(([e,t])=>Ie(e,t)),raw:n}:{roots:[],raw:n}}var qe={supportsAnalyze:!0,statements:(e,t)=>({statement:t?`EXPLAIN ANALYZE ${e}`:`EXPLAIN FORMAT=JSON ${e}`}),parse:Ge},Je={supportsAnalyze:!0,statements:(e,t)=>We(t)(e),parse:e=>Ke(e)};function Ye(e){let t=[],n=e.toUpperCase();return n.startsWith(`SCAN`)&&!n.includes(`USING`)&&t.push(`full-scan`),n.includes(`USE TEMP B-TREE`)&&t.push(n.includes(`ORDER BY`)?`filesort`:`temporary`),t}function Xe(e){return/^(?:SCAN|SEARCH)\s+(?:TABLE\s+)?([^\s(]+)/i.exec(e)?.[1]}var Ze={supportsAnalyze:!1,statements:e=>({statement:`EXPLAIN QUERY PLAN ${e}`}),parse:e=>{let t=_(e),n=t.map(e=>`${e.id}|${e.parent}|${T(e.detail)}`).join(`
6
+ `);return{roots:De(t,e=>{let t=T(e.detail);if(!t)return null;let n=w(e.parent);return{id:w(e.id),parent:n===0?null:n,node:C(t,{object:Xe(t),warnings:Ye(t)})}}),raw:n}}};function Qe(e){let t=/OBJECT:\(([^)]*)\)/i.exec(e);if(!t)return;let n=t[1].replace(/\s+AS\s+\[[^\]]*\]\s*$/i,``).trim(),r=[...n.matchAll(/\[([^\]]*)\]/g)].map(e=>e[1]).filter(Boolean);return r.length===0?n||void 0:r.slice(2).join(`.`)||r.join(`.`)}var $e={supportsAnalyze:!0,statements:(e,t)=>({before:[t?`SET STATISTICS PROFILE ON`:`SET SHOWPLAN_ALL ON`],statement:e,after:[t?`SET STATISTICS PROFILE OFF`:`SET SHOWPLAN_ALL OFF`]}),parse:e=>{let t=_(e),n=t.map(e=>T(e.StmtText)).join(``);return{roots:De(t,e=>{let t=T(e.PhysicalOp),n=T(e.LogicalOp),r=T(e.Argument),i=t||T(e.StmtText).trim().replace(/\s+/g,` `).slice(0,120);if(!i)return null;let a=[];/Table Scan|Clustered Index Scan|Index Scan/i.test(t)&&a.push(`full-scan`),T(e.Warnings)&&a.push(`no-index`),/Sort/i.test(t)&&a.push(`filesort`);let o=[];n&&n!==t&&o.push({label:`Logical operation`,value:n}),r&&o.push({label:`Argument`,value:r});for(let t of[`EstimateIO`,`EstimateCPU`,`AvgRowSize`,`EstimateExecutions`,`Parallel`,`OutputList`]){let n=T(e[t]);n&&o.push({label:Te(t),value:n})}let s=w(e.EstimateRows),c=`Rows`in e?w(e.Rows):null,l=w(e.Executes);l!==null&&o.push({label:`Executes`,value:String(l)});let u=c!==null&&l!==null&&l>0?c/l:null;a.push(...E(s,u));let d=w(e.NodeId),ee=w(e.Parent);return{id:d,parent:ee===0?null:ee,node:C(i,{object:t?Qe(r):void 0,rows:s,actualRows:c,cost:w(e.TotalSubtreeCost),details:o,warnings:a})}}),raw:n}}},et=`PLANCHE_PLAN`,tt=`sql_id = (SELECT prev_sql_id FROM v$session WHERE sid = SYS_CONTEXT('USERENV','SID')) AND child_number = (SELECT prev_child_number FROM v$session WHERE sid = SYS_CONTEXT('USERENV','SID'))`,nt={supportsAnalyze:!0,statements:(e,t)=>t?{before:[`ALTER SESSION SET STATISTICS_LEVEL = ALL`,e],statement:`SELECT id, parent_id, operation, options, object_name, cardinality, cost, bytes, last_output_rows, last_elapsed_time, last_starts, access_predicates, filter_predicates FROM v$sql_plan_statistics_all WHERE ${tt} ORDER BY id`,after:[`ALTER SESSION SET STATISTICS_LEVEL = TYPICAL`]}:{before:[`DELETE FROM plan_table WHERE statement_id = '${et}'`,`EXPLAIN PLAN SET STATEMENT_ID = '${et}' FOR ${e}`],statement:`SELECT id, parent_id, operation, options, object_name, cardinality, cost, bytes, access_predicates, filter_predicates FROM plan_table WHERE statement_id = '${et}' ORDER BY id`,after:[`DELETE FROM plan_table WHERE statement_id = '${et}'`]},parse:e=>{let t=_(e),n=t.map(e=>`${e.ID}|${e.PARENT_ID}|${T(e.OPERATION)} ${T(e.OPTIONS)} ${T(e.OBJECT_NAME)}`.trim()).join(`
7
+ `);return{roots:De(t,e=>{let t=T(e.OPERATION??e.operation);if(!t)return null;let n=T(e.OPTIONS??e.options),r=T(e.OBJECT_NAME??e.object_name)||void 0,i=[];t===`TABLE ACCESS`&&n===`FULL`&&i.push(`full-scan`),t===`SORT`&&n!==`AGGREGATE`&&i.push(`filesort`);let a=[];for(let[t,n]of[[`BYTES`,`Bytes`],[`ACCESS_PREDICATES`,`Access predicates`],[`FILTER_PREDICATES`,`Filter predicates`]]){let r=T(e[t]??e[t.toLowerCase()]);r&&a.push({label:n,value:r})}let o=w(e.CARDINALITY??e.cardinality),s=w(e.LAST_OUTPUT_ROWS??e.last_output_rows),c=w(e.LAST_ELAPSED_TIME??e.last_elapsed_time),l=w(e.LAST_STARTS??e.last_starts);l!==null&&a.push({label:`Starts`,value:String(l)});let u=s!==null&&l!==null&&l>0?s/l:null;return i.push(...E(o,u)),{id:w(e.ID??e.id),parent:w(e.PARENT_ID??e.parent_id),node:C(n?`${t} ${n}`:t,{object:r,rows:o,actualRows:s,cost:w(e.COST??e.cost),timeMs:c===null?null:c/1e3,details:a,warnings:i})}}),raw:n}}},O=e=>`\`${e.replaceAll("`","``")}\``,rt=(e,t)=>`${O(e)}.${O(t)}`,k=e=>`'${e.replace(/\\/g,`\\\\`).replace(/'/g,`''`)}'`;function it(e){let t=v(e).toUpperCase();return t===`PRI`||t===`UNI`||t===`MUL`?t:``}function at(e,t,n){if(e===`PRIMARY`)return`PRIMARY`;let r=v(n).toUpperCase();return r===`FULLTEXT`?`FULLTEXT`:r===`SPATIAL`?`SPATIAL`:Number(t)===0?`UNIQUE`:`INDEX`}function ot(e){return{name:v(e.Name??e.TABLE_NAME),engine:y(e.Engine??e.ENGINE),rows:b(e.Rows??e.TABLE_ROWS),collation:y(e.Collation??e.TABLE_COLLATION),autoIncrement:y(e.Auto_increment??e.AUTO_INCREMENT),comment:v(e.Comment??e.TABLE_COMMENT),createTime:y(e.Create_time??e.CREATE_TIME),updateTime:y(e.Update_time??e.UPDATE_TIME),dataLength:b(e.Data_length??e.DATA_LENGTH)}}function st(e){return{name:v(e.Field??e.COLUMN_NAME),type:v(e.Type??e.COLUMN_TYPE),nullable:v(e.Null??e.IS_NULLABLE).toUpperCase()===`YES`,key:it(e.Key??e.COLUMN_KEY),defaultValue:y(e.Default??e.COLUMN_DEFAULT),extra:v(e.Extra??e.EXTRA),comment:v(e.Comment??e.COLUMN_COMMENT),collation:y(e.Collation??e.COLLATION_NAME)}}function ct(e){let t=new Map;for(let n of e){let e=v(n.Table??n.TABLE_NAME),r=v(n.Key_name??n.INDEX_NAME),i=v(n.Column_name??n.COLUMN_NAME),a=t.get(e);a||(a=new Map,t.set(e,a));let o=a.get(r);o?o.columns.push(i):a.set(r,{name:r,type:at(r,n.Non_unique??n.NON_UNIQUE,n.Index_type??n.INDEX_TYPE),columns:[i]})}return new Map(Array.from(t,([e,t])=>[e,Array.from(t.values())]))}var lt={TABLE:`TABLE`,VIEW:`VIEW`,PROCEDURE:`PROCEDURE`,FUNCTION:`FUNCTION`,TRIGGER:`TRIGGER`,EVENT:`EVENT`},ut={async listDatabases(e){return(await e(`SHOW DATABASES`)).records.map(e=>v(e[0]))},async listTables(e,t){return _(await e(`SHOW TABLE STATUS FROM ${O(t)} WHERE ENGINE IS NOT NULL`,t)).map(ot)},async listViews(e,t){return(await e(`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = ${k(t)} ORDER BY TABLE_NAME`,t)).records.map(e=>v(e[0]))},async listProcedures(e,t){return _(await e(`SHOW PROCEDURE STATUS WHERE DB = ${k(t)}`,t)).map(e=>v(e.Name))},async listFunctions(e,t){return _(await e(`SHOW FUNCTION STATUS WHERE DB = ${k(t)}`,t)).map(e=>v(e.Name))},async listTriggers(e,t){return _(await e(`SHOW TRIGGERS FROM ${O(t)}`,t)).map(e=>v(e.Trigger))},async listEvents(e,t){return(await e(`SELECT EVENT_NAME FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA = ${k(t)} ORDER BY EVENT_NAME`,t)).records.map(e=>v(e[0]))},async listColumns(e,t,n){return _(await e(`SHOW FULL COLUMNS FROM ${rt(t,n)}`,t)).map(st)},async listIndexes(e,t,n){return ct(_(await e(`SHOW INDEX FROM ${rt(t,n)}`,t))).get(n)??[]},async listAllColumns(e,t){let n=await e(`SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT,
8
8
  EXTRA, COLUMN_COMMENT, COLLATION_NAME
9
9
  FROM information_schema.COLUMNS
10
- WHERE TABLE_SCHEMA = ${j(t)}
11
- ORDER BY TABLE_NAME, ORDINAL_POSITION`,t),r=new Map;for(let e of _(n)){let t=v(e.TABLE_NAME),n=r.get(t)??[];n.push(at(e)),r.set(t,n)}return r},async listAllIndexes(e,t){return ot(_(await e(`SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME, NON_UNIQUE, INDEX_TYPE
10
+ WHERE TABLE_SCHEMA = ${k(t)}
11
+ ORDER BY TABLE_NAME, ORDINAL_POSITION`,t),r=new Map;for(let e of _(n)){let t=v(e.TABLE_NAME),n=r.get(t)??[];n.push(st(e)),r.set(t,n)}return r},async listAllIndexes(e,t){return ct(_(await e(`SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME, NON_UNIQUE, INDEX_TYPE
12
12
  FROM information_schema.STATISTICS
13
- WHERE TABLE_SCHEMA = ${j(t)}
13
+ WHERE TABLE_SCHEMA = ${k(t)}
14
14
  ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX`,t)))},async listForeignKeys(e,t){return(await e(`SELECT CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
15
15
  FROM information_schema.KEY_COLUMN_USAGE
16
- WHERE TABLE_SCHEMA = ${j(t)} AND REFERENCED_TABLE_NAME IS NOT NULL
17
- ORDER BY TABLE_NAME, CONSTRAINT_NAME, ORDINAL_POSITION`,t)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){let r=_(await e(`SHOW TABLE STATUS FROM ${A(t)} LIKE ${j(n)}`,t));return r.length>0?it(r[0]):null},async getPrimaryKeys(e,t,n){return _(await e(`SHOW KEYS FROM ${tt(t,n)} WHERE Key_name = 'PRIMARY'`,t)).map(e=>v(e.Column_name))},async getCreateStatement(e,t,n,r){let i=await e(`SHOW CREATE ${st[n]} ${tt(t,r)}`,t);if(i.records.length===0)return null;let a=i.fields.findIndex(e=>/^create /i.test(e.name)),o=i.records[0];return y(a>=0?o[a]:o.find(e=>/create/i.test(v(e))))}},lt={SELECT_ALL_USER:"SELECT * FROM `mysql`.`user`",SELECT_USER:'SELECT * FROM `mysql`.`user` WHERE user="{0}" AND host="{1}"',SELECT_COUNT:"SELECT COUNT(1) as cnt FROM `{0}`.`{1}`",CREATE_USER:'CREATE USER `{0}`@`{1}` IDENTIFIED BY "{2}"',DELETE_USER:"DROP USER `{0}`@`{1}`",GRANT:"GRANT {0} ON {3} TO `{1}`@`{2}` {4}",REVOKE:"REVOKE {0} ON {3} FROM `{1}`@`{2}`",RENAME_USER:"RENAME USER `{0}`@`{1}` TO `{2}`@`{3}`",USER_PRIV:'SELECT * FROM `mysql`.`user` WHERE USER = "{0}" AND HOST = "{1}"',USER_DATABASE_PRIV:'SELECT * FROM `mysql`.`db` WHERE USER = "{0}" AND HOST = "{1}"',USER_TABLE_PRIV:'SELECT Db, Table_name, Table_priv FROM `mysql`.`tables_priv` WHERE USER = "{0}" AND HOST = "{1}"',USER_COLUMN_PRIV:'SELECT Db, Table_name, Column_name, Column_priv FROM `mysql`.`columns_priv` WHERE USER = "{0}" AND HOST = "{1}"',USER_PROC_PRIV:'SELECT Db, Routine_name, Routine_type, Proc_priv FROM `mysql`.`procs_priv` WHERE USER = "{0}" AND HOST = "{1}"',SHOW_FULL_FIELDS:"SHOW FULL FIELDS FROM `{0}`.`{1}`",SHOW_DATABASE_VIEWS:"SHOW FULL TABLES FROM `{0}` WHERE TABLE_TYPE LIKE 'VIEW'",SHOW_DATABASE_TABLES:"SHOW FULL TABLES FROM `{0}` WHERE table_type = 'BASE TABLE'",SHOW_ADVANCED_PROPERTIES:'SHOW TABLE STATUS FROM `{0}` LIKE "{1}"',SHOW_DATABASE:`SHOW DATABASES`,ADD_INDEX:"CREATE {3} INDEX {2} ON `{0}`.`{1}`({4}) {5}",SHOW_INDEX:'SHOW INDEX FROM `{0}`.`{1}` WHERE key_name="{2}"',SHOW_INDEXES:"SHOW INDEX FROM `{0}`.`{1}`",DROP_INDEX:"DROP INDEX {2} ON `{0}`.`{1}`",DROP_PROCEDURE:"DROP PROCEDURE {2} `{0}`.`{1}`",DROP_FUNCTION:"DROP FUNCTION {2} `{0}`.`{1}`",DROP_TRIGGER:"DROP TRIGGER {2} `{0}`.`{1}`",DROP_EVENT:"DROP EVENT {2} `{0}`.`{1}`",DROP_VIEW:"DROP VIEW {2} `{0}`.`{1}`",SHOW_PROCEDURES:`SHOW PROCEDURE STATUS WHERE DB = "{0}"`,SHOW_FUNCTIONS:`SHOW FUNCTION STATUS WHERE DB = "{0}"`,SHOW_TRIGGERS:"SHOW TRIGGERS FROM `{0}`",SHOW_EVENTS:'SELECT `Event_name`,`Definer`,`Event_type`,`Execute_at`,`Interval_value`,`Interval_field`,`Starts`,`Ends`,`Status` FROM `INFORMATION_SCHEMA`.`EVENTS` WHERE `EVENT_SCHEMA` = "{0}"',SHOW_VIEWS:'SELECT `TABLE_NAME` AS View_name,`View_definition`,`Check_option`,`Is_updatable`,`Definer`,`Security_type` FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = "{0}"',SHOW_DATABASE_DDL:"SHOW CREATE DATABASE `{0}`",SHOW_ALL_TABLE_STATUS:"SHOW TABLE STATUS FROM `{0}` WHERE ENGINE IS NOT NULL",SHOW_TABLE_STATUS:'SHOW TABLE STATUS FROM `{0}` like "{1}"',CHANGE_TABLE_TYPE:"ALTER TABLE `{0}`.`{1}` ENGINE = {2}",INSERT_TABLE:"INSERT INTO `{0}`.`{1}` ({2}) VALUES({3});",INSERT_TABLE_BULK:"INSERT INTO `{0}`.`{1}` ({2}) VALUES {3};",INSERT_DEFAULT_VALUES:"INSERT INTO `{0}`.`{1}` () VALUES ();",INSERT_ON_DUPLICATE:"INSERT INTO `{0}`.`{1}` ({2}) VALUES({3}) ON DUPLICATE KEY UPDATE {4}",UPDATE_TABLE:"UPDATE `{0}`.`{1}` SET {2} WHERE {3};",DELETE_TABLE:"DELETE FROM `{0}`.`{1}` WHERE {2};",SELECT_TABLE:"SELECT {2} FROM `{0}`.`{1}` {3};",TRUNCATE_TABLE:"TRUNCATE TABLE `{0}`.`{1}`",RENAME_TABLE:"RENAME TABLE `{0}`.`{1}` TO `{2}`.`{3}`",DROP_TABLE:"DROP TABLE {2} `{0}`.`{1}`",TABLE_CREATE_INFO:"SHOW CREATE TABLE `{0}`.`{1}`",TABLE_KEYS_INFO:"SHOW KEYS FROM `{0}`.`{1}`",INDEX_KEYS_INFO:'SHOW KEYS FROM `{0}`.`{1}` WHERE key_name="{2}"',CREATE_PROCEDURE:`DELIMITER $$
16
+ WHERE TABLE_SCHEMA = ${k(t)} AND REFERENCED_TABLE_NAME IS NOT NULL
17
+ ORDER BY TABLE_NAME, CONSTRAINT_NAME, ORDINAL_POSITION`,t)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){let r=_(await e(`SHOW TABLE STATUS FROM ${O(t)} LIKE ${k(n)}`,t));return r.length>0?ot(r[0]):null},async getPrimaryKeys(e,t,n){return _(await e(`SHOW KEYS FROM ${rt(t,n)} WHERE Key_name = 'PRIMARY'`,t)).map(e=>v(e.Column_name))},async getCreateStatement(e,t,n,r){let i=await e(`SHOW CREATE ${lt[n]} ${rt(t,r)}`,t);if(i.records.length===0)return null;let a=i.fields.findIndex(e=>/^create /i.test(e.name)),o=i.records[0];return y(a>=0?o[a]:o.find(e=>/create/i.test(v(e))))}},dt={SELECT_ALL_USER:"SELECT * FROM `mysql`.`user`",SELECT_USER:'SELECT * FROM `mysql`.`user` WHERE user="{0}" AND host="{1}"',SELECT_COUNT:"SELECT COUNT(1) as cnt FROM `{0}`.`{1}`",CREATE_USER:'CREATE USER `{0}`@`{1}` IDENTIFIED BY "{2}"',DELETE_USER:"DROP USER `{0}`@`{1}`",GRANT:"GRANT {0} ON {3} TO `{1}`@`{2}` {4}",REVOKE:"REVOKE {0} ON {3} FROM `{1}`@`{2}`",RENAME_USER:"RENAME USER `{0}`@`{1}` TO `{2}`@`{3}`",USER_PRIV:'SELECT * FROM `mysql`.`user` WHERE USER = "{0}" AND HOST = "{1}"',USER_DATABASE_PRIV:'SELECT * FROM `mysql`.`db` WHERE USER = "{0}" AND HOST = "{1}"',USER_TABLE_PRIV:'SELECT Db, Table_name, Table_priv FROM `mysql`.`tables_priv` WHERE USER = "{0}" AND HOST = "{1}"',USER_COLUMN_PRIV:'SELECT Db, Table_name, Column_name, Column_priv FROM `mysql`.`columns_priv` WHERE USER = "{0}" AND HOST = "{1}"',USER_PROC_PRIV:'SELECT Db, Routine_name, Routine_type, Proc_priv FROM `mysql`.`procs_priv` WHERE USER = "{0}" AND HOST = "{1}"',SHOW_FULL_FIELDS:"SHOW FULL FIELDS FROM `{0}`.`{1}`",SHOW_DATABASE_VIEWS:"SHOW FULL TABLES FROM `{0}` WHERE TABLE_TYPE LIKE 'VIEW'",SHOW_DATABASE_TABLES:"SHOW FULL TABLES FROM `{0}` WHERE table_type = 'BASE TABLE'",SHOW_ADVANCED_PROPERTIES:'SHOW TABLE STATUS FROM `{0}` LIKE "{1}"',SHOW_DATABASE:`SHOW DATABASES`,ADD_INDEX:"CREATE {3} INDEX {2} ON `{0}`.`{1}`({4}) {5}",SHOW_INDEX:'SHOW INDEX FROM `{0}`.`{1}` WHERE key_name="{2}"',SHOW_INDEXES:"SHOW INDEX FROM `{0}`.`{1}`",DROP_INDEX:"DROP INDEX {2} ON `{0}`.`{1}`",DROP_PROCEDURE:"DROP PROCEDURE {2} `{0}`.`{1}`",DROP_FUNCTION:"DROP FUNCTION {2} `{0}`.`{1}`",DROP_TRIGGER:"DROP TRIGGER {2} `{0}`.`{1}`",DROP_EVENT:"DROP EVENT {2} `{0}`.`{1}`",DROP_VIEW:"DROP VIEW {2} `{0}`.`{1}`",SHOW_PROCEDURES:`SHOW PROCEDURE STATUS WHERE DB = "{0}"`,SHOW_FUNCTIONS:`SHOW FUNCTION STATUS WHERE DB = "{0}"`,SHOW_TRIGGERS:"SHOW TRIGGERS FROM `{0}`",SHOW_EVENTS:'SELECT `Event_name`,`Definer`,`Event_type`,`Execute_at`,`Interval_value`,`Interval_field`,`Starts`,`Ends`,`Status` FROM `INFORMATION_SCHEMA`.`EVENTS` WHERE `EVENT_SCHEMA` = "{0}"',SHOW_VIEWS:'SELECT `TABLE_NAME` AS View_name,`View_definition`,`Check_option`,`Is_updatable`,`Definer`,`Security_type` FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = "{0}"',SHOW_DATABASE_DDL:"SHOW CREATE DATABASE `{0}`",SHOW_ALL_TABLE_STATUS:"SHOW TABLE STATUS FROM `{0}` WHERE ENGINE IS NOT NULL",SHOW_TABLE_STATUS:'SHOW TABLE STATUS FROM `{0}` like "{1}"',CHANGE_TABLE_TYPE:"ALTER TABLE `{0}`.`{1}` ENGINE = {2}",INSERT_TABLE:"INSERT INTO `{0}`.`{1}` ({2}) VALUES({3});",INSERT_TABLE_BULK:"INSERT INTO `{0}`.`{1}` ({2}) VALUES {3};",INSERT_DEFAULT_VALUES:"INSERT INTO `{0}`.`{1}` () VALUES ();",INSERT_ON_DUPLICATE:"INSERT INTO `{0}`.`{1}` ({2}) VALUES({3}) ON DUPLICATE KEY UPDATE {4}",UPDATE_TABLE:"UPDATE `{0}`.`{1}` SET {2} WHERE {3};",DELETE_TABLE:"DELETE FROM `{0}`.`{1}` WHERE {2};",SELECT_TABLE:"SELECT {2} FROM `{0}`.`{1}` {3};",TRUNCATE_TABLE:"TRUNCATE TABLE `{0}`.`{1}`",RENAME_TABLE:"RENAME TABLE `{0}`.`{1}` TO `{2}`.`{3}`",DROP_TABLE:"DROP TABLE {2} `{0}`.`{1}`",TABLE_CREATE_INFO:"SHOW CREATE TABLE `{0}`.`{1}`",TABLE_KEYS_INFO:"SHOW KEYS FROM `{0}`.`{1}`",INDEX_KEYS_INFO:'SHOW KEYS FROM `{0}`.`{1}` WHERE key_name="{2}"',CREATE_PROCEDURE:`DELIMITER $$
18
18
  CREATE
19
19
  /*[DEFINER = { user | CURRENT_USER }]*/
20
20
  PROCEDURE \`{0}\`.\`{1}\`()
@@ -101,10 +101,10 @@ DELIMITER;`,ALTER_EVENT:`DELIMITER $$
101
101
  USE \`{0}\`$$
102
102
  DROP EVENT IF EXISTS \`{1}\`$$
103
103
  {2}$$
104
- DELIMITER;`,SHOW_PROCESS_LIST:`SHOW FULL PROCESSLIST`,SHOW_VARIABLES:`SHOW VARIABLES`,SHOW_STATUS:`SHOW STATUS`,SHOW_GLOBAL_STATUS:`SHOW GLOBAL STATUS`,SHOW_SESSION_STATUS:`SHOW SESSION STATUS`,CREATE_DATABASE:"CREATE DATABASE `{0}` CHARACTER SET {1} COLLATE {2}",ALTER_DATABASE:"ALTER DATABASE `{0}` CHARACTER SET {1} COLLATE {2}",DROP_DATABASE:"DROP DATABASE `{0}`",CREATE_SCHEMA:"CREATE SCHEMA `{0}`",DROP_SCHEMA:"DROP SCHEMA `{0}`",SHOW_CHARSET:`SHOW CHARSET`,SHOW_COLLATION:`SHOW COLLATION`,SHOW_COLUMNS:"SHOW FULL COLUMNS FROM `{0}`.`{1}`",CHARSET_DATABASE:`SHOW VARIABLES LIKE 'character_set_database'`,COLLATION_DATABASE:`SHOW VARIABLES LIKE 'collation_database'`,KILL_QUERY:`KILL {0}`,SHOW_DATABASES:`SHOW DATABASES`,COPY_TABLE_STRUCTURE:"CREATE TABLE `{2}`.`{3}` LIKE `{0}`.`{1}`",COPY_TABLE_DATA:"INSERT `{2}`.`{3}` SELECT * FROM `{0}`.`{1}`",UPDATE_TABLE_SINGLE:"UPDATE `{0}`.`{1}` SET {2} WHERE {3} LIMIT 1",START_TRANSACTION:`START TRANSACTION`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,SHOW_GLOBAL_VARIABLES:`SHOW GLOBAL VARIABLES`,SHOW_SESSION_VARIABLES:`SHOW SESSION VARIABLES`,DISABLE_FK_CHECKS:`SET FOREIGN_KEY_CHECKS = 0`,ENABLE_FK_CHECKS:`SET FOREIGN_KEY_CHECKS = 1`},ut=`ASCII.BIN.BIT_LENGTH.CHAR.CHAR_LENGTH.CHARACTER_LENGTH.CONCAT.CONCAT_WS.ELT.EXPORT_SET.FIELD.FIND_IN_SET.FORMAT.FROM_BASE64.HEX.INSERT.INSTR.LCASE.LEFT.LENGTH.LOAD_FILE.LOCATE.LOWER.LPAD.LTRIM.MAKE_SET.MID.OCT.OCTET_LENGTH.ORD.POSITION.QUOTE.REGEXP_INSTR.REGEXP_LIKE.REGEXP_REPLACE.REGEXP_SUBSTR.REPEAT.REPLACE.REVERSE.RIGHT.RPAD.RTRIM.SOUNDEX.SPACE.STRCMP.SUBSTR.SUBSTRING.SUBSTRING_INDEX.TO_BASE64.TRIM.UCASE.UNHEX.UPPER.WEIGHT_STRING.ABS.ACOS.ASIN.ATAN.ATAN2.CEIL.CEILING.CONV.COS.COT.CRC32.DEGREES.EXP.FLOOR.LN.LOG.LOG10.LOG2.MOD.PI.POW.POWER.RADIANS.RAND.ROUND.SIGN.SIN.SQRT.TAN.TRUNCATE.ADDDATE.ADDTIME.CONVERT_TZ.CURDATE.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.CURTIME.DATE.DATE_ADD.DATE_FORMAT.DATE_SUB.DATEDIFF.DAY.DAYNAME.DAYOFMONTH.DAYOFWEEK.DAYOFYEAR.EXTRACT.FROM_DAYS.FROM_UNIXTIME.GET_FORMAT.HOUR.LAST_DAY.LOCALTIME.LOCALTIMESTAMP.MAKEDATE.MAKETIME.MICROSECOND.MINUTE.MONTH.MONTHNAME.NOW.PERIOD_ADD.PERIOD_DIFF.QUARTER.SEC_TO_TIME.SECOND.STR_TO_DATE.SUBDATE.SUBTIME.SYSDATE.TIME.TIME_FORMAT.TIME_TO_SEC.TIMEDIFF.TIMESTAMP.TIMESTAMPADD.TIMESTAMPDIFF.TO_DAYS.TO_SECONDS.UNIX_TIMESTAMP.UTC_DATE.UTC_TIME.UTC_TIMESTAMP.WEEK.WEEKDAY.WEEKOFYEAR.YEAR.YEARWEEK.BINARY.CAST.COALESCE.CONVERT.GREATEST.IF.IFNULL.INTERVAL.ISNULL.LEAST.NULLIF.AVG.BIT_AND.BIT_OR.BIT_XOR.COUNT.GROUP_CONCAT.JSON_ARRAYAGG.JSON_OBJECTAGG.MAX.MIN.STD.STDDEV.STDDEV_POP.STDDEV_SAMP.SUM.VAR_POP.VAR_SAMP.VARIANCE.CUME_DIST.DENSE_RANK.FIRST_VALUE.LAG.LAST_VALUE.LEAD.NTH_VALUE.NTILE.PERCENT_RANK.RANK.ROW_NUMBER.JSON_ARRAY.JSON_ARRAY_APPEND.JSON_ARRAY_INSERT.JSON_CONTAINS.JSON_CONTAINS_PATH.JSON_DEPTH.JSON_EXTRACT.JSON_INSERT.JSON_KEYS.JSON_LENGTH.JSON_MERGE_PATCH.JSON_MERGE_PRESERVE.JSON_OBJECT.JSON_OVERLAPS.JSON_PRETTY.JSON_QUOTE.JSON_REMOVE.JSON_REPLACE.JSON_SCHEMA_VALID.JSON_SCHEMA_VALIDATION_REPORT.JSON_SEARCH.JSON_SET.JSON_STORAGE_FREE.JSON_STORAGE_SIZE.JSON_TABLE.JSON_TYPE.JSON_UNQUOTE.JSON_VALID.JSON_VALUE.AES_DECRYPT.AES_ENCRYPT.COMPRESS.MD5.RANDOM_BYTES.SHA.SHA1.SHA2.STATEMENT_DIGEST.STATEMENT_DIGEST_TEXT.UNCOMPRESS.UNCOMPRESSED_LENGTH.VALIDATE_PASSWORD_STRENGTH.BENCHMARK.CHARSET.COERCIBILITY.COLLATION.CONNECTION_ID.CURRENT_ROLE.CURRENT_USER.DATABASE.FOUND_ROWS.ICU_VERSION.LAST_INSERT_ID.ROLES_GRAPHML.ROW_COUNT.SCHEMA.SESSION_USER.SYSTEM_USER.USER.VERSION.ANY_VALUE.BIN_TO_UUID.DEFAULT.FORMAT_BYTES.FORMAT_PICO_TIME.GET_LOCK.GROUPING.GTID_SUBSET.GTID_SUBTRACT.INET_ATON.INET_NTOA.INET6_ATON.INET6_NTOA.IS_FREE_LOCK.IS_IPV4.IS_IPV4_COMPAT.IS_IPV4_MAPPED.IS_IPV6.IS_USED_LOCK.IS_UUID.NAME_CONST.PS_CURRENT_THREAD_ID.PS_THREAD_ID.RELEASE_ALL_LOCKS.RELEASE_LOCK.SLEEP.SOURCE_POS_WAIT.UUID.UUID_SHORT.UUID_TO_BIN.VALUES.WAIT_FOR_EXECUTED_GTID_SET.EXTRACTVALUE.UPDATEXML.GEOMETRYCOLLECTION.LINESTRING.MULTILINESTRING.MULTIPOINT.MULTIPOLYGON.POINT.POLYGON.MBRCONTAINS.MBRCOVEREDBY.MBRCOVERS.MBRDISJOINT.MBREQUALS.MBRINTERSECTS.MBROVERLAPS.MBRTOUCHES.MBRWITHIN.ST_AREA.ST_ASBINARY.ST_ASGEOJSON.ST_ASTEXT.ST_BUFFER.ST_CENTROID.ST_CONTAINS.ST_CROSSES.ST_DIFFERENCE.ST_DIMENSION.ST_DISJOINT.ST_DISTANCE.ST_DISTANCE_SPHERE.ST_ENDPOINT.ST_ENVELOPE.ST_EQUALS.ST_EXTERIORRING.ST_GEOHASH.ST_GEOMCOLLFROMTEXT.ST_GEOMETRYN.ST_GEOMETRYTYPE.ST_GEOMFROMGEOJSON.ST_GEOMFROMTEXT.ST_GEOMFROMWKB.ST_INTERIORRINGN.ST_INTERSECTION.ST_INTERSECTS.ST_ISCLOSED.ST_ISEMPTY.ST_ISSIMPLE.ST_ISVALID.ST_LATITUDE.ST_LENGTH.ST_LINEFROMTEXT.ST_LONGITUDE.ST_MAKEENVELOPE.ST_NUMGEOMETRIES.ST_NUMINTERIORRING.ST_NUMPOINTS.ST_OVERLAPS.ST_POINTFROMTEXT.ST_POINTN.ST_POLYFROMTEXT.ST_SIMPLIFY.ST_SRID.ST_STARTPOINT.ST_SWAPXY.ST_SYMDIFFERENCE.ST_TOUCHES.ST_TRANSFORM.ST_UNION.ST_VALIDATE.ST_WITHIN.ST_X.ST_Y`.split(`.`),dt=`ACCESSIBLE.ADD.ALL.ALTER.ANALYZE.AND.AS.ASC.ASENSITIVE.BEFORE.BETWEEN.BIGINT.BINARY.BLOB.BOTH.BY.CALL.CASCADE.CASE.CHANGE.CHAR.CHARACTER.CHECK.COLLATE.COLUMN.CONDITION.CONSTRAINT.CONTINUE.CONVERT.CREATE.CROSS.CUBE.CUME_DIST.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.CURRENT_USER.CURSOR.DATABASE.DATABASES.DAY_HOUR.DAY_MICROSECOND.DAY_MINUTE.DAY_SECOND.DEC.DECIMAL.DECLARE.DEFAULT.DELAYED.DELETE.DENSE_RANK.DESC.DESCRIBE.DETERMINISTIC.DISTINCT.DISTINCTROW.DIV.DOUBLE.DROP.DUAL.EACH.ELSE.ELSEIF.EMPTY.ENCLOSED.ESCAPED.EXCEPT.EXISTS.EXIT.EXPLAIN.FALSE.FETCH.FIRST_VALUE.FLOAT.FLOAT4.FLOAT8.FOR.FORCE.FOREIGN.FROM.FULLTEXT.FUNCTION.GENERATED.GET.GRANT.GROUP.GROUPING.GROUPS.HAVING.HIGH_PRIORITY.HOUR_MICROSECOND.HOUR_MINUTE.HOUR_SECOND.IF.IGNORE.IN.INDEX.INFILE.INNER.INOUT.INSENSITIVE.INSERT.INT.INT1.INT2.INT3.INT4.INT8.INTEGER.INTERSECT.INTERVAL.INTO.IO_AFTER_GTIDS.IO_BEFORE_GTIDS.IS.ITERATE.JOIN.JSON_TABLE.KEY.KEYS.KILL.LAG.LAST_VALUE.LATERAL.LEAD.LEADING.LEAVE.LEFT.LIKE.LIMIT.LINEAR.LINES.LOAD.LOCALTIME.LOCALTIMESTAMP.LOCK.LONG.LONGBLOB.LONGTEXT.LOOP.LOW_PRIORITY.MASTER_SSL_VERIFY_SERVER_CERT.MATCH.MAXVALUE.MEDIUMBLOB.MEDIUMINT.MEDIUMTEXT.MIDDLEINT.MINUTE_MICROSECOND.MINUTE_SECOND.MOD.MODIFIES.NATURAL.NOT.NO_WRITE_TO_BINLOG.NTH_VALUE.NTILE.NULL.NUMERIC.OF.ON.OPTIMIZE.OPTIMIZER_COSTS.OPTION.OPTIONALLY.OR.ORDER.OUT.OUTER.OUTFILE.OVER.PARTITION.PERCENT_RANK.PRECISION.PRIMARY.PROCEDURE.PURGE.RANGE.RANK.READ.READS.READ_WRITE.REAL.RECURSIVE.REFERENCES.REGEXP.RELEASE.RENAME.REPEAT.REPLACE.REQUIRE.RESIGNAL.RESTRICT.RETURN.REVOKE.RIGHT.RLIKE.ROW.ROWS.ROW_NUMBER.SCHEMA.SCHEMAS.SECOND_MICROSECOND.SELECT.SENSITIVE.SEPARATOR.SET.SHOW.SIGNAL.SMALLINT.SPATIAL.SPECIFIC.SQL.SQLEXCEPTION.SQLSTATE.SQLWARNING.SQL_BIG_RESULT.SQL_CALC_FOUND_ROWS.SQL_SMALL_RESULT.SSL.STARTING.STORED.STRAIGHT_JOIN.SYSTEM.TABLE.TERMINATED.THEN.TINYBLOB.TINYINT.TINYTEXT.TO.TRAILING.TRIGGER.TRUE.UNDO.UNION.UNIQUE.UNLOCK.UNSIGNED.UPDATE.USAGE.USE.USING.UTC_DATE.UTC_TIME.UTC_TIMESTAMP.VALUES.VARBINARY.VARCHAR.VARCHARACTER.VARYING.VIRTUAL.WHEN.WHERE.WHILE.WINDOW.WITH.WRITE.XOR.YEAR_MONTH.ZEROFILL`.split(`.`),ft=`AUTO_INCREMENT.BEGIN.CHARSET.COMMENT.COMMIT.DO.END.ENGINE.EVENT.FIRST.FOLLOWING.IF EXISTS.IF NOT EXISTS.INVISIBLE.LAST.NULLS.OFFSET.PRECEDING.ROLLBACK.SAVEPOINT.START TRANSACTION.TEMPORARY.TRANSACTION.TRUNCATE.UNBOUNDED.VIEW.VISIBLE.CROSS JOIN.GROUP BY.INNER JOIN.INSERT INTO.LEFT JOIN.ON DUPLICATE KEY UPDATE.ORDER BY.PARTITION BY.RIGHT JOIN.UNION ALL`.split(`.`),pt=`tinyint.smallint.mediumint.int.integer.bigint.decimal.numeric.float.double.bit.bool.boolean.date.datetime.timestamp.time.year.char.varchar.binary.varbinary.tinyblob.blob.mediumblob.longblob.tinytext.text.mediumtext.longtext.enum.set.json.geometry.point.linestring.polygon.multipoint.multilinestring.multipolygon.geometrycollection`.split(`.`),mt={hashComments:!0,dashCommentNeedsSpace:!0,backslashEscapes:!0,doubleQuoteIsIdentifier:!1,bracketIdentifiers:!1,delimiterCommand:!0,dollarQuotes:!1,goBatchSeparator:!1,limitStyle:`limit`,plsqlBlocks:!1};function ht(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...f(e,{addColumn:`ADD COLUMN`,modify:`mysql`,qualifiedIndexNames:!1,dropIndexOnTable:!0,unqualifiedIndexTarget:!1,multiRowInsert:!0,mysqlAttributes:!0,fulltext:!0,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=e.columns.map(e=>{let r=` ${t(x(e.name,`column`))} ${e.type.toUpperCase()}`;return e.length&&(r+=`(${e.length})`),e.unsigned&&(r+=` UNSIGNED`),e.zerofill&&(r+=` ZEROFILL`),e.notNull&&(r+=` NOT NULL`),e.autoIncrement&&(r+=` AUTO_INCREMENT`),e.defaultValue&&(r+=` DEFAULT ${e.defaultValue}`),e.comment&&(r+=` COMMENT ${n(e.comment)}`),r}),a=e.columns.filter(e=>e.primaryKey).map(e=>t(e.name));a.length>0&&i.push(` PRIMARY KEY (${a.join(`, `)})`);for(let n of e.indexes){if(n.type===`PRIMARY`)continue;let e=n.columns.map(t).join(`, `),r=n.type===`UNIQUE`?`UNIQUE KEY`:n.type===`FULLTEXT`?`FULLTEXT KEY`:`KEY`;i.push(` ${r} ${t(n.name)} (${e})`)}let o=[];return e.options.engine&&o.push(`ENGINE=${e.options.engine}`),e.options.charset&&o.push(`DEFAULT CHARSET=${e.options.charset}`),e.options.collation&&o.push(`COLLATE=${e.options.collation}`),e.options.autoIncrement&&o.push(`AUTO_INCREMENT=${e.options.autoIncrement}`),e.options.comment&&o.push(`COMMENT=${n(e.options.comment)}`),`CREATE TABLE ${r(e.database,x(e.name,`untitled`))} (\n${i.join(`,
105
- `)}\n)${o.length?` `+o.join(` `):``};`}}}var gt={id:`mysql`,label:`MySQL`,capabilities:{multipleDatabases:!0,schemas:!1,users:!0,procedures:!0,functions:!0,triggers:!0,events:!0,processList:!0,variables:!0,status:!0,flush:!0,tableProperties:!0,implicitCommitDdl:!0,transactions:!0},explain:Ke,introspect:ct,ddl:ht,identifierQuote:"`",defaultPort:3306,queries:lt,syntax:mt,dataTypes:pt,functions:ut,reservedWords:[...dt,...ft]},_t=S(gt),vt=new Set(`REGEXP_LIKE.JSON_SCHEMA_VALIDATION_REPORT.JSON_STORAGE_FREE.JSON_STORAGE_SIZE.STATEMENT_DIGEST.STATEMENT_DIGEST_TEXT.VALIDATE_PASSWORD_STRENGTH.ICU_VERSION.ROLES_GRAPHML.ANY_VALUE.BIN_TO_UUID.UUID_TO_BIN.IS_UUID.GROUPING.FORMAT_BYTES.FORMAT_PICO_TIME.PS_CURRENT_THREAD_ID.PS_THREAD_ID.SOURCE_POS_WAIT.WAIT_FOR_EXECUTED_GTID_SET.ST_GEOHASH.ST_LATITUDE.ST_LONGITUDE.ST_MAKEENVELOPE.ST_SIMPLIFY.ST_TRANSFORM.ST_VALIDATE.ST_SWAPXY.CUBE.CUME_DIST.DENSE_RANK.EMPTY.FIRST_VALUE.GENERATED.GET.GROUPS.IO_AFTER_GTIDS.IO_BEFORE_GTIDS.JSON_TABLE.LAG.LAST_VALUE.LATERAL.LEAD.NTH_VALUE.NTILE.OF.OPTIMIZER_COSTS.PERCENT_RANK.RANK.STORED.SYSTEM.VIRTUAL`.split(`.`)),yt=`ADD_MONTHS.BINLOG_GTID_POS.COLUMN_ADD.COLUMN_CHECK.COLUMN_CREATE.COLUMN_DELETE.COLUMN_EXISTS.COLUMN_GET.COLUMN_JSON.COLUMN_LIST.CRC32C.DECODE.DECODE_ORACLE.DES_DECRYPT.DES_ENCRYPT.ENCODE.ENCRYPT.JSON_ARRAY_INTERSECT.JSON_COMPACT.JSON_DETAILED.JSON_EQUALS.JSON_EXISTS.JSON_KEY_VALUE.JSON_LOOSE.JSON_NORMALIZE.JSON_OBJECT_FILTER_KEYS.JSON_OBJECT_TO_ARRAY.JSON_QUERY.KDF.LASTVAL.MASTER_GTID_WAIT.MASTER_POS_WAIT.MEDIAN.NATURAL_SORT_KEY.NEXTVAL.NVL.NVL2.OLD_PASSWORD.PASSWORD.PERCENTILE_CONT.PERCENTILE_DISC.ROWNUM.SETVAL.SFORMAT.SYS_GUID.TO_CHAR.TRIM_ORACLE.VALUE`.split(`.`),bt=[`DELETE_DOMAIN_ID`,`DO_DOMAIN_IDS`,`IGNORE_DOMAIN_IDS`,`IGNORE_SERVER_IDS`,`MASTER_HEARTBEAT_PERIOD`,`OFFSET`,`PAGE_CHECKSUM`,`PARSE_VCOL_EXPR`,`POSITION`,`REF_SYSTEM_ID`,`RETURNING`,`SLOW`,`STATS_AUTO_RECALC`,`STATS_PERSISTENT`,`STATS_SAMPLE_PAGES`,`SEQUENCE`,`SYSTEM_TIME`,`SYSTEM_VERSIONING`,`WITHOUT`],xt=e=>e.filter(e=>!vt.has(e)),St=e=>[...new Set(e)],Ct=S({...gt,id:`maria`,label:`MariaDB`,explain:qe,dataTypes:[...pt,`inet4`,`inet6`,`uuid`],functions:St([...xt(ut),...yt]).sort(),reservedWords:St([...xt(dt),...bt,...ft])}),M=e=>`"${e.replaceAll(`"`,`""`)}"`,wt=(e,t)=>`${M(e)}.${M(t)}`,N=e=>`'${e.replace(/'/g,`''`)}'`,Tt=`n.nspname NOT LIKE 'pg\\_%' AND n.nspname <> 'information_schema'`;async function Et(e,t,n){return(await e(`SELECT c.relname FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
106
- WHERE n.nspname = ${N(t)} AND c.relkind IN (${n.map(N).join(`, `)}) ORDER BY c.relname`)).records.map(e=>v(e[0]))}async function Dt(e,t,n){return(await e(`SELECT DISTINCT p.proname FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace
107
- WHERE n.nspname = ${N(t)} AND p.prokind = ${N(n)} ORDER BY p.proname`)).records.map(e=>v(e[0]))}async function Ot(e,t,n){return _(await e(`SELECT c.relname AS table_name, a.attname AS name,
104
+ DELIMITER;`,SHOW_PROCESS_LIST:`SHOW FULL PROCESSLIST`,SHOW_VARIABLES:`SHOW VARIABLES`,SHOW_STATUS:`SHOW STATUS`,SHOW_GLOBAL_STATUS:`SHOW GLOBAL STATUS`,SHOW_SESSION_STATUS:`SHOW SESSION STATUS`,CREATE_DATABASE:"CREATE DATABASE `{0}` CHARACTER SET {1} COLLATE {2}",ALTER_DATABASE:"ALTER DATABASE `{0}` CHARACTER SET {1} COLLATE {2}",DROP_DATABASE:"DROP DATABASE `{0}`",CREATE_SCHEMA:"CREATE SCHEMA `{0}`",DROP_SCHEMA:"DROP SCHEMA `{0}`",SHOW_CHARSET:`SHOW CHARSET`,SHOW_COLLATION:`SHOW COLLATION`,SHOW_COLUMNS:"SHOW FULL COLUMNS FROM `{0}`.`{1}`",CHARSET_DATABASE:`SHOW VARIABLES LIKE 'character_set_database'`,COLLATION_DATABASE:`SHOW VARIABLES LIKE 'collation_database'`,KILL_QUERY:`KILL {0}`,SHOW_DATABASES:`SHOW DATABASES`,COPY_TABLE_STRUCTURE:"CREATE TABLE `{2}`.`{3}` LIKE `{0}`.`{1}`",COPY_TABLE_DATA:"INSERT `{2}`.`{3}` SELECT * FROM `{0}`.`{1}`",UPDATE_TABLE_SINGLE:"UPDATE `{0}`.`{1}` SET {2} WHERE {3} LIMIT 1",START_TRANSACTION:`START TRANSACTION`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,SHOW_GLOBAL_VARIABLES:`SHOW GLOBAL VARIABLES`,SHOW_SESSION_VARIABLES:`SHOW SESSION VARIABLES`,DISABLE_FK_CHECKS:`SET FOREIGN_KEY_CHECKS = 0`,ENABLE_FK_CHECKS:`SET FOREIGN_KEY_CHECKS = 1`},ft=`ASCII.BIN.BIT_LENGTH.CHAR.CHAR_LENGTH.CHARACTER_LENGTH.CONCAT.CONCAT_WS.ELT.EXPORT_SET.FIELD.FIND_IN_SET.FORMAT.FROM_BASE64.HEX.INSERT.INSTR.LCASE.LEFT.LENGTH.LOAD_FILE.LOCATE.LOWER.LPAD.LTRIM.MAKE_SET.MID.OCT.OCTET_LENGTH.ORD.POSITION.QUOTE.REGEXP_INSTR.REGEXP_LIKE.REGEXP_REPLACE.REGEXP_SUBSTR.REPEAT.REPLACE.REVERSE.RIGHT.RPAD.RTRIM.SOUNDEX.SPACE.STRCMP.SUBSTR.SUBSTRING.SUBSTRING_INDEX.TO_BASE64.TRIM.UCASE.UNHEX.UPPER.WEIGHT_STRING.ABS.ACOS.ASIN.ATAN.ATAN2.CEIL.CEILING.CONV.COS.COT.CRC32.DEGREES.EXP.FLOOR.LN.LOG.LOG10.LOG2.MOD.PI.POW.POWER.RADIANS.RAND.ROUND.SIGN.SIN.SQRT.TAN.TRUNCATE.ADDDATE.ADDTIME.CONVERT_TZ.CURDATE.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.CURTIME.DATE.DATE_ADD.DATE_FORMAT.DATE_SUB.DATEDIFF.DAY.DAYNAME.DAYOFMONTH.DAYOFWEEK.DAYOFYEAR.EXTRACT.FROM_DAYS.FROM_UNIXTIME.GET_FORMAT.HOUR.LAST_DAY.LOCALTIME.LOCALTIMESTAMP.MAKEDATE.MAKETIME.MICROSECOND.MINUTE.MONTH.MONTHNAME.NOW.PERIOD_ADD.PERIOD_DIFF.QUARTER.SEC_TO_TIME.SECOND.STR_TO_DATE.SUBDATE.SUBTIME.SYSDATE.TIME.TIME_FORMAT.TIME_TO_SEC.TIMEDIFF.TIMESTAMP.TIMESTAMPADD.TIMESTAMPDIFF.TO_DAYS.TO_SECONDS.UNIX_TIMESTAMP.UTC_DATE.UTC_TIME.UTC_TIMESTAMP.WEEK.WEEKDAY.WEEKOFYEAR.YEAR.YEARWEEK.BINARY.CAST.COALESCE.CONVERT.GREATEST.IF.IFNULL.INTERVAL.ISNULL.LEAST.NULLIF.AVG.BIT_AND.BIT_OR.BIT_XOR.COUNT.GROUP_CONCAT.JSON_ARRAYAGG.JSON_OBJECTAGG.MAX.MIN.STD.STDDEV.STDDEV_POP.STDDEV_SAMP.SUM.VAR_POP.VAR_SAMP.VARIANCE.CUME_DIST.DENSE_RANK.FIRST_VALUE.LAG.LAST_VALUE.LEAD.NTH_VALUE.NTILE.PERCENT_RANK.RANK.ROW_NUMBER.JSON_ARRAY.JSON_ARRAY_APPEND.JSON_ARRAY_INSERT.JSON_CONTAINS.JSON_CONTAINS_PATH.JSON_DEPTH.JSON_EXTRACT.JSON_INSERT.JSON_KEYS.JSON_LENGTH.JSON_MERGE_PATCH.JSON_MERGE_PRESERVE.JSON_OBJECT.JSON_OVERLAPS.JSON_PRETTY.JSON_QUOTE.JSON_REMOVE.JSON_REPLACE.JSON_SCHEMA_VALID.JSON_SCHEMA_VALIDATION_REPORT.JSON_SEARCH.JSON_SET.JSON_STORAGE_FREE.JSON_STORAGE_SIZE.JSON_TABLE.JSON_TYPE.JSON_UNQUOTE.JSON_VALID.JSON_VALUE.AES_DECRYPT.AES_ENCRYPT.COMPRESS.MD5.RANDOM_BYTES.SHA.SHA1.SHA2.STATEMENT_DIGEST.STATEMENT_DIGEST_TEXT.UNCOMPRESS.UNCOMPRESSED_LENGTH.VALIDATE_PASSWORD_STRENGTH.BENCHMARK.CHARSET.COERCIBILITY.COLLATION.CONNECTION_ID.CURRENT_ROLE.CURRENT_USER.DATABASE.FOUND_ROWS.ICU_VERSION.LAST_INSERT_ID.ROLES_GRAPHML.ROW_COUNT.SCHEMA.SESSION_USER.SYSTEM_USER.USER.VERSION.ANY_VALUE.BIN_TO_UUID.DEFAULT.FORMAT_BYTES.FORMAT_PICO_TIME.GET_LOCK.GROUPING.GTID_SUBSET.GTID_SUBTRACT.INET_ATON.INET_NTOA.INET6_ATON.INET6_NTOA.IS_FREE_LOCK.IS_IPV4.IS_IPV4_COMPAT.IS_IPV4_MAPPED.IS_IPV6.IS_USED_LOCK.IS_UUID.NAME_CONST.PS_CURRENT_THREAD_ID.PS_THREAD_ID.RELEASE_ALL_LOCKS.RELEASE_LOCK.SLEEP.SOURCE_POS_WAIT.UUID.UUID_SHORT.UUID_TO_BIN.VALUES.WAIT_FOR_EXECUTED_GTID_SET.EXTRACTVALUE.UPDATEXML.GEOMETRYCOLLECTION.LINESTRING.MULTILINESTRING.MULTIPOINT.MULTIPOLYGON.POINT.POLYGON.MBRCONTAINS.MBRCOVEREDBY.MBRCOVERS.MBRDISJOINT.MBREQUALS.MBRINTERSECTS.MBROVERLAPS.MBRTOUCHES.MBRWITHIN.ST_AREA.ST_ASBINARY.ST_ASGEOJSON.ST_ASTEXT.ST_BUFFER.ST_CENTROID.ST_CONTAINS.ST_CROSSES.ST_DIFFERENCE.ST_DIMENSION.ST_DISJOINT.ST_DISTANCE.ST_DISTANCE_SPHERE.ST_ENDPOINT.ST_ENVELOPE.ST_EQUALS.ST_EXTERIORRING.ST_GEOHASH.ST_GEOMCOLLFROMTEXT.ST_GEOMETRYN.ST_GEOMETRYTYPE.ST_GEOMFROMGEOJSON.ST_GEOMFROMTEXT.ST_GEOMFROMWKB.ST_INTERIORRINGN.ST_INTERSECTION.ST_INTERSECTS.ST_ISCLOSED.ST_ISEMPTY.ST_ISSIMPLE.ST_ISVALID.ST_LATITUDE.ST_LENGTH.ST_LINEFROMTEXT.ST_LONGITUDE.ST_MAKEENVELOPE.ST_NUMGEOMETRIES.ST_NUMINTERIORRING.ST_NUMPOINTS.ST_OVERLAPS.ST_POINTFROMTEXT.ST_POINTN.ST_POLYFROMTEXT.ST_SIMPLIFY.ST_SRID.ST_STARTPOINT.ST_SWAPXY.ST_SYMDIFFERENCE.ST_TOUCHES.ST_TRANSFORM.ST_UNION.ST_VALIDATE.ST_WITHIN.ST_X.ST_Y`.split(`.`),pt=`ACCESSIBLE.ADD.ALL.ALTER.ANALYZE.AND.AS.ASC.ASENSITIVE.BEFORE.BETWEEN.BIGINT.BINARY.BLOB.BOTH.BY.CALL.CASCADE.CASE.CHANGE.CHAR.CHARACTER.CHECK.COLLATE.COLUMN.CONDITION.CONSTRAINT.CONTINUE.CONVERT.CREATE.CROSS.CUBE.CUME_DIST.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.CURRENT_USER.CURSOR.DATABASE.DATABASES.DAY_HOUR.DAY_MICROSECOND.DAY_MINUTE.DAY_SECOND.DEC.DECIMAL.DECLARE.DEFAULT.DELAYED.DELETE.DENSE_RANK.DESC.DESCRIBE.DETERMINISTIC.DISTINCT.DISTINCTROW.DIV.DOUBLE.DROP.DUAL.EACH.ELSE.ELSEIF.EMPTY.ENCLOSED.ESCAPED.EXCEPT.EXISTS.EXIT.EXPLAIN.FALSE.FETCH.FIRST_VALUE.FLOAT.FLOAT4.FLOAT8.FOR.FORCE.FOREIGN.FROM.FULLTEXT.FUNCTION.GENERATED.GET.GRANT.GROUP.GROUPING.GROUPS.HAVING.HIGH_PRIORITY.HOUR_MICROSECOND.HOUR_MINUTE.HOUR_SECOND.IF.IGNORE.IN.INDEX.INFILE.INNER.INOUT.INSENSITIVE.INSERT.INT.INT1.INT2.INT3.INT4.INT8.INTEGER.INTERSECT.INTERVAL.INTO.IO_AFTER_GTIDS.IO_BEFORE_GTIDS.IS.ITERATE.JOIN.JSON_TABLE.KEY.KEYS.KILL.LAG.LAST_VALUE.LATERAL.LEAD.LEADING.LEAVE.LEFT.LIKE.LIMIT.LINEAR.LINES.LOAD.LOCALTIME.LOCALTIMESTAMP.LOCK.LONG.LONGBLOB.LONGTEXT.LOOP.LOW_PRIORITY.MASTER_SSL_VERIFY_SERVER_CERT.MATCH.MAXVALUE.MEDIUMBLOB.MEDIUMINT.MEDIUMTEXT.MIDDLEINT.MINUTE_MICROSECOND.MINUTE_SECOND.MOD.MODIFIES.NATURAL.NOT.NO_WRITE_TO_BINLOG.NTH_VALUE.NTILE.NULL.NUMERIC.OF.ON.OPTIMIZE.OPTIMIZER_COSTS.OPTION.OPTIONALLY.OR.ORDER.OUT.OUTER.OUTFILE.OVER.PARTITION.PERCENT_RANK.PRECISION.PRIMARY.PROCEDURE.PURGE.RANGE.RANK.READ.READS.READ_WRITE.REAL.RECURSIVE.REFERENCES.REGEXP.RELEASE.RENAME.REPEAT.REPLACE.REQUIRE.RESIGNAL.RESTRICT.RETURN.REVOKE.RIGHT.RLIKE.ROW.ROWS.ROW_NUMBER.SCHEMA.SCHEMAS.SECOND_MICROSECOND.SELECT.SENSITIVE.SEPARATOR.SET.SHOW.SIGNAL.SMALLINT.SPATIAL.SPECIFIC.SQL.SQLEXCEPTION.SQLSTATE.SQLWARNING.SQL_BIG_RESULT.SQL_CALC_FOUND_ROWS.SQL_SMALL_RESULT.SSL.STARTING.STORED.STRAIGHT_JOIN.SYSTEM.TABLE.TERMINATED.THEN.TINYBLOB.TINYINT.TINYTEXT.TO.TRAILING.TRIGGER.TRUE.UNDO.UNION.UNIQUE.UNLOCK.UNSIGNED.UPDATE.USAGE.USE.USING.UTC_DATE.UTC_TIME.UTC_TIMESTAMP.VALUES.VARBINARY.VARCHAR.VARCHARACTER.VARYING.VIRTUAL.WHEN.WHERE.WHILE.WINDOW.WITH.WRITE.XOR.YEAR_MONTH.ZEROFILL`.split(`.`),mt=`AUTO_INCREMENT.BEGIN.CHARSET.COMMENT.COMMIT.DO.END.ENGINE.EVENT.FIRST.FOLLOWING.IF EXISTS.IF NOT EXISTS.INVISIBLE.LAST.NULLS.OFFSET.PRECEDING.ROLLBACK.SAVEPOINT.START TRANSACTION.TEMPORARY.TRANSACTION.TRUNCATE.UNBOUNDED.VIEW.VISIBLE.CROSS JOIN.GROUP BY.INNER JOIN.INSERT INTO.LEFT JOIN.ON DUPLICATE KEY UPDATE.ORDER BY.PARTITION BY.RIGHT JOIN.UNION ALL`.split(`.`),ht=`tinyint.smallint.mediumint.int.integer.bigint.decimal.numeric.float.double.bit.bool.boolean.date.datetime.timestamp.time.year.char.varchar.binary.varbinary.tinyblob.blob.mediumblob.longblob.tinytext.text.mediumtext.longtext.enum.set.json.geometry.point.linestring.polygon.multipoint.multilinestring.multipolygon.geometrycollection`.split(`.`),gt={hashComments:!0,dashCommentNeedsSpace:!0,backslashEscapes:!0,doubleQuoteIsIdentifier:!1,bracketIdentifiers:!1,delimiterCommand:!0,dollarQuotes:!1,goBatchSeparator:!1,limitStyle:`limit`,plsqlBlocks:!1};function _t(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...f(e,{addColumn:`ADD COLUMN`,modify:`mysql`,qualifiedIndexNames:!1,dropIndexOnTable:!0,unqualifiedIndexTarget:!1,multiRowInsert:!0,mysqlAttributes:!0,fulltext:!0,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=e.columns.map(e=>{let r=` ${t(x(e.name,`column`))} ${e.type.toUpperCase()}`;return e.length&&(r+=`(${e.length})`),e.unsigned&&(r+=` UNSIGNED`),e.zerofill&&(r+=` ZEROFILL`),e.notNull&&(r+=` NOT NULL`),e.autoIncrement&&(r+=` AUTO_INCREMENT`),e.defaultValue&&(r+=` DEFAULT ${e.defaultValue}`),e.comment&&(r+=` COMMENT ${n(e.comment)}`),r}),a=e.columns.filter(e=>e.primaryKey).map(e=>t(e.name));a.length>0&&i.push(` PRIMARY KEY (${a.join(`, `)})`);for(let n of e.indexes){if(n.type===`PRIMARY`)continue;let e=n.columns.map(t).join(`, `),r=n.type===`UNIQUE`?`UNIQUE KEY`:n.type===`FULLTEXT`?`FULLTEXT KEY`:`KEY`;i.push(` ${r} ${t(n.name)} (${e})`)}let o=[];return e.options.engine&&o.push(`ENGINE=${e.options.engine}`),e.options.charset&&o.push(`DEFAULT CHARSET=${e.options.charset}`),e.options.collation&&o.push(`COLLATE=${e.options.collation}`),e.options.autoIncrement&&o.push(`AUTO_INCREMENT=${e.options.autoIncrement}`),e.options.comment&&o.push(`COMMENT=${n(e.options.comment)}`),`CREATE TABLE ${r(e.database,x(e.name,`untitled`))} (\n${i.join(`,
105
+ `)}\n)${o.length?` `+o.join(` `):``};`}}}var vt={id:`mysql`,label:`MySQL`,capabilities:{multipleDatabases:!0,schemas:!1,users:!0,procedures:!0,functions:!0,triggers:!0,events:!0,processList:!0,variables:!0,status:!0,flush:!0,tableProperties:!0,implicitCommitDdl:!0,transactions:!0},explain:qe,introspect:ut,ddl:_t,identifierQuote:"`",defaultPort:3306,queries:dt,syntax:gt,dataTypes:ht,functions:ft,reservedWords:[...pt,...mt]},yt=S(vt),bt=new Set(`REGEXP_LIKE.JSON_SCHEMA_VALIDATION_REPORT.JSON_STORAGE_FREE.JSON_STORAGE_SIZE.STATEMENT_DIGEST.STATEMENT_DIGEST_TEXT.VALIDATE_PASSWORD_STRENGTH.ICU_VERSION.ROLES_GRAPHML.ANY_VALUE.BIN_TO_UUID.UUID_TO_BIN.IS_UUID.GROUPING.FORMAT_BYTES.FORMAT_PICO_TIME.PS_CURRENT_THREAD_ID.PS_THREAD_ID.SOURCE_POS_WAIT.WAIT_FOR_EXECUTED_GTID_SET.ST_GEOHASH.ST_LATITUDE.ST_LONGITUDE.ST_MAKEENVELOPE.ST_SIMPLIFY.ST_TRANSFORM.ST_VALIDATE.ST_SWAPXY.CUBE.CUME_DIST.DENSE_RANK.EMPTY.FIRST_VALUE.GENERATED.GET.GROUPS.IO_AFTER_GTIDS.IO_BEFORE_GTIDS.JSON_TABLE.LAG.LAST_VALUE.LATERAL.LEAD.NTH_VALUE.NTILE.OF.OPTIMIZER_COSTS.PERCENT_RANK.RANK.STORED.SYSTEM.VIRTUAL`.split(`.`)),xt=`ADD_MONTHS.BINLOG_GTID_POS.COLUMN_ADD.COLUMN_CHECK.COLUMN_CREATE.COLUMN_DELETE.COLUMN_EXISTS.COLUMN_GET.COLUMN_JSON.COLUMN_LIST.CRC32C.DECODE.DECODE_ORACLE.DES_DECRYPT.DES_ENCRYPT.ENCODE.ENCRYPT.JSON_ARRAY_INTERSECT.JSON_COMPACT.JSON_DETAILED.JSON_EQUALS.JSON_EXISTS.JSON_KEY_VALUE.JSON_LOOSE.JSON_NORMALIZE.JSON_OBJECT_FILTER_KEYS.JSON_OBJECT_TO_ARRAY.JSON_QUERY.KDF.LASTVAL.MASTER_GTID_WAIT.MASTER_POS_WAIT.MEDIAN.NATURAL_SORT_KEY.NEXTVAL.NVL.NVL2.OLD_PASSWORD.PASSWORD.PERCENTILE_CONT.PERCENTILE_DISC.ROWNUM.SETVAL.SFORMAT.SYS_GUID.TO_CHAR.TRIM_ORACLE.VALUE`.split(`.`),St=[`DELETE_DOMAIN_ID`,`DO_DOMAIN_IDS`,`IGNORE_DOMAIN_IDS`,`IGNORE_SERVER_IDS`,`MASTER_HEARTBEAT_PERIOD`,`OFFSET`,`PAGE_CHECKSUM`,`PARSE_VCOL_EXPR`,`POSITION`,`REF_SYSTEM_ID`,`RETURNING`,`SLOW`,`STATS_AUTO_RECALC`,`STATS_PERSISTENT`,`STATS_SAMPLE_PAGES`,`SEQUENCE`,`SYSTEM_TIME`,`SYSTEM_VERSIONING`,`WITHOUT`],Ct=e=>e.filter(e=>!bt.has(e)),wt=e=>[...new Set(e)],Tt=S({...vt,id:`maria`,label:`MariaDB`,explain:Je,dataTypes:[...ht,`inet4`,`inet6`,`uuid`],functions:wt([...Ct(ft),...xt]).sort(),reservedWords:wt([...Ct(pt),...St,...mt])}),A=e=>`"${e.replaceAll(`"`,`""`)}"`,Et=(e,t)=>`${A(e)}.${A(t)}`,j=e=>`'${e.replace(/'/g,`''`)}'`,Dt=`n.nspname NOT LIKE 'pg\\_%' AND n.nspname <> 'information_schema'`;async function Ot(e,t,n){return(await e(`SELECT c.relname FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
106
+ WHERE n.nspname = ${j(t)} AND c.relkind IN (${n.map(j).join(`, `)}) ORDER BY c.relname`)).records.map(e=>v(e[0]))}async function kt(e,t,n){return(await e(`SELECT DISTINCT p.proname FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace
107
+ WHERE n.nspname = ${j(t)} AND p.prokind = ${j(n)} ORDER BY p.proname`)).records.map(e=>v(e[0]))}async function At(e,t,n){return _(await e(`SELECT c.relname AS table_name, a.attname AS name,
108
108
  format_type(a.atttypid, a.atttypmod) AS type,
109
109
  NOT a.attnotnull AS nullable,
110
110
  pg_get_expr(d.adbin, d.adrelid) AS default_value,
@@ -117,9 +117,9 @@ DELIMITER;`,SHOW_PROCESS_LIST:`SHOW FULL PROCESSLIST`,SHOW_VARIABLES:`SHOW VARIA
117
117
  JOIN pg_type t ON t.oid = a.atttypid
118
118
  LEFT JOIN pg_attrdef d ON d.adrelid = a.attrelid AND d.adnum = a.attnum
119
119
  LEFT JOIN pg_collation co ON co.oid = a.attcollation
120
- WHERE n.nspname = ${N(t)} AND c.relkind IN ('r', 'p', 'v', 'm', 'f')
121
- AND a.attnum > 0 AND NOT a.attisdropped${n?` AND c.relname = ${N(n)}`:``}
122
- ORDER BY c.relname, a.attnum`)).map(e=>({table:v(e.table_name),name:v(e.name),type:v(e.type),nullable:e.nullable===!0||e.nullable===`t`,defaultValue:y(e.default_value),identity:e.identity===!0||e.identity===`t`,comment:v(e.comment),collation:y(e.collation)}))}async function P(e,t,n){return _(await e(`SELECT t.relname AS table_name, i.relname AS name, ix.indisprimary AS is_primary, ix.indisunique AS is_unique,
120
+ WHERE n.nspname = ${j(t)} AND c.relkind IN ('r', 'p', 'v', 'm', 'f')
121
+ AND a.attnum > 0 AND NOT a.attisdropped${n?` AND c.relname = ${j(n)}`:``}
122
+ ORDER BY c.relname, a.attnum`)).map(e=>({table:v(e.table_name),name:v(e.name),type:v(e.type),nullable:e.nullable===!0||e.nullable===`t`,defaultValue:y(e.default_value),identity:e.identity===!0||e.identity===`t`,comment:v(e.comment),collation:y(e.collation)}))}async function M(e,t,n){return _(await e(`SELECT t.relname AS table_name, i.relname AS name, ix.indisprimary AS is_primary, ix.indisunique AS is_unique,
123
123
  array_to_string(ARRAY(
124
124
  SELECT COALESCE(a.attname, '<expr>')
125
125
  FROM unnest(ix.indkey) WITH ORDINALITY AS k(attnum, ord)
@@ -130,22 +130,22 @@ DELIMITER;`,SHOW_PROCESS_LIST:`SHOW FULL PROCESSLIST`,SHOW_VARIABLES:`SHOW VARIA
130
130
  JOIN pg_class t ON t.oid = ix.indrelid
131
131
  JOIN pg_class i ON i.oid = ix.indexrelid
132
132
  JOIN pg_namespace n ON n.oid = t.relnamespace
133
- WHERE n.nspname = ${N(t)}${n?` AND t.relname = ${N(n)}`:``}
133
+ WHERE n.nspname = ${j(t)}${n?` AND t.relname = ${j(n)}`:``}
134
134
  ORDER BY t.relname, ix.indisprimary DESC, i.relname`)).map(e=>({table:v(e.table_name),name:v(e.name),primary:e.is_primary===!0||e.is_primary===`t`,unique:e.is_unique===!0||e.is_unique===`t`,columns:v(e.columns).split(`
135
- `).filter(Boolean)}))}function kt(e){return{name:e.primary?`PRIMARY`:e.name,type:e.primary?`PRIMARY`:e.unique?`UNIQUE`:`INDEX`,columns:e.columns}}function At(e,t){let n=new Set,r=new Set,i=new Set;for(let e of t)e.primary?e.columns.forEach(e=>n.add(e)):e.unique&&e.columns.length===1?r.add(e.columns[0]):e.columns.length>0&&i.add(e.columns[0]);return e.map(e=>({name:e.name,type:e.type,nullable:e.nullable,key:n.has(e.name)?`PRI`:r.has(e.name)?`UNI`:i.has(e.name)?`MUL`:``,defaultValue:e.defaultValue,extra:e.identity||/^nextval\(/i.test(e.defaultValue??``)?`auto_increment`:``,comment:e.comment,collation:e.collation}))}function jt(e){let t=new Map;for(let n of e){let e=t.get(n.table);e?e.push(n):t.set(n.table,[n])}return t}async function Mt(e,t,n){return _(await e(`SELECT c.relname AS name, c.reltuples AS rows, obj_description(c.oid, 'pg_class') AS comment,
135
+ `).filter(Boolean)}))}function jt(e){return{name:e.primary?`PRIMARY`:e.name,type:e.primary?`PRIMARY`:e.unique?`UNIQUE`:`INDEX`,columns:e.columns}}function Mt(e,t){let n=new Set,r=new Set,i=new Set;for(let e of t)e.primary?e.columns.forEach(e=>n.add(e)):e.unique&&e.columns.length===1?r.add(e.columns[0]):e.columns.length>0&&i.add(e.columns[0]);return e.map(e=>({name:e.name,type:e.type,nullable:e.nullable,key:n.has(e.name)?`PRI`:r.has(e.name)?`UNI`:i.has(e.name)?`MUL`:``,defaultValue:e.defaultValue,extra:e.identity||/^nextval\(/i.test(e.defaultValue??``)?`auto_increment`:``,comment:e.comment,collation:e.collation}))}function Nt(e){let t=new Map;for(let n of e){let e=t.get(n.table);e?e.push(n):t.set(n.table,[n])}return t}async function Pt(e,t,n){return _(await e(`SELECT c.relname AS name, c.reltuples AS rows, obj_description(c.oid, 'pg_class') AS comment,
136
136
  pg_total_relation_size(c.oid) AS data_length
137
137
  FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
138
- WHERE n.nspname = ${N(t)} AND c.relkind IN ('r', 'p')${n?` AND c.relname = ${N(n)}`:``}
139
- ORDER BY c.relname`)).map(e=>{let t=b(e.rows);return{name:v(e.name),engine:null,rows:t!==null&&t>=0?Math.round(t):null,collation:null,autoIncrement:null,comment:v(e.comment),createTime:null,updateTime:null,dataLength:b(e.data_length)}})}async function Nt(e,t,n){let r=await Ot(e,t,n);if(r.length===0)return null;let i=_(await e(`SELECT con.conname AS name, con.contype AS type, pg_get_constraintdef(con.oid, true) AS def
138
+ WHERE n.nspname = ${j(t)} AND c.relkind IN ('r', 'p')${n?` AND c.relname = ${j(n)}`:``}
139
+ ORDER BY c.relname`)).map(e=>{let t=b(e.rows);return{name:v(e.name),engine:null,rows:t!==null&&t>=0?Math.round(t):null,collation:null,autoIncrement:null,comment:v(e.comment),createTime:null,updateTime:null,dataLength:b(e.data_length)}})}async function Ft(e,t,n){let r=await At(e,t,n);if(r.length===0)return null;let i=_(await e(`SELECT con.conname AS name, con.contype AS type, pg_get_constraintdef(con.oid, true) AS def
140
140
  FROM pg_constraint con
141
141
  JOIN pg_class c ON c.oid = con.conrelid
142
142
  JOIN pg_namespace n ON n.oid = c.relnamespace
143
- WHERE n.nspname = ${N(t)} AND c.relname = ${N(n)} ORDER BY con.contype, con.conname`)),a=wt(t,n),o=r.map(e=>{let t=` ${M(e.name)} ${e.type}`;return e.identity?t+=` GENERATED BY DEFAULT AS IDENTITY`:e.defaultValue&&(t+=` DEFAULT ${e.defaultValue}`),e.nullable||(t+=` NOT NULL`),e.collation&&(t+=` COLLATE ${M(e.collation)}`),t});for(let e of i)v(e.type)!==`n`&&o.push(` CONSTRAINT ${M(v(e.name))} ${v(e.def)}`);let s=[`CREATE TABLE ${a} (\n${o.join(`,
144
- `)}\n);`],c=new Set(i.map(e=>v(e.name))),l=_(await e(`SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = ${N(t)} AND tablename = ${N(n)} ORDER BY indexname`));for(let e of l)c.has(v(e.indexname))||s.push(`${v(e.indexdef)};`);let u=v((await Mt(e,t,n))[0]?.comment);u&&s.push(`COMMENT ON TABLE ${a} IS ${N(u)};`);for(let e of r)e.comment&&s.push(`COMMENT ON COLUMN ${a}.${M(e.name)} IS ${N(e.comment)};`);return s.join(`
145
- `)}async function Pt(e,t,n,r){return y((await e(`SELECT pg_get_functiondef(p.oid) FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace
146
- WHERE n.nspname = ${N(t)} AND p.proname = ${N(n)} AND p.prokind = ${N(r)} ORDER BY p.oid LIMIT 1`)).records[0]?.[0])}async function Ft(e,t){return(await e(`SELECT t.tgname, c.relname FROM pg_trigger t
143
+ WHERE n.nspname = ${j(t)} AND c.relname = ${j(n)} ORDER BY con.contype, con.conname`)),a=Et(t,n),o=r.map(e=>{let t=` ${A(e.name)} ${e.type}`;return e.identity?t+=` GENERATED BY DEFAULT AS IDENTITY`:e.defaultValue&&(t+=` DEFAULT ${e.defaultValue}`),e.nullable||(t+=` NOT NULL`),e.collation&&(t+=` COLLATE ${A(e.collation)}`),t});for(let e of i)v(e.type)!==`n`&&o.push(` CONSTRAINT ${A(v(e.name))} ${v(e.def)}`);let s=[`CREATE TABLE ${a} (\n${o.join(`,
144
+ `)}\n);`],c=new Set(i.map(e=>v(e.name))),l=_(await e(`SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = ${j(t)} AND tablename = ${j(n)} ORDER BY indexname`));for(let e of l)c.has(v(e.indexname))||s.push(`${v(e.indexdef)};`);let u=v((await Pt(e,t,n))[0]?.comment);u&&s.push(`COMMENT ON TABLE ${a} IS ${j(u)};`);for(let e of r)e.comment&&s.push(`COMMENT ON COLUMN ${a}.${A(e.name)} IS ${j(e.comment)};`);return s.join(`
145
+ `)}async function It(e,t,n,r){return y((await e(`SELECT pg_get_functiondef(p.oid) FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace
146
+ WHERE n.nspname = ${j(t)} AND p.proname = ${j(n)} AND p.prokind = ${j(r)} ORDER BY p.oid LIMIT 1`)).records[0]?.[0])}async function Lt(e,t){return(await e(`SELECT t.tgname, c.relname FROM pg_trigger t
147
147
  JOIN pg_class c ON c.oid = t.tgrelid JOIN pg_namespace n ON n.oid = c.relnamespace
148
- WHERE n.nspname = ${N(t)} AND NOT t.tgisinternal ORDER BY c.relname, t.tgname`)).records.map(e=>({name:v(e[0]),table:v(e[1])}))}var It={TABLE:[`r`,`p`,`f`],VIEW:[`v`,`m`]},Lt={async listCatalogs(e){return(await e(`SELECT datname FROM pg_database WHERE NOT datistemplate ORDER BY datname`)).records.map(e=>v(e[0]))},async currentCatalog(e){return v((await e(`SELECT current_database()`)).records[0]?.[0])},async listDatabases(e){return(await e(`SELECT n.nspname FROM pg_namespace n WHERE ${Tt} ORDER BY (n.nspname <> 'public'), n.nspname`)).records.map(e=>v(e[0]))},listTables:(e,t)=>Mt(e,t),listViews:(e,t)=>Et(e,t,It.VIEW),listProcedures:(e,t)=>Dt(e,t,`p`),listFunctions:(e,t)=>Dt(e,t,`f`),async listTriggers(e,t){return(await Ft(e,t)).map(e=>e.name)},listTriggerDetails:Ft,listEvents:async()=>[],async listColumns(e,t,n){let[r,i]=await Promise.all([Ot(e,t,n),P(e,t,n)]);return At(r,i)},async listIndexes(e,t,n){return(await P(e,t,n)).map(kt)},async listAllColumns(e,t){let[n,r]=await Promise.all([Ot(e,t),P(e,t)]),i=jt(r),a=new Map;for(let[e,t]of jt(n))a.set(e,At(t,i.get(e)??[]));return a},async listAllIndexes(e,t){let n=new Map;for(let[r,i]of jt(await P(e,t)))n.set(r,i.map(kt));return n},async listForeignKeys(e,t){return(await e(`SELECT con.conname, c.relname, a.attname, rc.relname AS ref_table, ra.attname AS ref_column
148
+ WHERE n.nspname = ${j(t)} AND NOT t.tgisinternal ORDER BY c.relname, t.tgname`)).records.map(e=>({name:v(e[0]),table:v(e[1])}))}var Rt={TABLE:[`r`,`p`,`f`],VIEW:[`v`,`m`]},zt={async listCatalogs(e){return(await e(`SELECT datname FROM pg_database WHERE NOT datistemplate ORDER BY datname`)).records.map(e=>v(e[0]))},async currentCatalog(e){return v((await e(`SELECT current_database()`)).records[0]?.[0])},async listDatabases(e){return(await e(`SELECT n.nspname FROM pg_namespace n WHERE ${Dt} ORDER BY (n.nspname <> 'public'), n.nspname`)).records.map(e=>v(e[0]))},listTables:(e,t)=>Pt(e,t),listViews:(e,t)=>Ot(e,t,Rt.VIEW),listProcedures:(e,t)=>kt(e,t,`p`),listFunctions:(e,t)=>kt(e,t,`f`),async listTriggers(e,t){return(await Lt(e,t)).map(e=>e.name)},listTriggerDetails:Lt,listEvents:async()=>[],async listColumns(e,t,n){let[r,i]=await Promise.all([At(e,t,n),M(e,t,n)]);return Mt(r,i)},async listIndexes(e,t,n){return(await M(e,t,n)).map(jt)},async listAllColumns(e,t){let[n,r]=await Promise.all([At(e,t),M(e,t)]),i=Nt(r),a=new Map;for(let[e,t]of Nt(n))a.set(e,Mt(t,i.get(e)??[]));return a},async listAllIndexes(e,t){let n=new Map;for(let[r,i]of Nt(await M(e,t)))n.set(r,i.map(jt));return n},async listForeignKeys(e,t){return(await e(`SELECT con.conname, c.relname, a.attname, rc.relname AS ref_table, ra.attname AS ref_column
149
149
  FROM pg_constraint con
150
150
  JOIN pg_class c ON c.oid = con.conrelid
151
151
  JOIN pg_namespace n ON n.oid = c.relnamespace
@@ -153,11 +153,11 @@ DELIMITER;`,SHOW_PROCESS_LIST:`SHOW FULL PROCESSLIST`,SHOW_VARIABLES:`SHOW VARIA
153
153
  JOIN unnest(con.conkey, con.confkey) WITH ORDINALITY AS k(attnum, ref_attnum, ord) ON true
154
154
  JOIN pg_attribute a ON a.attrelid = con.conrelid AND a.attnum = k.attnum
155
155
  JOIN pg_attribute ra ON ra.attrelid = con.confrelid AND ra.attnum = k.ref_attnum
156
- WHERE con.contype = 'f' AND n.nspname = ${N(t)}
157
- ORDER BY c.relname, con.conname, k.ord`)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){return(await Mt(e,t,n))[0]??null},async getPrimaryKeys(e,t,n){return(await P(e,t,n)).find(e=>e.primary)?.columns??[]},async getCreateStatement(e,t,n,r){switch(n){case`TABLE`:return Nt(e,t,r);case`VIEW`:{let n=(await e(`SELECT c.relkind, pg_get_viewdef(c.oid, true) FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
158
- WHERE n.nspname = ${N(t)} AND c.relname = ${N(r)} AND c.relkind IN ('v', 'm')`)).records[0];return n?`CREATE ${v(n[0])===`m`?`MATERIALIZED VIEW`:`VIEW`} ${wt(t,r)} AS\n${v(n[1])}`:null}case`PROCEDURE`:return Pt(e,t,r,`p`);case`FUNCTION`:return Pt(e,t,r,`f`);case`TRIGGER`:return y((await e(`SELECT pg_get_triggerdef(t.oid, true) FROM pg_trigger t
156
+ WHERE con.contype = 'f' AND n.nspname = ${j(t)}
157
+ ORDER BY c.relname, con.conname, k.ord`)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){return(await Pt(e,t,n))[0]??null},async getPrimaryKeys(e,t,n){return(await M(e,t,n)).find(e=>e.primary)?.columns??[]},async getCreateStatement(e,t,n,r){switch(n){case`TABLE`:return Ft(e,t,r);case`VIEW`:{let n=(await e(`SELECT c.relkind, pg_get_viewdef(c.oid, true) FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
158
+ WHERE n.nspname = ${j(t)} AND c.relname = ${j(r)} AND c.relkind IN ('v', 'm')`)).records[0];return n?`CREATE ${v(n[0])===`m`?`MATERIALIZED VIEW`:`VIEW`} ${Et(t,r)} AS\n${v(n[1])}`:null}case`PROCEDURE`:return It(e,t,r,`p`);case`FUNCTION`:return It(e,t,r,`f`);case`TRIGGER`:return y((await e(`SELECT pg_get_triggerdef(t.oid, true) FROM pg_trigger t
159
159
  JOIN pg_class c ON c.oid = t.tgrelid JOIN pg_namespace n ON n.oid = c.relnamespace
160
- WHERE n.nspname = ${N(t)} AND t.tgname = ${N(r)} AND NOT t.tgisinternal LIMIT 1`)).records[0]?.[0]);default:return null}}},Rt={async loadRoot({engine:e,run:t,database:n}){let r=e.introspect.listCatalogs?await e.introspect.listCatalogs(t):[],i=n||(e.introspect.currentCatalog?await e.introspect.currentCatalog(t):``);return i&&!r.includes(i)&&r.unshift(i),r.map(e=>{let t=e===i;return h(null,p.DATABASE,e,!t,{catalog:e,unreachable:!t})})},async loadChildren(e,t){switch(t.type){case p.DATABASE:return t.metadata?.unreachable?[]:(await e.engine.introspect.listDatabases(e.run)).map(e=>h(t.id,p.SCHEMA,e,!1,{database:e,catalog:t.text}));case p.SCHEMA:return ce(e.engine,t.id,{database:t.text,catalog:t.metadata?.catalog});default:return await fe(e,t)??[]}},objectPath(e,t,n,r){let[i,a]=this.namespacePath(e,r);return[i,...pe(a,t,n)]},namespacePath(e,t){let n=m(null,p.DATABASE,t??``);return[n,m(n,p.SCHEMA,e)]}},zt={SELECT_COUNT:`SELECT COUNT(1) AS cnt FROM "{0}"."{1}"`,SHOW_FULL_FIELDS:`SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_schema = '{0}' AND table_name = '{1}' ORDER BY ordinal_position`,SHOW_COLUMNS:`SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_schema = '{0}' AND table_name = '{1}' ORDER BY ordinal_position`,SHOW_DATABASE_VIEWS:`SELECT table_name FROM information_schema.views WHERE table_schema = '{0}' ORDER BY table_name`,SHOW_DATABASE_TABLES:`SELECT table_name FROM information_schema.tables WHERE table_schema = '{0}' AND table_type = 'BASE TABLE' ORDER BY table_name`,SHOW_DATABASE:`SELECT current_schema()`,SHOW_DATABASES:`SELECT nspname FROM pg_namespace WHERE nspname NOT LIKE 'pg\\_%' AND nspname <> 'information_schema' ORDER BY nspname`,ADD_INDEX:`CREATE {3} INDEX "{2}" ON "{0}"."{1}" ({4})`,SHOW_INDEXES:`SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = '{0}' AND tablename = '{1}' ORDER BY indexname`,DROP_INDEX:`DROP INDEX "{0}"."{2}"`,DROP_PROCEDURE:`DROP PROCEDURE {2} "{0}"."{1}"`,DROP_FUNCTION:`DROP FUNCTION {2} "{0}"."{1}"`,DROP_TRIGGER:`DROP TRIGGER {2} "{1}" ON "{0}"."{3}"`,DROP_VIEW:`DROP VIEW {2} "{0}"."{1}"`,SHOW_PROCEDURES:`SELECT p.proname FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace WHERE n.nspname = '{0}' AND p.prokind = 'p' ORDER BY 1`,SHOW_FUNCTIONS:`SELECT p.proname FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace WHERE n.nspname = '{0}' AND p.prokind = 'f' ORDER BY 1`,SHOW_TRIGGERS:`SELECT t.tgname, c.relname FROM pg_trigger t JOIN pg_class c ON c.oid = t.tgrelid JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = '{0}' AND NOT t.tgisinternal ORDER BY 1`,SHOW_VIEWS:`SELECT table_name AS "View_name", view_definition AS "View_definition" FROM information_schema.views WHERE table_schema = '{0}' ORDER BY table_name`,SHOW_ALL_TABLE_STATUS:`SELECT c.relname AS "Name", c.reltuples::bigint AS "Rows", obj_description(c.oid, 'pg_class') AS "Comment" FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = '{0}' AND c.relkind IN ('r', 'p') ORDER BY 1`,SHOW_TABLE_STATUS:`SELECT c.relname AS "Name", c.reltuples::bigint AS "Rows", obj_description(c.oid, 'pg_class') AS "Comment" FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = '{0}' AND c.relname = '{1}'`,INSERT_TABLE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3});`,INSERT_TABLE_BULK:`INSERT INTO "{0}"."{1}" ({2}) VALUES {3};`,INSERT_DEFAULT_VALUES:`INSERT INTO "{0}"."{1}" DEFAULT VALUES;`,UPDATE_TABLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3};`,UPDATE_TABLE_SINGLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3}`,START_TRANSACTION:`BEGIN`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM "{0}"."{1}" WHERE {2};`,SELECT_TABLE:`SELECT {2} FROM "{0}"."{1}" {3};`,TRUNCATE_TABLE:`TRUNCATE TABLE "{0}"."{1}"`,RENAME_TABLE:`ALTER TABLE "{0}"."{1}" RENAME TO "{3}"`,DROP_TABLE:`DROP TABLE {2} "{0}"."{1}"`,CREATE_PROCEDURE:`CREATE OR REPLACE PROCEDURE "{0}"."{1}"()
160
+ WHERE n.nspname = ${j(t)} AND t.tgname = ${j(r)} AND NOT t.tgisinternal LIMIT 1`)).records[0]?.[0]);default:return null}}},Bt={async loadRoot({engine:e,run:t,database:n}){let r=e.introspect.listCatalogs?await e.introspect.listCatalogs(t):[],i=n||(e.introspect.currentCatalog?await e.introspect.currentCatalog(t):``);return i&&!r.includes(i)&&r.unshift(i),r.map(e=>{let t=e===i;return h(null,p.DATABASE,e,!t,{catalog:e,unreachable:!t})})},async loadChildren(e,t){switch(t.type){case p.DATABASE:return t.metadata?.unreachable?[]:(await e.engine.introspect.listDatabases(e.run)).map(e=>h(t.id,p.SCHEMA,e,!1,{database:e,catalog:t.text}));case p.SCHEMA:return ce(e.engine,t.id,{database:t.text,catalog:t.metadata?.catalog});default:return await fe(e,t)??[]}},objectPath(e,t,n,r){let[i,a]=this.namespacePath(e,r);return[i,...pe(a,t,n)]},namespacePath(e,t){let n=m(null,p.DATABASE,t??``);return[n,m(n,p.SCHEMA,e)]}},Vt={SELECT_COUNT:`SELECT COUNT(1) AS cnt FROM "{0}"."{1}"`,SHOW_FULL_FIELDS:`SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_schema = '{0}' AND table_name = '{1}' ORDER BY ordinal_position`,SHOW_COLUMNS:`SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_schema = '{0}' AND table_name = '{1}' ORDER BY ordinal_position`,SHOW_DATABASE_VIEWS:`SELECT table_name FROM information_schema.views WHERE table_schema = '{0}' ORDER BY table_name`,SHOW_DATABASE_TABLES:`SELECT table_name FROM information_schema.tables WHERE table_schema = '{0}' AND table_type = 'BASE TABLE' ORDER BY table_name`,SHOW_DATABASE:`SELECT current_schema()`,SHOW_DATABASES:`SELECT nspname FROM pg_namespace WHERE nspname NOT LIKE 'pg\\_%' AND nspname <> 'information_schema' ORDER BY nspname`,ADD_INDEX:`CREATE {3} INDEX "{2}" ON "{0}"."{1}" ({4})`,SHOW_INDEXES:`SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = '{0}' AND tablename = '{1}' ORDER BY indexname`,DROP_INDEX:`DROP INDEX "{0}"."{2}"`,DROP_PROCEDURE:`DROP PROCEDURE {2} "{0}"."{1}"`,DROP_FUNCTION:`DROP FUNCTION {2} "{0}"."{1}"`,DROP_TRIGGER:`DROP TRIGGER {2} "{1}" ON "{0}"."{3}"`,DROP_VIEW:`DROP VIEW {2} "{0}"."{1}"`,SHOW_PROCEDURES:`SELECT p.proname FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace WHERE n.nspname = '{0}' AND p.prokind = 'p' ORDER BY 1`,SHOW_FUNCTIONS:`SELECT p.proname FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace WHERE n.nspname = '{0}' AND p.prokind = 'f' ORDER BY 1`,SHOW_TRIGGERS:`SELECT t.tgname, c.relname FROM pg_trigger t JOIN pg_class c ON c.oid = t.tgrelid JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = '{0}' AND NOT t.tgisinternal ORDER BY 1`,SHOW_VIEWS:`SELECT table_name AS "View_name", view_definition AS "View_definition" FROM information_schema.views WHERE table_schema = '{0}' ORDER BY table_name`,SHOW_ALL_TABLE_STATUS:`SELECT c.relname AS "Name", c.reltuples::bigint AS "Rows", obj_description(c.oid, 'pg_class') AS "Comment" FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = '{0}' AND c.relkind IN ('r', 'p') ORDER BY 1`,SHOW_TABLE_STATUS:`SELECT c.relname AS "Name", c.reltuples::bigint AS "Rows", obj_description(c.oid, 'pg_class') AS "Comment" FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = '{0}' AND c.relname = '{1}'`,INSERT_TABLE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3});`,INSERT_TABLE_BULK:`INSERT INTO "{0}"."{1}" ({2}) VALUES {3};`,INSERT_DEFAULT_VALUES:`INSERT INTO "{0}"."{1}" DEFAULT VALUES;`,UPDATE_TABLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3};`,UPDATE_TABLE_SINGLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3}`,START_TRANSACTION:`BEGIN`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM "{0}"."{1}" WHERE {2};`,SELECT_TABLE:`SELECT {2} FROM "{0}"."{1}" {3};`,TRUNCATE_TABLE:`TRUNCATE TABLE "{0}"."{1}"`,RENAME_TABLE:`ALTER TABLE "{0}"."{1}" RENAME TO "{3}"`,DROP_TABLE:`DROP TABLE {2} "{0}"."{1}"`,CREATE_PROCEDURE:`CREATE OR REPLACE PROCEDURE "{0}"."{1}"()
161
161
  LANGUAGE plpgsql
162
162
  AS $$
163
163
  BEGIN
@@ -185,9 +185,9 @@ ON "{0}"."<Table Name>" FOR EACH ROW
185
185
  EXECUTE FUNCTION "{0}"."<trigger_function>"();`,CREATE_VIEW:`CREATE VIEW "{0}"."{1}" AS
186
186
  /* SQL SELECT Statement */`,CREATE_TABLE:`CREATE TABLE "{0}"."{1}" {2}`,ALTER_TABLE:`ALTER TABLE "{0}"."{1}" {2}`,ALTER_VIEW:`DROP VIEW IF EXISTS "{0}"."{1}";
187
187
  {2};`,ALTER_PROCEDURE:`{2}`,ALTER_FUNCTION:`{2}`,ALTER_TRIGGER:`DROP TRIGGER IF EXISTS "{1}" ON "{0}"."{3}";
188
- {2};`,SHOW_PROCESS_LIST:`SELECT pid AS "Id", usename AS "User", COALESCE(client_addr::text, 'local') AS "Host", datname AS "db", COALESCE(state, '') AS "Command", COALESCE(EXTRACT(EPOCH FROM (now() - query_start))::bigint, 0) AS "Time", COALESCE(wait_event_type || ': ' || wait_event, '') AS "State", query AS "Info" FROM pg_stat_activity WHERE backend_type = 'client backend' ORDER BY pid`,KILL_QUERY:`SELECT pg_terminate_backend({0})`,SHOW_VARIABLES:`SELECT name AS "Variable_name", setting AS "Value" FROM pg_settings ORDER BY name`,SHOW_GLOBAL_VARIABLES:`SELECT name AS "Variable_name", COALESCE(reset_val, setting) AS "Value" FROM pg_settings ORDER BY name`,SHOW_SESSION_VARIABLES:`SELECT name AS "Variable_name", setting AS "Value" FROM pg_settings ORDER BY name`,CREATE_SCHEMA:`CREATE SCHEMA "{0}"`,DROP_SCHEMA:`DROP SCHEMA "{0}" CASCADE`,COPY_TABLE_STRUCTURE:`CREATE TABLE "{2}"."{3}" (LIKE "{0}"."{1}" INCLUDING ALL)`,COPY_TABLE_DATA:`INSERT INTO "{2}"."{3}" SELECT * FROM "{0}"."{1}"`,DISABLE_FK_CHECKS:`SET session_replication_role = 'replica'`,ENABLE_FK_CHECKS:`SET session_replication_role = 'origin'`},Bt=`ASCII.BTRIM.CHAR_LENGTH.CHR.CONCAT.CONCAT_WS.FORMAT.INITCAP.LEFT.LENGTH.LOWER.LPAD.LTRIM.MD5.POSITION.QUOTE_IDENT.QUOTE_LITERAL.REGEXP_MATCHES.REGEXP_REPLACE.REGEXP_SPLIT_TO_ARRAY.REPEAT.REPLACE.REVERSE.RIGHT.RPAD.RTRIM.SPLIT_PART.STRING_AGG.STRING_TO_ARRAY.STRPOS.SUBSTR.SUBSTRING.TRANSLATE.TRIM.UPPER.ABS.CBRT.CEIL.CEILING.DIV.EXP.FLOOR.GCD.LCM.LN.LOG.LOG10.MOD.PI.POWER.RADIANS.RANDOM.ROUND.SIGN.SQRT.TRUNC.WIDTH_BUCKET.AGE.CLOCK_TIMESTAMP.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.DATE_PART.DATE_TRUNC.EXTRACT.ISFINITE.JUSTIFY_DAYS.JUSTIFY_HOURS.LOCALTIME.LOCALTIMESTAMP.MAKE_DATE.MAKE_INTERVAL.MAKE_TIMESTAMP.NOW.STATEMENT_TIMESTAMP.TO_CHAR.TO_DATE.TO_TIMESTAMP.ARRAY_AGG.AVG.BOOL_AND.BOOL_OR.COUNT.EVERY.JSON_AGG.JSONB_AGG.JSON_OBJECT_AGG.MAX.MIN.PERCENTILE_CONT.PERCENTILE_DISC.STDDEV.SUM.VARIANCE.ROW_NUMBER.RANK.DENSE_RANK.PERCENT_RANK.CUME_DIST.NTILE.LAG.LEAD.FIRST_VALUE.LAST_VALUE.NTH_VALUE.COALESCE.NULLIF.GREATEST.LEAST.CAST.GEN_RANDOM_UUID.CURRENT_USER.CURRENT_DATABASE.CURRENT_SCHEMA.PG_TYPEOF.VERSION.ARRAY_LENGTH.ARRAY_TO_STRING.ARRAY_APPEND.ARRAY_REMOVE.ARRAY_POSITION.CARDINALITY.UNNEST.JSON_BUILD_OBJECT.JSONB_BUILD_OBJECT.JSON_BUILD_ARRAY.JSONB_BUILD_ARRAY.JSON_EXTRACT_PATH.JSONB_EXTRACT_PATH.JSON_EXTRACT_PATH_TEXT.JSONB_EXTRACT_PATH_TEXT.JSONB_SET.JSONB_PRETTY.JSON_TYPEOF.JSONB_TYPEOF.JSON_ARRAY_LENGTH.JSONB_ARRAY_LENGTH.JSON_EACH.JSONB_EACH.TO_JSON.TO_JSONB.ROW_TO_JSON`.split(`.`),Vt=`ALL.ANALYSE.ANALYZE.AND.ANY.ARRAY.AS.ASC.ASYMMETRIC.BOTH.CASE.CAST.CHECK.COLLATE.COLUMN.CONSTRAINT.CREATE.CURRENT_CATALOG.CURRENT_DATE.CURRENT_ROLE.CURRENT_TIME.CURRENT_TIMESTAMP.CURRENT_USER.DEFAULT.DEFERRABLE.DESC.DISTINCT.DO.ELSE.END.EXCEPT.FALSE.FETCH.FOR.FOREIGN.FROM.GRANT.GROUP.GROUP BY.HAVING.IN.INITIALLY.INTERSECT.INTO.LATERAL.LEADING.LIMIT.LOCALTIME.LOCALTIMESTAMP.NOT.NULL.OFFSET.ON.ONLY.OR.ORDER.ORDER BY.PLACING.PRIMARY.REFERENCES.RETURNING.SELECT.SESSION_USER.SOME.SYMMETRIC.TABLE.THEN.TO.TRAILING.TRUE.UNION.UNIQUE.USER.USING.VARIADIC.WHEN.WHERE.WINDOW.WITH.ALTER.BEGIN.BETWEEN.BY.CASCADE.COMMENT.COMMIT.CROSS.DATABASE.DELETE.DROP.EXISTS.EXPLAIN.FULL.FUNCTION.IF.ILIKE.INDEX.INNER.INSERT.INSERT INTO.IS.JOIN.KEY.LEFT.LIKE.MATERIALIZED.NATURAL.OUTER.OVER.PARTITION.PROCEDURE.RECURSIVE.RETURNS.RIGHT.ROLLBACK.SCHEMA.SEQUENCE.SET.SHOW.TRIGGER.TRUNCATE.TYPE.UPDATE.VACUUM.VALUES.VIEW`.split(`.`),Ht=`bigint.bigserial.bit.boolean.box.bytea.char.character.character varying.cidr.circle.date.decimal.double precision.inet.int.integer.interval.json.jsonb.line.macaddr.money.numeric.path.point.polygon.real.serial.smallint.smallserial.text.time.timestamp.timestamptz.timetz.tsquery.tsvector.uuid.varchar.xml`.split(`.`),Ut={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!1,delimiterCommand:!1,dollarQuotes:!0,goBatchSeparator:!1,limitStyle:`limit`,plsqlBlocks:!1};function Wt(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...f(e,{addColumn:`ADD COLUMN`,modify:`postgres`,qualifiedIndexNames:!1,dropIndexOnTable:!1,unqualifiedIndexTarget:!1,multiRowInsert:!0,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=x(e.name,`untitled`),a=r(e.database,i),o=e.columns.filter(e=>e.primaryKey),s=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type}`;return e.length&&(n+=`(${e.length})`),e.autoIncrement&&(n+=` GENERATED BY DEFAULT AS IDENTITY`),e.notNull&&(n+=` NOT NULL`),e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),n});o.length>0&&s.push(` PRIMARY KEY (${o.map(e=>t(e.name)).join(`, `)})`);let c=[`CREATE TABLE ${a} (\n${s.join(`,
188
+ {2};`,SHOW_PROCESS_LIST:`SELECT pid AS "Id", usename AS "User", COALESCE(client_addr::text, 'local') AS "Host", datname AS "db", COALESCE(state, '') AS "Command", COALESCE(EXTRACT(EPOCH FROM (now() - query_start))::bigint, 0) AS "Time", COALESCE(wait_event_type || ': ' || wait_event, '') AS "State", query AS "Info" FROM pg_stat_activity WHERE backend_type = 'client backend' ORDER BY pid`,KILL_QUERY:`SELECT pg_terminate_backend({0})`,SHOW_VARIABLES:`SELECT name AS "Variable_name", setting AS "Value" FROM pg_settings ORDER BY name`,SHOW_GLOBAL_VARIABLES:`SELECT name AS "Variable_name", COALESCE(reset_val, setting) AS "Value" FROM pg_settings ORDER BY name`,SHOW_SESSION_VARIABLES:`SELECT name AS "Variable_name", setting AS "Value" FROM pg_settings ORDER BY name`,CREATE_SCHEMA:`CREATE SCHEMA "{0}"`,DROP_SCHEMA:`DROP SCHEMA "{0}" CASCADE`,COPY_TABLE_STRUCTURE:`CREATE TABLE "{2}"."{3}" (LIKE "{0}"."{1}" INCLUDING ALL)`,COPY_TABLE_DATA:`INSERT INTO "{2}"."{3}" SELECT * FROM "{0}"."{1}"`,DISABLE_FK_CHECKS:`SET session_replication_role = 'replica'`,ENABLE_FK_CHECKS:`SET session_replication_role = 'origin'`},Ht=`ASCII.BTRIM.CHAR_LENGTH.CHR.CONCAT.CONCAT_WS.FORMAT.INITCAP.LEFT.LENGTH.LOWER.LPAD.LTRIM.MD5.POSITION.QUOTE_IDENT.QUOTE_LITERAL.REGEXP_MATCHES.REGEXP_REPLACE.REGEXP_SPLIT_TO_ARRAY.REPEAT.REPLACE.REVERSE.RIGHT.RPAD.RTRIM.SPLIT_PART.STRING_AGG.STRING_TO_ARRAY.STRPOS.SUBSTR.SUBSTRING.TRANSLATE.TRIM.UPPER.ABS.CBRT.CEIL.CEILING.DIV.EXP.FLOOR.GCD.LCM.LN.LOG.LOG10.MOD.PI.POWER.RADIANS.RANDOM.ROUND.SIGN.SQRT.TRUNC.WIDTH_BUCKET.AGE.CLOCK_TIMESTAMP.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.DATE_PART.DATE_TRUNC.EXTRACT.ISFINITE.JUSTIFY_DAYS.JUSTIFY_HOURS.LOCALTIME.LOCALTIMESTAMP.MAKE_DATE.MAKE_INTERVAL.MAKE_TIMESTAMP.NOW.STATEMENT_TIMESTAMP.TO_CHAR.TO_DATE.TO_TIMESTAMP.ARRAY_AGG.AVG.BOOL_AND.BOOL_OR.COUNT.EVERY.JSON_AGG.JSONB_AGG.JSON_OBJECT_AGG.MAX.MIN.PERCENTILE_CONT.PERCENTILE_DISC.STDDEV.SUM.VARIANCE.ROW_NUMBER.RANK.DENSE_RANK.PERCENT_RANK.CUME_DIST.NTILE.LAG.LEAD.FIRST_VALUE.LAST_VALUE.NTH_VALUE.COALESCE.NULLIF.GREATEST.LEAST.CAST.GEN_RANDOM_UUID.CURRENT_USER.CURRENT_DATABASE.CURRENT_SCHEMA.PG_TYPEOF.VERSION.ARRAY_LENGTH.ARRAY_TO_STRING.ARRAY_APPEND.ARRAY_REMOVE.ARRAY_POSITION.CARDINALITY.UNNEST.JSON_BUILD_OBJECT.JSONB_BUILD_OBJECT.JSON_BUILD_ARRAY.JSONB_BUILD_ARRAY.JSON_EXTRACT_PATH.JSONB_EXTRACT_PATH.JSON_EXTRACT_PATH_TEXT.JSONB_EXTRACT_PATH_TEXT.JSONB_SET.JSONB_PRETTY.JSON_TYPEOF.JSONB_TYPEOF.JSON_ARRAY_LENGTH.JSONB_ARRAY_LENGTH.JSON_EACH.JSONB_EACH.TO_JSON.TO_JSONB.ROW_TO_JSON`.split(`.`),Ut=`ALL.ANALYSE.ANALYZE.AND.ANY.ARRAY.AS.ASC.ASYMMETRIC.BOTH.CASE.CAST.CHECK.COLLATE.COLUMN.CONSTRAINT.CREATE.CURRENT_CATALOG.CURRENT_DATE.CURRENT_ROLE.CURRENT_TIME.CURRENT_TIMESTAMP.CURRENT_USER.DEFAULT.DEFERRABLE.DESC.DISTINCT.DO.ELSE.END.EXCEPT.FALSE.FETCH.FOR.FOREIGN.FROM.GRANT.GROUP.GROUP BY.HAVING.IN.INITIALLY.INTERSECT.INTO.LATERAL.LEADING.LIMIT.LOCALTIME.LOCALTIMESTAMP.NOT.NULL.OFFSET.ON.ONLY.OR.ORDER.ORDER BY.PLACING.PRIMARY.REFERENCES.RETURNING.SELECT.SESSION_USER.SOME.SYMMETRIC.TABLE.THEN.TO.TRAILING.TRUE.UNION.UNIQUE.USER.USING.VARIADIC.WHEN.WHERE.WINDOW.WITH.ALTER.BEGIN.BETWEEN.BY.CASCADE.COMMENT.COMMIT.CROSS.DATABASE.DELETE.DROP.EXISTS.EXPLAIN.FULL.FUNCTION.IF.ILIKE.INDEX.INNER.INSERT.INSERT INTO.IS.JOIN.KEY.LEFT.LIKE.MATERIALIZED.NATURAL.OUTER.OVER.PARTITION.PROCEDURE.RECURSIVE.RETURNS.RIGHT.ROLLBACK.SCHEMA.SEQUENCE.SET.SHOW.TRIGGER.TRUNCATE.TYPE.UPDATE.VACUUM.VALUES.VIEW`.split(`.`),Wt=`bigint.bigserial.bit.boolean.box.bytea.char.character.character varying.cidr.circle.date.decimal.double precision.inet.int.integer.interval.json.jsonb.line.macaddr.money.numeric.path.point.polygon.real.serial.smallint.smallserial.text.time.timestamp.timestamptz.timetz.tsquery.tsvector.uuid.varchar.xml`.split(`.`),Gt={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!1,delimiterCommand:!1,dollarQuotes:!0,goBatchSeparator:!1,limitStyle:`limit`,plsqlBlocks:!1};function Kt(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...f(e,{addColumn:`ADD COLUMN`,modify:`postgres`,qualifiedIndexNames:!1,dropIndexOnTable:!1,unqualifiedIndexTarget:!1,multiRowInsert:!0,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=x(e.name,`untitled`),a=r(e.database,i),o=e.columns.filter(e=>e.primaryKey),s=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type}`;return e.length&&(n+=`(${e.length})`),e.autoIncrement&&(n+=` GENERATED BY DEFAULT AS IDENTITY`),e.notNull&&(n+=` NOT NULL`),e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),n});o.length>0&&s.push(` PRIMARY KEY (${o.map(e=>t(e.name)).join(`, `)})`);let c=[`CREATE TABLE ${a} (\n${s.join(`,
189
189
  `)}\n);`];for(let n of e.indexes){if(n.type===`PRIMARY`||n.columns.length===0)continue;let e=n.type===`UNIQUE`?`UNIQUE `:``,r=n.type===`FULLTEXT`?` -- FULLTEXT is MySQL-only; consider a GIN index on to_tsvector()`:``,o=t(x(n.name,`${i}_${n.columns.join(`_`)}_idx`));c.push(`CREATE ${e}INDEX ${o} ON ${a} (${n.columns.map(t).join(`, `)});${r}`)}e.options.comment&&c.push(`COMMENT ON TABLE ${a} IS ${n(e.options.comment)};`);for(let r of e.columns)r.comment&&c.push(`COMMENT ON COLUMN ${a}.${t(x(r.name,`column`))} IS ${n(r.comment)};`);return c.join(`
190
- `)}}}var Gt={id:`postgres`,label:`PostgreSQL`,capabilities:{multipleDatabases:!1,schemas:!0,users:!1,procedures:!0,functions:!0,triggers:!0,events:!1,processList:!0,variables:!0,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!0},ddl:Wt,explain:Me,introspect:Lt,tree:Rt,defaultPort:5432,binaryLiteral:e=>`'\\x${e}'::bytea`,booleanKeywords:!0,identifierQuote:`"`,queries:zt,syntax:Ut,dataTypes:Ht,functions:Bt,reservedWords:Vt},Kt=S(Gt),F=e=>`"${e.replaceAll(`"`,`""`)}"`,I=e=>`'${e.replace(/'/g,`''`)}'`,L=e=>`${F(e)}.sqlite_master`;async function R(e,t,n){return(await e(`SELECT name FROM ${L(t)} WHERE type = ${I(n)} AND name NOT LIKE 'sqlite_%' ORDER BY name`)).records.map(e=>v(e[0]))}async function z(e,t,n){return _(await e(`PRAGMA ${F(t)}.table_info(${F(n)})`)).map(e=>({cid:Number(e.cid),name:v(e.name),type:v(e.type),notnull:Number(e.notnull)===1,dflt_value:y(e.dflt_value),pk:Number(e.pk)}))}async function qt(e,t,n){return v((await e(`SELECT sql FROM ${L(t)} WHERE type = 'table' AND name = ${I(n)}`)).records[0]?.[0])}function Jt(e){return e.filter(e=>e.pk>0).sort((e,t)=>e.pk-t.pk).map(e=>e.name)}async function Yt(e,t,n,r){let i=[],a=Jt(r);a.length>0&&i.push({name:`PRIMARY`,type:`PRIMARY`,columns:a});let o=_(await e(`PRAGMA ${F(t)}.index_list(${F(n)})`));for(let n of o){if(v(n.origin)===`pk`)continue;let r=v(n.name),a=_(await e(`PRAGMA ${F(t)}.index_info(${F(r)})`));i.push({name:r,type:Number(n.unique)===1?`UNIQUE`:`INDEX`,columns:a.sort((e,t)=>Number(e.seqno)-Number(t.seqno)).map(e=>v(e.name,`<expr>`))})}return i}async function Xt(e,t,n){let r=await z(e,t,n),i=await Yt(e,t,n,r),a=await qt(e,t,n),o=Jt(r),s=/AUTOINCREMENT/i.test(a),c=new Set,l=new Set;for(let e of i)e.type!==`PRIMARY`&&(e.type===`UNIQUE`&&e.columns.length===1?c.add(e.columns[0]):l.add(e.columns[0]));return r.map(e=>{let t=o.length===1&&o[0]===e.name&&/^INTEGER$/i.test(e.type);return{name:e.name,type:e.type,nullable:!e.notnull&&e.pk===0,key:e.pk>0?`PRI`:c.has(e.name)?`UNI`:l.has(e.name)?`MUL`:``,defaultValue:e.dflt_value,extra:t&&s?`auto_increment`:``,comment:``,collation:null}})}var Zt={TABLE:`table`,VIEW:`view`,TRIGGER:`trigger`},Qt={async listDatabases(e){return _(await e(`PRAGMA database_list`)).map(e=>v(e.name)).filter(e=>e!==`temp`)},async listTables(e,t){return(await R(e,t,`table`)).map(e=>({name:e,engine:null,rows:null,collation:null,autoIncrement:null,comment:``,createTime:null,updateTime:null,dataLength:null}))},listViews:(e,t)=>R(e,t,`view`),listProcedures:async()=>[],listFunctions:async()=>[],listTriggers:(e,t)=>R(e,t,`trigger`),listEvents:async()=>[],listColumns:Xt,async listIndexes(e,t,n){return Yt(e,t,n,await z(e,t,n))},async listAllColumns(e,t){let n=new Map;for(let r of await R(e,t,`table`))n.set(r,await Xt(e,t,r));return n},async listAllIndexes(e,t){let n=new Map;for(let r of await R(e,t,`table`))n.set(r,await Yt(e,t,r,await z(e,t,r)));return n},async listForeignKeys(e,t){let n=[];for(let r of await R(e,t,`table`)){let i=_(await e(`PRAGMA ${F(t)}.foreign_key_list(${F(r)})`));for(let e of i)n.push({name:`fk_${r}_${e.id}`,table:r,column:v(e.from),refTable:v(e.table),refColumn:v(e.to)})}return n},async getTableInfo(e,t,n){return(await e(`SELECT 1 FROM ${L(t)} WHERE type = 'table' AND name = ${I(n)}`)).records.length===0?null:{name:n,engine:null,rows:b((await e(`SELECT COUNT(*) FROM ${F(t)}.${F(n)}`)).records[0]?.[0]),collation:null,autoIncrement:null,comment:``,createTime:null,updateTime:null,dataLength:null}},async getPrimaryKeys(e,t,n){return Jt(await z(e,t,n))},async getCreateStatement(e,t,n,r){let i=Zt[n];return i?y((await e(`SELECT sql FROM ${L(t)} WHERE type = ${I(i)} AND name = ${I(r)}`)).records[0]?.[0]):null}},$t={SELECT_COUNT:`SELECT COUNT(1) as cnt FROM "{0}"."{1}"`,SHOW_FULL_FIELDS:`PRAGMA "{0}".table_info("{1}")`,SHOW_COLUMNS:`PRAGMA "{0}".table_info("{1}")`,SHOW_DATABASE_VIEWS:`SELECT name FROM "{0}".sqlite_master WHERE type = 'view' ORDER BY name`,SHOW_DATABASE_TABLES:`SELECT name FROM "{0}".sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name`,SHOW_DATABASE:`PRAGMA database_list`,SHOW_DATABASES:`PRAGMA database_list`,ADD_INDEX:`CREATE {3} INDEX "{0}"."{2}" ON "{1}"({4})`,SHOW_INDEX:`PRAGMA "{0}".index_info("{2}")`,SHOW_INDEXES:`PRAGMA "{0}".index_list("{1}")`,DROP_INDEX:`DROP INDEX "{0}"."{2}"`,DROP_TRIGGER:`DROP TRIGGER {2} "{0}"."{1}"`,DROP_VIEW:`DROP VIEW {2} "{0}"."{1}"`,SHOW_TRIGGERS:`SELECT name, tbl_name, sql FROM "{0}".sqlite_master WHERE type = 'trigger' ORDER BY name`,SHOW_VIEWS:`SELECT name AS View_name, sql AS View_definition FROM "{0}".sqlite_master WHERE type = 'view' ORDER BY name`,SHOW_ALL_TABLE_STATUS:`SELECT name, type FROM "{0}".sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name`,SHOW_TABLE_STATUS:`SELECT name, type FROM "{0}".sqlite_master WHERE type = 'table' AND name = '{1}'`,INSERT_TABLE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3});`,INSERT_TABLE_BULK:`INSERT INTO "{0}"."{1}" ({2}) VALUES {3};`,INSERT_DEFAULT_VALUES:`INSERT INTO "{0}"."{1}" DEFAULT VALUES;`,INSERT_ON_DUPLICATE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3}) ON CONFLICT DO UPDATE SET {4}`,UPDATE_TABLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3};`,UPDATE_TABLE_SINGLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3}`,START_TRANSACTION:`BEGIN`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM "{0}"."{1}" WHERE {2};`,SELECT_TABLE:`SELECT {2} FROM "{0}"."{1}" {3};`,TRUNCATE_TABLE:`DELETE FROM "{0}"."{1}"`,RENAME_TABLE:`ALTER TABLE "{0}"."{1}" RENAME TO "{3}"`,DROP_TABLE:`DROP TABLE {2} "{0}"."{1}"`,TABLE_CREATE_INFO:`SELECT sql FROM "{0}".sqlite_master WHERE type = 'table' AND name = '{1}'`,TABLE_KEYS_INFO:`PRAGMA "{0}".index_list("{1}")`,INDEX_KEYS_INFO:`PRAGMA "{0}".index_info("{2}")`,CREATE_TRIGGER:`CREATE TRIGGER "{0}"."{1}"
190
+ `)}}}var qt={id:`postgres`,label:`PostgreSQL`,capabilities:{multipleDatabases:!1,schemas:!0,users:!1,procedures:!0,functions:!0,triggers:!0,events:!1,processList:!0,variables:!0,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!0},ddl:Kt,explain:Me,introspect:zt,tree:Bt,defaultPort:5432,binaryLiteral:e=>`'\\x${e}'::bytea`,booleanKeywords:!0,identifierQuote:`"`,queries:Vt,syntax:Gt,dataTypes:Wt,functions:Ht,reservedWords:Ut},Jt=S(qt),N=e=>`"${e.replaceAll(`"`,`""`)}"`,P=e=>`'${e.replace(/'/g,`''`)}'`,Yt=e=>`${N(e)}.sqlite_master`;async function F(e,t,n){return(await e(`SELECT name FROM ${Yt(t)} WHERE type = ${P(n)} AND name NOT LIKE 'sqlite_%' ORDER BY name`)).records.map(e=>v(e[0]))}async function Xt(e,t,n){return _(await e(`PRAGMA ${N(t)}.table_info(${N(n)})`)).map(e=>({cid:Number(e.cid),name:v(e.name),type:v(e.type),notnull:Number(e.notnull)===1,dflt_value:y(e.dflt_value),pk:Number(e.pk)}))}async function Zt(e,t,n){return v((await e(`SELECT sql FROM ${Yt(t)} WHERE type = 'table' AND name = ${P(n)}`)).records[0]?.[0])}function Qt(e){return e.filter(e=>e.pk>0).sort((e,t)=>e.pk-t.pk).map(e=>e.name)}async function $t(e,t,n,r){let i=[],a=Qt(r);a.length>0&&i.push({name:`PRIMARY`,type:`PRIMARY`,columns:a});let o=_(await e(`PRAGMA ${N(t)}.index_list(${N(n)})`));for(let n of o){if(v(n.origin)===`pk`)continue;let r=v(n.name),a=_(await e(`PRAGMA ${N(t)}.index_info(${N(r)})`));i.push({name:r,type:Number(n.unique)===1?`UNIQUE`:`INDEX`,columns:a.sort((e,t)=>Number(e.seqno)-Number(t.seqno)).map(e=>v(e.name,`<expr>`))})}return i}async function en(e,t,n){let r=await Xt(e,t,n),i=await $t(e,t,n,r),a=await Zt(e,t,n),o=Qt(r),s=/AUTOINCREMENT/i.test(a),c=new Set,l=new Set;for(let e of i)e.type!==`PRIMARY`&&(e.type===`UNIQUE`&&e.columns.length===1?c.add(e.columns[0]):l.add(e.columns[0]));return r.map(e=>{let t=o.length===1&&o[0]===e.name&&/^INTEGER$/i.test(e.type);return{name:e.name,type:e.type,nullable:!e.notnull&&e.pk===0,key:e.pk>0?`PRI`:c.has(e.name)?`UNI`:l.has(e.name)?`MUL`:``,defaultValue:e.dflt_value,extra:t&&s?`auto_increment`:``,comment:``,collation:null}})}var tn={TABLE:`table`,VIEW:`view`,TRIGGER:`trigger`},nn={async listDatabases(e){return _(await e(`PRAGMA database_list`)).map(e=>v(e.name)).filter(e=>e!==`temp`)},async listTables(e,t){return(await F(e,t,`table`)).map(e=>({name:e,engine:null,rows:null,collation:null,autoIncrement:null,comment:``,createTime:null,updateTime:null,dataLength:null}))},listViews:(e,t)=>F(e,t,`view`),listProcedures:async()=>[],listFunctions:async()=>[],listTriggers:(e,t)=>F(e,t,`trigger`),listEvents:async()=>[],listColumns:en,async listIndexes(e,t,n){return $t(e,t,n,await Xt(e,t,n))},async listAllColumns(e,t){let n=new Map;for(let r of await F(e,t,`table`))n.set(r,await en(e,t,r));return n},async listAllIndexes(e,t){let n=new Map;for(let r of await F(e,t,`table`))n.set(r,await $t(e,t,r,await Xt(e,t,r)));return n},async listForeignKeys(e,t){let n=[];for(let r of await F(e,t,`table`)){let i=_(await e(`PRAGMA ${N(t)}.foreign_key_list(${N(r)})`));for(let e of i)n.push({name:`fk_${r}_${e.id}`,table:r,column:v(e.from),refTable:v(e.table),refColumn:v(e.to)})}return n},async getTableInfo(e,t,n){return(await e(`SELECT 1 FROM ${Yt(t)} WHERE type = 'table' AND name = ${P(n)}`)).records.length===0?null:{name:n,engine:null,rows:b((await e(`SELECT COUNT(*) FROM ${N(t)}.${N(n)}`)).records[0]?.[0]),collation:null,autoIncrement:null,comment:``,createTime:null,updateTime:null,dataLength:null}},async getPrimaryKeys(e,t,n){return Qt(await Xt(e,t,n))},async getCreateStatement(e,t,n,r){let i=tn[n];return i?y((await e(`SELECT sql FROM ${Yt(t)} WHERE type = ${P(i)} AND name = ${P(r)}`)).records[0]?.[0]):null}},rn={SELECT_COUNT:`SELECT COUNT(1) as cnt FROM "{0}"."{1}"`,SHOW_FULL_FIELDS:`PRAGMA "{0}".table_info("{1}")`,SHOW_COLUMNS:`PRAGMA "{0}".table_info("{1}")`,SHOW_DATABASE_VIEWS:`SELECT name FROM "{0}".sqlite_master WHERE type = 'view' ORDER BY name`,SHOW_DATABASE_TABLES:`SELECT name FROM "{0}".sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name`,SHOW_DATABASE:`PRAGMA database_list`,SHOW_DATABASES:`PRAGMA database_list`,ADD_INDEX:`CREATE {3} INDEX "{0}"."{2}" ON "{1}"({4})`,SHOW_INDEX:`PRAGMA "{0}".index_info("{2}")`,SHOW_INDEXES:`PRAGMA "{0}".index_list("{1}")`,DROP_INDEX:`DROP INDEX "{0}"."{2}"`,DROP_TRIGGER:`DROP TRIGGER {2} "{0}"."{1}"`,DROP_VIEW:`DROP VIEW {2} "{0}"."{1}"`,SHOW_TRIGGERS:`SELECT name, tbl_name, sql FROM "{0}".sqlite_master WHERE type = 'trigger' ORDER BY name`,SHOW_VIEWS:`SELECT name AS View_name, sql AS View_definition FROM "{0}".sqlite_master WHERE type = 'view' ORDER BY name`,SHOW_ALL_TABLE_STATUS:`SELECT name, type FROM "{0}".sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name`,SHOW_TABLE_STATUS:`SELECT name, type FROM "{0}".sqlite_master WHERE type = 'table' AND name = '{1}'`,INSERT_TABLE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3});`,INSERT_TABLE_BULK:`INSERT INTO "{0}"."{1}" ({2}) VALUES {3};`,INSERT_DEFAULT_VALUES:`INSERT INTO "{0}"."{1}" DEFAULT VALUES;`,INSERT_ON_DUPLICATE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3}) ON CONFLICT DO UPDATE SET {4}`,UPDATE_TABLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3};`,UPDATE_TABLE_SINGLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3}`,START_TRANSACTION:`BEGIN`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM "{0}"."{1}" WHERE {2};`,SELECT_TABLE:`SELECT {2} FROM "{0}"."{1}" {3};`,TRUNCATE_TABLE:`DELETE FROM "{0}"."{1}"`,RENAME_TABLE:`ALTER TABLE "{0}"."{1}" RENAME TO "{3}"`,DROP_TABLE:`DROP TABLE {2} "{0}"."{1}"`,TABLE_CREATE_INFO:`SELECT sql FROM "{0}".sqlite_master WHERE type = 'table' AND name = '{1}'`,TABLE_KEYS_INFO:`PRAGMA "{0}".index_list("{1}")`,INDEX_KEYS_INFO:`PRAGMA "{0}".index_info("{2}")`,CREATE_TRIGGER:`CREATE TRIGGER "{0}"."{1}"
191
191
  BEFORE
192
192
  -- AFTER
193
193
  INSERT
@@ -201,9 +201,9 @@ BEGIN
201
201
  END;`,CREATE_VIEW:`CREATE VIEW "{0}"."{1}" AS
202
202
  /* SQL SELECT Statement */`,SHOW_CREATE_TABLE:`SELECT sql FROM "{0}".sqlite_master WHERE type = 'table' AND name = '{1}'`,SHOW_CREATE_VIEW:`SELECT sql FROM "{0}".sqlite_master WHERE type = 'view' AND name = '{1}'`,SHOW_CREATE_TRIGGER:`SELECT sql FROM "{0}".sqlite_master WHERE type = 'trigger' AND name = '{1}'`,CREATE_TABLE:`CREATE TABLE "{0}"."{1}" {2}`,ALTER_TABLE:`ALTER TABLE "{0}"."{1}" {2}`,ALTER_VIEW:`DROP VIEW IF EXISTS "{0}"."{1}";
203
203
  {2};`,ALTER_TRIGGER:`DROP TRIGGER IF EXISTS "{0}"."{1}";
204
- {2};`,COPY_TABLE_STRUCTURE:`CREATE TABLE "{2}"."{3}" AS SELECT * FROM "{0}"."{1}" WHERE 0`,COPY_TABLE_DATA:`INSERT INTO "{2}"."{3}" SELECT * FROM "{0}"."{1}"`,DISABLE_FK_CHECKS:`PRAGMA foreign_keys = OFF`,ENABLE_FK_CHECKS:`PRAGMA foreign_keys = ON`},en=`ABS.CHANGES.CHAR.COALESCE.CONCAT.CONCAT_WS.FORMAT.GLOB.HEX.IFNULL.IIF.INSTR.LAST_INSERT_ROWID.LENGTH.LIKE.LIKELIHOOD.LIKELY.LOWER.LTRIM.MAX.MIN.NULLIF.OCTET_LENGTH.PRINTF.QUOTE.RANDOM.RANDOMBLOB.REPLACE.ROUND.RTRIM.SIGN.SOUNDEX.SQLITE_COMPILEOPTION_GET.SQLITE_COMPILEOPTION_USED.SQLITE_OFFSET.SQLITE_SOURCE_ID.SQLITE_VERSION.SUBSTR.SUBSTRING.TOTAL_CHANGES.TRIM.TYPEOF.UNHEX.UNICODE.UNLIKELY.UPPER.ZEROBLOB.DATE.TIME.DATETIME.JULIANDAY.UNIXEPOCH.STRFTIME.TIMEDIFF.AVG.COUNT.GROUP_CONCAT.STRING_AGG.SUM.TOTAL.ROW_NUMBER.RANK.DENSE_RANK.PERCENT_RANK.CUME_DIST.NTILE.LAG.LEAD.FIRST_VALUE.LAST_VALUE.NTH_VALUE.ACOS.ACOSH.ASIN.ASINH.ATAN.ATAN2.ATANH.CEIL.CEILING.COS.COSH.DEGREES.EXP.FLOOR.LN.LOG.LOG10.LOG2.MOD.PI.POW.POWER.RADIANS.SIN.SINH.SQRT.TAN.TANH.TRUNC.JSON.JSONB.JSON_ARRAY.JSON_ARRAY_LENGTH.JSON_EACH.JSON_ERROR_POSITION.JSON_EXTRACT.JSON_INSERT.JSON_OBJECT.JSON_PATCH.JSON_PRETTY.JSON_QUOTE.JSON_REMOVE.JSON_REPLACE.JSON_SET.JSON_TREE.JSON_TYPE.JSON_VALID.JSON_GROUP_ARRAY.JSON_GROUP_OBJECT`.split(`.`),tn=`ABORT.ACTION.ADD.AFTER.ALL.ALTER.ALWAYS.ANALYZE.AND.AS.ASC.ATTACH.AUTOINCREMENT.BEFORE.BEGIN.BETWEEN.BY.CASCADE.CASE.CAST.CHECK.COLLATE.COLUMN.COMMIT.CONFLICT.CONSTRAINT.CREATE.CROSS.CURRENT.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.DATABASE.DEFAULT.DEFERRABLE.DEFERRED.DELETE.DESC.DETACH.DISTINCT.DO.DROP.EACH.ELSE.END.ESCAPE.EXCEPT.EXCLUDE.EXCLUSIVE.EXISTS.EXPLAIN.FAIL.FILTER.FIRST.FOLLOWING.FOR.FOREIGN.FROM.FULL.GENERATED.GLOB.GROUP BY.GROUP.GROUPS.HAVING.IF.IGNORE.IMMEDIATE.IN.INDEX.INDEXED.INITIALLY.INNER.INSERT INTO.INSERT.INSTEAD.INTERSECT.INTO.IS.ISNULL.JOIN.KEY.LAST.LEFT.LIKE.LIMIT.MATCH.MATERIALIZED.NATURAL.NO.NOT.NOTHING.NOTNULL.NULL.NULLS.OF.OFFSET.ON CONFLICT.ON.OR.ORDER BY.ORDER.OTHERS.OUTER.OVER.PARTITION.PLAN.PRAGMA.PRECEDING.PRIMARY.QUERY.RAISE.RANGE.RECURSIVE.REFERENCES.REGEXP.REINDEX.RELEASE.RENAME.REPLACE.RESTRICT.RETURNING.RIGHT.ROLLBACK.ROW.ROWS.SAVEPOINT.SELECT.SET.TABLE.TEMP.TEMPORARY.THEN.TIES.TO.TRANSACTION.TRIGGER.TRUE.FALSE.UNBOUNDED.UNION.UNIQUE.UPDATE.USING.VACUUM.VALUES.VIEW.VIRTUAL.WHEN.WHERE.WINDOW.WITH.WITHOUT`.split(`.`),nn=[`integer`,`int`,`real`,`text`,`blob`,`numeric`,`boolean`,`varchar`,`char`,`double`,`float`,`bigint`,`smallint`,`tinyint`,`date`,`datetime`,`timestamp`,`decimal`,`json`],rn={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!0,delimiterCommand:!1,dollarQuotes:!1,goBatchSeparator:!1,limitStyle:`limit`,plsqlBlocks:!1};function an(e){let{quoteIdentifier:t,qualify:n}=e;return{...f(e,{addColumn:`ADD COLUMN`,modify:`none`,qualifiedIndexNames:!0,dropIndexOnTable:!1,unqualifiedIndexTarget:!0,multiRowInsert:!0,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let r=e.columns.filter(e=>e.primaryKey),i=r.length===1&&r[0].type.toUpperCase()===`INTEGER`,a=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type.toUpperCase()}`;return e.length&&!on(e,i)&&(n+=`(${e.length})`),on(e,i)&&(n+=` PRIMARY KEY`,e.autoIncrement&&(n+=` AUTOINCREMENT`)),e.notNull&&(n+=` NOT NULL`),e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),e.comment&&(n+=` /* ${e.comment.replaceAll(`*/`,`* /`)} */`),n});!i&&r.length>0&&a.push(` PRIMARY KEY (${r.map(e=>t(e.name)).join(`, `)})`);let o=x(e.name,`untitled`),s=[`CREATE TABLE ${n(e.database,o)} (\n${a.join(`,
204
+ {2};`,COPY_TABLE_STRUCTURE:`CREATE TABLE "{2}"."{3}" AS SELECT * FROM "{0}"."{1}" WHERE 0`,COPY_TABLE_DATA:`INSERT INTO "{2}"."{3}" SELECT * FROM "{0}"."{1}"`,DISABLE_FK_CHECKS:`PRAGMA foreign_keys = OFF`,ENABLE_FK_CHECKS:`PRAGMA foreign_keys = ON`},an=`ABS.CHANGES.CHAR.COALESCE.CONCAT.CONCAT_WS.FORMAT.GLOB.HEX.IFNULL.IIF.INSTR.LAST_INSERT_ROWID.LENGTH.LIKE.LIKELIHOOD.LIKELY.LOWER.LTRIM.MAX.MIN.NULLIF.OCTET_LENGTH.PRINTF.QUOTE.RANDOM.RANDOMBLOB.REPLACE.ROUND.RTRIM.SIGN.SOUNDEX.SQLITE_COMPILEOPTION_GET.SQLITE_COMPILEOPTION_USED.SQLITE_OFFSET.SQLITE_SOURCE_ID.SQLITE_VERSION.SUBSTR.SUBSTRING.TOTAL_CHANGES.TRIM.TYPEOF.UNHEX.UNICODE.UNLIKELY.UPPER.ZEROBLOB.DATE.TIME.DATETIME.JULIANDAY.UNIXEPOCH.STRFTIME.TIMEDIFF.AVG.COUNT.GROUP_CONCAT.STRING_AGG.SUM.TOTAL.ROW_NUMBER.RANK.DENSE_RANK.PERCENT_RANK.CUME_DIST.NTILE.LAG.LEAD.FIRST_VALUE.LAST_VALUE.NTH_VALUE.ACOS.ACOSH.ASIN.ASINH.ATAN.ATAN2.ATANH.CEIL.CEILING.COS.COSH.DEGREES.EXP.FLOOR.LN.LOG.LOG10.LOG2.MOD.PI.POW.POWER.RADIANS.SIN.SINH.SQRT.TAN.TANH.TRUNC.JSON.JSONB.JSON_ARRAY.JSON_ARRAY_LENGTH.JSON_EACH.JSON_ERROR_POSITION.JSON_EXTRACT.JSON_INSERT.JSON_OBJECT.JSON_PATCH.JSON_PRETTY.JSON_QUOTE.JSON_REMOVE.JSON_REPLACE.JSON_SET.JSON_TREE.JSON_TYPE.JSON_VALID.JSON_GROUP_ARRAY.JSON_GROUP_OBJECT`.split(`.`),on=`ABORT.ACTION.ADD.AFTER.ALL.ALTER.ALWAYS.ANALYZE.AND.AS.ASC.ATTACH.AUTOINCREMENT.BEFORE.BEGIN.BETWEEN.BY.CASCADE.CASE.CAST.CHECK.COLLATE.COLUMN.COMMIT.CONFLICT.CONSTRAINT.CREATE.CROSS.CURRENT.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.DATABASE.DEFAULT.DEFERRABLE.DEFERRED.DELETE.DESC.DETACH.DISTINCT.DO.DROP.EACH.ELSE.END.ESCAPE.EXCEPT.EXCLUDE.EXCLUSIVE.EXISTS.EXPLAIN.FAIL.FILTER.FIRST.FOLLOWING.FOR.FOREIGN.FROM.FULL.GENERATED.GLOB.GROUP BY.GROUP.GROUPS.HAVING.IF.IGNORE.IMMEDIATE.IN.INDEX.INDEXED.INITIALLY.INNER.INSERT INTO.INSERT.INSTEAD.INTERSECT.INTO.IS.ISNULL.JOIN.KEY.LAST.LEFT.LIKE.LIMIT.MATCH.MATERIALIZED.NATURAL.NO.NOT.NOTHING.NOTNULL.NULL.NULLS.OF.OFFSET.ON CONFLICT.ON.OR.ORDER BY.ORDER.OTHERS.OUTER.OVER.PARTITION.PLAN.PRAGMA.PRECEDING.PRIMARY.QUERY.RAISE.RANGE.RECURSIVE.REFERENCES.REGEXP.REINDEX.RELEASE.RENAME.REPLACE.RESTRICT.RETURNING.RIGHT.ROLLBACK.ROW.ROWS.SAVEPOINT.SELECT.SET.TABLE.TEMP.TEMPORARY.THEN.TIES.TO.TRANSACTION.TRIGGER.TRUE.FALSE.UNBOUNDED.UNION.UNIQUE.UPDATE.USING.VACUUM.VALUES.VIEW.VIRTUAL.WHEN.WHERE.WINDOW.WITH.WITHOUT`.split(`.`),sn=[`integer`,`int`,`real`,`text`,`blob`,`numeric`,`boolean`,`varchar`,`char`,`double`,`float`,`bigint`,`smallint`,`tinyint`,`date`,`datetime`,`timestamp`,`decimal`,`json`],cn={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!0,delimiterCommand:!1,dollarQuotes:!1,goBatchSeparator:!1,limitStyle:`limit`,plsqlBlocks:!1};function ln(e){let{quoteIdentifier:t,qualify:n}=e;return{...f(e,{addColumn:`ADD COLUMN`,modify:`none`,qualifiedIndexNames:!0,dropIndexOnTable:!1,unqualifiedIndexTarget:!0,multiRowInsert:!0,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let r=e.columns.filter(e=>e.primaryKey),i=r.length===1&&r[0].type.toUpperCase()===`INTEGER`,a=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type.toUpperCase()}`;return e.length&&!un(e,i)&&(n+=`(${e.length})`),un(e,i)&&(n+=` PRIMARY KEY`,e.autoIncrement&&(n+=` AUTOINCREMENT`)),e.notNull&&(n+=` NOT NULL`),e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),e.comment&&(n+=` /* ${e.comment.replaceAll(`*/`,`* /`)} */`),n});!i&&r.length>0&&a.push(` PRIMARY KEY (${r.map(e=>t(e.name)).join(`, `)})`);let o=x(e.name,`untitled`),s=[`CREATE TABLE ${n(e.database,o)} (\n${a.join(`,
205
205
  `)}\n);`];for(let r of e.indexes){if(r.type===`PRIMARY`||r.columns.length===0)continue;let i=r.type===`UNIQUE`?`UNIQUE `:``,a=r.type===`FULLTEXT`?` -- FULLTEXT is not supported by SQLite; created as a plain index`:``,c=/^sqlite_/i.test(r.name)?``:r.name,l=n(e.database,x(c,`${o}_${r.columns.join(`_`)}_idx`));s.push(`CREATE ${i}INDEX ${l} ON ${t(o)} (${r.columns.map(t).join(`, `)});${a}`)}return s.join(`
206
- `)}}}function on(e,t){return t&&e.primaryKey}var B={id:`sqlite`,label:`SQLite`,capabilities:{multipleDatabases:!1,schemas:!1,users:!1,procedures:!1,functions:!1,triggers:!0,events:!1,processList:!1,variables:!1,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!0},ddl:an,rowIdExpression:`rowid AS "_rowid_"`,explain:Xe,introspect:Qt,identifierQuote:`"`,queries:$t,syntax:rn,dataTypes:nn,functions:en,reservedWords:tn},sn=S(B),V=e=>`[${e.replaceAll(`]`,`]]`)}]`,cn=(e,t)=>`${V(e)}.${V(t)}`,H=e=>`'${e.replace(/'/g,`''`)}'`,ln=(e,t)=>`OBJECT_ID(${H(`${V(e)}.${V(t)}`)})`,un=`s.name NOT IN ('sys', 'INFORMATION_SCHEMA', 'guest') AND s.schema_id < 16384`;async function U(e,t){return(await e(t)).records.map(e=>v(e[0]))}function dn(e,t,n,r){let i=e.toLowerCase();return[`varchar`,`char`,`varbinary`,`binary`].includes(i)?`${i}(${t===-1?`max`:t})`:[`nvarchar`,`nchar`].includes(i)?`${i}(${t===-1?`max`:t/2})`:[`decimal`,`numeric`].includes(i)?`${i}(${n},${r})`:[`datetime2`,`time`,`datetimeoffset`].includes(i)?`${i}(${r})`:i}async function fn(e,t,n){return _(await e(`SELECT o.name AS table_name, c.name, ty.name AS type_name, c.max_length, c.precision, c.scale,
206
+ `)}}}function un(e,t){return t&&e.primaryKey}var I={id:`sqlite`,label:`SQLite`,capabilities:{multipleDatabases:!1,schemas:!1,users:!1,procedures:!1,functions:!1,triggers:!0,events:!1,processList:!1,variables:!1,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!0},ddl:ln,rowIdExpression:`rowid AS "_rowid_"`,explain:Ze,introspect:nn,identifierQuote:`"`,queries:rn,syntax:cn,dataTypes:sn,functions:an,reservedWords:on},dn=S(I),L=e=>`[${e.replaceAll(`]`,`]]`)}]`,fn=(e,t)=>`${L(e)}.${L(t)}`,R=e=>`'${e.replace(/'/g,`''`)}'`,pn=(e,t)=>`OBJECT_ID(${R(`${L(e)}.${L(t)}`)})`,mn=`s.name NOT IN ('sys', 'INFORMATION_SCHEMA', 'guest') AND s.schema_id < 16384`;async function z(e,t){return(await e(t)).records.map(e=>v(e[0]))}function hn(e,t,n,r){let i=e.toLowerCase();return[`varchar`,`char`,`varbinary`,`binary`].includes(i)?`${i}(${t===-1?`max`:t})`:[`nvarchar`,`nchar`].includes(i)?`${i}(${t===-1?`max`:t/2})`:[`decimal`,`numeric`].includes(i)?`${i}(${n},${r})`:[`datetime2`,`time`,`datetimeoffset`].includes(i)?`${i}(${r})`:i}async function gn(e,t,n){return _(await e(`SELECT o.name AS table_name, c.name, ty.name AS type_name, c.max_length, c.precision, c.scale,
207
207
  c.is_nullable, d.definition AS default_value, c.is_identity, c.is_computed, c.collation_name,
208
208
  CAST(ep.value AS NVARCHAR(4000)) AS comment
209
209
  FROM sys.columns c
@@ -212,26 +212,26 @@ END;`,CREATE_VIEW:`CREATE VIEW "{0}"."{1}" AS
212
212
  JOIN sys.types ty ON ty.user_type_id = c.user_type_id
213
213
  LEFT JOIN sys.default_constraints d ON d.object_id = c.default_object_id
214
214
  LEFT JOIN sys.extended_properties ep ON ep.major_id = c.object_id AND ep.minor_id = c.column_id AND ep.class = 1 AND ep.name = 'MS_Description'
215
- WHERE s.name = ${H(t)} AND o.type IN ('U', 'V')${n?` AND o.name = ${H(n)}`:``}
216
- ORDER BY o.name, c.column_id`)).map(e=>({table:v(e.table_name),name:v(e.name),type:dn(v(e.type_name),Number(e.max_length),Number(e.precision),Number(e.scale)),nullable:e.is_nullable===!0||Number(e.is_nullable)===1,defaultValue:y(e.default_value),identity:e.is_identity===!0||Number(e.is_identity)===1,computed:e.is_computed===!0||Number(e.is_computed)===1,comment:v(e.comment),collation:y(e.collation_name)}))}async function W(e,t,n){return _(await e(`SELECT o.name AS table_name, i.name, i.is_primary_key, i.is_unique,
215
+ WHERE s.name = ${R(t)} AND o.type IN ('U', 'V')${n?` AND o.name = ${R(n)}`:``}
216
+ ORDER BY o.name, c.column_id`)).map(e=>({table:v(e.table_name),name:v(e.name),type:hn(v(e.type_name),Number(e.max_length),Number(e.precision),Number(e.scale)),nullable:e.is_nullable===!0||Number(e.is_nullable)===1,defaultValue:y(e.default_value),identity:e.is_identity===!0||Number(e.is_identity)===1,computed:e.is_computed===!0||Number(e.is_computed)===1,comment:v(e.comment),collation:y(e.collation_name)}))}async function B(e,t,n){return _(await e(`SELECT o.name AS table_name, i.name, i.is_primary_key, i.is_unique,
217
217
  STRING_AGG(c.name, CHAR(10)) WITHIN GROUP (ORDER BY ic.key_ordinal) AS columns
218
218
  FROM sys.indexes i
219
219
  JOIN sys.objects o ON o.object_id = i.object_id
220
220
  JOIN sys.schemas s ON s.schema_id = o.schema_id
221
221
  JOIN sys.index_columns ic ON ic.object_id = i.object_id AND ic.index_id = i.index_id AND ic.is_included_column = 0
222
222
  JOIN sys.columns c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
223
- WHERE s.name = ${H(t)} AND o.type = 'U' AND i.name IS NOT NULL${n?` AND o.name = ${H(n)}`:``}
223
+ WHERE s.name = ${R(t)} AND o.type = 'U' AND i.name IS NOT NULL${n?` AND o.name = ${R(n)}`:``}
224
224
  GROUP BY o.name, i.name, i.is_primary_key, i.is_unique, i.index_id
225
225
  ORDER BY o.name, i.is_primary_key DESC, i.name`)).map(e=>({table:v(e.table_name),name:v(e.name),primary:e.is_primary_key===!0||Number(e.is_primary_key)===1,unique:e.is_unique===!0||Number(e.is_unique)===1,columns:v(e.columns).split(`
226
- `).filter(Boolean)}))}function pn(e){return{name:e.primary?`PRIMARY`:e.name,type:e.primary?`PRIMARY`:e.unique?`UNIQUE`:`INDEX`,columns:e.columns}}function mn(e,t){let n=new Set,r=new Set,i=new Set;for(let e of t)e.primary?e.columns.forEach(e=>n.add(e)):e.unique&&e.columns.length===1?r.add(e.columns[0]):e.columns.length>0&&i.add(e.columns[0]);return e.map(e=>({name:e.name,type:e.type,nullable:e.nullable,key:n.has(e.name)?`PRI`:r.has(e.name)?`UNI`:i.has(e.name)?`MUL`:``,defaultValue:e.defaultValue,extra:e.identity?`identity`:e.computed?`computed`:``,comment:e.comment,collation:e.collation}))}function hn(e){let t=new Map;for(let n of e){let e=t.get(n.table);e?e.push(n):t.set(n.table,[n])}return t}async function gn(e,t,n){return _(await e(`SELECT t.name, t.create_date, t.modify_date,
226
+ `).filter(Boolean)}))}function _n(e){return{name:e.primary?`PRIMARY`:e.name,type:e.primary?`PRIMARY`:e.unique?`UNIQUE`:`INDEX`,columns:e.columns}}function vn(e,t){let n=new Set,r=new Set,i=new Set;for(let e of t)e.primary?e.columns.forEach(e=>n.add(e)):e.unique&&e.columns.length===1?r.add(e.columns[0]):e.columns.length>0&&i.add(e.columns[0]);return e.map(e=>({name:e.name,type:e.type,nullable:e.nullable,key:n.has(e.name)?`PRI`:r.has(e.name)?`UNI`:i.has(e.name)?`MUL`:``,defaultValue:e.defaultValue,extra:e.identity?`identity`:e.computed?`computed`:``,comment:e.comment,collation:e.collation}))}function yn(e){let t=new Map;for(let n of e){let e=t.get(n.table);e?e.push(n):t.set(n.table,[n])}return t}async function bn(e,t,n){return _(await e(`SELECT t.name, t.create_date, t.modify_date,
227
227
  CAST(ep.value AS NVARCHAR(4000)) AS comment,
228
228
  (SELECT SUM(p.rows) FROM sys.partitions p WHERE p.object_id = t.object_id AND p.index_id IN (0, 1)) AS rows,
229
229
  (SELECT SUM(a.total_pages) * 8192 FROM sys.partitions p JOIN sys.allocation_units a ON a.container_id = p.partition_id WHERE p.object_id = t.object_id) AS data_length
230
230
  FROM sys.tables t
231
231
  JOIN sys.schemas s ON s.schema_id = t.schema_id
232
232
  LEFT JOIN sys.extended_properties ep ON ep.major_id = t.object_id AND ep.minor_id = 0 AND ep.class = 1 AND ep.name = 'MS_Description'
233
- WHERE s.name = ${H(t)}${n?` AND t.name = ${H(n)}`:``}
234
- ORDER BY t.name`)).map(e=>({name:v(e.name),engine:null,rows:b(e.rows),collation:null,autoIncrement:null,comment:v(e.comment),createTime:y(e.create_date),updateTime:y(e.modify_date),dataLength:b(e.data_length)}))}async function _n(e,t,n){let r=await fn(e,t,n);if(r.length===0)return null;let[i,a]=await Promise.all([W(e,t,n),_(await e(`SELECT fk.name, c.name AS column_name, rs.name AS ref_schema, rt.name AS ref_table, rc.name AS ref_column,
233
+ WHERE s.name = ${R(t)}${n?` AND t.name = ${R(n)}`:``}
234
+ ORDER BY t.name`)).map(e=>({name:v(e.name),engine:null,rows:b(e.rows),collation:null,autoIncrement:null,comment:v(e.comment),createTime:y(e.create_date),updateTime:y(e.modify_date),dataLength:b(e.data_length)}))}async function xn(e,t,n){let r=await gn(e,t,n);if(r.length===0)return null;let[i,a]=await Promise.all([B(e,t,n),_(await e(`SELECT fk.name, c.name AS column_name, rs.name AS ref_schema, rt.name AS ref_table, rc.name AS ref_column,
235
235
  fk.delete_referential_action_desc AS on_delete, fk.update_referential_action_desc AS on_update
236
236
  FROM sys.foreign_keys fk
237
237
  JOIN sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
@@ -239,13 +239,13 @@ END;`,CREATE_VIEW:`CREATE VIEW "{0}"."{1}" AS
239
239
  JOIN sys.objects rt ON rt.object_id = fk.referenced_object_id
240
240
  JOIN sys.schemas rs ON rs.schema_id = rt.schema_id
241
241
  JOIN sys.columns rc ON rc.object_id = fkc.referenced_object_id AND rc.column_id = fkc.referenced_column_id
242
- WHERE fk.parent_object_id = ${ln(t,n)}
243
- ORDER BY fk.name, fkc.constraint_column_id`))]),o=cn(t,n),s=r.map(e=>{let t=` ${V(e.name)} ${e.type}`;return e.identity&&(t+=` IDENTITY(1,1)`),e.collation&&(t+=` COLLATE ${e.collation}`),t+=e.nullable?` NULL`:` NOT NULL`,e.defaultValue&&!e.identity&&(t+=` DEFAULT ${e.defaultValue}`),t});for(let e of i)e.primary?s.push(` CONSTRAINT ${V(e.name)} PRIMARY KEY (${e.columns.map(V).join(`, `)})`):e.unique&&s.push(` CONSTRAINT ${V(e.name)} UNIQUE (${e.columns.map(V).join(`, `)})`);let c=new Map;for(let e of a){let t=v(e.name),n=c.get(t)??{cols:[],refSchema:v(e.ref_schema),refTable:v(e.ref_table),refCols:[],onDelete:v(e.on_delete),onUpdate:v(e.on_update)};n.cols.push(v(e.column_name)),n.refCols.push(v(e.ref_column)),c.set(t,n)}for(let[e,t]of c){let n=` CONSTRAINT ${V(e)} FOREIGN KEY (${t.cols.map(V).join(`, `)}) REFERENCES ${cn(t.refSchema,t.refTable)} (${t.refCols.map(V).join(`, `)})`;t.onDelete&&t.onDelete!==`NO_ACTION`&&(n+=` ON DELETE ${t.onDelete.replaceAll(`_`,` `)}`),t.onUpdate&&t.onUpdate!==`NO_ACTION`&&(n+=` ON UPDATE ${t.onUpdate.replaceAll(`_`,` `)}`),s.push(n)}let l=[`CREATE TABLE ${o} (\n${s.join(`,
244
- `)}\n);`];for(let e of i)e.primary||e.unique||l.push(`CREATE INDEX ${V(e.name)} ON ${o} (${e.columns.map(V).join(`, `)});`);let u=(await gn(e,t,n))[0];u?.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${H(u.comment)}, 'SCHEMA', ${H(t)}, 'TABLE', ${H(n)};`);for(let e of r)e.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${H(e.comment)}, 'SCHEMA', ${H(t)}, 'TABLE', ${H(n)}, 'COLUMN', ${H(e.name)};`);return l.join(`
245
- `)}async function vn(e,t,n){return y((await e(`SELECT OBJECT_DEFINITION(${ln(t,n)})`)).records[0]?.[0])}async function yn(e,t){return(await e(`SELECT tr.name, o.name AS table_name FROM sys.triggers tr
242
+ WHERE fk.parent_object_id = ${pn(t,n)}
243
+ ORDER BY fk.name, fkc.constraint_column_id`))]),o=fn(t,n),s=r.map(e=>{let t=` ${L(e.name)} ${e.type}`;return e.identity&&(t+=` IDENTITY(1,1)`),e.collation&&(t+=` COLLATE ${e.collation}`),t+=e.nullable?` NULL`:` NOT NULL`,e.defaultValue&&!e.identity&&(t+=` DEFAULT ${e.defaultValue}`),t});for(let e of i)e.primary?s.push(` CONSTRAINT ${L(e.name)} PRIMARY KEY (${e.columns.map(L).join(`, `)})`):e.unique&&s.push(` CONSTRAINT ${L(e.name)} UNIQUE (${e.columns.map(L).join(`, `)})`);let c=new Map;for(let e of a){let t=v(e.name),n=c.get(t)??{cols:[],refSchema:v(e.ref_schema),refTable:v(e.ref_table),refCols:[],onDelete:v(e.on_delete),onUpdate:v(e.on_update)};n.cols.push(v(e.column_name)),n.refCols.push(v(e.ref_column)),c.set(t,n)}for(let[e,t]of c){let n=` CONSTRAINT ${L(e)} FOREIGN KEY (${t.cols.map(L).join(`, `)}) REFERENCES ${fn(t.refSchema,t.refTable)} (${t.refCols.map(L).join(`, `)})`;t.onDelete&&t.onDelete!==`NO_ACTION`&&(n+=` ON DELETE ${t.onDelete.replaceAll(`_`,` `)}`),t.onUpdate&&t.onUpdate!==`NO_ACTION`&&(n+=` ON UPDATE ${t.onUpdate.replaceAll(`_`,` `)}`),s.push(n)}let l=[`CREATE TABLE ${o} (\n${s.join(`,
244
+ `)}\n);`];for(let e of i)e.primary||e.unique||l.push(`CREATE INDEX ${L(e.name)} ON ${o} (${e.columns.map(L).join(`, `)});`);let u=(await bn(e,t,n))[0];u?.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${R(u.comment)}, 'SCHEMA', ${R(t)}, 'TABLE', ${R(n)};`);for(let e of r)e.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${R(e.comment)}, 'SCHEMA', ${R(t)}, 'TABLE', ${R(n)}, 'COLUMN', ${R(e.name)};`);return l.join(`
245
+ `)}async function Sn(e,t,n){return y((await e(`SELECT OBJECT_DEFINITION(${pn(t,n)})`)).records[0]?.[0])}async function Cn(e,t){return(await e(`SELECT tr.name, o.name AS table_name FROM sys.triggers tr
246
246
  JOIN sys.objects o ON o.object_id = tr.parent_id
247
247
  JOIN sys.schemas s ON s.schema_id = o.schema_id
248
- WHERE s.name = ${H(t)} AND tr.is_ms_shipped = 0 ORDER BY o.name, tr.name`)).records.map(e=>({name:v(e[0]),table:v(e[1])}))}var bn={async listCatalogs(e){return U(e,`SELECT name FROM sys.databases WHERE database_id > 4 OR name = DB_NAME() ORDER BY name`)},async currentCatalog(e){return v((await e(`SELECT DB_NAME()`)).records[0]?.[0])},async listDatabases(e){return U(e,`SELECT s.name FROM sys.schemas s WHERE ${un} ORDER BY CASE WHEN s.name = 'dbo' THEN 0 ELSE 1 END, s.name`)},listTables:(e,t)=>gn(e,t),listViews:(e,t)=>U(e,`SELECT v.name FROM sys.views v JOIN sys.schemas s ON s.schema_id = v.schema_id WHERE s.name = ${H(t)} ORDER BY v.name`),listProcedures:(e,t)=>U(e,`SELECT p.name FROM sys.procedures p JOIN sys.schemas s ON s.schema_id = p.schema_id WHERE s.name = ${H(t)} ORDER BY p.name`),listFunctions:(e,t)=>U(e,`SELECT o.name FROM sys.objects o JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = ${H(t)} AND o.type IN ('FN', 'IF', 'TF', 'AF') ORDER BY o.name`),async listTriggers(e,t){return(await yn(e,t)).map(e=>e.name)},listTriggerDetails:yn,listEvents:async()=>[],async listColumns(e,t,n){let[r,i]=await Promise.all([fn(e,t,n),W(e,t,n)]);return mn(r,i)},async listIndexes(e,t,n){return(await W(e,t,n)).map(pn)},async listAllColumns(e,t){let[n,r]=await Promise.all([fn(e,t),W(e,t)]),i=hn(r),a=new Map;for(let[e,t]of hn(n))a.set(e,mn(t,i.get(e)??[]));return a},async listAllIndexes(e,t){let n=new Map;for(let[r,i]of hn(await W(e,t)))n.set(r,i.map(pn));return n},async listForeignKeys(e,t){return(await e(`SELECT fk.name, o.name AS table_name, c.name AS column_name, rt.name AS ref_table, rc.name AS ref_column
248
+ WHERE s.name = ${R(t)} AND tr.is_ms_shipped = 0 ORDER BY o.name, tr.name`)).records.map(e=>({name:v(e[0]),table:v(e[1])}))}var wn={async listCatalogs(e){return z(e,`SELECT name FROM sys.databases WHERE database_id > 4 OR name = DB_NAME() ORDER BY name`)},async currentCatalog(e){return v((await e(`SELECT DB_NAME()`)).records[0]?.[0])},async listDatabases(e){return z(e,`SELECT s.name FROM sys.schemas s WHERE ${mn} ORDER BY CASE WHEN s.name = 'dbo' THEN 0 ELSE 1 END, s.name`)},listTables:(e,t)=>bn(e,t),listViews:(e,t)=>z(e,`SELECT v.name FROM sys.views v JOIN sys.schemas s ON s.schema_id = v.schema_id WHERE s.name = ${R(t)} ORDER BY v.name`),listProcedures:(e,t)=>z(e,`SELECT p.name FROM sys.procedures p JOIN sys.schemas s ON s.schema_id = p.schema_id WHERE s.name = ${R(t)} ORDER BY p.name`),listFunctions:(e,t)=>z(e,`SELECT o.name FROM sys.objects o JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = ${R(t)} AND o.type IN ('FN', 'IF', 'TF', 'AF') ORDER BY o.name`),async listTriggers(e,t){return(await Cn(e,t)).map(e=>e.name)},listTriggerDetails:Cn,listEvents:async()=>[],async listColumns(e,t,n){let[r,i]=await Promise.all([gn(e,t,n),B(e,t,n)]);return vn(r,i)},async listIndexes(e,t,n){return(await B(e,t,n)).map(_n)},async listAllColumns(e,t){let[n,r]=await Promise.all([gn(e,t),B(e,t)]),i=yn(r),a=new Map;for(let[e,t]of yn(n))a.set(e,vn(t,i.get(e)??[]));return a},async listAllIndexes(e,t){let n=new Map;for(let[r,i]of yn(await B(e,t)))n.set(r,i.map(_n));return n},async listForeignKeys(e,t){return(await e(`SELECT fk.name, o.name AS table_name, c.name AS column_name, rt.name AS ref_table, rc.name AS ref_column
249
249
  FROM sys.foreign_keys fk
250
250
  JOIN sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
251
251
  JOIN sys.objects o ON o.object_id = fk.parent_object_id
@@ -253,8 +253,8 @@ END;`,CREATE_VIEW:`CREATE VIEW "{0}"."{1}" AS
253
253
  JOIN sys.columns c ON c.object_id = fkc.parent_object_id AND c.column_id = fkc.parent_column_id
254
254
  JOIN sys.objects rt ON rt.object_id = fk.referenced_object_id
255
255
  JOIN sys.columns rc ON rc.object_id = fkc.referenced_object_id AND rc.column_id = fkc.referenced_column_id
256
- WHERE s.name = ${H(t)}
257
- ORDER BY o.name, fk.name, fkc.constraint_column_id`)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){return(await gn(e,t,n))[0]??null},async getPrimaryKeys(e,t,n){return(await W(e,t,n)).find(e=>e.primary)?.columns??[]},async getCreateStatement(e,t,n,r){switch(n){case`TABLE`:return _n(e,t,r);case`VIEW`:case`PROCEDURE`:case`FUNCTION`:case`TRIGGER`:return vn(e,t,r);default:return null}}},xn={SELECT_COUNT:`SELECT COUNT(1) AS cnt FROM [{0}].[{1}]`,SHOW_FULL_FIELDS:`SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '{0}' AND TABLE_NAME = '{1}' ORDER BY ORDINAL_POSITION`,SHOW_COLUMNS:`SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '{0}' AND TABLE_NAME = '{1}' ORDER BY ORDINAL_POSITION`,SHOW_DATABASE_VIEWS:`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = '{0}' ORDER BY TABLE_NAME`,SHOW_DATABASE_TABLES:`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '{0}' AND TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME`,SHOW_DATABASE:`SELECT SCHEMA_NAME()`,SHOW_DATABASES:`SELECT name FROM sys.schemas WHERE schema_id < 16384 AND name NOT IN ('sys', 'INFORMATION_SCHEMA', 'guest') ORDER BY name`,ADD_INDEX:`CREATE {3} INDEX [{2}] ON [{0}].[{1}] ({4})`,SHOW_INDEXES:`SELECT i.name AS index_name, i.type_desc, i.is_unique FROM sys.indexes i JOIN sys.objects o ON o.object_id = i.object_id JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = '{0}' AND o.name = '{1}' AND i.name IS NOT NULL ORDER BY i.name`,DROP_INDEX:`DROP INDEX [{2}] ON [{0}].[{1}]`,DROP_PROCEDURE:`DROP PROCEDURE {2} [{0}].[{1}]`,DROP_FUNCTION:`DROP FUNCTION {2} [{0}].[{1}]`,DROP_TRIGGER:`DROP TRIGGER {2} [{0}].[{1}]`,DROP_VIEW:`DROP VIEW {2} [{0}].[{1}]`,SHOW_PROCEDURES:`SELECT p.name FROM sys.procedures p JOIN sys.schemas s ON s.schema_id = p.schema_id WHERE s.name = '{0}' ORDER BY p.name`,SHOW_FUNCTIONS:`SELECT o.name FROM sys.objects o JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = '{0}' AND o.type IN ('FN', 'IF', 'TF', 'AF') ORDER BY o.name`,SHOW_TRIGGERS:`SELECT tr.name, o.name AS table_name FROM sys.triggers tr JOIN sys.objects o ON o.object_id = tr.parent_id JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = '{0}' ORDER BY tr.name`,SHOW_VIEWS:`SELECT TABLE_NAME AS [View_name], VIEW_DEFINITION AS [View_definition] FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = '{0}' ORDER BY TABLE_NAME`,SHOW_ALL_TABLE_STATUS:`SELECT t.name AS [Name], SUM(p.rows) AS [Rows], t.create_date AS [Create_time], t.modify_date AS [Update_time] FROM sys.tables t JOIN sys.schemas s ON s.schema_id = t.schema_id LEFT JOIN sys.partitions p ON p.object_id = t.object_id AND p.index_id IN (0, 1) WHERE s.name = '{0}' GROUP BY t.name, t.create_date, t.modify_date ORDER BY t.name`,SHOW_TABLE_STATUS:`SELECT t.name AS [Name], SUM(p.rows) AS [Rows], t.create_date AS [Create_time], t.modify_date AS [Update_time] FROM sys.tables t JOIN sys.schemas s ON s.schema_id = t.schema_id LEFT JOIN sys.partitions p ON p.object_id = t.object_id AND p.index_id IN (0, 1) WHERE s.name = '{0}' AND t.name = '{1}' GROUP BY t.name, t.create_date, t.modify_date`,INSERT_TABLE:`INSERT INTO [{0}].[{1}] ({2}) VALUES({3});`,INSERT_TABLE_BULK:`INSERT INTO [{0}].[{1}] ({2}) VALUES {3};`,INSERT_DEFAULT_VALUES:`INSERT INTO [{0}].[{1}] DEFAULT VALUES;`,UPDATE_TABLE:`UPDATE [{0}].[{1}] SET {2} WHERE {3};`,UPDATE_TABLE_SINGLE:`UPDATE TOP (1) [{0}].[{1}] SET {2} WHERE {3}`,START_TRANSACTION:`BEGIN TRANSACTION`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM [{0}].[{1}] WHERE {2};`,SELECT_TABLE:`SELECT {2} FROM [{0}].[{1}] {3};`,TRUNCATE_TABLE:`TRUNCATE TABLE [{0}].[{1}]`,RENAME_TABLE:`EXEC sp_rename '{0}.{1}', '{3}'`,DROP_TABLE:`DROP TABLE {2} [{0}].[{1}]`,CREATE_PROCEDURE:`CREATE PROCEDURE [{0}].[{1}]
256
+ WHERE s.name = ${R(t)}
257
+ ORDER BY o.name, fk.name, fkc.constraint_column_id`)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){return(await bn(e,t,n))[0]??null},async getPrimaryKeys(e,t,n){return(await B(e,t,n)).find(e=>e.primary)?.columns??[]},async getCreateStatement(e,t,n,r){switch(n){case`TABLE`:return xn(e,t,r);case`VIEW`:case`PROCEDURE`:case`FUNCTION`:case`TRIGGER`:return Sn(e,t,r);default:return null}}},Tn={SELECT_COUNT:`SELECT COUNT(1) AS cnt FROM [{0}].[{1}]`,SHOW_FULL_FIELDS:`SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '{0}' AND TABLE_NAME = '{1}' ORDER BY ORDINAL_POSITION`,SHOW_COLUMNS:`SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '{0}' AND TABLE_NAME = '{1}' ORDER BY ORDINAL_POSITION`,SHOW_DATABASE_VIEWS:`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = '{0}' ORDER BY TABLE_NAME`,SHOW_DATABASE_TABLES:`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '{0}' AND TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME`,SHOW_DATABASE:`SELECT SCHEMA_NAME()`,SHOW_DATABASES:`SELECT name FROM sys.schemas WHERE schema_id < 16384 AND name NOT IN ('sys', 'INFORMATION_SCHEMA', 'guest') ORDER BY name`,ADD_INDEX:`CREATE {3} INDEX [{2}] ON [{0}].[{1}] ({4})`,SHOW_INDEXES:`SELECT i.name AS index_name, i.type_desc, i.is_unique FROM sys.indexes i JOIN sys.objects o ON o.object_id = i.object_id JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = '{0}' AND o.name = '{1}' AND i.name IS NOT NULL ORDER BY i.name`,DROP_INDEX:`DROP INDEX [{2}] ON [{0}].[{1}]`,DROP_PROCEDURE:`DROP PROCEDURE {2} [{0}].[{1}]`,DROP_FUNCTION:`DROP FUNCTION {2} [{0}].[{1}]`,DROP_TRIGGER:`DROP TRIGGER {2} [{0}].[{1}]`,DROP_VIEW:`DROP VIEW {2} [{0}].[{1}]`,SHOW_PROCEDURES:`SELECT p.name FROM sys.procedures p JOIN sys.schemas s ON s.schema_id = p.schema_id WHERE s.name = '{0}' ORDER BY p.name`,SHOW_FUNCTIONS:`SELECT o.name FROM sys.objects o JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = '{0}' AND o.type IN ('FN', 'IF', 'TF', 'AF') ORDER BY o.name`,SHOW_TRIGGERS:`SELECT tr.name, o.name AS table_name FROM sys.triggers tr JOIN sys.objects o ON o.object_id = tr.parent_id JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = '{0}' ORDER BY tr.name`,SHOW_VIEWS:`SELECT TABLE_NAME AS [View_name], VIEW_DEFINITION AS [View_definition] FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = '{0}' ORDER BY TABLE_NAME`,SHOW_ALL_TABLE_STATUS:`SELECT t.name AS [Name], SUM(p.rows) AS [Rows], t.create_date AS [Create_time], t.modify_date AS [Update_time] FROM sys.tables t JOIN sys.schemas s ON s.schema_id = t.schema_id LEFT JOIN sys.partitions p ON p.object_id = t.object_id AND p.index_id IN (0, 1) WHERE s.name = '{0}' GROUP BY t.name, t.create_date, t.modify_date ORDER BY t.name`,SHOW_TABLE_STATUS:`SELECT t.name AS [Name], SUM(p.rows) AS [Rows], t.create_date AS [Create_time], t.modify_date AS [Update_time] FROM sys.tables t JOIN sys.schemas s ON s.schema_id = t.schema_id LEFT JOIN sys.partitions p ON p.object_id = t.object_id AND p.index_id IN (0, 1) WHERE s.name = '{0}' AND t.name = '{1}' GROUP BY t.name, t.create_date, t.modify_date`,INSERT_TABLE:`INSERT INTO [{0}].[{1}] ({2}) VALUES({3});`,INSERT_TABLE_BULK:`INSERT INTO [{0}].[{1}] ({2}) VALUES {3};`,INSERT_DEFAULT_VALUES:`INSERT INTO [{0}].[{1}] DEFAULT VALUES;`,UPDATE_TABLE:`UPDATE [{0}].[{1}] SET {2} WHERE {3};`,UPDATE_TABLE_SINGLE:`UPDATE TOP (1) [{0}].[{1}] SET {2} WHERE {3}`,START_TRANSACTION:`BEGIN TRANSACTION`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM [{0}].[{1}] WHERE {2};`,SELECT_TABLE:`SELECT {2} FROM [{0}].[{1}] {3};`,TRUNCATE_TABLE:`TRUNCATE TABLE [{0}].[{1}]`,RENAME_TABLE:`EXEC sp_rename '{0}.{1}', '{3}'`,DROP_TABLE:`DROP TABLE {2} [{0}].[{1}]`,CREATE_PROCEDURE:`CREATE PROCEDURE [{0}].[{1}]
258
258
  AS
259
259
  BEGIN
260
260
  SET NOCOUNT ON;
@@ -288,39 +288,39 @@ GO
288
288
  GO
289
289
  {2}`,ALTER_TRIGGER:`DROP TRIGGER IF EXISTS [{0}].[{1}];
290
290
  GO
291
- {2}`,SHOW_PROCESS_LIST:`SELECT s.session_id AS [Id], s.login_name AS [User], COALESCE(c.client_net_address, 'local') AS [Host], DB_NAME(s.database_id) AS [db], COALESCE(r.status, s.status) AS [Command], COALESCE(DATEDIFF(SECOND, r.start_time, GETDATE()), 0) AS [Time], COALESCE(r.wait_type, '') AS [State], t.text AS [Info] FROM sys.dm_exec_sessions s LEFT JOIN sys.dm_exec_connections c ON c.session_id = s.session_id LEFT JOIN sys.dm_exec_requests r ON r.session_id = s.session_id OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) t WHERE s.is_user_process = 1 ORDER BY s.session_id`,KILL_QUERY:`KILL {0}`,SHOW_VARIABLES:`SELECT name AS [Variable_name], CAST(value_in_use AS NVARCHAR(100)) AS [Value] FROM sys.configurations ORDER BY name`,SHOW_GLOBAL_VARIABLES:`SELECT name AS [Variable_name], CAST(value AS NVARCHAR(100)) AS [Value] FROM sys.configurations ORDER BY name`,SHOW_SESSION_VARIABLES:`SELECT name AS [Variable_name], CAST(value_in_use AS NVARCHAR(100)) AS [Value] FROM sys.configurations ORDER BY name`,CREATE_SCHEMA:`CREATE SCHEMA [{0}]`,DROP_SCHEMA:`DROP SCHEMA [{0}]`,COPY_TABLE_STRUCTURE:`SELECT TOP 0 * INTO [{2}].[{3}] FROM [{0}].[{1}]`,COPY_TABLE_DATA:`INSERT INTO [{2}].[{3}] SELECT * FROM [{0}].[{1}]`,DISABLE_FK_CHECKS:`EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'`,ENABLE_FK_CHECKS:`EXEC sp_msforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'`},Sn=`ASCII.CHAR.CHARINDEX.CONCAT.CONCAT_WS.FORMAT.LEFT.LEN.LOWER.LTRIM.NCHAR.PATINDEX.QUOTENAME.REPLACE.REPLICATE.REVERSE.RIGHT.RTRIM.SPACE.STR.STRING_AGG.STRING_SPLIT.STUFF.SUBSTRING.TRANSLATE.TRIM.UNICODE.UPPER.ABS.CEILING.EXP.FLOOR.LOG.LOG10.PI.POWER.RAND.ROUND.SIGN.SQRT.SQUARE.CURRENT_TIMESTAMP.DATEADD.DATEDIFF.DATEDIFF_BIG.DATEFROMPARTS.DATENAME.DATEPART.DATETIMEFROMPARTS.DAY.EOMONTH.GETDATE.GETUTCDATE.ISDATE.MONTH.SYSDATETIME.SYSDATETIMEOFFSET.SYSUTCDATETIME.YEAR.AVG.COUNT.COUNT_BIG.MAX.MIN.STDEV.SUM.VAR.ROW_NUMBER.RANK.DENSE_RANK.NTILE.LAG.LEAD.FIRST_VALUE.LAST_VALUE.CAST.CONVERT.TRY_CAST.TRY_CONVERT.PARSE.COALESCE.NULLIF.ISNULL.IIF.CHOOSE.NEWID.NEWSEQUENTIALID.SCOPE_IDENTITY.IDENT_CURRENT.OBJECT_ID.OBJECT_NAME.OBJECT_DEFINITION.SCHEMA_NAME.DB_NAME.HOST_NAME.SUSER_SNAME.USER_NAME.ISNUMERIC.ISJSON.JSON_VALUE.JSON_QUERY.JSON_MODIFY.OPENJSON`.split(`.`),Cn=`ADD.ALL.ALTER.AND.ANY.AS.ASC.AUTHORIZATION.BACKUP.BEGIN.BETWEEN.BREAK.BROWSE.BULK.BY.CASCADE.CASE.CHECK.CHECKPOINT.CLOSE.CLUSTERED.COALESCE.COLLATE.COLUMN.COMMIT.COMPUTE.CONSTRAINT.CONTAINS.CONTAINSTABLE.CONTINUE.CONVERT.CREATE.CROSS.CURRENT.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.CURRENT_USER.CURSOR.DATABASE.DBCC.DEALLOCATE.DECLARE.DEFAULT.DELETE.DENY.DESC.DISK.DISTINCT.DISTRIBUTED.DOUBLE.DROP.DUMP.ELSE.END.ERRLVL.ESCAPE.EXCEPT.EXEC.EXECUTE.EXISTS.EXIT.EXTERNAL.FETCH.FILE.FILLFACTOR.FOR.FOREIGN.FREETEXT.FREETEXTTABLE.FROM.FULL.FUNCTION.GO.GOTO.GRANT.GROUP.GROUP BY.HAVING.HOLDLOCK.IDENTITY.IDENTITY_INSERT.IDENTITYCOL.IF.IN.INDEX.INNER.INSERT.INSERT INTO.INTERSECT.INTO.IS.JOIN.KEY.KILL.LEFT.LIKE.LINENO.LOAD.MERGE.NATIONAL.NEXT.NOCHECK.NONCLUSTERED.NOT.NULL.NULLIF.OF.OFF.OFFSET.OFFSETS.ON.ONLY.OPEN.OPENDATASOURCE.OPENQUERY.OPENROWSET.OPENXML.OPTION.OR.ORDER.ORDER BY.OUTER.OUTPUT.OVER.PERCENT.PIVOT.PLAN.PRECISION.PRIMARY.PRINT.PROC.PROCEDURE.PUBLIC.RAISERROR.READ.READTEXT.RECONFIGURE.REFERENCES.REPLICATION.RESTORE.RESTRICT.RETURN.REVERT.REVOKE.RIGHT.ROLLBACK.ROWCOUNT.ROWGUIDCOL.ROWS.RULE.SAVE.SCHEMA.SECURITYAUDIT.SELECT.SEMANTICKEYPHRASETABLE.SEMANTICSIMILARITYDETAILSTABLE.SEMANTICSIMILARITYTABLE.SESSION_USER.SET.SETUSER.SHUTDOWN.SOME.STATISTICS.SYSTEM_USER.TABLE.TABLESAMPLE.TEXTSIZE.THEN.TO.TOP.TRAN.TRANSACTION.TRIGGER.TRUNCATE.TRY_CONVERT.TSEQUAL.UNION.UNIQUE.UNPIVOT.UPDATE.UPDATETEXT.USE.USER.VALUES.VARYING.VIEW.WAITFOR.WHEN.WHERE.WHILE.WITH.WITHIN GROUP.WRITETEXT`.split(`.`),wn=`bigint.binary.bit.char.date.datetime.datetime2.datetimeoffset.decimal.float.geography.geometry.hierarchyid.image.int.money.nchar.ntext.numeric.nvarchar.real.smalldatetime.smallint.smallmoney.sql_variant.text.time.timestamp.tinyint.uniqueidentifier.varbinary.varchar.xml`.split(`.`),Tn={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!0,delimiterCommand:!1,dollarQuotes:!1,goBatchSeparator:!0,limitStyle:`top`,plsqlBlocks:!1};function En(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...f(e,{addColumn:`ADD`,modify:`mssql`,renameColumn:`sp_rename`,qualifiedIndexNames:!1,dropIndexOnTable:!0,unqualifiedIndexTarget:!1,multiRowInsert:!0,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=x(e.name,`untitled`),a=e.database||`dbo`,o=r(a,i),s=e.columns.filter(e=>e.primaryKey),c=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type}`;return e.length&&(n+=`(${e.length})`),e.autoIncrement&&(n+=` IDENTITY(1,1)`),n+=e.notNull||e.primaryKey?` NOT NULL`:` NULL`,e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),n});s.length>0&&c.push(` PRIMARY KEY (${s.map(e=>t(e.name)).join(`, `)})`);let l=[`CREATE TABLE ${o} (\n${c.join(`,
291
+ {2}`,SHOW_PROCESS_LIST:`SELECT s.session_id AS [Id], s.login_name AS [User], COALESCE(c.client_net_address, 'local') AS [Host], DB_NAME(s.database_id) AS [db], COALESCE(r.status, s.status) AS [Command], COALESCE(DATEDIFF(SECOND, r.start_time, GETDATE()), 0) AS [Time], COALESCE(r.wait_type, '') AS [State], t.text AS [Info] FROM sys.dm_exec_sessions s LEFT JOIN sys.dm_exec_connections c ON c.session_id = s.session_id LEFT JOIN sys.dm_exec_requests r ON r.session_id = s.session_id OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) t WHERE s.is_user_process = 1 ORDER BY s.session_id`,KILL_QUERY:`KILL {0}`,SHOW_VARIABLES:`SELECT name AS [Variable_name], CAST(value_in_use AS NVARCHAR(100)) AS [Value] FROM sys.configurations ORDER BY name`,SHOW_GLOBAL_VARIABLES:`SELECT name AS [Variable_name], CAST(value AS NVARCHAR(100)) AS [Value] FROM sys.configurations ORDER BY name`,SHOW_SESSION_VARIABLES:`SELECT name AS [Variable_name], CAST(value_in_use AS NVARCHAR(100)) AS [Value] FROM sys.configurations ORDER BY name`,CREATE_SCHEMA:`CREATE SCHEMA [{0}]`,DROP_SCHEMA:`DROP SCHEMA [{0}]`,COPY_TABLE_STRUCTURE:`SELECT TOP 0 * INTO [{2}].[{3}] FROM [{0}].[{1}]`,COPY_TABLE_DATA:`INSERT INTO [{2}].[{3}] SELECT * FROM [{0}].[{1}]`,DISABLE_FK_CHECKS:`EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'`,ENABLE_FK_CHECKS:`EXEC sp_msforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'`},En=`ASCII.CHAR.CHARINDEX.CONCAT.CONCAT_WS.FORMAT.LEFT.LEN.LOWER.LTRIM.NCHAR.PATINDEX.QUOTENAME.REPLACE.REPLICATE.REVERSE.RIGHT.RTRIM.SPACE.STR.STRING_AGG.STRING_SPLIT.STUFF.SUBSTRING.TRANSLATE.TRIM.UNICODE.UPPER.ABS.CEILING.EXP.FLOOR.LOG.LOG10.PI.POWER.RAND.ROUND.SIGN.SQRT.SQUARE.CURRENT_TIMESTAMP.DATEADD.DATEDIFF.DATEDIFF_BIG.DATEFROMPARTS.DATENAME.DATEPART.DATETIMEFROMPARTS.DAY.EOMONTH.GETDATE.GETUTCDATE.ISDATE.MONTH.SYSDATETIME.SYSDATETIMEOFFSET.SYSUTCDATETIME.YEAR.AVG.COUNT.COUNT_BIG.MAX.MIN.STDEV.SUM.VAR.ROW_NUMBER.RANK.DENSE_RANK.NTILE.LAG.LEAD.FIRST_VALUE.LAST_VALUE.CAST.CONVERT.TRY_CAST.TRY_CONVERT.PARSE.COALESCE.NULLIF.ISNULL.IIF.CHOOSE.NEWID.NEWSEQUENTIALID.SCOPE_IDENTITY.IDENT_CURRENT.OBJECT_ID.OBJECT_NAME.OBJECT_DEFINITION.SCHEMA_NAME.DB_NAME.HOST_NAME.SUSER_SNAME.USER_NAME.ISNUMERIC.ISJSON.JSON_VALUE.JSON_QUERY.JSON_MODIFY.OPENJSON`.split(`.`),Dn=`ADD.ALL.ALTER.AND.ANY.AS.ASC.AUTHORIZATION.BACKUP.BEGIN.BETWEEN.BREAK.BROWSE.BULK.BY.CASCADE.CASE.CHECK.CHECKPOINT.CLOSE.CLUSTERED.COALESCE.COLLATE.COLUMN.COMMIT.COMPUTE.CONSTRAINT.CONTAINS.CONTAINSTABLE.CONTINUE.CONVERT.CREATE.CROSS.CURRENT.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.CURRENT_USER.CURSOR.DATABASE.DBCC.DEALLOCATE.DECLARE.DEFAULT.DELETE.DENY.DESC.DISK.DISTINCT.DISTRIBUTED.DOUBLE.DROP.DUMP.ELSE.END.ERRLVL.ESCAPE.EXCEPT.EXEC.EXECUTE.EXISTS.EXIT.EXTERNAL.FETCH.FILE.FILLFACTOR.FOR.FOREIGN.FREETEXT.FREETEXTTABLE.FROM.FULL.FUNCTION.GO.GOTO.GRANT.GROUP.GROUP BY.HAVING.HOLDLOCK.IDENTITY.IDENTITY_INSERT.IDENTITYCOL.IF.IN.INDEX.INNER.INSERT.INSERT INTO.INTERSECT.INTO.IS.JOIN.KEY.KILL.LEFT.LIKE.LINENO.LOAD.MERGE.NATIONAL.NEXT.NOCHECK.NONCLUSTERED.NOT.NULL.NULLIF.OF.OFF.OFFSET.OFFSETS.ON.ONLY.OPEN.OPENDATASOURCE.OPENQUERY.OPENROWSET.OPENXML.OPTION.OR.ORDER.ORDER BY.OUTER.OUTPUT.OVER.PERCENT.PIVOT.PLAN.PRECISION.PRIMARY.PRINT.PROC.PROCEDURE.PUBLIC.RAISERROR.READ.READTEXT.RECONFIGURE.REFERENCES.REPLICATION.RESTORE.RESTRICT.RETURN.REVERT.REVOKE.RIGHT.ROLLBACK.ROWCOUNT.ROWGUIDCOL.ROWS.RULE.SAVE.SCHEMA.SECURITYAUDIT.SELECT.SEMANTICKEYPHRASETABLE.SEMANTICSIMILARITYDETAILSTABLE.SEMANTICSIMILARITYTABLE.SESSION_USER.SET.SETUSER.SHUTDOWN.SOME.STATISTICS.SYSTEM_USER.TABLE.TABLESAMPLE.TEXTSIZE.THEN.TO.TOP.TRAN.TRANSACTION.TRIGGER.TRUNCATE.TRY_CONVERT.TSEQUAL.UNION.UNIQUE.UNPIVOT.UPDATE.UPDATETEXT.USE.USER.VALUES.VARYING.VIEW.WAITFOR.WHEN.WHERE.WHILE.WITH.WITHIN GROUP.WRITETEXT`.split(`.`),On=`bigint.binary.bit.char.date.datetime.datetime2.datetimeoffset.decimal.float.geography.geometry.hierarchyid.image.int.money.nchar.ntext.numeric.nvarchar.real.smalldatetime.smallint.smallmoney.sql_variant.text.time.timestamp.tinyint.uniqueidentifier.varbinary.varchar.xml`.split(`.`),kn={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!0,delimiterCommand:!1,dollarQuotes:!1,goBatchSeparator:!0,limitStyle:`top`,plsqlBlocks:!1};function An(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...f(e,{addColumn:`ADD`,modify:`mssql`,renameColumn:`sp_rename`,qualifiedIndexNames:!1,dropIndexOnTable:!0,unqualifiedIndexTarget:!1,multiRowInsert:!0,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=x(e.name,`untitled`),a=e.database||`dbo`,o=r(a,i),s=e.columns.filter(e=>e.primaryKey),c=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type}`;return e.length&&(n+=`(${e.length})`),e.autoIncrement&&(n+=` IDENTITY(1,1)`),n+=e.notNull||e.primaryKey?` NOT NULL`:` NULL`,e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),n});s.length>0&&c.push(` PRIMARY KEY (${s.map(e=>t(e.name)).join(`, `)})`);let l=[`CREATE TABLE ${o} (\n${c.join(`,
292
292
  `)}\n);`];for(let n of e.indexes){if(n.type===`PRIMARY`||n.columns.length===0)continue;let e=n.type===`UNIQUE`?`UNIQUE `:``,r=n.type===`FULLTEXT`?` -- FULLTEXT needs a full-text catalog; created as a plain index`:``,a=t(x(n.name,`${i}_${n.columns.join(`_`)}_idx`));l.push(`CREATE ${e}INDEX ${a} ON ${o} (${n.columns.map(t).join(`, `)});${r}`)}e.options.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${n(e.options.comment)}, 'SCHEMA', ${n(a)}, 'TABLE', ${n(i)};`);for(let t of e.columns)t.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${n(t.comment)}, 'SCHEMA', ${n(a)}, 'TABLE', ${n(i)}, 'COLUMN', ${n(x(t.name,`column`))};`);return l.join(`
293
- `)}}}var Dn=S({id:`mssql`,label:`SQL Server`,capabilities:{multipleDatabases:!1,schemas:!0,users:!1,procedures:!0,functions:!0,triggers:!0,events:!1,processList:!0,variables:!0,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!0},ddl:En,explain:Qe,introspect:bn,tree:Rt,defaultPort:1433,binaryLiteral:e=>`0x${e}`,booleanKeywords:!1,identifierQuote:`[`,identifierQuoteClose:`]`,queries:xn,syntax:Tn,dataTypes:wn,functions:Sn,reservedWords:Cn}),G=e=>`'${e.replace(/'/g,`''`)}'`;async function On(e,t){return(await e(t)).records.map(e=>v(e[0]))}function kn(e,t,n,r,i){return[`VARCHAR2`,`NVARCHAR2`,`CHAR`,`NCHAR`,`RAW`].includes(e)?`${e}(${n||t||0})`:e===`NUMBER`?r===null?`NUMBER`:i?`NUMBER(${r},${i})`:`NUMBER(${r})`:e===`FLOAT`&&r!==null?`FLOAT(${r})`:e}async function An(e,t,n){return _(await e(`SELECT c.table_name, c.column_name, c.data_type, c.data_length, c.char_length, c.data_precision, c.data_scale,
293
+ `)}}}var jn=S({id:`mssql`,label:`SQL Server`,capabilities:{multipleDatabases:!1,schemas:!0,users:!1,procedures:!0,functions:!0,triggers:!0,events:!1,processList:!0,variables:!0,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!0},ddl:An,explain:$e,introspect:wn,tree:Bt,defaultPort:1433,binaryLiteral:e=>`0x${e}`,booleanKeywords:!1,identifierQuote:`[`,identifierQuoteClose:`]`,queries:Tn,syntax:kn,dataTypes:On,functions:En,reservedWords:Dn}),V=e=>`'${e.replace(/'/g,`''`)}'`;async function Mn(e,t){return(await e(t)).records.map(e=>v(e[0]))}function Nn(e,t,n,r,i){return[`VARCHAR2`,`NVARCHAR2`,`CHAR`,`NCHAR`,`RAW`].includes(e)?`${e}(${n||t||0})`:e===`NUMBER`?r===null?`NUMBER`:i?`NUMBER(${r},${i})`:`NUMBER(${r})`:e===`FLOAT`&&r!==null?`FLOAT(${r})`:e}async function Pn(e,t,n){return _(await e(`SELECT c.table_name, c.column_name, c.data_type, c.data_length, c.char_length, c.data_precision, c.data_scale,
294
294
  c.nullable, c.data_default, cc.comments,
295
295
  CASE WHEN ic.column_name IS NOT NULL THEN 1 ELSE 0 END AS is_identity
296
296
  FROM all_tab_columns c
297
297
  LEFT JOIN all_col_comments cc ON cc.owner = c.owner AND cc.table_name = c.table_name AND cc.column_name = c.column_name
298
298
  LEFT JOIN all_tab_identity_cols ic ON ic.owner = c.owner AND ic.table_name = c.table_name AND ic.column_name = c.column_name
299
- WHERE c.owner = ${G(t)}${n?` AND c.table_name = ${G(n)}`:``}
300
- ORDER BY c.table_name, c.column_id`)).map(e=>({table:v(e.TABLE_NAME),name:v(e.COLUMN_NAME),type:kn(v(e.DATA_TYPE),b(e.DATA_LENGTH),b(e.CHAR_LENGTH),b(e.DATA_PRECISION),b(e.DATA_SCALE)),nullable:v(e.NULLABLE)===`Y`,defaultValue:y(e.DATA_DEFAULT)?.trim()??null,identity:Number(e.IS_IDENTITY)===1,comment:v(e.COMMENTS)}))}async function jn(e,t,n){return _(await e(`SELECT i.table_name, i.index_name, i.uniqueness,
299
+ WHERE c.owner = ${V(t)}${n?` AND c.table_name = ${V(n)}`:``}
300
+ ORDER BY c.table_name, c.column_id`)).map(e=>({table:v(e.TABLE_NAME),name:v(e.COLUMN_NAME),type:Nn(v(e.DATA_TYPE),b(e.DATA_LENGTH),b(e.CHAR_LENGTH),b(e.DATA_PRECISION),b(e.DATA_SCALE)),nullable:v(e.NULLABLE)===`Y`,defaultValue:y(e.DATA_DEFAULT)?.trim()??null,identity:Number(e.IS_IDENTITY)===1,comment:v(e.COMMENTS)}))}async function Fn(e,t,n){return _(await e(`SELECT i.table_name, i.index_name, i.uniqueness,
301
301
  CASE WHEN EXISTS (SELECT 1 FROM all_constraints k WHERE k.owner = i.table_owner AND k.table_name = i.table_name AND k.constraint_type = 'P' AND k.index_name = i.index_name) THEN 1 ELSE 0 END AS is_primary,
302
302
  LISTAGG(ic.column_name, CHR(10)) WITHIN GROUP (ORDER BY ic.column_position) AS columns
303
303
  FROM all_indexes i
304
304
  JOIN all_ind_columns ic ON ic.index_owner = i.owner AND ic.index_name = i.index_name
305
- WHERE i.table_owner = ${G(t)}${n?` AND i.table_name = ${G(n)}`:``}
305
+ WHERE i.table_owner = ${V(t)}${n?` AND i.table_name = ${V(n)}`:``}
306
306
  GROUP BY i.table_owner, i.table_name, i.index_name, i.uniqueness
307
307
  ORDER BY i.table_name, is_primary DESC, i.index_name`)).map(e=>({table:v(e.TABLE_NAME),name:v(e.INDEX_NAME),primary:Number(e.IS_PRIMARY)===1,unique:v(e.UNIQUENESS)===`UNIQUE`,columns:v(e.COLUMNS).split(`
308
- `).filter(Boolean)}))}function Mn(e){return{name:e.primary?`PRIMARY`:e.name,type:e.primary?`PRIMARY`:e.unique?`UNIQUE`:`INDEX`,columns:e.columns}}function Nn(e,t){let n=new Set,r=new Set,i=new Set;for(let e of t)e.primary?e.columns.forEach(e=>n.add(e)):e.unique&&e.columns.length===1?r.add(e.columns[0]):e.columns.length>0&&i.add(e.columns[0]);return e.map(e=>({name:e.name,type:e.type,nullable:e.nullable,key:n.has(e.name)?`PRI`:r.has(e.name)?`UNI`:i.has(e.name)?`MUL`:``,defaultValue:e.defaultValue,extra:e.identity?`identity`:``,comment:e.comment,collation:null}))}function Pn(e){let t=new Map;for(let n of e){let e=t.get(n.table);e?e.push(n):t.set(n.table,[n])}return t}async function Fn(e,t,n){return _(await e(`SELECT t.table_name, t.num_rows, t.last_analyzed, tc.comments,
308
+ `).filter(Boolean)}))}function In(e){return{name:e.primary?`PRIMARY`:e.name,type:e.primary?`PRIMARY`:e.unique?`UNIQUE`:`INDEX`,columns:e.columns}}function Ln(e,t){let n=new Set,r=new Set,i=new Set;for(let e of t)e.primary?e.columns.forEach(e=>n.add(e)):e.unique&&e.columns.length===1?r.add(e.columns[0]):e.columns.length>0&&i.add(e.columns[0]);return e.map(e=>({name:e.name,type:e.type,nullable:e.nullable,key:n.has(e.name)?`PRI`:r.has(e.name)?`UNI`:i.has(e.name)?`MUL`:``,defaultValue:e.defaultValue,extra:e.identity?`identity`:``,comment:e.comment,collation:null}))}function Rn(e){let t=new Map;for(let n of e){let e=t.get(n.table);e?e.push(n):t.set(n.table,[n])}return t}async function zn(e,t,n){return _(await e(`SELECT t.table_name, t.num_rows, t.last_analyzed, tc.comments,
309
309
  (SELECT SUM(s.bytes) FROM all_segments s WHERE s.owner = t.owner AND s.segment_name = t.table_name) AS bytes
310
310
  FROM all_tables t
311
311
  LEFT JOIN all_tab_comments tc ON tc.owner = t.owner AND tc.table_name = t.table_name
312
- WHERE t.owner = ${G(t)}${n?` AND t.table_name = ${G(n)}`:``}
313
- ORDER BY t.table_name`)).map(e=>({name:v(e.TABLE_NAME),engine:null,rows:b(e.NUM_ROWS),collation:null,autoIncrement:null,comment:v(e.COMMENTS),createTime:null,updateTime:y(e.LAST_ANALYZED),dataLength:b(e.BYTES)}))}var In={TABLE:`TABLE`,VIEW:`VIEW`,PROCEDURE:`PROCEDURE`,FUNCTION:`FUNCTION`,TRIGGER:`TRIGGER`,EVENT:null};async function Ln(e,t){return(await e(`SELECT trigger_name, table_name FROM all_triggers WHERE owner = ${G(t)} ORDER BY table_name, trigger_name`)).records.map(e=>({name:v(e[0]),table:v(e[1])}))}var Rn={async listDatabases(e){return On(e,`SELECT username FROM all_users WHERE oracle_maintained = 'N'
314
- ORDER BY CASE WHEN username = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') THEN 0 ELSE 1 END, username`)},listTables:(e,t)=>Fn(e,t),listViews:(e,t)=>On(e,`SELECT view_name FROM all_views WHERE owner = ${G(t)} ORDER BY view_name`),listProcedures:(e,t)=>On(e,`SELECT object_name FROM all_objects WHERE owner = ${G(t)} AND object_type = 'PROCEDURE' ORDER BY object_name`),listFunctions:(e,t)=>On(e,`SELECT object_name FROM all_objects WHERE owner = ${G(t)} AND object_type = 'FUNCTION' ORDER BY object_name`),async listTriggers(e,t){return(await Ln(e,t)).map(e=>e.name)},listTriggerDetails:Ln,listEvents:async()=>[],async listColumns(e,t,n){let[r,i]=await Promise.all([An(e,t,n),jn(e,t,n)]);return Nn(r,i)},async listIndexes(e,t,n){return(await jn(e,t,n)).map(Mn)},async listAllColumns(e,t){let[n,r]=await Promise.all([An(e,t),jn(e,t)]),i=Pn(r),a=new Map;for(let[e,t]of Pn(n))a.set(e,Nn(t,i.get(e)??[]));return a},async listAllIndexes(e,t){let n=new Map;for(let[r,i]of Pn(await jn(e,t)))n.set(r,i.map(Mn));return n},async listForeignKeys(e,t){return(await e(`SELECT c.constraint_name, c.table_name, cc.column_name, r.table_name AS ref_table, rc.column_name AS ref_column
312
+ WHERE t.owner = ${V(t)}${n?` AND t.table_name = ${V(n)}`:``}
313
+ ORDER BY t.table_name`)).map(e=>({name:v(e.TABLE_NAME),engine:null,rows:b(e.NUM_ROWS),collation:null,autoIncrement:null,comment:v(e.COMMENTS),createTime:null,updateTime:y(e.LAST_ANALYZED),dataLength:b(e.BYTES)}))}var Bn={TABLE:`TABLE`,VIEW:`VIEW`,PROCEDURE:`PROCEDURE`,FUNCTION:`FUNCTION`,TRIGGER:`TRIGGER`,EVENT:null};async function Vn(e,t){return(await e(`SELECT trigger_name, table_name FROM all_triggers WHERE owner = ${V(t)} ORDER BY table_name, trigger_name`)).records.map(e=>({name:v(e[0]),table:v(e[1])}))}var Hn={async listDatabases(e){return Mn(e,`SELECT username FROM all_users WHERE oracle_maintained = 'N'
314
+ ORDER BY CASE WHEN username = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') THEN 0 ELSE 1 END, username`)},listTables:(e,t)=>zn(e,t),listViews:(e,t)=>Mn(e,`SELECT view_name FROM all_views WHERE owner = ${V(t)} ORDER BY view_name`),listProcedures:(e,t)=>Mn(e,`SELECT object_name FROM all_objects WHERE owner = ${V(t)} AND object_type = 'PROCEDURE' ORDER BY object_name`),listFunctions:(e,t)=>Mn(e,`SELECT object_name FROM all_objects WHERE owner = ${V(t)} AND object_type = 'FUNCTION' ORDER BY object_name`),async listTriggers(e,t){return(await Vn(e,t)).map(e=>e.name)},listTriggerDetails:Vn,listEvents:async()=>[],async listColumns(e,t,n){let[r,i]=await Promise.all([Pn(e,t,n),Fn(e,t,n)]);return Ln(r,i)},async listIndexes(e,t,n){return(await Fn(e,t,n)).map(In)},async listAllColumns(e,t){let[n,r]=await Promise.all([Pn(e,t),Fn(e,t)]),i=Rn(r),a=new Map;for(let[e,t]of Rn(n))a.set(e,Ln(t,i.get(e)??[]));return a},async listAllIndexes(e,t){let n=new Map;for(let[r,i]of Rn(await Fn(e,t)))n.set(r,i.map(In));return n},async listForeignKeys(e,t){return(await e(`SELECT c.constraint_name, c.table_name, cc.column_name, r.table_name AS ref_table, rc.column_name AS ref_column
315
315
  FROM all_constraints c
316
316
  JOIN all_cons_columns cc ON cc.owner = c.owner AND cc.constraint_name = c.constraint_name
317
317
  JOIN all_constraints r ON r.owner = c.r_owner AND r.constraint_name = c.r_constraint_name
318
318
  JOIN all_cons_columns rc ON rc.owner = r.owner AND rc.constraint_name = r.constraint_name AND rc.position = cc.position
319
- WHERE c.owner = ${G(t)} AND c.constraint_type = 'R'
320
- ORDER BY c.table_name, c.constraint_name, cc.position`)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){return(await Fn(e,t,n))[0]??null},async getPrimaryKeys(e,t,n){return(await e(`SELECT cc.column_name FROM all_constraints c
319
+ WHERE c.owner = ${V(t)} AND c.constraint_type = 'R'
320
+ ORDER BY c.table_name, c.constraint_name, cc.position`)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){return(await zn(e,t,n))[0]??null},async getPrimaryKeys(e,t,n){return(await e(`SELECT cc.column_name FROM all_constraints c
321
321
  JOIN all_cons_columns cc ON cc.owner = c.owner AND cc.constraint_name = c.constraint_name
322
- WHERE c.owner = ${G(t)} AND c.table_name = ${G(n)} AND c.constraint_type = 'P'
323
- ORDER BY cc.position`)).records.map(e=>v(e[0]))},async getCreateStatement(e,t,n,r){let i=In[n];return i?y((await e(`SELECT DBMS_METADATA.GET_DDL(${G(i)}, ${G(r)}, ${G(t)}) FROM dual`)).records[0]?.[0])?.trim()??null:null}},zn={SELECT_COUNT:`SELECT COUNT(1) AS cnt FROM "{0}"."{1}"`,SHOW_FULL_FIELDS:`SELECT column_name, data_type, nullable, data_default FROM all_tab_columns WHERE owner = '{0}' AND table_name = '{1}' ORDER BY column_id`,SHOW_COLUMNS:`SELECT column_name, data_type, nullable, data_default FROM all_tab_columns WHERE owner = '{0}' AND table_name = '{1}' ORDER BY column_id`,SHOW_DATABASE_VIEWS:`SELECT view_name FROM all_views WHERE owner = '{0}' ORDER BY view_name`,SHOW_DATABASE_TABLES:`SELECT table_name FROM all_tables WHERE owner = '{0}' ORDER BY table_name`,SHOW_DATABASE:`SELECT SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') FROM dual`,SHOW_DATABASES:`SELECT username FROM all_users WHERE oracle_maintained = 'N' ORDER BY username`,ADD_INDEX:`CREATE {3} INDEX "{0}"."{2}" ON "{0}"."{1}" ({4})`,SHOW_INDEXES:`SELECT index_name, uniqueness, index_type FROM all_indexes WHERE table_owner = '{0}' AND table_name = '{1}' ORDER BY index_name`,DROP_INDEX:`DROP INDEX "{0}"."{2}"`,DROP_PROCEDURE:`DROP PROCEDURE "{0}"."{1}"`,DROP_FUNCTION:`DROP FUNCTION "{0}"."{1}"`,DROP_TRIGGER:`DROP TRIGGER "{0}"."{1}"`,DROP_VIEW:`DROP VIEW "{0}"."{1}"`,SHOW_PROCEDURES:`SELECT object_name FROM all_objects WHERE owner = '{0}' AND object_type = 'PROCEDURE' ORDER BY object_name`,SHOW_FUNCTIONS:`SELECT object_name FROM all_objects WHERE owner = '{0}' AND object_type = 'FUNCTION' ORDER BY object_name`,SHOW_TRIGGERS:`SELECT trigger_name, table_name FROM all_triggers WHERE owner = '{0}' ORDER BY trigger_name`,SHOW_VIEWS:`SELECT view_name AS "View_name", text_vc AS "View_definition" FROM all_views WHERE owner = '{0}' ORDER BY view_name`,SHOW_ALL_TABLE_STATUS:`SELECT t.table_name AS "Name", t.num_rows AS "Rows", c.comments AS "Comment" FROM all_tables t LEFT JOIN all_tab_comments c ON c.owner = t.owner AND c.table_name = t.table_name WHERE t.owner = '{0}' ORDER BY t.table_name`,SHOW_TABLE_STATUS:`SELECT t.table_name AS "Name", t.num_rows AS "Rows", c.comments AS "Comment" FROM all_tables t LEFT JOIN all_tab_comments c ON c.owner = t.owner AND c.table_name = t.table_name WHERE t.owner = '{0}' AND t.table_name = '{1}'`,INSERT_TABLE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3})`,INSERT_TABLE_BULK:`INSERT INTO "{0}"."{1}" ({2}) VALUES {3}`,INSERT_DEFAULT_VALUES:`INSERT INTO "{0}"."{1}" ({2}) VALUES (DEFAULT)`,UPDATE_TABLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3}`,UPDATE_TABLE_SINGLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3} AND ROWNUM = 1`,START_TRANSACTION:`SET TRANSACTION READ WRITE`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM "{0}"."{1}" WHERE {2}`,SELECT_TABLE:`SELECT {2} FROM "{0}"."{1}" {3}`,TRUNCATE_TABLE:`TRUNCATE TABLE "{0}"."{1}"`,RENAME_TABLE:`ALTER TABLE "{0}"."{1}" RENAME TO "{3}"`,DROP_TABLE:`DROP TABLE "{0}"."{1}"`,CREATE_PROCEDURE:`CREATE OR REPLACE PROCEDURE "{0}"."{1}"
322
+ WHERE c.owner = ${V(t)} AND c.table_name = ${V(n)} AND c.constraint_type = 'P'
323
+ ORDER BY cc.position`)).records.map(e=>v(e[0]))},async getCreateStatement(e,t,n,r){let i=Bn[n];return i?y((await e(`SELECT DBMS_METADATA.GET_DDL(${V(i)}, ${V(r)}, ${V(t)}) FROM dual`)).records[0]?.[0])?.trim()??null:null}},Un={SELECT_COUNT:`SELECT COUNT(1) AS cnt FROM "{0}"."{1}"`,SHOW_FULL_FIELDS:`SELECT column_name, data_type, nullable, data_default FROM all_tab_columns WHERE owner = '{0}' AND table_name = '{1}' ORDER BY column_id`,SHOW_COLUMNS:`SELECT column_name, data_type, nullable, data_default FROM all_tab_columns WHERE owner = '{0}' AND table_name = '{1}' ORDER BY column_id`,SHOW_DATABASE_VIEWS:`SELECT view_name FROM all_views WHERE owner = '{0}' ORDER BY view_name`,SHOW_DATABASE_TABLES:`SELECT table_name FROM all_tables WHERE owner = '{0}' ORDER BY table_name`,SHOW_DATABASE:`SELECT SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') FROM dual`,SHOW_DATABASES:`SELECT username FROM all_users WHERE oracle_maintained = 'N' ORDER BY username`,ADD_INDEX:`CREATE {3} INDEX "{0}"."{2}" ON "{0}"."{1}" ({4})`,SHOW_INDEXES:`SELECT index_name, uniqueness, index_type FROM all_indexes WHERE table_owner = '{0}' AND table_name = '{1}' ORDER BY index_name`,DROP_INDEX:`DROP INDEX "{0}"."{2}"`,DROP_PROCEDURE:`DROP PROCEDURE "{0}"."{1}"`,DROP_FUNCTION:`DROP FUNCTION "{0}"."{1}"`,DROP_TRIGGER:`DROP TRIGGER "{0}"."{1}"`,DROP_VIEW:`DROP VIEW "{0}"."{1}"`,SHOW_PROCEDURES:`SELECT object_name FROM all_objects WHERE owner = '{0}' AND object_type = 'PROCEDURE' ORDER BY object_name`,SHOW_FUNCTIONS:`SELECT object_name FROM all_objects WHERE owner = '{0}' AND object_type = 'FUNCTION' ORDER BY object_name`,SHOW_TRIGGERS:`SELECT trigger_name, table_name FROM all_triggers WHERE owner = '{0}' ORDER BY trigger_name`,SHOW_VIEWS:`SELECT view_name AS "View_name", text_vc AS "View_definition" FROM all_views WHERE owner = '{0}' ORDER BY view_name`,SHOW_ALL_TABLE_STATUS:`SELECT t.table_name AS "Name", t.num_rows AS "Rows", c.comments AS "Comment" FROM all_tables t LEFT JOIN all_tab_comments c ON c.owner = t.owner AND c.table_name = t.table_name WHERE t.owner = '{0}' ORDER BY t.table_name`,SHOW_TABLE_STATUS:`SELECT t.table_name AS "Name", t.num_rows AS "Rows", c.comments AS "Comment" FROM all_tables t LEFT JOIN all_tab_comments c ON c.owner = t.owner AND c.table_name = t.table_name WHERE t.owner = '{0}' AND t.table_name = '{1}'`,INSERT_TABLE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3})`,INSERT_TABLE_BULK:`INSERT INTO "{0}"."{1}" ({2}) VALUES {3}`,INSERT_DEFAULT_VALUES:`INSERT INTO "{0}"."{1}" ({2}) VALUES (DEFAULT)`,UPDATE_TABLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3}`,UPDATE_TABLE_SINGLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3} AND ROWNUM = 1`,START_TRANSACTION:`SET TRANSACTION READ WRITE`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM "{0}"."{1}" WHERE {2}`,SELECT_TABLE:`SELECT {2} FROM "{0}"."{1}" {3}`,TRUNCATE_TABLE:`TRUNCATE TABLE "{0}"."{1}"`,RENAME_TABLE:`ALTER TABLE "{0}"."{1}" RENAME TO "{3}"`,DROP_TABLE:`DROP TABLE "{0}"."{1}"`,CREATE_PROCEDURE:`CREATE OR REPLACE PROCEDURE "{0}"."{1}"
324
324
  IS
325
325
  BEGIN
326
326
 
@@ -351,18 +351,18 @@ BEGIN
351
351
 
352
352
  END;
353
353
  /`,CREATE_VIEW:`CREATE OR REPLACE VIEW "{0}"."{1}" AS
354
- /* SQL SELECT Statement */`,CREATE_TABLE:`CREATE TABLE "{0}"."{1}" {2}`,ALTER_TABLE:`ALTER TABLE "{0}"."{1}" {2}`,ALTER_VIEW:`{2}`,ALTER_PROCEDURE:`{2}`,ALTER_FUNCTION:`{2}`,ALTER_TRIGGER:`{2}`,SHOW_PROCESS_LIST:`SELECT s.sid || ',' || s.serial# AS "Id", s.username AS "User", s.machine AS "Host", s.schemaname AS "db", s.status AS "Command", COALESCE(s.last_call_et, 0) AS "Time", s.event AS "State", s.sql_id AS "Info" FROM v$session s WHERE s.type = 'USER' ORDER BY s.sid`,KILL_QUERY:`ALTER SYSTEM KILL SESSION '{0}' IMMEDIATE`,SHOW_VARIABLES:`SELECT name AS "Variable_name", value AS "Value" FROM v$parameter ORDER BY name`,SHOW_GLOBAL_VARIABLES:`SELECT name AS "Variable_name", value AS "Value" FROM v$parameter ORDER BY name`,SHOW_SESSION_VARIABLES:`SELECT parameter AS "Variable_name", value AS "Value" FROM nls_session_parameters ORDER BY parameter`,COPY_TABLE_STRUCTURE:`CREATE TABLE "{2}"."{3}" AS SELECT * FROM "{0}"."{1}" WHERE 1 = 0`,COPY_TABLE_DATA:`INSERT INTO "{2}"."{3}" SELECT * FROM "{0}"."{1}"`},Bn=`ASCII,CHR,CONCAT,INITCAP,INSTR,LENGTH,LOWER,LPAD,LTRIM,NLSSORT,REGEXP_INSTR,REGEXP_REPLACE,REGEXP_SUBSTR,REPLACE,RPAD,RTRIM,SOUNDEX,SUBSTR,TRANSLATE,TRIM,UPPER,LISTAGG,ABS,CEIL,EXP,FLOOR,LN,LOG,MOD,POWER,REMAINDER,ROUND,SIGN,SQRT,TRUNC,ADD_MONTHS,CURRENT_DATE,CURRENT_TIMESTAMP,EXTRACT,LAST_DAY,LOCALTIMESTAMP,MONTHS_BETWEEN,NEXT_DAY,SYSDATE,SYSTIMESTAMP,TO_CHAR,TO_DATE,TO_TIMESTAMP,TO_TIMESTAMP_TZ,FROM_TZ,NUMTODSINTERVAL,NUMTOYMINTERVAL,CAST,TO_NUMBER,TO_CLOB,COALESCE,NULLIF,NVL,NVL2,DECODE,GREATEST,LEAST,AVG,COUNT,MAX,MEDIAN,MIN,STDDEV,SUM,VARIANCE,ROW_NUMBER,RANK,DENSE_RANK,NTILE,LAG,LEAD,FIRST_VALUE,LAST_VALUE,SYS_GUID,SYS_CONTEXT,USER,UID,ROWNUM,ROWID,DBMS_METADATA.GET_DDL,JSON_VALUE,JSON_QUERY,JSON_OBJECT,JSON_ARRAY,JSON_TABLE,JSON_EXISTS`.split(`,`),Vn=`ACCESS.ADD.ALL.ALTER.AND.ANY.AS.ASC.AUDIT.BETWEEN.BY.CHAR.CHECK.CLUSTER.COLUMN.COMMENT.COMPRESS.CONNECT.CREATE.CURRENT.DATE.DECIMAL.DEFAULT.DELETE.DESC.DISTINCT.DROP.ELSE.EXCLUSIVE.EXISTS.FILE.FLOAT.FOR.FROM.GRANT.GROUP.GROUP BY.HAVING.IDENTIFIED.IMMEDIATE.IN.INCREMENT.INDEX.INITIAL.INSERT.INSERT INTO.INTEGER.INTERSECT.INTO.IS.LEVEL.LIKE.LOCK.LONG.MAXEXTENTS.MINUS.MLSLABEL.MODE.MODIFY.NOAUDIT.NOCOMPRESS.NOT.NOWAIT.NULL.NUMBER.OF.OFFLINE.ON.ONLINE.OPTION.OR.ORDER.ORDER BY.PCTFREE.PRIOR.PUBLIC.RAW.RENAME.RESOURCE.REVOKE.ROW.ROWID.ROWNUM.ROWS.SELECT.SESSION.SET.SHARE.SIZE.SMALLINT.START.SUCCESSFUL.SYNONYM.SYSDATE.TABLE.THEN.TO.TRIGGER.UID.UNION.UNIQUE.UPDATE.USER.VALIDATE.VALUES.VARCHAR.VARCHAR2.VIEW.WHENEVER.WHERE.WITH.BEGIN.DECLARE.END.EXCEPTION.IF.ELSIF.LOOP.WHILE.RETURN.PROCEDURE.FUNCTION.PACKAGE.BODY.CURSOR.FETCH.FIRST.NEXT.ONLY.OFFSET.COMMIT.ROLLBACK.SAVEPOINT.TRUNCATE.REPLACE.MERGE.USING.MATCHED.JOIN.INNER.LEFT.RIGHT.FULL.OUTER.CROSS.CASE.WHEN.OVER.PARTITION.DUAL.SEQUENCE.NEXTVAL.CURRVAL`.split(`.`),Hn=[`BFILE`,`BINARY_DOUBLE`,`BINARY_FLOAT`,`BLOB`,`BOOLEAN`,`CHAR`,`CLOB`,`DATE`,`FLOAT`,`INTERVAL DAY TO SECOND`,`INTERVAL YEAR TO MONTH`,`JSON`,`LONG`,`NCHAR`,`NCLOB`,`NUMBER`,`NVARCHAR2`,`RAW`,`ROWID`,`TIMESTAMP`,`TIMESTAMP WITH LOCAL TIME ZONE`,`TIMESTAMP WITH TIME ZONE`,`VARCHAR2`,`XMLTYPE`],Un={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!1,delimiterCommand:!1,dollarQuotes:!1,goBatchSeparator:!1,limitStyle:`fetch`,plsqlBlocks:!0};function Wn(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...f(e,{addColumn:`ADD (`,modify:`oracle`,qualifiedIndexNames:!0,dropIndexOnTable:!1,unqualifiedIndexTarget:!1,multiRowInsert:!1,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=x(e.name,`untitled`),a=r(e.database,i),o=e.columns.filter(e=>e.primaryKey),s=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type}`;return e.length&&(n+=`(${e.length})`),e.autoIncrement&&(n+=` GENERATED BY DEFAULT AS IDENTITY`),e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),e.notNull&&(n+=` NOT NULL`),n});o.length>0&&s.push(` PRIMARY KEY (${o.map(e=>t(e.name)).join(`, `)})`);let c=[`CREATE TABLE ${a} (\n${s.join(`,
354
+ /* SQL SELECT Statement */`,CREATE_TABLE:`CREATE TABLE "{0}"."{1}" {2}`,ALTER_TABLE:`ALTER TABLE "{0}"."{1}" {2}`,ALTER_VIEW:`{2}`,ALTER_PROCEDURE:`{2}`,ALTER_FUNCTION:`{2}`,ALTER_TRIGGER:`{2}`,SHOW_PROCESS_LIST:`SELECT s.sid || ',' || s.serial# AS "Id", s.username AS "User", s.machine AS "Host", s.schemaname AS "db", s.status AS "Command", COALESCE(s.last_call_et, 0) AS "Time", s.event AS "State", s.sql_id AS "Info" FROM v$session s WHERE s.type = 'USER' ORDER BY s.sid`,KILL_QUERY:`ALTER SYSTEM KILL SESSION '{0}' IMMEDIATE`,SHOW_VARIABLES:`SELECT name AS "Variable_name", value AS "Value" FROM v$parameter ORDER BY name`,SHOW_GLOBAL_VARIABLES:`SELECT name AS "Variable_name", value AS "Value" FROM v$parameter ORDER BY name`,SHOW_SESSION_VARIABLES:`SELECT parameter AS "Variable_name", value AS "Value" FROM nls_session_parameters ORDER BY parameter`,COPY_TABLE_STRUCTURE:`CREATE TABLE "{2}"."{3}" AS SELECT * FROM "{0}"."{1}" WHERE 1 = 0`,COPY_TABLE_DATA:`INSERT INTO "{2}"."{3}" SELECT * FROM "{0}"."{1}"`},Wn=`ASCII,CHR,CONCAT,INITCAP,INSTR,LENGTH,LOWER,LPAD,LTRIM,NLSSORT,REGEXP_INSTR,REGEXP_REPLACE,REGEXP_SUBSTR,REPLACE,RPAD,RTRIM,SOUNDEX,SUBSTR,TRANSLATE,TRIM,UPPER,LISTAGG,ABS,CEIL,EXP,FLOOR,LN,LOG,MOD,POWER,REMAINDER,ROUND,SIGN,SQRT,TRUNC,ADD_MONTHS,CURRENT_DATE,CURRENT_TIMESTAMP,EXTRACT,LAST_DAY,LOCALTIMESTAMP,MONTHS_BETWEEN,NEXT_DAY,SYSDATE,SYSTIMESTAMP,TO_CHAR,TO_DATE,TO_TIMESTAMP,TO_TIMESTAMP_TZ,FROM_TZ,NUMTODSINTERVAL,NUMTOYMINTERVAL,CAST,TO_NUMBER,TO_CLOB,COALESCE,NULLIF,NVL,NVL2,DECODE,GREATEST,LEAST,AVG,COUNT,MAX,MEDIAN,MIN,STDDEV,SUM,VARIANCE,ROW_NUMBER,RANK,DENSE_RANK,NTILE,LAG,LEAD,FIRST_VALUE,LAST_VALUE,SYS_GUID,SYS_CONTEXT,USER,UID,ROWNUM,ROWID,DBMS_METADATA.GET_DDL,JSON_VALUE,JSON_QUERY,JSON_OBJECT,JSON_ARRAY,JSON_TABLE,JSON_EXISTS`.split(`,`),Gn=`ACCESS.ADD.ALL.ALTER.AND.ANY.AS.ASC.AUDIT.BETWEEN.BY.CHAR.CHECK.CLUSTER.COLUMN.COMMENT.COMPRESS.CONNECT.CREATE.CURRENT.DATE.DECIMAL.DEFAULT.DELETE.DESC.DISTINCT.DROP.ELSE.EXCLUSIVE.EXISTS.FILE.FLOAT.FOR.FROM.GRANT.GROUP.GROUP BY.HAVING.IDENTIFIED.IMMEDIATE.IN.INCREMENT.INDEX.INITIAL.INSERT.INSERT INTO.INTEGER.INTERSECT.INTO.IS.LEVEL.LIKE.LOCK.LONG.MAXEXTENTS.MINUS.MLSLABEL.MODE.MODIFY.NOAUDIT.NOCOMPRESS.NOT.NOWAIT.NULL.NUMBER.OF.OFFLINE.ON.ONLINE.OPTION.OR.ORDER.ORDER BY.PCTFREE.PRIOR.PUBLIC.RAW.RENAME.RESOURCE.REVOKE.ROW.ROWID.ROWNUM.ROWS.SELECT.SESSION.SET.SHARE.SIZE.SMALLINT.START.SUCCESSFUL.SYNONYM.SYSDATE.TABLE.THEN.TO.TRIGGER.UID.UNION.UNIQUE.UPDATE.USER.VALIDATE.VALUES.VARCHAR.VARCHAR2.VIEW.WHENEVER.WHERE.WITH.BEGIN.DECLARE.END.EXCEPTION.IF.ELSIF.LOOP.WHILE.RETURN.PROCEDURE.FUNCTION.PACKAGE.BODY.CURSOR.FETCH.FIRST.NEXT.ONLY.OFFSET.COMMIT.ROLLBACK.SAVEPOINT.TRUNCATE.REPLACE.MERGE.USING.MATCHED.JOIN.INNER.LEFT.RIGHT.FULL.OUTER.CROSS.CASE.WHEN.OVER.PARTITION.DUAL.SEQUENCE.NEXTVAL.CURRVAL`.split(`.`),Kn=[`BFILE`,`BINARY_DOUBLE`,`BINARY_FLOAT`,`BLOB`,`BOOLEAN`,`CHAR`,`CLOB`,`DATE`,`FLOAT`,`INTERVAL DAY TO SECOND`,`INTERVAL YEAR TO MONTH`,`JSON`,`LONG`,`NCHAR`,`NCLOB`,`NUMBER`,`NVARCHAR2`,`RAW`,`ROWID`,`TIMESTAMP`,`TIMESTAMP WITH LOCAL TIME ZONE`,`TIMESTAMP WITH TIME ZONE`,`VARCHAR2`,`XMLTYPE`],qn={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!1,delimiterCommand:!1,dollarQuotes:!1,goBatchSeparator:!1,limitStyle:`fetch`,plsqlBlocks:!0};function Jn(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...f(e,{addColumn:`ADD (`,modify:`oracle`,qualifiedIndexNames:!0,dropIndexOnTable:!1,unqualifiedIndexTarget:!1,multiRowInsert:!1,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=x(e.name,`untitled`),a=r(e.database,i),o=e.columns.filter(e=>e.primaryKey),s=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type}`;return e.length&&(n+=`(${e.length})`),e.autoIncrement&&(n+=` GENERATED BY DEFAULT AS IDENTITY`),e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),e.notNull&&(n+=` NOT NULL`),n});o.length>0&&s.push(` PRIMARY KEY (${o.map(e=>t(e.name)).join(`, `)})`);let c=[`CREATE TABLE ${a} (\n${s.join(`,
355
355
  `)}\n);`];for(let n of e.indexes){if(n.type===`PRIMARY`||n.columns.length===0)continue;let o=n.type===`UNIQUE`?`UNIQUE `:``,s=n.type===`FULLTEXT`?` -- FULLTEXT is MySQL-only; consider an Oracle Text index`:``,l=r(e.database,x(n.name,`${i}_${n.columns.join(`_`)}_idx`));c.push(`CREATE ${o}INDEX ${l} ON ${a} (${n.columns.map(t).join(`, `)});${s}`)}e.options.comment&&c.push(`COMMENT ON TABLE ${a} IS ${n(e.options.comment)};`);for(let r of e.columns)r.comment&&c.push(`COMMENT ON COLUMN ${a}.${t(x(r.name,`column`))} IS ${n(r.comment)};`);return c.join(`
356
- `)}}}var Gn=S({id:`oracle`,label:`Oracle`,capabilities:{multipleDatabases:!1,schemas:!1,users:!1,procedures:!0,functions:!0,triggers:!0,events:!1,processList:!0,variables:!0,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!0,transactions:!0},ddl:Wn,explain:et,introspect:Rn,defaultPort:1521,binaryLiteral:e=>`HEXTORAW('${e}')`,booleanKeywords:!1,identifierQuote:`"`,queries:zn,syntax:Un,dataTypes:Hn,functions:Bn,reservedWords:Vn}),Kn=S({...Gt,id:`neon`,label:`Neon`}),qn=S({...Gt,id:`supabase`,label:`Supabase`}),Jn=S({...B,id:`d1`,label:`Cloudflare D1`,capabilities:{...B.capabilities,transactions:!1}}),Yn=`__miniflare_do_name`,Xn={...B.introspect,async listTables(e,t){return(await B.introspect.listTables(e,t)).filter(e=>e.name!==Yn)}},Zn=S({...B,id:`do`,label:`Cloudflare DO (wrangler dev)`,capabilities:{...B.capabilities,transactions:!1},introspect:Xn}),Qn=class extends Error{constructor(e){super(e),this.name=`RedisSyntaxError`}},$n=/\s/,er=/^[0-9a-fA-F]{2}$/,tr={n:`
357
- `,r:`\r`,t:` `,b:`\b`,a:`\x07`};function nr(e){let t=[],n=0,r=e.length;for(;;){for(;n<r&&$n.test(e[n]);)n++;if(n>=r)return t;let i=``,a=!1,o=!1,s=!1;for(;!s;)if(a){if(n>=r)throw new Qn(`Unbalanced quotes in command`);let t=e[n];if(t===`\\`&&e[n+1]===`x`&&er.test(e.slice(n+2,n+4))){i+=String.fromCharCode(parseInt(e.slice(n+2,n+4),16)),n+=4;continue}if(t===`\\`&&n+1<r){let t=e[n+1];i+=tr[t]??t,n+=2;continue}if(t===`"`){if(n+1<r&&!$n.test(e[n+1]))throw new Qn(`Closing quote must be followed by a space`);a=!1,s=!0,n++;continue}i+=t,n++}else if(o){if(n>=r)throw new Qn(`Unbalanced quotes in command`);let t=e[n];if(t===`\\`&&e[n+1]===`'`){i+=`'`,n+=2;continue}if(t===`'`){if(n+1<r&&!$n.test(e[n+1]))throw new Qn(`Closing quote must be followed by a space`);o=!1,s=!0,n++;continue}i+=t,n++}else{if(n>=r){s=!0;continue}let t=e[n];if($n.test(t)){s=!0;continue}t===`"`?a=!0:t===`'`?o=!0:i+=t,n++}t.push(i)}}function rr(e){let t=[];return e.split(/\r?\n/).forEach((e,n)=>{let r=e.trim();!r||r.startsWith(`#`)||r.startsWith(`//`)||t.push({text:r,line:n+1})}),t}function K(e){let t=(e[0]??``).toUpperCase();return ir.has(t)&&e.length>1?`${t} ${e[1].toUpperCase()}`:t}var ir=new Set([`ACL`,`CLIENT`,`CLUSTER`,`COMMAND`,`CONFIG`,`FUNCTION`,`LATENCY`,`MEMORY`,`MODULE`,`OBJECT`,`PUBSUB`,`SCRIPT`,`SLOWLOG`,`XGROUP`,`XINFO`]),ar=new Set([`FLUSHALL`,`FLUSHDB`,`SWAPDB`,`SHUTDOWN`,`DEBUG`,`SCRIPT FLUSH`,`FUNCTION FLUSH`,`FUNCTION DELETE`,`FUNCTION RESTORE`,`CLUSTER RESET`,`CLUSTER FLUSHSLOTS`,`REPLICAOF`,`SLAVEOF`,`CONFIG RESETSTAT`,`ACL DELUSER`,`MODULE UNLOAD`]),or=new Set([`PING`,`ECHO`,`INFO`,`TIME`,`SELECT`,`LASTSAVE`,`ROLE`,`QUIT`,`RESET`,`COMMAND`,`COMMAND INFO`,`COMMAND COUNT`,`COMMAND DOCS`,`COMMAND LIST`,`COMMAND GETKEYS`,`CLIENT ID`,`CLIENT INFO`,`CLIENT GETNAME`]);function sr(e){let t=K(e);return{name:t,dataLoss:ar.has(t)}}var cr=new Set(`GET,MGET,STRLEN,GETRANGE,SUBSTR,LCS,EXISTS,TYPE,TTL,PTTL,EXPIRETIME,PEXPIRETIME,DBSIZE,SCAN,SSCAN,HSCAN,ZSCAN,KEYS,RANDOMKEY,DUMP,HGET,HMGET,HGETALL,HKEYS,HVALS,HLEN,HEXISTS,HSTRLEN,HRANDFIELD,HTTL,HPTTL,LRANGE,LLEN,LINDEX,LPOS,SMEMBERS,SCARD,SISMEMBER,SMISMEMBER,SRANDMEMBER,SINTER,SUNION,SDIFF,SINTERCARD,ZRANGE,ZRANGEBYSCORE,ZRANGEBYLEX,ZREVRANGE,ZREVRANGEBYSCORE,ZREVRANGEBYLEX,ZCARD,ZCOUNT,ZLEXCOUNT,ZSCORE,ZMSCORE,ZRANK,ZREVRANK,ZRANDMEMBER,ZDIFF,ZINTER,ZUNION,ZINTERCARD,XRANGE,XREVRANGE,XLEN,XREAD,XPENDING,XINFO STREAM,XINFO GROUPS,XINFO CONSUMERS,GEOPOS,GEODIST,GEOHASH,GEOSEARCH,GEORADIUS_RO,GEORADIUSBYMEMBER_RO,PFCOUNT,BITCOUNT,BITPOS,GETBIT,BITFIELD_RO,OBJECT ENCODING,OBJECT FREQ,OBJECT IDLETIME,OBJECT REFCOUNT,MEMORY USAGE,MEMORY STATS,CONFIG GET,SLOWLOG GET,SLOWLOG LEN,CLIENT LIST,LATENCY LATEST,PUBSUB CHANNELS,PUBSUB NUMSUB,JSON.GET,JSON.MGET,JSON.TYPE,JSON.STRLEN,JSON.ARRLEN,JSON.OBJKEYS,JSON.OBJLEN,JSON.RESP,FT.SEARCH,FT.AGGREGATE,FT.INFO,FT._LIST,FT.EXPLAIN,TS.GET,TS.MGET,TS.RANGE,TS.REVRANGE,TS.INFO,EVAL_RO,EVALSHA_RO,FCALL_RO`.split(`,`));function lr(e){let t=K(e);return cr.has(t)||or.has(t)}function ur(e){return K(e)!==`SELECT`||!/^\d+$/.test(e[1]??``)?null:Number(e[1])}var dr=/^\s*(AUTH|HELLO|MIGRATE|CONFIG|ACL)\s/i,fr=/^\s*(AUTH|HELLO|MIGRATE|CONFIG|ACL)\s/im;function pr(e){return fr.test(e)?e.split(`
358
- `).map(e=>dr.test(e)?mr(e):e).join(`
359
- `):e}function mr(e){let t;try{t=nr(e)}catch{return e.replace(/^(\s*\S+).*$/s,`$1 ***`)}if(t.length===0)return e;let n=new Set,r=K(t);if(r===`AUTH`)for(let e=1;e<t.length;e++)n.add(e);if(r===`HELLO`||r===`MIGRATE`)for(let e=1;e<t.length;e++){let i=t[e].toUpperCase();i===`AUTH`&&(n.add(e+1),r===`HELLO`&&n.add(e+2)),i===`AUTH2`&&n.add(e+2)}if(r===`CONFIG SET`)for(let e=2;e+1<t.length;e+=2)/^(requirepass|masterauth|masteruser)$/i.test(t[e])&&n.add(e+1);if(r===`ACL SETUSER`)for(let e=3;e<t.length;e++)/^[<>#!]/.test(t[e])&&n.add(e);return n.size===0?e:t.map((e,t)=>n.has(t)?`***`:q(e)).join(` `)}function q(e){if(e!==``&&!/[\s"'\\]/.test(e)&&!/[\x00-\x1f\x7f]/.test(e))return e;let t=`"`;for(let n of e)t+=n===`"`||n===`\\`?`\\${n}`:n===`
360
- `?`\\n`:n===`\r`?`\\r`:n===` `?`\\t`:n<` `||n===``?`\\x${n.charCodeAt(0).toString(16).padStart(2,`0`)}`:n;return`${t}"`}var hr=1e4,gr=1e3,_r=16;function vr(e){return e.replace(/[*?[\]\\]/g,e=>`\\${e}`)}function yr(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=/^db(\d+):keys=(\d+)/.exec(n.trim());e&&t.set(Number(e[1]),Number(e[2]))}return t}function br(e){return e.reply}function xr(e){let t=br(e);return String(typeof t==`string`||typeof t==`number`?t:e.records[0]?.[0]??``)}async function Sr(e,t,n,r=hr){let i=new Set,a=q(`${vr(n)}*`),o=`0`;do{let n=br(await e(`SCAN ${o} MATCH ${a} COUNT ${gr}`,t));if(!Array.isArray(n)||n.length!==2||!Array.isArray(n[1]))throw Error(`Unexpected SCAN reply`);o=String(n[0]);for(let e of n[1])i.add(String(e))}while(o!==`0`&&i.size<r);return{keys:[...i].slice(0,r),partial:o!==`0`||i.size>r}}function Cr(e,t,n,r){let i=new Map,a=[];for(let e of r){let t=e.slice(n.length),r=t.indexOf(`:`);if(r===-1)a.push(e);else{let e=n+t.slice(0,r+1);i.set(e,(i.get(e)??0)+1)}}let o=(e,t)=>e.localeCompare(t,void 0,{numeric:!0});return[...[...i.keys()].sort(o).map(r=>h(e.id,p.KEY_PREFIX,r.slice(n.length),!1,{database:t,prefix:r,count:i.get(r)})),...a.sort(o).map(r=>h(e.id,p.KEY,r.slice(n.length)||r,!0,{database:t,key:r}))]}var wr={cacheable:!1,async loadRoot({run:e}){let t=yr(xr(await e(`INFO keyspace`)));if(/cluster_enabled:1/.test(await e(`INFO cluster`).then(xr,()=>``)))return[h(null,p.DATABASE,`db0`,!1,{database:`db0`,count:t.get(0)??0,topology:`cluster`})];let n=_r;try{let t=br(await e(`CONFIG GET databases`));Array.isArray(t)&&t.length===2&&(n=Number(t[1])||_r)}catch{}let r=new Set([0,...t.keys()]);for(let e=0;e<n;e++)r.add(e);return[...r].sort((e,t)=>e-t).map(e=>h(null,p.DATABASE,`db${e}`,!1,{database:`db${e}`,count:t.get(e)??0}))},async loadChildren({run:e},t){let n=t.metadata?.database??`db0`,r=t.type===p.KEY_PREFIX?String(t.metadata?.prefix??``):``;if(t.type!==p.DATABASE&&t.type!==p.KEY_PREFIX)return[];let{keys:i,partial:a}=await Sr(e,n,r),o=Cr(t,n,r,i);return a&&o.push(h(t.id,p.FOLDER,`First ${hr.toLocaleString()} keys shown`,!0,{database:n,partial:!0})),o},objectPath(e){return[m(null,p.DATABASE,e)]},namespacePath(e){return[m(null,p.DATABASE,e)]}},Tr=`APPEND,AUTH,BITCOUNT,BLMOVE,BLPOP,BRPOP,BZPOPMAX,BZPOPMIN,CLIENT,CONFIG,COPY,DBSIZE,DECR,DECRBY,DEL,DUMP,ECHO,EVAL,EVALSHA,EXISTS,EXPIRE,EXPIREAT,EXPIRETIME,FLUSHALL,FLUSHDB,GEOADD,GEODIST,GEOPOS,GEOSEARCH,GET,GETDEL,GETEX,GETRANGE,HDEL,HEXISTS,HGET,HGETALL,HINCRBY,HINCRBYFLOAT,HKEYS,HLEN,HMGET,HRANDFIELD,HSCAN,HSET,HSETNX,HSTRLEN,HVALS,INCR,INCRBY,INCRBYFLOAT,INFO,KEYS,LASTSAVE,LINDEX,LINSERT,LLEN,LMOVE,LPOP,LPOS,LPUSH,LPUSHX,LRANGE,LREM,LSET,LTRIM,MEMORY,MGET,MSET,MSETNX,OBJECT,PERSIST,PEXPIRE,PFADD,PFCOUNT,PFMERGE,PING,PSETEX,PTTL,PUBLISH,PUBSUB,RANDOMKEY,RENAME,RENAMENX,RPOP,RPUSH,RPUSHX,SADD,SCAN,SCARD,SCRIPT,SDIFF,SDIFFSTORE,SELECT,SET,SETEX,SETNX,SETRANGE,SINTER,SINTERCARD,SISMEMBER,SLOWLOG,SMEMBERS,SMISMEMBER,SMOVE,SPOP,SRANDMEMBER,SREM,SSCAN,STRLEN,SUNION,TIME,TOUCH,TTL,TYPE,UNLINK,XACK,XADD,XAUTOCLAIM,XCLAIM,XDEL,XGROUP,XINFO,XLEN,XPENDING,XRANGE,XREAD,XREADGROUP,XREVRANGE,XTRIM,ZADD,ZCARD,ZCOUNT,ZINCRBY,ZMSCORE,ZPOPMAX,ZPOPMIN,ZRANDMEMBER,ZRANGE,ZRANGEBYSCORE,ZRANK,ZREM,ZREMRANGEBYRANK,ZREMRANGEBYSCORE,ZREVRANGE,ZREVRANK,ZSCAN,ZSCORE,JSON.GET,JSON.SET,JSON.DEL,JSON.TYPE,JSON.ARRAPPEND,FT.SEARCH,FT.INFO,FT._LIST`.split(`,`),Er=1e3;function Dr(e,t){let n=q(t);switch(e){case`string`:return`GET ${n}`;case`hash`:return`HGETALL ${n}`;case`list`:return`LRANGE ${n} 0 999`;case`set`:return`SSCAN ${n} 0 COUNT ${Er}`;case`zset`:return`ZRANGE ${n} 0 999 WITHSCORES`;case`stream`:return`XRANGE ${n} - + COUNT ${Er}`;case`ReJSON-RL`:return`JSON.GET ${n}`;default:return`TYPE ${n}`}}async function Or(e,t,n){let r=await e(`TYPE ${q(n)}`,t);return Dr(String(r.records[0]?.[0]??``),n)}var kr={kind:`redis`,id:`redis`,label:`Redis`,defaultPort:6379,capabilities:{multipleDatabases:!1,schemas:!1,users:!1,procedures:!1,functions:!1,triggers:!1,events:!1,processList:!1,variables:!1,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!1},tree:wr,nodeTools:[{nodeType:`key-prefix`,toolId:`redis-delete`,labelKey:`tools.redis.deleteUnder`,input:e=>`${String(e.database??`db0`)} ${String(e.prefix??``)}*`,writes:!0},{nodeType:`database`,toolId:`redis-memory`,labelKey:`tools.redis.memory`,input:e=>String(e.database??`db0`)},{nodeType:`database`,toolId:`redis-delete`,labelKey:`tools.redis.delete`,input:e=>`${String(e.database??`db0`)} *`,writes:!0}],console:{language:`redis`,split:rr,classify(e){let t=nr(e);return{...sr(t),readOnly:lr(t)}},databaseAfter(e){let t=ur(nr(e));return t===null?null:`db${t}`},redact:pr,changesTree:e=>[`FLUSHDB`,`FLUSHALL`,`SWAPDB`].includes(K(nr(e))),commands:Tr,inspect:Or}},Ar=/^(GET|POST|PUT|DELETE|HEAD)\s+(\S+)\s*$/i,jr=class extends Error{constructor(e){super(e),this.name=`EsRequestError`}};function Mr(e){let t=e.replace(/\r\n?/g,`
356
+ `)}}}var Yn=S({id:`oracle`,label:`Oracle`,capabilities:{multipleDatabases:!1,schemas:!1,users:!1,procedures:!0,functions:!0,triggers:!0,events:!1,processList:!0,variables:!0,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!0,transactions:!0},ddl:Jn,explain:nt,introspect:Hn,defaultPort:1521,binaryLiteral:e=>`HEXTORAW('${e}')`,booleanKeywords:!1,identifierQuote:`"`,queries:Un,syntax:qn,dataTypes:Kn,functions:Wn,reservedWords:Gn}),Xn=S({...qt,id:`neon`,label:`Neon`}),Zn=S({...qt,id:`supabase`,label:`Supabase`}),Qn=S({...I,id:`d1`,label:`Cloudflare D1`,capabilities:{...I.capabilities,transactions:!1}}),$n=`__miniflare_do_name`,er={...I.introspect,async listTables(e,t){return(await I.introspect.listTables(e,t)).filter(e=>e.name!==$n)}},tr=S({...I,id:`do`,label:`Cloudflare DO (wrangler dev)`,capabilities:{...I.capabilities,transactions:!1},introspect:er}),nr=class extends Error{constructor(e){super(e),this.name=`RedisSyntaxError`}},rr=/\s/,ir=/^[0-9a-fA-F]{2}$/,ar={n:`
357
+ `,r:`\r`,t:` `,b:`\b`,a:`\x07`};function H(e){let t=[],n=0,r=e.length;for(;;){for(;n<r&&rr.test(e[n]);)n++;if(n>=r)return t;let i=``,a=!1,o=!1,s=!1;for(;!s;)if(a){if(n>=r)throw new nr(`Unbalanced quotes in command`);let t=e[n];if(t===`\\`&&e[n+1]===`x`&&ir.test(e.slice(n+2,n+4))){i+=String.fromCharCode(parseInt(e.slice(n+2,n+4),16)),n+=4;continue}if(t===`\\`&&n+1<r){let t=e[n+1];i+=ar[t]??t,n+=2;continue}if(t===`"`){if(n+1<r&&!rr.test(e[n+1]))throw new nr(`Closing quote must be followed by a space`);a=!1,s=!0,n++;continue}i+=t,n++}else if(o){if(n>=r)throw new nr(`Unbalanced quotes in command`);let t=e[n];if(t===`\\`&&e[n+1]===`'`){i+=`'`,n+=2;continue}if(t===`'`){if(n+1<r&&!rr.test(e[n+1]))throw new nr(`Closing quote must be followed by a space`);o=!1,s=!0,n++;continue}i+=t,n++}else{if(n>=r){s=!0;continue}let t=e[n];if(rr.test(t)){s=!0;continue}t===`"`?a=!0:t===`'`?o=!0:i+=t,n++}t.push(i)}}function or(e){let t=[];return e.split(/\r?\n/).forEach((e,n)=>{let r=e.trim();!r||r.startsWith(`#`)||r.startsWith(`//`)||t.push({text:r,line:n+1})}),t}function U(e){let t=(e[0]??``).toUpperCase();return sr.has(t)&&e.length>1?`${t} ${e[1].toUpperCase()}`:t}var sr=new Set([`ACL`,`CLIENT`,`CLUSTER`,`COMMAND`,`CONFIG`,`FUNCTION`,`LATENCY`,`MEMORY`,`MODULE`,`OBJECT`,`PUBSUB`,`SCRIPT`,`SLOWLOG`,`XGROUP`,`XINFO`]),cr=new Set([`FLUSHALL`,`FLUSHDB`,`SWAPDB`,`SHUTDOWN`,`DEBUG`,`SCRIPT FLUSH`,`FUNCTION FLUSH`,`FUNCTION DELETE`,`FUNCTION RESTORE`,`CLUSTER RESET`,`CLUSTER FLUSHSLOTS`,`REPLICAOF`,`SLAVEOF`,`CONFIG RESETSTAT`,`ACL DELUSER`,`MODULE UNLOAD`]),lr=new Set([`PING`,`ECHO`,`INFO`,`TIME`,`SELECT`,`LASTSAVE`,`ROLE`,`QUIT`,`RESET`,`COMMAND`,`COMMAND INFO`,`COMMAND COUNT`,`COMMAND DOCS`,`COMMAND LIST`,`COMMAND GETKEYS`,`CLIENT ID`,`CLIENT INFO`,`CLIENT GETNAME`]);function ur(e){let t=U(e);return{name:t,dataLoss:cr.has(t)}}var dr=new Set(`GET,MGET,STRLEN,GETRANGE,SUBSTR,LCS,EXISTS,TYPE,TTL,PTTL,EXPIRETIME,PEXPIRETIME,DBSIZE,SCAN,SSCAN,HSCAN,ZSCAN,KEYS,RANDOMKEY,DUMP,HGET,HMGET,HGETALL,HKEYS,HVALS,HLEN,HEXISTS,HSTRLEN,HRANDFIELD,HTTL,HPTTL,LRANGE,LLEN,LINDEX,LPOS,SMEMBERS,SCARD,SISMEMBER,SMISMEMBER,SRANDMEMBER,SINTER,SUNION,SDIFF,SINTERCARD,ZRANGE,ZRANGEBYSCORE,ZRANGEBYLEX,ZREVRANGE,ZREVRANGEBYSCORE,ZREVRANGEBYLEX,ZCARD,ZCOUNT,ZLEXCOUNT,ZSCORE,ZMSCORE,ZRANK,ZREVRANK,ZRANDMEMBER,ZDIFF,ZINTER,ZUNION,ZINTERCARD,XRANGE,XREVRANGE,XLEN,XREAD,XPENDING,XINFO STREAM,XINFO GROUPS,XINFO CONSUMERS,GEOPOS,GEODIST,GEOHASH,GEOSEARCH,GEORADIUS_RO,GEORADIUSBYMEMBER_RO,PFCOUNT,BITCOUNT,BITPOS,GETBIT,BITFIELD_RO,OBJECT ENCODING,OBJECT FREQ,OBJECT IDLETIME,OBJECT REFCOUNT,MEMORY USAGE,MEMORY STATS,CONFIG GET,SLOWLOG GET,SLOWLOG LEN,CLIENT LIST,LATENCY LATEST,PUBSUB CHANNELS,PUBSUB NUMSUB,JSON.GET,JSON.MGET,JSON.TYPE,JSON.STRLEN,JSON.ARRLEN,JSON.OBJKEYS,JSON.OBJLEN,JSON.RESP,FT.SEARCH,FT.AGGREGATE,FT.INFO,FT._LIST,FT.EXPLAIN,TS.GET,TS.MGET,TS.RANGE,TS.REVRANGE,TS.INFO,EVAL_RO,EVALSHA_RO,FCALL_RO`.split(`,`));function fr(e){let t=U(e);return dr.has(t)||lr.has(t)}function pr(e){return U(e)!==`SELECT`||!/^\d+$/.test(e[1]??``)?null:Number(e[1])}var mr=/^\s*(AUTH|HELLO|MIGRATE|CONFIG|ACL)\s/i,hr=/^\s*(AUTH|HELLO|MIGRATE|CONFIG|ACL)\s/im;function gr(e){return hr.test(e)?e.split(`
358
+ `).map(e=>mr.test(e)?_r(e):e).join(`
359
+ `):e}function _r(e){let t;try{t=H(e)}catch{return e.replace(/^(\s*\S+).*$/s,`$1 ***`)}if(t.length===0)return e;let n=new Set,r=U(t);if(r===`AUTH`)for(let e=1;e<t.length;e++)n.add(e);if(r===`HELLO`||r===`MIGRATE`)for(let e=1;e<t.length;e++){let i=t[e].toUpperCase();i===`AUTH`&&(n.add(e+1),r===`HELLO`&&n.add(e+2)),i===`AUTH2`&&n.add(e+2)}if(r===`CONFIG SET`)for(let e=2;e+1<t.length;e+=2)/^(requirepass|masterauth|masteruser)$/i.test(t[e])&&n.add(e+1);if(r===`ACL SETUSER`)for(let e=3;e<t.length;e++)/^[<>#!]/.test(t[e])&&n.add(e);return n.size===0?e:t.map((e,t)=>n.has(t)?`***`:W(e)).join(` `)}function W(e){if(e!==``&&!/[\s"'\\]/.test(e)&&!/[\x00-\x1f\x7f]/.test(e))return e;let t=`"`;for(let n of e)t+=n===`"`||n===`\\`?`\\${n}`:n===`
360
+ `?`\\n`:n===`\r`?`\\r`:n===` `?`\\t`:n<` `||n===``?`\\x${n.charCodeAt(0).toString(16).padStart(2,`0`)}`:n;return`${t}"`}var vr=1e4,yr=1e3,br=16;function xr(e){return e.replace(/[*?[\]\\]/g,e=>`\\${e}`)}function Sr(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=/^db(\d+):keys=(\d+)/.exec(n.trim());e&&t.set(Number(e[1]),Number(e[2]))}return t}function Cr(e){return e.reply}function wr(e){let t=Cr(e);return String(typeof t==`string`||typeof t==`number`?t:e.records[0]?.[0]??``)}async function Tr(e,t,n,r=vr){let i=new Set,a=W(`${xr(n)}*`),o=`0`;do{let n=Cr(await e(`SCAN ${o} MATCH ${a} COUNT ${yr}`,t));if(!Array.isArray(n)||n.length!==2||!Array.isArray(n[1]))throw Error(`Unexpected SCAN reply`);o=String(n[0]);for(let e of n[1])i.add(String(e))}while(o!==`0`&&i.size<r);return{keys:[...i].slice(0,r),partial:o!==`0`||i.size>r}}function Er(e,t,n,r){let i=new Map,a=[];for(let e of r){let t=e.slice(n.length),r=t.indexOf(`:`);if(r===-1)a.push(e);else{let e=n+t.slice(0,r+1);i.set(e,(i.get(e)??0)+1)}}let o=(e,t)=>e.localeCompare(t,void 0,{numeric:!0});return[...[...i.keys()].sort(o).map(r=>h(e.id,p.KEY_PREFIX,r.slice(n.length),!1,{database:t,prefix:r,count:i.get(r)})),...a.sort(o).map(r=>h(e.id,p.KEY,r.slice(n.length)||r,!0,{database:t,key:r}))]}var Dr={cacheable:!1,async loadRoot({run:e}){let t=Sr(wr(await e(`INFO keyspace`)));if(/cluster_enabled:1/.test(await e(`INFO cluster`).then(wr,()=>``)))return[h(null,p.DATABASE,`db0`,!1,{database:`db0`,count:t.get(0)??0,topology:`cluster`})];let n=br;try{let t=Cr(await e(`CONFIG GET databases`));Array.isArray(t)&&t.length===2&&(n=Number(t[1])||br)}catch{}let r=new Set([0,...t.keys()]);for(let e=0;e<n;e++)r.add(e);return[...r].sort((e,t)=>e-t).map(e=>h(null,p.DATABASE,`db${e}`,!1,{database:`db${e}`,count:t.get(e)??0}))},async loadChildren({run:e},t){let n=t.metadata?.database??`db0`,r=t.type===p.KEY_PREFIX?String(t.metadata?.prefix??``):``;if(t.type!==p.DATABASE&&t.type!==p.KEY_PREFIX)return[];let{keys:i,partial:a}=await Tr(e,n,r),o=Er(t,n,r,i);return a&&o.push(h(t.id,p.FOLDER,`First ${vr.toLocaleString()} keys shown`,!0,{database:n,partial:!0})),o},objectPath(e){return[m(null,p.DATABASE,e)]},namespacePath(e){return[m(null,p.DATABASE,e)]}},Or=`APPEND,AUTH,BITCOUNT,BLMOVE,BLPOP,BRPOP,BZPOPMAX,BZPOPMIN,CLIENT,CONFIG,COPY,DBSIZE,DECR,DECRBY,DEL,DUMP,ECHO,EVAL,EVALSHA,EXISTS,EXPIRE,EXPIREAT,EXPIRETIME,FLUSHALL,FLUSHDB,GEOADD,GEODIST,GEOPOS,GEOSEARCH,GET,GETDEL,GETEX,GETRANGE,HDEL,HEXISTS,HGET,HGETALL,HINCRBY,HINCRBYFLOAT,HKEYS,HLEN,HMGET,HRANDFIELD,HSCAN,HSET,HSETNX,HSTRLEN,HVALS,INCR,INCRBY,INCRBYFLOAT,INFO,KEYS,LASTSAVE,LINDEX,LINSERT,LLEN,LMOVE,LPOP,LPOS,LPUSH,LPUSHX,LRANGE,LREM,LSET,LTRIM,MEMORY,MGET,MSET,MSETNX,OBJECT,PERSIST,PEXPIRE,PFADD,PFCOUNT,PFMERGE,PING,PSETEX,PTTL,PUBLISH,PUBSUB,RANDOMKEY,RENAME,RENAMENX,RPOP,RPUSH,RPUSHX,SADD,SCAN,SCARD,SCRIPT,SDIFF,SDIFFSTORE,SELECT,SET,SETEX,SETNX,SETRANGE,SINTER,SINTERCARD,SISMEMBER,SLOWLOG,SMEMBERS,SMISMEMBER,SMOVE,SPOP,SRANDMEMBER,SREM,SSCAN,STRLEN,SUNION,TIME,TOUCH,TTL,TYPE,UNLINK,XACK,XADD,XAUTOCLAIM,XCLAIM,XDEL,XGROUP,XINFO,XLEN,XPENDING,XRANGE,XREAD,XREADGROUP,XREVRANGE,XTRIM,ZADD,ZCARD,ZCOUNT,ZINCRBY,ZMSCORE,ZPOPMAX,ZPOPMIN,ZRANDMEMBER,ZRANGE,ZRANGEBYSCORE,ZRANK,ZREM,ZREMRANGEBYRANK,ZREMRANGEBYSCORE,ZREVRANGE,ZREVRANK,ZSCAN,ZSCORE,JSON.GET,JSON.SET,JSON.DEL,JSON.TYPE,JSON.ARRAPPEND,FT.SEARCH,FT.INFO,FT._LIST`.split(`,`),kr=1e3;function Ar(e,t){let n=W(t);switch(e){case`string`:return`GET ${n}`;case`hash`:return`HGETALL ${n}`;case`list`:return`LRANGE ${n} 0 999`;case`set`:return`SSCAN ${n} 0 COUNT ${kr}`;case`zset`:return`ZRANGE ${n} 0 999 WITHSCORES`;case`stream`:return`XRANGE ${n} - + COUNT ${kr}`;case`ReJSON-RL`:return`JSON.GET ${n}`;default:return`TYPE ${n}`}}async function jr(e,t,n){let r=await e(`TYPE ${W(n)}`,t);return Ar(String(r.records[0]?.[0]??``),n)}function Mr(e){return e.replace(/[*?[\]\\]/g,e=>`\\${e}`)}function Nr(e,t){let n=(e,t)=>({group:`read`,groupKey:`schema.menu.inspect`,label:e,command:t,run:!0}),r=(e,t)=>({group:`write`,groupKey:`schema.menu.modify`,label:e,command:t,run:!1});if(e===p.KEY&&typeof t.key==`string`){let e=W(t.key);return[n(`TYPE`,`TYPE ${e}`),n(`TTL`,`TTL ${e}`),n(`MEMORY USAGE`,`MEMORY USAGE ${e}`),n(`OBJECT ENCODING`,`OBJECT ENCODING ${e}`),n(`OBJECT IDLETIME`,`OBJECT IDLETIME ${e}`),r(`EXPIRE <seconds>`,`EXPIRE ${e} <seconds>`),r(`PERSIST`,`PERSIST ${e}`),r(`RENAMENX <newkey>`,`RENAMENX ${e} <newkey>`),r(`COPY <destination>`,`COPY ${e} <destination>`),r(`UNLINK`,`UNLINK ${e}`)]}return e===p.KEY_PREFIX&&typeof t.prefix==`string`?[n(`SCAN MATCH`,`SCAN 0 MATCH ${W(`${Mr(t.prefix)}*`)} COUNT 1000`)]:e===p.DATABASE?[n(`DBSIZE`,`DBSIZE`),n(`RANDOMKEY`,`RANDOMKEY`),n(`SCAN`,`SCAN 0 COUNT 100`),n(`INFO keyspace`,`INFO keyspace`),r(`SET <key> <value>`,`SET <key> <value>`),r(`HSET <key> <field> <value>`,`HSET <key> <field> <value>`),r(`RPUSH <key> <element>`,`RPUSH <key> <element>`),r(`SADD <key> <member>`,`SADD <key> <member>`),r(`ZADD <key> <score> <member>`,`ZADD <key> <score> <member>`),r(`XADD <key> * <field> <value>`,`XADD <key> * <field> <value>`)]:[]}var Pr=new Set(`GET,GETRANGE,GETEX,STRLEN,APPEND,SET,SETEX,PSETEX,SETNX,SETRANGE,INCR,INCRBY,INCRBYFLOAT,DECR,DECRBY,HGETALL,HGET,HMGET,HKEYS,HVALS,HLEN,HSCAN,HEXISTS,HSTRLEN,HRANDFIELD,HSET,HSETNX,HDEL,HINCRBY,HINCRBYFLOAT,LRANGE,LLEN,LINDEX,LPOS,LPUSH,RPUSH,LPUSHX,RPUSHX,LSET,LINSERT,LREM,LTRIM,SMEMBERS,SSCAN,SCARD,SISMEMBER,SMISMEMBER,SRANDMEMBER,SADD,SREM,ZRANGE,ZREVRANGE,ZRANGEBYSCORE,ZSCAN,ZCARD,ZCOUNT,ZSCORE,ZMSCORE,ZRANK,ZREVRANK,ZRANDMEMBER,ZADD,ZINCRBY,ZREM,XRANGE,XREVRANGE,XLEN,XADD,XDEL,XTRIM,TYPE,TTL,PTTL,EXPIRETIME,EXPIRE,PEXPIRE,EXPIREAT,PERSIST,TOUCH,PFCOUNT,PFADD,JSON.GET,JSON.SET,JSON.TYPE,JSON.ARRAPPEND`.split(`,`)),Fr=new Set([`MEMORY USAGE`,`OBJECT ENCODING`,`OBJECT IDLETIME`,`OBJECT FREQ`,`OBJECT REFCOUNT`,`XINFO STREAM`]);function Ir(e,t){let n;try{n=H(e)}catch{return null}let r=(n[0]??``).toUpperCase();return Pr.has(r)&&n.length>=2&&!((r===`PFCOUNT`||r===`TOUCH`)&&n.length>2)?{database:t,name:n[1]}:n.length>=3&&Fr.has(`${r} ${n[1].toUpperCase()}`)?{database:t,name:n[2]}:null}var Lr={kind:`redis`,id:`redis`,label:`Redis`,defaultPort:6379,capabilities:{multipleDatabases:!1,schemas:!1,users:!1,procedures:!1,functions:!1,triggers:!1,events:!1,processList:!1,variables:!1,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!1},tree:Dr,nodeRequests:Nr,itemOfCommand:Ir,nodeTools:[{nodeType:`key-prefix`,toolId:`redis-delete`,labelKey:`tools.redis.deleteUnder`,input:e=>`${String(e.database??`db0`)} ${String(e.prefix??``)}*`,writes:!0},{nodeType:`database`,toolId:`redis-memory`,labelKey:`tools.redis.memory`,input:e=>String(e.database??`db0`)},{nodeType:`database`,toolId:`redis-delete`,labelKey:`tools.redis.delete`,input:e=>`${String(e.database??`db0`)} *`,writes:!0}],console:{language:`redis`,split:or,classify(e){let t=H(e);return{...ur(t),readOnly:fr(t)}},databaseAfter(e){let t=pr(H(e));return t===null?null:`db${t}`},redact:gr,changesTree:e=>[`FLUSHDB`,`FLUSHALL`,`SWAPDB`].includes(U(H(e))),commands:Or,inspect:jr}},Rr=/^(GET|POST|PUT|DELETE|HEAD)\s+(\S+)\s*$/i,zr=class extends Error{constructor(e){super(e),this.name=`EsRequestError`}};function Br(e){let t=e.replace(/\r\n?/g,`
361
361
  `).split(`
362
- `),n=t.findIndex(e=>e.trim()!==``&&!Nr(e));if(n===-1)throw new jr(`Empty request`);let r=Ar.exec(t[n].trim());if(!r)throw new jr(`A request starts with a method and a path, e.g. GET /_cat/indices`);let i=r[2];return{method:r[1].toUpperCase(),path:i.startsWith(`/`)?i:`/${i}`,body:t.slice(n+1).join(`
363
- `).trim()}}function Nr(e){let t=e.trimStart();return t.startsWith(`#`)||t.startsWith(`//`)}function Pr(e){let t=e.split(`
364
- `),n=[],r=null,i=()=>{if(!r)return;let e=r.end;for(;e>r.start&&(t[e].trim()===``||Nr(t[e]));)e--;n.push({text:t.slice(r.start,e+1).join(`
365
- `).replace(/\r$/,``),line:r.start+1}),r=null};return t.forEach((e,t)=>{Ar.test(e.trim())&&!/^\s/.test(e)?(i(),r={start:t,end:t}):r&&(r.end=t)}),i(),n}function Fr(e){return e.split(`?`)[0].split(`/`).filter(Boolean).map(e=>decodeURIComponent(e))}var Ir=new Set([`_search`,`_msearch`,`_count`,`_mget`,`_field_caps`,`_explain`,`_analyze`,`_termvectors`,`_mtermvectors`,`_rank_eval`]),Lr=new Set([`_validate/query`,`_search/template`,`_render/template`,`_msearch/template`]),Rr=/^\s*(SELECT|SHOW|DESCRIBE|DESC|EXPLAIN)\b/i;function zr(e){return e[0]===`_sql`||e[0]===`_plugins`&&e[1]===`_sql`||e[0]===`_opendistro`&&e[1]===`_sql`}function Br(e){try{let t=JSON.parse(e);return typeof t.query==`string`?t.query:null}catch{return null}}function Vr(e){if(e.method===`GET`||e.method===`HEAD`)return!0;if(e.method!==`POST`)return!1;let t=Fr(e.path);if(zr(t)){let t=Br(e.body);return t!==null&&Rr.test(t)}let n=t[t.length-1]??``,r=t.slice(-2).join(`/`);return Ir.has(n)||Lr.has(r)}function Hr(e){return!!e&&(e.includes(`*`)||e.includes(`,`)||e===`_all`)}function Ur(e){let t=Fr(e.path);if(t.includes(`_delete_by_query`)||t.includes(`_restore`))return!0;if(e.method!==`DELETE`)return!1;if(t.length===0||Hr(t[0]))return!0;let n=t.indexOf(`_doc`);return n===-1||t.length!==n+2}function Wr(e){let t=Fr(e.path).find(e=>e.startsWith(`_`))??(Fr(e.path).length?`index`:`root`);return`${e.method} ${t}`}var Gr=new Set([`password`,`new_password`,`hash`,`password_hash`,`api_key`,`secret`,`token`,`refresh_token`,`client_secret`]),Kr=/^(GET|POST|PUT|DELETE|HEAD)\s+\/?(_security|_xpack\/security|_plugins\/_security|_opendistro\/_security)\b/im;function qr(e){return Kr.test(e)?Pr(e).reduce((e,{text:t})=>{if(!Kr.test(t))return e;let n=t.replace(/("([A-Za-z_]+)"\s*:\s*)"(?:[^"\\]|\\.)*"/g,(e,t,n)=>Gr.has(n.toLowerCase())?`${t}"***"`:e);return n===t?e:e.replace(t,n)},e):e}var Jr=`System indices`,Yr=`Aliases`;function Xr(e){return Array.isArray(e.reply)?e.reply:[]}function Zr(e,t=``){let n=[];for(let[r,i]of Object.entries(e)){let e=i??{},a=t?`${t}.${r}`:r;if(n.push({path:a,type:e.type??(e.properties?`object`:`unknown`)}),e.properties&&n.push(...Zr(e.properties,a)),e.fields)for(let[t,r]of Object.entries(e.fields))n.push({path:`${a}.${t}`,type:r.type??`unknown`})}return n}function Qr(e,t){let n=String(t.index),r=t[`docs.count`]===null||t[`docs.count`]===void 0?void 0:Number(t[`docs.count`]);return h(e,p.COLLECTION,n,!1,{key:n,...r!==void 0&&Number.isFinite(r)?{count:r}:{},health:t.health})}var $r={async loadRoot({run:e}){let t=Xr(await e(`GET /_cat/indices?format=json&h=index,health,status,docs.count&s=index`)).filter(e=>e.index),n=[];try{n=Xr(await e(`GET /_cat/aliases?format=json&h=alias,index&s=alias`)).filter(e=>e.alias&&!e.alias.startsWith(`.`))}catch{}let r=t.filter(e=>!String(e.index).startsWith(`.`)),i=t.filter(e=>String(e.index).startsWith(`.`)),a=r.map(e=>Qr(null,e));return n.length>0&&a.push(h(null,p.FOLDER,Yr,!1,{count:n.length,aliases:n})),i.length>0&&a.push(h(null,p.FOLDER,Jr,!1,{count:i.length,system:i})),a},async loadChildren({run:e},t){if(t.type===p.FOLDER&&t.text===`System indices`)return(t.metadata?.system??[]).map(e=>Qr(t.id,e));if(t.type===p.FOLDER&&t.text===`Aliases`)return(t.metadata?.aliases??[]).map(e=>h(t.id,p.COLLECTION,`${e.alias} → ${e.index}`,!1,{key:String(e.alias)}));if(t.type!==p.COLLECTION)return[];let n=String(t.metadata?.key??t.text),r=(await e(`GET /${encodeURIComponent(n)}/_mapping`)).reply;return Zr(Object.values(r??{}).reduce((e,t)=>({...e,...t.mappings?.properties??{}}),{})).map(({path:e,type:r})=>h(t.id,p.FIELD,`${e}: ${r}`,!0,{field:e,fieldType:r,index:n}))},objectPath(){return[]},namespacePath(){return[]}},ei=`/_cat/indices?v./_cat/aliases?v./_cat/health?v./_cat/nodes?v./_cat/shards?v./_cluster/health./_cluster/stats./_nodes/stats./_search./_count./_mapping./_settings./_bulk./_mget./_msearch./_sql?format=txt./_plugins/_sql./_aliases./_index_template./_data_stream./_tasks./_reindex./_update_by_query./_delete_by_query./_doc/./_analyze./_field_caps./_refresh./_stats`.split(`.`);function ti(e,t){return`/${encodeURIComponent(e)}/_doc/${encodeURIComponent(t)}`}function ni(e){return`POST /${encodeURIComponent(e)}/_search\n{\n "size": 50,\n "query": { "match_all": {} }\n}`}var ri={language:`search-console`,split:Pr,classify(e){let t=Mr(e);return{name:Wr(t),dataLoss:Ur(t),readOnly:Vr(t)}},redact:qr,changesTree:e=>!Vr(Mr(e)),commands:[`GET`,`POST`,`PUT`,`DELETE`,`HEAD`],arguments:ei,inspect:async(e,t,n)=>ni(n)},ii={multipleDatabases:!1,schemas:!1,users:!1,procedures:!1,functions:!1,triggers:!1,events:!1,processList:!1,variables:!1,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!1};function ai(e,t){return{kind:`search`,id:e,label:t,defaultPort:9200,capabilities:ii,tree:$r,console:ri,formHint:`connection.form.searchAuthHint`,rootActions:[{labelKey:`schema.root.createIndex`,command:`PUT /new-index
362
+ `),n=t.findIndex(e=>e.trim()!==``&&!Vr(e));if(n===-1)throw new zr(`Empty request`);let r=Rr.exec(t[n].trim());if(!r)throw new zr(`A request starts with a method and a path, e.g. GET /_cat/indices`);let i=r[2];return{method:r[1].toUpperCase(),path:i.startsWith(`/`)?i:`/${i}`,body:t.slice(n+1).join(`
363
+ `).trim()}}function Vr(e){let t=e.trimStart();return t.startsWith(`#`)||t.startsWith(`//`)}function Hr(e){let t=e.split(`
364
+ `),n=[],r=null,i=()=>{if(!r)return;let e=r.end;for(;e>r.start&&(t[e].trim()===``||Vr(t[e]));)e--;n.push({text:t.slice(r.start,e+1).join(`
365
+ `).replace(/\r$/,``),line:r.start+1}),r=null};return t.forEach((e,t)=>{Rr.test(e.trim())&&!/^\s/.test(e)?(i(),r={start:t,end:t}):r&&(r.end=t)}),i(),n}function Ur(e){return e.split(`?`)[0].split(`/`).filter(Boolean).map(e=>decodeURIComponent(e))}var Wr=new Set([`_search`,`_msearch`,`_count`,`_mget`,`_field_caps`,`_explain`,`_analyze`,`_termvectors`,`_mtermvectors`,`_rank_eval`]),Gr=new Set([`_validate/query`,`_search/template`,`_render/template`,`_msearch/template`]),Kr=/^\s*(SELECT|SHOW|DESCRIBE|DESC|EXPLAIN)\b/i;function qr(e){return e[0]===`_sql`||e[0]===`_plugins`&&e[1]===`_sql`||e[0]===`_opendistro`&&e[1]===`_sql`}function Jr(e){try{let t=JSON.parse(e);return typeof t.query==`string`?t.query:null}catch{return null}}function Yr(e){if(e.method===`GET`||e.method===`HEAD`)return!0;if(e.method!==`POST`)return!1;let t=Ur(e.path);if(qr(t)){let t=Jr(e.body);return t!==null&&Kr.test(t)}let n=t[t.length-1]??``,r=t.slice(-2).join(`/`);return Wr.has(n)||Gr.has(r)}function Xr(e){return!!e&&(e.includes(`*`)||e.includes(`,`)||e===`_all`)}function Zr(e){let t=Ur(e.path);if(t.includes(`_delete_by_query`)||t.includes(`_restore`))return!0;if(e.method!==`DELETE`)return!1;if(t.length===0||Xr(t[0]))return!0;let n=t.indexOf(`_doc`);return n===-1||t.length!==n+2}function Qr(e){let t=Ur(e.path).find(e=>e.startsWith(`_`))??(Ur(e.path).length?`index`:`root`);return`${e.method} ${t}`}var $r=new Set([`password`,`new_password`,`hash`,`password_hash`,`api_key`,`secret`,`token`,`refresh_token`,`client_secret`]),ei=/^(GET|POST|PUT|DELETE|HEAD)\s+\/?(_security|_xpack\/security|_plugins\/_security|_opendistro\/_security)\b/im;function ti(e){return ei.test(e)?Hr(e).reduce((e,{text:t})=>{if(!ei.test(t))return e;let n=t.replace(/("([A-Za-z_]+)"\s*:\s*)"(?:[^"\\]|\\.)*"/g,(e,t,n)=>$r.has(n.toLowerCase())?`${t}"***"`:e);return n===t?e:e.replace(t,n)},e):e}var ni=`System indices`,ri=`Aliases`;function ii(e){return Array.isArray(e.reply)?e.reply:[]}function ai(e,t=``){let n=[];for(let[r,i]of Object.entries(e)){let e=i??{},a=t?`${t}.${r}`:r;if(n.push({path:a,type:e.type??(e.properties?`object`:`unknown`)}),e.properties&&n.push(...ai(e.properties,a)),e.fields)for(let[t,r]of Object.entries(e.fields))n.push({path:`${a}.${t}`,type:r.type??`unknown`})}return n}function oi(e,t){let n=String(t.index),r=t[`docs.count`]===null||t[`docs.count`]===void 0?void 0:Number(t[`docs.count`]);return h(e,p.COLLECTION,n,!1,{key:n,...r!==void 0&&Number.isFinite(r)?{count:r}:{},health:t.health})}var si={async loadRoot({run:e}){let t=ii(await e(`GET /_cat/indices?format=json&h=index,health,status,docs.count&s=index`)).filter(e=>e.index),n=[];try{n=ii(await e(`GET /_cat/aliases?format=json&h=alias,index&s=alias`)).filter(e=>e.alias&&!e.alias.startsWith(`.`))}catch{}let r=t.filter(e=>!String(e.index).startsWith(`.`)),i=t.filter(e=>String(e.index).startsWith(`.`)),a=r.map(e=>oi(null,e));return n.length>0&&a.push(h(null,p.FOLDER,ri,!1,{count:n.length,aliases:n})),i.length>0&&a.push(h(null,p.FOLDER,ni,!1,{count:i.length,system:i})),a},async loadChildren({run:e},t){if(t.type===p.FOLDER&&t.text===`System indices`)return(t.metadata?.system??[]).map(e=>oi(t.id,e));if(t.type===p.FOLDER&&t.text===`Aliases`)return(t.metadata?.aliases??[]).map(e=>h(t.id,p.COLLECTION,`${e.alias} → ${e.index}`,!1,{key:String(e.alias),aliasOf:String(e.index)}));if(t.type!==p.COLLECTION)return[];let n=String(t.metadata?.key??t.text),r=(await e(`GET /${encodeURIComponent(n)}/_mapping`)).reply;return ai(Object.values(r??{}).reduce((e,t)=>({...e,...t.mappings?.properties??{}}),{})).map(({path:e,type:r})=>h(t.id,p.FIELD,`${e}: ${r}`,!0,{field:e,fieldType:r,index:n}))},objectPath(){return[]},namespacePath(){return[]}};function ci(e,t){return`/${encodeURIComponent(e)}/_doc/${encodeURIComponent(t)}`}var li=new Set([`_index`,`_id`,`_score`]);function G(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function ui(e){return G(e)&&typeof e._index==`string`&&typeof e._id==`string`&&G(e._source)}function di(e){return G(e)&&G(e.hits)&&Array.isArray(e.hits.hits)?e.hits.hits:null}function fi(e,t){let n=di(e)?.find(e=>G(e)&&e._index===t._index&&e._id===t._id);return n&&ui(n)?n:null}function pi(e){let t=di(e.reply);return!t||t.length===0||t.length!==e.rows.length?!1:t.every(ui)&&e.rows.every(t=>fi(e.reply,t)!==null)}function K(e,t={}){let n={...e._routing===void 0?{}:{routing:e._routing},...t},r=Object.entries(n).map(([e,t])=>`${e}=${encodeURIComponent(String(t))}`).join(`&`);return`${ci(e._index,e._id)}${r?`?${r}`:``}`}function mi(e){return e==null?null:typeof e==`number`?`number`:typeof e==`boolean`?`boolean`:typeof e==`object`?`json`:`string`}function hi(e,t,n,r){if(e===null)return null;let i=mi(n._source[t])??r.map(e=>mi(e._source[t])).find(e=>e!==null)??`string`;if(typeof e!=`string`)return e;switch(i){case`number`:{let n=Number(e.trim());if(e.trim()===``||!Number.isFinite(n))throw Error(`${t}: "${e}" is not a number`);return n}case`boolean`:{let n=e.trim().toLowerCase();if(n!==`true`&&n!==`false`)throw Error(`${t}: "${e}" is not true or false`);return n===`true`}case`json`:try{return JSON.parse(e)}catch(e){throw Error(`${t}: ${e instanceof Error?e.message:String(e)}`)}default:return e}}function gi(e,t){return JSON.stringify(_i(e))===JSON.stringify(_i(t))}function _i(e){return Array.isArray(e)?e.map(_i):G(e)?Object.fromEntries(Object.keys(e).sort().map(t=>[t,_i(e[t])])):e}function vi(e,t){return e._seq_no!==void 0&&e._primary_term!==void 0?e._seq_no===t.seqNo&&e._primary_term===t.primaryTerm:Object.keys(e._source).every(n=>gi(e._source[n],t.source[n]))}var yi=`The document was changed after this search read it; run the search again to see the current version.`;function bi(e){let t=e.reply;return!G(t)||t.found===!1||!G(t._source)||typeof t._seq_no!=`number`||typeof t._primary_term!=`number`?null:{source:t._source,seqNo:t._seq_no,primaryTerm:t._primary_term}}var xi={editable:pi,isLocked:e=>li.has(e),preview(e,t){let n=[];for(let r of t.deletes){let t=fi(e.reply,e.rows[r]??{});t&&n.push(`DELETE ${K(t)}`)}for(let[r,i]of t.edits){if(t.deletes.has(r))continue;let a=fi(e.reply,e.rows[r]??{});a&&n.push(`PUT ${K(a)}\n# ${[...i.keys()].join(`, `)}`)}return n},async commit(e,t,n,r){let i=(di(t.reply)??[]).filter(ui),a=[],o=[...new Set([...n.deletes,...n.edits.keys()])].sort((e,t)=>e-t);r?.(0,o.length);for(let s of o){a.length>0&&r?.(a.length,o.length);let c=fi(t.reply,t.rows[s]??{});if(!c){a.push({rowIdx:s,error:`Not a document of this search`});continue}try{a.push(await Si(e,c,i,s,n))}catch(e){if(e instanceof Error&&e.name===`ExecutionCancelled`)throw e;let t=e instanceof Error?e.message:String(e);a.push({rowIdx:s,error:/version_conflict/.test(t)?yi:t})}}return r?.(a.length,o.length),a},replyAfter:(e,t)=>Ci(e,t)};async function Si(e,t,n,r,i){let a=i.deletes.has(r),o=a?[]:[...i.edits.get(r)??new Map].filter(([e])=>!li.has(e)).map(([e,r])=>[e,hi(r,e,t,n)]),s=bi(await e.read(`GET ${K(t)}`));if(!s)return{rowIdx:r,error:`The document no longer exists`};if(!vi(t,s))return{rowIdx:r,error:yi};let c={if_seq_no:s.seqNo,if_primary_term:s.primaryTerm,refresh:`wait_for`};if(a)return await e.write(`DELETE ${K(t,c)}`),{rowIdx:r,item:t,deleted:!0};let l={...s.source,...Object.fromEntries(o)},u=(await e.write(`PUT ${K(t,c)}\n${JSON.stringify(l,null,2)}`)).reply,d=G(u)?u:{};return{rowIdx:r,item:{...t,_source:l,...typeof d._seq_no==`number`?{_seq_no:d._seq_no}:{},...typeof d._primary_term==`number`?{_primary_term:d._primary_term}:{}}}}function Ci(e,t){let n=di(e);if(!n||!G(e)||!G(e.hits))return e;let r=e=>G(e)?`${String(e._index)}\u0000${String(e._id)}`:``,i=new Map(t.filter(e=>e.item&&!e.deleted).map(e=>[r(e.item),e.item])),a=new Set(t.filter(e=>e.item&&e.deleted).map(e=>r(e.item))),o=n.filter(e=>!a.has(r(e))).map(e=>i.get(r(e))??e);return{...e,hits:{...e.hits,hits:o}}}var wi=`/_cat/indices?v./_cat/aliases?v./_cat/health?v./_cat/nodes?v./_cat/shards?v./_cluster/health./_cluster/stats./_nodes/stats./_search./_count./_mapping./_settings./_bulk./_mget./_msearch./_sql?format=txt./_plugins/_sql./_aliases./_index_template./_data_stream./_tasks./_reindex./_update_by_query./_delete_by_query./_doc/./_analyze./_field_caps./_refresh./_stats`.split(`.`);function Ti(e){return`POST /${encodeURIComponent(e)}/_search\n{\n "size": 50,\n "seq_no_primary_term": true,\n "query": { "match_all": {} }\n}`}var Ei=new Set([`long`,`integer`,`short`,`byte`,`double`,`float`,`half_float`,`scaled_float`,`unsigned_long`]),Di=new Set([`date`,`date_nanos`]),Oi=new Set([`text`,`match_only_text`,`object`,`nested`,`flattened`,`unknown`]);function q(e,t,n,r,i){return{group:e,label:t,command:r===void 0?`${e} ${n}`:`${e} ${n}\n${JSON.stringify(r,null,2)}`,run:i}}function ki(e,t){if(e===p.COLLECTION&&typeof t.key==`string`){let e=t.key,n=`/${encodeURIComponent(e)}`,r=typeof t.aliasOf==`string`?t.aliasOf:null,i={"<field>":`<value>`},a=[q(`GET`,`_search`,`${n}/_search?seq_no_primary_term=true`,void 0,!0),q(`GET`,`_count`,`${n}/_count`,void 0,!0),q(`GET`,`_mapping`,`${n}/_mapping`,void 0,!0),q(`GET`,`_settings`,`${n}/_settings`,void 0,!0),q(`GET`,`_stats`,`${n}/_stats`,void 0,!0),q(`GET`,`_cat/shards`,`/_cat/shards${n}?format=json`,void 0,!0),q(`GET`,`_doc/<id>`,`${n}/_doc/<id>`,void 0,!1),q(`POST`,`_search`,`${n}/_search`,{size:20,seq_no_primary_term:!0,query:{match:{"<field>":`<text>`}}},!1),q(`POST`,`_validate/query`,`${n}/_validate/query?explain`,{query:{match:{"<field>":`<text>`}}},!1),q(`POST`,`_doc`,`${n}/_doc`,i,!1),q(`POST`,`_update/<id>`,`${n}/_update/<id>`,{doc:i},!1),{group:`POST`,label:`_bulk`,command:`POST ${n}/_bulk\n{ "index": { "_id": "<id>" } }\n{ "<field>": "<value>" }\n`,run:!1},q(`POST`,`_update_by_query`,`${n}/_update_by_query`,{query:{term:{"<field>":`<value>`}},script:{source:`ctx._source['<field>'] = params.value`,params:{value:`<value>`}}},!1),q(`POST`,`_delete_by_query`,`${n}/_delete_by_query`,{query:{term:{"<field>":`<value>`}}},!1),q(`POST`,`_reindex`,`/_reindex`,{source:{index:e},dest:{index:`<new-index>`}},!1),q(`POST`,`_refresh`,`${n}/_refresh`,void 0,!1),q(`PUT`,`_doc/<id>`,`${n}/_doc/<id>`,i,!1),q(`PUT`,`_mapping`,`${n}/_mapping`,{properties:{"<field>":{type:`keyword`}}},!1),q(`PUT`,`_settings`,`${n}/_settings`,{index:{number_of_replicas:1}},!1),q(`DELETE`,`_doc/<id>`,`${n}/_doc/<id>`,void 0,!1)];return a.push(r===null?q(`PUT`,`_alias/<alias>`,`${n}/_alias/<alias>`,void 0,!1):q(`POST`,`_aliases (remove)`,`/_aliases`,{actions:[{remove:{index:r,alias:e}}]},!1)),r===null&&a.push(q(`DELETE`,e,n,void 0,!1)),a}if(e===p.FIELD&&typeof t.field==`string`&&typeof t.index==`string`){let e=`/${encodeURIComponent(t.index)}/_search`,n=t.field,r=typeof t.fieldType==`string`?t.fieldType:`unknown`,i=(t,n,r)=>q(`POST`,t,e,n,r),a=[i(`match`,{query:{match:{[n]:`<text>`}}},!1),i(`term`,{query:{term:{[n]:`<value>`}}},!1)];return(Ei.has(r)||Di.has(r))&&a.push(i(`range`,{query:{range:{[n]:{gte:`<from>`,lt:`<to>`}}}},!1)),a.push(i(`exists`,{query:{exists:{field:n}}},!0),i(`missing`,{query:{bool:{must_not:{exists:{field:n}}}}},!0)),Oi.has(r)||(a.push(i(`sort desc`,{size:20,sort:[{[n]:`desc`}]},!0)),a.push(i(`terms aggregation`,{size:0,aggs:{values:{terms:{field:n,size:50}}}},!0))),Ei.has(r)&&a.push(i(`stats aggregation`,{size:0,aggs:{stats:{stats:{field:n}}}},!0)),Di.has(r)&&a.push(i(`date_histogram`,{size:0,aggs:{per_month:{date_histogram:{field:n,calendar_interval:`month`}}}},!0)),(r===`text`||r===`match_only_text`)&&a.push(q(`POST`,`_analyze`,`/${encodeURIComponent(t.index)}/_analyze`,{field:n,text:`<text>`},!1)),a}return[]}function Ai(e){let t;try{t=Br(e)}catch{return null}if(t.method!==`GET`)return null;let n=/^\/([^/?]+)\/_doc\/([^/?]+)(?:\?.*)?$/.exec(t.path);if(!n)return null;try{return{database:decodeURIComponent(n[1]),name:decodeURIComponent(n[2])}}catch{return null}}var ji={language:`search-console`,split:Hr,classify(e){let t=Br(e);return{name:Qr(t),dataLoss:Zr(t),readOnly:Yr(t)}},redact:ti,changesTree:e=>!Yr(Br(e)),commands:[`GET`,`POST`,`PUT`,`DELETE`,`HEAD`],arguments:wi,inspect:async(e,t,n)=>Ti(n)},Mi={multipleDatabases:!1,schemas:!1,users:!1,procedures:!1,functions:!1,triggers:!1,events:!1,processList:!1,variables:!1,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!1};function Ni(e,t){return{kind:`search`,id:e,label:t,defaultPort:9200,capabilities:Mi,tree:si,console:ji,formHint:`connection.form.searchAuthHint`,rootActions:[{labelKey:`schema.root.createIndex`,command:`PUT /new-index
366
366
  {
367
367
  "settings": { "number_of_shards": 1 },
368
368
  "mappings": {
@@ -370,4 +370,4 @@ END;
370
370
  "name": { "type": "text" }
371
371
  }
372
372
  }
373
- }`,run:!1},{labelKey:`schema.root.clusterHealth`,command:`GET /_cluster/health`,run:!0},{labelKey:`schema.root.nodes`,command:`GET /_cat/nodes?format=json`,run:!0},{labelKey:`schema.root.shards`,command:`GET /_cat/shards?format=json&s=index`,run:!0},{labelKey:`schema.root.templates`,command:`GET /_index_template`,run:!0}],itemOfRow:e=>typeof e._index==`string`&&typeof e._id==`string`?{database:e._index,name:e._id}:null}}var oi=ai(`elasticsearch`,`Elasticsearch`),si=ai(`opensearch`,`OpenSearch`),ci={mysql:_t,maria:Ct,postgres:Kt,sqlite:sn,mssql:Dn,oracle:Gn,neon:Kn,supabase:qn,d1:Jn,do:Zn,redis:kr,elasticsearch:oi,opensearch:si},li=[_t,Ct,Kt,sn,Dn,Gn,Kn,qn,Jn,Zn,kr,oi,si];function ui(e){return e&&ci[e]||_t}function di(e){return ui(e?.dbms)}li.filter(u);var fi=e(i(),1),pi=/--[^\n]*|\/\*[\s\S]*?\*\/|\$([A-Za-z_]\w*)?\$[\s\S]*?\$\1\$|'(?:[^']|'')*'|"(?:[^"]|"")*"|\[[^\]]*\]|[A-Za-z_][\w$#]*|\S/g,mi=`'***'`,hi=/((?:password|pwd)\s*=\s*)[^;'"]+/gi;function gi(e){let t=[];for(let n of e.matchAll(pi)){let e=n[0];if(e.startsWith(`--`)||e.startsWith(`/*`))continue;let r=e[0],i=r===`'`||r===`"`||r===`$`?`literal`:/[A-Za-z_]/.test(r)?`word`:`other`;t.push({text:e,start:n.index,end:n.index+e.length,kind:i})}return t}var J=e=>e?.kind===`word`?e.text.toUpperCase():``;function _i(e){let t=gi(e),n=[],r=e=>{!e||e.kind===`other`||n.push({start:e.start,end:e.end,text:e.kind===`literal`?mi:`***`})},i=e=>{let n=t[e];return n?n.kind===`literal`?{token:n,span:1}:n.kind===`word`&&/^[NE]$/i.test(n.text)&&t[e+1]?.kind===`literal`?{token:t[e+1],span:2}:null:null};for(let e=0;e<t.length;e++){let a=t[e];if(a.kind===`literal`){hi.test(a.text)&&(hi.lastIndex=0,n.push({start:a.start,end:a.end,text:a.text.replace(hi,`$1***`)})),hi.lastIndex=0;continue}if(a.kind!==`word`)continue;let o=a.text.toUpperCase();if(o===`IDENTIFIED`){let n=e+1;if(J(t[n])===`WITH`&&(n+=2),J(t[n])!==`BY`&&J(t[n])!==`AS`||(n+=1,(J(t[n])===`PASSWORD`||J(t[n])===`VALUES`)&&(n+=1),J(t[n])===`RANDOM`))continue;let a=i(n);a?(r(a.token),n+=a.span):t[n]?.kind===`word`&&(r(t[n]),n+=1),J(t[n])===`REPLACE`&&r(i(n+1)?.token??t[n+1]);continue}if(o===`PASSWORD`){let n=e+1;if(t[n]?.text===`(`){r(i(n+1)?.token);continue}if(J(t[n])===`FOR`)for(;n<t.length&&t[n].text!==`=`;)n++;t[n]?.text===`=`&&(n+=1),r(i(n)?.token)}}if(n.length===0)return e;n.sort((e,t)=>e.start-t.start);let a=``,o=0;for(let t of n)t.start<o||(a+=e.slice(o,t.start)+t.text,o=t.end);return a+e.slice(o)}var vi=[_i,...new Set(li.flatMap(e=>`console`in e?[e.console.redact]:[]))];function Y(e){return vi.reduce((e,t)=>t(e),e)}var yi=`none`,bi={entries:[],turns:[]};function xi(e,t){return e[t]??bi}var Si=`The app was reloaded before this call finished. Its result is unknown; run it again if you still need it.`;function Ci(e){let t=new Set(e.filter(e=>e.role===`tool`).map(e=>e.toolCallId)),n=[];for(let r of e)if(n.push(r),r.role===`assistant`)for(let e of r.toolCalls??[])t.has(e.id)||n.push({role:`tool`,toolCallId:e.id,content:Si,isError:!0});return n}function wi(e){return e.map(e=>e.kind===`tool`&&(e.status===`running`||e.status===`pending`)?{...e,status:`error`,output:e.output??Si}:e)}function Ti(e){if(e.kind===`tool`){let t=Object.fromEntries(Object.entries(e.input).map(([e,t])=>[e,typeof t==`string`?Y(t):t]));return{...e,input:t,...e.output?{output:Y(e.output)}:{}}}return{...e,text:Y(e.text)}}function Ei(e){return e.role===`tool`||e.role===`user`?{...e,content:Y(e.content)}:{...e,content:Y(e.content),...e.toolCalls?{toolCalls:e.toolCalls.map(e=>({...e,input:Object.fromEntries(Object.entries(e.input).map(([e,t])=>[e,typeof t==`string`?Y(t):t]))}))}:{}}}function Di(e,t,n){return{...e,[t]:n(xi(e,t))}}function Oi(e){let t=e??{},n=t.entries??[],r=t.turns??[];return n.length===0&&r.length===0?{conversations:{}}:{conversations:{[yi]:{entries:n,turns:r}}}}var ki=o()(s((e,t)=>({conversations:{},key:yi,busy:!1,pending:null,cancelled:!1,run:null,push:(t,n)=>e(e=>({conversations:Di(e.conversations,t,e=>({...e,entries:[...e.entries,n]}))})),pushTurn:(t,n)=>e(e=>({conversations:Di(e.conversations,t,e=>({...e,turns:[...e.turns,n]}))})),updateTool:(t,n)=>e(e=>{let r={};for(let[i,a]of Object.entries(e.conversations))r[i]=a.entries.some(e=>e.kind===`tool`&&e.id===t)?{...a,entries:a.entries.map(e=>e.kind===`tool`&&e.id===t?{...e,...n}:e)}:a;return{conversations:r}}),setConversation:t=>e(e=>e.key===t?{}:{key:t}),clearConversation:t=>e(e=>{if(!(t in e.conversations))return{};let n={...e.conversations};return delete n[t],{conversations:n}}),setBusy:t=>e({busy:t,...t?{cancelled:!1,run:new AbortController}:{run:null}}),setPending:t=>e({pending:t}),cancel:()=>{t().run?.abort(),e({cancelled:!0})},reset:()=>e(e=>({conversations:Di(e.conversations,e.key,()=>({entries:[],turns:[]})),busy:!1,pending:null,cancelled:!1}))}),{name:`planche-ai`,version:1,storage:l(),migrate:(e,t)=>t===0?Oi(e):e,partialize:e=>({conversations:d.getState().persistQueryHistory?Object.fromEntries(Object.entries(e.conversations).map(([e,t])=>[e,{entries:t.entries.map(Ti),turns:t.turns.map(Ei)}])):{}}),onRehydrateStorage:()=>e=>{e&&(e.conversations=Object.fromEntries(Object.entries(e.conversations??{}).map(([e,t])=>[e,{entries:wi(t.entries),turns:Ci(t.turns)}])))}})),Ai=`planche-session-credentials`;function ji(){try{let e=sessionStorage.getItem(Ai);return e?JSON.parse(e):{}}catch{return{}}}function Mi(e){try{sessionStorage.setItem(Ai,JSON.stringify(e))}catch{}}function Ni(e){return{pass:e.pass||void 0,sshPassword:e.ssh?.password||void 0,sshPassphrase:e.ssh?.passphrase||void 0,sshPrivateKey:e.ssh?.privateKey||void 0,authToken:e.authToken||void 0}}function Pi(e){return!(e.dbms===`sqlite`||e.dbms===`do`||e.gatewayProfile||e.dbms===`d1`&&e.devUrl)}function Fi(e){let t={...e,pass:``,authToken:``};return e.ssh&&(t.ssh={...e.ssh,password:void 0,passphrase:void 0,privateKey:void 0}),t}function Ii(e,t){let n={...e,pass:e.pass||t.pass||``,authToken:e.authToken||t.authToken||``};return e.ssh&&(n.ssh={...e.ssh,password:e.ssh.password||t.sshPassword,passphrase:e.ssh.passphrase||t.sshPassphrase,privateKey:e.ssh.privateKey||t.sshPrivateKey}),n}function Li(e,t){let n=ji(),r=Object.fromEntries(Object.entries(t).filter(([,e])=>e));Object.keys(r).length?n[e]=r:delete n[e],Mi(n)}function Ri(e){let t=ji()[e];if(t!==void 0)return typeof t==`string`?{pass:t}:t}function zi(e){let t=ji();delete t[e],Mi(t)}function Bi(e){return!e.sample&&!e.scratchpad}function Vi(e){return e.filter(Bi).map(e=>e.savePassword===!1?Fi(e):e)}function Hi(){return{v:1,profiles:{},tombstones:{},links:{}}}function Ui(){return{profiles:{},tombstones:{},links:{}}}function Wi(e){let t=Ui();for(let[n,r]of Object.entries(e.profiles))t.profiles[n]=r.updatedAt;for(let[n,r]of Object.entries(e.links))t.links[n]=r.updatedAt;return t.tombstones={...e.tombstones},t}function Gi(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.v===1&&!!t.profiles&&!!t.tombstones&&!!t.links}function Ki(e,t,n,r){let i=Hi(),a=new Set;for(let t of e.filter(Bi))a.add(t.id),i.profiles[t.id]={updatedAt:n.profiles[t.id]??r,profile:t};for(let[e,t]of Object.entries(n.tombstones))a.has(e)||(i.tombstones[e]=t);for(let[e,o]of Object.entries(t))!a.has(e)||o.length===0||(i.links[e]={updatedAt:n.links[e]??r,links:o});return i}function qi(e,t){let n=Hi();n.tombstones={...e.tombstones};for(let[e,r]of Object.entries(t.tombstones))n.tombstones[e]=Math.max(r,n.tombstones[e]??0);for(let r of Yi(e.profiles,t.profiles)){let i=Xi(e.profiles[r],t.profiles[r]),a=n.tombstones[r];a!==void 0&&a>=i.updatedAt||(delete n.tombstones[r],n.profiles[r]=i)}for(let r of Yi(e.links,t.links))n.profiles[r]&&(n.links[r]=Xi(e.links[r],t.links[r]));return n}function Ji(e){let t={};for(let[n,r]of Object.entries(e.links))t[n]=r.links;return{profiles:Object.values(e.profiles).map(e=>e.profile),links:t}}function Yi(e,t){return[...new Set([...Object.keys(e),...Object.keys(t)])]}function Xi(e,t){return e?t&&t.updatedAt>=e.updatedAt?t:e:t}var Zi=1,Qi=1e3,$i=e=>`planche-schema-cache:${e}`;function ea(e){return[e.dbms,e.host,e.port,e.user,e.database??``,e.file??``,e.accountId??``,e.databaseId??``,e.devUrl??``,e.ssh?.host??``,e.gatewayProfile??``].join(`\0`)}function ta(e){return!e.serverConnectionId?.startsWith(`browser:`)&&ui(e.dbms).tree.cacheable!==!1}var na=new Set([p.TABLE,p.VIEW,p.PROCEDURE,p.FUNCTION,p.TRIGGER,p.EVENT,p.USER]);function ra(e){return e.map(e=>na.has(e.type)?{...e,children:[],isExpanded:!1,isLoading:!1}:{...e,isLoading:!1,children:ra(e.children)})}async function ia(e,t){try{let n=await c.getItem($i(e));if(!n)return null;let r=JSON.parse(n);return r.v!==Zi||r.target!==t||!Array.isArray(r.nodes)?null:r.nodes}catch{return null}}var X=new Map;function aa(e,t,n){clearTimeout(X.get(e)),X.set(e,setTimeout(()=>{X.delete(e);let r={v:Zi,target:t,savedAt:Date.now(),nodes:ra(n)};c.setItem($i(e),JSON.stringify(r))},Qi))}async function oa(e){clearTimeout(X.get(e)),X.delete(e),await c.removeItem($i(e))}var sa=o()(s((e,t)=>({profiles:{},tombstones:{},links:{},touchProfile:(t,n=Date.now())=>e(e=>{let r={...e.tombstones};return delete r[t],{profiles:{...e.profiles,[t]:n},tombstones:r}}),dropProfile:(t,n=Date.now())=>e(e=>{let r={...e.profiles};delete r[t];let i={...e.links};return delete i[t],{profiles:r,links:i,tombstones:{...e.tombstones,[t]:n}}}),touchLinks:(t,n=Date.now())=>e(e=>({links:{...e.links,[t]:n}})),adopt:t=>e({profiles:{...t.profiles},tombstones:{...t.tombstones},links:{...t.links}}),read:(e=Date.now())=>{let{profiles:n,tombstones:r,links:i}=t(),a={};for(let[t,n]of Object.entries(r))e-n<7776e6&&(a[t]=n);return{profiles:n,tombstones:a,links:i}}}),{name:`planche-sync-meta`,storage:l()})),ca=e=>sa.getState().touchProfile(e),la=e=>sa.getState().dropProfile(e),ua=e=>sa.getState().touchLinks(e),da=()=>new Date().toISOString().slice(0,7);function fa(e,t){let n=e?.month===t;return{total:(e?.total??0)+1,month:t,monthTotal:n?e.monthTotal+1:1}}var Z=o()(s((e,t)=>({features:{},countFeatureUse:n=>{let r=fa(t().features[n],da());return e(e=>({features:{...e.features,[n]:r}})),r},opportunities:{},countOpportunity:n=>{let r=fa(t().opportunities[n],da());return e(e=>({opportunities:{...e.opportunities,[n]:r}})),r}}),{name:`planche-usage`,storage:l()}));function pa(e){let i=Z.getState().countFeatureUse(e);r(`pro_feature_use`,{feature:e,uses:a(i.total),uses_this_month:a(i.monthTotal),first_use:i.total===1}),i.total===1&&t({pro_features:n(Object.keys(Z.getState().features).length)})}function ma(e){let t=Z.getState().countOpportunity(e);r(`explain_opportunity`,{kind:e,seen:a(t.total),seen_this_month:a(t.monthTotal)})}function ha(e,t){let n=(0,fi.useRef)(null),[r,i]=(0,fi.useState)(null),a=(0,fi.useCallback)(()=>{n.current=null,i(null)},[]),o=e=>{let t=e.currentTarget.getBoundingClientRect();return{before:e.clientX<t.left+t.width/2}};return{dragProps:(0,fi.useCallback)(r=>({draggable:!0,onDragStart:e=>{n.current=r,e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,r)},onDragOver:t=>{if(!n.current||n.current===r)return;t.preventDefault(),t.dataTransfer.dropEffect=`move`;let{before:a}=o(t),s=e.indexOf(r),c=a?r:e[s+1]??`end`;i(e=>e===c?e:c)},onDrop:i=>{let s=n.current;if(!s||s===r)return a();i.preventDefault();let{before:c}=o(i),l=e.filter(e=>e!==s).indexOf(r);c||(l+=1),t(s,l),a()},onDragEnd:a}),[e,t,a]),dropIndicator:r,isDragging:()=>n.current!==null}}function ga(e,t,n){let r=e.find(e=>e.id===t);if(!r)return e;let i=e.filter(e=>e.id!==t),a=Math.max(0,Math.min(n,i.length));return[...i.slice(0,a),r,...i.slice(a)]}var _a=2e4;function va(e){let t=e.slice(0,400),n=0;for(let e=0;e<t.length;e++)if(n+=t[e].text.length,n>15e5)return t.slice(0,Math.max(1,e));return t}function ya(e,t){return e.find(e=>e.docId===t)}var Q=o()(s(e=>({revisions:{},importedLegacy:!1,capture:(t,{docId:n,title:r,text:i,database:a,reason:o})=>e(e=>{let s=Y(i);if(!s.trim())return{};let c=e.revisions[t]??[];if(ya(c,n)?.text===s)return{};let l={id:crypto.randomUUID(),docId:n,title:r,text:s,database:a,timestamp:Date.now(),reason:o};return{revisions:{...e.revisions,[t]:va([l,...c])}}}),removeRevision:(t,n)=>e(e=>({revisions:{...e.revisions,[t]:(e.revisions[t]??[]).filter(e=>e.id!==n)}})),clearRevisions:t=>e(e=>{let n={...e.revisions};return delete n[t],{revisions:n}}),mergeRevisions:t=>e(e=>{let n={...e.revisions};for(let[e,r]of Object.entries(t))n[e]=va([...n[e]??[],...r].sort((e,t)=>t.timestamp-e.timestamp));return{revisions:n,importedLegacy:!0}})}),{name:`planche-revisions`,storage:l(),version:1,partialize:e=>({revisions:d.getState().persistQueryHistory?e.revisions:{},importedLegacy:e.importedLegacy}),onRehydrateStorage:()=>e=>{!e||e.importedLegacy||xa()}}));function ba(e,t){let n={};for(let[r,i]of Object.entries(e.snapshots??{})){let a=new Map((e.tabs?.[r]??[]).map(e=>[e.id,e.title])),o=[];for(let[e,n]of Object.entries(i??{}))for(let r of n??[])r?.text?.trim()&&o.push({id:crypto.randomUUID(),docId:e,title:a.get(e)??t,text:r.text,database:``,timestamp:r.timestamp,reason:r.reason});o.length>0&&(n[r]=o.sort((e,t)=>t.timestamp-e.timestamp))}return n}async function xa(){try{let e=await c.getItem(`planche-query`);if(!e){Q.setState({importedLegacy:!0});return}let t=ba(JSON.parse(e).state??{},`Query`);Q.getState().mergeRevisions(t)}catch{Q.setState({importedLegacy:!0})}}var $=new Map;function Sa(e,t){let n=`${e}:${t.docId}`,r=$.get(n);r&&clearTimeout(r),$.set(n,setTimeout(()=>{$.delete(n),Q.getState().capture(e,t)},_a))}function Ca(e,t){let n=`${e}:${t}`,r=$.get(n);r&&(clearTimeout(r),$.delete(n))}function wa(e){return e.savePassword===!1?Fi(e):e}function Ta(e){return Fi(e)}var Ea=o()(s((e,t)=>({savedConnections:[],activeConnections:[],activeConnectionId:null,transactionOpen:{},pendingReopen:{},fileDetached:{},addSavedConnection:t=>{ca(t.id),t.savePassword===!1&&Li(t.id,Ni(t)),e(e=>({savedConnections:[...e.savedConnections,t]}))},updateSavedConnection:(n,r)=>{let i={...t().savedConnections.find(e=>e.id===n),...r};i.savePassword===!1&&Li(n,Ni(i)),e(e=>({savedConnections:e.savedConnections.map(e=>e.id===n?{...e,...r}:e)}))},deleteSavedConnection:t=>{la(t),zi(t),Q.getState().clearRevisions(t),ki.getState().clearConversation(t),oa(t),e(e=>({savedConnections:e.savedConnections.filter(e=>e.id!==t)}))},openConnection:t=>e(e=>{let n=e.activeConnections.some(e=>e.id===t.id),i={...e.pendingReopen};return delete i[t.id],n?{activeConnections:e.activeConnections.map(e=>e.id===t.id?{...e,...t}:e),activeConnectionId:t.id,pendingReopen:i}:(r(`connection_open`,{dbms:t.dbms,transport:t.transport??`tunnel`,sample:!!t.sample,ssh:!!t.ssh?.enabled}),t.ssh?.enabled&&pa(`ssh_tunnel`),{activeConnections:[...e.activeConnections,t],activeConnectionId:t.id,pendingReopen:i})}),closeConnection:t=>e(e=>{let n=e.activeConnections.filter(e=>e.id!==t),r=e.activeConnectionId===t?n.length>0?n[n.length-1].id:null:e.activeConnectionId,i={...e.transactionOpen},a={...e.pendingReopen},o={...e.fileDetached};return delete i[t],delete a[t],delete o[t],{activeConnections:n,activeConnectionId:r,transactionOpen:i,pendingReopen:a,fileDetached:o}}),reorderActiveConnection:(t,n)=>e(e=>({activeConnections:ga(e.activeConnections,t,n)})),setActiveConnection:t=>e({activeConnectionId:t}),updateServerConnectionId:(t,n)=>e(e=>({activeConnections:e.activeConnections.map(e=>e.id===t?{...e,serverConnectionId:n}:e)})),updateProfile:(t,n)=>(ca(t),e(e=>({savedConnections:e.savedConnections.map(e=>e.id===t?{...e,...n}:e),activeConnections:e.activeConnections.map(e=>e.id===t?{...e,...n}:e)}))),setTransactionOpen:(t,n)=>e(e=>({transactionOpen:{...e.transactionOpen,[t]:n}})),setPendingReopen:(t,n)=>e(e=>({pendingReopen:{...e.pendingReopen,[t]:n}})),setFileDetached:(t,n)=>e(e=>({fileDetached:{...e.fileDetached,[t]:n}})),applySyncedProfiles:n=>{let r=new Map(n.map(e=>[e.id,e])),i=t().savedConnections,a=i.filter(e=>!Bi(e)&&!r.has(e.id));for(let e of n)e.savePassword===!1&&Li(e.id,Ni(e));for(let e of i)Bi(e)&&!r.has(e.id)&&zi(e.id);e({savedConnections:[...a,...n]})},resolveCredentials:e=>{let n=t().savedConnections.find(t=>t.id===e.id);return Ii(n?Ii(e,Ni(n)):e,Ri(e.id)??{})}}),{name:`planche-connections`,storage:l(),version:1,migrate:e=>{let t=e;return Array.isArray(t.savedConnections)&&(t.savedConnections=t.savedConnections.map(e=>({...e,savePassword:e.savePassword??!0}))),t},partialize:e=>({savedConnections:e.savedConnections.map(wa),activeConnections:e.activeConnections.map(Ta),activeConnectionId:e.activeConnectionId})}));export{li as A,Pi as C,ki as D,xi as E,q as F,_ as I,h as L,di as M,ti as N,Y as O,Dr as P,p as R,Vi as S,yi as T,Ki as _,ga as a,Wi as b,pa as c,sa as d,oa as f,ea as g,aa as h,Q as i,ui as j,_i as k,Z as l,ia as m,Ca as n,ha as o,ta as p,Sa as r,ma as s,Ea as t,ua as u,Gi as v,Fi as w,Ji as x,qi as y};
373
+ }`,run:!1},{labelKey:`schema.root.clusterHealth`,command:`GET /_cluster/health`,run:!0},{labelKey:`schema.root.nodes`,command:`GET /_cat/nodes?format=json`,run:!0},{labelKey:`schema.root.shards`,command:`GET /_cat/shards?format=json&s=index`,run:!0},{labelKey:`schema.root.templates`,command:`GET /_index_template`,run:!0}],nodeRequests:ki,gridEdits:xi,itemOfCommand:Ai,itemOfRow:e=>typeof e._index==`string`&&typeof e._id==`string`?{database:e._index,name:e._id}:null}}var Pi=Ni(`elasticsearch`,`Elasticsearch`),Fi=Ni(`opensearch`,`OpenSearch`),Ii={mysql:yt,maria:Tt,postgres:Jt,sqlite:dn,mssql:jn,oracle:Yn,neon:Xn,supabase:Zn,d1:Qn,do:tr,redis:Lr,elasticsearch:Pi,opensearch:Fi},Li=[yt,Tt,Jt,dn,jn,Yn,Xn,Zn,Qn,tr,Lr,Pi,Fi];function Ri(e){return e&&Ii[e]||yt}function zi(e){return Ri(e?.dbms)}Li.filter(u);var Bi=e(i(),1),Vi=/--[^\n]*|\/\*[\s\S]*?\*\/|\$([A-Za-z_]\w*)?\$[\s\S]*?\$\1\$|'(?:[^']|'')*'|"(?:[^"]|"")*"|\[[^\]]*\]|[A-Za-z_][\w$#]*|\S/g,Hi=`'***'`,Ui=/((?:password|pwd)\s*=\s*)[^;'"]+/gi;function Wi(e){let t=[];for(let n of e.matchAll(Vi)){let e=n[0];if(e.startsWith(`--`)||e.startsWith(`/*`))continue;let r=e[0],i=r===`'`||r===`"`||r===`$`?`literal`:/[A-Za-z_]/.test(r)?`word`:`other`;t.push({text:e,start:n.index,end:n.index+e.length,kind:i})}return t}var J=e=>e?.kind===`word`?e.text.toUpperCase():``;function Gi(e){let t=Wi(e),n=[],r=e=>{!e||e.kind===`other`||n.push({start:e.start,end:e.end,text:e.kind===`literal`?Hi:`***`})},i=e=>{let n=t[e];return n?n.kind===`literal`?{token:n,span:1}:n.kind===`word`&&/^[NE]$/i.test(n.text)&&t[e+1]?.kind===`literal`?{token:t[e+1],span:2}:null:null};for(let e=0;e<t.length;e++){let a=t[e];if(a.kind===`literal`){Ui.test(a.text)&&(Ui.lastIndex=0,n.push({start:a.start,end:a.end,text:a.text.replace(Ui,`$1***`)})),Ui.lastIndex=0;continue}if(a.kind!==`word`)continue;let o=a.text.toUpperCase();if(o===`IDENTIFIED`){let n=e+1;if(J(t[n])===`WITH`&&(n+=2),J(t[n])!==`BY`&&J(t[n])!==`AS`||(n+=1,(J(t[n])===`PASSWORD`||J(t[n])===`VALUES`)&&(n+=1),J(t[n])===`RANDOM`))continue;let a=i(n);a?(r(a.token),n+=a.span):t[n]?.kind===`word`&&(r(t[n]),n+=1),J(t[n])===`REPLACE`&&r(i(n+1)?.token??t[n+1]);continue}if(o===`PASSWORD`){let n=e+1;if(t[n]?.text===`(`){r(i(n+1)?.token);continue}if(J(t[n])===`FOR`)for(;n<t.length&&t[n].text!==`=`;)n++;t[n]?.text===`=`&&(n+=1),r(i(n)?.token)}}if(n.length===0)return e;n.sort((e,t)=>e.start-t.start);let a=``,o=0;for(let t of n)t.start<o||(a+=e.slice(o,t.start)+t.text,o=t.end);return a+e.slice(o)}var Ki=[Gi,...new Set(Li.flatMap(e=>`console`in e?[e.console.redact]:[]))];function Y(e){return Ki.reduce((e,t)=>t(e),e)}var qi=`none`,Ji={entries:[],turns:[]};function Yi(e,t){return e[t]??Ji}var Xi=`The app was reloaded before this call finished. Its result is unknown; run it again if you still need it.`;function Zi(e){let t=new Set(e.filter(e=>e.role===`tool`).map(e=>e.toolCallId)),n=[];for(let r of e)if(n.push(r),r.role===`assistant`)for(let e of r.toolCalls??[])t.has(e.id)||n.push({role:`tool`,toolCallId:e.id,content:Xi,isError:!0});return n}function Qi(e){return e.map(e=>e.kind===`tool`&&(e.status===`running`||e.status===`pending`)?{...e,status:`error`,output:e.output??Xi}:e)}function $i(e){if(e.kind===`tool`){let t=Object.fromEntries(Object.entries(e.input).map(([e,t])=>[e,typeof t==`string`?Y(t):t]));return{...e,input:t,...e.output?{output:Y(e.output)}:{}}}return{...e,text:Y(e.text)}}function ea(e){return e.role===`tool`||e.role===`user`?{...e,content:Y(e.content)}:{...e,content:Y(e.content),...e.toolCalls?{toolCalls:e.toolCalls.map(e=>({...e,input:Object.fromEntries(Object.entries(e.input).map(([e,t])=>[e,typeof t==`string`?Y(t):t]))}))}:{}}}function ta(e,t,n){return{...e,[t]:n(Yi(e,t))}}function na(e){let t=e??{},n=t.entries??[],r=t.turns??[];return n.length===0&&r.length===0?{conversations:{}}:{conversations:{[qi]:{entries:n,turns:r}}}}var ra=o()(s((e,t)=>({conversations:{},key:qi,busy:!1,pending:null,cancelled:!1,run:null,push:(t,n)=>e(e=>({conversations:ta(e.conversations,t,e=>({...e,entries:[...e.entries,n]}))})),pushTurn:(t,n)=>e(e=>({conversations:ta(e.conversations,t,e=>({...e,turns:[...e.turns,n]}))})),updateTool:(t,n)=>e(e=>{let r={};for(let[i,a]of Object.entries(e.conversations))r[i]=a.entries.some(e=>e.kind===`tool`&&e.id===t)?{...a,entries:a.entries.map(e=>e.kind===`tool`&&e.id===t?{...e,...n}:e)}:a;return{conversations:r}}),setConversation:t=>e(e=>e.key===t?{}:{key:t}),clearConversation:t=>e(e=>{if(!(t in e.conversations))return{};let n={...e.conversations};return delete n[t],{conversations:n}}),setBusy:t=>e({busy:t,...t?{cancelled:!1,run:new AbortController}:{run:null}}),setPending:t=>e({pending:t}),cancel:()=>{t().run?.abort(),e({cancelled:!0})},reset:()=>e(e=>({conversations:ta(e.conversations,e.key,()=>({entries:[],turns:[]})),busy:!1,pending:null,cancelled:!1}))}),{name:`planche-ai`,version:1,storage:l(),migrate:(e,t)=>t===0?na(e):e,partialize:e=>({conversations:d.getState().persistQueryHistory?Object.fromEntries(Object.entries(e.conversations).map(([e,t])=>[e,{entries:t.entries.map($i),turns:t.turns.map(ea)}])):{}}),onRehydrateStorage:()=>e=>{e&&(e.conversations=Object.fromEntries(Object.entries(e.conversations??{}).map(([e,t])=>[e,{entries:Qi(t.entries),turns:Zi(t.turns)}])))}})),ia=`planche-session-credentials`;function aa(){try{let e=sessionStorage.getItem(ia);return e?JSON.parse(e):{}}catch{return{}}}function oa(e){try{sessionStorage.setItem(ia,JSON.stringify(e))}catch{}}function X(e){return{pass:e.pass||void 0,sshPassword:e.ssh?.password||void 0,sshPassphrase:e.ssh?.passphrase||void 0,sshPrivateKey:e.ssh?.privateKey||void 0,authToken:e.authToken||void 0}}function sa(e){return!(e.dbms===`sqlite`||e.dbms===`do`||e.gatewayProfile||e.dbms===`d1`&&e.devUrl)}function ca(e){let t={...e,pass:``,authToken:``};return e.ssh&&(t.ssh={...e.ssh,password:void 0,passphrase:void 0,privateKey:void 0}),t}function la(e,t){let n={...e,pass:e.pass||t.pass||``,authToken:e.authToken||t.authToken||``};return e.ssh&&(n.ssh={...e.ssh,password:e.ssh.password||t.sshPassword,passphrase:e.ssh.passphrase||t.sshPassphrase,privateKey:e.ssh.privateKey||t.sshPrivateKey}),n}function ua(e,t){let n=aa(),r=Object.fromEntries(Object.entries(t).filter(([,e])=>e));Object.keys(r).length?n[e]=r:delete n[e],oa(n)}function da(e){let t=aa()[e];if(t!==void 0)return typeof t==`string`?{pass:t}:t}function fa(e){let t=aa();delete t[e],oa(t)}function pa(e){return!e.sample&&!e.scratchpad}function ma(e){return e.filter(pa).map(e=>e.savePassword===!1?ca(e):e)}function ha(){return{v:1,profiles:{},tombstones:{},links:{}}}function ga(){return{profiles:{},tombstones:{},links:{}}}function _a(e){let t=ga();for(let[n,r]of Object.entries(e.profiles))t.profiles[n]=r.updatedAt;for(let[n,r]of Object.entries(e.links))t.links[n]=r.updatedAt;return t.tombstones={...e.tombstones},t}function va(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.v===1&&!!t.profiles&&!!t.tombstones&&!!t.links}function ya(e,t,n,r){let i=ha(),a=new Set;for(let t of e.filter(pa))a.add(t.id),i.profiles[t.id]={updatedAt:n.profiles[t.id]??r,profile:t};for(let[e,t]of Object.entries(n.tombstones))a.has(e)||(i.tombstones[e]=t);for(let[e,o]of Object.entries(t))!a.has(e)||o.length===0||(i.links[e]={updatedAt:n.links[e]??r,links:o});return i}function ba(e,t){let n=ha();n.tombstones={...e.tombstones};for(let[e,r]of Object.entries(t.tombstones))n.tombstones[e]=Math.max(r,n.tombstones[e]??0);for(let r of Sa(e.profiles,t.profiles)){let i=Ca(e.profiles[r],t.profiles[r]),a=n.tombstones[r];a!==void 0&&a>=i.updatedAt||(delete n.tombstones[r],n.profiles[r]=i)}for(let r of Sa(e.links,t.links))n.profiles[r]&&(n.links[r]=Ca(e.links[r],t.links[r]));return n}function xa(e){let t={};for(let[n,r]of Object.entries(e.links))t[n]=r.links;return{profiles:Object.values(e.profiles).map(e=>e.profile),links:t}}function Sa(e,t){return[...new Set([...Object.keys(e),...Object.keys(t)])]}function Ca(e,t){return e?t&&t.updatedAt>=e.updatedAt?t:e:t}var wa=1,Ta=1e3,Ea=e=>`planche-schema-cache:${e}`;function Da(e){return[e.dbms,e.host,e.port,e.user,e.database??``,e.file??``,e.accountId??``,e.databaseId??``,e.devUrl??``,e.ssh?.host??``,e.gatewayProfile??``].join(`\0`)}function Oa(e){return!e.serverConnectionId?.startsWith(`browser:`)&&Ri(e.dbms).tree.cacheable!==!1}var ka=new Set([p.TABLE,p.VIEW,p.PROCEDURE,p.FUNCTION,p.TRIGGER,p.EVENT,p.USER]);function Aa(e){return e.map(e=>ka.has(e.type)?{...e,children:[],isExpanded:!1,isLoading:!1}:{...e,isLoading:!1,children:Aa(e.children)})}async function ja(e,t){try{let n=await c.getItem(Ea(e));if(!n)return null;let r=JSON.parse(n);return r.v!==wa||r.target!==t||!Array.isArray(r.nodes)?null:r.nodes}catch{return null}}var Z=new Map;function Ma(e,t,n){clearTimeout(Z.get(e)),Z.set(e,setTimeout(()=>{Z.delete(e);let r={v:wa,target:t,savedAt:Date.now(),nodes:Aa(n)};c.setItem(Ea(e),JSON.stringify(r))},Ta))}async function Na(e){clearTimeout(Z.get(e)),Z.delete(e),await c.removeItem(Ea(e))}var Pa=o()(s((e,t)=>({profiles:{},tombstones:{},links:{},touchProfile:(t,n=Date.now())=>e(e=>{let r={...e.tombstones};return delete r[t],{profiles:{...e.profiles,[t]:n},tombstones:r}}),dropProfile:(t,n=Date.now())=>e(e=>{let r={...e.profiles};delete r[t];let i={...e.links};return delete i[t],{profiles:r,links:i,tombstones:{...e.tombstones,[t]:n}}}),touchLinks:(t,n=Date.now())=>e(e=>({links:{...e.links,[t]:n}})),adopt:t=>e({profiles:{...t.profiles},tombstones:{...t.tombstones},links:{...t.links}}),read:(e=Date.now())=>{let{profiles:n,tombstones:r,links:i}=t(),a={};for(let[t,n]of Object.entries(r))e-n<7776e6&&(a[t]=n);return{profiles:n,tombstones:a,links:i}}}),{name:`planche-sync-meta`,storage:l()})),Fa=e=>Pa.getState().touchProfile(e),Ia=e=>Pa.getState().dropProfile(e),La=e=>Pa.getState().touchLinks(e),Ra=()=>new Date().toISOString().slice(0,7);function za(e,t){let n=e?.month===t;return{total:(e?.total??0)+1,month:t,monthTotal:n?e.monthTotal+1:1}}var Ba=o()(s((e,t)=>({features:{},countFeatureUse:n=>{let r=za(t().features[n],Ra());return e(e=>({features:{...e.features,[n]:r}})),r},opportunities:{},countOpportunity:n=>{let r=za(t().opportunities[n],Ra());return e(e=>({opportunities:{...e.opportunities,[n]:r}})),r}}),{name:`planche-usage`,storage:l()}));function Va(e){let i=Ba.getState().countFeatureUse(e);r(`pro_feature_use`,{feature:e,uses:a(i.total),uses_this_month:a(i.monthTotal),first_use:i.total===1}),i.total===1&&t({pro_features:n(Object.keys(Ba.getState().features).length)})}function Ha(e){let t=Ba.getState().countOpportunity(e);r(`explain_opportunity`,{kind:e,seen:a(t.total),seen_this_month:a(t.monthTotal)})}function Ua(e,t){let n=(0,Bi.useRef)(null),[r,i]=(0,Bi.useState)(null),a=(0,Bi.useCallback)(()=>{n.current=null,i(null)},[]),o=e=>{let t=e.currentTarget.getBoundingClientRect();return{before:e.clientX<t.left+t.width/2}};return{dragProps:(0,Bi.useCallback)(r=>({draggable:!0,onDragStart:e=>{n.current=r,e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,r)},onDragOver:t=>{if(!n.current||n.current===r)return;t.preventDefault(),t.dataTransfer.dropEffect=`move`;let{before:a}=o(t),s=e.indexOf(r),c=a?r:e[s+1]??`end`;i(e=>e===c?e:c)},onDrop:i=>{let s=n.current;if(!s||s===r)return a();i.preventDefault();let{before:c}=o(i),l=e.filter(e=>e!==s).indexOf(r);c||(l+=1),t(s,l),a()},onDragEnd:a}),[e,t,a]),dropIndicator:r,isDragging:()=>n.current!==null}}function Wa(e,t,n){let r=e.find(e=>e.id===t);if(!r)return e;let i=e.filter(e=>e.id!==t),a=Math.max(0,Math.min(n,i.length));return[...i.slice(0,a),r,...i.slice(a)]}var Ga=2e4;function Ka(e){let t=e.slice(0,400),n=0;for(let e=0;e<t.length;e++)if(n+=t[e].text.length,n>15e5)return t.slice(0,Math.max(1,e));return t}function qa(e,t){return e.find(e=>e.docId===t)}var Q=o()(s(e=>({revisions:{},importedLegacy:!1,capture:(t,{docId:n,title:r,text:i,database:a,reason:o})=>e(e=>{let s=Y(i);if(!s.trim())return{};let c=e.revisions[t]??[];if(qa(c,n)?.text===s)return{};let l={id:crypto.randomUUID(),docId:n,title:r,text:s,database:a,timestamp:Date.now(),reason:o};return{revisions:{...e.revisions,[t]:Ka([l,...c])}}}),removeRevision:(t,n)=>e(e=>({revisions:{...e.revisions,[t]:(e.revisions[t]??[]).filter(e=>e.id!==n)}})),clearRevisions:t=>e(e=>{let n={...e.revisions};return delete n[t],{revisions:n}}),mergeRevisions:t=>e(e=>{let n={...e.revisions};for(let[e,r]of Object.entries(t))n[e]=Ka([...n[e]??[],...r].sort((e,t)=>t.timestamp-e.timestamp));return{revisions:n,importedLegacy:!0}})}),{name:`planche-revisions`,storage:l(),version:1,partialize:e=>({revisions:d.getState().persistQueryHistory?e.revisions:{},importedLegacy:e.importedLegacy}),onRehydrateStorage:()=>e=>{!e||e.importedLegacy||Ya()}}));function Ja(e,t){let n={};for(let[r,i]of Object.entries(e.snapshots??{})){let a=new Map((e.tabs?.[r]??[]).map(e=>[e.id,e.title])),o=[];for(let[e,n]of Object.entries(i??{}))for(let r of n??[])r?.text?.trim()&&o.push({id:crypto.randomUUID(),docId:e,title:a.get(e)??t,text:r.text,database:``,timestamp:r.timestamp,reason:r.reason});o.length>0&&(n[r]=o.sort((e,t)=>t.timestamp-e.timestamp))}return n}async function Ya(){try{let e=await c.getItem(`planche-query`);if(!e){Q.setState({importedLegacy:!0});return}let t=Ja(JSON.parse(e).state??{},`Query`);Q.getState().mergeRevisions(t)}catch{Q.setState({importedLegacy:!0})}}var $=new Map;function Xa(e,t){let n=`${e}:${t.docId}`,r=$.get(n);r&&clearTimeout(r),$.set(n,setTimeout(()=>{$.delete(n),Q.getState().capture(e,t)},Ga))}function Za(e,t){let n=`${e}:${t}`,r=$.get(n);r&&(clearTimeout(r),$.delete(n))}function Qa(e){return e.savePassword===!1?ca(e):e}function $a(e){return ca(e)}var eo=o()(s((e,t)=>({savedConnections:[],activeConnections:[],activeConnectionId:null,transactionOpen:{},pendingReopen:{},fileDetached:{},addSavedConnection:t=>{Fa(t.id),t.savePassword===!1&&ua(t.id,X(t)),e(e=>({savedConnections:[...e.savedConnections,t]}))},updateSavedConnection:(n,r)=>{let i={...t().savedConnections.find(e=>e.id===n),...r};i.savePassword===!1&&ua(n,X(i)),e(e=>({savedConnections:e.savedConnections.map(e=>e.id===n?{...e,...r}:e)}))},deleteSavedConnection:t=>{Ia(t),fa(t),Q.getState().clearRevisions(t),ra.getState().clearConversation(t),Na(t),e(e=>({savedConnections:e.savedConnections.filter(e=>e.id!==t)}))},openConnection:t=>e(e=>{let n=e.activeConnections.some(e=>e.id===t.id),i={...e.pendingReopen};return delete i[t.id],n?{activeConnections:e.activeConnections.map(e=>e.id===t.id?{...e,...t}:e),activeConnectionId:t.id,pendingReopen:i}:(r(`connection_open`,{dbms:t.dbms,transport:t.transport??`tunnel`,sample:!!t.sample,ssh:!!t.ssh?.enabled}),t.ssh?.enabled&&Va(`ssh_tunnel`),{activeConnections:[...e.activeConnections,t],activeConnectionId:t.id,pendingReopen:i})}),closeConnection:t=>e(e=>{let n=e.activeConnections.filter(e=>e.id!==t),r=e.activeConnectionId===t?n.length>0?n[n.length-1].id:null:e.activeConnectionId,i={...e.transactionOpen},a={...e.pendingReopen},o={...e.fileDetached};return delete i[t],delete a[t],delete o[t],{activeConnections:n,activeConnectionId:r,transactionOpen:i,pendingReopen:a,fileDetached:o}}),reorderActiveConnection:(t,n)=>e(e=>({activeConnections:Wa(e.activeConnections,t,n)})),setActiveConnection:t=>e({activeConnectionId:t}),updateServerConnectionId:(t,n)=>e(e=>({activeConnections:e.activeConnections.map(e=>e.id===t?{...e,serverConnectionId:n}:e)})),updateProfile:(t,n)=>(Fa(t),e(e=>({savedConnections:e.savedConnections.map(e=>e.id===t?{...e,...n}:e),activeConnections:e.activeConnections.map(e=>e.id===t?{...e,...n}:e)}))),setTransactionOpen:(t,n)=>e(e=>({transactionOpen:{...e.transactionOpen,[t]:n}})),setPendingReopen:(t,n)=>e(e=>({pendingReopen:{...e.pendingReopen,[t]:n}})),setFileDetached:(t,n)=>e(e=>({fileDetached:{...e.fileDetached,[t]:n}})),applySyncedProfiles:n=>{let r=new Map(n.map(e=>[e.id,e])),i=t().savedConnections,a=i.filter(e=>!pa(e)&&!r.has(e.id));for(let e of n)e.savePassword===!1&&ua(e.id,X(e));for(let e of i)pa(e)&&!r.has(e.id)&&fa(e.id);e({savedConnections:[...a,...n]})},resolveCredentials:e=>{let n=t().savedConnections.find(t=>t.id===e.id);return la(n?la(e,X(n)):e,da(e.id)??{})}}),{name:`planche-connections`,storage:l(),version:1,migrate:e=>{let t=e;return Array.isArray(t.savedConnections)&&(t.savedConnections=t.savedConnections.map(e=>({...e,savePassword:e.savePassword??!0}))),t},partialize:e=>({savedConnections:e.savedConnections.map(Qa),activeConnections:e.activeConnections.map($a),activeConnectionId:e.activeConnectionId})}));export{Li as A,sa as C,ra as D,Yi as E,W as F,_ as I,h as L,zi as M,ci as N,Y as O,Ar as P,p as R,ma as S,qi as T,ya as _,Wa as a,_a as b,Va as c,Pa as d,Na as f,Da as g,Ma as h,Q as i,Ri as j,Gi as k,Ba as l,ja as m,Za as n,Ua as o,Oa as p,Xa as r,Ha as s,eo as t,La as u,va as v,ca as w,xa as x,ba as y};