planche 0.8.9 → 0.8.11

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 (41) hide show
  1. package/app/assets/{DAUuHfyN.js → 74sUdCiu.js} +1 -1
  2. package/app/assets/{uyVrOXnR.js → B02VTWSP.js} +1 -1
  3. package/app/assets/{BViMbHhN.js → B3rETkrt.js} +1 -1
  4. package/app/assets/{SwQn7uFS.js → B5mLj_uo.js} +1 -1
  5. package/app/assets/{C9ZwrwyI.js → BKoh-tKR.js} +9 -9
  6. package/app/assets/{DX2KwjN1.js → BV4aY7xt.js} +1 -1
  7. package/app/assets/{DyCj9S7N.js → BaO3ulMH.js} +1 -1
  8. package/app/assets/{nKNVMt3o.js → Bcc7p7-f.js} +2 -2
  9. package/app/assets/{D8yni7Rb.js → Bjbi6j5C.js} +1 -1
  10. package/app/assets/{Bu3NeYhP.js → BrxJJ0qg.js} +1 -1
  11. package/app/assets/{Ba8hC_60.js → Bww-OO8A.js} +1 -1
  12. package/app/assets/{D6_0v-T4.js → C8Rd1hEG.js} +1 -1
  13. package/app/assets/{KG-rIdVk.js → CFY8MOYy.js} +1 -1
  14. package/app/assets/{DtHLqL7d.js → CGUOv71O.js} +1 -1
  15. package/app/assets/{ROGURMs5.js → COQ4mwLg.js} +1 -1
  16. package/app/assets/{-G3y8cdl.js → CXb-qrUO.js} +1 -1
  17. package/app/assets/{CQSJHI2h.js → Cb_gZQwZ.js} +1 -1
  18. package/app/assets/{D65aoEiU.js → CgVpdrxb.js} +1 -1
  19. package/app/assets/{DITt-Ko_.js → Ct8S8lM5.js} +1 -1
  20. package/app/assets/{BjSZf__h.js → D-CUfQgE.js} +1 -1
  21. package/app/assets/{CcaPuBtD.js → D6kPbvGu.js} +1 -1
  22. package/app/assets/{DRC6R4LY.js → DCuKrXll.js} +1 -1
  23. package/app/assets/{D2EB63gp.js → DDmrJxdV.js} +1 -1
  24. package/app/assets/{dOd6HlUu.js → DF-Cqqnq.js} +1 -1
  25. package/app/assets/{BctsL19F.js → DL6u_OmT.js} +1 -1
  26. package/app/assets/{BkknF5iB.js → DOiUgfE9.js} +1 -1
  27. package/app/assets/{-gVBPNvj.js → DXi92TWa.js} +1 -1
  28. package/app/assets/{O5A2XfFn.js → DY8yZMtt.js} +1 -1
  29. package/app/assets/{CQ-2_uhn.js → DYKigfsA.js} +1 -1
  30. package/app/assets/{B7JLTli_.js → DiCNtfbc.js} +1 -1
  31. package/app/assets/{BVMdJAj-.js → DjDcAaBy.js} +2 -2
  32. package/app/assets/{UGuu7cOY.js → DtKWPQKC.js} +1 -1
  33. package/app/assets/{CPDztxpU.js → FO_fYT6n.js} +1 -1
  34. package/app/assets/{i9HQm_wt.js → dNkI1CY7.js} +1 -1
  35. package/app/assets/{BfY73pVp.js → dqPw_4zA.js} +1 -1
  36. package/app/assets/{Q_64Qxfg.js → muV45VDO.js} +1 -1
  37. package/app/index.html +3 -3
  38. package/dist/{chunk-2Z2E3JGN.js → chunk-XAI7WLQN.js} +5 -3
  39. package/dist/embed.js +1 -1
  40. package/dist/index.js +1 -1
  41. package/package.json +1 -1
@@ -4,5 +4,5 @@ import{r as e}from"./hePW80VL.js";import{i as t}from"./BAZqI8g_.js";import{t as
4
4
  `}make(e,t,n){let r=this.input.slice(t,n),i={kind:e,value:r,start:t,end:n};return e===`identifier`&&(i.upper=r.toUpperCase()),i}next(){let e=this.input,t=this.pos,n=e[t];if(p(n)){let n=t+1;for(;n<e.length&&p(e[n]);)n++;return this.pos=n,this.make(`space`,t,n)}if(e.startsWith(this.delimiter,t))return this.pos=t+this.delimiter.length,this.make(`terminator`,t,this.pos);if(n===`#`&&this.syntax.hashComments)return this.lineComment(t);if(n===`-`&&e[t+1]===`-`){let n=e[t+2];if(!this.syntax.dashCommentNeedsSpace||n===void 0||p(n))return this.lineComment(t)}if(n===`/`&&e[t+1]===`*`){let n=e.indexOf(`*/`,t+2);return this.pos=n===-1?e.length:n+2,this.make(`comment`,t,this.pos)}if(n===`$`&&this.syntax.dollarQuotes){let n=/^\$([A-Za-z_\u0080-\uFFFF][A-Za-z0-9_\u0080-\uFFFF]*)?\$/.exec(e.slice(t,t+64));if(n){let r=e.indexOf(n[0],t+n[0].length);return this.pos=r===-1?e.length:r+n[0].length,this.make(`string`,t,this.pos)}}if((n===`e`||n===`E`)&&e[t+1]===`'`&&this.syntax.dollarQuotes){this.pos=t+1;let e=this.quoted(t+1,`'`,`string`,!0);return this.make(`string`,t,e.end)}if(n===`'`)return this.quoted(t,`'`,`string`,this.syntax.backslashEscapes);if(n===`"`)return this.syntax.doubleQuoteIsIdentifier?this.quoted(t,`"`,`quoted_identifier`,!1):this.quoted(t,`"`,`string`,this.syntax.backslashEscapes);if((n===`x`||n===`X`||n===`b`||n===`B`||n===`n`||n===`N`)&&e[t+1]===`'`){this.pos=t+1;let e=this.quoted(t+1,`'`,`string`,this.syntax.backslashEscapes);return this.make(`string`,t,e.end)}if(n==="`")return this.quoted(t,"`",`quoted_identifier`,!1);if(n===`[`&&this.syntax.bracketIdentifiers){let n=e.indexOf(`]`,t+1);return this.pos=n===-1?e.length:n+1,this.make(`quoted_identifier`,t,this.pos)}if(f(n)||n===`.`&&f(e[t+1]??``))return this.number(t);if(n===`@`){let n=t+1;if(e[n]===`@`&&n++,e[n]===`'`||e[n]===`"`||e[n]==="`"){let r=e[n];this.pos=n;let i=this.quoted(n,r,`string`,this.syntax.backslashEscapes);return this.make(`variable`,t,i.end)}for(;n<e.length&&(d(e[n])||e[n]===`.`);)n++;return this.pos=n,this.make(`variable`,t,n)}if((n===`:`||n===`$`)&&u(e[t+1]??``)&&e[t+1]!==`$`){let n=t+1;for(;n<e.length&&d(e[n]);)n++;return this.pos=n,this.make(`variable`,t,n)}if(n===`?`){let n=t+1;for(;n<e.length&&f(e[n]);)n++;return this.pos=n,this.make(`placeholder`,t,n)}if(u(n)){let n=t+1;for(;n<e.length&&d(e[n])&&!e.startsWith(this.delimiter,n);)n++;let r=e.slice(t,n).toUpperCase();if(r===`DELIMITER`&&this.syntax.delimiterCommand&&this.significantInStatement===0){let r=n;for(;r<e.length&&(e[r]===` `||e[r]===` `);)r++;let i=r;for(;i<e.length&&!p(e[i]);)i++;if(i>r)return this.delimiter=e.slice(r,i),this.pos=i,this.make(`delimiter_command`,t,i)}if(r===`GO`&&this.syntax.goBatchSeparator&&this.atLineStart(t)){let r=n;for(;r<e.length&&(e[r]===` `||e[r]===` `);)r++;for(;r<e.length&&f(e[r]);)r++;for(;r<e.length&&(e[r]===` `||e[r]===` `||e[r]===`\r`);)r++;if(r>=e.length||e[r]===`
5
5
  `)return this.pos=r,this.make(`delimiter_command`,t,r)}return this.pos=n,this.make(`identifier`,t,n)}if(n===`/`&&this.syntax.plsqlBlocks&&this.atLineStart(t)){let n=t+1;for(;n<e.length&&(e[n]===` `||e[n]===` `||e[n]===`\r`);)n++;if(n>=e.length||e[n]===`
6
6
  `)return this.pos=n,this.make(`delimiter_command`,t,n)}if(n===`(`)return this.pos=t+1,this.make(`lparen`,t,this.pos);if(n===`)`)return this.pos=t+1,this.make(`rparen`,t,this.pos);for(let n of l)if(e.startsWith(n,t))return this.pos=t+n.length,this.make(`operator`,t,this.pos);return`=<>!+-*/%^~&|`.includes(n)?(this.pos=t+1,this.make(`operator`,t,this.pos)):`,.;:[]{}`.includes(n)?(this.pos=t+1,this.make(`punct`,t,this.pos)):(this.pos=t+1,this.make(`unknown`,t,this.pos))}lineComment(e){let t=this.input,n=e;for(;n<t.length&&t[n]!==`
7
- `;)n++;return this.pos=n,this.make(`comment`,e,n)}quoted(e,t,n,r){let i=this.input,a=e+1;for(;a<i.length;){let e=i[a];if(r&&e===`\\`){a+=2;continue}if(e===t){if(i[a+1]===t){a+=2;continue}a++;break}a++}return this.pos=Math.min(a,i.length),this.make(n,e,this.pos)}number(e){let t=this.input,n=e;if(t[n]===`0`&&(t[n+1]===`x`||t[n+1]===`X`))for(n+=2;n<t.length&&/[0-9A-Fa-f]/.test(t[n]);)n++;else if(t[n]===`0`&&(t[n+1]===`b`||t[n+1]===`B`)&&(t[n+2]===`0`||t[n+2]===`1`))for(n+=2;n<t.length&&(t[n]===`0`||t[n]===`1`);)n++;else{for(;n<t.length&&f(t[n]);)n++;if(t[n]===`.`)for(n++;n<t.length&&f(t[n]);)n++;if((t[n]===`e`||t[n]===`E`)&&(f(t[n+1]??``)||(t[n+1]===`+`||t[n+1]===`-`)&&f(t[n+2]??``)))for(n+=2;n<t.length&&f(t[n]);)n++}return this.pos=n,this.make(`number`,e,n)}},h=new Set([`BEGIN`,`CASE`,`IF`,`LOOP`,`WHILE`,`REPEAT`]);function g(e){return e.kind!==`space`&&e.kind!==`comment`}function ee(e,t){let n=[],r=[],i=[],a=0,o=!1,s=t=>{for(let n=t+1;n<e.length;n++)if(g(e[n]))return e[n]},c=e=>{r.length!==0&&(n.push({tokens:r,start:r[0].start,end:r[r.length-1].end,terminated:e}),r=[],i=[],a=0,o=!1)};for(let n=0;n<e.length;n++){let l=e[n];if(l.kind===`delimiter_command`){i.length>0?c(!1):r=[];continue}if(l.kind===`terminator`){if(a>0&&l.value===`;`){r.push({...l,kind:`punct`}),i.push(l);continue}r.push(l),c(!0);continue}if(r.push(l),g(l)){if(l.kind===`identifier`){let e=l.upper,r=i.length===0;if(o&&(o=!1,h.has(e))){i.push(l);continue}if(e===`END`)a>0&&a--,o=!0;else if(e===`BEGIN`){let e=s(n),o=i[i.length-1];r?(t.plsqlBlocks||e?.kind===`identifier`&&e.upper===`NOT`)&&a++:!(e=>e!==void 0&&(e.kind===`operator`||e.kind===`rparen`||e.kind===`punct`&&(e.value===`,`||e.value===`.`)||e.kind===`identifier`&&e.upper===`FROM`))(e)&&!(o&&(o.kind===`operator`||o.kind===`punct`&&(o.value===`,`||o.value===`.`)))&&a++}else if(e===`CASE`)a++;else if(a>0&&(e===`IF`||e===`LOOP`||e===`WHILE`||e===`REPEAT`)){let e=s(n);e?.kind!==`lparen`&&(e?.kind!==`identifier`||e.upper!==`EXISTS`&&e.upper!==`NOT`)&&a++}}i.push(l)}}return c(!1),n}var te=new Set([`SELECT`,`VALUES`,`TABLE`,`WITH`,`SHOW`,`EXPLAIN`,`DESCRIBE`,`DESC`,`HELP`,`CHECK`,`CHECKSUM`,`ANALYZE`,`OPTIMIZE`,`REPAIR`,`PRAGMA`]),ne=new Set([`SELECT`,`INSERT`,`UPDATE`,`DELETE`,`REPLACE`,`VALUES`,`TABLE`,`MERGE`]),re=new Set([`TABLE`,`DATABASE`,`SCHEMA`,`TABLESPACE`]),ie=new Set([`WHERE`,`SET`,`USING`,`ORDER`,`LIMIT`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`CROSS`,`NATURAL`,`STRAIGHT_JOIN`,`ON`,`PARTITION`,`AS`,`RETURNING`,`INDEXED`,`NOT`]);function _(e){if(e.kind!==`quoted_identifier`)return e.value;let t=e.value[0],n=t===`[`?`]`:t,r=e.value.slice(1,e.value.endsWith(n)?-1:void 0);return t!==`[`&&(r=r.replaceAll(n+n,n)),r}function v(e){return e.kind===`identifier`||e.kind===`quoted_identifier`}function y(e,t,n=ie){let r=[];for(;t<e.length;){let i=e[t];if(!v(i)||i.kind===`identifier`&&n.has(i.upper))break;let a=[_(i)];for(t++;t+1<e.length&&e[t].kind===`punct`&&e[t].value===`.`&&v(e[t+1]);)a.push(_(e[t+1])),t+=2;if(r.push(a.join(`.`)),e[t]?.kind===`punct`&&e[t].value===`,`){t++;continue}break}return{names:r,next:t}}function b(e,t,n=0){let r=0;for(let i=n;i<e.length;i++){let n=e[i];if(n.kind===`lparen`)r++;else if(n.kind===`rparen`)r=Math.max(0,r-1);else if(r===0&&n.kind===`identifier`&&n.upper===t)return i}return-1}function ae(e){let t=0;for(;t<e.length&&e[t].kind===`lparen`;)t++;if(t>=e.length||e[t].kind!==`identifier`)return{kind:``,index:t};if(e[t].upper!==`WITH`)return{kind:e[t].upper,index:t};let n=0,r=!1;for(let i=t+1;i<e.length;i++){let t=e[i];if(t.kind===`lparen`){n++,r=!1;continue}if(t.kind===`rparen`){n--,r=n===0;continue}if(n===0&&r&&t.kind===`identifier`&&ne.has(t.upper))return{kind:t.upper,index:i};r=!1}return{kind:`WITH`,index:t}}function oe(e,t){let n=b(e,`LIMIT`,t);if(n===-1)return null;let r=e[n+1];if(!r||r.kind!==`number`)return null;let i=e[n+2],a=e[n+3];return i?.kind===`punct`&&i.value===`,`&&a?.kind===`number`?{offset:Number(r.value),count:Number(a.value)}:i?.kind===`identifier`&&i.upper===`OFFSET`&&a?.kind===`number`?{offset:Number(a.value),count:Number(r.value)}:{offset:0,count:Number(r.value)}}function se(e,t,n){let r=t=>e[t]?.kind===`identifier`?e[t].upper:void 0;switch(t){case`DROP`:{let t=n+1;r(t)===`TEMPORARY`&&t++;let i=r(t);if(!i)return null;t++,r(t)===`IF`&&(t+=2);let{names:a}=y(e,t,new Set([`ON`,`RESTRICT`,`CASCADE`]));return{action:`DROP`,objectType:i,names:a,dataLoss:re.has(i)}}case`TRUNCATE`:{let t=n+1;r(t)===`TABLE`&&t++;let{names:i}=y(e,t);return{action:`TRUNCATE`,objectType:`TABLE`,names:i,dataLoss:!0}}case`DELETE`:{if(b(e,`WHERE`,n)!==-1)return null;let t=n+1;for(;r(t)===`LOW_PRIORITY`||r(t)===`QUICK`||r(t)===`IGNORE`;)t++;return{action:`DELETE_ALL`,names:r(t)===`FROM`?y(e,t+1).names:y(e,t,new Set([`FROM`])).names,dataLoss:!0}}case`UPDATE`:{if(b(e,`WHERE`,n)!==-1)return null;let t=n+1;for(;r(t)===`LOW_PRIORITY`||r(t)===`IGNORE`||r(t)===`OR`;)t+=r(t)===`OR`?2:1;let{names:i}=y(e,t);return{action:`UPDATE_ALL`,names:i,dataLoss:!0}}case`ALTER`:{if(r(n+1)!==`TABLE`)return null;let{names:t}=y(e,n+2,new Set([`ADD`,`DROP`,`MODIFY`,`CHANGE`,`RENAME`,`ALTER`])),i=[],a=0;for(let t=n+2;t<e.length;t++){let n=e[t];if(n.kind===`lparen`){a++;continue}if(n.kind===`rparen`){a--;continue}if(a!==0||n.kind!==`identifier`||n.upper!==`DROP`)continue;let r=e[t+1],o=r?.kind===`identifier`?r.upper:``;if(o===`COLUMN`){let n=e[t+2];n&&v(n)&&i.push(_(n))}else o===`PARTITION`?i.push(`PARTITION ${y(e,t+2).names.join(`, `)}`):r&&v(r)&&![`PRIMARY`,`FOREIGN`,`INDEX`,`KEY`,`CONSTRAINT`,`CHECK`,`DEFAULT`,`TABLESPACE`].includes(o)&&i.push(_(r))}return i.length===0?null:{action:`ALTER_DROP`,objectType:`TABLE`,names:t.map(e=>`${e} (${i.join(`, `)})`),dataLoss:!0}}default:return null}}function ce(e,t){let n=e.tokens.filter(e=>g(e)&&e.kind!==`terminator`),r=e.terminated?e.tokens.slice(0,-1):e.tokens,i=r.length?r[r.length-1].end:e.start,a=t.slice(e.start,i).trim(),{kind:o,index:s}=ae(n),c=te.has(o)||b(n,`RETURNING`,s)!==-1,l=c?oe(n,s):null,u=se(n,o,s);return{sql:a,raw:t.slice(e.start,e.end),start:e.start,end:e.end,tokens:e.tokens,kind:o,isEmpty:n.length===0,returnsRows:c,limit:l,destructive:u}}function le(e,t){let n=e.tokens.filter(e=>g(e)&&e.kind!==`terminator`),r=n.findIndex(e=>e.kind!==`lparen`);return b(n,t.toUpperCase(),Math.max(0,r))!==-1}function x(e){return e.start+e.raw.indexOf(e.sql)}function ue(e){let t=e.tokens.filter(e=>g(e)&&e.kind!==`terminator`),n=0;for(;n<t.length&&t[n].kind===`lparen`;)n++;let r=t[n];if(!r||r.kind!==`identifier`||r.upper!==`SELECT`)return-1;let i=r,a=t[n+1];return a?.kind===`identifier`&&(a.upper===`DISTINCT`||a.upper===`ALL`)&&(i=a),i.end-x(e)}var S=class{syntax;constructor(e){this.syntax=`syntax`in e?e.syntax:e}tokenize(e,t=`;`){return new m(e,this.syntax,t).tokenize()}parse(e,t=`;`){return ee(this.tokenize(e,t),this.syntax).map(t=>ce(t,e))}statements(e,t=`;`){return this.parse(e,t).filter(e=>!e.isEmpty)}},de=new Set([`ORDER`,`LIMIT`,`RETURNING`,`OUTPUT`,`OPTION`]);function C(e,t,n,r){return n?e.slice(n.start-t,(r?r.start:2**53-1)-t).trim():``}function w(e,t,n){let r=t;for(;r<n&&e[r].kind===`identifier`&&(e[r].upper===`ONLY`||e[r].upper===`LOW_PRIORITY`||e[r].upper===`IGNORE`||e[r].upper===`QUICK`);)r++;if(r>=n||!v(e[r]))return null;let i=_(e[r]),a=e[r].kind===`quoted_identifier`;for(r++;r+1<n&&e[r].kind===`punct`&&e[r].value===`.`&&v(e[r+1]);)i=_(e[r+1]),a=e[r+1].kind===`quoted_identifier`,r+=2;return r<n&&e[r].kind===`identifier`&&e[r].upper===`AS`&&r++,r<n&&v(e[r])&&!(e[r].kind===`identifier`&&[`SET`,`WHERE`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`CROSS`,`USING`,`FROM`,`ON`,`NATURAL`,`STRAIGHT_JOIN`,`WITH`,`OUTPUT`].includes(e[r].upper))?(e[r].kind,e[r].value):a?`"${i.replaceAll(`"`,`""`)}"`:i}function fe(e,t=`"`){let n=e.tokens.filter(e=>g(e)&&e.kind!==`terminator`),r=x(e),i=e.sql,a=e=>(e.startsWith(t)||e.startsWith(`"`)||e.startsWith("`")||e.startsWith(`[`),e),o=n[0];if(!o||o.kind!==`identifier`||o.upper!==`UPDATE`&&o.upper!==`DELETE`)return null;let s=b(n,`WHERE`),c=-1;for(let e of de){let t=b(n,e,s===-1?1:s);t!==-1&&(c===-1||t<c)&&(c=t)}let l=e=>e===-1?n.length:e,u=s===-1?``:` `+C(i,r,n[s],n[l(c)]),d=``;if(c!==-1&&(n[c].upper===`ORDER`||n[c].upper===`LIMIT`)){let e=[`RETURNING`,`OUTPUT`,`OPTION`].map(e=>b(n,e,c)).filter(e=>e!==-1);d=` `+C(i,r,n[c],e.length?n[Math.min(...e)]:void 0)}let f,p,m;if(o.upper===`UPDATE`){let e=b(n,`SET`);if(e===-1)return null;let t=b(n,`FROM`,e),a=e,o=C(i,r,n[1],n[a]);if(!o||n[1].kind===`lparen`)return null;if(p=w(n,1,a),m=o,t!==-1&&(s===-1||t<s)){let e=C(i,r,n[t+1],n[l(s===-1?c:s)]);f=p!==null&&RegExp(`(^|[\\s,])${p.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}(\\s|$|,)`,`i`).test(e)?e:`${o}, ${e}`}else f=o}else{let e=b(n,`FROM`);if(e===-1)return null;let t=b(n,`USING`,e),a=l(t===-1?s===-1?c:s:t),o=C(i,r,n[e+1],n[a]);if(!o||n[e+1]?.kind===`lparen`)return null;let u=C(i,r,n[1],n[e]),d=u?u.split(`,`)[0].trim().replace(/^(LOW_PRIORITY|QUICK|IGNORE)\s+/i,``):``;p=d||w(n,e+1,a),m=d||o;let h=t===-1?``:C(i,r,n[t+1],n[l(s===-1?c:s)]);f=h?`${o}, ${h}`:o}return p?{select:`SELECT ${a(p)}.* FROM ${f}${u}${d}`,count:d?`SELECT COUNT(*) AS affected FROM (SELECT 1 AS one FROM ${f}${u}${d}) planche_preview`:`SELECT COUNT(*) AS affected FROM ${f}${u}`,table:m,limited:/\bLIMIT\b/i.test(d)}:null}var pe={mysql:`mysql`,maria:`mariadb`,postgres:`postgresql`,neon:`postgresql`,supabase:`postgresql`,mssql:`transactsql`,sqlite:`transactsql`,d1:`transactsql`,do:`transactsql`,oracle:null},me={mysql:()=>t(()=>import(`./R93pYE1w.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1,2])),mariadb:()=>t(()=>import(`./DOeLCbYG.js`).then(t=>e(t.default,1)),__vite__mapDeps([3,1,2])),postgresql:()=>t(()=>import(`./5E2RYjEs.js`).then(t=>e(t.default,1)),__vite__mapDeps([4,1,2])),transactsql:()=>t(()=>import(`./eRZ39OKr.js`).then(t=>e(t.default,1)),__vite__mapDeps([5,1,2]))},T=new Map;function he(e){return pe[e]??null}async function ge(e){let t=T.get(e);if(t)return t;let n=new(await(me[e]())).Parser;return T.set(e,n),n}function E(e){return typeof e==`object`&&!!e}function D(e){return E(e)&&e.type===`select`}function _e(e){return E(e)&&D(e.ast)?e.ast:null}function ve(e){let t=e.name;return typeof t==`string`?t:t?.value??`cte`}function ye(e){let t=e.stmt;return E(t)?D(t.ast)?t.ast:D(t)?t:null:null}function be(e){if(!e)return null;let t=e.toUpperCase();return t===`JOIN`?`INNER JOIN`:t}function xe(e){let t=e.db??e.schema??null;return t?`${t}.${e.table}`:String(e.table)}function O(e){if(!E(e))return!1;if(e.type===`star`)return!0;let t=e.column;return!!(t===`*`||E(t)&&E(t.expr)&&t.expr.value===`*`)}function k(e){return O(e)?!E(e)||e.table===null||e.table===void 0:!1}function Se(e){let t=e.columns;return t===`*`?{count:null,expandsSources:!0}:Array.isArray(t)?t.filter(e=>O(e)||O(e.expr)).length===0?{count:t.length,expandsSources:!1}:{count:null,expandsSources:t.length===1&&(k(t[0])||k(t[0].expr))}:{count:null,expandsSources:!1}}function A(e,t){if(Array.isArray(e)){for(let n of e)A(n,t);return}if(!E(e))return;let n=_e(e);if(n){t.push(n);return}for(let[n,r]of Object.entries(e))n!==`loc`&&A(r,t)}var Ce=class{nodes=[];edges=[];groups=[];warnings=[];seq=0;nextId(e){return this.seq+=1,`${e}${this.seq}`}addGroup(e,t,n){let r={id:this.nextId(`g`),kind:e,label:t,parentId:n};return this.groups.push(r),r.id}addNode(e){let t={id:this.nextId(`n`),...e};return this.nodes.push(t),t}addEdge(e,t,n,r){this.edges.push({id:this.nextId(`e`),from:e,to:t,kind:n,label:r})}visitQuery(e,t,n,r,i,a){let o=[];for(let t=e;t;t=t._next)o.push(t);if(o.length===1)return this.visitSelect(e,t,n,r,i,a);let s=this.addGroup(`query`,r,t),c=(e.set_op??`union`).toUpperCase(),l=new Map(n);this.declareCtes(e,s,l);let u=o.map((e,t)=>this.visitSelect(e,s,new Map(l),`${c} (${t+1})`,`result`,`result`,t===0)),d=this.addNode({kind:i===`result`?`setop`:i,label:i===`result`?c:a,alias:null,qualifier:null,columnCount:u[0]?.columnCount??null,expandsSources:!1,groupId:s,range:null});for(let e of u)this.addEdge(e.id,d.id,`setop`,c);return d}declareCtes(e,t,n){if(Array.isArray(e.with))for(let r of e.with){let e=ve(r),i=ye(r);if(!i){this.warnings.push(`CTE ${e}: body not understood`);continue}let a=this.visitQuery(i,t,new Map(n),`WITH ${e}`,`cte`,e);n.set(e.toLowerCase(),a)}}visitSelect(e,t,n,r,i,a,o=!1){let s=this.addGroup(`query`,r,t),c=new Map(n);o||this.declareCtes(e,s,c);let l=[];if(Array.isArray(e.from)&&e.from.length>0){let t=this.addGroup(`from`,`FROM`,s);e.from.forEach((e,n)=>{let r=be(e.join),i=n===0&&!r?`from`:`join`,a=e.expr?.ast;if(a){let n=e.as??`subquery`,o=this.visitQuery(a,t,new Map(c),`FROM ${n}`,`derived`,n);l.push({node:o,kind:i,label:r});return}if(!e.table){this.warnings.push(`FROM entry not understood (function call or table expression)`);return}let o=c.get(e.table.toLowerCase()),s=this.addNode({kind:o?`cte-ref`:`table`,label:xe(e),alias:e.as??null,qualifier:e.db??e.schema??null,columnCount:o?o.columnCount:null,expandsSources:!1,groupId:t,range:null});o&&this.addEdge(o.id,s.id,`cte`,null),l.push({node:s,kind:i,label:r})})}let u=[];for(let[t,n]of[[`SELECT`,e.columns],[`WHERE`,e.where],[`GROUP BY`,e.groupby],[`HAVING`,e.having],[`ORDER BY`,e.orderby]]){let e=[];A(n,e),e.forEach((n,r)=>{let i=e.length>1?`${t} (${r+1})`:t;u.push(this.visitQuery(n,s,new Map(c),i,`scalar`,`subquery`))})}let{count:d,expandsSources:f}=Se(e),p=this.addNode({kind:i,label:a,alias:null,qualifier:null,columnCount:d,expandsSources:f,groupId:s,range:null});for(let e of l)this.addEdge(e.node.id,p.id,e.kind,e.label);for(let e of u)this.addEdge(e.id,p.id,`scalar`,null);return p}};function we(e){let t=Array.isArray(e)?e[0]:e;if(!D(t))return null;let n=new Ce;return n.visitQuery(t,null,new Map,`query`,`result`,`result`),Array.isArray(e)&&e.length>1&&n.warnings.push(`only the first of ${e.length} statements is drawn`),{nodes:n.nodes,edges:n.edges,groups:n.groups,warnings:n.warnings}}var j=new Set([`WHERE`,`GROUP`,`HAVING`,`ORDER`,`CONNECT`,`START`,`MODEL`,`FETCH`,`OFFSET`,`FOR`,`UNION`,`INTERSECT`,`MINUS`,`EXCEPT`,`WITH`]),Te=new Set([`UNION`,`INTERSECT`,`MINUS`,`EXCEPT`]),M=new Set([...j,`ON`,`USING`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`FULL`,`CROSS`,`NATURAL`,`OUTER`,`AND`,`OR`,`NOT`,`AS`,`PARTITION`,`PIVOT`,`UNPIVOT`,`SAMPLE`]),N=new Set([`INNER`,`LEFT`,`RIGHT`,`FULL`,`CROSS`,`NATURAL`,`OUTER`]);function P(e){return e?.kind===`identifier`?e.upper??e.value.toUpperCase():``}function F(e){return e!==void 0&&(e.kind===`identifier`||e.kind===`quoted_identifier`)}function I(e,t){let n=0;for(let r=t;r<e.length;r++)if(e[r].kind===`lparen`)n++;else if(e[r].kind===`rparen`&&--n===0)return r+1;return e.length}function L(e,t,n){let r=[];for(let i=t;i<n;i++){if(e[i].kind!==`lparen`)continue;let t=P(e[i+1]),a=Math.min(I(e,i),n);(t===`SELECT`||t===`WITH`)&&(r.push(B(e,i+1,a-1)),i=a-1)}return r}function R(e,t,n,r){let i=[],a=0;for(let o=t;o<n;o++)e[o].kind===`lparen`?a++:e[o].kind===`rparen`?a--:a===0&&r(e[o])&&i.push(o);return i}function z(e,t,n,r){let i=0;for(let a=t;a<n;a++)if(e[a].kind===`lparen`)i++;else if(e[a].kind===`rparen`)i--;else if(i===0&&r(e[a]))return a;return n}function Ee(e,t){let n=[_(e[t])],r=t+1;for(;e[r]?.kind===`punct`&&e[r].value===`.`&&F(e[r+1]);)n.push(_(e[r+1])),r+=2;return{parts:n,next:r}}function De(e,t,n,r){let i=t;if(e[i]?.kind===`lparen`&&(P(e[i+1])===`SELECT`||P(e[i+1])===`WITH`)){let t=I(e,i),n=B(e,i+1,t-1),a=null,o=t;return P(e[o])===`AS`&&o++,F(e[o])&&!M.has(P(e[o]))&&(a=_(e[o])),{db:null,table:null,as:a,expr:{ast:n},...r?{join:r}:{}}}if(!F(e[i]))return null;let{parts:a,next:o}=Ee(e,i);if(i=o,e[i]?.kind===`lparen`)return null;let s=null;P(e[i])===`AS`&&i++,i<n&&F(e[i])&&!M.has(P(e[i]))&&(s=_(e[i]));let c=a[a.length-1];return{db:a.length>1?a.slice(0,-1).join(`.`):null,table:c,as:s,...r?{join:r}:{}}}function Oe(e,t,n){let r=[],i=e=>e.kind===`punct`&&e.value===`,`,a=e=>P(e)===`JOIN`||N.has(P(e)),o=R(e,t,n,e=>i(e)||a(e)),s=[{at:t,join:null}];for(let t=0;t<o.length;t++){let r=o[t];if(i(e[r])){s.push({at:r+1,join:null});continue}let a=[],c=r;for(;c<n&&(N.has(P(e[c]))||P(e[c])===`JOIN`);){if(a.push(P(e[c])),P(e[c])===`JOIN`){c++;break}c++}for(;t+1<o.length&&o[t+1]<c;)t++;s.push({at:c,join:a.join(` `)||`JOIN`})}for(let t=0;t<s.length;t++){let i=s[t],a=t+1<s.length?s[t+1].at:n,o=De(e,i.at,a,i.join);o&&r.push(o)}return r}function B(e,t,n){let r={type:`select`,with:null,columns:`*`,from:[],where:[]},i=t;if(P(e[i])===`WITH`)for(i++,P(e[i])===`RECURSIVE`&&i++,r.with=[];i<n&&F(e[i]);){let t=_(e[i]);if(i++,e[i]?.kind===`lparen`&&P(e[i+1])!==`SELECT`&&(i=I(e,i)),P(e[i])!==`AS`||(i++,(P(e[i])===`MATERIALIZED`||P(e[i])===`NOT`&&P(e[i+1])===`MATERIALIZED`)&&(i+=P(e[i])===`NOT`?2:1),e[i]?.kind!==`lparen`))break;let n=I(e,i);if(r.with.push({name:{value:t},stmt:{ast:B(e,i+1,n-1)}}),i=n,e[i]?.kind===`punct`&&e[i].value===`,`){i++;continue}break}if(P(e[i])!==`SELECT`)return r;i++,[`DISTINCT`,`ALL`,`UNIQUE`].includes(P(e[i]))&&i++;let a=z(e,i,n,e=>P(e)===`FROM`),o=R(e,i,a,e=>e.kind===`punct`&&e.value===`,`),s=[],c=i;for(let e of o)s.push([c,e]),c=e+1;s.push([c,a]);let l=e=>e.kind===`operator`&&e.value===`*`,u=s.filter(([t,n])=>z(e,t,n,l)<n);if(r.columns=s.length===1&&u.length===1&&s[0][1]-s[0][0]===1?`*`:u.length>0?[{expr:{type:`star`}},...s.slice(1).map(()=>({}))]:s.map(([t,n])=>{let r=L(e,t,n);return r.length>0?{expr:{ast:r[0]}}:{}}),a>=n)return r;let d=z(e,a+1,n,e=>j.has(P(e)));r.from=Oe(e,a+1,d);let f=z(e,d,n,e=>Te.has(P(e)));if(r.where=L(e,d,f).map(e=>({ast:e})),f<n){let t=P(e[f]),i=P(e[f+1])===`ALL`;r.set_op=`${t.toLowerCase()}${i?` all`:``}`,r._next=B(e,f+(i?2:1),n)}return r}function ke(e,t){let n=new S(t).tokenize(e).filter(e=>e.kind!==`space`&&e.kind!==`comment`&&e.kind!==`terminator`);if(n.length===0)return null;let r=P(n[0]);return r!==`SELECT`&&r!==`WITH`?null:B(n,0,n.length)}var Ae=new Set(`ON.USING.WHERE.GROUP.ORDER.HAVING.LIMIT.OFFSET.FETCH.WINDOW.JOIN.INNER.LEFT.RIGHT.FULL.CROSS.NATURAL.OUTER.STRAIGHT_JOIN.APPLY.UNION.INTERSECT.EXCEPT.MINUS.SELECT.FROM.WITH.AND.OR.NOT.SET.VALUES.WHEN.THEN.ELSE.END.FOR.INTO.START.CONNECT.PIVOT.AS.BY.DISTINCT.ALL.ANY.CASE.IS.NULL.IN.EXISTS.BETWEEN.LIKE.ASC.DESC.RECURSIVE.TOP.PERCENT.TIES.ROW.ROWS.ONLY.NEXT.FIRST.PARTITION.OVER.LATERAL.RETURNING.OUTPUT.PRIOR.MATERIALIZED.FILTER.INSERT.UPDATE.DELETE.CREATE.TABLE.VIEW.EXPLAIN.PRAGMA.MERGE`.split(`.`));function V(e){return e?.kind===`identifier`&&Ae.has(e.upper??e.value.toUpperCase())}function H(e){return e!==void 0&&(e.kind===`identifier`||e.kind===`quoted_identifier`)}function je(e){let t=e.filter(e=>e.kind!==`space`&&e.kind!==`comment`),n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!H(r)||V(r))continue;let i=[_(r)],a=r;for(;H(t[e+2])&&t[e+1]?.kind===`punct`&&t[e+1].value===`.`;)a=t[e+2],i.push(_(a)),e+=2;let o=null,s=t[e+1];s?.kind===`identifier`&&s.upper===`AS`?(s=t[e+2],H(s)&&!V(s)&&(o=_(s),e+=2)):H(s)&&!V(s)&&(o=_(s),e+=1),n.push({name:i.join(`.`),alias:o,start:r.start,end:a.end,used:!1})}return n}function Me(e){switch(e.kind){case`table`:case`cte-ref`:case`cte`:case`derived`:return e.label;default:return null}}function Ne(e,t,n){let r=je(new S(n).tokenize(t)),i=e.nodes.map(e=>{let t=Me(e);if(!t)return e;let n=t.toLowerCase(),i=e.alias?.toLowerCase()??null,a=r.find(e=>!e.used&&e.name.toLowerCase()===n&&(!i||e.alias?.toLowerCase()===i))??r.find(e=>!e.used&&e.alias?.toLowerCase()===n);return a?(a.used=!0,{...e,range:[a.start,a.end]}):e});return{...e,nodes:i}}function U(e){return e.label.toLowerCase()}function W(e){let t=new Map;for(let n of e.nodes){if(n.kind!==`table`)continue;let e=U(n);if(t.has(e))continue;let r=n.label.split(`.`);t.set(e,{key:e,qualifier:r.length>1?r.slice(0,-1).join(`.`):null,table:r[r.length-1]})}return[...t.values()]}function Pe(e,t){let n=new Map,r=e.nodes.map(e=>{let r=e.kind===`table`&&e.columnCount===null&&t.has(U(e))?{...e,columnCount:t.get(U(e))??null}:{...e};return n.set(r.id,r),r}),i=new Set([`from`,`join`,`cte`,`setop`]);for(let t=0;t<r.length;t++){let t=!1;for(let a of r){if(a.columnCount!==null)continue;let r=e.edges.filter(e=>e.to===a.id&&i.has(e.kind)).map(e=>n.get(e.from)).filter(e=>e!==void 0),o=r.filter(e=>e.columnCount!==null);r.length!==0&&o.length===r.length&&(a.expandsSources?(a.columnCount=o.reduce((e,t)=>e+(t.columnCount??0),0),t=!0):r.length===1&&(a.columnCount=o[0].columnCount,t=!0))}if(!t)break}return{...e,nodes:r}}async function G(e,t){let n=he(t.id),r;if(n)try{r=(await ge(n)).astify(e,{database:n})}catch(e){return{ok:!1,reason:`parse-error`,message:e instanceof Error?e.message.split(`
8
- `)[0]:String(e)}}else if(t.id===`oracle`)r=ke(e,t.syntax);else return{ok:!1,reason:`unsupported-engine`,message:`No SQL grammar for ${t.label}`};let i=we(r);return i?{ok:!0,graph:Ne(i,e,t.syntax)}:{ok:!1,reason:`not-a-query`,message:`Only SELECT statements have a structure graph`}}var Fe=8,Ie=3,Le=[{kind:`column`,re:/unknown column '([^']+)'/i},{kind:`table`,re:/(?:unknown table|table) '([^']+)'(?: doesn't exist)?/i},{kind:`column`,re:/column "([^"]+)" does not exist/i},{kind:`table`,re:/relation "([^"]+)" does not exist/i},{kind:`column`,re:/no such column:\s*(\S+)/i},{kind:`table`,re:/no such table:\s*(\S+)/i},{kind:`column`,re:/invalid column name '([^']+)'/i},{kind:`table`,re:/invalid object name '([^']+)'/i},{kind:`column`,re:/ORA-00904:\s*"?([^":]+)"?:\s*invalid identifier/i}];function K(e){for(let{kind:t,re:n}of Le){let r=n.exec(e);if(!r)continue;let i=r[1].trim().replace(/[`"'[\]]/g,``),a=i.split(`.`).pop()??i;if(a)return{kind:t,name:a}}return null}function q(e){return e.toLowerCase().replace(/[_\s-]/g,``)}function Re(e,t,n){if(Math.abs(e.length-t.length)>n)return n+1;let r=Array.from({length:t.length+1},(e,t)=>t);for(let i=1;i<=e.length;i++){let a=[i],o=i;for(let n=1;n<=t.length;n++){let s=e[i-1]===t[n-1]?0:1,c=Math.min(r[n]+1,a[n-1]+1,r[n-1]+s);a.push(c),c<o&&(o=c)}if(o>n)return n+1;r=a}return r[t.length]}function ze(e){return e.length<=4?1:e.length<=8?2:3}function J(e,t,n=Ie){let r=q(e);if(!r)return[];let i=ze(r),a=[];for(let n of t){let t=q(n);if(!t||t===r){t===r&&n!==e&&a.push({name:n,d:0,prefix:!0});continue}let o=Re(r,t,i);o>i||a.push({name:n,d:o,prefix:t.startsWith(r)||r.startsWith(t)})}a.sort((e,t)=>e.d-t.d||Number(t.prefix)-Number(e.prefix)||e.name.localeCompare(t.name));let o=a.filter(e=>e.d===0);return(o.length>0?o:a).slice(0,n).map(e=>e.name)}function Be(e){return e.filter(e=>e.kind!==`space`&&e.kind!==`comment`)}function Y(e,t){let n=[],r;try{r=Be(new S(t).tokenize(e))}catch{return n}let i=t.quoteIdentifier(`x`).startsWith("`");for(let e=0;e<r.length;e++){let a=r[e];if(a.kind===`quoted_identifier`&&a.value.startsWith("`")&&!i){let e=a.value.slice(1,-1);n.push({code:`syntaxSwap`,params:{engine:t.label,found:a.value,expected:t.quoteIdentifier(e)}});break}}for(let e=1;e<r.length;e++){let i=r[e];if(i.kind===`quoted_identifier`&&i.value.startsWith(`"`)&&t.syntax.doubleQuoteIsIdentifier){let a=r[e-1];if(a.kind===`operator`&&/^(=|<>|!=|<|>|<=|>=)$/.test(a.value)){n.push({code:`doubleQuotedLiteral`,params:{engine:t.label,value:i.value.slice(1,-1)}});break}}}let a=t.syntax.limitStyle;for(let e=0;e<r.length;e++){let i=r[e];if(i.kind!==`identifier`)continue;let o=r[e+1],s=o?.kind===`number`?o.value:`n`;if(i.upper===`LIMIT`&&a!==`limit`&&o?.kind===`number`){n.push({code:`syntaxSwap`,params:{engine:t.label,found:`LIMIT ${s}`,expected:a===`top`?`SELECT TOP ${s}`:`FETCH FIRST ${s} ROWS ONLY`}});break}if(i.upper===`TOP`&&a!==`top`&&o?.kind===`number`&&r[e-1]?.upper===`SELECT`){n.push({code:`syntaxSwap`,params:{engine:t.label,found:`TOP ${s}`,expected:a===`limit`?`LIMIT ${s}`:`FETCH FIRST ${s} ROWS ONLY`}});break}}return n}function Ve(e){let{message:t,sql:n,engine:r,columns:i,tables:a}=e,o=[],s=K(t);if(s?.kind===`column`){let e=i.size>1,t=[],n=new Map;for(let[e,r]of i)for(let i of r)t.push(i),n.has(i)||n.set(i,e);let r=J(s.name,[...new Set(t)]);r.length>0&&o.push({code:`unknownColumn`,params:{name:s.name,suggestions:r.map(t=>e?`${n.get(t)}.${t}`:t).join(`, `)}})}if(s?.kind===`table`){let e=J(s.name,a);e.length>0&&o.push({code:`unknownTable`,params:{name:s.name,suggestions:e.join(`, `)}})}return[...o,...Y(n,r)]}var X=new Map,Z=new Map;function Q(e){let t=i.getState(),n=t.trees[e];return n?s(n,t.selectedNodeId[e])??c(n)[0]??null:null}function He(e,t){let r=o(e),i=n.getState().activeConnections.find(t=>t.id===e),a=r.capabilities.schemas?null:i?.database;return t||a||Q(e)}async function $(e,t){let i=r.getState().tabs[e]?.find(e=>e.id===t);if(!i?.error||!i.errorSql)return null;let s=o(e),c={engine:s,sql:i.errorSql,message:i.error,tables:new Map},l=n.getState().activeConnections.find(t=>t.id===e),u=s.capabilities.schemas?null:l?.database,d=i.database||u||Q(e);if(!l?.serverConnectionId||!d)return c;let f=a(l.serverConnectionId),p=await G(c.sql,s).catch(()=>null),m=p?.ok?W(p.graph).slice(0,Fe):[];return await Promise.all(m.map(async({qualifier:e,table:t})=>{let n=e??d,r=`${l.serverConnectionId}|${n}|${t}`,i=X.get(r);if(i){c.tables.set(t,i);return}try{let e=await s.introspect.listColumns(f,n,t);e.length>0&&(X.set(r,e),c.tables.set(t,e))}catch{}})),c}async function Ue(e,t){let i=r.getState().tabs[e]?.find(e=>e.id===t);if(!i?.error)return[];let s=i.errorSql??``,c=o(e),l=K(i.error);if(!s)return[];if(!l)return Y(s,c);let u=n.getState().activeConnections.find(t=>t.id===e),d=c.capabilities.schemas?null:u?.database,f=i.database||d||Q(e),p=new Map,m=[];if(u?.serverConnectionId&&f){let n=a(u.serverConnectionId);if(l.kind===`column`){let n=await $(e,t);for(let[e,t]of n?.tables??[])p.set(e,t.map(e=>e.name))}if(l.kind===`table`){let e=`${u.serverConnectionId}|${f}`,t=Z.get(e);if(t)m=t;else try{m=(await c.introspect.listTables(n,f)).map(e=>e.name);let t=await c.introspect.listViews(n,f).catch(()=>[]);m=[...m,...t],Z.set(e,m)}catch{}}}return Ve({message:i.error,sql:s,engine:c,columns:p,tables:m})}function We(e,t){let r=n.getState().activeConnections.find(t=>t.id===e)?.serverConnectionId;if(!r)return;let i=t?`${r}|${t}|`:`${r}|`;for(let e of[...X.keys()])e.startsWith(i)&&X.delete(e);if(t){Z.delete(`${r}|${t}`);return}for(let e of[...Z.keys()])e.startsWith(`${r}|`)&&Z.delete(e)}export{G as a,S as c,le as d,x as f,$ as i,fe as l,He as n,Pe as o,ue as p,Ue as r,W as s,We as t,_ as u};
7
+ `;)n++;return this.pos=n,this.make(`comment`,e,n)}quoted(e,t,n,r){let i=this.input,a=e+1;for(;a<i.length;){let e=i[a];if(r&&e===`\\`){a+=2;continue}if(e===t){if(i[a+1]===t){a+=2;continue}a++;break}a++}return this.pos=Math.min(a,i.length),this.make(n,e,this.pos)}number(e){let t=this.input,n=e;if(t[n]===`0`&&(t[n+1]===`x`||t[n+1]===`X`))for(n+=2;n<t.length&&/[0-9A-Fa-f]/.test(t[n]);)n++;else if(t[n]===`0`&&(t[n+1]===`b`||t[n+1]===`B`)&&(t[n+2]===`0`||t[n+2]===`1`))for(n+=2;n<t.length&&(t[n]===`0`||t[n]===`1`);)n++;else{for(;n<t.length&&f(t[n]);)n++;if(t[n]===`.`)for(n++;n<t.length&&f(t[n]);)n++;if((t[n]===`e`||t[n]===`E`)&&(f(t[n+1]??``)||(t[n+1]===`+`||t[n+1]===`-`)&&f(t[n+2]??``)))for(n+=2;n<t.length&&f(t[n]);)n++}return this.pos=n,this.make(`number`,e,n)}},h=new Set([`BEGIN`,`CASE`,`IF`,`LOOP`,`WHILE`,`REPEAT`]);function g(e){return e.kind!==`space`&&e.kind!==`comment`}function ee(e,t){let n=[],r=[],i=[],a=0,o=!1,s=t=>{for(let n=t+1;n<e.length;n++)if(g(e[n]))return e[n]},c=e=>{r.length!==0&&(n.push({tokens:r,start:r[0].start,end:r[r.length-1].end,terminated:e}),r=[],i=[],a=0,o=!1)};for(let n=0;n<e.length;n++){let l=e[n];if(l.kind===`delimiter_command`){i.length>0?c(!1):r=[];continue}if(l.kind===`terminator`){if(a>0&&l.value===`;`){r.push({...l,kind:`punct`}),i.push(l);continue}r.push(l),c(!0);continue}if(r.push(l),g(l)){if(l.kind===`identifier`){let e=l.upper,r=i.length===0;if(o&&(o=!1,h.has(e))){i.push(l);continue}if(e===`END`)a>0&&a--,o=!0;else if(e===`BEGIN`){let e=s(n),o=i[i.length-1];r?(t.plsqlBlocks||e?.kind===`identifier`&&e.upper===`NOT`)&&a++:!(e=>e!==void 0&&(e.kind===`operator`||e.kind===`rparen`||e.kind===`punct`&&(e.value===`,`||e.value===`.`)||e.kind===`identifier`&&e.upper===`FROM`))(e)&&!(o&&(o.kind===`operator`||o.kind===`punct`&&(o.value===`,`||o.value===`.`)))&&a++}else if(e===`CASE`)a++;else if(a>0&&(e===`IF`||e===`LOOP`||e===`WHILE`||e===`REPEAT`)){let e=s(n);e?.kind!==`lparen`&&(e?.kind!==`identifier`||e.upper!==`EXISTS`&&e.upper!==`NOT`)&&a++}}i.push(l)}}return c(!1),n}var te=new Set([`SELECT`,`VALUES`,`TABLE`,`WITH`,`SHOW`,`EXPLAIN`,`DESCRIBE`,`DESC`,`HELP`,`CHECK`,`CHECKSUM`,`ANALYZE`,`OPTIMIZE`,`REPAIR`,`PRAGMA`]),ne=new Set([`SELECT`,`INSERT`,`UPDATE`,`DELETE`,`REPLACE`,`VALUES`,`TABLE`,`MERGE`]),re=new Set([`TABLE`,`DATABASE`,`SCHEMA`,`TABLESPACE`]),ie=new Set([`WHERE`,`SET`,`USING`,`ORDER`,`LIMIT`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`CROSS`,`NATURAL`,`STRAIGHT_JOIN`,`ON`,`PARTITION`,`AS`,`RETURNING`,`INDEXED`,`NOT`]);function _(e){if(e.kind!==`quoted_identifier`)return e.value;let t=e.value[0],n=t===`[`?`]`:t,r=e.value.slice(1,e.value.endsWith(n)?-1:void 0);return t!==`[`&&(r=r.replaceAll(n+n,n)),r}function v(e){return e.kind===`identifier`||e.kind===`quoted_identifier`}function y(e,t,n=ie){let r=[];for(;t<e.length;){let i=e[t];if(!v(i)||i.kind===`identifier`&&n.has(i.upper))break;let a=[_(i)];for(t++;t+1<e.length&&e[t].kind===`punct`&&e[t].value===`.`&&v(e[t+1]);)a.push(_(e[t+1])),t+=2;if(r.push(a.join(`.`)),e[t]?.kind===`punct`&&e[t].value===`,`){t++;continue}break}return{names:r,next:t}}function b(e,t,n=0){let r=0;for(let i=n;i<e.length;i++){let n=e[i];if(n.kind===`lparen`)r++;else if(n.kind===`rparen`)r=Math.max(0,r-1);else if(r===0&&n.kind===`identifier`&&n.upper===t)return i}return-1}function ae(e){let t=0;for(;t<e.length&&e[t].kind===`lparen`;)t++;if(t>=e.length||e[t].kind!==`identifier`)return{kind:``,index:t};if(e[t].upper!==`WITH`)return{kind:e[t].upper,index:t};let n=0,r=!1;for(let i=t+1;i<e.length;i++){let t=e[i];if(t.kind===`lparen`){n++,r=!1;continue}if(t.kind===`rparen`){n--,r=n===0;continue}if(n===0&&r&&t.kind===`identifier`&&ne.has(t.upper))return{kind:t.upper,index:i};r=!1}return{kind:`WITH`,index:t}}function oe(e,t){let n=b(e,`LIMIT`,t);if(n===-1)return null;let r=e[n+1];if(!r||r.kind!==`number`)return null;let i=e[n+2],a=e[n+3];return i?.kind===`punct`&&i.value===`,`&&a?.kind===`number`?{offset:Number(r.value),count:Number(a.value)}:i?.kind===`identifier`&&i.upper===`OFFSET`&&a?.kind===`number`?{offset:Number(a.value),count:Number(r.value)}:{offset:0,count:Number(r.value)}}function se(e,t,n){let r=t=>e[t]?.kind===`identifier`?e[t].upper:void 0;switch(t){case`DROP`:{let t=n+1;r(t)===`TEMPORARY`&&t++;let i=r(t);if(!i)return null;t++,r(t)===`IF`&&(t+=2);let{names:a}=y(e,t,new Set([`ON`,`RESTRICT`,`CASCADE`]));return{action:`DROP`,objectType:i,names:a,dataLoss:re.has(i)}}case`TRUNCATE`:{let t=n+1;r(t)===`TABLE`&&t++;let{names:i}=y(e,t);return{action:`TRUNCATE`,objectType:`TABLE`,names:i,dataLoss:!0}}case`DELETE`:{if(b(e,`WHERE`,n)!==-1)return null;let t=n+1;for(;r(t)===`LOW_PRIORITY`||r(t)===`QUICK`||r(t)===`IGNORE`;)t++;return{action:`DELETE_ALL`,names:r(t)===`FROM`?y(e,t+1).names:y(e,t,new Set([`FROM`])).names,dataLoss:!0}}case`UPDATE`:{if(b(e,`WHERE`,n)!==-1)return null;let t=n+1;for(;r(t)===`LOW_PRIORITY`||r(t)===`IGNORE`||r(t)===`OR`;)t+=r(t)===`OR`?2:1;let{names:i}=y(e,t);return{action:`UPDATE_ALL`,names:i,dataLoss:!0}}case`ALTER`:{if(r(n+1)!==`TABLE`)return null;let{names:t}=y(e,n+2,new Set([`ADD`,`DROP`,`MODIFY`,`CHANGE`,`RENAME`,`ALTER`])),i=[],a=0;for(let t=n+2;t<e.length;t++){let n=e[t];if(n.kind===`lparen`){a++;continue}if(n.kind===`rparen`){a--;continue}if(a!==0||n.kind!==`identifier`||n.upper!==`DROP`)continue;let r=e[t+1],o=r?.kind===`identifier`?r.upper:``;if(o===`COLUMN`){let n=e[t+2];n&&v(n)&&i.push(_(n))}else o===`PARTITION`?i.push(`PARTITION ${y(e,t+2).names.join(`, `)}`):r&&v(r)&&![`PRIMARY`,`FOREIGN`,`INDEX`,`KEY`,`CONSTRAINT`,`CHECK`,`DEFAULT`,`TABLESPACE`].includes(o)&&i.push(_(r))}return i.length===0?null:{action:`ALTER_DROP`,objectType:`TABLE`,names:t.map(e=>`${e} (${i.join(`, `)})`),dataLoss:!0}}default:return null}}function ce(e,t){let n=e.tokens.filter(e=>g(e)&&e.kind!==`terminator`),r=e.terminated?e.tokens.slice(0,-1):e.tokens,i=r.length?r[r.length-1].end:e.start,a=t.slice(e.start,i).trim(),{kind:o,index:s}=ae(n),c=te.has(o)||b(n,`RETURNING`,s)!==-1,l=c?oe(n,s):null,u=se(n,o,s);return{sql:a,raw:t.slice(e.start,e.end),start:e.start,end:e.end,tokens:e.tokens,kind:o,isEmpty:n.length===0,returnsRows:c,limit:l,destructive:u}}function le(e,t){let n=e.tokens.filter(e=>g(e)&&e.kind!==`terminator`),r=n.findIndex(e=>e.kind!==`lparen`);return b(n,t.toUpperCase(),Math.max(0,r))!==-1}function x(e){return e.start+e.raw.indexOf(e.sql)}function ue(e){let t=e.tokens.filter(e=>g(e)&&e.kind!==`terminator`),n=0;for(;n<t.length&&t[n].kind===`lparen`;)n++;let r=t[n];if(!r||r.kind!==`identifier`||r.upper!==`SELECT`)return-1;let i=r,a=t[n+1];return a?.kind===`identifier`&&(a.upper===`DISTINCT`||a.upper===`ALL`)&&(i=a),i.end-x(e)}var S=class{syntax;constructor(e){this.syntax=`syntax`in e?e.syntax:e}tokenize(e,t=`;`){return new m(e,this.syntax,t).tokenize()}parse(e,t=`;`){return ee(this.tokenize(e,t),this.syntax).map(t=>ce(t,e))}statements(e,t=`;`){return this.parse(e,t).filter(e=>!e.isEmpty)}},de=new Set([`ORDER`,`LIMIT`,`RETURNING`,`OUTPUT`,`OPTION`]);function C(e,t,n,r){return n?e.slice(n.start-t,(r?r.start:2**53-1)-t).trim():``}function w(e,t,n){let r=t;for(;r<n&&e[r].kind===`identifier`&&(e[r].upper===`ONLY`||e[r].upper===`LOW_PRIORITY`||e[r].upper===`IGNORE`||e[r].upper===`QUICK`);)r++;if(r>=n||!v(e[r]))return null;let i=_(e[r]),a=e[r].kind===`quoted_identifier`;for(r++;r+1<n&&e[r].kind===`punct`&&e[r].value===`.`&&v(e[r+1]);)i=_(e[r+1]),a=e[r+1].kind===`quoted_identifier`,r+=2;return r<n&&e[r].kind===`identifier`&&e[r].upper===`AS`&&r++,r<n&&v(e[r])&&!(e[r].kind===`identifier`&&[`SET`,`WHERE`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`CROSS`,`USING`,`FROM`,`ON`,`NATURAL`,`STRAIGHT_JOIN`,`WITH`,`OUTPUT`].includes(e[r].upper))?(e[r].kind,e[r].value):a?`"${i.replaceAll(`"`,`""`)}"`:i}function fe(e,t=`"`){let n=e.tokens.filter(e=>g(e)&&e.kind!==`terminator`),r=x(e),i=e.sql,a=e=>(e.startsWith(t)||e.startsWith(`"`)||e.startsWith("`")||e.startsWith(`[`),e),o=n[0];if(!o||o.kind!==`identifier`||o.upper!==`UPDATE`&&o.upper!==`DELETE`)return null;let s=b(n,`WHERE`),c=-1;for(let e of de){let t=b(n,e,s===-1?1:s);t!==-1&&(c===-1||t<c)&&(c=t)}let l=e=>e===-1?n.length:e,u=s===-1?``:` `+C(i,r,n[s],n[l(c)]),d=``;if(c!==-1&&(n[c].upper===`ORDER`||n[c].upper===`LIMIT`)){let e=[`RETURNING`,`OUTPUT`,`OPTION`].map(e=>b(n,e,c)).filter(e=>e!==-1);d=` `+C(i,r,n[c],e.length?n[Math.min(...e)]:void 0)}let f,p,m;if(o.upper===`UPDATE`){let e=b(n,`SET`);if(e===-1)return null;let t=b(n,`FROM`,e),a=e,o=C(i,r,n[1],n[a]);if(!o||n[1].kind===`lparen`)return null;if(p=w(n,1,a),m=o,t!==-1&&(s===-1||t<s)){let e=C(i,r,n[t+1],n[l(s===-1?c:s)]);f=p!==null&&RegExp(`(^|[\\s,])${p.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}(\\s|$|,)`,`i`).test(e)?e:`${o}, ${e}`}else f=o}else{let e=b(n,`FROM`);if(e===-1)return null;let t=b(n,`USING`,e),a=l(t===-1?s===-1?c:s:t),o=C(i,r,n[e+1],n[a]);if(!o||n[e+1]?.kind===`lparen`)return null;let u=C(i,r,n[1],n[e]),d=u?u.split(`,`)[0].trim().replace(/^(LOW_PRIORITY|QUICK|IGNORE)\s+/i,``):``;p=d||w(n,e+1,a),m=d||o;let h=t===-1?``:C(i,r,n[t+1],n[l(s===-1?c:s)]);f=h?`${o}, ${h}`:o}return p?{select:`SELECT ${a(p)}.* FROM ${f}${u}${d}`,count:d?`SELECT COUNT(*) AS affected FROM (SELECT 1 AS one FROM ${f}${u}${d}) planche_preview`:`SELECT COUNT(*) AS affected FROM ${f}${u}`,table:m,limited:/\bLIMIT\b/i.test(d)}:null}var pe={mysql:`mysql`,maria:`mariadb`,postgres:`postgresql`,neon:`postgresql`,supabase:`postgresql`,mssql:`transactsql`,sqlite:`transactsql`,d1:`transactsql`,do:`transactsql`,oracle:null},me={mysql:()=>t(()=>import(`./R93pYE1w.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1,2])),mariadb:()=>t(()=>import(`./DOeLCbYG.js`).then(t=>e(t.default,1)),__vite__mapDeps([3,1,2])),postgresql:()=>t(()=>import(`./5E2RYjEs.js`).then(t=>e(t.default,1)),__vite__mapDeps([4,1,2])),transactsql:()=>t(()=>import(`./eRZ39OKr.js`).then(t=>e(t.default,1)),__vite__mapDeps([5,1,2]))},T=new Map,he={mysql:"`",mariadb:"`",postgresql:`"`,transactsql:`"`};function ge(e,t,n){if(!E.test(e))return e;let r=he[t],i=``,a=0;for(let t of new S(n).tokenize(e))t.kind!==`identifier`||!E.test(t.value)||(i+=e.slice(a,t.start)+r+t.value+r,a=t.end);return i+e.slice(a)}var E=/[\u0080-\uffff]/;function _e(e){return pe[e]??null}async function ve(e){let t=T.get(e);if(t)return t;let n=new(await(me[e]())).Parser;return T.set(e,n),n}function D(e){return typeof e==`object`&&!!e}function O(e){return D(e)&&e.type===`select`}function ye(e){return D(e)&&O(e.ast)?e.ast:null}function be(e){let t=e.name;return typeof t==`string`?t:t?.value??`cte`}function xe(e){let t=e.stmt;return D(t)?O(t.ast)?t.ast:O(t)?t:null:null}function Se(e){if(!e)return null;let t=e.toUpperCase();return t===`JOIN`?`INNER JOIN`:t}function Ce(e){let t=e.db??e.schema??null;return t?`${t}.${e.table}`:String(e.table)}function k(e){if(!D(e))return!1;if(e.type===`star`)return!0;let t=e.column;return!!(t===`*`||D(t)&&D(t.expr)&&t.expr.value===`*`)}function A(e){return k(e)?!D(e)||e.table===null||e.table===void 0:!1}function we(e){let t=e.columns;return t===`*`?{count:null,expandsSources:!0}:Array.isArray(t)?t.filter(e=>k(e)||k(e.expr)).length===0?{count:t.length,expandsSources:!1}:{count:null,expandsSources:t.length===1&&(A(t[0])||A(t[0].expr))}:{count:null,expandsSources:!1}}function j(e,t){if(Array.isArray(e)){for(let n of e)j(n,t);return}if(!D(e))return;let n=ye(e);if(n){t.push(n);return}for(let[n,r]of Object.entries(e))n!==`loc`&&j(r,t)}var Te=class{nodes=[];edges=[];groups=[];warnings=[];seq=0;nextId(e){return this.seq+=1,`${e}${this.seq}`}addGroup(e,t,n){let r={id:this.nextId(`g`),kind:e,label:t,parentId:n};return this.groups.push(r),r.id}addNode(e){let t={id:this.nextId(`n`),...e};return this.nodes.push(t),t}addEdge(e,t,n,r){this.edges.push({id:this.nextId(`e`),from:e,to:t,kind:n,label:r})}visitQuery(e,t,n,r,i,a){let o=[];for(let t=e;t;t=t._next)o.push(t);if(o.length===1)return this.visitSelect(e,t,n,r,i,a);let s=this.addGroup(`query`,r,t),c=(e.set_op??`union`).toUpperCase(),l=new Map(n);this.declareCtes(e,s,l);let u=o.map((e,t)=>this.visitSelect(e,s,new Map(l),`${c} (${t+1})`,`result`,`result`,t===0)),d=this.addNode({kind:i===`result`?`setop`:i,label:i===`result`?c:a,alias:null,qualifier:null,columnCount:u[0]?.columnCount??null,expandsSources:!1,groupId:s,range:null});for(let e of u)this.addEdge(e.id,d.id,`setop`,c);return d}declareCtes(e,t,n){if(Array.isArray(e.with))for(let r of e.with){let e=be(r),i=xe(r);if(!i){this.warnings.push(`CTE ${e}: body not understood`);continue}let a=this.visitQuery(i,t,new Map(n),`WITH ${e}`,`cte`,e);n.set(e.toLowerCase(),a)}}visitSelect(e,t,n,r,i,a,o=!1){let s=this.addGroup(`query`,r,t),c=new Map(n);o||this.declareCtes(e,s,c);let l=[];if(Array.isArray(e.from)&&e.from.length>0){let t=this.addGroup(`from`,`FROM`,s);e.from.forEach((e,n)=>{let r=Se(e.join),i=n===0&&!r?`from`:`join`,a=e.expr?.ast;if(a){let n=e.as??`subquery`,o=this.visitQuery(a,t,new Map(c),`FROM ${n}`,`derived`,n);l.push({node:o,kind:i,label:r});return}if(!e.table){this.warnings.push(`FROM entry not understood (function call or table expression)`);return}let o=c.get(e.table.toLowerCase()),s=this.addNode({kind:o?`cte-ref`:`table`,label:Ce(e),alias:e.as??null,qualifier:e.db??e.schema??null,columnCount:o?o.columnCount:null,expandsSources:!1,groupId:t,range:null});o&&this.addEdge(o.id,s.id,`cte`,null),l.push({node:s,kind:i,label:r})})}let u=[];for(let[t,n]of[[`SELECT`,e.columns],[`WHERE`,e.where],[`GROUP BY`,e.groupby],[`HAVING`,e.having],[`ORDER BY`,e.orderby]]){let e=[];j(n,e),e.forEach((n,r)=>{let i=e.length>1?`${t} (${r+1})`:t;u.push(this.visitQuery(n,s,new Map(c),i,`scalar`,`subquery`))})}let{count:d,expandsSources:f}=we(e),p=this.addNode({kind:i,label:a,alias:null,qualifier:null,columnCount:d,expandsSources:f,groupId:s,range:null});for(let e of l)this.addEdge(e.node.id,p.id,e.kind,e.label);for(let e of u)this.addEdge(e.id,p.id,`scalar`,null);return p}};function Ee(e){let t=Array.isArray(e)?e[0]:e;if(!O(t))return null;let n=new Te;return n.visitQuery(t,null,new Map,`query`,`result`,`result`),Array.isArray(e)&&e.length>1&&n.warnings.push(`only the first of ${e.length} statements is drawn`),{nodes:n.nodes,edges:n.edges,groups:n.groups,warnings:n.warnings}}var M=new Set([`WHERE`,`GROUP`,`HAVING`,`ORDER`,`CONNECT`,`START`,`MODEL`,`FETCH`,`OFFSET`,`FOR`,`UNION`,`INTERSECT`,`MINUS`,`EXCEPT`,`WITH`]),De=new Set([`UNION`,`INTERSECT`,`MINUS`,`EXCEPT`]),N=new Set([...M,`ON`,`USING`,`JOIN`,`INNER`,`LEFT`,`RIGHT`,`FULL`,`CROSS`,`NATURAL`,`OUTER`,`AND`,`OR`,`NOT`,`AS`,`PARTITION`,`PIVOT`,`UNPIVOT`,`SAMPLE`]),P=new Set([`INNER`,`LEFT`,`RIGHT`,`FULL`,`CROSS`,`NATURAL`,`OUTER`]);function F(e){return e?.kind===`identifier`?e.upper??e.value.toUpperCase():``}function I(e){return e!==void 0&&(e.kind===`identifier`||e.kind===`quoted_identifier`)}function L(e,t){let n=0;for(let r=t;r<e.length;r++)if(e[r].kind===`lparen`)n++;else if(e[r].kind===`rparen`&&--n===0)return r+1;return e.length}function R(e,t,n){let r=[];for(let i=t;i<n;i++){if(e[i].kind!==`lparen`)continue;let t=F(e[i+1]),a=Math.min(L(e,i),n);(t===`SELECT`||t===`WITH`)&&(r.push(V(e,i+1,a-1)),i=a-1)}return r}function z(e,t,n,r){let i=[],a=0;for(let o=t;o<n;o++)e[o].kind===`lparen`?a++:e[o].kind===`rparen`?a--:a===0&&r(e[o])&&i.push(o);return i}function B(e,t,n,r){let i=0;for(let a=t;a<n;a++)if(e[a].kind===`lparen`)i++;else if(e[a].kind===`rparen`)i--;else if(i===0&&r(e[a]))return a;return n}function Oe(e,t){let n=[_(e[t])],r=t+1;for(;e[r]?.kind===`punct`&&e[r].value===`.`&&I(e[r+1]);)n.push(_(e[r+1])),r+=2;return{parts:n,next:r}}function ke(e,t,n,r){let i=t;if(e[i]?.kind===`lparen`&&(F(e[i+1])===`SELECT`||F(e[i+1])===`WITH`)){let t=L(e,i),n=V(e,i+1,t-1),a=null,o=t;return F(e[o])===`AS`&&o++,I(e[o])&&!N.has(F(e[o]))&&(a=_(e[o])),{db:null,table:null,as:a,expr:{ast:n},...r?{join:r}:{}}}if(!I(e[i]))return null;let{parts:a,next:o}=Oe(e,i);if(i=o,e[i]?.kind===`lparen`)return null;let s=null;F(e[i])===`AS`&&i++,i<n&&I(e[i])&&!N.has(F(e[i]))&&(s=_(e[i]));let c=a[a.length-1];return{db:a.length>1?a.slice(0,-1).join(`.`):null,table:c,as:s,...r?{join:r}:{}}}function Ae(e,t,n){let r=[],i=e=>e.kind===`punct`&&e.value===`,`,a=e=>F(e)===`JOIN`||P.has(F(e)),o=z(e,t,n,e=>i(e)||a(e)),s=[{at:t,join:null}];for(let t=0;t<o.length;t++){let r=o[t];if(i(e[r])){s.push({at:r+1,join:null});continue}let a=[],c=r;for(;c<n&&(P.has(F(e[c]))||F(e[c])===`JOIN`);){if(a.push(F(e[c])),F(e[c])===`JOIN`){c++;break}c++}for(;t+1<o.length&&o[t+1]<c;)t++;s.push({at:c,join:a.join(` `)||`JOIN`})}for(let t=0;t<s.length;t++){let i=s[t],a=t+1<s.length?s[t+1].at:n,o=ke(e,i.at,a,i.join);o&&r.push(o)}return r}function V(e,t,n){let r={type:`select`,with:null,columns:`*`,from:[],where:[]},i=t;if(F(e[i])===`WITH`)for(i++,F(e[i])===`RECURSIVE`&&i++,r.with=[];i<n&&I(e[i]);){let t=_(e[i]);if(i++,e[i]?.kind===`lparen`&&F(e[i+1])!==`SELECT`&&(i=L(e,i)),F(e[i])!==`AS`||(i++,(F(e[i])===`MATERIALIZED`||F(e[i])===`NOT`&&F(e[i+1])===`MATERIALIZED`)&&(i+=F(e[i])===`NOT`?2:1),e[i]?.kind!==`lparen`))break;let n=L(e,i);if(r.with.push({name:{value:t},stmt:{ast:V(e,i+1,n-1)}}),i=n,e[i]?.kind===`punct`&&e[i].value===`,`){i++;continue}break}if(F(e[i])!==`SELECT`)return r;i++,[`DISTINCT`,`ALL`,`UNIQUE`].includes(F(e[i]))&&i++;let a=B(e,i,n,e=>F(e)===`FROM`),o=z(e,i,a,e=>e.kind===`punct`&&e.value===`,`),s=[],c=i;for(let e of o)s.push([c,e]),c=e+1;s.push([c,a]);let l=e=>e.kind===`operator`&&e.value===`*`,u=s.filter(([t,n])=>B(e,t,n,l)<n);if(r.columns=s.length===1&&u.length===1&&s[0][1]-s[0][0]===1?`*`:u.length>0?[{expr:{type:`star`}},...s.slice(1).map(()=>({}))]:s.map(([t,n])=>{let r=R(e,t,n);return r.length>0?{expr:{ast:r[0]}}:{}}),a>=n)return r;let d=B(e,a+1,n,e=>M.has(F(e)));r.from=Ae(e,a+1,d);let f=B(e,d,n,e=>De.has(F(e)));if(r.where=R(e,d,f).map(e=>({ast:e})),f<n){let t=F(e[f]),i=F(e[f+1])===`ALL`;r.set_op=`${t.toLowerCase()}${i?` all`:``}`,r._next=V(e,f+(i?2:1),n)}return r}function je(e,t){let n=new S(t).tokenize(e).filter(e=>e.kind!==`space`&&e.kind!==`comment`&&e.kind!==`terminator`);if(n.length===0)return null;let r=F(n[0]);return r!==`SELECT`&&r!==`WITH`?null:V(n,0,n.length)}var Me=new Set(`ON.USING.WHERE.GROUP.ORDER.HAVING.LIMIT.OFFSET.FETCH.WINDOW.JOIN.INNER.LEFT.RIGHT.FULL.CROSS.NATURAL.OUTER.STRAIGHT_JOIN.APPLY.UNION.INTERSECT.EXCEPT.MINUS.SELECT.FROM.WITH.AND.OR.NOT.SET.VALUES.WHEN.THEN.ELSE.END.FOR.INTO.START.CONNECT.PIVOT.AS.BY.DISTINCT.ALL.ANY.CASE.IS.NULL.IN.EXISTS.BETWEEN.LIKE.ASC.DESC.RECURSIVE.TOP.PERCENT.TIES.ROW.ROWS.ONLY.NEXT.FIRST.PARTITION.OVER.LATERAL.RETURNING.OUTPUT.PRIOR.MATERIALIZED.FILTER.INSERT.UPDATE.DELETE.CREATE.TABLE.VIEW.EXPLAIN.PRAGMA.MERGE`.split(`.`));function H(e){return e?.kind===`identifier`&&Me.has(e.upper??e.value.toUpperCase())}function U(e){return e!==void 0&&(e.kind===`identifier`||e.kind===`quoted_identifier`)}function Ne(e){let t=e.filter(e=>e.kind!==`space`&&e.kind!==`comment`),n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!U(r)||H(r))continue;let i=[_(r)],a=r;for(;U(t[e+2])&&t[e+1]?.kind===`punct`&&t[e+1].value===`.`;)a=t[e+2],i.push(_(a)),e+=2;let o=null,s=t[e+1];s?.kind===`identifier`&&s.upper===`AS`?(s=t[e+2],U(s)&&!H(s)&&(o=_(s),e+=2)):U(s)&&!H(s)&&(o=_(s),e+=1),n.push({name:i.join(`.`),alias:o,start:r.start,end:a.end,used:!1})}return n}function Pe(e){switch(e.kind){case`table`:case`cte-ref`:case`cte`:case`derived`:return e.label;default:return null}}function Fe(e,t,n){let r=Ne(new S(n).tokenize(t)),i=e.nodes.map(e=>{let t=Pe(e);if(!t)return e;let n=t.toLowerCase(),i=e.alias?.toLowerCase()??null,a=r.find(e=>!e.used&&e.name.toLowerCase()===n&&(!i||e.alias?.toLowerCase()===i))??r.find(e=>!e.used&&e.alias?.toLowerCase()===n);return a?(a.used=!0,{...e,range:[a.start,a.end]}):e});return{...e,nodes:i}}function W(e){return e.label.toLowerCase()}function G(e){let t=new Map;for(let n of e.nodes){if(n.kind!==`table`)continue;let e=W(n);if(t.has(e))continue;let r=n.label.split(`.`);t.set(e,{key:e,qualifier:r.length>1?r.slice(0,-1).join(`.`):null,table:r[r.length-1]})}return[...t.values()]}function Ie(e,t){let n=new Map,r=e.nodes.map(e=>{let r=e.kind===`table`&&e.columnCount===null&&t.has(W(e))?{...e,columnCount:t.get(W(e))??null}:{...e};return n.set(r.id,r),r}),i=new Set([`from`,`join`,`cte`,`setop`]);for(let t=0;t<r.length;t++){let t=!1;for(let a of r){if(a.columnCount!==null)continue;let r=e.edges.filter(e=>e.to===a.id&&i.has(e.kind)).map(e=>n.get(e.from)).filter(e=>e!==void 0),o=r.filter(e=>e.columnCount!==null);r.length!==0&&o.length===r.length&&(a.expandsSources?(a.columnCount=o.reduce((e,t)=>e+(t.columnCount??0),0),t=!0):r.length===1&&(a.columnCount=o[0].columnCount,t=!0))}if(!t)break}return{...e,nodes:r}}async function K(e,t){let n=_e(t.id),r;if(n)try{r=(await ve(n)).astify(ge(e,n,t.syntax),{database:n})}catch(e){return{ok:!1,reason:`parse-error`,message:e instanceof Error?e.message.split(`
8
+ `)[0]:String(e)}}else if(t.id===`oracle`)r=je(e,t.syntax);else return{ok:!1,reason:`unsupported-engine`,message:`No SQL grammar for ${t.label}`};let i=Ee(r);return i?{ok:!0,graph:Fe(i,e,t.syntax)}:{ok:!1,reason:`not-a-query`,message:`Only SELECT statements have a structure graph`}}var Le=8,Re=3,ze=[{kind:`column`,re:/unknown column '([^']+)'/i},{kind:`table`,re:/(?:unknown table|table) '([^']+)'(?: doesn't exist)?/i},{kind:`column`,re:/column "([^"]+)" does not exist/i},{kind:`table`,re:/relation "([^"]+)" does not exist/i},{kind:`column`,re:/no such column:\s*(\S+)/i},{kind:`table`,re:/no such table:\s*(\S+)/i},{kind:`column`,re:/invalid column name '([^']+)'/i},{kind:`table`,re:/invalid object name '([^']+)'/i},{kind:`column`,re:/ORA-00904:\s*"?([^":]+)"?:\s*invalid identifier/i}];function q(e){for(let{kind:t,re:n}of ze){let r=n.exec(e);if(!r)continue;let i=r[1].trim().replace(/[`"'[\]]/g,``),a=i.split(`.`).pop()??i;if(a)return{kind:t,name:a}}return null}function J(e){return e.toLowerCase().replace(/[_\s-]/g,``)}function Be(e,t,n){if(Math.abs(e.length-t.length)>n)return n+1;let r=Array.from({length:t.length+1},(e,t)=>t);for(let i=1;i<=e.length;i++){let a=[i],o=i;for(let n=1;n<=t.length;n++){let s=e[i-1]===t[n-1]?0:1,c=Math.min(r[n]+1,a[n-1]+1,r[n-1]+s);a.push(c),c<o&&(o=c)}if(o>n)return n+1;r=a}return r[t.length]}function Ve(e){return e.length<=4?1:e.length<=8?2:3}function Y(e,t,n=Re){let r=J(e);if(!r)return[];let i=Ve(r),a=[];for(let n of t){let t=J(n);if(!t||t===r){t===r&&n!==e&&a.push({name:n,d:0,prefix:!0});continue}let o=Be(r,t,i);o>i||a.push({name:n,d:o,prefix:t.startsWith(r)||r.startsWith(t)})}a.sort((e,t)=>e.d-t.d||Number(t.prefix)-Number(e.prefix)||e.name.localeCompare(t.name));let o=a.filter(e=>e.d===0);return(o.length>0?o:a).slice(0,n).map(e=>e.name)}function He(e){return e.filter(e=>e.kind!==`space`&&e.kind!==`comment`)}function Ue(e,t){let n=[],r;try{r=He(new S(t).tokenize(e))}catch{return n}let i=t.quoteIdentifier(`x`).startsWith("`");for(let e=0;e<r.length;e++){let a=r[e];if(a.kind===`quoted_identifier`&&a.value.startsWith("`")&&!i){let e=a.value.slice(1,-1);n.push({code:`syntaxSwap`,params:{engine:t.label,found:a.value,expected:t.quoteIdentifier(e)}});break}}for(let e=1;e<r.length;e++){let i=r[e];if(i.kind===`quoted_identifier`&&i.value.startsWith(`"`)&&t.syntax.doubleQuoteIsIdentifier){let a=r[e-1];if(a.kind===`operator`&&/^(=|<>|!=|<|>|<=|>=)$/.test(a.value)){n.push({code:`doubleQuotedLiteral`,params:{engine:t.label,value:i.value.slice(1,-1)}});break}}}let a=t.syntax.limitStyle;for(let e=0;e<r.length;e++){let i=r[e];if(i.kind!==`identifier`)continue;let o=r[e+1],s=o?.kind===`number`?o.value:`n`;if(i.upper===`LIMIT`&&a!==`limit`&&o?.kind===`number`){n.push({code:`syntaxSwap`,params:{engine:t.label,found:`LIMIT ${s}`,expected:a===`top`?`SELECT TOP ${s}`:`FETCH FIRST ${s} ROWS ONLY`}});break}if(i.upper===`TOP`&&a!==`top`&&o?.kind===`number`&&r[e-1]?.upper===`SELECT`){n.push({code:`syntaxSwap`,params:{engine:t.label,found:`TOP ${s}`,expected:a===`limit`?`LIMIT ${s}`:`FETCH FIRST ${s} ROWS ONLY`}});break}}return n}function We(e){let{message:t,sql:n,engine:r,columns:i,tables:a}=e,o=[],s=q(t);if(s?.kind===`column`){let e=i.size>1,t=[],n=new Map;for(let[e,r]of i)for(let i of r)t.push(i),n.has(i)||n.set(i,e);let r=Y(s.name,[...new Set(t)]);r.length>0&&o.push({code:`unknownColumn`,params:{name:s.name,suggestions:r.map(t=>e?`${n.get(t)}.${t}`:t).join(`, `)}})}if(s?.kind===`table`){let e=Y(s.name,a);e.length>0&&o.push({code:`unknownTable`,params:{name:s.name,suggestions:e.join(`, `)}})}return[...o,...Ue(n,r)]}var X=new Map,Z=new Map;function Q(e){let t=i.getState(),n=t.trees[e];return n?s(n,t.selectedNodeId[e])??c(n)[0]??null:null}function Ge(e,t){let r=o(e),i=n.getState().activeConnections.find(t=>t.id===e),a=r.capabilities.schemas?null:i?.database;return t||a||Q(e)}async function $(e,t){let i=r.getState().tabs[e]?.find(e=>e.id===t);if(!i?.error||!i.errorSql)return null;let s=o(e),c={engine:s,sql:i.errorSql,message:i.error,tables:new Map},l=n.getState().activeConnections.find(t=>t.id===e),u=s.capabilities.schemas?null:l?.database,d=i.database||u||Q(e);if(!l?.serverConnectionId||!d)return c;let f=a(l.serverConnectionId),p=await K(c.sql,s).catch(()=>null),m=p?.ok?G(p.graph).slice(0,Le):[];return await Promise.all(m.map(async({qualifier:e,table:t})=>{let n=e??d,r=`${l.serverConnectionId}|${n}|${t}`,i=X.get(r);if(i){c.tables.set(t,i);return}try{let e=await s.introspect.listColumns(f,n,t);e.length>0&&(X.set(r,e),c.tables.set(t,e))}catch{}})),c}async function Ke(e,t){let i=r.getState().tabs[e]?.find(e=>e.id===t);if(!i?.error)return[];let s=i.errorSql??``,c=o(e),l=q(i.error);if(!s)return[];if(!l)return Ue(s,c);let u=n.getState().activeConnections.find(t=>t.id===e),d=c.capabilities.schemas?null:u?.database,f=i.database||d||Q(e),p=new Map,m=[];if(u?.serverConnectionId&&f){let n=a(u.serverConnectionId);if(l.kind===`column`){let n=await $(e,t);for(let[e,t]of n?.tables??[])p.set(e,t.map(e=>e.name))}if(l.kind===`table`){let e=`${u.serverConnectionId}|${f}`,t=Z.get(e);if(t)m=t;else try{m=(await c.introspect.listTables(n,f)).map(e=>e.name);let t=await c.introspect.listViews(n,f).catch(()=>[]);m=[...m,...t],Z.set(e,m)}catch{}}}return We({message:i.error,sql:s,engine:c,columns:p,tables:m})}function qe(e,t){let r=n.getState().activeConnections.find(t=>t.id===e)?.serverConnectionId;if(!r)return;let i=t?`${r}|${t}|`:`${r}|`;for(let e of[...X.keys()])e.startsWith(i)&&X.delete(e);if(t){Z.delete(`${r}|${t}`);return}for(let e of[...Z.keys()])e.startsWith(`${r}|`)&&Z.delete(e)}export{K as a,S as c,le as d,x as f,$ as i,fe as l,Ge as n,Ie as o,ue as p,Ke as r,G as s,qe as t,_ as u};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{h as t,n}from"./BkIkgVK5.js";import{i as r,l as i,m as a,t as o}from"./C0O3rJzW.js";import{t as s}from"./CdUXbAKF.js";import{t as c}from"./DC8XCjJ3.js";import{n as l}from"./dMlgA_r1.js";import{n as u,o as d,s as f,t as p}from"./DAFA-E1-.js";import{Lt as m,c as h,it as g,l as _}from"./C9ZwrwyI.js";var v=e(t(),1),y=i();function b(){let{t:e}=a(),{activeDialog:t,closeDialog:i}=n(),[b,x]=(0,v.useState)(``),[S,C]=(0,v.useState)(``),[w,T]=(0,v.useState)(!1),[E,D]=(0,v.useState)(!1),[O,k]=(0,v.useState)(!1),[A,j]=(0,v.useState)(0),M=c(e=>e.activeConnectionId)??``,N=l(e=>M?e.activeTabId[M]:void 0)??``;if(t!==`find-replace`)return null;let P={query:b,caseSensitive:w,regex:E,wholeWord:O},F=M!==``&&N!==``&&b!==``;function I(){i()}function L(){j(F?u(M,N,P,`next`):0)}function R(){j(F?u(M,N,P,`prev`):0)}function z(){F&&j(f(M,N,P,S))}function B(){F&&(d(M,N,P,S),j(p(M,N,P)))}return(0,y.jsxs)(`div`,{className:`fixed top-12 right-4 z-50 bg-background border rounded-md shadow-lg p-3 w-[400px] space-y-2`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(_,{placeholder:e(`command.findReplace.findPlaceholder`),value:b,onChange:e=>x(e.target.value),onKeyDown:e=>{g(e)||(e.key===`Enter`&&(e.shiftKey?R():L()),e.key===`Escape`&&I())},className:`flex-1 h-7 text-sm`,autoFocus:!0}),(0,y.jsx)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap min-w-[60px] text-center`,children:A>0?e(`command.findReplace.found`,{count:A}):e(`command.findReplace.noResults`)}),(0,y.jsx)(o,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0`,onClick:R,title:e(`command.findReplace.previous`),children:(0,y.jsx)(s,{className:`h-4 w-4`})}),(0,y.jsx)(o,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0`,onClick:L,title:e(`command.findReplace.next`),children:(0,y.jsx)(m,{className:`h-4 w-4`})}),(0,y.jsx)(o,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0`,onClick:I,title:e(`command.findReplace.close`),children:(0,y.jsx)(r,{className:`h-4 w-4`})})]}),(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(_,{placeholder:e(`command.findReplace.replacePlaceholder`),value:S,onChange:e=>C(e.target.value),onKeyDown:e=>{e.key===`Escape`&&I()},className:`flex-1 h-7 text-sm`}),(0,y.jsx)(o,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,onClick:z,children:e(`command.findReplace.replace`)}),(0,y.jsx)(o,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,onClick:B,children:e(`command.findReplace.all`)})]}),(0,y.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,y.jsxs)(h,{className:`flex items-center gap-1.5 text-xs font-normal cursor-pointer`,children:[(0,y.jsx)(`input`,{type:`checkbox`,checked:w,onChange:e=>T(e.target.checked),className:`rounded border-input`}),e(`command.findReplace.caseSensitive`)]}),(0,y.jsxs)(h,{className:`flex items-center gap-1.5 text-xs font-normal cursor-pointer`,children:[(0,y.jsx)(`input`,{type:`checkbox`,checked:E,onChange:e=>D(e.target.checked),className:`rounded border-input`}),e(`command.findReplace.regex`)]}),(0,y.jsxs)(h,{className:`flex items-center gap-1.5 text-xs font-normal cursor-pointer`,children:[(0,y.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>k(e.target.checked),className:`rounded border-input`}),e(`command.findReplace.wholeWord`)]})]})]})}export{b as FindReplaceDialog};
1
+ import{r as e}from"./hePW80VL.js";import{h as t,n}from"./BkIkgVK5.js";import{i as r,l as i,m as a,t as o}from"./C0O3rJzW.js";import{t as s}from"./CdUXbAKF.js";import{t as c}from"./DC8XCjJ3.js";import{n as l}from"./dMlgA_r1.js";import{n as u,o as d,s as f,t as p}from"./DAFA-E1-.js";import{Lt as m,c as h,it as g,l as _}from"./BKoh-tKR.js";var v=e(t(),1),y=i();function b(){let{t:e}=a(),{activeDialog:t,closeDialog:i}=n(),[b,x]=(0,v.useState)(``),[S,C]=(0,v.useState)(``),[w,T]=(0,v.useState)(!1),[E,D]=(0,v.useState)(!1),[O,k]=(0,v.useState)(!1),[A,j]=(0,v.useState)(0),M=c(e=>e.activeConnectionId)??``,N=l(e=>M?e.activeTabId[M]:void 0)??``;if(t!==`find-replace`)return null;let P={query:b,caseSensitive:w,regex:E,wholeWord:O},F=M!==``&&N!==``&&b!==``;function I(){i()}function L(){j(F?u(M,N,P,`next`):0)}function R(){j(F?u(M,N,P,`prev`):0)}function z(){F&&j(f(M,N,P,S))}function B(){F&&(d(M,N,P,S),j(p(M,N,P)))}return(0,y.jsxs)(`div`,{className:`fixed top-12 right-4 z-50 bg-background border rounded-md shadow-lg p-3 w-[400px] space-y-2`,children:[(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(_,{placeholder:e(`command.findReplace.findPlaceholder`),value:b,onChange:e=>x(e.target.value),onKeyDown:e=>{g(e)||(e.key===`Enter`&&(e.shiftKey?R():L()),e.key===`Escape`&&I())},className:`flex-1 h-7 text-sm`,autoFocus:!0}),(0,y.jsx)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap min-w-[60px] text-center`,children:A>0?e(`command.findReplace.found`,{count:A}):e(`command.findReplace.noResults`)}),(0,y.jsx)(o,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0`,onClick:R,title:e(`command.findReplace.previous`),children:(0,y.jsx)(s,{className:`h-4 w-4`})}),(0,y.jsx)(o,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0`,onClick:L,title:e(`command.findReplace.next`),children:(0,y.jsx)(m,{className:`h-4 w-4`})}),(0,y.jsx)(o,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0`,onClick:I,title:e(`command.findReplace.close`),children:(0,y.jsx)(r,{className:`h-4 w-4`})})]}),(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsx)(_,{placeholder:e(`command.findReplace.replacePlaceholder`),value:S,onChange:e=>C(e.target.value),onKeyDown:e=>{e.key===`Escape`&&I()},className:`flex-1 h-7 text-sm`}),(0,y.jsx)(o,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,onClick:z,children:e(`command.findReplace.replace`)}),(0,y.jsx)(o,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,onClick:B,children:e(`command.findReplace.all`)})]}),(0,y.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,y.jsxs)(h,{className:`flex items-center gap-1.5 text-xs font-normal cursor-pointer`,children:[(0,y.jsx)(`input`,{type:`checkbox`,checked:w,onChange:e=>T(e.target.checked),className:`rounded border-input`}),e(`command.findReplace.caseSensitive`)]}),(0,y.jsxs)(h,{className:`flex items-center gap-1.5 text-xs font-normal cursor-pointer`,children:[(0,y.jsx)(`input`,{type:`checkbox`,checked:E,onChange:e=>D(e.target.checked),className:`rounded border-input`}),e(`command.findReplace.regex`)]}),(0,y.jsxs)(h,{className:`flex items-center gap-1.5 text-xs font-normal cursor-pointer`,children:[(0,y.jsx)(`input`,{type:`checkbox`,checked:O,onChange:e=>k(e.target.checked),className:`rounded border-input`}),e(`command.findReplace.wholeWord`)]})]})]})}export{b as FindReplaceDialog};
@@ -1 +1 @@
1
- import{a as e,n as t}from"./BkIkgVK5.js";import{l as n,m as r,t as i}from"./C0O3rJzW.js";import{r as a,t as o}from"./BAZqI8g_.js";import{a as s,i as c,n as l,r as u,t as d}from"./BctsL19F.js";import{n as f}from"./DP94Ond0.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Cg4DfVr4.js";import{t as y}from"./DyCj9S7N.js";var b=n();function x(){let n=t(e=>e.activeDialog),x=t(e=>e.closeDialog),S=f(),{t:C}=r();return(0,b.jsx)(v,{open:n===`general-settings`,onOpenChange:e=>{e||x()},children:(0,b.jsxs)(h,{className:`sm:max-w-[560px]`,children:[(0,b.jsxs)(p,{children:[(0,b.jsx)(g,{children:C(`settings.general.title`)}),(0,b.jsx)(_,{children:C(`settings.general.description`)})]}),(0,b.jsxs)(`div`,{className:`grid gap-2`,children:[(0,b.jsx)(y,{id:`s-history`,checked:S.persistQueryHistory,onChange:e=>S.setPersistQueryHistory(e),label:C(`settings.persistHistory`),hint:C(`settings.persistHistoryHint`)}),(0,b.jsxs)(`div`,{className:`grid grid-cols-[1fr_200px] items-center gap-3 rounded-md border p-3`,children:[(0,b.jsxs)(`div`,{className:`grid gap-0.5`,children:[(0,b.jsx)(`span`,{className:`text-sm font-medium`,children:C(`settings.language`)}),(0,b.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:C(`settings.languageHint`)})]}),(0,b.jsxs)(d,{value:S.locale,onValueChange:e=>S.setLocale(e),children:[(0,b.jsx)(c,{children:(0,b.jsx)(s,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(u,{value:`auto`,children:C(`language.auto`,{name:C(`language.${a()}`)})}),o.map(e=>(0,b.jsx)(u,{value:e,children:C(`language.${e}`)},e))]})]})]}),(0,b.jsx)(y,{id:`s-analytics`,checked:S.analyticsEnabled,onChange:S.setAnalyticsEnabled,label:C(`settings.analytics`),hint:e()?C(`settings.analyticsHint`):C(`settings.analyticsUnavailableHint`)})]}),(0,b.jsx)(m,{children:(0,b.jsx)(i,{onClick:x,children:C(`settings.done`)})})]})})}export{x as GeneralSettingsDialog};
1
+ import{a as e,n as t}from"./BkIkgVK5.js";import{l as n,m as r,t as i}from"./C0O3rJzW.js";import{r as a,t as o}from"./BAZqI8g_.js";import{a as s,i as c,n as l,r as u,t as d}from"./DL6u_OmT.js";import{n as f}from"./DP94Ond0.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Cg4DfVr4.js";import{t as y}from"./BaO3ulMH.js";var b=n();function x(){let n=t(e=>e.activeDialog),x=t(e=>e.closeDialog),S=f(),{t:C}=r();return(0,b.jsx)(v,{open:n===`general-settings`,onOpenChange:e=>{e||x()},children:(0,b.jsxs)(h,{className:`sm:max-w-[560px]`,children:[(0,b.jsxs)(p,{children:[(0,b.jsx)(g,{children:C(`settings.general.title`)}),(0,b.jsx)(_,{children:C(`settings.general.description`)})]}),(0,b.jsxs)(`div`,{className:`grid gap-2`,children:[(0,b.jsx)(y,{id:`s-history`,checked:S.persistQueryHistory,onChange:e=>S.setPersistQueryHistory(e),label:C(`settings.persistHistory`),hint:C(`settings.persistHistoryHint`)}),(0,b.jsxs)(`div`,{className:`grid grid-cols-[1fr_200px] items-center gap-3 rounded-md border p-3`,children:[(0,b.jsxs)(`div`,{className:`grid gap-0.5`,children:[(0,b.jsx)(`span`,{className:`text-sm font-medium`,children:C(`settings.language`)}),(0,b.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:C(`settings.languageHint`)})]}),(0,b.jsxs)(d,{value:S.locale,onValueChange:e=>S.setLocale(e),children:[(0,b.jsx)(c,{children:(0,b.jsx)(s,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(u,{value:`auto`,children:C(`language.auto`,{name:C(`language.${a()}`)})}),o.map(e=>(0,b.jsx)(u,{value:e,children:C(`language.${e}`)},e))]})]})]}),(0,b.jsx)(y,{id:`s-analytics`,checked:S.analyticsEnabled,onChange:S.setAnalyticsEnabled,label:C(`settings.analytics`),hint:e()?C(`settings.analyticsHint`):C(`settings.analyticsUnavailableHint`)})]}),(0,b.jsx)(m,{children:(0,b.jsx)(i,{onClick:x,children:C(`settings.done`)})})]})})}export{x as GeneralSettingsDialog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{h as t,n}from"./BkIkgVK5.js";import{l as r,m as i,t as a}from"./C0O3rJzW.js";import{a as o,i as s,n as c,r as l,t as u}from"./BctsL19F.js";import{t as d}from"./DC8XCjJ3.js";import{n as f}from"./Dht5Mpyb.js";import{l as p,m}from"./nKNVMt3o.js";import{c as h,l as g}from"./C9ZwrwyI.js";import{a as _,i as v,n as y,o as b,t as x}from"./Cg4DfVr4.js";var S=e(t(),1),C=r(),w=[`utf8mb4`,`utf8`,`latin1`,`ascii`,`binary`,`cp1251`,`euckr`,`gb2312`,`gbk`,`sjis`,`ucs2`,`utf16`,`utf32`],T={utf8mb4:[`utf8mb4_general_ci`,`utf8mb4_unicode_ci`,`utf8mb4_bin`,`utf8mb4_0900_ai_ci`],utf8:[`utf8_general_ci`,`utf8_unicode_ci`,`utf8_bin`],latin1:[`latin1_swedish_ci`,`latin1_general_ci`,`latin1_bin`],ascii:[`ascii_general_ci`,`ascii_bin`],binary:[`binary`],cp1251:[`cp1251_general_ci`,`cp1251_bin`],euckr:[`euckr_korean_ci`,`euckr_bin`],gb2312:[`gb2312_chinese_ci`,`gb2312_bin`],gbk:[`gbk_chinese_ci`,`gbk_bin`],sjis:[`sjis_japanese_ci`,`sjis_bin`],ucs2:[`ucs2_general_ci`,`ucs2_unicode_ci`,`ucs2_bin`],utf16:[`utf16_general_ci`,`utf16_unicode_ci`,`utf16_bin`],utf32:[`utf32_general_ci`,`utf32_unicode_ci`,`utf32_bin`]};function E(){let{t:e}=i(),{activeDialog:t,closeDialog:r}=n(),E=t===`create-database`,[D,O]=(0,S.useState)(``),[k,A]=(0,S.useState)(`utf8mb4`),[j,M]=(0,S.useState)(`utf8mb4_general_ci`),[N,P]=(0,S.useState)(!1),[F,I]=(0,S.useState)(null);function L(e){e||(r(),I(null),O(``),A(`utf8mb4`),M(`utf8mb4_general_ci`))}function R(e){A(e);let t=T[e];M(t?.[0]??``)}async function z(){let e=d.getState().activeConnectionId,t=D.trim();if(!(!e||!t)){I(null),P(!0);try{let n=f(e).getQuery(`CREATE_DATABASE`,t,k,j);await p(e,n),await m(e),L(!1)}catch(e){I(e instanceof Error?e.message:String(e))}finally{P(!1)}}}let B=T[k]??[];return(0,C.jsx)(x,{open:E,onOpenChange:L,children:(0,C.jsxs)(y,{className:`sm:max-w-[450px]`,children:[(0,C.jsx)(_,{children:(0,C.jsx)(b,{children:e(`database.create.title`)})}),(0,C.jsxs)(`div`,{className:`space-y-4`,children:[(0,C.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,C.jsx)(h,{htmlFor:`db-name`,children:e(`database.create.name`)}),(0,C.jsx)(g,{id:`db-name`,value:D,onChange:e=>O(e.target.value),placeholder:e(`database.create.namePlaceholder`)})]}),(0,C.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,C.jsx)(h,{htmlFor:`db-charset`,children:e(`database.create.charset`)}),(0,C.jsxs)(u,{value:k,onValueChange:R,children:[(0,C.jsx)(s,{id:`db-charset`,className:`w-full`,children:(0,C.jsx)(o,{})}),(0,C.jsx)(c,{children:w.map(e=>(0,C.jsx)(l,{value:e,children:e},e))})]})]}),(0,C.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,C.jsx)(h,{htmlFor:`db-collation`,children:e(`database.create.collation`)}),(0,C.jsxs)(u,{value:j,onValueChange:M,children:[(0,C.jsx)(s,{id:`db-collation`,className:`w-full`,children:(0,C.jsx)(o,{})}),(0,C.jsx)(c,{children:B.map(e=>(0,C.jsx)(l,{value:e,children:e},e))})]})]})]}),F&&(0,C.jsx)(`p`,{className:`px-1 text-xs text-destructive leading-relaxed`,children:F}),(0,C.jsxs)(v,{children:[(0,C.jsx)(a,{variant:`outline`,onClick:()=>L(!1),children:e(`database.create.cancel`)}),(0,C.jsx)(a,{onClick:()=>void z(),disabled:!D.trim()||N,children:e(`database.create.create`)})]})]})})}export{E as CreateDatabaseDialog};
1
+ import{r as e}from"./hePW80VL.js";import{h as t,n}from"./BkIkgVK5.js";import{l as r,m as i,t as a}from"./C0O3rJzW.js";import{a as o,i as s,n as c,r as l,t as u}from"./DL6u_OmT.js";import{t as d}from"./DC8XCjJ3.js";import{n as f}from"./Dht5Mpyb.js";import{l as p,m}from"./Bcc7p7-f.js";import{c as h,l as g}from"./BKoh-tKR.js";import{a as _,i as v,n as y,o as b,t as x}from"./Cg4DfVr4.js";var S=e(t(),1),C=r(),w=[`utf8mb4`,`utf8`,`latin1`,`ascii`,`binary`,`cp1251`,`euckr`,`gb2312`,`gbk`,`sjis`,`ucs2`,`utf16`,`utf32`],T={utf8mb4:[`utf8mb4_general_ci`,`utf8mb4_unicode_ci`,`utf8mb4_bin`,`utf8mb4_0900_ai_ci`],utf8:[`utf8_general_ci`,`utf8_unicode_ci`,`utf8_bin`],latin1:[`latin1_swedish_ci`,`latin1_general_ci`,`latin1_bin`],ascii:[`ascii_general_ci`,`ascii_bin`],binary:[`binary`],cp1251:[`cp1251_general_ci`,`cp1251_bin`],euckr:[`euckr_korean_ci`,`euckr_bin`],gb2312:[`gb2312_chinese_ci`,`gb2312_bin`],gbk:[`gbk_chinese_ci`,`gbk_bin`],sjis:[`sjis_japanese_ci`,`sjis_bin`],ucs2:[`ucs2_general_ci`,`ucs2_unicode_ci`,`ucs2_bin`],utf16:[`utf16_general_ci`,`utf16_unicode_ci`,`utf16_bin`],utf32:[`utf32_general_ci`,`utf32_unicode_ci`,`utf32_bin`]};function E(){let{t:e}=i(),{activeDialog:t,closeDialog:r}=n(),E=t===`create-database`,[D,O]=(0,S.useState)(``),[k,A]=(0,S.useState)(`utf8mb4`),[j,M]=(0,S.useState)(`utf8mb4_general_ci`),[N,P]=(0,S.useState)(!1),[F,I]=(0,S.useState)(null);function L(e){e||(r(),I(null),O(``),A(`utf8mb4`),M(`utf8mb4_general_ci`))}function R(e){A(e);let t=T[e];M(t?.[0]??``)}async function z(){let e=d.getState().activeConnectionId,t=D.trim();if(!(!e||!t)){I(null),P(!0);try{let n=f(e).getQuery(`CREATE_DATABASE`,t,k,j);await p(e,n),await m(e),L(!1)}catch(e){I(e instanceof Error?e.message:String(e))}finally{P(!1)}}}let B=T[k]??[];return(0,C.jsx)(x,{open:E,onOpenChange:L,children:(0,C.jsxs)(y,{className:`sm:max-w-[450px]`,children:[(0,C.jsx)(_,{children:(0,C.jsx)(b,{children:e(`database.create.title`)})}),(0,C.jsxs)(`div`,{className:`space-y-4`,children:[(0,C.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,C.jsx)(h,{htmlFor:`db-name`,children:e(`database.create.name`)}),(0,C.jsx)(g,{id:`db-name`,value:D,onChange:e=>O(e.target.value),placeholder:e(`database.create.namePlaceholder`)})]}),(0,C.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,C.jsx)(h,{htmlFor:`db-charset`,children:e(`database.create.charset`)}),(0,C.jsxs)(u,{value:k,onValueChange:R,children:[(0,C.jsx)(s,{id:`db-charset`,className:`w-full`,children:(0,C.jsx)(o,{})}),(0,C.jsx)(c,{children:w.map(e=>(0,C.jsx)(l,{value:e,children:e},e))})]})]}),(0,C.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,C.jsx)(h,{htmlFor:`db-collation`,children:e(`database.create.collation`)}),(0,C.jsxs)(u,{value:j,onValueChange:M,children:[(0,C.jsx)(s,{id:`db-collation`,className:`w-full`,children:(0,C.jsx)(o,{})}),(0,C.jsx)(c,{children:B.map(e=>(0,C.jsx)(l,{value:e,children:e},e))})]})]})]}),F&&(0,C.jsx)(`p`,{className:`px-1 text-xs text-destructive leading-relaxed`,children:F}),(0,C.jsxs)(v,{children:[(0,C.jsx)(a,{variant:`outline`,onClick:()=>L(!1),children:e(`database.create.cancel`)}),(0,C.jsx)(a,{onClick:()=>void z(),disabled:!D.trim()||N,children:e(`database.create.create`)})]})]})})}export{E as CreateDatabaseDialog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{h as t,n}from"./BkIkgVK5.js";import{l as r,m as i,t as a}from"./C0O3rJzW.js";import{S as o,p as s}from"./B49XtolG.js";import{Nt as c,Rt as l}from"./C9ZwrwyI.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./Cg4DfVr4.js";var g=e(t(),1),_=r();function v({text:e,label:t}){let[n,r]=(0,g.useState)(!1),i=(0,g.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{r(!0),setTimeout(()=>r(!1),1600)})},[e]);return(0,_.jsxs)(`div`,{className:`grid gap-1`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsx)(`span`,{className:`text-xs font-medium`,children:t}),(0,_.jsx)(a,{variant:`ghost`,size:`sm`,className:`h-6 gap-1 px-2 text-xs`,onClick:i,children:n?(0,_.jsx)(l,{className:`size-3`}):(0,_.jsx)(c,{className:`size-3`})})]}),(0,_.jsx)(`pre`,{"data-selectable":!0,className:`max-h-32 overflow-auto whitespace-pre-wrap break-all rounded-md border bg-muted/40 p-2 text-[11px] leading-snug`,children:e})]})}function y(){let e=n(e=>e.activeDialog),t=n(e=>e.closeDialog),{t:r}=i(),[c,l]=(0,g.useState)(null),[y,b]=(0,g.useState)(null),[x,S]=(0,g.useState)(!1),C=e===`mcp-setup`;(0,g.useEffect)(()=>{C&&s().then(e=>{l(e),S(!1)}).catch(e=>b(e instanceof Error?e.message:String(e)))},[C]);let w=(0,g.useCallback)(()=>{o().then(()=>{l(null),S(!0)})},[]),T=c?`claude mcp add --transport http planche ${c.url} \\\n -H "Authorization: Bearer ${c.token}"`:``,E=c?JSON.stringify({mcpServers:{planche:{type:`http`,url:c.url,headers:{Authorization:`Bearer ${c.token}`}}}},null,2):``;return(0,_.jsx)(h,{open:C,onOpenChange:e=>{e||t()},children:(0,_.jsxs)(f,{className:`sm:max-w-[620px]`,children:[(0,_.jsxs)(u,{children:[(0,_.jsx)(p,{children:r(`mcp.title`)}),(0,_.jsx)(m,{children:r(`mcp.description`)})]}),(0,_.jsxs)(`div`,{className:`grid gap-3`,children:[(0,_.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs`,children:[[`readsLabel`,`reads`],[`writesLabel`,`writes`],[`needsLabel`,`needs`],[`tokenLabel`,`token`]].map(([e,t])=>(0,_.jsxs)(g.Fragment,{children:[(0,_.jsx)(`dt`,{className:`font-medium`,children:r(`mcp.${e}`)}),(0,_.jsx)(`dd`,{className:`text-muted-foreground`,children:r(`mcp.${t}`)})]},e))}),y&&(0,_.jsx)(`p`,{className:`rounded-md border border-destructive/40 p-2 text-xs text-destructive`,children:y}),x&&(0,_.jsx)(`p`,{className:`rounded-md border p-2 text-xs text-muted-foreground`,children:r(`mcp.revoked`)}),c&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(v,{text:T,label:r(`mcp.command`)}),(0,_.jsx)(v,{text:E,label:r(`mcp.json`)}),(0,_.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`mcp.stored`,{path:c.path})})]})]}),(0,_.jsxs)(d,{children:[c&&(0,_.jsx)(a,{variant:`ghost`,size:`sm`,onClick:w,children:r(`mcp.revoke`)}),(0,_.jsx)(a,{size:`sm`,onClick:t,children:r(`settings.done`)})]})]})})}export{y as McpSetupDialog};
1
+ import{r as e}from"./hePW80VL.js";import{h as t,n}from"./BkIkgVK5.js";import{l as r,m as i,t as a}from"./C0O3rJzW.js";import{S as o,p as s}from"./B49XtolG.js";import{Nt as c,Rt as l}from"./BKoh-tKR.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./Cg4DfVr4.js";var g=e(t(),1),_=r();function v({text:e,label:t}){let[n,r]=(0,g.useState)(!1),i=(0,g.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{r(!0),setTimeout(()=>r(!1),1600)})},[e]);return(0,_.jsxs)(`div`,{className:`grid gap-1`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsx)(`span`,{className:`text-xs font-medium`,children:t}),(0,_.jsx)(a,{variant:`ghost`,size:`sm`,className:`h-6 gap-1 px-2 text-xs`,onClick:i,children:n?(0,_.jsx)(l,{className:`size-3`}):(0,_.jsx)(c,{className:`size-3`})})]}),(0,_.jsx)(`pre`,{"data-selectable":!0,className:`max-h-32 overflow-auto whitespace-pre-wrap break-all rounded-md border bg-muted/40 p-2 text-[11px] leading-snug`,children:e})]})}function y(){let e=n(e=>e.activeDialog),t=n(e=>e.closeDialog),{t:r}=i(),[c,l]=(0,g.useState)(null),[y,b]=(0,g.useState)(null),[x,S]=(0,g.useState)(!1),C=e===`mcp-setup`;(0,g.useEffect)(()=>{C&&s().then(e=>{l(e),S(!1)}).catch(e=>b(e instanceof Error?e.message:String(e)))},[C]);let w=(0,g.useCallback)(()=>{o().then(()=>{l(null),S(!0)})},[]),T=c?`claude mcp add --transport http planche ${c.url} \\\n -H "Authorization: Bearer ${c.token}"`:``,E=c?JSON.stringify({mcpServers:{planche:{type:`http`,url:c.url,headers:{Authorization:`Bearer ${c.token}`}}}},null,2):``;return(0,_.jsx)(h,{open:C,onOpenChange:e=>{e||t()},children:(0,_.jsxs)(f,{className:`sm:max-w-[620px]`,children:[(0,_.jsxs)(u,{children:[(0,_.jsx)(p,{children:r(`mcp.title`)}),(0,_.jsx)(m,{children:r(`mcp.description`)})]}),(0,_.jsxs)(`div`,{className:`grid gap-3`,children:[(0,_.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs`,children:[[`readsLabel`,`reads`],[`writesLabel`,`writes`],[`needsLabel`,`needs`],[`tokenLabel`,`token`]].map(([e,t])=>(0,_.jsxs)(g.Fragment,{children:[(0,_.jsx)(`dt`,{className:`font-medium`,children:r(`mcp.${e}`)}),(0,_.jsx)(`dd`,{className:`text-muted-foreground`,children:r(`mcp.${t}`)})]},e))}),y&&(0,_.jsx)(`p`,{className:`rounded-md border border-destructive/40 p-2 text-xs text-destructive`,children:y}),x&&(0,_.jsx)(`p`,{className:`rounded-md border p-2 text-xs text-muted-foreground`,children:r(`mcp.revoked`)}),c&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(v,{text:T,label:r(`mcp.command`)}),(0,_.jsx)(v,{text:E,label:r(`mcp.json`)}),(0,_.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:r(`mcp.stored`,{path:c.path})})]})]}),(0,_.jsxs)(d,{children:[c&&(0,_.jsx)(a,{variant:`ghost`,size:`sm`,onClick:w,children:r(`mcp.revoke`)}),(0,_.jsx)(a,{size:`sm`,onClick:t,children:r(`settings.done`)})]})]})})}export{y as McpSetupDialog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{h as t,n}from"./BkIkgVK5.js";import{l as r,m as i,t as a}from"./C0O3rJzW.js";import{F as o,L as s,N as c,P as l,c as u,jt as d,l as f,nt as p}from"./C9ZwrwyI.js";import{a as m,i as h,n as g,o as _,r as v,t as y}from"./Cg4DfVr4.js";import{t as b}from"./Ba8hC_60.js";var x=e(t(),1);function S(){let e=s(e=>e.status.state===`valid`);return!o()||e}var C=r(),w={offline:`sync.offline`,server:`sync.serverError`,unauthorized:`sync.serverError`,conflict:`sync.serverError`,"bad-passphrase":`sync.wrongPassphrase`,malformed:`sync.wrongPassphrase`,unsupported:`sync.serverError`};function T(){let e=n(e=>e.activeDialog),t=n(e=>e.closeDialog),{phase:r,user:o,busy:s,error:T,lastSyncedAt:E,vault:D,refresh:O,createVault:k,unlock:A,push:j,signOut:M,forgetVault:N,closeAccount:P,setError:F}=c(),{t:I}=i(),L=S(),[R,z]=(0,x.useState)(``),[B,V]=(0,x.useState)(``),[H,U]=(0,x.useState)(!1),[W,G]=(0,x.useState)(!1);(0,x.useEffect)(()=>{O()},[O]);let K=R.length>0&&R.length<10,q=B.length>0&&R!==B,J=R.length>=10&&R===B,Y=T?I(w[T]??`sync.serverError`):null,X=D?Object.keys(D.profiles).length:0,Z=()=>{z(``),V(``),F(null)};return(0,C.jsx)(y,{open:e===`sync`,onOpenChange:e=>{e||t()},children:(0,C.jsxs)(g,{className:`max-h-[85vh] overflow-y-auto sm:max-w-[560px]`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,C.jsxs)(m,{children:[(0,C.jsx)(_,{children:I(`sync.title`)}),(0,C.jsxs)(v,{children:[I(`sync.description`),o&&(0,C.jsx)(`span`,{className:`mt-1 block text-xs`,children:I(`sync.signedInAs`,{email:o.email??o.id})})]})]}),(0,C.jsxs)(`div`,{className:`grid gap-3 text-sm`,children:[(0,C.jsx)(`p`,{className:`rounded-md border bg-muted/40 p-3 text-xs text-muted-foreground`,children:I(`sync.stored`)}),r===`unavailable`&&(0,C.jsx)(`p`,{className:`rounded-md border border-amber-500/40 bg-amber-500/5 p-3 text-xs text-amber-600 dark:text-amber-400`,children:p()?I(`sync.unavailable`):I(`sync.notDeployed`)}),r===`signed-out`&&(0,C.jsxs)(a,{onClick:()=>{window.location.href=l(`github`,window.location.href)},children:[(0,C.jsx)(d,{className:`size-4`}),I(`sync.signIn`)]}),o&&!L&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.needsPro`)}),(0,C.jsx)(b,{highlight:`sync`})]}),L&&r===`no-vault`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:I(`sync.createTitle`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.createHint`)}),(0,C.jsx)(u,{htmlFor:`sync-pass`,children:I(`sync.passphrase`)}),(0,C.jsx)(f,{id:`sync-pass`,type:`password`,autoComplete:`new-password`,value:R,onChange:e=>{z(e.target.value),F(null)}}),(0,C.jsx)(u,{htmlFor:`sync-confirm`,children:I(`sync.confirm`)}),(0,C.jsx)(f,{id:`sync-confirm`,type:`password`,autoComplete:`new-password`,value:B,onChange:e=>{V(e.target.value),F(null)}}),K&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:I(`sync.tooShort`,{count:10})}),q&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:I(`sync.mismatch`)}),(0,C.jsx)(a,{disabled:!J||s,onClick:()=>{k(R).then(Z)},children:I(`sync.enable`)})]}),L&&r===`locked`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:I(`sync.unlockTitle`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.unlockHint`)}),(0,C.jsx)(u,{htmlFor:`sync-unlock`,children:I(`sync.passphrase`)}),(0,C.jsx)(f,{id:`sync-unlock`,type:`password`,autoComplete:`current-password`,value:R,onChange:e=>{z(e.target.value),F(null)}}),(0,C.jsx)(a,{disabled:!R||s,onClick:()=>{A(R).then(Z)},children:I(`sync.unlock`)})]}),L&&r===`ready`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[E?I(`sync.lastSynced`,{when:new Date(E).toLocaleString()}):I(`sync.neverSynced`),` · `,I(`sync.profiles`,{count:X})]}),(0,C.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,C.jsx)(a,{variant:`secondary`,disabled:s,onClick:()=>{U(!1),j()},children:I(`sync.syncNow`)}),(0,C.jsx)(a,{variant:`ghost`,disabled:s,onClick:()=>{c.getState().lock(),Z()},children:I(`sync.changePassphrase`)})]}),H?(0,C.jsxs)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/5 p-3`,children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs`,children:I(`sync.deleteVaultConfirm`)}),(0,C.jsxs)(`div`,{className:`flex gap-2`,children:[(0,C.jsx)(a,{variant:`destructive`,disabled:s,onClick:()=>{N().then(()=>U(!1))},children:I(`sync.deleteVault`)}),(0,C.jsx)(a,{variant:`ghost`,onClick:()=>U(!1),children:I(`settings.done`)})]})]}):(0,C.jsx)(a,{variant:`ghost`,className:`justify-start px-0 text-destructive`,onClick:()=>U(!0),children:I(`sync.deleteVault`)})]}),o&&(W?(0,C.jsxs)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/5 p-3`,children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs`,children:I(`sync.deleteAccountConfirm`)}),(0,C.jsxs)(`div`,{className:`flex gap-2`,children:[(0,C.jsx)(a,{variant:`destructive`,disabled:s,onClick:()=>{P().then(()=>G(!1))},children:I(`sync.deleteAccount`)}),(0,C.jsx)(a,{variant:`ghost`,onClick:()=>G(!1),children:I(`settings.done`)})]})]}):(0,C.jsx)(`button`,{type:`button`,onClick:()=>G(!0),className:`w-fit rounded-sm text-xs text-muted-foreground underline underline-offset-2 hover:text-destructive focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,children:I(`sync.deleteAccount`)})),s&&(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.working`)}),Y&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:Y})]}),(0,C.jsxs)(h,{children:[o&&(0,C.jsx)(a,{variant:`ghost`,disabled:s,onClick:()=>{M().then(Z)},children:I(`sync.signOut`)}),(0,C.jsx)(a,{onClick:t,children:I(`settings.done`)})]})]})})}export{T as SyncDialog};
1
+ import{r as e}from"./hePW80VL.js";import{h as t,n}from"./BkIkgVK5.js";import{l as r,m as i,t as a}from"./C0O3rJzW.js";import{F as o,L as s,N as c,P as l,c as u,jt as d,l as f,nt as p}from"./BKoh-tKR.js";import{a as m,i as h,n as g,o as _,r as v,t as y}from"./Cg4DfVr4.js";import{t as b}from"./Bww-OO8A.js";var x=e(t(),1);function S(){let e=s(e=>e.status.state===`valid`);return!o()||e}var C=r(),w={offline:`sync.offline`,server:`sync.serverError`,unauthorized:`sync.serverError`,conflict:`sync.serverError`,"bad-passphrase":`sync.wrongPassphrase`,malformed:`sync.wrongPassphrase`,unsupported:`sync.serverError`};function T(){let e=n(e=>e.activeDialog),t=n(e=>e.closeDialog),{phase:r,user:o,busy:s,error:T,lastSyncedAt:E,vault:D,refresh:O,createVault:k,unlock:A,push:j,signOut:M,forgetVault:N,closeAccount:P,setError:F}=c(),{t:I}=i(),L=S(),[R,z]=(0,x.useState)(``),[B,V]=(0,x.useState)(``),[H,U]=(0,x.useState)(!1),[W,G]=(0,x.useState)(!1);(0,x.useEffect)(()=>{O()},[O]);let K=R.length>0&&R.length<10,q=B.length>0&&R!==B,J=R.length>=10&&R===B,Y=T?I(w[T]??`sync.serverError`):null,X=D?Object.keys(D.profiles).length:0,Z=()=>{z(``),V(``),F(null)};return(0,C.jsx)(y,{open:e===`sync`,onOpenChange:e=>{e||t()},children:(0,C.jsxs)(g,{className:`max-h-[85vh] overflow-y-auto sm:max-w-[560px]`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,C.jsxs)(m,{children:[(0,C.jsx)(_,{children:I(`sync.title`)}),(0,C.jsxs)(v,{children:[I(`sync.description`),o&&(0,C.jsx)(`span`,{className:`mt-1 block text-xs`,children:I(`sync.signedInAs`,{email:o.email??o.id})})]})]}),(0,C.jsxs)(`div`,{className:`grid gap-3 text-sm`,children:[(0,C.jsx)(`p`,{className:`rounded-md border bg-muted/40 p-3 text-xs text-muted-foreground`,children:I(`sync.stored`)}),r===`unavailable`&&(0,C.jsx)(`p`,{className:`rounded-md border border-amber-500/40 bg-amber-500/5 p-3 text-xs text-amber-600 dark:text-amber-400`,children:p()?I(`sync.unavailable`):I(`sync.notDeployed`)}),r===`signed-out`&&(0,C.jsxs)(a,{onClick:()=>{window.location.href=l(`github`,window.location.href)},children:[(0,C.jsx)(d,{className:`size-4`}),I(`sync.signIn`)]}),o&&!L&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.needsPro`)}),(0,C.jsx)(b,{highlight:`sync`})]}),L&&r===`no-vault`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:I(`sync.createTitle`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.createHint`)}),(0,C.jsx)(u,{htmlFor:`sync-pass`,children:I(`sync.passphrase`)}),(0,C.jsx)(f,{id:`sync-pass`,type:`password`,autoComplete:`new-password`,value:R,onChange:e=>{z(e.target.value),F(null)}}),(0,C.jsx)(u,{htmlFor:`sync-confirm`,children:I(`sync.confirm`)}),(0,C.jsx)(f,{id:`sync-confirm`,type:`password`,autoComplete:`new-password`,value:B,onChange:e=>{V(e.target.value),F(null)}}),K&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:I(`sync.tooShort`,{count:10})}),q&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:I(`sync.mismatch`)}),(0,C.jsx)(a,{disabled:!J||s,onClick:()=>{k(R).then(Z)},children:I(`sync.enable`)})]}),L&&r===`locked`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:I(`sync.unlockTitle`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.unlockHint`)}),(0,C.jsx)(u,{htmlFor:`sync-unlock`,children:I(`sync.passphrase`)}),(0,C.jsx)(f,{id:`sync-unlock`,type:`password`,autoComplete:`current-password`,value:R,onChange:e=>{z(e.target.value),F(null)}}),(0,C.jsx)(a,{disabled:!R||s,onClick:()=>{A(R).then(Z)},children:I(`sync.unlock`)})]}),L&&r===`ready`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[E?I(`sync.lastSynced`,{when:new Date(E).toLocaleString()}):I(`sync.neverSynced`),` · `,I(`sync.profiles`,{count:X})]}),(0,C.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,C.jsx)(a,{variant:`secondary`,disabled:s,onClick:()=>{U(!1),j()},children:I(`sync.syncNow`)}),(0,C.jsx)(a,{variant:`ghost`,disabled:s,onClick:()=>{c.getState().lock(),Z()},children:I(`sync.changePassphrase`)})]}),H?(0,C.jsxs)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/5 p-3`,children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs`,children:I(`sync.deleteVaultConfirm`)}),(0,C.jsxs)(`div`,{className:`flex gap-2`,children:[(0,C.jsx)(a,{variant:`destructive`,disabled:s,onClick:()=>{N().then(()=>U(!1))},children:I(`sync.deleteVault`)}),(0,C.jsx)(a,{variant:`ghost`,onClick:()=>U(!1),children:I(`settings.done`)})]})]}):(0,C.jsx)(a,{variant:`ghost`,className:`justify-start px-0 text-destructive`,onClick:()=>U(!0),children:I(`sync.deleteVault`)})]}),o&&(W?(0,C.jsxs)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/5 p-3`,children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs`,children:I(`sync.deleteAccountConfirm`)}),(0,C.jsxs)(`div`,{className:`flex gap-2`,children:[(0,C.jsx)(a,{variant:`destructive`,disabled:s,onClick:()=>{P().then(()=>G(!1))},children:I(`sync.deleteAccount`)}),(0,C.jsx)(a,{variant:`ghost`,onClick:()=>G(!1),children:I(`settings.done`)})]})]}):(0,C.jsx)(`button`,{type:`button`,onClick:()=>G(!0),className:`w-fit rounded-sm text-xs text-muted-foreground underline underline-offset-2 hover:text-destructive focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,children:I(`sync.deleteAccount`)})),s&&(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.working`)}),Y&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:Y})]}),(0,C.jsxs)(h,{children:[o&&(0,C.jsx)(a,{variant:`ghost`,disabled:s,onClick:()=>{M().then(Z)},children:I(`sync.signOut`)}),(0,C.jsx)(a,{onClick:t,children:I(`settings.done`)})]})]})})}export{T as SyncDialog};
package/app/index.html CHANGED
@@ -50,7 +50,7 @@
50
50
  "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }
51
51
  }
52
52
  </script>
53
- <script type="module" crossorigin src="/assets/C9ZwrwyI.js"></script>
53
+ <script type="module" crossorigin src="/assets/BKoh-tKR.js"></script>
54
54
  <link rel="modulepreload" crossorigin href="/assets/hePW80VL.js">
55
55
  <link rel="modulepreload" crossorigin href="/assets/BkIkgVK5.js">
56
56
  <link rel="modulepreload" crossorigin href="/assets/C0O3rJzW.js">
@@ -69,8 +69,8 @@
69
69
  <link rel="modulepreload" crossorigin href="/assets/Dht5Mpyb.js">
70
70
  <link rel="modulepreload" crossorigin href="/assets/DAFA-E1-.js">
71
71
  <link rel="modulepreload" crossorigin href="/assets/DBHRzz66.js">
72
- <link rel="modulepreload" crossorigin href="/assets/BVMdJAj-.js">
73
- <link rel="modulepreload" crossorigin href="/assets/nKNVMt3o.js">
72
+ <link rel="modulepreload" crossorigin href="/assets/DjDcAaBy.js">
73
+ <link rel="modulepreload" crossorigin href="/assets/Bcc7p7-f.js">
74
74
  <link rel="modulepreload" crossorigin href="/assets/3z4eHGF-.js">
75
75
  <link rel="modulepreload" crossorigin href="/assets/Bs5VSn0X.js">
76
76
  <link rel="stylesheet" crossorigin href="/assets/KuSp3gJs.css">
@@ -1561,7 +1561,7 @@ var oracleDriverFactory = {
1561
1561
  // src/drivers/d1.ts
1562
1562
  var API = "https://api.cloudflare.com/client/v4";
1563
1563
  var LOCAL_API = "/cdn-cgi/local/explorer/api";
1564
- var SELECT_STAR = /^\s*SELECT\s+(?:DISTINCT\s+)?\*/i;
1564
+ var SELECT_STAR = /^\s*SELECT\s+(?:DISTINCT\s+)?(?:(?:[\w"`.]+\.)?rowid\s+AS\s+"?(_rowid_)"?\s*,\s*)?\*/i;
1565
1565
  var localRawUrl = (origin, databaseId) => `${origin}${LOCAL_API}/d1/database/${encodeURIComponent(databaseId)}/raw`;
1566
1566
  var LOOPBACK = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "[::1]", "::1", "0.0.0.0"]);
1567
1567
  function parseDevUrl(raw) {
@@ -1762,10 +1762,12 @@ var D1Driver = class {
1762
1762
  }
1763
1763
  const source = RESULT_KIND.test(text) ? singleSourceTable2(text) : null;
1764
1764
  const known = source ? await this.tableColumns(source) : null;
1765
- const names = columns.length > 0 ? columns : known && SELECT_STAR.test(text) ? [...known.keys()] : [];
1765
+ const star = columns.length === 0 && known ? SELECT_STAR.exec(text) : null;
1766
+ const rowId = star?.[1] ?? null;
1767
+ const names = columns.length > 0 ? columns : star && known ? [...rowId ? [rowId] : [], ...known.keys()] : [];
1766
1768
  const fields = names.map((name, index) => {
1767
1769
  const fromTable = known?.has(name) ?? false;
1768
- const type = (fromTable ? known?.get(name) : null) ?? inferTypeFromValue2(firstNonNull2(records, index));
1770
+ const type = (fromTable ? known?.get(name) : name === rowId ? "integer" : null) ?? inferTypeFromValue2(firstNonNull2(records, index));
1769
1771
  return {
1770
1772
  name,
1771
1773
  orgName: name,
package/dist/embed.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  PROTOCOL_VERSION,
3
3
  createAgent
4
- } from "./chunk-2Z2E3JGN.js";
4
+ } from "./chunk-XAI7WLQN.js";
5
5
 
6
6
  // src/embed.ts
7
7
  import { createRequire } from "module";
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  forgetMcpToken,
8
8
  loadGatewayConfig,
9
9
  mcpTokenPath
10
- } from "./chunk-2Z2E3JGN.js";
10
+ } from "./chunk-XAI7WLQN.js";
11
11
 
12
12
  // src/index.ts
13
13
  import { randomUUID } from "crypto";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "planche",
3
- "version": "0.8.9",
3
+ "version": "0.8.11",
4
4
  "description": "Local agent for Planche — lets the browser-based Planche SQL client reach MySQL/MariaDB/PostgreSQL/SQLite/SQL Server/Oracle/Neon/Supabase/Cloudflare D1 databases and local Durable Object storage from your machine.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://planche.dev",