diff --git a/README.md b/README.md index d30d5fe..85ad881 100644 --- a/README.md +++ b/README.md @@ -20,13 +20,14 @@ - 🚀 **跨平台** - 基于 Electron,支持 Windows、macOS、Linux - ⚡ **高性能** - 原生数据库驱动,毫秒级响应 -- 🎨 **精美 UI** - Windows Metro 风格,深色主题,无边框窗口 +- 🎨 **精美 UI** - 简约现代浅色主题,圆角设计,柔和阴影 - 🔌 **多数据库** - 支持 MySQL、PostgreSQL、SQLite、SQL Server、MongoDB、Redis、MariaDB - 📝 **智能编辑器** - Monaco Editor,SQL 语法高亮、智能补全 -- 📊 **数据编辑** - 支持直接编辑表格数据,虚拟滚动大数据量 +- 📊 **数据编辑** - 支持直接编辑表格数据,虚拟滚动大数据量,列宽可拖动调整 +- 📅 **日期选择器** - 智能识别日期字段,内置精确到秒的日期时间选择器 - 🛠️ **表设计器** - Navicat 风格,可视化编辑字段、索引、外键、表选项 - 🗃️ **完整管理** - 创建/删除/重命名/复制数据库和表 -- 📤 **导入导出** - 支持 JSON、Navicat NCX 格式连接配置导入导出 +- 📤 **导入导出** - 支持 JSON、Navicat NCX 格式连接配置导入导出(含密码解密) - 🔄 **批量操作** - 支持多选连接批量删除管理 ## 🗃️ 支持的数据库 @@ -61,7 +62,7 @@ npm install # 开发模式运行 npm run electron:dev -# 构建应用 +# 构建应用(自动递增版本号) npm run electron:build ``` @@ -69,7 +70,7 @@ npm run electron:build ``` ┌─────────────────────────────────────────────────────────────────┐ -│ 🗄️ EasySQL ─ □ ✕ │ +│ 🗄️ EasySQL v2.0 ─ □ ✕ │ ├────────────────┬────────────────────────────────────────────────┤ │ │ 🏠 主页 │ 📝 查询1 │ 📋 users │ + │ │ + 新建连接 │ ┌──────────────────────────────────────────┐ │ @@ -123,6 +124,9 @@ easysql/ │ ├── App.tsx │ ├── types.ts │ └── index.css +├── scripts/ +│ ├── bump-version.js # 版本号递增脚本 +│ └── generate-icons.js # 图标生成脚本 ├── index.html ├── package.json ├── tailwind.config.js @@ -140,8 +144,10 @@ easysql/ | `Ctrl+Shift+F` | 格式化 SQL | | `Ctrl+Q` | 新建查询 | | `Ctrl+W` | 关闭当前标签 | +| `Ctrl+C` | 复制选中单元格 | | `Ctrl+F` | 搜索(侧边栏/表格) | | `双击连接` | 快速连接数据库 | +| `双击单元格` | 编辑单元格数据 | | `右键菜单` | 连接/数据库/表操作 | ## 🔧 配置说明 @@ -158,7 +164,33 @@ easysql/ | `npm run dev` | 启动 Vite 开发服务器 | | `npm run build` | 构建前端资源 | | `npm run electron:dev` | 开发模式运行 Electron | -| `npm run electron:build` | 打包 Electron 应用 | +| `npm run electron:build` | 打包应用(自动递增补丁版本) | +| `npm run electron:build:minor` | 打包应用(递增次版本) | +| `npm run electron:build:major` | 打包应用(递增主版本) | +| `npm run version:patch` | 只递增补丁版本号 | +| `npm run version:minor` | 只递增次版本号 | +| `npm run version:major` | 只递增主版本号 | +| `npm run icons` | 生成应用图标 | + +## 📋 版本号管理 + +项目使用语义化版本号 (SemVer):`主版本.次版本.补丁版本` + +```bash +# 递增补丁版本 2.0.0 -> 2.0.1 +npm run version:patch + +# 递增次版本 2.0.0 -> 2.1.0 +npm run version:minor + +# 递增主版本 2.0.0 -> 3.0.0 +npm run version:major + +# 构建时自动递增版本号 +npm run electron:build # patch +npm run electron:build:minor # minor +npm run electron:build:major # major +``` ## 🤝 贡献 diff --git a/dist/assets/SqlEditor-BZP69oik.js b/dist/assets/SqlEditor-Da5-w0EM.js similarity index 99% rename from dist/assets/SqlEditor-BZP69oik.js rename to dist/assets/SqlEditor-Da5-w0EM.js index 9d318ad..0dd341a 100644 --- a/dist/assets/SqlEditor-BZP69oik.js +++ b/dist/assets/SqlEditor-Da5-w0EM.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./cssMode-Bh74hixD.js","./lspLanguageFeatures-IVE1ZcxG.js","./index-BVucCY0H.js","./index-aDAlVgxj.css","./htmlMode-C-m7RvRY.js","./jsonMode-LbyK3jmX.js","./tsMode-CTE83alu.js","./freemarker2-DKByNqVm.js","./handlebars-Pb6dHgaL.js","./html-VqT4czY_.js","./javascript-BdR16FBJ.js","./typescript-BXKot0Bh.js","./liquid-BqWFNjzn.js","./mdx-BybN8OAJ.js","./python-Btku80BI.js","./razor-GdNETdnY.js","./xml-suHntPJ6.js","./yaml-Cj_HG0od.js"])))=>i.map(i=>d[i]); -import{r as yt,W as am,_ as Le,j as see}from"./index-BVucCY0H.js";function C7(s,e){(e==null||e>s.length)&&(e=s.length);for(var t=0,i=Array(e);ti.map(i=>d[i]); +import{r as yt,W as am,_ as Le,j as see}from"./index-DvMrZv5L.js";function C7(s,e){(e==null||e>s.length)&&(e=s.length);for(var t=0,i=Array(e);t=s.length?s.apply(this,n):function(){for(var r=arguments.length,a=new Array(r),l=0;l1&&arguments[1]!==void 0?arguments[1]:{};J1.initial(s),J1.handler(e);var t={current:s},i=$b(Iee)(t,e),n=$b(kee)(t),o=$b(J1.changes)(s),r=$b(Dee)(t);function a(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(d){return d};return J1.selector(c),c(t.current)}function l(c){mee(i,n,o,r)(c)}return[a,l]}function Dee(s,e){return dv(e)?e(s.current):e}function kee(s,e){return s.current=y7(y7({},s.current),e),e}function Iee(s,e,t){return dv(e)?e(s.current):Object.keys(t).forEach(function(i){var n;return(n=e[i])===null||n===void 0?void 0:n.call(e,s.current[i])}),t}var Eee={create:xee},Tee={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function Nee(s){return function e(){for(var t=this,i=arguments.length,n=new Array(i),o=0;o=s.length?s.apply(this,n):function(){for(var r=arguments.length,a=new Array(r),l=0;l{o1e(n)&&i.push([`editor.${n}`,e[n]]),t&&r1e(n)&&i.push([`diffEditor.${n}`,e[n]])}),i.length>0&&s.updateValues(i)}let jO=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const i=Array.isArray(e)?e:O5.convert(e),n=new Map;for(const a of i){if(!(a instanceof Wh))throw new Error("bad edit - only text edits are supported");const l=this._modelService.getModel(a.resource);if(!l)throw new Error("bad edit - model not found");if(typeof a.versionId=="number"&&l.getVersionId()!==a.versionId)throw new Error("bad state - model changed in the meantime");let c=n.get(l);c||(c=[],n.set(l,c)),c.push(Si.replaceMove(D.lift(a.textEdit.range),a.textEdit.text))}let o=0,r=0;for(const[a,l]of n)a.pushStackElement(),a.pushEditOperations([],l,()=>[]),a.pushStackElement(),r+=1,o+=l.length;return{ariaSummary:Xg(eP.bulkEditServiceSummary,o,r),isApplied:o>0}}};jO=hc([Hi(0,ci)],jO);class kOe{getUriLabel(e,t){return e.scheme==="file"?e.fsPath:e.path}getUriBasenameLabel(e){return Vr(e)}}let qO=class extends UAe{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const n=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();n&&(t=n.getContainerDomNode())}return super.showContextView(e,t,i)}};qO=hc([Hi(0,lc),Hi(1,ct)],qO);class IOe{constructor(){this._neverEmitter=new A,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class EOe extends Xx{constructor(){super()}}class TOe extends COe{constructor(){super(new Mse)}}let KO=class extends _O{constructor(e,t,i,n,o,r){super(e,t,i,n,o,r),this.configure({blockMouse:!1})}};KO=hc([Hi(0,hs),Hi(1,ki),Hi(2,Pd),Hi(3,ut),Hi(4,jr),Hi(5,Me)],KO);const NOe={esmModuleLocation:void 0,label:"editorWorkerService"};let GO=class extends oO{constructor(e,t,i,n,o){super(NOe,e,t,i,n,o)}};GO=hc([Hi(0,ci),Hi(1,oI),Hi(2,zt),Hi(3,di),Hi(4,ue)],GO);class ROe{async playSignal(e,t){}}Xe(zt,TOe,0);Xe(He,rD,0);Xe(oI,UO,0);Xe(zX,$O,0);Xe(kd,aD,0);Xe(Sf,kOe,0);Xe(hs,DOe,0);Xe($1,LOe,0);Xe(K5,yOe,0);Xe(ki,oD,0);Xe(cc,cg,0);Xe(Di,EOe,0);Xe(pr,A2e,0);Xe(ci,yO,0);Xe(l4,SO,0);Xe(Me,HO,0);Xe(pK,SOe,0);Xe(xd,$W,0);Xe(Ds,Lve,0);Xe(go,GO,0);Xe(E1,jO,0);Xe(eQ,IOe,0);Xe(xs,VO,0);Xe(Pn,FO,0);Xe(Yr,Rye,0);Xe(Ut,zO,0);Xe(ut,N_,0);Xe(cs,OO,0);Xe(Pd,qO,0);Xe(Od,wO,0);Xe(Ao,BO,0);Xe(fr,KO,0);Xe(jr,cM,0);Xe(Md,ROe,0);Xe(X4,vOe,0);Xe(U$,Fse,0);Xe(z3,GDe,0);var Pe;(function(s){const e=new Y_;for(const[l,c]of _9())e.set(l,c);const t=new sD(e,!0);e.set(pe,t);function i(l){n||r({});const c=e.get(l);if(!c)throw new Error("Missing service "+l);return c instanceof Tl?t.invokeFunction(d=>d.get(l)):c}s.get=i;let n=!1;const o=new A;function r(l){if(n)return t;n=!0;for(const[d,h]of _9())e.get(d)||e.set(d,h);for(const d in l)if(l.hasOwnProperty(d)){const h=$e(d);e.get(h)instanceof Tl&&e.set(h,l[d])}const c=V1e();for(const d of c)try{t.createInstance(d)}catch(h){Ae(h)}return o.fire(),t}s.initialize=r;function a(l){if(n)return l();const c=new $,d=c.add(o.event(()=>{d.dispose(),c.add(l())}));return c}s.withServices=a})(Pe||(Pe={}));var MOe=function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Jz=function(s,e){return function(t,i){e(t,i,s)}},my;let YO=class{static{my=this}static{this._ttpTokenizer=rc("tokenizeToString",{createHTML(e){return e}})}constructor(e,t){this._configurationService=e,this._languageService=t}async renderCodeBlock(e,t,i){const n=sl(i.context)?i.context:void 0;let o;e?o=this._languageService.getLanguageIdByLanguageName(e):n&&(o=n.getModel()?.getLanguageId()),o||(o=ar);const r=await Hpe(this._languageService,t,o),a=my._ttpTokenizer?my._ttpTokenizer.createHTML(r)??r:r,l=document.createElement("span");l.innerHTML=a;const c=l.querySelector(".monaco-tokenized-source");return xi(c)?(yn(c,this.getFontInfo(n)),l):document.createElement("span")}getFontInfo(e){return e?e.getOption(59):mae({fontFamily:this._configurationService.getValue("editor").fontFamily},1)}};YO=my=MOe([Jz(0,He),Jz(1,Di)],YO);var jW=function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},Ft=function(s,e){return function(t,i){e(t,i,s)}};let AOe=0,eU=!1;function POe(s){if(!s){if(eU)return;eU=!0}Qne(s||Et.document.body)}let cD=class extends af{constructor(e,t,i,n,o,r,a,l,c,d,h,u,g,f){const p={...t};p.ariaLabel=p.ariaLabel||QA.editorViewAccessibleLabel,super(e,p,{},i,n,o,r,c,d,h,u,g),l instanceof N_?this._standaloneKeybindingService=l:this._standaloneKeybindingService=null,POe(p.ariaContainerElement),Dme((_,b)=>i.createInstance(u_,_,{instantHover:b},{})),Obe(a),f.setDefaultCodeBlockRenderer(i.createInstance(YO))}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const n="DYNAMIC_"+ ++AOe,o=K.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(n,e,t,o),n}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),F.None;const t=e.id,i=e.label,n=K.and(K.equals("editorId",this.getId()),K.deserialize(e.precondition)),o=e.keybindings,r=K.and(n,K.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,c=(g,...f)=>Promise.resolve(e.run(this,...f)),d=new $,h=this.getId()+":"+t;if(d.add(ot.registerCommand(h,c)),a){const g={command:{id:h,title:i},when:n,group:a,order:l};d.add(Sn.appendMenuItem(M.EditorContext,g))}if(Array.isArray(o))for(const g of o)d.add(this._standaloneKeybindingService.addDynamicKeybinding(h,g,c,r));const u=new Bq(h,i,i,void 0,n,(...g)=>Promise.resolve(e.run(this,...g)),this._contextKeyService);return this._actions.set(t,u),d.add(ge(()=>{this._actions.delete(t)})),d}_triggerCommand(e,t){if(this._codeEditorService instanceof jx)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};cD=jW([Ft(2,pe),Ft(3,ct),Ft(4,Ut),Ft(5,Me),Ft(6,$s),Ft(7,ut),Ft(8,bi),Ft(9,ki),Ft(10,Pn),Ft(11,di),Ft(12,ue),Ft(13,La)],cD);let ZO=class extends cD{constructor(e,t,i,n,o,r,a,l,c,d,h,u,g,f,p,_,b){const C={...t};lD(h,C,!1);const w=c.registerEditorContainer(e);typeof C.theme=="string"&&c.setTheme(C.theme),typeof C.autoDetectHighContrast<"u"&&c.setAutoDetectHighContrast(!!C.autoDetectHighContrast);const v=C.model;delete C.model,super(e,C,i,n,o,r,a,l,c,d,u,p,_,b),this._configurationService=h,this._standaloneThemeService=c,this._register(w);let S;if(typeof v>"u"){const L=f.getLanguageIdByMimeType(C.language)||C.language||ar;S=KQ(g,f,C.value||"",L,void 0),this._ownsModel=!0}else S=v,this._ownsModel=!1;if(this._attachModel(S),S){const L={oldModelUrl:null,newModelUrl:S.uri};this._onDidChangeModel.fire(L)}}dispose(){super.dispose()}updateOptions(e){lD(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};ZO=jW([Ft(2,pe),Ft(3,ct),Ft(4,Ut),Ft(5,Me),Ft(6,$s),Ft(7,ut),Ft(8,pr),Ft(9,ki),Ft(10,He),Ft(11,Pn),Ft(12,ci),Ft(13,Di),Ft(14,di),Ft(15,ue),Ft(16,La)],ZO);let XO=class extends Jl{constructor(e,t,i,n,o,r,a,l,c,d,h,u){const g={...t};lD(l,g,!0);const f=r.registerEditorContainer(e);typeof g.theme=="string"&&r.setTheme(g.theme),typeof g.autoDetectHighContrast<"u"&&r.setAutoDetectHighContrast(!!g.autoDetectHighContrast),super(e,g,{},n,i,o,u,d),this._configurationService=l,this._standaloneThemeService=r,this._register(f)}dispose(){super.dispose()}updateOptions(e){lD(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(cD,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};XO=jW([Ft(2,pe),Ft(3,Me),Ft(4,ct),Ft(5,pr),Ft(6,ki),Ft(7,He),Ft(8,fr),Ft(9,xd),Ft(10,Ao),Ft(11,Md)],XO);function KQ(s,e,t,i,n){if(t=t||"",!i){const o=t.indexOf(` `);let r=t;return o!==-1&&(r=t.substring(0,o)),tU(s,t,e.createByFilepathOrFirstLine(n||null,r),n)}return tU(s,t,e.createById(i),n)}function tU(s,e,t,i){return s.createModel(e,t,i)}E("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},m(142,"The background color of the diff editor's header"));E("multiDiffEditor.background",Pi,m(143,"The background color of the multi file diff editor"));E("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},m(144,"The border color of the multi file diff editor"));var OOe=function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},iU=function(s,e){return function(t,i){e(t,i,s)}};class FOe{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let QO=class extends F{constructor(e,t,i,n,o){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=n,this._viewModel=Re(this,void 0),this._collapsed=j(this,l=>this._viewModel.read(l)?.collapsed.read(l)),this._editorContentHeight=Re(this,500),this.contentHeight=j(this,l=>(this._collapsed.read(l)?0:this._editorContentHeight.read(l))+this._outerEditorHeight),this._modifiedContentWidth=Re(this,0),this._modifiedWidth=Re(this,0),this._originalContentWidth=Re(this,0),this._originalWidth=Re(this,0),this.maxScroll=j(this,l=>{const c=this._modifiedContentWidth.read(l)-this._modifiedWidth.read(l),d=this._originalContentWidth.read(l)-this._originalWidth.read(l);return c>d?{maxScroll:c,width:this._modifiedWidth.read(l)}:{maxScroll:d,width:this._originalWidth.read(l)}}),this._elements=at("div.multiDiffEntry",[at("div.header@header",[at("div.header-content",[at("div.collapse-button@collapseButton"),at("div.file-path",[at("div.title.modified.show-file-icons@primaryPath",[]),at("div.status.deleted@status",["R"]),at("div.title.original.show-file-icons@secondaryPath",[])]),at("div.actions@actions")])]),at("div.editorParent",[at("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(Jl,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=li(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=li(this.editor.getOriginalEditor()).isFocused,this.isFocused=j(this,l=>this.isModifedFocused.read(l)||this.isOriginalFocused.read(l)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new $),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const r=new jL(this._elements.collapseButton,{});this._register(Ee(l=>{r.element.className="",r.icon=this._collapsed.read(l)?Z.chevronRight:Z.chevronDown})),this._register(r.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register(Ee(l=>{this._elements.editor.style.display=this._collapsed.read(l)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(l=>{const c=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(c,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(l=>{const c=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(c,void 0)})),this._register(this.editor.onDidContentSizeChange(l=>{jb(c=>{this._editorContentHeight.set(l.contentHeight,c),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),c),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),c)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(l=>{if(this._isSettingScrollTop||!l.scrollTopChanged||!this._data)return;const c=l.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(c)})),this._register(Ee(l=>{const c=this._viewModel.read(l)?.isActive.read(l);this._elements.root.classList.toggle("active",c)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(o.createScoped(this._elements.actions));const a=this._register(this._instantiationService.createChild(new Y_([Me,this._contextKeyService])));this._register(a.createInstance(aw,this._elements.actions,M.MultiDiffEditorFileToolbar,{actionRunner:this._register(new IG(()=>this._viewModel.get()?.modifiedUri??this._viewModel.get()?.originalUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:l=>l.startsWith("navigation")},actionViewItemProvider:(l,c)=>A5(a,l,c)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(n){return{...n,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!e){jb(n=>{this._viewModel.set(void 0,n),this.editor.setDiffModel(null,n),this._dataStore.clear()});return}const i=e.viewModel.documentDiffItem;if(jb(n=>{this._resourceLabel?.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let o=!1,r=!1,a=!1,l="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(l="R",o=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(l="A",a=!0):(l="D",r=!0),this._elements.status.classList.toggle("renamed",o),this._elements.status.classList.toggle("deleted",r),this._elements.status.classList.toggle("added",a),this._elements.status.innerText=l,this._resourceLabel2?.setUri(o?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,n),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,n),this.editor.updateOptions(t(i.options??{}))}),i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange(()=>{this.editor.updateOptions(t(i.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,n=>{n||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(const[n,o]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(n,o)}render(e,t,i,n){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";const o=e.length-this._headerHeight,r=Math.max(0,Math.min(n.start-e.start,o));this._elements.header.style.transform=`translateY(${r}px)`,jb(a=>{this.editor.layout({width:t-2*8-2*1,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",r>0||i>0),this._elements.header.classList.toggle("collapsed",r===o)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};QO=OOe([iU(3,pe),iU(4,Me)],QO);class WOe{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(this._unused.size===0)t=this._create(e),this._itemData.set(t,e);else{const i=[...this._unused.values()];t=i.find(n=>this._itemData.get(n).getId()===e.getId())??i[0],this._unused.delete(t),this._itemData.set(t,e),t.setData(e)}return this._used.add(t),{object:t,dispose:()=>{this._used.delete(t),this._unused.size>5?t.dispose():this._unused.add(t)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var BOe=function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},nU=function(s,e){return function(t,i){e(t,i,s)}};let JO=class extends F{constructor(e,t,i,n,o,r){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=n,this._parentContextKeyService=o,this._parentInstantiationService=r,this._scrollableElements=at("div.scrollContent",[at("div@content",{style:{overflow:"hidden"}}),at("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new K_({forceIntegerValues:!1,scheduleAtNextAnimationFrame:c=>ao(_e(this._element),c),smoothScrollDuration:100})),this._scrollableElement=this._register(new tk(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=at("div.monaco-component.multiDiffEditor",{},[at("div",{},[this._scrollableElement.getDomNode()]),at("div.placeholder@placeholder",{},[at("div")])]),this._sizeObserver=this._register(new lG(this._element,void 0)),this._objectPool=this._register(new WOe(c=>{const d=this._instantiationService.createInstance(QO,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return d.setData(c),d})),this.scrollTop=_t(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=_t(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=j(this,c=>{const d=this._viewModel.read(c);if(!d)return{items:[],getItem:f=>{throw new Se}};const h=d.items.read(c),u=new Map;return{items:h.map(f=>{const p=c.store.add(new VOe(f,this._objectPool,this.scrollLeft,b=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+b})})),_=this._lastDocStates?.[p.getKey()];return _&&Wt(b=>{p.setViewState(_,b)}),u.set(f,p),p}),getItem:f=>u.get(f)}}),this._viewItems=this._viewItemsInfo.map(this,c=>c.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(c,d)=>c.reduce((h,u)=>h+u.contentHeight.read(d)+this._spaceBetweenPx,0)),this.activeControl=j(this,c=>{const d=this._viewModel.read(c)?.activeDiffItem.read(c);return d?this._viewItemsInfo.read(c).getItem(d).template.read(c)?.editor:void 0}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new Y_([Me,this._contextKeyService]))),this._contextKeyService.createKey(T.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register(as((c,d)=>{const h=this._viewModel.read(c);if(h&&h.contextKeys)for(const[u,g]of Object.entries(h.contextKeys)){const f=this._contextKeyService.createKey(u,void 0);f.set(g),d.add(ge(()=>f.reset()))}}));const a=this._parentContextKeyService.createKey(T.multiDiffEditorAllCollapsed.key,!1);this._register(Ee(c=>{const d=this._viewModel.read(c);if(d){const h=d.items.read(c).every(u=>u.collapsed.read(c));a.set(h)}})),this._register(Ee(c=>{const d=this._dimension.read(c);this._sizeObserver.observe(d)}));const l=j(c=>{if(this._viewItems.read(c).length>0)return;const h=this._viewModel.read(c);return!h||h.isLoading.read(c)?m(145,"Loading..."):m(146,"No Changed Files")});this._register(Ee(c=>{const d=l.read(c);this._elements.placeholder.innerText=d??"",this._elements.placeholder.classList.toggle("visible",!!d)})),this._scrollableElements.content.style.position="relative",this._register(Ee(c=>{const d=this._sizeObserver.height.read(c);this._scrollableElements.root.style.height=`${d}px`;const h=this._totalHeight.read(c);this._scrollableElements.content.style.height=`${h}px`;const u=this._sizeObserver.width.read(c);let g=u;const f=this._viewItems.read(c),p=I4(f,Yn(_=>_.maxScroll.read(c).maxScroll,xo));if(p){const _=p.maxScroll.read(c);g=u+_.maxScroll}this._scrollableElement.setScrollDimensions({width:u,height:d,scrollHeight:h,scrollWidth:g})})),e.replaceChildren(this._elements.root),this._register(ge(()=>{e.replaceChildren()})),this._register(Ee(c=>{const d=this._viewModel.read(c);if(d&&!d.isLoading.read(c)){if(d.items.read(c).length===0||d.activeDiffItem.read(c))return;this.goToNextChange()}})),this._register(this._register(Ee(c=>{jb(d=>{this.render(c)})})))}reveal(e,t){const i=this._viewItems.get(),n=i.findIndex(c=>c.viewModel.originalUri?.toString()===e.original?.toString()&&c.viewModel.modifiedUri?.toString()===e.modified?.toString());if(n===-1)throw new Se("Resource not found in diff editor");const o=i[n];this._viewModel.get().activeDiffItem.setCache(o.viewModel,void 0);let r=0;for(let c=0;cl.viewModel===i):-1;if(n===-1){this._goToFile(0,"first");return}const o=t[n];o.viewModel.collapsed.get()&&o.viewModel.collapsed.set(!1,void 0);const r=o.template.get()?.editor;if(r?.getDiffComputationResult()?.changes2?.length){const l=r.getModifiedEditor().getPosition()?.lineNumber||1,c=r.getDiffComputationResult().changes2;if(e==="next"?c.some(h=>h.modified.startLineNumber>l):c.some(h=>h.modified.endLineNumberExclusive<=l)){r.goToDiff(e);return}}const a=(n+(e==="next"?1:-1)+t.length)%t.length;this._goToFile(a,e==="next"?"first":"last")}_goToFile(e,t){const i=this._viewItems.get()[e];i.viewModel.collapsed.get()&&i.viewModel.collapsed.set(!1,void 0),this.reveal({original:i.viewModel.originalUri,modified:i.viewModel.modifiedUri});const n=i.template.get()?.editor;if(n?.getDiffComputationResult()?.changes2?.length)if(t==="first")n.revealFirstDiff();else{const o=n.getDiffComputationResult().changes2.at(-1),r=n.getModifiedEditor();r.setPosition({lineNumber:o.modified.startLineNumber,column:1}),r.revealLineInCenter(o.modified.startLineNumber)}n?.focus()}render(e){const t=this.scrollTop.read(e);let i=0,n=0,o=0;const r=this._sizeObserver.height.read(e),a=fe.ofStartAndLength(t,r),l=this._sizeObserver.width.read(e);for(const c of this._viewItems.read(e)){const d=c.contentHeight.read(e),h=Math.min(d,r),u=fe.ofStartAndLength(n,h),g=fe.ofStartAndLength(o,d);if(g.isBefore(a))i-=d-h,c.hide();else if(g.isAfter(a))c.hide();else{const f=Math.max(0,Math.min(a.start-g.start,d-h));i-=f;const p=fe.ofStartAndLength(t+i,r);c.render(u,f,l,p)}n+=h+this._spaceBetweenPx,o+=d+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+i)}px)`}};JO=BOe([nU(4,Me),nU(5,pe)],JO);function HOe(s,e){const t=s.getModel(),i=s.createDecorationsCollection([{range:e,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{s.getModel()===t&&i.clear()},350)}class VOe extends F{constructor(e,t,i,n){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=n,this._templateRef=this._register(zF(this,void 0)),this.contentHeight=j(this,o=>this._templateRef.read(o)?.object.contentHeight?.read(o)??this.viewModel.lastTemplateData.read(o).contentHeight),this.maxScroll=j(this,o=>this._templateRef.read(o)?.object.maxScroll.read(o)??{maxScroll:0,scrollWidth:0}),this.template=j(this,o=>this._templateRef.read(o)?.object),this._isHidden=Re(this,!1),this._isFocused=j(this,o=>this.template.read(o)?.isFocused.read(o)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(Ee(o=>{const r=this._scrollLeft.read(o);this._templateRef.read(o)?.object.setScrollLeft(r)})),this._register(Ee(o=>{const r=this._templateRef.read(o);!r||!this._isHidden.read(o)||r.object.isFocused.read(o)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const i=this.viewModel.lastTemplateData.get(),n=e.selections?.map(ce.liftSelection);this.viewModel.lastTemplateData.set({...i,selections:n},t);const o=this._templateRef.get();o&&n&&o.object.editor.setSelections(n)}_updateTemplateData(e){const t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){const e=this._templateRef.get();e&&Wt(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,n){this._isHidden.set(!1,void 0);let o=this._templateRef.get();if(!o){o=this._objectPool.getUnusedObj(new FOe(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(o,void 0);const r=this.viewModel.lastTemplateData.get().selections;r&&o.object.editor.setSelections(r)}o.object.render(e,i,t,n)}}var zOe=function(s,e,t,i){var n=arguments.length,o=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(r=s[a])&&(o=(n<3?r(o):n>3?r(e,t,o):r(e,t))||o);return n>3&&o&&Object.defineProperty(e,t,o),o},UOe=function(s,e){return function(t,i){e(t,i,s)}};let eF=class extends F{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=Re(this,void 0),this._viewModel=Re(this,void 0),this._widgetImpl=j(this,n=>n.store.add(this._instantiationService.createInstance(Ec(JO),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._register(Ym(this._widgetImpl))}};eF=zOe([UOe(2,pe)],eF);function $Oe(s,e,t){return Pe.initialize(t||{}).createInstance(ZO,s,e)}function jOe(s){return Pe.get(ct).onCodeEditorAdd(t=>{s(t)})}function qOe(s){return Pe.get(ct).onDiffEditorAdd(t=>{s(t)})}function KOe(){return Pe.get(ct).listCodeEditors()}function GOe(){return Pe.get(ct).listDiffEditors()}function YOe(s,e,t){return Pe.initialize(t||{}).createInstance(XO,s,e)}function ZOe(s,e){const t=Pe.initialize(e||{});return new eF(s,{},t)}function XOe(s){if(typeof s.id!="string"||typeof s.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return ot.registerCommand(s.id,s.run)}function QOe(s){if(typeof s.id!="string"||typeof s.label!="string"||typeof s.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const e=K.deserialize(s.precondition),t=(n,...o)=>sn.runEditorCommand(n,o,e,(r,a,l)=>Promise.resolve(s.run(a,...l))),i=new $;if(i.add(ot.registerCommand(s.id,t)),s.contextMenuGroupId){const n={command:{id:s.id,title:s.label},when:e,group:s.contextMenuGroupId,order:s.contextMenuOrder||0};i.add(Sn.appendMenuItem(M.EditorContext,n))}if(Array.isArray(s.keybindings)){const n=Pe.get(ut);if(!(n instanceof N_))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const o=K.and(e,K.deserialize(s.keybindingContext));i.add(n.addDynamicKeybindings(s.keybindings.map(r=>({keybinding:r,command:s.id,when:o}))))}}return i}function JOe(s){return GQ([s])}function GQ(s){const e=Pe.get(ut);return e instanceof N_?e.addDynamicKeybindings(s.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:K.deserialize(t.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),F.None)}function eFe(s,e,t){const i=Pe.get(Di),n=i.getLanguageIdByMimeType(e)||e;return KQ(Pe.get(ci),i,s,n,t)}function tFe(s,e){const t=Pe.get(Di),i=t.getLanguageIdByMimeType(e)||e||ar;s.setLanguage(t.createById(i))}function iFe(s,e,t){s&&Pe.get(cc).changeOne(e,s.uri,t)}function nFe(s){Pe.get(cc).changeAll(s,[])}function sFe(s){return Pe.get(cc).read(s)}function oFe(s){return Pe.get(cc).onMarkerChanged(s)}function rFe(s){return Pe.get(ci).getModel(s)}function aFe(){return Pe.get(ci).getModels()}function lFe(s){return Pe.get(ci).onModelAdded(s)}function cFe(s){return Pe.get(ci).onModelRemoved(s)}function dFe(s){return Pe.get(ci).onModelLanguageChanged(t=>{s({model:t.model,oldLanguage:t.oldLanguageId})})}function hFe(s){return mAe(Pe.get(ci),s)}function uFe(s,e){const t=Pe.get(Di),i=Pe.get(pr);return OW.colorizeElement(i,t,s,e).then(()=>{i.registerEditorContainer(s)})}function gFe(s,e,t){const i=Pe.get(Di);return Pe.get(pr).registerEditorContainer(Et.document.body),OW.colorize(i,s,e,t)}function fFe(s,e,t=4){return Pe.get(pr).registerEditorContainer(Et.document.body),OW.colorizeModelLine(s,e,t)}function pFe(s){const e=wi.get(s);return e||{getInitialState:()=>c_,tokenize:(t,i,n)=>Z4(s,n)}}function mFe(s,e){wi.getOrCreate(e);const t=pFe(e),i=No(s),n=[];let o=t.getInitialState();for(let r=0,a=i.length;r{if(!i)return null;const o=t.options?.selection;let r;return o&&typeof o.endLineNumber=="number"&&typeof o.endColumn=="number"?r=o:o&&(r={lineNumber:o.startLineNumber,column:o.startColumn}),await s.openCodeEditor(i,t.resource,r)?i:null})}function yFe(){return{create:$Oe,getEditors:KOe,getDiffEditors:GOe,onDidCreateEditor:jOe,onDidCreateDiffEditor:qOe,createDiffEditor:YOe,addCommand:XOe,addEditorAction:QOe,addKeybindingRule:JOe,addKeybindingRules:GQ,createModel:eFe,setModelLanguage:tFe,setModelMarkers:iFe,getModelMarkers:sFe,removeAllMarkers:nFe,onDidChangeMarkers:oFe,getModels:aFe,getModel:rFe,onDidCreateModel:lFe,onWillDisposeModel:cFe,onDidChangeModelLanguage:dFe,createWebWorker:hFe,colorizeElement:uFe,colorize:gFe,colorizeModelLine:fFe,tokenize:mFe,defineTheme:_Fe,setTheme:bFe,remeasureFonts:CFe,registerCommand:vFe,registerLinkOpener:wFe,registerEditorOpener:SFe,AccessibilitySupport:dP,ContentWidgetPositionPreference:mP,CursorChangeReason:_P,DefaultEndOfLine:bP,EditorAutoIndentStrategy:vP,EditorOption:wP,EndOfLinePreference:SP,EndOfLineSequence:yP,MinimapPosition:PP,MinimapSectionHeaderStyle:OP,MouseTargetType:FP,OverlayWidgetPositionPreference:HP,OverviewRulerLane:VP,GlyphMarginLane:LP,RenderLineNumbersType:$P,RenderMinimap:jP,ScrollbarVisibility:KP,ScrollType:qP,TextEditorCursorBlinkingStyle:eO,TextEditorCursorStyle:tO,TrackedRangeStickiness:iO,WrappingIndent:nO,InjectedTextCursorStops:kP,PositionAffinity:UP,ShowLightbulbIconMode:YP,TextDirection:JP,ConfigurationChangedEvent:vj,BareFontInfo:ef,FontInfo:Zy,TextModelResolvedOptions:B0,FindMatch:xv,ApplyUpdateResult:bC,EditorZoom:kr,createMultiFileDiffEditor:ZOe,EditorType:_1,EditorOptions:_s}}function LFe(s,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!s(t))return!1;return!0}function x0(s,e){return typeof s=="boolean"?s:e}function sU(s,e){return typeof s=="string"?s:e}function xFe(s){const e={};for(const t of s)e[t]=!0;return e}function oU(s,e=!1){e&&(s=s.map(function(i){return i.toLowerCase()}));const t=xFe(s);return e?function(i){return t[i.toLowerCase()]!==void 0&&t.hasOwnProperty(i.toLowerCase())}:function(i){return t[i]!==void 0&&t.hasOwnProperty(i)}}function tF(s,e,t){e=e.replace(/@@/g,"");let i=0,n;do n=!1,e=e.replace(/@(\w+)/g,function(r,a){n=!0;let l="";if(typeof s[a]=="string")l=s[a];else if(s[a]&&s[a]instanceof RegExp)l=s[a].source;else throw s[a]===void 0?Xt(s,"language definition does not contain attribute '"+a+"', used at: "+e):Xt(s,"attribute reference '"+a+"' must be a string, used at: "+e);return ag(l)?"":"(?:"+l+")"}),i++;while(n&&i<5);e=e.replace(/\x01/g,"@");const o=(s.ignoreCase?"i":"")+(s.unicode?"u":"");if(t&&e.match(/\$[sS](\d\d?)/g)){let a=null,l=null;return c=>(l&&a===c||(a=c,l=new RegExp(wAe(s,e,c),o)),l)}return new RegExp(e,o)}function DFe(s,e,t,i){if(i<0)return s;if(i=100){i=i-100;const n=t.split(".");if(n.unshift(t),i=0&&(i.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")i.bracket=1;else if(t.bracket==="@close")i.bracket=-1;else throw Xt(s,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw Xt(s,"the next state must be a string value in rule: "+e);{let n=t.next;if(!/^(@pop|@push|@popall)$/.test(n)&&(n[0]==="@"&&(n=n.substr(1)),n.indexOf("$")<0&&!SAe(s,dh(s,n,"",[],""))))throw Xt(s,"the next state '"+t.next+"' is not defined in rule: "+e);i.next=n}}return typeof t.goBack=="number"&&(i.goBack=t.goBack),typeof t.switchTo=="string"&&(i.switchTo=t.switchTo),typeof t.log=="string"&&(i.log=t.log),typeof t.nextEmbedded=="string"&&(i.nextEmbedded=t.nextEmbedded,s.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let n=0,o=t.length;n0&&i[0]==="^",this.name=this.name+": "+i,this.regex=tF(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")",!0)}setAction(e,t){this.action=iF(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function YQ(s,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={languageId:s,includeLF:x0(e.includeLF,!1),noThrow:!1,maxStack:100,start:typeof e.start=="string"?e.start:null,ignoreCase:x0(e.ignoreCase,!1),unicode:x0(e.unicode,!1),tokenPostfix:sU(e.tokenPostfix,"."+s),defaultToken:sU(e.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},i=e;i.languageId=s,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function n(r,a,l){for(const c of l){let d=c.include;if(d){if(typeof d!="string")throw Xt(t,"an 'include' attribute must be a string at: "+r);if(d[0]==="@"&&(d=d.substr(1)),!e.tokenizer[d])throw Xt(t,"include target '"+d+"' is not defined at: "+r);n(r+"."+d,a,e.tokenizer[d])}else{const h=new IFe(r);if(Array.isArray(c)&&c.length>=1&&c.length<=3)if(h.setRegex(i,c[0]),c.length>=3)if(typeof c[1]=="string")h.setAction(i,{token:c[1],next:c[2]});else if(typeof c[1]=="object"){const u=c[1];u.next=c[2],h.setAction(i,u)}else throw Xt(t,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+r);else h.setAction(i,c[1]);else{if(!c.regex)throw Xt(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+r);c.name&&typeof c.name=="string"&&(h.name=c.name),c.matchOnlyAtStart&&(h.matchOnlyAtLineStart=x0(c.matchOnlyAtLineStart,!1)),h.setRegex(i,c.regex),h.setAction(i,c.action)}a.push(h)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw Xt(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(const r in e.tokenizer)if(e.tokenizer.hasOwnProperty(r)){t.start||(t.start=r);const a=e.tokenizer[r];t.tokenizer[r]=new Array,n("tokenizer."+r,t.tokenizer[r],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw Xt(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const o=[];for(const r of e.brackets){let a=r;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw Xt(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+` - hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")o.push({token:a.token+t.tokenPostfix,open:fd(t,a.open),close:fd(t,a.close)});else throw Xt(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=o,t.noThrow=!0,t}function EFe(s){Xm.registerLanguage(s)}function TFe(){let s=[];return s=s.concat(Xm.getLanguages()),s}function NFe(s){return Pe.get(Di).languageIdCodec.encodeLanguageId(s)}function RFe(s,e){return Pe.withServices(()=>{const i=Pe.get(Di).onDidRequestRichLanguageFeatures(n=>{n===s&&(i.dispose(),e())});return i})}function MFe(s,e){return Pe.withServices(()=>{const i=Pe.get(Di).onDidRequestBasicLanguageFeatures(n=>{n===s&&(i.dispose(),e())});return i})}function AFe(s,e){if(!Pe.get(Di).isRegisteredLanguageId(s))throw new Error(`Cannot set configuration for unknown language ${s}`);return Pe.get(di).register(s,e,100)}class PFe{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return Gw.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const n=this._actual.tokenizeEncoded(e,i);return new ak(n.tokens,n.endState)}}class Gw{constructor(e,t,i,n){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=n}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let n=0;for(let o=0,r=e.length;o0&&o[r-1]===u)continue;let g=h.startIndex;c===0?g=0:g{const i=await Promise.resolve(e.create());return i?OFe(i)?XQ(s,i):new Vw(Pe.get(Di),Pe.get(pr),s,YQ(s,i),Pe.get(He)):null});return wi.registerFactory(s,t)}function BFe(s,e){if(!Pe.get(Di).isRegisteredLanguageId(s))throw new Error(`Cannot set tokens provider for unknown language ${s}`);return ZQ(e)?qW(s,{create:()=>e}):wi.register(s,XQ(s,e))}function HFe(s,e){const t=i=>new Vw(Pe.get(Di),Pe.get(pr),s,YQ(s,i),Pe.get(He));return ZQ(e)?qW(s,{create:()=>e}):wi.register(s,t(e))}function VFe(s,e){return Pe.get(ue).referenceProvider.register(s,e)}function zFe(s,e){return Pe.get(ue).renameProvider.register(s,e)}function UFe(s,e){return Pe.get(ue).newSymbolNamesProvider.register(s,e)}function $Fe(s,e){return Pe.get(ue).signatureHelpProvider.register(s,e)}function jFe(s,e){return Pe.get(ue).hoverProvider.register(s,{provideHover:async(i,n,o,r)=>{const a=i.getWordAtPosition(n);return Promise.resolve(e.provideHover(i,n,o,r)).then(l=>{if(l)return!l.range&&a&&(l.range=new D(n.lineNumber,a.startColumn,n.lineNumber,a.endColumn)),l.range||(l.range=new D(n.lineNumber,n.column,n.lineNumber,n.column)),l})}})}function qFe(s,e){return Pe.get(ue).documentSymbolProvider.register(s,e)}function KFe(s,e){return Pe.get(ue).documentHighlightProvider.register(s,e)}function GFe(s,e){return Pe.get(ue).linkedEditingRangeProvider.register(s,e)}function YFe(s,e){return Pe.get(ue).definitionProvider.register(s,e)}function ZFe(s,e){return Pe.get(ue).implementationProvider.register(s,e)}function XFe(s,e){return Pe.get(ue).typeDefinitionProvider.register(s,e)}function QFe(s,e){return Pe.get(ue).codeLensProvider.register(s,e)}function JFe(s,e,t){return Pe.get(ue).codeActionProvider.register(s,{providedCodeActionKinds:t?.providedCodeActionKinds,documentation:t?.documentation,provideCodeActions:(n,o,r,a)=>{const c=Pe.get(cc).read({resource:n.uri}).filter(d=>D.areIntersectingOrTouching(d,o));return e.provideCodeActions(n,o,{markers:c,only:r.only,trigger:r.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function e4e(s,e){return Pe.get(ue).documentFormattingEditProvider.register(s,e)}function t4e(s,e){return Pe.get(ue).documentRangeFormattingEditProvider.register(s,e)}function i4e(s,e){return Pe.get(ue).onTypeFormattingEditProvider.register(s,e)}function n4e(s,e){return Pe.get(ue).linkProvider.register(s,e)}function s4e(s,e){return Pe.get(ue).completionProvider.register(s,e)}function o4e(s,e){return Pe.get(ue).colorProvider.register(s,e)}function r4e(s,e){return Pe.get(ue).foldingRangeProvider.register(s,e)}function a4e(s,e){return Pe.get(ue).declarationProvider.register(s,e)}function l4e(s,e){return Pe.get(ue).selectionRangeProvider.register(s,e)}function c4e(s,e){return Pe.get(ue).documentSemanticTokensProvider.register(s,e)}function d4e(s,e){return Pe.get(ue).documentRangeSemanticTokensProvider.register(s,e)}function h4e(s,e){return Pe.get(ue).inlineCompletionsProvider.register(s,e)}function u4e(s,e){return Pe.get(ue).inlayHintsProvider.register(s,e)}function g4e(){return{register:EFe,getLanguages:TFe,onLanguage:RFe,onLanguageEncountered:MFe,getEncodedLanguageId:NFe,setLanguageConfiguration:AFe,setColorMap:WFe,registerTokensProviderFactory:qW,setTokensProvider:BFe,setMonarchTokensProvider:HFe,registerReferenceProvider:VFe,registerRenameProvider:zFe,registerNewSymbolNameProvider:UFe,registerCompletionItemProvider:s4e,registerSignatureHelpProvider:$Fe,registerHoverProvider:jFe,registerDocumentSymbolProvider:qFe,registerDocumentHighlightProvider:KFe,registerLinkedEditingRangeProvider:GFe,registerDefinitionProvider:YFe,registerImplementationProvider:ZFe,registerTypeDefinitionProvider:XFe,registerCodeLensProvider:QFe,registerCodeActionProvider:JFe,registerDocumentFormattingEditProvider:e4e,registerDocumentRangeFormattingEditProvider:t4e,registerOnTypeFormattingEditProvider:i4e,registerLinkProvider:n4e,registerColorProvider:o4e,registerFoldingRangeProvider:r4e,registerDeclarationProvider:a4e,registerSelectionRangeProvider:l4e,registerDocumentSemanticTokensProvider:c4e,registerDocumentRangeSemanticTokensProvider:d4e,registerInlineCompletionsProvider:h4e,registerInlayHintsProvider:u4e,DocumentHighlightKind:CP,CompletionItemKind:gP,CompletionItemTag:fP,CompletionItemInsertTextRule:uP,SymbolKind:XP,SymbolTag:QP,IndentAction:DP,CompletionTriggerKind:pP,SignatureHelpTriggerKind:ZP,InlayHintKind:IP,InlineCompletionTriggerKind:NP,CodeActionTriggerType:hP,NewSymbolNameTag:WP,NewSymbolNameTriggerKind:BP,PartialAcceptTriggerKind:zP,HoverVerbosityAction:xP,InlineCompletionEndOfLifeReasonKind:EP,InlineCompletionHintStyle:TP,FoldingRangeKind:Of,SelectedSuggestionInfo:Lq,EditDeltaInfo:Xv}}_s.wrappingIndent.defaultValue=0;_s.glyphMargin.defaultValue=!1;_s.autoIndent.defaultValue=3;_s.overviewRulerLanes.defaultValue=2;S_.setFormatterSelector((s,e,t)=>Promise.resolve(s[0]));const qs=LQ();qs.editor=yFe();qs.languages=g4e();const QQ=qs.CancellationTokenSource,su=qs.Emitter,JQ=qs.KeyCode,eJ=qs.KeyMod,Hd=qs.Position,ob=qs.Range,tJ=qs.Selection,iJ=qs.SelectionDirection,ha=qs.MarkerSeverity,dD=qs.MarkerTag,CI=qs.Uri,nJ=qs.Token,ql=qs.editor,he=qs.languages,f4e=uF(),Vm=globalThis;(f4e?.globalAPI||typeof Vm.define=="function"&&Vm.define.amd)&&(Vm.monaco=qs);typeof Vm.require<"u"&&typeof Vm.require.config=="function"&&Vm.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const p4e=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:QQ,Emitter:su,KeyCode:JQ,KeyMod:eJ,MarkerSeverity:ha,MarkerTag:dD,Position:Hd,Range:ob,Selection:tJ,SelectionDirection:iJ,Token:nJ,Uri:CI,editor:ql,languages:he},Symbol.toStringTag,{value:"Module"}));let KW=class{constructor(e,t,i){this._onDidChange=new su,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const GW={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},YW={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},sJ=new KW("css",GW,YW),oJ=new KW("scss",GW,YW),rJ=new KW("less",GW,YW);function ZW(){return Le(()=>import("./cssMode-Bh74hixD.js"),__vite__mapDeps([0,1,2,3]),import.meta.url)}he.onLanguage("less",()=>{ZW().then(s=>s.setupMode(rJ))});he.onLanguage("scss",()=>{ZW().then(s=>s.setupMode(oJ))});he.onLanguage("css",()=>{ZW().then(s=>s.setupMode(sJ))});const aJ=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults:sJ,lessDefaults:rJ,scssDefaults:oJ},Symbol.toStringTag,{value:"Module"}));let m4e=class{constructor(e,t,i){this._onDidChange=new su,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const _4e={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},vI={format:_4e,suggest:{},data:{useDefaultDataProvider:!0}};function wI(s){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:s===cv,documentFormattingEdits:s===cv,documentRangeFormattingEdits:s===cv}}const cv="html",rU="handlebars",aU="razor",lJ=SI(cv,vI,wI(cv)),b4e=lJ.defaults,cJ=SI(rU,vI,wI(rU)),C4e=cJ.defaults,dJ=SI(aU,vI,wI(aU)),v4e=dJ.defaults;function w4e(){return Le(()=>import("./htmlMode-C-m7RvRY.js"),__vite__mapDeps([4,1,2,3]),import.meta.url)}function SI(s,e=vI,t=wI(s)){const i=new m4e(s,e,t);let n;const o=he.onLanguage(s,async()=>{n=(await w4e()).setupMode(i)});return{defaults:i,dispose(){o.dispose(),n?.dispose(),n=void 0}}}const hJ=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults:C4e,handlebarLanguageService:cJ,htmlDefaults:b4e,htmlLanguageService:lJ,razorDefaults:v4e,razorLanguageService:dJ,registerHTMLLanguageService:SI},Symbol.toStringTag,{value:"Module"}));let S4e=class{constructor(e,t,i){this._onDidChange=new su,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const y4e={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},L4e={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},uJ=new S4e("json",y4e,L4e),x4e=()=>gJ().then(s=>s.getWorker());function gJ(){return Le(()=>import("./jsonMode-LbyK3jmX.js"),__vite__mapDeps([5,1,2,3]),import.meta.url)}he.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});he.onLanguage("json",()=>{gJ().then(s=>s.setupMode(uJ))});const fJ=Object.freeze(Object.defineProperty({__proto__:null,getWorker:x4e,jsonDefaults:uJ},Symbol.toStringTag,{value:"Module"})),D4e="5.9.3";var pJ=(s=>(s[s.None=0]="None",s[s.CommonJS=1]="CommonJS",s[s.AMD=2]="AMD",s[s.UMD=3]="UMD",s[s.System=4]="System",s[s.ES2015=5]="ES2015",s[s.ESNext=99]="ESNext",s))(pJ||{}),mJ=(s=>(s[s.None=0]="None",s[s.Preserve=1]="Preserve",s[s.React=2]="React",s[s.ReactNative=3]="ReactNative",s[s.ReactJSX=4]="ReactJSX",s[s.ReactJSXDev=5]="ReactJSXDev",s))(mJ||{}),_J=(s=>(s[s.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",s[s.LineFeed=1]="LineFeed",s))(_J||{}),bJ=(s=>(s[s.ES3=0]="ES3",s[s.ES5=1]="ES5",s[s.ES2015=2]="ES2015",s[s.ES2016=3]="ES2016",s[s.ES2017=4]="ES2017",s[s.ES2018=5]="ES2018",s[s.ES2019=6]="ES2019",s[s.ES2020=7]="ES2020",s[s.ESNext=99]="ESNext",s[s.JSON=100]="JSON",s[s.Latest=99]="Latest",s))(bJ||{}),CJ=(s=>(s[s.Classic=1]="Classic",s[s.NodeJs=2]="NodeJs",s))(CJ||{});class vJ{constructor(e,t,i,n,o){this._onDidChange=new su,this._onDidExtraLibsChange=new su,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(n),this.setModeConfiguration(o),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(typeof t>"u"?i=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i=t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let n=1;return this._removedExtraLibs[i]&&(n=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(n=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:n},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let o=this._extraLibs[i];o&&o.version===n&&(delete this._extraLibs[i],this._removedExtraLibs[i]=n,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const i=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,n=t.content;let o=1;this._removedExtraLibs[i]&&(o=this._removedExtraLibs[i]+1),this._extraLibs[i]={content:n,version:o}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}}const k4e=D4e,wJ={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},SJ=new vJ({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},wJ),yJ=new vJ({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},wJ),I4e=()=>yI().then(s=>s.getTypeScriptWorker()),E4e=()=>yI().then(s=>s.getJavaScriptWorker());function yI(){return Le(()=>import("./tsMode-CTE83alu.js"),__vite__mapDeps([6,2,3]),import.meta.url)}he.onLanguage("typescript",()=>yI().then(s=>s.setupTypeScript(SJ)));he.onLanguage("javascript",()=>yI().then(s=>s.setupJavaScript(yJ)));const LJ=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit:mJ,ModuleKind:pJ,ModuleResolutionKind:CJ,NewLineKind:_J,ScriptTarget:bJ,getJavaScriptWorker:E4e,getTypeScriptWorker:I4e,javascriptDefaults:yJ,typescriptDefaults:SJ,typescriptVersion:k4e},Symbol.toStringTag,{value:"Module"})),xJ={},iN={};class XW{static getOrCreate(e){return iN[e]||(iN[e]=new XW(e)),iN[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,i)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=i})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,xJ[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function Ie(s){const e=s.id;xJ[e]=s,he.register(s);const t=XW.getOrCreate(e);he.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),he.onLanguageEncountered(e,async()=>{const i=await t.load();he.setLanguageConfiguration(e,i.conf)})}Ie({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>Le(()=>import("./abap-DLDM7-KI.js"),[],import.meta.url)});Ie({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>Le(()=>import("./apex-DNDY2TF8.js"),[],import.meta.url)});Ie({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>Le(()=>import("./azcli-Y6nb8tq_.js"),[],import.meta.url)});Ie({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>Le(()=>import("./bat-BwHxbl9M.js"),[],import.meta.url)});Ie({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>Le(()=>import("./bicep-CFznDFnq.js"),[],import.meta.url)});Ie({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>Le(()=>import("./cameligo-Bf6VGUru.js"),[],import.meta.url)});Ie({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>Le(()=>import("./clojure-Dnu-v4kV.js"),[],import.meta.url)});Ie({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>Le(()=>import("./coffee-Bd8akH9Z.js"),[],import.meta.url)});Ie({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>Le(()=>import("./cpp-BbWJElDN.js"),[],import.meta.url)});Ie({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>Le(()=>import("./cpp-BbWJElDN.js"),[],import.meta.url)});Ie({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>Le(()=>import("./csharp-Co3qMtFm.js"),[],import.meta.url)});Ie({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>Le(()=>import("./csp-D-4FJmMZ.js"),[],import.meta.url)});Ie({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>Le(()=>import("./css-DdJfP1eB.js"),[],import.meta.url)});Ie({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>Le(()=>import("./cypher-cTPe9QuQ.js"),[],import.meta.url)});Ie({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>Le(()=>import("./dart-BOtBlQCF.js"),[],import.meta.url)});Ie({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>Le(()=>import("./dockerfile-BG73LgW2.js"),[],import.meta.url)});Ie({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>Le(()=>import("./ecl-BEgZUVRK.js"),[],import.meta.url)});Ie({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>Le(()=>import("./elixir-BkW5O-1t.js"),[],import.meta.url)});Ie({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>Le(()=>import("./flow9-BeJ5waoc.js"),[],import.meta.url)});Ie({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>Le(()=>import("./fsharp-PahG7c26.js"),[],import.meta.url)});Ie({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>Le(()=>import("./freemarker2-DKByNqVm.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAutoInterpolationDollar)});Ie({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>Le(()=>import("./freemarker2-DKByNqVm.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAngleInterpolationDollar)});Ie({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>Le(()=>import("./freemarker2-DKByNqVm.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagBracketInterpolationDollar)});Ie({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>Le(()=>import("./freemarker2-DKByNqVm.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAngleInterpolationBracket)});Ie({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>Le(()=>import("./freemarker2-DKByNqVm.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagBracketInterpolationBracket)});Ie({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>Le(()=>import("./freemarker2-DKByNqVm.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAutoInterpolationDollar)});Ie({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>Le(()=>import("./freemarker2-DKByNqVm.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAutoInterpolationBracket)});Ie({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>Le(()=>import("./go-acbASCJo.js"),[],import.meta.url)});Ie({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>Le(()=>import("./graphql-BxJiqAUM.js"),[],import.meta.url)});Ie({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>Le(()=>import("./handlebars-Pb6dHgaL.js"),__vite__mapDeps([8,2,3]),import.meta.url)});Ie({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>Le(()=>import("./hcl-DtV1sZF8.js"),[],import.meta.url)});Ie({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>Le(()=>import("./html-VqT4czY_.js"),__vite__mapDeps([9,2,3]),import.meta.url)});Ie({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>Le(()=>import("./ini-Kd9XrMLS.js"),[],import.meta.url)});Ie({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>Le(()=>import("./java-CXBNlu9o.js"),[],import.meta.url)});Ie({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>Le(()=>import("./javascript-BdR16FBJ.js"),__vite__mapDeps([10,11,2,3]),import.meta.url)});Ie({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>Le(()=>import("./julia-cl7-CwDS.js"),[],import.meta.url)});Ie({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>Le(()=>import("./kotlin-s7OhZKlX.js"),[],import.meta.url)});Ie({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>Le(()=>import("./less-9HpZscsL.js"),[],import.meta.url)});Ie({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>Le(()=>import("./lexon-OrD6JF1K.js"),[],import.meta.url)});Ie({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>Le(()=>import("./lua-Cyyb5UIc.js"),[],import.meta.url)});Ie({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>Le(()=>import("./liquid-BqWFNjzn.js"),__vite__mapDeps([12,2,3]),import.meta.url)});Ie({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>Le(()=>import("./m3-B8OfTtLu.js"),[],import.meta.url)});Ie({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>Le(()=>import("./markdown-BFxVWTOG.js"),[],import.meta.url)});Ie({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>Le(()=>import("./mdx-BybN8OAJ.js"),__vite__mapDeps([13,2,3]),import.meta.url)});Ie({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>Le(()=>import("./mips-CiqrrVzr.js"),[],import.meta.url)});Ie({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>Le(()=>import("./msdax-DmeGPVcC.js"),[],import.meta.url)});Ie({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>Le(()=>import("./mysql-C_tMU-Nz.js"),[],import.meta.url)});Ie({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>Le(()=>import("./objective-c-BDtDVThU.js"),[],import.meta.url)});Ie({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>Le(()=>import("./pascal-vHIfCaH5.js"),[],import.meta.url)});Ie({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>Le(()=>import("./pascaligo-DtZ0uQbO.js"),[],import.meta.url)});Ie({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>Le(()=>import("./perl-Ub6l9XKa.js"),[],import.meta.url)});Ie({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>Le(()=>import("./pgsql-BlNEE0v7.js"),[],import.meta.url)});Ie({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>Le(()=>import("./php-BBUBE1dy.js"),[],import.meta.url)});Ie({id:"pla",extensions:[".pla"],loader:()=>Le(()=>import("./pla-DSh2-awV.js"),[],import.meta.url)});Ie({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>Le(()=>import("./postiats-CocnycG-.js"),[],import.meta.url)});Ie({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>Le(()=>import("./powerquery-tScXyioY.js"),[],import.meta.url)});Ie({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>Le(()=>import("./powershell-COWaemsV.js"),[],import.meta.url)});Ie({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>Le(()=>import("./protobuf-Brw8urJB.js"),[],import.meta.url)});Ie({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>Le(()=>import("./pug-8SOpv6rk.js"),[],import.meta.url)});Ie({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>Le(()=>import("./python-Btku80BI.js"),__vite__mapDeps([14,2,3]),import.meta.url)});Ie({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>Le(()=>import("./qsharp-Bw9ernYp.js"),[],import.meta.url)});Ie({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>Le(()=>import("./r-j7ic8hl3.js"),[],import.meta.url)});Ie({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>Le(()=>import("./razor-GdNETdnY.js"),__vite__mapDeps([15,2,3]),import.meta.url)});Ie({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>Le(()=>import("./redis-Bu5POkcn.js"),[],import.meta.url)});Ie({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>Le(()=>import("./redshift-Bs9aos_-.js"),[],import.meta.url)});Ie({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>Le(()=>import("./restructuredtext-CqXO7rUv.js"),[],import.meta.url)});Ie({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>Le(()=>import("./ruby-zBfavPgS.js"),[],import.meta.url)});Ie({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>Le(()=>import("./rust-BzKRNQWT.js"),[],import.meta.url)});Ie({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>Le(()=>import("./sb-BBc9UKZt.js"),[],import.meta.url)});Ie({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>Le(()=>import("./scala-D9hQfWCl.js"),[],import.meta.url)});Ie({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>Le(()=>import("./scheme-BPhDTwHR.js"),[],import.meta.url)});Ie({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>Le(()=>import("./scss-CBJaRo0y.js"),[],import.meta.url)});Ie({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>Le(()=>import("./shell-DiJ1NA_G.js"),[],import.meta.url)});Ie({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>Le(()=>import("./solidity-Db0IVjzk.js"),[],import.meta.url)});Ie({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>Le(()=>import("./sophia-CnS9iZB_.js"),[],import.meta.url)});Ie({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>Le(()=>import("./sparql-CJmd_6j2.js"),[],import.meta.url)});Ie({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>Le(()=>import("./sql-ClhHkBeG.js"),[],import.meta.url)});Ie({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>Le(()=>import("./st-CHwy0fLd.js"),[],import.meta.url)});Ie({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>Le(()=>import("./swift-Bqt4WxQ4.js"),[],import.meta.url)});Ie({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>Le(()=>import("./systemverilog-Bs9z6M-B.js"),[],import.meta.url)});Ie({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>Le(()=>import("./systemverilog-Bs9z6M-B.js"),[],import.meta.url)});Ie({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>Le(()=>import("./tcl-Dm6ycUr_.js"),[],import.meta.url)});Ie({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>Le(()=>import("./twig-Csy3S7wG.js"),[],import.meta.url)});Ie({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>Le(()=>import("./typescript-BXKot0Bh.js"),__vite__mapDeps([11,2,3]),import.meta.url)});Ie({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>Le(()=>import("./typespec-Btyra-wh.js"),[],import.meta.url)});Ie({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>Le(()=>import("./vb-Db0cS2oM.js"),[],import.meta.url)});Ie({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>Le(()=>import("./wgsl-BTesnYfV.js"),[],import.meta.url)});Ie({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\Le(()=>import("./xml-suHntPJ6.js"),__vite__mapDeps([16,2,3]),import.meta.url)});Ie({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>Le(()=>import("./yaml-Cj_HG0od.js"),__vite__mapDeps([17,2,3]),import.meta.url)});var T4e=Object.defineProperty,N4e=(s,e,t)=>e in s?T4e(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,ye=(s,e,t)=>N4e(s,typeof e!="symbol"?e+"":e,t),D0,lU,k0,nN,I0;function R4e(s){return s.method!==void 0}var cU;(function(s){function e(t){return t}s.create=e})(cU||(cU={}));var ca;(function(s){s.parseError=-32700,s.invalidRequest=-32600,s.methodNotFound=-32601,s.invalidParams=-32602,s.internalError=-32603;function e(o){return-32099<=o&&o<=-32e3}s.isServerError=e;function t(o){if(!e(o))throw new Error("Invalid range for a server error.");return o}s.serverError=t,s.unexpectedServerError=-32e3;function i(o){return!0}s.isApplicationError=i;function n(o){return o}s.applicationError=n,s.genericApplicationError=-320100})(ca||(ca={}));var QW=class{constructor(){ye(this,"listeners",new Set),ye(this,"event",s=>(this.listeners.add(s),{dispose:()=>{this.listeners.delete(s)}}))}fire(s){this.listeners.forEach(e=>e(s))}},M4e=class{constructor(s){ye(this,"_value"),ye(this,"eventEmitter"),this._value=s,this.eventEmitter=new QW}get value(){return this._value}set value(s){this._value!==s&&(this._value=s,this.eventEmitter.fire(s))}get onChange(){return this.eventEmitter.event}};function A4e(s,e){const t=setTimeout(e,s);return{dispose:()=>clearTimeout(t)}}function sN(s,e,t){return s instanceof Set?(s.add(e),{dispose:()=>s.delete(e)}):(s.set(e,t),{dispose:()=>s.delete(e)})}var P4e=class{constructor(){ye(this,"_state","none"),ye(this,"promise"),ye(this,"resolve",()=>{}),ye(this,"reject",()=>{}),this.promise=new Promise((s,e)=>{this.resolve=s,this.reject=e})}get state(){return this._state}},DJ=(D0=class{constructor(){ye(this,"_unprocessedMessages",[]),ye(this,"_messageListener"),ye(this,"id",D0.id++),ye(this,"_state",new M4e({state:"open"})),ye(this,"state",this._state)}setListener(s){if(this._messageListener=s,!!s)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(s){return this._sendImpl(s)}_dispatchReceivedMessage(s){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(s):this._unprocessedMessages.push(s)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(s){return new O4e(this,s??new F4e)}},ye(D0,"id",0),D0),O4e=class{constructor(s,e){ye(this,"baseStream"),ye(this,"logger"),this.baseStream=s,this.logger=e}get state(){return this.baseStream.state}setListener(s){if(s===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),s(e)})}send(s){return this.logger.log(this.baseStream,"outgoing",s),this.baseStream.send(s)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},F4e=class{log(s,e,t){console.log(`${e==="incoming"?"<-":"->"} [${s.toString()}] ${JSON.stringify(t)}`)}},W4e=class kJ{constructor(e){ye(this,"connect"),this.connect=e}mapContext(e){return new kJ(t=>this.connect(t?B4e(t,e):void 0))}};function B4e(s,e){return{handleNotification:(t,i)=>s.handleNotification(t,e(i)),handleRequest:(t,i,n)=>s.handleRequest(t,i,e(n))}}var H4e=class IJ{constructor(e,t,i){ye(this,"_stream"),ye(this,"_listener"),ye(this,"_logger"),ye(this,"_unprocessedResponses",new Map),ye(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=i,this._stream.setListener(n=>{R4e(n)?n.id===void 0?this._processNotification(n):this._processRequest(n):this._processResponse(n)})}static createChannel(e,t){let i=!1;return new W4e(n=>{if(i)throw new Error(`A channel to the stream ${e} was already constructed!`);return i=!0,new IJ(e,n,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(n){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${n}`,message:e,exception:n}),t={error:{code:ca.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:ca.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let i;"result"in t?i={jsonrpc:"2.0",id:e.id,result:t.result}:i={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(i)}_processResponse(e){const t=""+e.id,i=this._unprocessedResponses.get(t);if(!i){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),i(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,i){const n={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return i&&i(n.id),new Promise((o,r)=>{const a=""+n.id;this._unprocessedResponses.set(a,l=>{"result"in l?o({result:l.result}):(l.error||r(new Error("Response had neither 'result' nor 'error' field set.")),o({error:l.error}))}),this._stream.send(n).then(void 0,l=>{this._unprocessedResponses.delete(a),r(l)})})}sendNotification(e,t){const i={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(i)}toString(){return"StreamChannel/"+this._stream.toString()}},zm;(function(s){function e(){return{deserializeFromJson:n=>({hasErrors:!1,value:n}),serializeToJson:n=>n}}s.sAny=e;function t(){return{deserializeFromJson:n=>({hasErrors:!1,value:{}}),serializeToJson:n=>({})}}s.sEmptyObject=t;function i(){return{deserializeFromJson:n=>({hasErrors:!1,value:void 0}),serializeToJson:n=>null}}s.sVoidFromNull=i})(zm||(zm={}));const EJ=Symbol("OptionalMethodNotFound");var TJ=class{contextualize(s){return new V4e(this,s)}},V4e=class extends TJ{constructor(s,e){super(),ye(this,"underylingTypedChannel"),ye(this,"converters"),this.underylingTypedChannel=s,this.converters=e}async request(s,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(s,e,i)}async notify(s,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(s,e,i)}registerNotificationHandler(s,e){return this.underylingTypedChannel.registerNotificationHandler(s,async(t,i)=>await e(t,await this.converters.getNewContext(i)))}registerRequestHandler(s,e){return this.underylingTypedChannel.registerRequestHandler(s,async(t,i,n)=>await e(t,i,await this.converters.getNewContext(n)))}},nF=class NJ extends TJ{constructor(e,t={}){super(),ye(this,"channelCtor"),ye(this,"_requestSender"),ye(this,"_handler",new Map),ye(this,"_unknownNotificationHandler",new Set),ye(this,"_timeout"),ye(this,"sendExceptionDetails",!1),ye(this,"_logger"),ye(this,"listeningDeferred",new P4e),ye(this,"onListening",this.listeningDeferred.promise),ye(this,"_requestDidErrorEventEmitter",new QW),ye(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=A4e(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(e,t={}){return new NJ(H4e.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,i)=>this.handleRequest(e,t,i),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,i){const n=this._handler.get(e.method);if(!n)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:ca.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(n.kind!="request"){const r=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e}}),{error:{code:ca.invalidRequest,message:r,data:{method:e.method}}}}const o=n.requestType.paramsSerializer.deserializeFromJson(e.params);if(o.hasErrors){const r=`Got invalid params: ${o.errorMessage}`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e,errorMessage:o.errorMessage}}),{error:{code:ca.invalidParams,message:r,data:{errors:o.errorMessage}}}}else{const r=o.value;let a;try{const l=await n.handler(r,t,i);if("error"in l||"errorMessage"in l){const c=l.error?n.requestType.errorSerializer.serializeToJson(l.error):void 0;a={error:{code:l.errorCode||ca.genericApplicationError,message:l.errorMessage||"An error was returned",data:c}}}else a={result:n.requestType.resultSerializer.serializeToJson(l.ok)}}catch(l){l instanceof hU?a={error:{code:l.code,message:l.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${l}.`,exception:l,data:{requestObject:e}}),a={error:{code:ca.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${l}.`:"Server has thrown an unexpected exception"}})}return a}}async handleNotification(e,t){const i=this._handler.get(e.method);if(!i){for(const r of this._unknownNotificationHandler)r(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(i.kind!="notification"){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}const n=i.notificationType.paramsSerializer.deserializeFromJson(e.params);if(n.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${n}`,data:{requestObject:e,errorMessage:n.errorMessage}});return}const o=n.value;for(const r of i.handlers)try{r(o,t)}catch(a){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${a}.`,exception:a,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return sN(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error(`Handler with method "${e.method}" already registered.`);return sN(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let i=this._handler.get(e.method);if(!i)i={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,i);else{if(i.kind!=="notification")throw new Error(`Method "${e.method}" was already registered as request handler.`);if(i.notificationType!==e)throw new Error(`Method "${e.method}" was registered for a different type.`)}return sN(i.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const n=e.paramsSerializer.serializeToJson(t);dU(n);const o=await this._requestSender.sendRequest({method:e.method,params:n},i);if("error"in o){if(e.isOptional&&o.error.code===ca.methodNotFound)return EJ;let r;if(o.error.data!==void 0){const l=e.errorSerializer.deserializeFromJson(o.error.data);if(l.hasErrors)throw new Error(l.errorMessage);r=l.value}else r=void 0;const a=new hU(o.error.message,r,o.error.code);throw this._requestDidErrorEventEmitter.fire({error:a}),a}else{const r=e.resultSerializer.deserializeFromJson(o.result);if(r.hasErrors)throw new Error("Could not deserialize response: "+r.errorMessage+` + hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")o.push({token:a.token+t.tokenPostfix,open:fd(t,a.open),close:fd(t,a.close)});else throw Xt(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=o,t.noThrow=!0,t}function EFe(s){Xm.registerLanguage(s)}function TFe(){let s=[];return s=s.concat(Xm.getLanguages()),s}function NFe(s){return Pe.get(Di).languageIdCodec.encodeLanguageId(s)}function RFe(s,e){return Pe.withServices(()=>{const i=Pe.get(Di).onDidRequestRichLanguageFeatures(n=>{n===s&&(i.dispose(),e())});return i})}function MFe(s,e){return Pe.withServices(()=>{const i=Pe.get(Di).onDidRequestBasicLanguageFeatures(n=>{n===s&&(i.dispose(),e())});return i})}function AFe(s,e){if(!Pe.get(Di).isRegisteredLanguageId(s))throw new Error(`Cannot set configuration for unknown language ${s}`);return Pe.get(di).register(s,e,100)}class PFe{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return Gw.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const n=this._actual.tokenizeEncoded(e,i);return new ak(n.tokens,n.endState)}}class Gw{constructor(e,t,i,n){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=n}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let n=0;for(let o=0,r=e.length;o0&&o[r-1]===u)continue;let g=h.startIndex;c===0?g=0:g{const i=await Promise.resolve(e.create());return i?OFe(i)?XQ(s,i):new Vw(Pe.get(Di),Pe.get(pr),s,YQ(s,i),Pe.get(He)):null});return wi.registerFactory(s,t)}function BFe(s,e){if(!Pe.get(Di).isRegisteredLanguageId(s))throw new Error(`Cannot set tokens provider for unknown language ${s}`);return ZQ(e)?qW(s,{create:()=>e}):wi.register(s,XQ(s,e))}function HFe(s,e){const t=i=>new Vw(Pe.get(Di),Pe.get(pr),s,YQ(s,i),Pe.get(He));return ZQ(e)?qW(s,{create:()=>e}):wi.register(s,t(e))}function VFe(s,e){return Pe.get(ue).referenceProvider.register(s,e)}function zFe(s,e){return Pe.get(ue).renameProvider.register(s,e)}function UFe(s,e){return Pe.get(ue).newSymbolNamesProvider.register(s,e)}function $Fe(s,e){return Pe.get(ue).signatureHelpProvider.register(s,e)}function jFe(s,e){return Pe.get(ue).hoverProvider.register(s,{provideHover:async(i,n,o,r)=>{const a=i.getWordAtPosition(n);return Promise.resolve(e.provideHover(i,n,o,r)).then(l=>{if(l)return!l.range&&a&&(l.range=new D(n.lineNumber,a.startColumn,n.lineNumber,a.endColumn)),l.range||(l.range=new D(n.lineNumber,n.column,n.lineNumber,n.column)),l})}})}function qFe(s,e){return Pe.get(ue).documentSymbolProvider.register(s,e)}function KFe(s,e){return Pe.get(ue).documentHighlightProvider.register(s,e)}function GFe(s,e){return Pe.get(ue).linkedEditingRangeProvider.register(s,e)}function YFe(s,e){return Pe.get(ue).definitionProvider.register(s,e)}function ZFe(s,e){return Pe.get(ue).implementationProvider.register(s,e)}function XFe(s,e){return Pe.get(ue).typeDefinitionProvider.register(s,e)}function QFe(s,e){return Pe.get(ue).codeLensProvider.register(s,e)}function JFe(s,e,t){return Pe.get(ue).codeActionProvider.register(s,{providedCodeActionKinds:t?.providedCodeActionKinds,documentation:t?.documentation,provideCodeActions:(n,o,r,a)=>{const c=Pe.get(cc).read({resource:n.uri}).filter(d=>D.areIntersectingOrTouching(d,o));return e.provideCodeActions(n,o,{markers:c,only:r.only,trigger:r.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function e4e(s,e){return Pe.get(ue).documentFormattingEditProvider.register(s,e)}function t4e(s,e){return Pe.get(ue).documentRangeFormattingEditProvider.register(s,e)}function i4e(s,e){return Pe.get(ue).onTypeFormattingEditProvider.register(s,e)}function n4e(s,e){return Pe.get(ue).linkProvider.register(s,e)}function s4e(s,e){return Pe.get(ue).completionProvider.register(s,e)}function o4e(s,e){return Pe.get(ue).colorProvider.register(s,e)}function r4e(s,e){return Pe.get(ue).foldingRangeProvider.register(s,e)}function a4e(s,e){return Pe.get(ue).declarationProvider.register(s,e)}function l4e(s,e){return Pe.get(ue).selectionRangeProvider.register(s,e)}function c4e(s,e){return Pe.get(ue).documentSemanticTokensProvider.register(s,e)}function d4e(s,e){return Pe.get(ue).documentRangeSemanticTokensProvider.register(s,e)}function h4e(s,e){return Pe.get(ue).inlineCompletionsProvider.register(s,e)}function u4e(s,e){return Pe.get(ue).inlayHintsProvider.register(s,e)}function g4e(){return{register:EFe,getLanguages:TFe,onLanguage:RFe,onLanguageEncountered:MFe,getEncodedLanguageId:NFe,setLanguageConfiguration:AFe,setColorMap:WFe,registerTokensProviderFactory:qW,setTokensProvider:BFe,setMonarchTokensProvider:HFe,registerReferenceProvider:VFe,registerRenameProvider:zFe,registerNewSymbolNameProvider:UFe,registerCompletionItemProvider:s4e,registerSignatureHelpProvider:$Fe,registerHoverProvider:jFe,registerDocumentSymbolProvider:qFe,registerDocumentHighlightProvider:KFe,registerLinkedEditingRangeProvider:GFe,registerDefinitionProvider:YFe,registerImplementationProvider:ZFe,registerTypeDefinitionProvider:XFe,registerCodeLensProvider:QFe,registerCodeActionProvider:JFe,registerDocumentFormattingEditProvider:e4e,registerDocumentRangeFormattingEditProvider:t4e,registerOnTypeFormattingEditProvider:i4e,registerLinkProvider:n4e,registerColorProvider:o4e,registerFoldingRangeProvider:r4e,registerDeclarationProvider:a4e,registerSelectionRangeProvider:l4e,registerDocumentSemanticTokensProvider:c4e,registerDocumentRangeSemanticTokensProvider:d4e,registerInlineCompletionsProvider:h4e,registerInlayHintsProvider:u4e,DocumentHighlightKind:CP,CompletionItemKind:gP,CompletionItemTag:fP,CompletionItemInsertTextRule:uP,SymbolKind:XP,SymbolTag:QP,IndentAction:DP,CompletionTriggerKind:pP,SignatureHelpTriggerKind:ZP,InlayHintKind:IP,InlineCompletionTriggerKind:NP,CodeActionTriggerType:hP,NewSymbolNameTag:WP,NewSymbolNameTriggerKind:BP,PartialAcceptTriggerKind:zP,HoverVerbosityAction:xP,InlineCompletionEndOfLifeReasonKind:EP,InlineCompletionHintStyle:TP,FoldingRangeKind:Of,SelectedSuggestionInfo:Lq,EditDeltaInfo:Xv}}_s.wrappingIndent.defaultValue=0;_s.glyphMargin.defaultValue=!1;_s.autoIndent.defaultValue=3;_s.overviewRulerLanes.defaultValue=2;S_.setFormatterSelector((s,e,t)=>Promise.resolve(s[0]));const qs=LQ();qs.editor=yFe();qs.languages=g4e();const QQ=qs.CancellationTokenSource,su=qs.Emitter,JQ=qs.KeyCode,eJ=qs.KeyMod,Hd=qs.Position,ob=qs.Range,tJ=qs.Selection,iJ=qs.SelectionDirection,ha=qs.MarkerSeverity,dD=qs.MarkerTag,CI=qs.Uri,nJ=qs.Token,ql=qs.editor,he=qs.languages,f4e=uF(),Vm=globalThis;(f4e?.globalAPI||typeof Vm.define=="function"&&Vm.define.amd)&&(Vm.monaco=qs);typeof Vm.require<"u"&&typeof Vm.require.config=="function"&&Vm.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const p4e=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:QQ,Emitter:su,KeyCode:JQ,KeyMod:eJ,MarkerSeverity:ha,MarkerTag:dD,Position:Hd,Range:ob,Selection:tJ,SelectionDirection:iJ,Token:nJ,Uri:CI,editor:ql,languages:he},Symbol.toStringTag,{value:"Module"}));let KW=class{constructor(e,t,i){this._onDidChange=new su,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const GW={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},YW={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},sJ=new KW("css",GW,YW),oJ=new KW("scss",GW,YW),rJ=new KW("less",GW,YW);function ZW(){return Le(()=>import("./cssMode-BzXuMGag.js"),__vite__mapDeps([0,1,2,3]),import.meta.url)}he.onLanguage("less",()=>{ZW().then(s=>s.setupMode(rJ))});he.onLanguage("scss",()=>{ZW().then(s=>s.setupMode(oJ))});he.onLanguage("css",()=>{ZW().then(s=>s.setupMode(sJ))});const aJ=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults:sJ,lessDefaults:rJ,scssDefaults:oJ},Symbol.toStringTag,{value:"Module"}));let m4e=class{constructor(e,t,i){this._onDidChange=new su,this._languageId=e,this.setOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const _4e={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},vI={format:_4e,suggest:{},data:{useDefaultDataProvider:!0}};function wI(s){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:s===cv,documentFormattingEdits:s===cv,documentRangeFormattingEdits:s===cv}}const cv="html",rU="handlebars",aU="razor",lJ=SI(cv,vI,wI(cv)),b4e=lJ.defaults,cJ=SI(rU,vI,wI(rU)),C4e=cJ.defaults,dJ=SI(aU,vI,wI(aU)),v4e=dJ.defaults;function w4e(){return Le(()=>import("./htmlMode-Bawo0UIb.js"),__vite__mapDeps([4,1,2,3]),import.meta.url)}function SI(s,e=vI,t=wI(s)){const i=new m4e(s,e,t);let n;const o=he.onLanguage(s,async()=>{n=(await w4e()).setupMode(i)});return{defaults:i,dispose(){o.dispose(),n?.dispose(),n=void 0}}}const hJ=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults:C4e,handlebarLanguageService:cJ,htmlDefaults:b4e,htmlLanguageService:lJ,razorDefaults:v4e,razorLanguageService:dJ,registerHTMLLanguageService:SI},Symbol.toStringTag,{value:"Module"}));let S4e=class{constructor(e,t,i){this._onDidChange=new su,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(i)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const y4e={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},L4e={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},uJ=new S4e("json",y4e,L4e),x4e=()=>gJ().then(s=>s.getWorker());function gJ(){return Le(()=>import("./jsonMode-CXTN0moy.js"),__vite__mapDeps([5,1,2,3]),import.meta.url)}he.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});he.onLanguage("json",()=>{gJ().then(s=>s.setupMode(uJ))});const fJ=Object.freeze(Object.defineProperty({__proto__:null,getWorker:x4e,jsonDefaults:uJ},Symbol.toStringTag,{value:"Module"})),D4e="5.9.3";var pJ=(s=>(s[s.None=0]="None",s[s.CommonJS=1]="CommonJS",s[s.AMD=2]="AMD",s[s.UMD=3]="UMD",s[s.System=4]="System",s[s.ES2015=5]="ES2015",s[s.ESNext=99]="ESNext",s))(pJ||{}),mJ=(s=>(s[s.None=0]="None",s[s.Preserve=1]="Preserve",s[s.React=2]="React",s[s.ReactNative=3]="ReactNative",s[s.ReactJSX=4]="ReactJSX",s[s.ReactJSXDev=5]="ReactJSXDev",s))(mJ||{}),_J=(s=>(s[s.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",s[s.LineFeed=1]="LineFeed",s))(_J||{}),bJ=(s=>(s[s.ES3=0]="ES3",s[s.ES5=1]="ES5",s[s.ES2015=2]="ES2015",s[s.ES2016=3]="ES2016",s[s.ES2017=4]="ES2017",s[s.ES2018=5]="ES2018",s[s.ES2019=6]="ES2019",s[s.ES2020=7]="ES2020",s[s.ESNext=99]="ESNext",s[s.JSON=100]="JSON",s[s.Latest=99]="Latest",s))(bJ||{}),CJ=(s=>(s[s.Classic=1]="Classic",s[s.NodeJs=2]="NodeJs",s))(CJ||{});class vJ{constructor(e,t,i,n,o){this._onDidChange=new su,this._onDidExtraLibsChange=new su,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(n),this.setModeConfiguration(o),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(typeof t>"u"?i=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i=t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let n=1;return this._removedExtraLibs[i]&&(n=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(n=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:n},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let o=this._extraLibs[i];o&&o.version===n&&(delete this._extraLibs[i],this._removedExtraLibs[i]=n,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const i=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,n=t.content;let o=1;this._removedExtraLibs[i]&&(o=this._removedExtraLibs[i]+1),this._extraLibs[i]={content:n,version:o}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}}const k4e=D4e,wJ={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},SJ=new vJ({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},wJ),yJ=new vJ({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},wJ),I4e=()=>yI().then(s=>s.getTypeScriptWorker()),E4e=()=>yI().then(s=>s.getJavaScriptWorker());function yI(){return Le(()=>import("./tsMode-CmOjBlgw.js"),__vite__mapDeps([6,2,3]),import.meta.url)}he.onLanguage("typescript",()=>yI().then(s=>s.setupTypeScript(SJ)));he.onLanguage("javascript",()=>yI().then(s=>s.setupJavaScript(yJ)));const LJ=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit:mJ,ModuleKind:pJ,ModuleResolutionKind:CJ,NewLineKind:_J,ScriptTarget:bJ,getJavaScriptWorker:E4e,getTypeScriptWorker:I4e,javascriptDefaults:yJ,typescriptDefaults:SJ,typescriptVersion:k4e},Symbol.toStringTag,{value:"Module"})),xJ={},iN={};class XW{static getOrCreate(e){return iN[e]||(iN[e]=new XW(e)),iN[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,i)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=i})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,xJ[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function Ie(s){const e=s.id;xJ[e]=s,he.register(s);const t=XW.getOrCreate(e);he.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),he.onLanguageEncountered(e,async()=>{const i=await t.load();he.setLanguageConfiguration(e,i.conf)})}Ie({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>Le(()=>import("./abap-DLDM7-KI.js"),[],import.meta.url)});Ie({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>Le(()=>import("./apex-DNDY2TF8.js"),[],import.meta.url)});Ie({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>Le(()=>import("./azcli-Y6nb8tq_.js"),[],import.meta.url)});Ie({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>Le(()=>import("./bat-BwHxbl9M.js"),[],import.meta.url)});Ie({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>Le(()=>import("./bicep-CFznDFnq.js"),[],import.meta.url)});Ie({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>Le(()=>import("./cameligo-Bf6VGUru.js"),[],import.meta.url)});Ie({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>Le(()=>import("./clojure-Dnu-v4kV.js"),[],import.meta.url)});Ie({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>Le(()=>import("./coffee-Bd8akH9Z.js"),[],import.meta.url)});Ie({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>Le(()=>import("./cpp-BbWJElDN.js"),[],import.meta.url)});Ie({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>Le(()=>import("./cpp-BbWJElDN.js"),[],import.meta.url)});Ie({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>Le(()=>import("./csharp-Co3qMtFm.js"),[],import.meta.url)});Ie({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>Le(()=>import("./csp-D-4FJmMZ.js"),[],import.meta.url)});Ie({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>Le(()=>import("./css-DdJfP1eB.js"),[],import.meta.url)});Ie({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>Le(()=>import("./cypher-cTPe9QuQ.js"),[],import.meta.url)});Ie({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>Le(()=>import("./dart-BOtBlQCF.js"),[],import.meta.url)});Ie({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>Le(()=>import("./dockerfile-BG73LgW2.js"),[],import.meta.url)});Ie({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>Le(()=>import("./ecl-BEgZUVRK.js"),[],import.meta.url)});Ie({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>Le(()=>import("./elixir-BkW5O-1t.js"),[],import.meta.url)});Ie({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>Le(()=>import("./flow9-BeJ5waoc.js"),[],import.meta.url)});Ie({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>Le(()=>import("./fsharp-PahG7c26.js"),[],import.meta.url)});Ie({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>Le(()=>import("./freemarker2-Ef7mzo1J.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAutoInterpolationDollar)});Ie({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>Le(()=>import("./freemarker2-Ef7mzo1J.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAngleInterpolationDollar)});Ie({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>Le(()=>import("./freemarker2-Ef7mzo1J.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagBracketInterpolationDollar)});Ie({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>Le(()=>import("./freemarker2-Ef7mzo1J.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAngleInterpolationBracket)});Ie({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>Le(()=>import("./freemarker2-Ef7mzo1J.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagBracketInterpolationBracket)});Ie({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>Le(()=>import("./freemarker2-Ef7mzo1J.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAutoInterpolationDollar)});Ie({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>Le(()=>import("./freemarker2-Ef7mzo1J.js"),__vite__mapDeps([7,2,3]),import.meta.url).then(s=>s.TagAutoInterpolationBracket)});Ie({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>Le(()=>import("./go-acbASCJo.js"),[],import.meta.url)});Ie({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>Le(()=>import("./graphql-BxJiqAUM.js"),[],import.meta.url)});Ie({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>Le(()=>import("./handlebars-DwPWXcEV.js"),__vite__mapDeps([8,2,3]),import.meta.url)});Ie({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>Le(()=>import("./hcl-DtV1sZF8.js"),[],import.meta.url)});Ie({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>Le(()=>import("./html-DyQTQYyb.js"),__vite__mapDeps([9,2,3]),import.meta.url)});Ie({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>Le(()=>import("./ini-Kd9XrMLS.js"),[],import.meta.url)});Ie({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>Le(()=>import("./java-CXBNlu9o.js"),[],import.meta.url)});Ie({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>Le(()=>import("./javascript-BG95TsrZ.js"),__vite__mapDeps([10,11,2,3]),import.meta.url)});Ie({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>Le(()=>import("./julia-cl7-CwDS.js"),[],import.meta.url)});Ie({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>Le(()=>import("./kotlin-s7OhZKlX.js"),[],import.meta.url)});Ie({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>Le(()=>import("./less-9HpZscsL.js"),[],import.meta.url)});Ie({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>Le(()=>import("./lexon-OrD6JF1K.js"),[],import.meta.url)});Ie({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>Le(()=>import("./lua-Cyyb5UIc.js"),[],import.meta.url)});Ie({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>Le(()=>import("./liquid-DA8is1nL.js"),__vite__mapDeps([12,2,3]),import.meta.url)});Ie({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>Le(()=>import("./m3-B8OfTtLu.js"),[],import.meta.url)});Ie({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>Le(()=>import("./markdown-BFxVWTOG.js"),[],import.meta.url)});Ie({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>Le(()=>import("./mdx-BPT6hPF_.js"),__vite__mapDeps([13,2,3]),import.meta.url)});Ie({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>Le(()=>import("./mips-CiqrrVzr.js"),[],import.meta.url)});Ie({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>Le(()=>import("./msdax-DmeGPVcC.js"),[],import.meta.url)});Ie({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>Le(()=>import("./mysql-C_tMU-Nz.js"),[],import.meta.url)});Ie({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>Le(()=>import("./objective-c-BDtDVThU.js"),[],import.meta.url)});Ie({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>Le(()=>import("./pascal-vHIfCaH5.js"),[],import.meta.url)});Ie({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>Le(()=>import("./pascaligo-DtZ0uQbO.js"),[],import.meta.url)});Ie({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>Le(()=>import("./perl-Ub6l9XKa.js"),[],import.meta.url)});Ie({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>Le(()=>import("./pgsql-BlNEE0v7.js"),[],import.meta.url)});Ie({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>Le(()=>import("./php-BBUBE1dy.js"),[],import.meta.url)});Ie({id:"pla",extensions:[".pla"],loader:()=>Le(()=>import("./pla-DSh2-awV.js"),[],import.meta.url)});Ie({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>Le(()=>import("./postiats-CocnycG-.js"),[],import.meta.url)});Ie({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>Le(()=>import("./powerquery-tScXyioY.js"),[],import.meta.url)});Ie({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>Le(()=>import("./powershell-COWaemsV.js"),[],import.meta.url)});Ie({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>Le(()=>import("./protobuf-Brw8urJB.js"),[],import.meta.url)});Ie({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>Le(()=>import("./pug-8SOpv6rk.js"),[],import.meta.url)});Ie({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>Le(()=>import("./python-BM_a_F3Y.js"),__vite__mapDeps([14,2,3]),import.meta.url)});Ie({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>Le(()=>import("./qsharp-Bw9ernYp.js"),[],import.meta.url)});Ie({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>Le(()=>import("./r-j7ic8hl3.js"),[],import.meta.url)});Ie({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>Le(()=>import("./razor-YRXx1Ltf.js"),__vite__mapDeps([15,2,3]),import.meta.url)});Ie({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>Le(()=>import("./redis-Bu5POkcn.js"),[],import.meta.url)});Ie({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>Le(()=>import("./redshift-Bs9aos_-.js"),[],import.meta.url)});Ie({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>Le(()=>import("./restructuredtext-CqXO7rUv.js"),[],import.meta.url)});Ie({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>Le(()=>import("./ruby-zBfavPgS.js"),[],import.meta.url)});Ie({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>Le(()=>import("./rust-BzKRNQWT.js"),[],import.meta.url)});Ie({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>Le(()=>import("./sb-BBc9UKZt.js"),[],import.meta.url)});Ie({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>Le(()=>import("./scala-D9hQfWCl.js"),[],import.meta.url)});Ie({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>Le(()=>import("./scheme-BPhDTwHR.js"),[],import.meta.url)});Ie({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>Le(()=>import("./scss-CBJaRo0y.js"),[],import.meta.url)});Ie({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>Le(()=>import("./shell-DiJ1NA_G.js"),[],import.meta.url)});Ie({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>Le(()=>import("./solidity-Db0IVjzk.js"),[],import.meta.url)});Ie({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>Le(()=>import("./sophia-CnS9iZB_.js"),[],import.meta.url)});Ie({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>Le(()=>import("./sparql-CJmd_6j2.js"),[],import.meta.url)});Ie({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>Le(()=>import("./sql-ClhHkBeG.js"),[],import.meta.url)});Ie({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>Le(()=>import("./st-CHwy0fLd.js"),[],import.meta.url)});Ie({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>Le(()=>import("./swift-Bqt4WxQ4.js"),[],import.meta.url)});Ie({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>Le(()=>import("./systemverilog-Bs9z6M-B.js"),[],import.meta.url)});Ie({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>Le(()=>import("./systemverilog-Bs9z6M-B.js"),[],import.meta.url)});Ie({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>Le(()=>import("./tcl-Dm6ycUr_.js"),[],import.meta.url)});Ie({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>Le(()=>import("./twig-Csy3S7wG.js"),[],import.meta.url)});Ie({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>Le(()=>import("./typescript-DMKkacvn.js"),__vite__mapDeps([11,2,3]),import.meta.url)});Ie({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>Le(()=>import("./typespec-Btyra-wh.js"),[],import.meta.url)});Ie({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>Le(()=>import("./vb-Db0cS2oM.js"),[],import.meta.url)});Ie({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>Le(()=>import("./wgsl-BTesnYfV.js"),[],import.meta.url)});Ie({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\Le(()=>import("./xml-BM6Sd5qX.js"),__vite__mapDeps([16,2,3]),import.meta.url)});Ie({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>Le(()=>import("./yaml-CbuNHtUg.js"),__vite__mapDeps([17,2,3]),import.meta.url)});var T4e=Object.defineProperty,N4e=(s,e,t)=>e in s?T4e(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,ye=(s,e,t)=>N4e(s,typeof e!="symbol"?e+"":e,t),D0,lU,k0,nN,I0;function R4e(s){return s.method!==void 0}var cU;(function(s){function e(t){return t}s.create=e})(cU||(cU={}));var ca;(function(s){s.parseError=-32700,s.invalidRequest=-32600,s.methodNotFound=-32601,s.invalidParams=-32602,s.internalError=-32603;function e(o){return-32099<=o&&o<=-32e3}s.isServerError=e;function t(o){if(!e(o))throw new Error("Invalid range for a server error.");return o}s.serverError=t,s.unexpectedServerError=-32e3;function i(o){return!0}s.isApplicationError=i;function n(o){return o}s.applicationError=n,s.genericApplicationError=-320100})(ca||(ca={}));var QW=class{constructor(){ye(this,"listeners",new Set),ye(this,"event",s=>(this.listeners.add(s),{dispose:()=>{this.listeners.delete(s)}}))}fire(s){this.listeners.forEach(e=>e(s))}},M4e=class{constructor(s){ye(this,"_value"),ye(this,"eventEmitter"),this._value=s,this.eventEmitter=new QW}get value(){return this._value}set value(s){this._value!==s&&(this._value=s,this.eventEmitter.fire(s))}get onChange(){return this.eventEmitter.event}};function A4e(s,e){const t=setTimeout(e,s);return{dispose:()=>clearTimeout(t)}}function sN(s,e,t){return s instanceof Set?(s.add(e),{dispose:()=>s.delete(e)}):(s.set(e,t),{dispose:()=>s.delete(e)})}var P4e=class{constructor(){ye(this,"_state","none"),ye(this,"promise"),ye(this,"resolve",()=>{}),ye(this,"reject",()=>{}),this.promise=new Promise((s,e)=>{this.resolve=s,this.reject=e})}get state(){return this._state}},DJ=(D0=class{constructor(){ye(this,"_unprocessedMessages",[]),ye(this,"_messageListener"),ye(this,"id",D0.id++),ye(this,"_state",new M4e({state:"open"})),ye(this,"state",this._state)}setListener(s){if(this._messageListener=s,!!s)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(s){return this._sendImpl(s)}_dispatchReceivedMessage(s){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(s):this._unprocessedMessages.push(s)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(s){return new O4e(this,s??new F4e)}},ye(D0,"id",0),D0),O4e=class{constructor(s,e){ye(this,"baseStream"),ye(this,"logger"),this.baseStream=s,this.logger=e}get state(){return this.baseStream.state}setListener(s){if(s===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),s(e)})}send(s){return this.logger.log(this.baseStream,"outgoing",s),this.baseStream.send(s)}toString(){return`StreamLogger/${this.baseStream.toString()}`}},F4e=class{log(s,e,t){console.log(`${e==="incoming"?"<-":"->"} [${s.toString()}] ${JSON.stringify(t)}`)}},W4e=class kJ{constructor(e){ye(this,"connect"),this.connect=e}mapContext(e){return new kJ(t=>this.connect(t?B4e(t,e):void 0))}};function B4e(s,e){return{handleNotification:(t,i)=>s.handleNotification(t,e(i)),handleRequest:(t,i,n)=>s.handleRequest(t,i,e(n))}}var H4e=class IJ{constructor(e,t,i){ye(this,"_stream"),ye(this,"_listener"),ye(this,"_logger"),ye(this,"_unprocessedResponses",new Map),ye(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=i,this._stream.setListener(n=>{R4e(n)?n.id===void 0?this._processNotification(n):this._processRequest(n):this._processResponse(n)})}static createChannel(e,t){let i=!1;return new W4e(n=>{if(i)throw new Error(`A channel to the stream ${e} was already constructed!`);return i=!0,new IJ(e,n,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:`Exception was thrown while handling notification: ${t}`,exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(n){this._logger&&this._logger.warn({text:`Exception was thrown while handling request: ${n}`,message:e,exception:n}),t={error:{code:ca.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:ca.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let i;"result"in t?i={jsonrpc:"2.0",id:e.id,result:t.result}:i={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(i)}_processResponse(e){const t=""+e.id,i=this._unprocessedResponses.get(t);if(!i){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),i(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,i){const n={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return i&&i(n.id),new Promise((o,r)=>{const a=""+n.id;this._unprocessedResponses.set(a,l=>{"result"in l?o({result:l.result}):(l.error||r(new Error("Response had neither 'result' nor 'error' field set.")),o({error:l.error}))}),this._stream.send(n).then(void 0,l=>{this._unprocessedResponses.delete(a),r(l)})})}sendNotification(e,t){const i={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(i)}toString(){return"StreamChannel/"+this._stream.toString()}},zm;(function(s){function e(){return{deserializeFromJson:n=>({hasErrors:!1,value:n}),serializeToJson:n=>n}}s.sAny=e;function t(){return{deserializeFromJson:n=>({hasErrors:!1,value:{}}),serializeToJson:n=>({})}}s.sEmptyObject=t;function i(){return{deserializeFromJson:n=>({hasErrors:!1,value:void 0}),serializeToJson:n=>null}}s.sVoidFromNull=i})(zm||(zm={}));const EJ=Symbol("OptionalMethodNotFound");var TJ=class{contextualize(s){return new V4e(this,s)}},V4e=class extends TJ{constructor(s,e){super(),ye(this,"underylingTypedChannel"),ye(this,"converters"),this.underylingTypedChannel=s,this.converters=e}async request(s,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(s,e,i)}async notify(s,e,t){const i=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(s,e,i)}registerNotificationHandler(s,e){return this.underylingTypedChannel.registerNotificationHandler(s,async(t,i)=>await e(t,await this.converters.getNewContext(i)))}registerRequestHandler(s,e){return this.underylingTypedChannel.registerRequestHandler(s,async(t,i,n)=>await e(t,i,await this.converters.getNewContext(n)))}},nF=class NJ extends TJ{constructor(e,t={}){super(),ye(this,"channelCtor"),ye(this,"_requestSender"),ye(this,"_handler",new Map),ye(this,"_unknownNotificationHandler",new Set),ye(this,"_timeout"),ye(this,"sendExceptionDetails",!1),ye(this,"_logger"),ye(this,"listeningDeferred",new P4e),ye(this,"onListening",this.listeningDeferred.promise),ye(this,"_requestDidErrorEventEmitter",new QW),ye(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=A4e(1e3,()=>{this._requestSender||console.warn(`"${this.startListen.name}" has not been called within 1 second after construction of this channel. Did you forget to call it?`,this)})}static fromTransport(e,t={}){return new NJ(H4e.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error(`"${this.startListen.name}" can be called only once, but it already has been called.`);this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,i)=>this.handleRequest(e,t,i),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error(`"${this.startListen.name}" must be called before any messages can be sent or received.`);return!0}async handleRequest(e,t,i){const n=this._handler.get(e.method);if(!n)return this._logger&&this._logger.debug({text:`No request handler for "${e.method}".`,data:{requestObject:e}}),{error:{code:ca.methodNotFound,message:`No request handler for "${e.method}".`,data:{method:e.method}}};if(n.kind!="request"){const r=`"${e.method}" is registered as notification, but was sent as request.`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e}}),{error:{code:ca.invalidRequest,message:r,data:{method:e.method}}}}const o=n.requestType.paramsSerializer.deserializeFromJson(e.params);if(o.hasErrors){const r=`Got invalid params: ${o.errorMessage}`;return this._logger&&this._logger.debug({text:r,data:{requestObject:e,errorMessage:o.errorMessage}}),{error:{code:ca.invalidParams,message:r,data:{errors:o.errorMessage}}}}else{const r=o.value;let a;try{const l=await n.handler(r,t,i);if("error"in l||"errorMessage"in l){const c=l.error?n.requestType.errorSerializer.serializeToJson(l.error):void 0;a={error:{code:l.errorCode||ca.genericApplicationError,message:l.errorMessage||"An error was returned",data:c}}}else a={result:n.requestType.resultSerializer.serializeToJson(l.ok)}}catch(l){l instanceof hU?a={error:{code:l.code,message:l.message}}:(this._logger&&this._logger.warn({text:`An exception was thrown while handling a request: ${l}.`,exception:l,data:{requestObject:e}}),a={error:{code:ca.unexpectedServerError,message:this.sendExceptionDetails?`An exception was thrown while handling a request: ${l}.`:"Server has thrown an unexpected exception"}})}return a}}async handleNotification(e,t){const i=this._handler.get(e.method);if(!i){for(const r of this._unknownNotificationHandler)r(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:`Unhandled notification "${e.method}"`,data:{requestObject:e}});return}if(i.kind!="notification"){this._logger&&this._logger.debug({text:`"${e.method}" is registered as request, but was sent as notification.`,data:{requestObject:e}});return}const n=i.notificationType.paramsSerializer.deserializeFromJson(e.params);if(n.hasErrors){this._logger&&this._logger.debug({text:`Got invalid params: ${n}`,data:{requestObject:e,errorMessage:n.errorMessage}});return}const o=n.value;for(const r of i.handlers)try{r(o,t)}catch(a){this._logger&&this._logger.warn({text:`An exception was thrown while handling a notification: ${a}.`,exception:a,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return sN(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error(`Handler with method "${e.method}" already registered.`);return sN(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let i=this._handler.get(e.method);if(!i)i={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,i);else{if(i.kind!=="notification")throw new Error(`Method "${e.method}" was already registered as request handler.`);if(i.notificationType!==e)throw new Error(`Method "${e.method}" was registered for a different type.`)}return sN(i.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const n=e.paramsSerializer.serializeToJson(t);dU(n);const o=await this._requestSender.sendRequest({method:e.method,params:n},i);if("error"in o){if(e.isOptional&&o.error.code===ca.methodNotFound)return EJ;let r;if(o.error.data!==void 0){const l=e.errorSerializer.deserializeFromJson(o.error.data);if(l.hasErrors)throw new Error(l.errorMessage);r=l.value}else r=void 0;const a=new hU(o.error.message,r,o.error.code);throw this._requestDidErrorEventEmitter.fire({error:a}),a}else{const r=e.resultSerializer.deserializeFromJson(o.result);if(r.hasErrors)throw new Error("Could not deserialize response: "+r.errorMessage+` ${JSON.stringify(o,null,2)}`);return r.value}}async notify(e,t,i){if(!this.checkChannel(this._requestSender))throw new Error;const n=e.paramsSerializer.serializeToJson(t);dU(n),this._requestSender.sendNotification({method:e.method,params:n},i)}};function dU(s){if(s!==null&&Array.isArray(s)&&typeof s!="object")throw new Error("Invalid value! Only null, array and object is allowed.")}var hU=class RJ extends Error{constructor(e,t,i=ca.genericApplicationError){super(e),ye(this,"data"),ye(this,"code"),this.data=t,this.code=i,Object.setPrototypeOf(this,RJ.prototype)}},z4e=class sF{constructor(e,t,i,n,o=!1){ye(this,"method"),ye(this,"paramsSerializer"),ye(this,"resultSerializer"),ye(this,"errorSerializer"),ye(this,"isOptional"),ye(this,"kind","request"),this.method=e,this.paramsSerializer=t,this.resultSerializer=i,this.errorSerializer=n,this.isOptional=o}withMethod(e){return new sF(e,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new sF(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},U4e=class MJ{constructor(e,t){ye(this,"method"),ye(this,"paramsSerializer"),ye(this,"kind","notification"),this.method=e,this.paramsSerializer=t}withMethod(e){return new MJ(e,this.paramsSerializer)}};function ze(s){return new z4e((s||{}).method,zm.sAny(),zm.sAny(),zm.sAny())}function Ri(s){return new U4e((s||{}).method,zm.sAny())}const $4e=Symbol();var uU=(lU=$4e,k0=class{constructor(s){ye(this,"error"),ye(this,lU),this.error=s}},ye(k0,"factory",s=>new k0(s)),k0);function j4e(s){const e=gU(s.server),t=gU(s.client);return new q4e(s.tags||[],e,t)}function gU(s){const e={};for(const[t,i]of Object.entries(s)){const n=i.method?i.method:t;e[t]=i.withMethod(n)}return e}var q4e=class AJ{constructor(e=[],t,i){ye(this,"tags"),ye(this,"server"),ye(this,"client"),this.tags=e,this.server=t,this.client=i}_onlyDesignTime(){return new Error("This property is not meant to be accessed at runtime")}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(e,t,i,n){const o=this.buildCounterpart(e,i),r=this.registerHandlers(e,t,n,o);return{counterpart:o,dispose:()=>r.dispose()}}buildCounterpart(e,t){const i={};for(const[n,o]of Object.entries(t)){let r;o.kind==="request"?o.isOptional?r=async(a,l)=>{a===void 0&&(a={});try{return await e.request(o,a,l)}catch(c){if(c&&c.code===ca.methodNotFound)return EJ;throw c}}:r=(a,l)=>(a===void 0&&(a={}),e.request(o,a,l)):r=(a,l)=>(a===void 0&&(a={}),e.notify(o,a,l)),i[n]=r}return i}registerHandlers(e,t,i,n){const o=[];for(const[r,a]of Object.entries(t))if(a.kind==="request"){let l=i[r];if(!l)continue;const c=this.createRequestHandler(n,l);o.push(e.registerRequestHandler(a,c))}else{const l=i[r];l&&o.push(e.registerNotificationHandler(a,(c,d)=>{l(c,{context:d,counterpart:n})}))}return{dispose:()=>o.forEach(r=>r.dispose())}}createRequestHandler(e,t){return async(i,n,o)=>{const r=await t(i,{context:o,counterpart:e,newErr:uU.factory,requestId:n});return r instanceof uU?r.error:{ok:r}}}static getServerFromStream(e,t,i,n){const o=nF.fromTransport(t,i),{server:r}=e.getServer(o,n);return o.startListen(),{channel:o,server:r}}static registerServerToStream(e,t,i,n){const o=nF.fromTransport(t,i),{client:r}=e.registerServer(o,n);return o.startListen(),{channel:o,client:r}}getServer(e,t){const{counterpart:i,dispose:n}=this.getInterface(e,this.client,this.server,t);return{server:i,dispose:n}}registerServer(e,t){const{counterpart:i,dispose:n}=this.getInterface(e,this.server,this.client,t);return{client:i,dispose:n}}withContext(){return new AJ(this.tags,this.server,this.client)}};let Um=function(s){return s.Comment="comment",s.Imports="imports",s.Region="region",s}({}),Ui=function(s){return s[s.File=1]="File",s[s.Module=2]="Module",s[s.Namespace=3]="Namespace",s[s.Package=4]="Package",s[s.Class=5]="Class",s[s.Method=6]="Method",s[s.Property=7]="Property",s[s.Field=8]="Field",s[s.Constructor=9]="Constructor",s[s.Enum=10]="Enum",s[s.Interface=11]="Interface",s[s.Function=12]="Function",s[s.Variable=13]="Variable",s[s.Constant=14]="Constant",s[s.String=15]="String",s[s.Number=16]="Number",s[s.Boolean=17]="Boolean",s[s.Array=18]="Array",s[s.Object=19]="Object",s[s.Key=20]="Key",s[s.Null=21]="Null",s[s.EnumMember=22]="EnumMember",s[s.Struct=23]="Struct",s[s.Event=24]="Event",s[s.Operator=25]="Operator",s[s.TypeParameter=26]="TypeParameter",s}({}),PJ=function(s){return s[s.Deprecated=1]="Deprecated",s}({}),fU=function(s){return s[s.Type=1]="Type",s[s.Parameter=2]="Parameter",s}({}),K4e=function(s){return s[s.None=0]="None",s[s.Full=1]="Full",s[s.Incremental=2]="Incremental",s}({}),Gi=function(s){return s[s.Text=1]="Text",s[s.Method=2]="Method",s[s.Function=3]="Function",s[s.Constructor=4]="Constructor",s[s.Field=5]="Field",s[s.Variable=6]="Variable",s[s.Class=7]="Class",s[s.Interface=8]="Interface",s[s.Module=9]="Module",s[s.Property=10]="Property",s[s.Unit=11]="Unit",s[s.Value=12]="Value",s[s.Enum=13]="Enum",s[s.Keyword=14]="Keyword",s[s.Snippet=15]="Snippet",s[s.Color=16]="Color",s[s.File=17]="File",s[s.Reference=18]="Reference",s[s.Folder=19]="Folder",s[s.EnumMember=20]="EnumMember",s[s.Constant=21]="Constant",s[s.Struct=22]="Struct",s[s.Event=23]="Event",s[s.Operator=24]="Operator",s[s.TypeParameter=25]="TypeParameter",s}({}),G4e=function(s){return s[s.Deprecated=1]="Deprecated",s}({}),Y4e=function(s){return s[s.PlainText=1]="PlainText",s[s.Snippet=2]="Snippet",s}({}),oN=function(s){return s[s.Text=1]="Text",s[s.Read=2]="Read",s[s.Write=3]="Write",s}({}),Dc=function(s){return s.Empty="",s.QuickFix="quickfix",s.Refactor="refactor",s.RefactorExtract="refactor.extract",s.RefactorInline="refactor.inline",s.RefactorRewrite="refactor.rewrite",s.Source="source",s.SourceOrganizeImports="source.organizeImports",s.SourceFixAll="source.fixAll",s}({}),hD=function(s){return s.PlainText="plaintext",s.Markdown="markdown",s}({}),nd=function(s){return s[s.Error=1]="Error",s[s.Warning=2]="Warning",s[s.Information=3]="Information",s[s.Hint=4]="Hint",s}({}),pU=function(s){return s[s.Unnecessary=1]="Unnecessary",s[s.Deprecated=2]="Deprecated",s}({}),_y=function(s){return s[s.Invoked=1]="Invoked",s[s.TriggerCharacter=2]="TriggerCharacter",s[s.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",s}({}),by=function(s){return s[s.Invoked=1]="Invoked",s[s.TriggerCharacter=2]="TriggerCharacter",s[s.ContentChange=3]="ContentChange",s}({}),oF=function(s){return s[s.Invoked=1]="Invoked",s[s.Automatic=2]="Automatic",s}({}),Z4e=function(s){return s.Relative="relative",s}({});var gt=class{constructor(s){this.method=s}};const Je={textDocumentImplementation:new gt("textDocument/implementation"),textDocumentTypeDefinition:new gt("textDocument/typeDefinition"),textDocumentDocumentColor:new gt("textDocument/documentColor"),textDocumentColorPresentation:new gt("textDocument/colorPresentation"),textDocumentFoldingRange:new gt("textDocument/foldingRange"),textDocumentDeclaration:new gt("textDocument/declaration"),textDocumentSelectionRange:new gt("textDocument/selectionRange"),textDocumentPrepareCallHierarchy:new gt("textDocument/prepareCallHierarchy"),textDocumentSemanticTokensFull:new gt("textDocument/semanticTokens/full"),textDocumentSemanticTokensFullDelta:new gt("textDocument/semanticTokens/full/delta"),textDocumentLinkedEditingRange:new gt("textDocument/linkedEditingRange"),workspaceWillCreateFiles:new gt("workspace/willCreateFiles"),workspaceWillRenameFiles:new gt("workspace/willRenameFiles"),workspaceWillDeleteFiles:new gt("workspace/willDeleteFiles"),textDocumentMoniker:new gt("textDocument/moniker"),textDocumentPrepareTypeHierarchy:new gt("textDocument/prepareTypeHierarchy"),textDocumentInlineValue:new gt("textDocument/inlineValue"),textDocumentInlayHint:new gt("textDocument/inlayHint"),textDocumentDiagnostic:new gt("textDocument/diagnostic"),textDocumentInlineCompletion:new gt("textDocument/inlineCompletion"),textDocumentWillSaveWaitUntil:new gt("textDocument/willSaveWaitUntil"),textDocumentCompletion:new gt("textDocument/completion"),textDocumentHover:new gt("textDocument/hover"),textDocumentSignatureHelp:new gt("textDocument/signatureHelp"),textDocumentDefinition:new gt("textDocument/definition"),textDocumentReferences:new gt("textDocument/references"),textDocumentDocumentHighlight:new gt("textDocument/documentHighlight"),textDocumentDocumentSymbol:new gt("textDocument/documentSymbol"),textDocumentCodeAction:new gt("textDocument/codeAction"),workspaceSymbol:new gt("workspace/symbol"),textDocumentCodeLens:new gt("textDocument/codeLens"),textDocumentDocumentLink:new gt("textDocument/documentLink"),textDocumentFormatting:new gt("textDocument/formatting"),textDocumentRangeFormatting:new gt("textDocument/rangeFormatting"),textDocumentRangesFormatting:new gt("textDocument/rangesFormatting"),textDocumentOnTypeFormatting:new gt("textDocument/onTypeFormatting"),textDocumentRename:new gt("textDocument/rename"),workspaceExecuteCommand:new gt("workspace/executeCommand"),workspaceDidCreateFiles:new gt("workspace/didCreateFiles"),workspaceDidRenameFiles:new gt("workspace/didRenameFiles"),workspaceDidDeleteFiles:new gt("workspace/didDeleteFiles"),workspaceDidChangeConfiguration:new gt("workspace/didChangeConfiguration"),textDocumentDidOpen:new gt("textDocument/didOpen"),textDocumentDidChange:new gt("textDocument/didChange"),textDocumentDidClose:new gt("textDocument/didClose"),textDocumentDidSave:new gt("textDocument/didSave"),textDocumentWillSave:new gt("textDocument/willSave"),workspaceDidChangeWatchedFiles:new gt("workspace/didChangeWatchedFiles")},Yw=j4e({server:{textDocumentImplementation:ze({method:"textDocument/implementation"}),textDocumentTypeDefinition:ze({method:"textDocument/typeDefinition"}),textDocumentDocumentColor:ze({method:"textDocument/documentColor"}),textDocumentColorPresentation:ze({method:"textDocument/colorPresentation"}),textDocumentFoldingRange:ze({method:"textDocument/foldingRange"}),textDocumentDeclaration:ze({method:"textDocument/declaration"}),textDocumentSelectionRange:ze({method:"textDocument/selectionRange"}),textDocumentPrepareCallHierarchy:ze({method:"textDocument/prepareCallHierarchy"}),callHierarchyIncomingCalls:ze({method:"callHierarchy/incomingCalls"}),callHierarchyOutgoingCalls:ze({method:"callHierarchy/outgoingCalls"}),textDocumentSemanticTokensFull:ze({method:"textDocument/semanticTokens/full"}),textDocumentSemanticTokensFullDelta:ze({method:"textDocument/semanticTokens/full/delta"}),textDocumentSemanticTokensRange:ze({method:"textDocument/semanticTokens/range"}),textDocumentLinkedEditingRange:ze({method:"textDocument/linkedEditingRange"}),workspaceWillCreateFiles:ze({method:"workspace/willCreateFiles"}),workspaceWillRenameFiles:ze({method:"workspace/willRenameFiles"}),workspaceWillDeleteFiles:ze({method:"workspace/willDeleteFiles"}),textDocumentMoniker:ze({method:"textDocument/moniker"}),textDocumentPrepareTypeHierarchy:ze({method:"textDocument/prepareTypeHierarchy"}),typeHierarchySupertypes:ze({method:"typeHierarchy/supertypes"}),typeHierarchySubtypes:ze({method:"typeHierarchy/subtypes"}),textDocumentInlineValue:ze({method:"textDocument/inlineValue"}),textDocumentInlayHint:ze({method:"textDocument/inlayHint"}),inlayHintResolve:ze({method:"inlayHint/resolve"}),textDocumentDiagnostic:ze({method:"textDocument/diagnostic"}),workspaceDiagnostic:ze({method:"workspace/diagnostic"}),textDocumentInlineCompletion:ze({method:"textDocument/inlineCompletion"}),initialize:ze({method:"initialize"}),shutdown:ze({method:"shutdown"}),textDocumentWillSaveWaitUntil:ze({method:"textDocument/willSaveWaitUntil"}),textDocumentCompletion:ze({method:"textDocument/completion"}),completionItemResolve:ze({method:"completionItem/resolve"}),textDocumentHover:ze({method:"textDocument/hover"}),textDocumentSignatureHelp:ze({method:"textDocument/signatureHelp"}),textDocumentDefinition:ze({method:"textDocument/definition"}),textDocumentReferences:ze({method:"textDocument/references"}),textDocumentDocumentHighlight:ze({method:"textDocument/documentHighlight"}),textDocumentDocumentSymbol:ze({method:"textDocument/documentSymbol"}),textDocumentCodeAction:ze({method:"textDocument/codeAction"}),codeActionResolve:ze({method:"codeAction/resolve"}),workspaceSymbol:ze({method:"workspace/symbol"}),workspaceSymbolResolve:ze({method:"workspaceSymbol/resolve"}),textDocumentCodeLens:ze({method:"textDocument/codeLens"}),codeLensResolve:ze({method:"codeLens/resolve"}),textDocumentDocumentLink:ze({method:"textDocument/documentLink"}),documentLinkResolve:ze({method:"documentLink/resolve"}),textDocumentFormatting:ze({method:"textDocument/formatting"}),textDocumentRangeFormatting:ze({method:"textDocument/rangeFormatting"}),textDocumentRangesFormatting:ze({method:"textDocument/rangesFormatting"}),textDocumentOnTypeFormatting:ze({method:"textDocument/onTypeFormatting"}),textDocumentRename:ze({method:"textDocument/rename"}),textDocumentPrepareRename:ze({method:"textDocument/prepareRename"}),workspaceExecuteCommand:ze({method:"workspace/executeCommand"}),workspaceDidChangeWorkspaceFolders:Ri({method:"workspace/didChangeWorkspaceFolders"}),windowWorkDoneProgressCancel:Ri({method:"window/workDoneProgress/cancel"}),workspaceDidCreateFiles:Ri({method:"workspace/didCreateFiles"}),workspaceDidRenameFiles:Ri({method:"workspace/didRenameFiles"}),workspaceDidDeleteFiles:Ri({method:"workspace/didDeleteFiles"}),notebookDocumentDidOpen:Ri({method:"notebookDocument/didOpen"}),notebookDocumentDidChange:Ri({method:"notebookDocument/didChange"}),notebookDocumentDidSave:Ri({method:"notebookDocument/didSave"}),notebookDocumentDidClose:Ri({method:"notebookDocument/didClose"}),initialized:Ri({method:"initialized"}),exit:Ri({method:"exit"}),workspaceDidChangeConfiguration:Ri({method:"workspace/didChangeConfiguration"}),textDocumentDidOpen:Ri({method:"textDocument/didOpen"}),textDocumentDidChange:Ri({method:"textDocument/didChange"}),textDocumentDidClose:Ri({method:"textDocument/didClose"}),textDocumentDidSave:Ri({method:"textDocument/didSave"}),textDocumentWillSave:Ri({method:"textDocument/willSave"}),workspaceDidChangeWatchedFiles:Ri({method:"workspace/didChangeWatchedFiles"}),setTrace:Ri({method:"$/setTrace"}),cancelRequest:Ri({method:"$/cancelRequest"}),progress:Ri({method:"$/progress"})},client:{workspaceWorkspaceFolders:ze({method:"workspace/workspaceFolders"}).optional(),workspaceConfiguration:ze({method:"workspace/configuration"}).optional(),workspaceFoldingRangeRefresh:ze({method:"workspace/foldingRange/refresh"}).optional(),windowWorkDoneProgressCreate:ze({method:"window/workDoneProgress/create"}).optional(),workspaceSemanticTokensRefresh:ze({method:"workspace/semanticTokens/refresh"}).optional(),windowShowDocument:ze({method:"window/showDocument"}).optional(),workspaceInlineValueRefresh:ze({method:"workspace/inlineValue/refresh"}).optional(),workspaceInlayHintRefresh:ze({method:"workspace/inlayHint/refresh"}).optional(),workspaceDiagnosticRefresh:ze({method:"workspace/diagnostic/refresh"}).optional(),clientRegisterCapability:ze({method:"client/registerCapability"}).optional(),clientUnregisterCapability:ze({method:"client/unregisterCapability"}).optional(),windowShowMessageRequest:ze({method:"window/showMessageRequest"}).optional(),workspaceCodeLensRefresh:ze({method:"workspace/codeLens/refresh"}).optional(),workspaceApplyEdit:ze({method:"workspace/applyEdit"}).optional(),windowShowMessage:Ri({method:"window/showMessage"}),windowLogMessage:Ri({method:"window/logMessage"}),telemetryEvent:Ri({method:"telemetry/event"}),textDocumentPublishDiagnostics:Ri({method:"textDocument/publishDiagnostics"}),logTrace:Ri({method:"$/logTrace"}),cancelRequest:Ri({method:"$/cancelRequest"}),progress:Ri({method:"$/progress"})}});function jg(s,e){if(s.textModel!==e)throw new Error(`Expected text model to be ${e}, but got ${s.textModel}`);return s}var Ki=(nN=class{constructor(){ye(this,"_store",new JW)}dispose(){this._store.dispose()}_register(s){if(s===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(s)}},ye(nN,"None",Object.freeze({dispose(){}})),nN),JW=(I0=class{constructor(){ye(this,"_toDispose",new Set),ye(this,"_isDisposed",!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(this._toDispose.size!==0)try{for(const s of this._toDispose)s.dispose()}finally{this._toDispose.clear()}}add(s){if(!s)return s;if(s===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?I0.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(s),s}},ye(I0,"DISABLE_DISPOSED_WARNING",!1),I0);const OJ=new Map([[Dc.Empty,""],[Dc.QuickFix,"quickfix"],[Dc.Refactor,"refactor"],[Dc.RefactorExtract,"refactor.extract"],[Dc.RefactorInline,"refactor.inline"],[Dc.RefactorRewrite,"refactor.rewrite"],[Dc.Source,"source"],[Dc.SourceOrganizeImports,"source.organizeImports"],[Dc.SourceFixAll,"source.fixAll"]]);function X4e(s){if(s)return OJ.get(s)??s}const Q4e=new Map([[he.CodeActionTriggerType.Invoke,oF.Invoked],[he.CodeActionTriggerType.Auto,oF.Automatic]]);function J4e(s){return Q4e.get(s)??oF.Invoked}const FJ=new Map([[Gi.Text,he.CompletionItemKind.Text],[Gi.Method,he.CompletionItemKind.Method],[Gi.Function,he.CompletionItemKind.Function],[Gi.Constructor,he.CompletionItemKind.Constructor],[Gi.Field,he.CompletionItemKind.Field],[Gi.Variable,he.CompletionItemKind.Variable],[Gi.Class,he.CompletionItemKind.Class],[Gi.Interface,he.CompletionItemKind.Interface],[Gi.Module,he.CompletionItemKind.Module],[Gi.Property,he.CompletionItemKind.Property],[Gi.Unit,he.CompletionItemKind.Unit],[Gi.Value,he.CompletionItemKind.Value],[Gi.Enum,he.CompletionItemKind.Enum],[Gi.Keyword,he.CompletionItemKind.Keyword],[Gi.Snippet,he.CompletionItemKind.Snippet],[Gi.Color,he.CompletionItemKind.Color],[Gi.File,he.CompletionItemKind.File],[Gi.Reference,he.CompletionItemKind.Reference],[Gi.Folder,he.CompletionItemKind.Folder],[Gi.EnumMember,he.CompletionItemKind.EnumMember],[Gi.Constant,he.CompletionItemKind.Constant],[Gi.Struct,he.CompletionItemKind.Struct],[Gi.Event,he.CompletionItemKind.Event],[Gi.Operator,he.CompletionItemKind.Operator],[Gi.TypeParameter,he.CompletionItemKind.TypeParameter]]);function e5e(s){return s?FJ.get(s)??he.CompletionItemKind.Text:he.CompletionItemKind.Text}const WJ=new Map([[G4e.Deprecated,he.CompletionItemTag.Deprecated]]);function t5e(s){return WJ.get(s)}const i5e=new Map([[he.CompletionTriggerKind.Invoke,_y.Invoked],[he.CompletionTriggerKind.TriggerCharacter,_y.TriggerCharacter],[he.CompletionTriggerKind.TriggerForIncompleteCompletions,_y.TriggerForIncompleteCompletions]]);function n5e(s){return i5e.get(s)??_y.Invoked}const s5e=new Map([[Y4e.Snippet,he.CompletionItemInsertTextRule.InsertAsSnippet]]);function o5e(s){if(s)return s5e.get(s)}const BJ=new Map([[Ui.File,he.SymbolKind.File],[Ui.Module,he.SymbolKind.Module],[Ui.Namespace,he.SymbolKind.Namespace],[Ui.Package,he.SymbolKind.Package],[Ui.Class,he.SymbolKind.Class],[Ui.Method,he.SymbolKind.Method],[Ui.Property,he.SymbolKind.Property],[Ui.Field,he.SymbolKind.Field],[Ui.Constructor,he.SymbolKind.Constructor],[Ui.Enum,he.SymbolKind.Enum],[Ui.Interface,he.SymbolKind.Interface],[Ui.Function,he.SymbolKind.Function],[Ui.Variable,he.SymbolKind.Variable],[Ui.Constant,he.SymbolKind.Constant],[Ui.String,he.SymbolKind.String],[Ui.Number,he.SymbolKind.Number],[Ui.Boolean,he.SymbolKind.Boolean],[Ui.Array,he.SymbolKind.Array],[Ui.Object,he.SymbolKind.Object],[Ui.Key,he.SymbolKind.Key],[Ui.Null,he.SymbolKind.Null],[Ui.EnumMember,he.SymbolKind.EnumMember],[Ui.Struct,he.SymbolKind.Struct],[Ui.Event,he.SymbolKind.Event],[Ui.Operator,he.SymbolKind.Operator],[Ui.TypeParameter,he.SymbolKind.TypeParameter]]);function HJ(s){return BJ.get(s)??he.SymbolKind.File}const r5e=new Map([[PJ.Deprecated,he.SymbolTag.Deprecated]]);function VJ(s){return r5e.get(s)}const a5e=new Map([[oN.Text,he.DocumentHighlightKind.Text],[oN.Read,he.DocumentHighlightKind.Read],[oN.Write,he.DocumentHighlightKind.Write]]);function l5e(s){return s?a5e.get(s)??he.DocumentHighlightKind.Text:he.DocumentHighlightKind.Text}const c5e=new Map([[Um.Comment,he.FoldingRangeKind.Comment],[Um.Imports,he.FoldingRangeKind.Imports],[Um.Region,he.FoldingRangeKind.Region]]);function d5e(s){if(s)return c5e.get(s)}const h5e=new Map([[ha.Error,nd.Error],[ha.Warning,nd.Warning],[ha.Info,nd.Information],[ha.Hint,nd.Hint]]);function u5e(s){return h5e.get(s)??nd.Error}const g5e=new Map([[nd.Error,ha.Error],[nd.Warning,ha.Warning],[nd.Information,ha.Info],[nd.Hint,ha.Hint]]);function f5e(s){return s?g5e.get(s)??ha.Error:ha.Error}const zJ=new Map([[pU.Unnecessary,dD.Unnecessary],[pU.Deprecated,dD.Deprecated]]);function p5e(s){return zJ.get(s)}const m5e=new Map([[he.SignatureHelpTriggerKind.Invoke,by.Invoked],[he.SignatureHelpTriggerKind.TriggerCharacter,by.TriggerCharacter],[he.SignatureHelpTriggerKind.ContentChange,by.ContentChange]]);function _5e(s){return m5e.get(s)??by.Invoked}function $m(s){if(s)return{id:s.command,title:s.title,arguments:s.arguments}}const b5e=new Map([[fU.Type,he.InlayHintKind.Type],[fU.Parameter,he.InlayHintKind.Parameter]]);function C5e(s){return s?b5e.get(s)??he.InlayHintKind.Type:he.InlayHintKind.Type}function ou(s,e){if("targetUri"in s){const t=e.bridge.translateBackRange({uri:s.targetUri},s.targetRange);return{uri:t.textModel.uri,range:t.range,originSelectionRange:s.originSelectionRange?e.bridge.translateBackRange({uri:s.targetUri},s.originSelectionRange).range:void 0,targetSelectionRange:s.targetSelectionRange?e.bridge.translateBackRange({uri:s.targetUri},s.targetSelectionRange).range:void 0}}else{const t=e.bridge.translateBackRange({uri:s.uri},s.range);return{uri:t.textModel.uri,range:t.range}}}function Fn(s){return!s||s.length===0?{language:"*"}:s.map(e=>"notebook"in e?typeof e.notebook=="string"?{notebookType:e.notebook,language:e.language}:{notebookType:e.notebook.notebookType,language:e.language,pattern:e.notebook.pattern,scheme:e.notebook.scheme}:{language:e.language,pattern:e.pattern,scheme:e.scheme})}function v5e(s,e){if(!e)return!0;const t=s.getLanguageId();if(s.uri.toString(!0),!e||e.length===0)return!0;for(const i of e)if(!(i.language&&i.language!=="*"&&i.language!==t))return!0;return!1}function rF(s){const e={severity:f5e(s.severity),startLineNumber:s.range.start.line+1,startColumn:s.range.start.character+1,endLineNumber:s.range.end.line+1,endColumn:s.range.end.character+1,message:s.message,source:s.source,code:typeof s.code=="string"?s.code:s.code?.toString()};return s.tags&&(e.tags=s.tags.map(t=>p5e(t)).filter(t=>t!==void 0)),s.relatedInformation&&(e.relatedInformation=s.relatedInformation.map(t=>({resource:CI.parse(t.location.uri),startLineNumber:t.location.range.start.line+1,startColumn:t.location.range.start.character+1,endLineNumber:t.location.range.end.line+1,endColumn:t.location.range.end.character+1,message:t.message}))),e}var w5e=class extends Ki{constructor(s){super(),this._connection=s,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from(FJ.keys())},completionItem:{tagSupport:{valueSet:Array.from(WJ.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Je.textDocumentCompletion,!0,e=>he.registerCompletionItemProvider(Fn(e.documentSelector),new S5e(this._connection,e))))}},S5e=class{constructor(s,e){ye(this,"resolveCompletionItem"),this._client=s,this._capabilities=e,e.resolveProvider&&(this.resolveCompletionItem=async(t,i)=>(UJ(t,await this._client.server.completionItemResolve(t._lspItem),this._client.bridge,t._translated,t._model),t))}get triggerCharacters(){return this._capabilities.triggerCharacters}async provideCompletionItems(s,e,t,i){const n=this._client.bridge.translate(s,e),o=await this._client.server.textDocumentCompletion({textDocument:n.textDocument,position:n.position,context:t.triggerCharacter?{triggerKind:n5e(t.triggerKind),triggerCharacter:t.triggerCharacter}:void 0});return o?{suggestions:(Array.isArray(o)?o:o.items).map(r=>({...y5e(r,this._client.bridge,n,s,e),_lspItem:r,_translated:n,_model:s}))}:{suggestions:[]}}};function y5e(s,e,t,i,n){let o=s.insertText||s.label,r;s.textEdit&&("range"in s.textEdit?(o=s.textEdit.newText,r=jg(e.translateBackRange(t.textDocument,s.textEdit.range),i).range):(o=s.textEdit.newText,r={insert:jg(e.translateBackRange(t.textDocument,s.textEdit.insert),i).range,replace:jg(e.translateBackRange(t.textDocument,s.textEdit.replace),i).range})),r||(r=ob.fromPositions(n,n));const a={label:s.label,kind:e5e(s.kind),insertText:o,sortText:s.sortText,filterText:s.filterText,preselect:s.preselect,commitCharacters:s.commitCharacters,range:r};return UJ(a,s,e,t,i),a}function UJ(s,e,t,i,n){e.detail!==void 0&&(s.detail=e.detail),e.documentation!==void 0&&(s.documentation=L5e(e.documentation)),e.insertTextFormat!==void 0&&(s.insertTextRules=o5e(e.insertTextFormat)),e.tags&&e.tags.length>0&&(s.tags=e.tags.map(t5e).filter(o=>o!==void 0)),e.additionalTextEdits&&e.additionalTextEdits.length>0&&(s.additionalTextEdits=e.additionalTextEdits.map(o=>({range:jg(t.translateBackRange(i.textDocument,o.range),n).range,text:o.newText}))),e.command&&(s.command=$m(e.command))}function L5e(s){if(s)return typeof s=="string"?s:{value:s.value,isTrusted:!0}}var x5e=class extends Ki{constructor(s){super(),this._connection=s,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[hD.Markdown,hD.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(Je.textDocumentHover,!0,e=>he.registerHoverProvider(Fn(e.documentSelector),new D5e(this._connection,e))))}},D5e=class{constructor(s,e){this._client=s,this._capabilities=e}async provideHover(s,e,t){const i=this._client.bridge.translate(s,e),n=await this._client.server.textDocumentHover({textDocument:i.textDocument,position:i.position});return!n||!n.contents?null:{contents:k5e(n.contents),range:n.range?this._client.bridge.translateBackRange(i.textDocument,n.range).range:void 0}}};function k5e(s){return Array.isArray(s)?s.map(e=>mU(e)):[mU(s)]}function mU(s){return typeof s=="string"?{value:s,isTrusted:!0}:"kind"in s?{value:s.value,isTrusted:!0}:{value:`\`\`\`${s.language} ${s.value} @@ -938,4 +938,4 @@ ${s.value} id INT IDENTITY(1,1) PRIMARY KEY, \${2:column_name} \${3:NVARCHAR(255)} NOT NULL, created_at DATETIME2 DEFAULT GETDATE() -)`,detail:"CREATE TABLE (SQL Server)"},{label:"alt",insertText:"ALTER TABLE ${1:table}\nADD ${2:column} ${3:type}",detail:"ALTER TABLE 添加列"},{label:"idx",insertText:"CREATE INDEX ${1:idx_name}\nON ${2:table} (${3:column})",detail:"CREATE INDEX"},{label:"join",insertText:"SELECT ${1:t1.*}, ${2:t2.*}\nFROM ${3:table1} t1\nINNER JOIN ${4:table2} t2 ON t1.${5:id} = t2.${6:t1_id}",detail:"INNER JOIN"},{label:"ljoin",insertText:"SELECT ${1:t1.*}, ${2:t2.*}\nFROM ${3:table1} t1\nLEFT JOIN ${4:table2} t2 ON t1.${5:id} = t2.${6:t1_id}",detail:"LEFT JOIN"},{label:"rjoin",insertText:"SELECT ${1:t1.*}, ${2:t2.*}\nFROM ${3:table1} t1\nRIGHT JOIN ${4:table2} t2 ON t1.${5:id} = t2.${6:t1_id}",detail:"RIGHT JOIN"},{label:"case",insertText:"CASE\n WHEN ${1:condition1} THEN ${2:result1}\n WHEN ${3:condition2} THEN ${4:result2}\n ELSE ${5:default}\nEND",detail:"CASE WHEN"},{label:"cte",insertText:"WITH ${1:cte_name} AS (\n ${2:SELECT * FROM table}\n)\nSELECT * FROM ${1:cte_name}",detail:"CTE 公用表表达式"},{label:"sub",insertText:"SELECT * FROM (\n ${1:SELECT * FROM table}\n) AS ${2:subquery}",detail:"子查询"},{label:"exs",insertText:"SELECT * FROM ${1:table1} t1\nWHERE EXISTS (\n SELECT 1 FROM ${2:table2} t2\n WHERE t2.${3:t1_id} = t1.${4:id}\n)",detail:"EXISTS 子查询"},{label:"grp",insertText:"SELECT ${1:column}, COUNT(*) as count\nFROM ${2:table}\nGROUP BY ${1:column}\nHAVING COUNT(*) > ${3:1}\nORDER BY count DESC",detail:"GROUP BY 分组"},{label:"pag",insertText:"SELECT *\nFROM ${1:table}\nORDER BY ${2:id}\nOFFSET ${3:0} ROWS\nFETCH NEXT ${4:10} ROWS ONLY",detail:"OFFSET FETCH 分页 (SQL Server)"}].forEach(De=>{W.push({label:De.label,kind:_.languages.CompletionItemKind.Snippet,insertText:De.insertText,insertTextRules:_.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:v,detail:"📝 "+De.detail,sortText:"6"+De.label})}),{suggestions:W}}}),p.addCommand(_.KeyMod.CtrlCmd|_.KeyCode.Enter,()=>{g.current.onRun()}),p.addCommand(_.KeyMod.CtrlCmd|_.KeyCode.KeyS,()=>{g.current.onSave?.()}),p.addCommand(_.KeyMod.CtrlCmd|_.KeyCode.KeyO,()=>{g.current.onOpen?.()}),p.addCommand(_.KeyMod.CtrlCmd|_.KeyMod.Shift|_.KeyCode.KeyF,()=>{g.current.onFormat?.()}),p.addCommand(_.KeyMod.Alt|_.KeyMod.Shift|_.KeyCode.KeyF,()=>{g.current.onFormat?.()})};return yt.useEffect(()=>()=>{h.current?.dispose()},[]),see.jsx(gte,{height:"100%",language:"sql",value:s,onChange:p=>e(p||""),onMount:f,theme:"vs-dark",options:{minimap:{enabled:!1},fontSize:14,fontFamily:"'Cascadia Code', 'Consolas', monospace",lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,tabSize:2,wordWrap:"on",suggestOnTriggerCharacters:!0,quickSuggestions:{other:!0,comments:!1,strings:!0},snippetSuggestions:"top",suggest:{showKeywords:!0,showSnippets:!0,showFunctions:!0,showFields:!0,showClasses:!0,showModules:!0,preview:!0,filterGraceful:!0},padding:{top:10,bottom:10},acceptSuggestionOnEnter:"on"}})}const LHe=Object.freeze(Object.defineProperty({__proto__:null,default:U3e},Symbol.toStringTag,{value:"Module"}));export{ha as M,ob as R,LHe as S,CI as U,dD as a,P3e as c,ql as e,he as l,SJ as t}; +)`,detail:"CREATE TABLE (SQL Server)"},{label:"alt",insertText:"ALTER TABLE ${1:table}\nADD ${2:column} ${3:type}",detail:"ALTER TABLE 添加列"},{label:"idx",insertText:"CREATE INDEX ${1:idx_name}\nON ${2:table} (${3:column})",detail:"CREATE INDEX"},{label:"join",insertText:"SELECT ${1:t1.*}, ${2:t2.*}\nFROM ${3:table1} t1\nINNER JOIN ${4:table2} t2 ON t1.${5:id} = t2.${6:t1_id}",detail:"INNER JOIN"},{label:"ljoin",insertText:"SELECT ${1:t1.*}, ${2:t2.*}\nFROM ${3:table1} t1\nLEFT JOIN ${4:table2} t2 ON t1.${5:id} = t2.${6:t1_id}",detail:"LEFT JOIN"},{label:"rjoin",insertText:"SELECT ${1:t1.*}, ${2:t2.*}\nFROM ${3:table1} t1\nRIGHT JOIN ${4:table2} t2 ON t1.${5:id} = t2.${6:t1_id}",detail:"RIGHT JOIN"},{label:"case",insertText:"CASE\n WHEN ${1:condition1} THEN ${2:result1}\n WHEN ${3:condition2} THEN ${4:result2}\n ELSE ${5:default}\nEND",detail:"CASE WHEN"},{label:"cte",insertText:"WITH ${1:cte_name} AS (\n ${2:SELECT * FROM table}\n)\nSELECT * FROM ${1:cte_name}",detail:"CTE 公用表表达式"},{label:"sub",insertText:"SELECT * FROM (\n ${1:SELECT * FROM table}\n) AS ${2:subquery}",detail:"子查询"},{label:"exs",insertText:"SELECT * FROM ${1:table1} t1\nWHERE EXISTS (\n SELECT 1 FROM ${2:table2} t2\n WHERE t2.${3:t1_id} = t1.${4:id}\n)",detail:"EXISTS 子查询"},{label:"grp",insertText:"SELECT ${1:column}, COUNT(*) as count\nFROM ${2:table}\nGROUP BY ${1:column}\nHAVING COUNT(*) > ${3:1}\nORDER BY count DESC",detail:"GROUP BY 分组"},{label:"pag",insertText:"SELECT *\nFROM ${1:table}\nORDER BY ${2:id}\nOFFSET ${3:0} ROWS\nFETCH NEXT ${4:10} ROWS ONLY",detail:"OFFSET FETCH 分页 (SQL Server)"}].forEach(De=>{W.push({label:De.label,kind:_.languages.CompletionItemKind.Snippet,insertText:De.insertText,insertTextRules:_.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:v,detail:"📝 "+De.detail,sortText:"6"+De.label})}),{suggestions:W}}}),p.addCommand(_.KeyMod.CtrlCmd|_.KeyCode.Enter,()=>{g.current.onRun()}),p.addCommand(_.KeyMod.CtrlCmd|_.KeyCode.KeyS,()=>{g.current.onSave?.()}),p.addCommand(_.KeyMod.CtrlCmd|_.KeyCode.KeyO,()=>{g.current.onOpen?.()}),p.addCommand(_.KeyMod.CtrlCmd|_.KeyMod.Shift|_.KeyCode.KeyF,()=>{g.current.onFormat?.()}),p.addCommand(_.KeyMod.Alt|_.KeyMod.Shift|_.KeyCode.KeyF,()=>{g.current.onFormat?.()})};return yt.useEffect(()=>()=>{h.current?.dispose()},[]),see.jsx(gte,{height:"100%",language:"sql",value:s,onChange:p=>e(p||""),onMount:f,theme:"vs",options:{minimap:{enabled:!1},fontSize:14,fontFamily:"'Cascadia Code', 'Consolas', monospace",lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,tabSize:2,wordWrap:"on",suggestOnTriggerCharacters:!0,quickSuggestions:{other:!0,comments:!1,strings:!0},snippetSuggestions:"top",suggest:{showKeywords:!0,showSnippets:!0,showFunctions:!0,showFields:!0,showClasses:!0,showModules:!0,preview:!0,filterGraceful:!0},padding:{top:10,bottom:10},acceptSuggestionOnEnter:"on"}})}const LHe=Object.freeze(Object.defineProperty({__proto__:null,default:U3e},Symbol.toStringTag,{value:"Module"}));export{ha as M,ob as R,LHe as S,CI as U,dD as a,P3e as c,ql as e,he as l,SJ as t}; diff --git a/dist/assets/cssMode-Bh74hixD.js b/dist/assets/cssMode-BzXuMGag.js similarity index 93% rename from dist/assets/cssMode-Bh74hixD.js rename to dist/assets/cssMode-BzXuMGag.js index 0ba0e6f..78035cb 100644 --- a/dist/assets/cssMode-Bh74hixD.js +++ b/dist/assets/cssMode-BzXuMGag.js @@ -1 +1 @@ -import{c as h,l as s}from"./SqlEditor-BZP69oik.js";import{C as c,H as u,D as p,a as m,R as f,b as _,c as w,d as k,F as v,e as D,S as P,f as R,g as I}from"./lspLanguageFeatures-IVE1ZcxG.js";import{h as H,i as U,j as y,t as x,k as M}from"./lspLanguageFeatures-IVE1ZcxG.js";import"./index-BVucCY0H.js";const C=2*60*1e3;class A{constructor(n){this._defaults=n,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>C&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=h({moduleId:"vs/language/css/cssWorker",createWorker:()=>new Worker(new URL(""+new URL("css.worker-GxEd3MMM.js",import.meta.url).href,import.meta.url),{type:"module"}),label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...n){let e;return this._getClient().then(a=>{e=a}).then(a=>{if(this._worker)return this._worker.withSyncedResources(n)}).then(a=>e)}}function F(o){const n=[],e=[],a=new A(o);n.push(a);const r=(...t)=>a.getLanguageServiceWorker(...t);function l(){const{languageId:t,modeConfiguration:i}=o;g(e),i.completionItems&&e.push(s.registerCompletionItemProvider(t,new c(r,["/","-",":"]))),i.hovers&&e.push(s.registerHoverProvider(t,new u(r))),i.documentHighlights&&e.push(s.registerDocumentHighlightProvider(t,new p(r))),i.definitions&&e.push(s.registerDefinitionProvider(t,new m(r))),i.references&&e.push(s.registerReferenceProvider(t,new f(r))),i.documentSymbols&&e.push(s.registerDocumentSymbolProvider(t,new _(r))),i.rename&&e.push(s.registerRenameProvider(t,new w(r))),i.colors&&e.push(s.registerColorProvider(t,new k(r))),i.foldingRanges&&e.push(s.registerFoldingRangeProvider(t,new v(r))),i.diagnostics&&e.push(new D(t,r,o.onDidChange)),i.selectionRanges&&e.push(s.registerSelectionRangeProvider(t,new P(r))),i.documentFormattingEdits&&e.push(s.registerDocumentFormattingEditProvider(t,new R(r))),i.documentRangeFormattingEdits&&e.push(s.registerDocumentRangeFormattingEditProvider(t,new I(r)))}return l(),n.push(d(e)),d(n)}function d(o){return{dispose:()=>g(o)}}function g(o){for(;o.length;)o.pop().dispose()}export{c as CompletionAdapter,m as DefinitionAdapter,D as DiagnosticsAdapter,k as DocumentColorAdapter,R as DocumentFormattingEditProvider,p as DocumentHighlightAdapter,H as DocumentLinkAdapter,I as DocumentRangeFormattingEditProvider,_ as DocumentSymbolAdapter,v as FoldingRangeAdapter,u as HoverAdapter,f as ReferenceAdapter,w as RenameAdapter,P as SelectionRangeAdapter,A as WorkerManager,U as fromPosition,y as fromRange,F as setupMode,x as toRange,M as toTextEdit}; +import{c as h,l as s}from"./SqlEditor-Da5-w0EM.js";import{C as c,H as u,D as p,a as m,R as f,b as _,c as w,d as k,F as v,e as D,S as P,f as R,g as I}from"./lspLanguageFeatures-BdM92iMJ.js";import{h as H,i as U,j as y,t as x,k as M}from"./lspLanguageFeatures-BdM92iMJ.js";import"./index-DvMrZv5L.js";const C=2*60*1e3;class A{constructor(n){this._defaults=n,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>C&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=h({moduleId:"vs/language/css/cssWorker",createWorker:()=>new Worker(new URL(""+new URL("css.worker-GxEd3MMM.js",import.meta.url).href,import.meta.url),{type:"module"}),label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...n){let e;return this._getClient().then(a=>{e=a}).then(a=>{if(this._worker)return this._worker.withSyncedResources(n)}).then(a=>e)}}function F(o){const n=[],e=[],a=new A(o);n.push(a);const r=(...t)=>a.getLanguageServiceWorker(...t);function l(){const{languageId:t,modeConfiguration:i}=o;g(e),i.completionItems&&e.push(s.registerCompletionItemProvider(t,new c(r,["/","-",":"]))),i.hovers&&e.push(s.registerHoverProvider(t,new u(r))),i.documentHighlights&&e.push(s.registerDocumentHighlightProvider(t,new p(r))),i.definitions&&e.push(s.registerDefinitionProvider(t,new m(r))),i.references&&e.push(s.registerReferenceProvider(t,new f(r))),i.documentSymbols&&e.push(s.registerDocumentSymbolProvider(t,new _(r))),i.rename&&e.push(s.registerRenameProvider(t,new w(r))),i.colors&&e.push(s.registerColorProvider(t,new k(r))),i.foldingRanges&&e.push(s.registerFoldingRangeProvider(t,new v(r))),i.diagnostics&&e.push(new D(t,r,o.onDidChange)),i.selectionRanges&&e.push(s.registerSelectionRangeProvider(t,new P(r))),i.documentFormattingEdits&&e.push(s.registerDocumentFormattingEditProvider(t,new R(r))),i.documentRangeFormattingEdits&&e.push(s.registerDocumentRangeFormattingEditProvider(t,new I(r)))}return l(),n.push(d(e)),d(n)}function d(o){return{dispose:()=>g(o)}}function g(o){for(;o.length;)o.pop().dispose()}export{c as CompletionAdapter,m as DefinitionAdapter,D as DiagnosticsAdapter,k as DocumentColorAdapter,R as DocumentFormattingEditProvider,p as DocumentHighlightAdapter,H as DocumentLinkAdapter,I as DocumentRangeFormattingEditProvider,_ as DocumentSymbolAdapter,v as FoldingRangeAdapter,u as HoverAdapter,f as ReferenceAdapter,w as RenameAdapter,P as SelectionRangeAdapter,A as WorkerManager,U as fromPosition,y as fromRange,F as setupMode,x as toRange,M as toTextEdit}; diff --git a/dist/assets/freemarker2-DKByNqVm.js b/dist/assets/freemarker2-Ef7mzo1J.js similarity index 99% rename from dist/assets/freemarker2-DKByNqVm.js rename to dist/assets/freemarker2-Ef7mzo1J.js index 315b5f3..e340be0 100644 --- a/dist/assets/freemarker2-DKByNqVm.js +++ b/dist/assets/freemarker2-Ef7mzo1J.js @@ -1,3 +1,3 @@ -import{l as c}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const s=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],d=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],r={close:">",id:"angle",open:"<"},a={close:"\\]",id:"bracket",open:"\\["},F={close:"[>\\]]",id:"auto",open:"[<\\[]"},k={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},p={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function l(t){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${t.open}--`,`--${t.close}`]},autoCloseBefore:` +import{l as c}from"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";const s=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],d=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],r={close:">",id:"angle",open:"<"},a={close:"\\]",id:"bracket",open:"\\["},F={close:"[>\\]]",id:"auto",open:"[<\\[]"},k={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},p={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function l(t){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${t.open}--`,`--${t.close}`]},autoCloseBefore:` \r }]),.:;=`,autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`${t.open}#(?:${d.join("|")})([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),end:new RegExp(`${t.open}/#(?:${d.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`${t.open}#(?!(?:${s.join("|")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),afterText:new RegExp(`^${t.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${t.close}$`),action:{indentAction:c.IndentAction.IndentOutdent}},{beforeText:new RegExp(`${t.open}#(?!(?:${s.join("|")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),action:{indentAction:c.IndentAction.Indent}}]}}function g(){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],autoCloseBefore:` \r }]),.:;=`,autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`[<\\[]#(?:${d.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),end:new RegExp(`[<\\[]/#(?:${d.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`[<\\[]#(?!(?:${s.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),afterText:new RegExp("^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$"),action:{indentAction:c.IndentAction.IndentOutdent}},{beforeText:new RegExp(`[<\\[]#(?!(?:${s.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),action:{indentAction:c.IndentAction.Indent}}]}}function _(t,n){const i=`_${t.id}_${n.id}`,e=u=>u.replace(/__id__/g,i),o=u=>{const m=u.source.replace(/__id__/g,i);return new RegExp(m,u.flags)};return{unicode:!0,includeLF:!1,start:e("default__id__"),ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],[e("open__id__")]:new RegExp(t.open),[e("close__id__")]:new RegExp(t.close),[e("iOpen1__id__")]:new RegExp(n.open1),[e("iOpen2__id__")]:new RegExp(n.open2),[e("iClose__id__")]:new RegExp(n.close),[e("startTag__id__")]:o(/(@open__id__)(#)/),[e("endTag__id__")]:o(/(@open__id__)(\/#)/),[e("startOrEndTag__id__")]:o(/(@open__id__)(\/?#)/),[e("closeTag1__id__")]:o(/((?:@blank)*)(@close__id__)/),[e("closeTag2__id__")]:o(/((?:@blank)*\/?)(@close__id__)/),blank:/[ \t\n\r]/,keywords:["false","true","in","as","using"],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,escapedIdChar:/\\[\-\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\*\*|\*|false|true|in|as|using/,namedSymbols:/<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,arrows:["->","->"],delimiters:[";",":",",","."],stringOperators:["lte","lt","gte","gt"],noParseTags:["noparse","noParse","comment"],tokenizer:{[e("default__id__")]:[{include:e("@directive_token__id__")},{include:e("@interpolation_and_text_token__id__")}],[e("fmExpression__id__.directive")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("fmExpression__id__.interpolation")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@expression_token__id__")},{include:e("@greater_operators_token__id__")}],[e("inParen__id__.plain")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("inParen__id__.gt")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@expression_token__id__")},{include:e("@greater_operators_token__id__")}],[e("noSpaceExpression__id__")]:[{include:e("@no_space_expression_end_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("unifiedCall__id__")]:[{include:e("@unified_call_token__id__")}],[e("singleString__id__")]:[{include:e("@string_single_token__id__")}],[e("doubleString__id__")]:[{include:e("@string_double_token__id__")}],[e("rawSingleString__id__")]:[{include:e("@string_single_raw_token__id__")}],[e("rawDoubleString__id__")]:[{include:e("@string_double_raw_token__id__")}],[e("expressionComment__id__")]:[{include:e("@expression_comment_token__id__")}],[e("noParse__id__")]:[{include:e("@no_parse_token__id__")}],[e("terseComment__id__")]:[{include:e("@terse_comment_token__id__")}],[e("directive_token__id__")]:[[o(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{cases:{"@noParseTags":{token:"tag",next:e("@noParse__id__.$3")},"@default":{token:"tag"}}},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"",next:e("@fmExpression__id__.directive")}]],[o(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)(@)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive",next:e("@unifiedCall__id__")}]],[o(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)#--/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:{token:"comment",next:e("@terseComment__id__")}],[o(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag.invalid",next:e("@fmExpression__id__.directive")}]]],[e("interpolation_and_text_token__id__")]:[[o(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:n.id==="bracket"?"@brackets.interpolation":"delimiter.interpolation"},{token:n.id==="bracket"?"delimiter.interpolation":"@brackets.interpolation",next:e("@fmExpression__id__.interpolation")}]],[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/,{token:"source"}]],[e("string_single_token__id__")]:[[/[^'\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/'/,{token:"string",next:"@pop"}]],[e("string_double_token__id__")]:[[/[^"\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/"/,{token:"string",next:"@pop"}]],[e("string_single_raw_token__id__")]:[[/[^']+/,{token:"string.raw"}],[/'/,{token:"string.raw",next:"@pop"}]],[e("string_double_raw_token__id__")]:[[/[^"]+/,{token:"string.raw"}],[/"/,{token:"string.raw",next:"@pop"}]],[e("expression_token__id__")]:[[/(r?)(['"])/,{cases:{"r'":[{token:"keyword"},{token:"string.raw",next:e("@rawSingleString__id__")}],'r"':[{token:"keyword"},{token:"string.raw",next:e("@rawDoubleString__id__")}],"'":[{token:"source"},{token:"string",next:e("@singleString__id__")}],'"':[{token:"source"},{token:"string",next:e("@doubleString__id__")}]}}],[/(?:@integer)(?:\.(?:@integer))?/,{cases:{"(?:@integer)":{token:"number"},"@default":{token:"number.float"}}}],[/(\.)(@blank*)(@specialHashKeys)/,[{token:"delimiter"},{token:""},{token:"identifier"}]],[/(?:@namedSymbols)/,{cases:{"@arrows":{token:"meta.arrow"},"@delimiters":{token:"delimiter"},"@default":{token:"operators"}}}],[/@id/,{cases:{"@keywords":{token:"keyword.$0"},"@stringOperators":{token:"operators"},"@default":{token:"identifier"}}}],[/[\[\]\(\)\{\}]/,{cases:{"\\[":{cases:{"$S2==gt":{token:"@brackets",next:e("@inParen__id__.gt")},"@default":{token:"@brackets",next:e("@inParen__id__.plain")}}},"\\]":{cases:{...n.id==="bracket"?{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}}:{},...t.id==="bracket"?{"$S2==directive":{token:"@brackets.directive",next:"@popall"}}:{},[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\(":{token:"@brackets",next:e("@inParen__id__.gt")},"\\)":{cases:{[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\{":{cases:{"$S2==gt":{token:"@brackets",next:e("@inParen__id__.gt")},"@default":{token:"@brackets",next:e("@inParen__id__.plain")}}},"\\}":{cases:{...n.id==="bracket"?{}:{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}},[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}}}}],[/\$\{/,{token:"delimiter.invalid"}]],[e("blank_and_expression_comment_token__id__")]:[[/(?:@blank)+/,{token:""}],[/[<\[][#!]--/,{token:"comment",next:e("@expressionComment__id__")}]],[e("directive_end_token__id__")]:[[/>/,t.id==="bracket"?{token:"operators"}:{token:"@brackets.directive",next:"@popall"}],[o(/(\/)(@close__id__)/),[{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]]],[e("greater_operators_token__id__")]:[[/>/,{token:"operators"}],[/>=/,{token:"operators"}]],[e("no_space_expression_end_token__id__")]:[[/(?:@blank)+/,{token:"",switchTo:e("@fmExpression__id__.directive")}]],[e("unified_call_token__id__")]:[[/(@id)((?:@blank)+)/,[{token:"tag"},{token:"",next:e("@fmExpression__id__.directive")}]],[o(/(@id)(\/?)(@close__id__)/),[{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]],[/./,{token:"@rematch",next:e("@noSpaceExpression__id__")}]],[e("no_parse_token__id__")]:[[o(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{"$S2==$3":[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:""},{token:"@brackets.directive",next:"@popall"}],"$S2==comment":[{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"}],"@default":[{token:"source"},{token:"source"},{token:"source"},{token:"source"},{token:"source"}]}}],[/[^<\[\-]+|[<\[\-]/,{cases:{"$S2==comment":{token:"comment"},"@default":{token:"source"}}}]],[e("expression_comment_token__id__")]:[[/--[>\]]/,{token:"comment",next:"@pop"}],[/[^\->\]]+|[>\]\-]/,{token:"comment"}]],[e("terse_comment_token__id__")]:[[o(/--(?:@close__id__)/),{token:"comment",next:"@popall"}],[/[^<\[\-]+|[<\[\-]/,{token:"comment"}]]}}}function A(t){const n=_(r,t),i=_(a,t),e=_(F,t);return{...n,...i,...e,unicode:!0,includeLF:!1,start:`default_auto_${t.id}`,ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{...n.tokenizer,...i.tokenizer,...e.tokenizer}}}const x={conf:l(r),language:_(r,k)},$={conf:l(a),language:_(a,k)},E={conf:l(r),language:_(r,p)},B={conf:l(a),language:_(a,p)},D={conf:g(),language:A(k)},C={conf:g(),language:A(p)};export{E as TagAngleInterpolationBracket,x as TagAngleInterpolationDollar,C as TagAutoInterpolationBracket,D as TagAutoInterpolationDollar,B as TagBracketInterpolationBracket,$ as TagBracketInterpolationDollar}; diff --git a/dist/assets/handlebars-Pb6dHgaL.js b/dist/assets/handlebars-DwPWXcEV.js similarity index 97% rename from dist/assets/handlebars-Pb6dHgaL.js rename to dist/assets/handlebars-DwPWXcEV.js index 1bbffa2..3b0bbfa 100644 --- a/dist/assets/handlebars-Pb6dHgaL.js +++ b/dist/assets/handlebars-DwPWXcEV.js @@ -1 +1 @@ -import{l as e}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[[""],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};export{m as conf,r as language}; +import{l as e}from"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";const t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[[""],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};export{m as conf,r as language}; diff --git a/dist/assets/html-VqT4czY_.js b/dist/assets/html-DyQTQYyb.js similarity index 97% rename from dist/assets/html-VqT4czY_.js rename to dist/assets/html-DyQTQYyb.js index 0858731..153a09c 100644 --- a/dist/assets/html-VqT4czY_.js +++ b/dist/assets/html-DyQTQYyb.js @@ -1 +1 @@ -import{l as e}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[""]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${t.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:e.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},o={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"module"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/'module'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};export{r as conf,o as language}; +import{l as e}from"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";const t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],r={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[""]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${t.join("|")}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:e.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},o={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"module"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/'module'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.text/javascript"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};export{r as conf,o as language}; diff --git a/dist/assets/htmlMode-C-m7RvRY.js b/dist/assets/htmlMode-Bawo0UIb.js similarity index 94% rename from dist/assets/htmlMode-C-m7RvRY.js rename to dist/assets/htmlMode-Bawo0UIb.js index 568224c..a90bf54 100644 --- a/dist/assets/htmlMode-C-m7RvRY.js +++ b/dist/assets/htmlMode-Bawo0UIb.js @@ -1 +1 @@ -import{c as D,l as t}from"./SqlEditor-BZP69oik.js";import{H as d,D as l,h as c,F as u,b as h,S as m,c as p,f as w,g as _,C as R}from"./lspLanguageFeatures-IVE1ZcxG.js";import{a as H,e as b,d as U,R as y,i as T,j as x,t as M,k as j}from"./lspLanguageFeatures-IVE1ZcxG.js";import"./index-BVucCY0H.js";const I=2*60*1e3;class f{constructor(n){this._defaults=n,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>I&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=D({moduleId:"vs/language/html/htmlWorker",createWorker:()=>new Worker(new URL(""+new URL("html.worker-lU17Tx2m.js",import.meta.url).href,import.meta.url),{type:"module"}),createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...n){let e;return this._getClient().then(r=>{e=r}).then(r=>{if(this._worker)return this._worker.withSyncedResources(n)}).then(r=>e)}}class v extends R{constructor(n){super(n,[".",":","<",'"',"=","/"])}}function L(i){const n=new f(i),e=(...o)=>n.getLanguageServiceWorker(...o);let r=i.languageId;t.registerCompletionItemProvider(r,new v(e)),t.registerHoverProvider(r,new d(e)),t.registerDocumentHighlightProvider(r,new l(e)),t.registerLinkProvider(r,new c(e)),t.registerFoldingRangeProvider(r,new u(e)),t.registerDocumentSymbolProvider(r,new h(e)),t.registerSelectionRangeProvider(r,new m(e)),t.registerRenameProvider(r,new p(e)),r==="html"&&(t.registerDocumentFormattingEditProvider(r,new w(e)),t.registerDocumentRangeFormattingEditProvider(r,new _(e)))}function W(i){const n=[],e=[],r=new f(i);n.push(r);const o=(...s)=>r.getLanguageServiceWorker(...s);function P(){const{languageId:s,modeConfiguration:a}=i;k(e),a.completionItems&&e.push(t.registerCompletionItemProvider(s,new v(o))),a.hovers&&e.push(t.registerHoverProvider(s,new d(o))),a.documentHighlights&&e.push(t.registerDocumentHighlightProvider(s,new l(o))),a.links&&e.push(t.registerLinkProvider(s,new c(o))),a.documentSymbols&&e.push(t.registerDocumentSymbolProvider(s,new h(o))),a.rename&&e.push(t.registerRenameProvider(s,new p(o))),a.foldingRanges&&e.push(t.registerFoldingRangeProvider(s,new u(o))),a.selectionRanges&&e.push(t.registerSelectionRangeProvider(s,new m(o))),a.documentFormattingEdits&&e.push(t.registerDocumentFormattingEditProvider(s,new w(o))),a.documentRangeFormattingEdits&&e.push(t.registerDocumentRangeFormattingEditProvider(s,new _(o)))}return P(),n.push(g(e)),g(n)}function g(i){return{dispose:()=>k(i)}}function k(i){for(;i.length;)i.pop().dispose()}export{R as CompletionAdapter,H as DefinitionAdapter,b as DiagnosticsAdapter,U as DocumentColorAdapter,w as DocumentFormattingEditProvider,l as DocumentHighlightAdapter,c as DocumentLinkAdapter,_ as DocumentRangeFormattingEditProvider,h as DocumentSymbolAdapter,u as FoldingRangeAdapter,d as HoverAdapter,y as ReferenceAdapter,p as RenameAdapter,m as SelectionRangeAdapter,f as WorkerManager,T as fromPosition,x as fromRange,W as setupMode,L as setupMode1,M as toRange,j as toTextEdit}; +import{c as D,l as t}from"./SqlEditor-Da5-w0EM.js";import{H as d,D as l,h as c,F as u,b as h,S as m,c as p,f as w,g as _,C as R}from"./lspLanguageFeatures-BdM92iMJ.js";import{a as H,e as b,d as U,R as y,i as T,j as x,t as M,k as j}from"./lspLanguageFeatures-BdM92iMJ.js";import"./index-DvMrZv5L.js";const I=2*60*1e3;class f{constructor(n){this._defaults=n,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>I&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=D({moduleId:"vs/language/html/htmlWorker",createWorker:()=>new Worker(new URL(""+new URL("html.worker-lU17Tx2m.js",import.meta.url).href,import.meta.url),{type:"module"}),createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...n){let e;return this._getClient().then(r=>{e=r}).then(r=>{if(this._worker)return this._worker.withSyncedResources(n)}).then(r=>e)}}class v extends R{constructor(n){super(n,[".",":","<",'"',"=","/"])}}function L(i){const n=new f(i),e=(...o)=>n.getLanguageServiceWorker(...o);let r=i.languageId;t.registerCompletionItemProvider(r,new v(e)),t.registerHoverProvider(r,new d(e)),t.registerDocumentHighlightProvider(r,new l(e)),t.registerLinkProvider(r,new c(e)),t.registerFoldingRangeProvider(r,new u(e)),t.registerDocumentSymbolProvider(r,new h(e)),t.registerSelectionRangeProvider(r,new m(e)),t.registerRenameProvider(r,new p(e)),r==="html"&&(t.registerDocumentFormattingEditProvider(r,new w(e)),t.registerDocumentRangeFormattingEditProvider(r,new _(e)))}function W(i){const n=[],e=[],r=new f(i);n.push(r);const o=(...s)=>r.getLanguageServiceWorker(...s);function P(){const{languageId:s,modeConfiguration:a}=i;k(e),a.completionItems&&e.push(t.registerCompletionItemProvider(s,new v(o))),a.hovers&&e.push(t.registerHoverProvider(s,new d(o))),a.documentHighlights&&e.push(t.registerDocumentHighlightProvider(s,new l(o))),a.links&&e.push(t.registerLinkProvider(s,new c(o))),a.documentSymbols&&e.push(t.registerDocumentSymbolProvider(s,new h(o))),a.rename&&e.push(t.registerRenameProvider(s,new p(o))),a.foldingRanges&&e.push(t.registerFoldingRangeProvider(s,new u(o))),a.selectionRanges&&e.push(t.registerSelectionRangeProvider(s,new m(o))),a.documentFormattingEdits&&e.push(t.registerDocumentFormattingEditProvider(s,new w(o))),a.documentRangeFormattingEdits&&e.push(t.registerDocumentRangeFormattingEditProvider(s,new _(o)))}return P(),n.push(g(e)),g(n)}function g(i){return{dispose:()=>k(i)}}function k(i){for(;i.length;)i.pop().dispose()}export{R as CompletionAdapter,H as DefinitionAdapter,b as DiagnosticsAdapter,U as DocumentColorAdapter,w as DocumentFormattingEditProvider,l as DocumentHighlightAdapter,c as DocumentLinkAdapter,_ as DocumentRangeFormattingEditProvider,h as DocumentSymbolAdapter,u as FoldingRangeAdapter,d as HoverAdapter,y as ReferenceAdapter,p as RenameAdapter,m as SelectionRangeAdapter,f as WorkerManager,T as fromPosition,x as fromRange,W as setupMode,L as setupMode1,M as toRange,j as toTextEdit}; diff --git a/dist/assets/index-BVucCY0H.js b/dist/assets/index-BVucCY0H.js deleted file mode 100644 index e444c97..0000000 --- a/dist/assets/index-BVucCY0H.js +++ /dev/null @@ -1,391 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SqlEditor-BZP69oik.js","./SqlEditor-ClHlk_C4.css"])))=>i.map(i=>d[i]); -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&n(l)}).observe(document,{childList:!0,subtree:!0});function E(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(r){if(r.ep)return;r.ep=!0;const s=E(r);fetch(r.href,s)}})();var yS=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function QR(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ZR={exports:{}},Vs={},qR={exports:{}},Ne={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Ur=Symbol.for("react.element"),GS=Symbol.for("react.portal"),gS=Symbol.for("react.fragment"),HS=Symbol.for("react.strict_mode"),vS=Symbol.for("react.profiler"),BS=Symbol.for("react.provider"),FS=Symbol.for("react.context"),YS=Symbol.for("react.forward_ref"),wS=Symbol.for("react.suspense"),VS=Symbol.for("react.memo"),bS=Symbol.for("react.lazy"),ta=Symbol.iterator;function WS(e){return e===null||typeof e!="object"?null:(e=ta&&e[ta]||e["@@iterator"],typeof e=="function"?e:null)}var ei={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ti=Object.assign,Ei={};function Gn(e,t,E){this.props=e,this.context=t,this.refs=Ei,this.updater=E||ei}Gn.prototype.isReactComponent={};Gn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Gn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ni(){}ni.prototype=Gn.prototype;function Eo(e,t,E){this.props=e,this.context=t,this.refs=Ei,this.updater=E||ei}var no=Eo.prototype=new ni;no.constructor=Eo;ti(no,Gn.prototype);no.isPureReactComponent=!0;var Ea=Array.isArray,ri=Object.prototype.hasOwnProperty,ro={current:null},si={key:!0,ref:!0,__self:!0,__source:!0};function Ti(e,t,E){var n,r={},s=null,l=null;if(t!=null)for(n in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(s=""+t.key),t)ri.call(t,n)&&!si.hasOwnProperty(n)&&(r[n]=t[n]);var o=arguments.length-2;if(o===1)r.children=E;else if(1>>1,Re=X[Ee];if(0>>1;Eer(Me,te))Ver(be,Me)?(X[Ee]=be,X[Ve]=te,Ee=Ve):(X[Ee]=Me,X[Ye]=te,Ee=Ye);else if(Ver(be,te))X[Ee]=be,X[Ve]=te,Ee=Ve;else break e}}return ee}function r(X,ee){var te=X.sortIndex-ee.sortIndex;return te!==0?te:X.id-ee.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,o=l.now();e.unstable_now=function(){return l.now()-o}}var a=[],R=[],A=1,N=null,i=3,O=!1,C=!1,u=!1,D=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function c(X){for(var ee=E(R);ee!==null;){if(ee.callback===null)n(R);else if(ee.startTime<=X)n(R),ee.sortIndex=ee.expirationTime,t(a,ee);else break;ee=E(R)}}function L(X){if(u=!1,c(X),!C)if(E(a)!==null)C=!0,me(B);else{var ee=E(R);ee!==null&&le(L,ee.startTime-X)}}function B(X,ee){C=!1,u&&(u=!1,I(y),y=-1),O=!0;var te=i;try{for(c(ee),N=E(a);N!==null&&(!(N.expirationTime>ee)||X&&!oe());){var Ee=N.callback;if(typeof Ee=="function"){N.callback=null,i=N.priorityLevel;var Re=Ee(N.expirationTime<=ee);ee=e.unstable_now(),typeof Re=="function"?N.callback=Re:N===E(a)&&n(a),c(ee)}else n(a);N=E(a)}if(N!==null)var Fe=!0;else{var Ye=E(R);Ye!==null&&le(L,Ye.startTime-ee),Fe=!1}return Fe}finally{N=null,i=te,O=!1}}var p=!1,P=null,y=-1,Y=5,K=-1;function oe(){return!(e.unstable_now()-KX||125Ee?(X.sortIndex=te,t(R,X),E(a)===null&&X===E(R)&&(u?(I(y),y=-1):u=!0,le(L,te-Ee))):(X.sortIndex=Re,t(a,X),C||O||(C=!0,me(B))),X},e.unstable_shouldYield=oe,e.unstable_wrapCallback=function(X){var ee=i;return function(){var te=i;i=ee;try{return X.apply(this,arguments)}finally{i=te}}}})(ii);Ri.exports=ii;var tN=Ri.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var EN=f,pt=tN;function V(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,E=1;E"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ol=Object.prototype.hasOwnProperty,nN=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,ra={},sa={};function rN(e){return ol.call(sa,e)?!0:ol.call(ra,e)?!1:nN.test(e)?sa[e]=!0:(ra[e]=!0,!1)}function sN(e,t,E,n){if(E!==null&&E.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:E!==null?!E.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function TN(e,t,E,n){if(t===null||typeof t>"u"||sN(e,t,E,n))return!0;if(n)return!1;if(E!==null)switch(E.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function At(e,t,E,n,r,s,l){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=r,this.mustUseProperty=E,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=l}var tt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){tt[e]=new At(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];tt[t]=new At(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){tt[e]=new At(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){tt[e]=new At(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){tt[e]=new At(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){tt[e]=new At(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){tt[e]=new At(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){tt[e]=new At(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){tt[e]=new At(e,5,!1,e.toLowerCase(),null,!1,!1)});var To=/[\-:]([a-z])/g;function lo(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(To,lo);tt[t]=new At(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(To,lo);tt[t]=new At(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(To,lo);tt[t]=new At(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){tt[e]=new At(e,1,!1,e.toLowerCase(),null,!1,!1)});tt.xlinkHref=new At("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){tt[e]=new At(e,1,!1,e.toLowerCase(),null,!0,!0)});function oo(e,t,E,n){var r=tt.hasOwnProperty(t)?tt[t]:null;(r!==null?r.type!==0:n||!(2o||r[l]!==s[o]){var a=` -`+r[l].replace(" at new "," at ");return e.displayName&&a.includes("")&&(a=a.replace("",e.displayName)),a}while(1<=l&&0<=o);break}}}finally{iT=!1,Error.prepareStackTrace=E}return(e=e?e.displayName||e.name:"")?Qn(e):""}function lN(e){switch(e.tag){case 5:return Qn(e.type);case 16:return Qn("Lazy");case 13:return Qn("Suspense");case 19:return Qn("SuspenseList");case 0:case 2:case 15:return e=AT(e.type,!1),e;case 11:return e=AT(e.type.render,!1),e;case 1:return e=AT(e.type,!0),e;default:return""}}function Al(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Tn:return"Fragment";case sn:return"Portal";case al:return"Profiler";case ao:return"StrictMode";case Rl:return"Suspense";case il:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ni:return(e.displayName||"Context")+".Consumer";case Si:return(e._context.displayName||"Context")+".Provider";case Ro:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case io:return t=e.displayName||null,t!==null?t:Al(e.type)||"Memo";case uE:t=e._payload,e=e._init;try{return Al(e(t))}catch{}}return null}function oN(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Al(t);case 8:return t===ao?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function GE(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Oi(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function aN(e){var t=Oi(e)?"checked":"value",E=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof E<"u"&&typeof E.get=="function"&&typeof E.set=="function"){var r=E.get,s=E.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(l){n=""+l,s.call(this,l)}}),Object.defineProperty(e,t,{enumerable:E.enumerable}),{getValue:function(){return n},setValue:function(l){n=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Br(e){e._valueTracker||(e._valueTracker=aN(e))}function ui(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var E=t.getValue(),n="";return e&&(n=Oi(e)?e.checked?"true":"false":e.value),e=n,e!==E?(t.setValue(e),!0):!1}function Ss(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Sl(e,t){var E=t.checked;return Ge({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:E??e._wrapperState.initialChecked})}function la(e,t){var E=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;E=GE(t.value!=null?t.value:E),e._wrapperState={initialChecked:n,initialValue:E,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ci(e,t){t=t.checked,t!=null&&oo(e,"checked",t,!1)}function Nl(e,t){ci(e,t);var E=GE(t.value),n=t.type;if(E!=null)n==="number"?(E===0&&e.value===""||e.value!=E)&&(e.value=""+E):e.value!==""+E&&(e.value=""+E);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Il(e,t.type,E):t.hasOwnProperty("defaultValue")&&Il(e,t.type,GE(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function oa(e,t,E){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,E||t===e.value||(e.value=t),e.defaultValue=t}E=e.name,E!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,E!==""&&(e.name=E)}function Il(e,t,E){(t!=="number"||Ss(e.ownerDocument)!==e)&&(E==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+E&&(e.defaultValue=""+E))}var Zn=Array.isArray;function cn(e,t,E,n){if(e=e.options,t){t={};for(var r=0;r"+t.valueOf().toString()+"",t=Fr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ar(e,t){if(t){var E=e.firstChild;if(E&&E===e.lastChild&&E.nodeType===3){E.nodeValue=t;return}}e.textContent=t}var tr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},RN=["Webkit","ms","Moz","O"];Object.keys(tr).forEach(function(e){RN.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),tr[t]=tr[e]})});function di(e,t,E){return t==null||typeof t=="boolean"||t===""?"":E||typeof t!="number"||t===0||tr.hasOwnProperty(e)&&tr[e]?(""+t).trim():t+"px"}function Di(e,t){e=e.style;for(var E in t)if(t.hasOwnProperty(E)){var n=E.indexOf("--")===0,r=di(E,t[E],n);E==="float"&&(E="cssFloat"),n?e.setProperty(E,r):e[E]=r}}var iN=Ge({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function cl(e,t){if(t){if(iN[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(V(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(V(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(V(61))}if(t.style!=null&&typeof t.style!="object")throw Error(V(62))}}function Cl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ll=null;function Ao(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var _l=null,Cn=null,Ln=null;function ia(e){if(e=yr(e)){if(typeof _l!="function")throw Error(V(280));var t=e.stateNode;t&&(t=$s(t),_l(e.stateNode,e.type,t))}}function Pi(e){Cn?Ln?Ln.push(e):Ln=[e]:Cn=e}function pi(){if(Cn){var e=Cn,t=Ln;if(Ln=Cn=null,ia(e),t)for(e=0;e>>=0,e===0?32:31-(dN(e)/DN|0)|0}var Yr=64,wr=4194304;function qn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function us(e,t){var E=e.pendingLanes;if(E===0)return 0;var n=0,r=e.suspendedLanes,s=e.pingedLanes,l=E&268435455;if(l!==0){var o=l&~r;o!==0?n=qn(o):(s&=l,s!==0&&(n=qn(s)))}else l=E&~r,l!==0?n=qn(l):s!==0&&(n=qn(s));if(n===0)return 0;if(t!==0&&t!==n&&!(t&r)&&(r=n&-n,s=t&-t,r>=s||r===16&&(s&4194240)!==0))return t;if(n&4&&(n|=E&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0E;E++)t.push(e);return t}function hr(e,t,E){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-wt(t),e[t]=E}function mN(e,t){var E=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=nr),La=" ",_a=!1;function Ki(e,t){switch(e){case"keyup":return tI.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $i(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ln=!1;function nI(e,t){switch(e){case"compositionend":return $i(t);case"keypress":return t.which!==32?null:(_a=!0,La);case"textInput":return e=t.data,e===La&&_a?null:e;default:return null}}function rI(e,t){if(ln)return e==="compositionend"||!Lo&&Ki(e,t)?(e=Wi(),ts=uo=dE=null,ln=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:E,offset:t-e};e=n}e:{for(;E;){if(E.nextSibling){E=E.nextSibling;break e}E=E.parentNode}E=void 0}E=pa(E)}}function zi(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?zi(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Qi(){for(var e=window,t=Ss();t instanceof e.HTMLIFrameElement;){try{var E=typeof t.contentWindow.location.href=="string"}catch{E=!1}if(E)e=t.contentWindow;else break;t=Ss(e.document)}return t}function _o(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function SI(e){var t=Qi(),E=e.focusedElem,n=e.selectionRange;if(t!==E&&E&&E.ownerDocument&&zi(E.ownerDocument.documentElement,E)){if(n!==null&&_o(E)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in E)E.selectionStart=t,E.selectionEnd=Math.min(e,E.value.length);else if(e=(t=E.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var r=E.textContent.length,s=Math.min(n.start,r);n=n.end===void 0?s:Math.min(n.end,r),!e.extend&&s>n&&(r=n,n=s,s=r),r=fa(E,s);var l=fa(E,n);r&&l&&(e.rangeCount!==1||e.anchorNode!==r.node||e.anchorOffset!==r.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(t=t.createRange(),t.setStart(r.node,r.offset),e.removeAllRanges(),s>n?(e.addRange(t),e.extend(l.node,l.offset)):(t.setEnd(l.node,l.offset),e.addRange(t)))}}for(t=[],e=E;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof E.focus=="function"&&E.focus(),E=0;E=document.documentMode,on=null,ml=null,sr=null,Ml=!1;function ma(e,t,E){var n=E.window===E?E.document:E.nodeType===9?E:E.ownerDocument;Ml||on==null||on!==Ss(n)||(n=on,"selectionStart"in n&&_o(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),sr&&cr(sr,n)||(sr=n,n=Ls(ml,"onSelect"),0An||(e.current=gl[An],gl[An]=null,An--)}function Pe(e,t){An++,gl[An]=e.current,e.current=t}var gE={},Tt=vE(gE),ut=vE(!1),$E=gE;function pn(e,t){var E=e.type.contextTypes;if(!E)return gE;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in E)r[s]=t[s];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=r),r}function ct(e){return e=e.childContextTypes,e!=null}function ds(){fe(ut),fe(Tt)}function ga(e,t,E){if(Tt.current!==gE)throw Error(V(168));Pe(Tt,t),Pe(ut,E)}function TA(e,t,E){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return E;n=n.getChildContext();for(var r in n)if(!(r in t))throw Error(V(108,oN(e)||"Unknown",r));return Ge({},E,n)}function Ds(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||gE,$E=Tt.current,Pe(Tt,e),Pe(ut,ut.current),!0}function Ha(e,t,E){var n=e.stateNode;if(!n)throw Error(V(169));E?(e=TA(e,t,$E),n.__reactInternalMemoizedMergedChildContext=e,fe(ut),fe(Tt),Pe(Tt,e)):fe(ut),Pe(ut,E)}var tE=null,js=!1,fT=!1;function lA(e){tE===null?tE=[e]:tE.push(e)}function pI(e){js=!0,lA(e)}function BE(){if(!fT&&tE!==null){fT=!0;var e=0,t=De;try{var E=tE;for(De=1;e>=l,r-=l,EE=1<<32-wt(t)+r|E<y?(Y=P,P=null):Y=P.sibling;var K=i(I,P,c[y],L);if(K===null){P===null&&(P=Y);break}e&&P&&K.alternate===null&&t(I,P),S=s(K,S,y),p===null?B=K:p.sibling=K,p=K,P=Y}if(y===c.length)return E(I,P),Ue&&YE(I,y),B;if(P===null){for(;yy?(Y=P,P=null):Y=P.sibling;var oe=i(I,P,K.value,L);if(oe===null){P===null&&(P=Y);break}e&&P&&oe.alternate===null&&t(I,P),S=s(oe,S,y),p===null?B=oe:p.sibling=oe,p=oe,P=Y}if(K.done)return E(I,P),Ue&&YE(I,y),B;if(P===null){for(;!K.done;y++,K=c.next())K=N(I,K.value,L),K!==null&&(S=s(K,S,y),p===null?B=K:p.sibling=K,p=K);return Ue&&YE(I,y),B}for(P=n(I,P);!K.done;y++,K=c.next())K=O(P,I,y,K.value,L),K!==null&&(e&&K.alternate!==null&&P.delete(K.key===null?y:K.key),S=s(K,S,y),p===null?B=K:p.sibling=K,p=K);return e&&P.forEach(function(_e){return t(I,_e)}),Ue&&YE(I,y),B}function D(I,S,c,L){if(typeof c=="object"&&c!==null&&c.type===Tn&&c.key===null&&(c=c.props.children),typeof c=="object"&&c!==null){switch(c.$$typeof){case vr:e:{for(var B=c.key,p=S;p!==null;){if(p.key===B){if(B=c.type,B===Tn){if(p.tag===7){E(I,p.sibling),S=r(p,c.props.children),S.return=I,I=S;break e}}else if(p.elementType===B||typeof B=="object"&&B!==null&&B.$$typeof===uE&&Fa(B)===p.type){E(I,p.sibling),S=r(p,c.props),S.ref=$n(I,p,c),S.return=I,I=S;break e}E(I,p);break}else t(I,p);p=p.sibling}c.type===Tn?(S=KE(c.props.children,I.mode,L,c.key),S.return=I,I=S):(L=as(c.type,c.key,c.props,null,I.mode,L),L.ref=$n(I,S,c),L.return=I,I=L)}return l(I);case sn:e:{for(p=c.key;S!==null;){if(S.key===p)if(S.tag===4&&S.stateNode.containerInfo===c.containerInfo&&S.stateNode.implementation===c.implementation){E(I,S.sibling),S=r(S,c.children||[]),S.return=I,I=S;break e}else{E(I,S);break}else t(I,S);S=S.sibling}S=gT(c,I.mode,L),S.return=I,I=S}return l(I);case uE:return p=c._init,D(I,S,p(c._payload),L)}if(Zn(c))return C(I,S,c,L);if(Vn(c))return u(I,S,c,L);jr(I,c)}return typeof c=="string"&&c!==""||typeof c=="number"?(c=""+c,S!==null&&S.tag===6?(E(I,S.sibling),S=r(S,c),S.return=I,I=S):(E(I,S),S=GT(c,I.mode,L),S.return=I,I=S),l(I)):E(I,S)}return D}var mn=iA(!0),AA=iA(!1),fs=vE(null),ms=null,In=null,fo=null;function mo(){fo=In=ms=null}function Mo(e){var t=fs.current;fe(fs),e._currentValue=t}function Bl(e,t,E){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===E)break;e=e.return}}function dn(e,t){ms=e,fo=In=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ot=!0),e.firstContext=null)}function gt(e){var t=e._currentValue;if(fo!==e)if(e={context:e,memoizedValue:t,next:null},In===null){if(ms===null)throw Error(V(308));In=e,ms.dependencies={lanes:0,firstContext:e}}else In=In.next=e;return t}var bE=null;function Uo(e){bE===null?bE=[e]:bE.push(e)}function SA(e,t,E,n){var r=t.interleaved;return r===null?(E.next=E,Uo(t)):(E.next=r.next,r.next=E),t.interleaved=E,lE(e,n)}function lE(e,t){e.lanes|=t;var E=e.alternate;for(E!==null&&(E.lanes|=t),E=e,e=e.return;e!==null;)e.childLanes|=t,E=e.alternate,E!==null&&(E.childLanes|=t),E=e,e=e.return;return E.tag===3?E.stateNode:null}var cE=!1;function ho(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function NA(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function rE(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ME(e,t,E){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,ce&2){var r=n.pending;return r===null?t.next=t:(t.next=r.next,r.next=t),n.pending=t,lE(e,E)}return r=n.interleaved,r===null?(t.next=t,Uo(n)):(t.next=r.next,r.next=t),n.interleaved=t,lE(e,E)}function ns(e,t,E){if(t=t.updateQueue,t!==null&&(t=t.shared,(E&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,E|=n,t.lanes=E,No(e,E)}}function Ya(e,t){var E=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,E===n)){var r=null,s=null;if(E=E.firstBaseUpdate,E!==null){do{var l={eventTime:E.eventTime,lane:E.lane,tag:E.tag,payload:E.payload,callback:E.callback,next:null};s===null?r=s=l:s=s.next=l,E=E.next}while(E!==null);s===null?r=s=t:s=s.next=t}else r=s=t;E={baseState:n.baseState,firstBaseUpdate:r,lastBaseUpdate:s,shared:n.shared,effects:n.effects},e.updateQueue=E;return}e=E.lastBaseUpdate,e===null?E.firstBaseUpdate=t:e.next=t,E.lastBaseUpdate=t}function Ms(e,t,E,n){var r=e.updateQueue;cE=!1;var s=r.firstBaseUpdate,l=r.lastBaseUpdate,o=r.shared.pending;if(o!==null){r.shared.pending=null;var a=o,R=a.next;a.next=null,l===null?s=R:l.next=R,l=a;var A=e.alternate;A!==null&&(A=A.updateQueue,o=A.lastBaseUpdate,o!==l&&(o===null?A.firstBaseUpdate=R:o.next=R,A.lastBaseUpdate=a))}if(s!==null){var N=r.baseState;l=0,A=R=a=null,o=s;do{var i=o.lane,O=o.eventTime;if((n&i)===i){A!==null&&(A=A.next={eventTime:O,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var C=e,u=o;switch(i=t,O=E,u.tag){case 1:if(C=u.payload,typeof C=="function"){N=C.call(O,N,i);break e}N=C;break e;case 3:C.flags=C.flags&-65537|128;case 0:if(C=u.payload,i=typeof C=="function"?C.call(O,N,i):C,i==null)break e;N=Ge({},N,i);break e;case 2:cE=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,i=r.effects,i===null?r.effects=[o]:i.push(o))}else O={eventTime:O,lane:i,tag:o.tag,payload:o.payload,callback:o.callback,next:null},A===null?(R=A=O,a=N):A=A.next=O,l|=i;if(o=o.next,o===null){if(o=r.shared.pending,o===null)break;i=o,o=i.next,i.next=null,r.lastBaseUpdate=i,r.shared.pending=null}}while(!0);if(A===null&&(a=N),r.baseState=a,r.firstBaseUpdate=R,r.lastBaseUpdate=A,t=r.shared.interleaved,t!==null){r=t;do l|=r.lane,r=r.next;while(r!==t)}else s===null&&(r.shared.lanes=0);JE|=l,e.lanes=l,e.memoizedState=N}}function wa(e,t,E){if(e=t.effects,t.effects=null,e!==null)for(t=0;tE?E:4,e(!0);var n=MT.transition;MT.transition={};try{e(!1),t()}finally{De=E,MT.transition=n}}function xA(){return Ht().memoizedState}function UI(e,t,E){var n=hE(e);if(E={lane:n,action:E,hasEagerState:!1,eagerState:null,next:null},yA(e))GA(t,E);else if(E=SA(e,t,E,n),E!==null){var r=Rt();Vt(E,e,n,r),gA(E,t,n)}}function hI(e,t,E){var n=hE(e),r={lane:n,action:E,hasEagerState:!1,eagerState:null,next:null};if(yA(e))GA(t,r);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var l=t.lastRenderedState,o=s(l,E);if(r.hasEagerState=!0,r.eagerState=o,Wt(o,l)){var a=t.interleaved;a===null?(r.next=r,Uo(t)):(r.next=a.next,a.next=r),t.interleaved=r;return}}catch{}finally{}E=SA(e,t,r,n),E!==null&&(r=Rt(),Vt(E,e,n,r),gA(E,t,n))}}function yA(e){var t=e.alternate;return e===ye||t!==null&&t===ye}function GA(e,t){Tr=hs=!0;var E=e.pending;E===null?t.next=t:(t.next=E.next,E.next=t),e.pending=t}function gA(e,t,E){if(E&4194240){var n=t.lanes;n&=e.pendingLanes,E|=n,t.lanes=E,No(e,E)}}var xs={readContext:gt,useCallback:nt,useContext:nt,useEffect:nt,useImperativeHandle:nt,useInsertionEffect:nt,useLayoutEffect:nt,useMemo:nt,useReducer:nt,useRef:nt,useState:nt,useDebugValue:nt,useDeferredValue:nt,useTransition:nt,useMutableSource:nt,useSyncExternalStore:nt,useId:nt,unstable_isNewReconciler:!1},xI={readContext:gt,useCallback:function(e,t){return Kt().memoizedState=[e,t===void 0?null:t],e},useContext:gt,useEffect:ba,useImperativeHandle:function(e,t,E){return E=E!=null?E.concat([e]):null,ss(4194308,4,fA.bind(null,t,e),E)},useLayoutEffect:function(e,t){return ss(4194308,4,e,t)},useInsertionEffect:function(e,t){return ss(4,2,e,t)},useMemo:function(e,t){var E=Kt();return t=t===void 0?null:t,e=e(),E.memoizedState=[e,t],e},useReducer:function(e,t,E){var n=Kt();return t=E!==void 0?E(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=UI.bind(null,ye,e),[n.memoizedState,e]},useRef:function(e){var t=Kt();return e={current:e},t.memoizedState=e},useState:Va,useDebugValue:Fo,useDeferredValue:function(e){return Kt().memoizedState=e},useTransition:function(){var e=Va(!1),t=e[0];return e=MI.bind(null,e[1]),Kt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,E){var n=ye,r=Kt();if(Ue){if(E===void 0)throw Error(V(407));E=E()}else{if(E=t(),Je===null)throw Error(V(349));kE&30||cA(n,t,E)}r.memoizedState=E;var s={value:E,getSnapshot:t};return r.queue=s,ba(LA.bind(null,n,s,e),[e]),n.flags|=2048,fr(9,CA.bind(null,n,s,E,t),void 0,null),E},useId:function(){var e=Kt(),t=Je.identifierPrefix;if(Ue){var E=nE,n=EE;E=(n&~(1<<32-wt(n)-1)).toString(32)+E,t=":"+t+"R"+E,E=Pr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=l.createElement(E,{is:n.is}):(e=l.createElement(E),E==="select"&&(l=e,n.multiple?l.multiple=!0:n.size&&(l.size=n.size))):e=l.createElementNS(e,E),e[$t]=t,e[_r]=n,XA(e,t,!1,!1),t.stateNode=e;e:{switch(l=Cl(E,n),E){case"dialog":pe("cancel",e),pe("close",e),r=n;break;case"iframe":case"object":case"embed":pe("load",e),r=n;break;case"video":case"audio":for(r=0;rhn&&(t.flags|=128,n=!0,jn(s,!1),t.lanes=4194304)}else{if(!n)if(e=Us(l),e!==null){if(t.flags|=128,n=!0,E=e.updateQueue,E!==null&&(t.updateQueue=E,t.flags|=4),jn(s,!0),s.tail===null&&s.tailMode==="hidden"&&!l.alternate&&!Ue)return rt(t),null}else 2*Be()-s.renderingStartTime>hn&&E!==1073741824&&(t.flags|=128,n=!0,jn(s,!1),t.lanes=4194304);s.isBackwards?(l.sibling=t.child,t.child=l):(E=s.last,E!==null?E.sibling=l:t.child=l,s.last=l)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=Be(),t.sibling=null,E=xe.current,Pe(xe,n?E&1|2:E&1),t):(rt(t),null);case 22:case 23:return Xo(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?dt&1073741824&&(rt(t),t.subtreeFlags&6&&(t.flags|=8192)):rt(t),null;case 24:return null;case 25:return null}throw Error(V(156,t.tag))}function YI(e,t){switch(Po(t),t.tag){case 1:return ct(t.type)&&ds(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Mn(),fe(ut),fe(Tt),Go(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return yo(t),null;case 13:if(fe(xe),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(V(340));fn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return fe(xe),null;case 4:return Mn(),null;case 10:return Mo(t.type._context),null;case 22:case 23:return Xo(),null;case 24:return null;default:return null}}var Jr=!1,st=!1,wI=typeof WeakSet=="function"?WeakSet:Set,k=null;function On(e,t){var E=e.ref;if(E!==null)if(typeof E=="function")try{E(null)}catch(n){ge(e,t,n)}else E.current=null}function $l(e,t,E){try{E()}catch(n){ge(e,t,n)}}var qa=!1;function VI(e,t){if(Ul=cs,e=Qi(),_o(e)){if("selectionStart"in e)var E={start:e.selectionStart,end:e.selectionEnd};else e:{E=(E=e.ownerDocument)&&E.defaultView||window;var n=E.getSelection&&E.getSelection();if(n&&n.rangeCount!==0){E=n.anchorNode;var r=n.anchorOffset,s=n.focusNode;n=n.focusOffset;try{E.nodeType,s.nodeType}catch{E=null;break e}var l=0,o=-1,a=-1,R=0,A=0,N=e,i=null;t:for(;;){for(var O;N!==E||r!==0&&N.nodeType!==3||(o=l+r),N!==s||n!==0&&N.nodeType!==3||(a=l+n),N.nodeType===3&&(l+=N.nodeValue.length),(O=N.firstChild)!==null;)i=N,N=O;for(;;){if(N===e)break t;if(i===E&&++R===r&&(o=l),i===s&&++A===n&&(a=l),(O=N.nextSibling)!==null)break;N=i,i=N.parentNode}N=O}E=o===-1||a===-1?null:{start:o,end:a}}else E=null}E=E||{start:0,end:0}}else E=null;for(hl={focusedElem:e,selectionRange:E},cs=!1,k=t;k!==null;)if(t=k,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,k=e;else for(;k!==null;){t=k;try{var C=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(C!==null){var u=C.memoizedProps,D=C.memoizedState,I=t.stateNode,S=I.getSnapshotBeforeUpdate(t.elementType===t.type?u:Bt(t.type,u),D);I.__reactInternalSnapshotBeforeUpdate=S}break;case 3:var c=t.stateNode.containerInfo;c.nodeType===1?c.textContent="":c.nodeType===9&&c.documentElement&&c.removeChild(c.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(V(163))}}catch(L){ge(t,t.return,L)}if(e=t.sibling,e!==null){e.return=t.return,k=e;break}k=t.return}return C=qa,qa=!1,C}function lr(e,t,E){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var r=n=n.next;do{if((r.tag&e)===e){var s=r.destroy;r.destroy=void 0,s!==void 0&&$l(t,E,s)}r=r.next}while(r!==n)}}function zs(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var E=t=t.next;do{if((E.tag&e)===e){var n=E.create;E.destroy=n()}E=E.next}while(E!==t)}}function jl(e){var t=e.ref;if(t!==null){var E=e.stateNode;switch(e.tag){case 5:e=E;break;default:e=E}typeof t=="function"?t(e):t.current=e}}function jA(e){var t=e.alternate;t!==null&&(e.alternate=null,jA(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[$t],delete t[_r],delete t[Gl],delete t[DI],delete t[PI])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function kA(e){return e.tag===5||e.tag===3||e.tag===4}function eR(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||kA(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function kl(e,t,E){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?E.nodeType===8?E.parentNode.insertBefore(e,t):E.insertBefore(e,t):(E.nodeType===8?(t=E.parentNode,t.insertBefore(e,E)):(t=E,t.appendChild(e)),E=E._reactRootContainer,E!=null||t.onclick!==null||(t.onclick=_s));else if(n!==4&&(e=e.child,e!==null))for(kl(e,t,E),e=e.sibling;e!==null;)kl(e,t,E),e=e.sibling}function Jl(e,t,E){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?E.insertBefore(e,t):E.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Jl(e,t,E),e=e.sibling;e!==null;)Jl(e,t,E),e=e.sibling}var qe=null,Ft=!1;function OE(e,t,E){for(E=E.child;E!==null;)JA(e,t,E),E=E.sibling}function JA(e,t,E){if(jt&&typeof jt.onCommitFiberUnmount=="function")try{jt.onCommitFiberUnmount(bs,E)}catch{}switch(E.tag){case 5:st||On(E,t);case 6:var n=qe,r=Ft;qe=null,OE(e,t,E),qe=n,Ft=r,qe!==null&&(Ft?(e=qe,E=E.stateNode,e.nodeType===8?e.parentNode.removeChild(E):e.removeChild(E)):qe.removeChild(E.stateNode));break;case 18:qe!==null&&(Ft?(e=qe,E=E.stateNode,e.nodeType===8?pT(e.parentNode,E):e.nodeType===1&&pT(e,E),Or(e)):pT(qe,E.stateNode));break;case 4:n=qe,r=Ft,qe=E.stateNode.containerInfo,Ft=!0,OE(e,t,E),qe=n,Ft=r;break;case 0:case 11:case 14:case 15:if(!st&&(n=E.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){r=n=n.next;do{var s=r,l=s.destroy;s=s.tag,l!==void 0&&(s&2||s&4)&&$l(E,t,l),r=r.next}while(r!==n)}OE(e,t,E);break;case 1:if(!st&&(On(E,t),n=E.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=E.memoizedProps,n.state=E.memoizedState,n.componentWillUnmount()}catch(o){ge(E,t,o)}OE(e,t,E);break;case 21:OE(e,t,E);break;case 22:E.mode&1?(st=(n=st)||E.memoizedState!==null,OE(e,t,E),st=n):OE(e,t,E);break;default:OE(e,t,E)}}function tR(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var E=e.stateNode;E===null&&(E=e.stateNode=new wI),t.forEach(function(n){var r=zI.bind(null,e,n);E.has(n)||(E.add(n),n.then(r,r))})}}function vt(e,t){var E=t.deletions;if(E!==null)for(var n=0;nr&&(r=l),n&=~s}if(n=r,n=Be()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*WI(n/1960))-n,10e?16:e,DE===null)var n=!1;else{if(e=DE,DE=null,gs=0,ce&6)throw Error(V(331));var r=ce;for(ce|=4,k=e.current;k!==null;){var s=k,l=s.child;if(k.flags&16){var o=s.deletions;if(o!==null){for(var a=0;aBe()-bo?XE(e,0):Vo|=E),Ct(e,t)}function nS(e,t){t===0&&(e.mode&1?(t=wr,wr<<=1,!(wr&130023424)&&(wr=4194304)):t=1);var E=Rt();e=lE(e,t),e!==null&&(hr(e,t,E),Ct(e,E))}function JI(e){var t=e.memoizedState,E=0;t!==null&&(E=t.retryLane),nS(e,E)}function zI(e,t){var E=0;switch(e.tag){case 13:var n=e.stateNode,r=e.memoizedState;r!==null&&(E=r.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(V(314))}n!==null&&n.delete(t),nS(e,E)}var rS;rS=function(e,t,E){if(e!==null)if(e.memoizedProps!==t.pendingProps||ut.current)Ot=!0;else{if(!(e.lanes&E)&&!(t.flags&128))return Ot=!1,BI(e,t,E);Ot=!!(e.flags&131072)}else Ot=!1,Ue&&t.flags&1048576&&oA(t,ps,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;Ts(e,t),e=t.pendingProps;var r=pn(t,Tt.current);dn(t,E),r=Ho(null,t,n,e,r,E);var s=vo();return t.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ct(n)?(s=!0,Ds(t)):s=!1,t.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,ho(t),r.updater=Js,t.stateNode=r,r._reactInternals=t,Yl(t,n,e,E),t=bl(null,t,n,!0,s,E)):(t.tag=0,Ue&&s&&Do(t),at(null,t,r,E),t=t.child),t;case 16:n=t.elementType;e:{switch(Ts(e,t),e=t.pendingProps,r=n._init,n=r(n._payload),t.type=n,r=t.tag=ZI(n),e=Bt(n,e),r){case 0:t=Vl(null,t,n,e,E);break e;case 1:t=za(null,t,n,e,E);break e;case 11:t=ka(null,t,n,e,E);break e;case 14:t=Ja(null,t,n,Bt(n.type,e),E);break e}throw Error(V(306,n,""))}return t;case 0:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:Bt(n,r),Vl(e,t,n,r,E);case 1:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:Bt(n,r),za(e,t,n,r,E);case 3:e:{if(VA(t),e===null)throw Error(V(387));n=t.pendingProps,s=t.memoizedState,r=s.element,NA(e,t),Ms(t,n,null,E);var l=t.memoizedState;if(n=l.element,s.isDehydrated)if(s={element:n,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){r=Un(Error(V(423)),t),t=Qa(e,t,n,E,r);break e}else if(n!==r){r=Un(Error(V(424)),t),t=Qa(e,t,n,E,r);break e}else for(Dt=mE(t.stateNode.containerInfo.firstChild),Pt=t,Ue=!0,Yt=null,E=AA(t,null,n,E),t.child=E;E;)E.flags=E.flags&-3|4096,E=E.sibling;else{if(fn(),n===r){t=oE(e,t,E);break e}at(e,t,n,E)}t=t.child}return t;case 5:return IA(t),e===null&&vl(t),n=t.type,r=t.pendingProps,s=e!==null?e.memoizedProps:null,l=r.children,xl(n,r)?l=null:s!==null&&xl(n,s)&&(t.flags|=32),wA(e,t),at(e,t,l,E),t.child;case 6:return e===null&&vl(t),null;case 13:return bA(e,t,E);case 4:return xo(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=mn(t,null,n,E):at(e,t,n,E),t.child;case 11:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:Bt(n,r),ka(e,t,n,r,E);case 7:return at(e,t,t.pendingProps,E),t.child;case 8:return at(e,t,t.pendingProps.children,E),t.child;case 12:return at(e,t,t.pendingProps.children,E),t.child;case 10:e:{if(n=t.type._context,r=t.pendingProps,s=t.memoizedProps,l=r.value,Pe(fs,n._currentValue),n._currentValue=l,s!==null)if(Wt(s.value,l)){if(s.children===r.children&&!ut.current){t=oE(e,t,E);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var o=s.dependencies;if(o!==null){l=s.child;for(var a=o.firstContext;a!==null;){if(a.context===n){if(s.tag===1){a=rE(-1,E&-E),a.tag=2;var R=s.updateQueue;if(R!==null){R=R.shared;var A=R.pending;A===null?a.next=a:(a.next=A.next,A.next=a),R.pending=a}}s.lanes|=E,a=s.alternate,a!==null&&(a.lanes|=E),Bl(s.return,E,t),o.lanes|=E;break}a=a.next}}else if(s.tag===10)l=s.type===t.type?null:s.child;else if(s.tag===18){if(l=s.return,l===null)throw Error(V(341));l.lanes|=E,o=l.alternate,o!==null&&(o.lanes|=E),Bl(l,E,t),l=s.sibling}else l=s.child;if(l!==null)l.return=s;else for(l=s;l!==null;){if(l===t){l=null;break}if(s=l.sibling,s!==null){s.return=l.return,l=s;break}l=l.return}s=l}at(e,t,r.children,E),t=t.child}return t;case 9:return r=t.type,n=t.pendingProps.children,dn(t,E),r=gt(r),n=n(r),t.flags|=1,at(e,t,n,E),t.child;case 14:return n=t.type,r=Bt(n,t.pendingProps),r=Bt(n.type,r),Ja(e,t,n,r,E);case 15:return FA(e,t,t.type,t.pendingProps,E);case 17:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:Bt(n,r),Ts(e,t),t.tag=1,ct(n)?(e=!0,Ds(t)):e=!1,dn(t,E),HA(t,n,r),Yl(t,n,r,E),bl(null,t,n,!0,e,E);case 19:return WA(e,t,E);case 22:return YA(e,t,E)}throw Error(V(156,t.tag))};function sS(e,t){return yi(e,t)}function QI(e,t,E,n){this.tag=e,this.key=E,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function yt(e,t,E,n){return new QI(e,t,E,n)}function $o(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ZI(e){if(typeof e=="function")return $o(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ro)return 11;if(e===io)return 14}return 2}function xE(e,t){var E=e.alternate;return E===null?(E=yt(e.tag,t,e.key,e.mode),E.elementType=e.elementType,E.type=e.type,E.stateNode=e.stateNode,E.alternate=e,e.alternate=E):(E.pendingProps=t,E.type=e.type,E.flags=0,E.subtreeFlags=0,E.deletions=null),E.flags=e.flags&14680064,E.childLanes=e.childLanes,E.lanes=e.lanes,E.child=e.child,E.memoizedProps=e.memoizedProps,E.memoizedState=e.memoizedState,E.updateQueue=e.updateQueue,t=e.dependencies,E.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},E.sibling=e.sibling,E.index=e.index,E.ref=e.ref,E}function as(e,t,E,n,r,s){var l=2;if(n=e,typeof e=="function")$o(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case Tn:return KE(E.children,r,s,t);case ao:l=8,r|=8;break;case al:return e=yt(12,E,t,r|2),e.elementType=al,e.lanes=s,e;case Rl:return e=yt(13,E,t,r),e.elementType=Rl,e.lanes=s,e;case il:return e=yt(19,E,t,r),e.elementType=il,e.lanes=s,e;case Ii:return Zs(E,r,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Si:l=10;break e;case Ni:l=9;break e;case Ro:l=11;break e;case io:l=14;break e;case uE:l=16,n=null;break e}throw Error(V(130,e==null?e:typeof e,""))}return t=yt(l,E,t,r),t.elementType=e,t.type=n,t.lanes=s,t}function KE(e,t,E,n){return e=yt(7,e,n,t),e.lanes=E,e}function Zs(e,t,E,n){return e=yt(22,e,n,t),e.elementType=Ii,e.lanes=E,e.stateNode={isHidden:!1},e}function GT(e,t,E){return e=yt(6,e,null,t),e.lanes=E,e}function gT(e,t,E){return t=yt(4,e.children!==null?e.children:[],e.key,t),t.lanes=E,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function qI(e,t,E,n,r){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=NT(0),this.expirationTimes=NT(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=NT(0),this.identifierPrefix=n,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function jo(e,t,E,n,r,s,l,o,a){return e=new qI(e,t,E,o,a),t===1?(t=1,s===!0&&(t|=8)):t=0,s=yt(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:n,isDehydrated:E,cache:null,transitions:null,pendingSuspenseBoundaries:null},ho(s),e}function eO(e,t,E){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(aS)}catch(e){console.error(e)}}aS(),ai.exports=ft;var sO=ai.exports,aR=sO;ll.createRoot=aR.createRoot,ll.hydrateRoot=aR.hydrateRoot;/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var TO={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lO=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().trim(),ae=(e,t)=>{const E=f.forwardRef(({color:n="currentColor",size:r=24,strokeWidth:s=2,absoluteStrokeWidth:l,className:o="",children:a,...R},A)=>f.createElement("svg",{ref:A,...TO,width:r,height:r,stroke:n,strokeWidth:l?Number(s)*24/Number(r):s,className:["lucide",`lucide-${lO(e)}`,o].join(" "),...R},[...t.map(([N,i])=>f.createElement(N,i)),...Array.isArray(a)?a:[a]]));return E.displayName=`${e}`,E};/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const oO=ae("AlignLeft",[["line",{x1:"21",x2:"3",y1:"6",y2:"6",key:"1fp77t"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}],["line",{x1:"17",x2:"3",y1:"18",y2:"18",key:"1awlsn"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const aO=ae("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const RO=ae("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const iO=ae("CheckSquare",[["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}],["path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11",key:"1jnkn4"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Bs=ae("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const RS=ae("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xn=ae("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const AO=ae("ClipboardPaste",[["path",{d:"M15 2H9a1 1 0 0 0-1 1v2c0 .6.4 1 1 1h6c.6 0 1-.4 1-1V3c0-.6-.4-1-1-1Z",key:"1pp7kr"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2M16 4h2a2 2 0 0 1 2 2v2M11 14h10",key:"2ik1ml"}],["path",{d:"m17 10 4 4-4 4",key:"vp2hj1"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const nT=ae("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vn=ae("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const iS=ae("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const SO=ae("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Fs=ae("FileCode",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"m10 13-2 2 2 2",key:"17smn8"}],["path",{d:"m14 17 2-2-2-2",key:"14mezr"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const AS=ae("FileSpreadsheet",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M14 17h2",key:"10kma7"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const RR=ae("FileText",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"16",x2:"8",y1:"13",y2:"13",key:"14keom"}],["line",{x1:"16",x2:"8",y1:"17",y2:"17",key:"17nazh"}],["line",{x1:"10",x2:"8",y1:"9",y2:"9",key:"1a5vjj"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const NO=ae("FileX",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"9.5",x2:"14.5",y1:"12.5",y2:"17.5",key:"izs6du"}],["line",{x1:"14.5",x2:"9.5",y1:"12.5",y2:"17.5",key:"1lehlj"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ys=ae("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const iR=ae("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const IO=ae("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const OO=ae("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qo=ae("Key",[["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["path",{d:"m15.5 7.5 3 3L22 7l-3-3",key:"1rn1fs"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const uO=ae("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const cO=ae("List",[["line",{x1:"8",x2:"21",y1:"6",y2:"6",key:"7ey8pc"}],["line",{x1:"8",x2:"21",y1:"12",y2:"12",key:"rjfblc"}],["line",{x1:"8",x2:"21",y1:"18",y2:"18",key:"c3b1m8"}],["line",{x1:"3",x2:"3.01",y1:"6",y2:"6",key:"1g7gq3"}],["line",{x1:"3",x2:"3.01",y1:"12",y2:"12",key:"1pjlvk"}],["line",{x1:"3",x2:"3.01",y1:"18",y2:"18",key:"28t2mc"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Mr=ae("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const CO=ae("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const SS=ae("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z",key:"ymcmye"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const LO=ae("PinOff",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["line",{x1:"12",x2:"12",y1:"17",y2:"22",key:"1jrz49"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V17h12",key:"13x2n8"}],["path",{d:"M15 9.34V6h1a2 2 0 0 0 0-4H7.89",key:"reo3ki"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const _O=ae("Pin",[["line",{x1:"12",x2:"12",y1:"17",y2:"22",key:"1jrz49"}],["path",{d:"M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24Z",key:"13yl11"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dO=ae("Play",[["polygon",{points:"5 3 19 12 5 21 5 3",key:"191637"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const AR=ae("PlusCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Bn=ae("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const eo=ae("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const DO=ae("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Zo=ae("Save",[["path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z",key:"1owoqh"}],["polyline",{points:"17 21 17 13 7 13 7 21",key:"1md35c"}],["polyline",{points:"7 3 7 8 15 8",key:"8nz8an"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const NS=ae("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const IS=ae("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const PO=ae("Shield",[["path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10",key:"1irkt0"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const OS=ae("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Fn=ae("Table2",[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const yE=ae("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const pO=ae("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const fO=ae("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** - * @license lucide-react v0.294.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const RE=ae("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Se=()=>typeof window<"u"&&window.electronAPI?window.electronAPI:null,se={minimize:async()=>{const e=Se();e&&await e.minimize()},maximize:async()=>{const e=Se();e&&await e.maximize()},close:async()=>{const e=Se();e&&await e.close()},testConnection:async e=>{const t=Se();if(!t)return{success:!1,message:"Electron API 不可用"};try{return await t.testConnection(e)}catch(E){return{success:!1,message:E.toString()}}},connect:async e=>{const t=Se();if(!t)return{success:!1,message:"Electron API 不可用"};try{return await t.connect(e)}catch(E){return{success:!1,message:E.toString()}}},disconnect:async e=>{const t=Se();if(t)try{await t.disconnect(e)}catch(E){console.error("Disconnect error:",E)}},query:async(e,t)=>{const E=Se();if(!E)return{columns:[],rows:[],error:"Electron API 不可用"};try{const n=await E.query(e,t);return{columns:n.columns,rows:n.rows,error:n.error}}catch(n){return{columns:[],rows:[],error:n.toString()}}},getDatabases:async e=>{const t=Se();if(!t)return[];try{return await t.getDatabases(e)}catch(E){return console.error("getDatabases error:",E),[]}},getTables:async(e,t)=>{const E=Se();if(!E)return[];try{return await E.getTables(e,t)}catch(n){return console.error("getTables error:",n),[]}},getColumns:async(e,t,E)=>{const n=Se();if(!n)return[];try{return await n.getColumns(e,t,E)}catch(r){return console.error("getColumns error:",r),[]}},getTableData:async(e,t,E,n,r)=>{const s=Se();if(!s)return{data:[],total:0};try{const l=await s.getTableData(e,t,E,n||1,r||100),o=l.columns||[];return{data:(l.rows||[]).map(R=>{const A={};return o.forEach((N,i)=>{A[N.name]=R[i]}),A}),total:l.total,columns:l.columns}}catch(l){return console.error("getTableData error:",l),{data:[],total:0}}},updateRow:async(e,t,E,n,r)=>{const s=Se();if(!s)return{success:!1,error:"Electron API 不可用"};try{const l=await s.updateRow(e,t,E,n,r);return{success:l.success,error:l.success?void 0:l.message}}catch(l){return{success:!1,error:l.toString()}}},deleteRow:async(e,t,E,n)=>{const r=Se();if(!r)return{success:!1,error:"Electron API 不可用"};try{const s=await r.deleteRow(e,t,E,n);return{success:s.success,error:s.success?void 0:s.message}}catch(s){return{success:!1,error:s.toString()}}},createDatabase:async(e,t,E="utf8mb4",n="utf8mb4_general_ci")=>{const r=Se();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.createDatabase(e,t,E,n)}catch(s){return{success:!1,message:s.toString()}}},dropDatabase:async(e,t)=>{const E=Se();if(!E)return{success:!1,message:"Electron API 不可用"};try{return await E.dropDatabase(e,t)}catch(n){return{success:!1,message:n.toString()}}},createTable:async(e,t,E,n)=>{const r=Se();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.createTable(e,t,E,n)}catch(s){return{success:!1,message:s.toString()}}},dropTable:async(e,t,E)=>{const n=Se();if(!n)return{success:!1,message:"Electron API 不可用"};try{return await n.dropTable(e,t,E)}catch(r){return{success:!1,message:r.toString()}}},truncateTable:async(e,t,E)=>{const n=Se();if(!n)return{success:!1,message:"Electron API 不可用"};try{return await n.truncateTable(e,t,E)}catch(r){return{success:!1,message:r.toString()}}},renameTable:async(e,t,E,n)=>{const r=Se();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.renameTable(e,t,E,n)}catch(s){return{success:!1,message:s.toString()}}},duplicateTable:async(e,t,E,n,r=!1)=>{const s=Se();if(!s)return{success:!1,message:"Electron API 不可用"};try{return await s.duplicateTable(e,t,E,n,r)}catch(l){return{success:!1,message:l.toString()}}},addColumn:async(e,t,E,n)=>{const r=Se();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.addColumn(e,t,E,n)}catch(s){return{success:!1,message:s.toString()}}},modifyColumn:async(e,t,E,n,r)=>{const s=Se();if(!s)return{success:!1,message:"Electron API 不可用"};try{return await s.modifyColumn(e,t,E,n,r)}catch(l){return{success:!1,message:l.toString()}}},dropColumn:async(e,t,E,n)=>{const r=Se();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.dropColumn(e,t,E,n)}catch(s){return{success:!1,message:s.toString()}}},getTableInfo:async(e,t,E)=>{const n=Se();if(!n)return{columns:[],indexes:[],foreignKeys:[],options:{}};try{return await n.getTableInfo(e,t,E)}catch(r){return console.error("getTableInfo error:",r),{columns:[],indexes:[],foreignKeys:[],options:{}}}},getIndexes:async(e,t,E)=>{const n=Se();if(!n)return[];try{return await n.getIndexes(e,t,E)}catch(r){return console.error("getIndexes error:",r),[]}},getForeignKeys:async(e,t,E)=>{const n=Se();if(!n)return[];try{return await n.getForeignKeys(e,t,E)}catch(r){return console.error("getForeignKeys error:",r),[]}},getColumnNames:async(e,t,E)=>{const n=Se();if(!n)return[];try{return await n.getColumnNames(e,t,E)}catch(r){return console.error("getColumnNames error:",r),[]}},executeMultiSQL:async(e,t)=>{const E=Se();if(!E)return{success:!1,message:"Electron API 不可用"};try{return await E.executeMultiSQL(e,t)}catch(n){return{success:!1,message:n.toString()}}},saveConnections:async e=>{const t=Se();if(t)try{await t.saveConnections(e)}catch(E){console.error("saveConnections error:",E)}},loadConnections:async()=>{const e=Se();if(!e)return[];try{return await e.loadConnections()}catch(t){return console.error("loadConnections error:",t),[]}},exportConnections:async(e,t)=>{const E=Se();if(!E)return{success:!1,error:"Electron API 不可用"};try{const n=await E.saveDialog({filters:[{name:t==="json"?"JSON":"Navicat NCX",extensions:[t==="json"?"json":"ncx"]}]});if(!n)return{cancelled:!0};const r=t==="json"?JSON.stringify(e,null,2):MO(e);return await E.writeFile(n,r),{success:!0,path:n,count:e.length}}catch(n){return{success:!1,error:n.toString()}}},importConnections:async()=>{const e=Se();if(!e)return{success:!1,error:"Electron API 不可用"};try{const t=await e.selectFile(["json","ncx"]);if(!t)return{cancelled:!0};const E=await e.readFile(t);if(!E.success||!E.content)return{success:!1,error:E.error||"读取文件失败"};const n=t.toLowerCase().endsWith(".ncx");let r;return n?r=mO(E.content):r=JSON.parse(E.content),{success:!0,connections:r,count:r.length,source:n?"Navicat":"JSON"}}catch(t){return{success:!1,error:t.toString()}}},openFile:async()=>{const e=Se();if(!e)return null;try{return await e.openFile()}catch(t){return{path:"",content:"",name:"",error:t.toString()}}},saveFile:async(e,t)=>{const E=Se();if(!E)return null;try{return await E.saveFile(e,t)}catch(n){return{path:"",name:"",error:n.toString()}}},selectFile:async e=>{const t=Se();if(!t)return null;try{const E=await t.selectFile(e);return E?{path:E}:null}catch{return null}},backupDatabase:async(e,t)=>{const E=Se();if(!E)return{success:!1,error:"Electron API 不可用"};try{const n=await E.saveDialog({filters:[{name:"SQL 文件",extensions:["sql"]}],defaultPath:`${t}_backup.sql`});if(!n)return{cancelled:!0};const r=await se.getTables(e,t);let s=`-- Database: ${t} --- Backup Time: ${new Date().toISOString()} - -`;for(const l of r){if(l.isView)continue;const o=await se.query(e,`SELECT * FROM \`${l.name}\``);if(o.rows&&o.rows.length>0){for(const a of o.rows){const R=a.map(A=>A===null?"NULL":typeof A=="string"?`'${A.replace(/'/g,"''")}'`:A).join(", ");s+=`INSERT INTO \`${l.name}\` VALUES (${R}); -`}s+=` -`}}return await E.writeFile(n,s),{success:!0,path:n}}catch(n){return{success:!1,error:n.toString()}}},exportTable:async(e,t,E,n)=>{const r=Se();if(!r)return{success:!1,error:"Electron API 不可用"};try{const s=n==="excel"?"xlsx":n,l=await r.saveDialog({filters:[{name:n.toUpperCase(),extensions:[s]}],defaultPath:`${E}.${s}`});if(!l)return{cancelled:!0};const o=await se.query(e,`SELECT * FROM \`${E}\``);let a;if(n==="csv"){const R=o.columns.join(","),A=o.rows.map(N=>N.map(i=>i===null?"":typeof i=="string"?`"${i.replace(/"/g,'""')}"`:i).join(",")).join(` -`);a=`${R} -${A}`}else if(n==="sql")a=o.rows.map(R=>{const A=R.map(N=>N===null?"NULL":typeof N=="string"?`'${N.replace(/'/g,"''")}'`:N).join(", ");return`INSERT INTO \`${E}\` VALUES (${A});`}).join(` -`);else{const R=o.columns.join(","),A=o.rows.map(N=>N.map(i=>i===null?"":typeof i=="string"?`"${i.replace(/"/g,'""')}"`:i).join(",")).join(` -`);a=`${R} -${A}`}return await r.writeFile(l,a),{success:!0,path:l}}catch(s){return{success:!1,error:s.toString()}}}};function mO(e){const t=[],E=/]*\/>/g;let n;for(;(n=E.exec(e))!==null;){const r={},s=/(\w+)="([^"]*)"/g;let l;for(;(l=s.exec(n[0]))!==null;)r[l[1]]=l[2];r.ConnectionName&&t.push({id:crypto.randomUUID(),name:r.ConnectionName,type:(r.ConnType||"mysql").toLowerCase(),host:r.Host||"localhost",port:parseInt(r.Port)||3306,username:r.UserName||"",password:r.Password||"",database:r.Database||""})}return t}function MO(e){let t=` - -`;for(const E of e)t+=` -`;return t+="",t}const UO=f.memo(function(){const[t,E]=f.useState(!1),n=async()=>{await se.maximize(),E(!t)};return T.jsxs("div",{className:"h-9 bg-metro-dark flex items-center justify-between drag select-none border-b border-metro-border/30 relative",children:[T.jsx("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-white/5 to-transparent"}),T.jsxs("div",{className:"flex items-center h-full px-4 no-drag gap-2.5",children:[T.jsxs("div",{className:"relative",children:[T.jsx(vn,{size:16,className:"text-accent-blue"}),T.jsx("div",{className:"absolute inset-0 bg-accent-blue/20 blur-md -z-10"})]}),T.jsx("span",{className:"text-sm font-semibold tracking-wide text-white/90",children:"EasySQL"}),T.jsx("span",{className:"text-[10px] text-white/30 font-medium ml-1",children:"v2.0"})]}),T.jsxs("div",{className:"flex h-full no-drag",children:[T.jsx("button",{onClick:()=>se.minimize(),className:"w-12 h-full flex items-center justify-center hover:bg-white/10 transition-colors duration-150 group",title:"最小化",children:T.jsx(CO,{size:16,className:"text-white/60 group-hover:text-white/90"})}),T.jsx("button",{onClick:n,className:"w-12 h-full flex items-center justify-center hover:bg-white/10 transition-colors duration-150 group",title:t?"还原":"最大化",children:t?T.jsx(nT,{size:11,className:"text-white/60 group-hover:text-white/90"}):T.jsx(OS,{size:11,className:"text-white/60 group-hover:text-white/90"})}),T.jsx("button",{onClick:()=>se.close(),className:"w-12 h-full flex items-center justify-center hover:bg-accent-red transition-colors duration-150 group",title:"关闭",children:T.jsx(RE,{size:16,className:"text-white/60 group-hover:text-white"})})]})]})}),_E={mysql:{name:"MySQL",icon:"🐬",color:"#00758f",port:3306,supported:!0},postgres:{name:"PostgreSQL",icon:"🐘",color:"#336791",port:5432,supported:!0},sqlite:{name:"SQLite",icon:"💾",color:"#003b57",port:0,supported:!0},mongodb:{name:"MongoDB",icon:"🍃",color:"#47a248",port:27017,supported:!0},redis:{name:"Redis",icon:"⚡",color:"#dc382d",port:6379,supported:!0},sqlserver:{name:"SQL Server",icon:"📊",color:"#cc2927",port:1433,supported:!0},oracle:{name:"Oracle",icon:"🔶",color:"#f80000",port:1521,supported:!1},mariadb:{name:"MariaDB",icon:"🦭",color:"#c0765a",port:3306,supported:!0},snowflake:{name:"Snowflake",icon:"❄️",color:"#29b5e8",port:443,supported:!1}},hO=f.memo(function({tables:t,db:E,connectionId:n,expandedDbs:r,setExpandedDbs:s,onOpenTable:l,onContextMenu:o}){const a=t.filter(u=>!u.isView),R=t.filter(u=>u.isView),A=`${E}_tables`,N=`${E}_views`,i=r.has(A),O=r.has(N),C=u=>{s(D=>{const I=new Set(D);return I.has(u)?I.delete(u):I.add(u),I})};return f.useEffect(()=>{a.length>0&&s(u=>new Set(u).add(A))},[a.length,A,s]),t.length===0?T.jsx("div",{className:"px-3 py-2 text-xs text-text-disabled",children:"无表"}):T.jsxs("div",{className:"py-0.5",children:[a.length>0&&T.jsxs("div",{children:[T.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 text-xs text-text-secondary hover:bg-metro-hover hover:text-white cursor-pointer transition-colors rounded-sm",onClick:()=>C(A),children:[T.jsx("span",{className:"text-text-tertiary",children:i?T.jsx(Bs,{size:12}):T.jsx(xn,{size:12})}),T.jsx("span",{className:"text-accent-orange",children:i?T.jsx(Ys,{size:12}):T.jsx(iR,{size:12})}),T.jsx("span",{className:"flex-1",children:"表"}),T.jsx("span",{className:"text-text-disabled",children:a.length})]}),i&&T.jsx("div",{className:"ml-3 border-l border-metro-border/30",children:a.map(u=>T.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 text-xs text-text-secondary hover:bg-metro-hover hover:text-white cursor-pointer transition-colors rounded-sm mx-0.5",title:u.name,onClick:()=>l(n,E,u.name),onContextMenu:D=>o(D,u.name),children:[T.jsx(Fn,{size:12,className:"text-accent-orange flex-shrink-0"}),T.jsx("span",{className:"truncate",children:u.name})]},u.name))})]}),R.length>0&&T.jsxs("div",{children:[T.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1 text-xs text-text-secondary hover:bg-metro-hover hover:text-white cursor-pointer transition-colors rounded-sm",onClick:()=>C(N),children:[T.jsx("span",{className:"text-text-tertiary",children:O?T.jsx(Bs,{size:12}):T.jsx(xn,{size:12})}),T.jsx("span",{className:"text-accent-purple",children:O?T.jsx(Ys,{size:12}):T.jsx(iR,{size:12})}),T.jsx("span",{className:"flex-1",children:"视图"}),T.jsx("span",{className:"text-text-disabled",children:R.length})]}),O&&T.jsx("div",{className:"ml-3 border-l border-metro-border/30",children:R.map(u=>T.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 text-xs text-text-secondary hover:bg-metro-hover hover:text-white cursor-pointer transition-colors rounded-sm mx-0.5",title:`${u.name} (视图)`,onClick:()=>l(n,E,u.name),onContextMenu:D=>o(D,u.name),children:[T.jsx(SO,{size:12,className:"text-accent-purple flex-shrink-0"}),T.jsx("span",{className:"truncate flex-1",children:u.name})]},u.name))})]})]})});function HT(e,t,E=200,n=180){const r=window.innerHeight,s=window.innerWidth;let l=e,o=t;return t+E>r-10&&(o=Math.max(10,t-E)),e+n>s-10&&(l=Math.max(10,e-n)),{x:l,y:o}}function xO({connections:e,activeConnection:t,connectedIds:E,databasesMap:n,tablesMap:r,selectedDatabase:s,loadingDbSet:l,onNewConnection:o,onSelectConnection:a,onConnect:R,onDisconnect:A,onEditConnection:N,onDeleteConnection:i,onDeleteConnections:O,onSelectDatabase:C,onOpenTable:u,onBackupDatabase:D,onExportTable:I,onExportConnections:S,onImportConnections:c,onCreateDatabase:L,onDropDatabase:B,onCreateTable:p,onDropTable:P,onTruncateTable:y,onRenameTable:Y,onDuplicateTable:K,onRefreshTables:oe,onDesignTable:_e}){const[F,He]=f.useState(null),[Ie,me]=f.useState(null),[le,X]=f.useState(null),[ee,te]=f.useState(new Set),[Ee,Re]=f.useState(!1),[Fe,Ye]=f.useState(new Set),[Me,Ve]=f.useState(""),[be,ze]=f.useState(!1),Et=f.useRef(null),iE=f.useRef(null),[Mt,Oe]=f.useState(!1);f.useEffect(()=>{s&&te(j=>new Set(j).add(s))},[s]);const Ce=f.useCallback(j=>{(j.ctrlKey||j.metaKey)&&j.key==="f"&&Mt&&(j.preventDefault(),j.stopPropagation(),ze(!0),setTimeout(()=>Et.current?.focus(),50)),j.key==="Escape"&&be&&(ze(!1),Ve(""))},[Mt,be]);f.useEffect(()=>{const j=iE.current;if(j)return j.addEventListener("keydown",Ce),()=>j.removeEventListener("keydown",Ce)},[Ce]);const Lt=j=>{const Qe=r.get(j)||[];return Me?Qe.filter(ve=>ve.name.toLowerCase().includes(Me.toLowerCase())):Qe},Jt=j=>Me?(r.get(j)||[]).some(ve=>ve.name.toLowerCase().includes(Me.toLowerCase())):!1,zt=j=>j.filter(Qe=>{if(!Me)return!0;const ve=Me.toLowerCase();return!!(Qe.toLowerCase().includes(ve)||Jt(Qe))});return f.useEffect(()=>{Me&&n.forEach(j=>{j.forEach(Qe=>{Jt(Qe)&&te(ve=>new Set(ve).add(Qe))})})},[Me,n,r]),T.jsxs(T.Fragment,{children:[T.jsxs("div",{ref:iE,className:"w-72 bg-metro-bg flex flex-col border-r border-metro-border/50 h-full select-none",tabIndex:0,onFocus:()=>Oe(!0),onBlur:j=>{j.currentTarget.contains(j.relatedTarget)||Oe(!1)},onMouseEnter:()=>Oe(!0),onMouseLeave:()=>Oe(!1),children:[T.jsxs("div",{className:"p-3 flex-shrink-0 space-y-2",children:[T.jsxs("button",{onClick:o,className:`w-full h-10 bg-accent-blue hover:bg-accent-blue-hover - flex items-center justify-center gap-2 text-sm font-medium - transition-all duration-150 shadow-metro`,children:[T.jsx(Bn,{size:18,strokeWidth:2.5}),T.jsx("span",{children:"新建连接"})]}),T.jsxs("div",{className:"flex gap-2",children:[T.jsxs("button",{onClick:c,className:`flex-1 h-8 bg-metro-surface hover:bg-metro-hover - flex items-center justify-center gap-1.5 text-xs text-text-secondary - transition-all duration-150`,title:"导入连接 (支持 JSON 和 Navicat NCX 格式)",children:[T.jsx(fO,{size:14}),T.jsx("span",{children:"导入"})]}),T.jsxs("div",{className:"relative group flex-1",children:[T.jsxs("button",{className:`w-full h-8 bg-metro-surface hover:bg-metro-hover - flex items-center justify-center gap-1.5 text-xs text-text-secondary - transition-all duration-150`,title:"导出连接",children:[T.jsx(iS,{size:14}),T.jsx("span",{children:"导出"})]}),T.jsxs("div",{className:`absolute left-0 right-0 top-full mt-1 bg-metro-card border border-metro-border - shadow-metro-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible - transition-all z-50`,children:[T.jsxs("button",{onClick:()=>S?.("json"),className:"w-full px-3 py-2 text-left text-xs hover:bg-metro-hover flex items-center gap-2",children:[T.jsx(Fs,{size:12,className:"text-accent-blue"}),"导出为 JSON"]}),T.jsxs("button",{onClick:()=>S?.("ncx"),className:"w-full px-3 py-2 text-left text-xs hover:bg-metro-hover flex items-center gap-2",children:[T.jsx(RR,{size:12,className:"text-accent-orange"}),"导出为 Navicat (.ncx)"]})]})]})]})]}),T.jsx("div",{className:"px-3 pb-2 flex-shrink-0",children:T.jsxs("div",{className:"relative",children:[T.jsx(NS,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-text-disabled"}),T.jsx("input",{ref:Et,type:"text",value:Me,onChange:j=>Ve(j.target.value),placeholder:s?"搜索表名... (Ctrl+F)":"搜索数据库... (Ctrl+F)",className:`w-full h-8 pl-9 pr-8 bg-metro-surface text-sm text-white placeholder-text-disabled - border border-transparent focus:border-accent-blue transition-all rounded-sm`}),Me&&T.jsx("button",{onClick:()=>Ve(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-disabled hover:text-white transition-colors",children:T.jsx(RE,{size:14})})]})}),T.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0",children:[T.jsxs("div",{className:"px-3 py-1.5 text-xs font-medium text-text-tertiary uppercase tracking-wider flex items-center justify-between",children:[T.jsxs("span",{children:["连接 (",e.length,")"]}),e.length>0&&T.jsx("button",{onClick:()=>{Re(!Ee),Ee&&Ye(new Set)},className:`p-1 rounded-sm transition-colors ${Ee?"bg-accent-blue text-white":"hover:bg-metro-hover"}`,title:Ee?"退出多选":"批量管理",children:Ee?T.jsx(iO,{size:12}):T.jsx(OS,{size:12})})]}),Ee&&Fe.size>0&&T.jsxs("div",{className:"px-3 pb-2 flex items-center gap-2",children:[T.jsxs("span",{className:"text-xs text-text-tertiary",children:["已选 ",Fe.size," 项"]}),T.jsxs("button",{onClick:()=>{confirm(`确定删除选中的 ${Fe.size} 个连接吗?`)&&(O?.([...Fe]),Ye(new Set),Re(!1))},className:"px-2 py-1 text-xs bg-accent-red/20 text-accent-red hover:bg-accent-red/30 rounded-sm transition-colors flex items-center gap-1",children:[T.jsx(yE,{size:12}),"删除"]}),T.jsx("button",{onClick:()=>Ye(new Set),className:"px-2 py-1 text-xs bg-metro-surface hover:bg-metro-hover rounded-sm transition-colors",children:"取消"})]}),e.length===0?T.jsx("div",{className:"px-3 py-6 text-center text-text-disabled text-sm",children:"暂无连接"}):T.jsx("div",{className:"px-2 space-y-0.5",children:e.map(j=>{const Qe=_E[j.type],ve=E.has(j.id),AE=t===j.id,St=Fe.has(j.id),lt=ee.has(j.id),Qt=n.get(j.id)||[],SE=lt&&ve&&Qt.length>0;return T.jsxs("div",{children:[T.jsxs("div",{className:`group flex items-center gap-2 px-2 py-2 cursor-pointer transition-all duration-150 rounded-sm - ${St?"bg-metro-hover ring-1 ring-text-tertiary":""} - ${AE&&!St?"bg-metro-hover":"hover:bg-metro-hover"} text-text-secondary hover:text-white`,onClick:()=>{Ee?Ye(ue=>{const m=new Set(ue);return m.has(j.id)?m.delete(j.id):m.add(j.id),m}):(a(j.id),ve&&te(ue=>{const m=new Set(ue);return m.has(j.id)?m.delete(j.id):m.add(j.id),m}))},onDoubleClick:async()=>{!Ee&&!ve&&(R(j),te(ue=>new Set(ue).add(j.id)))},onContextMenu:ue=>{ue.preventDefault();const m=HT(ue.clientX,ue.clientY,180);He({x:m.x,y:m.y,conn:j})},children:[T.jsx("span",{className:"w-4 flex-shrink-0 flex items-center justify-center",children:Ee?T.jsx("span",{className:`w-4 h-4 rounded-sm border flex items-center justify-center - ${St?"bg-accent-blue border-accent-blue":"border-text-tertiary"}`,children:St&&T.jsx("span",{className:"text-white text-xs",children:"✓"})}):T.jsx("span",{className:`${ve?"text-text-tertiary":"opacity-0"}`,children:lt?T.jsx(Bs,{size:14}):T.jsx(xn,{size:14})})}),T.jsx("span",{className:"text-lg flex-shrink-0",children:Qe?.icon}),T.jsx("span",{className:"flex-1 text-sm truncate font-medium",children:j.name}),T.jsx("span",{className:`w-2.5 h-2.5 rounded-full flex-shrink-0 transition-all ${ve?"bg-[#00ff00] shadow-[0_0_8px_#00ff00,0_0_12px_#00ff00]":"bg-text-disabled/40"}`,title:ve?"已连接":"未连接"})]}),SE&<&&T.jsx("div",{className:"ml-4 border-l border-metro-border/50 mt-0.5",children:zt(Qt).map(ue=>{const m=s===ue,w=ee.has(ue),J=Lt(ue),Te=l.has(ue);return T.jsxs("div",{children:[T.jsxs("div",{className:`flex items-center gap-1.5 px-2 py-1.5 cursor-pointer text-sm transition-all duration-150 rounded-sm ml-1 - ${m?"bg-metro-hover text-white font-medium":"text-text-secondary hover:bg-metro-hover hover:text-white"}`,onClick:()=>{!ee.has(ue)&&C(ue,j.id),te(ne=>{const ie=new Set(ne);return ie.has(ue)?ie.delete(ue):ie.add(ue),ie})},onContextMenu:b=>{b.preventDefault();const ne=HT(b.clientX,b.clientY,200);me({x:ne.x,y:ne.y,db:ue,connectionId:j.id})},children:[T.jsx("span",{className:`flex-shrink-0 ${m?"text-white/70":"text-text-tertiary"}`,children:w?T.jsx(Bs,{size:14}):T.jsx(xn,{size:14})}),T.jsx(vn,{size:14,className:`flex-shrink-0 ${m?"text-white":"text-accent-blue"}`}),T.jsx("span",{className:"flex-1 truncate",children:ue})]}),w&&T.jsx("div",{className:"ml-4 mt-0.5",children:Te?T.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 text-xs text-text-tertiary",children:[T.jsx(Mr,{size:12,className:"animate-spin"}),"加载中..."]}):T.jsx(hO,{tables:J,db:ue,connectionId:j.id,expandedDbs:ee,setExpandedDbs:te,onOpenTable:u,onContextMenu:(b,ne)=>{b.preventDefault();const ie=HT(b.clientX,b.clientY,280);X({x:ie.x,y:ie.y,db:ue,table:ne,connectionId:j.id})}})})]},ue)})})]},j.id)})})]})]}),F&&T.jsxs(T.Fragment,{children:[T.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>He(null)}),T.jsxs("div",{className:"fixed z-50 bg-metro-card border border-metro-border py-1.5 min-w-[160px] shadow-metro-lg animate-fade-in",style:{left:F.x,top:F.y},children:[E.has(F.conn.id)?T.jsxs(T.Fragment,{children:[T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{A(F.conn.id),He(null)},children:[T.jsx("span",{className:"w-4 h-4 rounded-full border-2 border-accent-red"}),"断开连接"]}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{L?.(F.conn.id),He(null)},children:[T.jsx(AR,{size:14,className:"text-accent-green"}),"新建数据库"]}),T.jsx("div",{className:"my-1 border-t border-metro-border"})]}):T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{R(F.conn),He(null)},children:[T.jsx("span",{className:"w-4 h-4 rounded-full border-2 border-accent-green"}),"连接"]}),T.jsx("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover transition-colors",onClick:()=>{N(F.conn),He(null)},children:"编辑"}),T.jsx("div",{className:"my-1 border-t border-metro-border"}),T.jsx("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover text-accent-red transition-colors",onClick:()=>{i(F.conn.id),He(null)},children:"删除"})]})]}),Ie&&T.jsxs(T.Fragment,{children:[T.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>me(null)}),T.jsxs("div",{className:"fixed z-50 bg-metro-card border border-metro-border py-1.5 min-w-[180px] shadow-metro-lg animate-fade-in",style:{left:Ie.x,top:Ie.y},children:[T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{p?.(Ie.connectionId,Ie.db),me(null)},children:[T.jsx(AR,{size:14,className:"text-accent-green"}),"新建表"]}),T.jsx("div",{className:"my-1 border-t border-metro-border"}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{oe?.(Ie.connectionId,Ie.db),me(null)},children:[T.jsx(eo,{size:14,className:"text-text-secondary"}),"刷新"]}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{D?.(Ie.db),me(null)},children:[T.jsx(OO,{size:14,className:"text-accent-blue"}),"备份数据库"]}),T.jsx("div",{className:"my-1 border-t border-metro-border"}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 text-accent-red transition-colors",onClick:()=>{confirm(`确定要删除数据库 "${Ie.db}" 吗?此操作不可恢复!`)&&B?.(Ie.connectionId,Ie.db),me(null)},children:[T.jsx(yE,{size:14}),"删除数据库"]})]})]}),le&&T.jsxs(T.Fragment,{children:[T.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>X(null)}),T.jsxs("div",{className:"fixed z-50 bg-metro-card border border-metro-border py-1.5 min-w-[180px] shadow-metro-lg animate-fade-in",style:{left:le.x,top:le.y},children:[T.jsx("div",{className:"px-4 py-1.5 text-xs text-text-disabled border-b border-metro-border mb-1",children:le.table}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{u(le.connectionId,le.db,le.table),X(null)},children:[T.jsx(Fn,{size:14,className:"text-accent-orange"}),"打开表"]}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{_e?.(le.connectionId,le.db,le.table),X(null)},children:[T.jsx(IS,{size:14,className:"text-accent-teal"}),"设计表"]}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{Y?.(le.connectionId,le.db,le.table),X(null)},children:[T.jsx(SS,{size:14,className:"text-accent-blue"}),"重命名"]}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{K?.(le.connectionId,le.db,le.table),X(null)},children:[T.jsx(nT,{size:14,className:"text-accent-purple"}),"复制表"]}),T.jsx("div",{className:"my-1 border-t border-metro-border"}),T.jsx("div",{className:"px-4 py-1.5 text-xs text-text-disabled",children:"导出"}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{I?.(le.db,le.table,"excel"),X(null)},children:[T.jsx(AS,{size:14,className:"text-accent-green"}),"导出 Excel"]}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{I?.(le.db,le.table,"sql"),X(null)},children:[T.jsx(Fs,{size:14,className:"text-accent-orange"}),"导出 SQL"]}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 transition-colors",onClick:()=>{I?.(le.db,le.table,"csv"),X(null)},children:[T.jsx(RR,{size:14,className:"text-accent-blue"}),"导出 CSV"]}),T.jsx("div",{className:"my-1 border-t border-metro-border"}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 text-accent-orange transition-colors",onClick:()=>{confirm(`确定要清空表 "${le.table}" 的所有数据吗?此操作不可恢复!`)&&y?.(le.connectionId,le.db,le.table),X(null)},children:[T.jsx(eo,{size:14}),"清空表"]}),T.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-metro-hover flex items-center gap-3 text-accent-red transition-colors",onClick:()=>{confirm(`确定要删除表 "${le.table}" 吗?此操作不可恢复!`)&&P?.(le.connectionId,le.db,le.table),X(null)},children:[T.jsx(yE,{size:14}),"删除表"]})]})]})]})}const yO="modulepreload",GO=function(e,t){return new URL(e,t).href},SR={},gO=function(t,E,n){let r=Promise.resolve();if(E&&E.length>0){const l=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),a=o?.nonce||o?.getAttribute("nonce");r=Promise.allSettled(E.map(R=>{if(R=GO(R,n),R in SR)return;SR[R]=!0;const A=R.endsWith(".css"),N=A?'[rel="stylesheet"]':"";if(!!n)for(let C=l.length-1;C>=0;C--){const u=l[C];if(u.href===R&&(!A||u.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${R}"]${N}`))return;const O=document.createElement("link");if(O.rel=A?"stylesheet":yO,A||(O.as="script"),O.crossOrigin="",O.href=R,a&&O.setAttribute("nonce",a),document.head.appendChild(O),A)return new Promise((C,u)=>{O.addEventListener("load",C),O.addEventListener("error",()=>u(new Error(`Unable to preload CSS for ${R}`)))})}))}function s(l){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=l,window.dispatchEvent(o),!o.defaultPrevented)throw l}return r.then(l=>{for(const o of l||[])o.status==="rejected"&&s(o.reason);return t().catch(s)})},U=e=>e.flatMap(HO),HO=e=>Rs(BO(e)).map(vO),vO=e=>e.replace(/ +/g," ").trim(),BO=e=>({type:"mandatory_block",items:qo(e,0)[0]}),qo=(e,t,E)=>{const n=[];for(;e[t];){const[r,s]=FO(e,t);if(n.push(r),t=s,e[t]==="|")t++;else if(e[t]==="}"||e[t]==="]"){if(E!==e[t])throw new Error(`Unbalanced parenthesis in: ${e}`);return t++,[n,t]}else if(t===e.length){if(E)throw new Error(`Unbalanced parenthesis in: ${e}`);return[n,t]}else throw new Error(`Unexpected "${e[t]}"`)}return[n,t]},FO=(e,t)=>{const E=[];for(;;){const[n,r]=YO(e,t);if(n)E.push(n),t=r;else break}return E.length===1?[E[0],t]:[{type:"concatenation",items:E},t]},YO=(e,t)=>{if(e[t]==="{")return wO(e,t+1);if(e[t]==="[")return VO(e,t+1);{let E="";for(;e[t]&&/[A-Za-z0-9_ ]/.test(e[t]);)E+=e[t],t++;return[E,t]}},wO=(e,t)=>{const[E,n]=qo(e,t,"}");return[{type:"mandatory_block",items:E},n]},VO=(e,t)=>{const[E,n]=qo(e,t,"]");return[{type:"optional_block",items:E},n]},Rs=e=>{if(typeof e=="string")return[e];if(e.type==="concatenation")return e.items.map(Rs).reduce(bO,[""]);if(e.type==="mandatory_block")return e.items.flatMap(Rs);if(e.type==="optional_block")return["",...e.items.flatMap(Rs)];throw new Error(`Unknown node type: ${e}`)},bO=(e,t)=>{const E=[];for(const n of e)for(const r of t)E.push(n+r);return E};var v;(function(e){e.QUOTED_IDENTIFIER="QUOTED_IDENTIFIER",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.VARIABLE="VARIABLE",e.RESERVED_DATA_TYPE="RESERVED_DATA_TYPE",e.RESERVED_PARAMETERIZED_DATA_TYPE="RESERVED_PARAMETERIZED_DATA_TYPE",e.RESERVED_KEYWORD="RESERVED_KEYWORD",e.RESERVED_FUNCTION_NAME="RESERVED_FUNCTION_NAME",e.RESERVED_KEYWORD_PHRASE="RESERVED_KEYWORD_PHRASE",e.RESERVED_DATA_TYPE_PHRASE="RESERVED_DATA_TYPE_PHRASE",e.RESERVED_SET_OPERATION="RESERVED_SET_OPERATION",e.RESERVED_CLAUSE="RESERVED_CLAUSE",e.RESERVED_SELECT="RESERVED_SELECT",e.RESERVED_JOIN="RESERVED_JOIN",e.ARRAY_IDENTIFIER="ARRAY_IDENTIFIER",e.ARRAY_KEYWORD="ARRAY_KEYWORD",e.CASE="CASE",e.END="END",e.WHEN="WHEN",e.ELSE="ELSE",e.THEN="THEN",e.LIMIT="LIMIT",e.BETWEEN="BETWEEN",e.AND="AND",e.OR="OR",e.XOR="XOR",e.OPERATOR="OPERATOR",e.COMMA="COMMA",e.ASTERISK="ASTERISK",e.PROPERTY_ACCESS_OPERATOR="PROPERTY_ACCESS_OPERATOR",e.OPEN_PAREN="OPEN_PAREN",e.CLOSE_PAREN="CLOSE_PAREN",e.LINE_COMMENT="LINE_COMMENT",e.BLOCK_COMMENT="BLOCK_COMMENT",e.DISABLE_COMMENT="DISABLE_COMMENT",e.NUMBER="NUMBER",e.NAMED_PARAMETER="NAMED_PARAMETER",e.QUOTED_PARAMETER="QUOTED_PARAMETER",e.NUMBERED_PARAMETER="NUMBERED_PARAMETER",e.POSITIONAL_PARAMETER="POSITIONAL_PARAMETER",e.CUSTOM_PARAMETER="CUSTOM_PARAMETER",e.DELIMITER="DELIMITER",e.EOF="EOF"})(v=v||(v={}));const uS=e=>({type:v.EOF,raw:"«EOF»",text:"«EOF»",start:e}),yn=uS(1/0),nn=e=>t=>t.type===e.type&&t.text===e.text,QE={ARRAY:nn({text:"ARRAY",type:v.RESERVED_DATA_TYPE}),BY:nn({text:"BY",type:v.RESERVED_KEYWORD}),SET:nn({text:"SET",type:v.RESERVED_CLAUSE}),STRUCT:nn({text:"STRUCT",type:v.RESERVED_DATA_TYPE}),WINDOW:nn({text:"WINDOW",type:v.RESERVED_CLAUSE}),VALUES:nn({text:"VALUES",type:v.RESERVED_CLAUSE})},cS=e=>e===v.RESERVED_DATA_TYPE||e===v.RESERVED_KEYWORD||e===v.RESERVED_FUNCTION_NAME||e===v.RESERVED_KEYWORD_PHRASE||e===v.RESERVED_DATA_TYPE_PHRASE||e===v.RESERVED_CLAUSE||e===v.RESERVED_SELECT||e===v.RESERVED_SET_OPERATION||e===v.RESERVED_JOIN||e===v.ARRAY_KEYWORD||e===v.CASE||e===v.END||e===v.WHEN||e===v.ELSE||e===v.THEN||e===v.LIMIT||e===v.BETWEEN||e===v.AND||e===v.OR||e===v.XOR,WO=e=>e===v.AND||e===v.OR||e===v.XOR,XO=["KEYS.NEW_KEYSET","KEYS.ADD_KEY_FROM_RAW_BYTES","AEAD.DECRYPT_BYTES","AEAD.DECRYPT_STRING","AEAD.ENCRYPT","KEYS.KEYSET_CHAIN","KEYS.KEYSET_FROM_JSON","KEYS.KEYSET_TO_JSON","KEYS.ROTATE_KEYSET","KEYS.KEYSET_LENGTH","ANY_VALUE","ARRAY_AGG","AVG","CORR","COUNT","COUNTIF","COVAR_POP","COVAR_SAMP","MAX","MIN","ST_CLUSTERDBSCAN","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","VAR_POP","VAR_SAMP","ANY_VALUE","ARRAY_AGG","ARRAY_CONCAT_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","COUNTIF","LOGICAL_AND","LOGICAL_OR","MAX","MIN","STRING_AGG","SUM","APPROX_COUNT_DISTINCT","APPROX_QUANTILES","APPROX_TOP_COUNT","APPROX_TOP_SUM","ARRAY_CONCAT","ARRAY_LENGTH","ARRAY_TO_STRING","GENERATE_ARRAY","GENERATE_DATE_ARRAY","GENERATE_TIMESTAMP_ARRAY","ARRAY_REVERSE","OFFSET","SAFE_OFFSET","ORDINAL","SAFE_ORDINAL","BIT_COUNT","PARSE_BIGNUMERIC","PARSE_NUMERIC","SAFE_CAST","CURRENT_DATE","EXTRACT","DATE","DATE_ADD","DATE_SUB","DATE_DIFF","DATE_TRUNC","DATE_FROM_UNIX_DATE","FORMAT_DATE","LAST_DAY","PARSE_DATE","UNIX_DATE","CURRENT_DATETIME","DATETIME","EXTRACT","DATETIME_ADD","DATETIME_SUB","DATETIME_DIFF","DATETIME_TRUNC","FORMAT_DATETIME","LAST_DAY","PARSE_DATETIME","ERROR","EXTERNAL_QUERY","S2_CELLIDFROMPOINT","S2_COVERINGCELLIDS","ST_ANGLE","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_AZIMUTH","ST_BOUNDARY","ST_BOUNDINGBOX","ST_BUFFER","ST_BUFFERWITHTOLERANCE","ST_CENTROID","ST_CENTROID_AGG","ST_CLOSESTPOINT","ST_CLUSTERDBSCAN","ST_CONTAINS","ST_CONVEXHULL","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DUMP","ST_DWITHIN","ST_ENDPOINT","ST_EQUALS","ST_EXTENT","ST_EXTERIORRING","ST_GEOGFROM","ST_GEOGFROMGEOJSON","ST_GEOGFROMTEXT","ST_GEOGFROMWKB","ST_GEOGPOINT","ST_GEOGPOINTFROMGEOHASH","ST_GEOHASH","ST_GEOMETRYTYPE","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_INTERSECTSBOX","ST_ISCOLLECTION","ST_ISEMPTY","ST_LENGTH","ST_MAKELINE","ST_MAKEPOLYGON","ST_MAKEPOLYGONORIENTED","ST_MAXDISTANCE","ST_NPOINTS","ST_NUMGEOMETRIES","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SIMPLIFY","ST_SNAPTOGRID","ST_STARTPOINT","ST_TOUCHES","ST_UNION","ST_UNION_AGG","ST_WITHIN","ST_X","ST_Y","FARM_FINGERPRINT","MD5","SHA1","SHA256","SHA512","HLL_COUNT.INIT","HLL_COUNT.MERGE","HLL_COUNT.MERGE_PARTIAL","HLL_COUNT.EXTRACT","MAKE_INTERVAL","EXTRACT","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","JSON_EXTRACT","JSON_QUERY","JSON_EXTRACT_SCALAR","JSON_VALUE","JSON_EXTRACT_ARRAY","JSON_QUERY_ARRAY","JSON_EXTRACT_STRING_ARRAY","JSON_VALUE_ARRAY","TO_JSON_STRING","ABS","SIGN","IS_INF","IS_NAN","IEEE_DIVIDE","RAND","SQRT","POW","POWER","EXP","LN","LOG","LOG10","GREATEST","LEAST","DIV","SAFE_DIVIDE","SAFE_MULTIPLY","SAFE_NEGATE","SAFE_ADD","SAFE_SUBTRACT","MOD","ROUND","TRUNC","CEIL","CEILING","FLOOR","COS","COSH","ACOS","ACOSH","SIN","SINH","ASIN","ASINH","TAN","TANH","ATAN","ATANH","ATAN2","RANGE_BUCKET","FIRST_VALUE","LAST_VALUE","NTH_VALUE","LEAD","LAG","PERCENTILE_CONT","PERCENTILE_DISC","NET.IP_FROM_STRING","NET.SAFE_IP_FROM_STRING","NET.IP_TO_STRING","NET.IP_NET_MASK","NET.IP_TRUNC","NET.IPV4_FROM_INT64","NET.IPV4_TO_INT64","NET.HOST","NET.PUBLIC_SUFFIX","NET.REG_DOMAIN","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","NTILE","ROW_NUMBER","SESSION_USER","CORR","COVAR_POP","COVAR_SAMP","STDDEV_POP","STDDEV_SAMP","STDDEV","VAR_POP","VAR_SAMP","VARIANCE","ASCII","BYTE_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CODE_POINTS_TO_BYTES","CODE_POINTS_TO_STRING","CONCAT","CONTAINS_SUBSTR","ENDS_WITH","FORMAT","FROM_BASE32","FROM_BASE64","FROM_HEX","INITCAP","INSTR","LEFT","LENGTH","LPAD","LOWER","LTRIM","NORMALIZE","NORMALIZE_AND_CASEFOLD","OCTET_LENGTH","REGEXP_CONTAINS","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","REPEAT","REVERSE","RIGHT","RPAD","RTRIM","SAFE_CONVERT_BYTES_TO_STRING","SOUNDEX","SPLIT","STARTS_WITH","STRPOS","SUBSTR","SUBSTRING","TO_BASE32","TO_BASE64","TO_CODE_POINTS","TO_HEX","TRANSLATE","TRIM","UNICODE","UPPER","CURRENT_TIME","TIME","EXTRACT","TIME_ADD","TIME_SUB","TIME_DIFF","TIME_TRUNC","FORMAT_TIME","PARSE_TIME","CURRENT_TIMESTAMP","EXTRACT","STRING","TIMESTAMP","TIMESTAMP_ADD","TIMESTAMP_SUB","TIMESTAMP_DIFF","TIMESTAMP_TRUNC","FORMAT_TIMESTAMP","PARSE_TIMESTAMP","TIMESTAMP_SECONDS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UNIX_SECONDS","UNIX_MILLIS","UNIX_MICROS","GENERATE_UUID","COALESCE","IF","IFNULL","NULLIF","AVG","BIT_AND","BIT_OR","BIT_XOR","CORR","COUNT","COVAR_POP","COVAR_SAMP","EXACT_COUNT_DISTINCT","FIRST","GROUP_CONCAT","GROUP_CONCAT_UNQUOTED","LAST","MAX","MIN","NEST","NTH","QUANTILES","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","TOP","UNIQUE","VARIANCE","VAR_POP","VAR_SAMP","BIT_COUNT","BOOLEAN","BYTES","CAST","FLOAT","HEX_STRING","INTEGER","STRING","COALESCE","GREATEST","IFNULL","IS_INF","IS_NAN","IS_EXPLICITLY_DEFINED","LEAST","NVL","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE","DATE_ADD","DATEDIFF","DAY","DAYOFWEEK","DAYOFYEAR","FORMAT_UTC_USEC","HOUR","MINUTE","MONTH","MSEC_TO_TIMESTAMP","NOW","PARSE_UTC_USEC","QUARTER","SEC_TO_TIMESTAMP","SECOND","STRFTIME_UTC_USEC","TIME","TIMESTAMP","TIMESTAMP_TO_MSEC","TIMESTAMP_TO_SEC","TIMESTAMP_TO_USEC","USEC_TO_TIMESTAMP","UTC_USEC_TO_DAY","UTC_USEC_TO_HOUR","UTC_USEC_TO_MONTH","UTC_USEC_TO_WEEK","UTC_USEC_TO_YEAR","WEEK","YEAR","FORMAT_IP","PARSE_IP","FORMAT_PACKED_IP","PARSE_PACKED_IP","JSON_EXTRACT","JSON_EXTRACT_SCALAR","ABS","ACOS","ACOSH","ASIN","ASINH","ATAN","ATANH","ATAN2","CEIL","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG2","LOG10","PI","POW","RADIANS","RAND","ROUND","SIN","SINH","SQRT","TAN","TANH","REGEXP_MATCH","REGEXP_EXTRACT","REGEXP_REPLACE","CONCAT","INSTR","LEFT","LENGTH","LOWER","LPAD","LTRIM","REPLACE","RIGHT","RPAD","RTRIM","SPLIT","SUBSTR","UPPER","TABLE_DATE_RANGE","TABLE_DATE_RANGE_STRICT","TABLE_QUERY","HOST","DOMAIN","TLD","AVG","COUNT","MAX","MIN","STDDEV","SUM","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","CURRENT_USER","EVERY","FROM_BASE64","HASH","FARM_FINGERPRINT","IF","POSITION","SHA1","SOME","TO_BASE64","BQ.JOBS.CANCEL","BQ.REFRESH_MATERIALIZED_VIEW","OPTIONS","PIVOT","UNPIVOT"],KO=["ALL","AND","ANY","AS","ASC","ASSERT_ROWS_MODIFIED","AT","BETWEEN","BY","CASE","CAST","COLLATE","CONTAINS","CREATE","CROSS","CUBE","CURRENT","DEFAULT","DEFINE","DESC","DISTINCT","ELSE","END","ENUM","ESCAPE","EXCEPT","EXCLUDE","EXISTS","EXTRACT","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","GROUP","GROUPING","GROUPS","HASH","HAVING","IF","IGNORE","IN","INNER","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LIMIT","LOOKUP","MERGE","NATURAL","NEW","NO","NOT","NULL","NULLS","OF","ON","OR","ORDER","OUTER","OVER","PARTITION","PRECEDING","PROTO","RANGE","RECURSIVE","RESPECT","RIGHT","ROLLUP","ROWS","SELECT","SET","SOME","TABLE","TABLESAMPLE","THEN","TO","TREAT","TRUE","UNBOUNDED","UNION","UNNEST","USING","WHEN","WHERE","WINDOW","WITH","WITHIN","SAFE","LIKE","COPY","CLONE","IN","OUT","INOUT","RETURNS","LANGUAGE","CASCADE","RESTRICT","DETERMINISTIC"],$O=["ARRAY","BOOL","BYTES","DATE","DATETIME","GEOGRAPHY","INTERVAL","INT64","INT","SMALLINT","INTEGER","BIGINT","TINYINT","BYTEINT","NUMERIC","DECIMAL","BIGNUMERIC","BIGDECIMAL","FLOAT64","STRING","STRUCT","TIME","TIMEZONE"],jO=U(["SELECT [ALL | DISTINCT] [AS STRUCT | AS VALUE]"]),kO=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","OMIT RECORD IF","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [THEN]","UPDATE SET","CLUSTER BY","FOR SYSTEM_TIME AS OF","WITH CONNECTION","WITH PARTITION COLUMNS","REMOTE WITH CONNECTION"]),NR=U(["CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"]),vT=U(["CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE [FROM]","DROP [SNAPSHOT | EXTERNAL] TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME TO","ALTER COLUMN [IF EXISTS]","SET DEFAULT COLLATE","SET OPTIONS","DROP NOT NULL","SET DATA TYPE","ALTER SCHEMA [IF EXISTS]","ALTER [MATERIALIZED] VIEW [IF EXISTS]","ALTER BI_CAPACITY","TRUNCATE TABLE","CREATE SCHEMA [IF NOT EXISTS]","DEFAULT COLLATE","CREATE [OR REPLACE] [TEMP|TEMPORARY|TABLE] FUNCTION [IF NOT EXISTS]","CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] ROW ACCESS POLICY [IF NOT EXISTS]","GRANT TO","FILTER USING","CREATE CAPACITY","AS JSON","CREATE RESERVATION","CREATE ASSIGNMENT","CREATE SEARCH INDEX [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","DROP [MATERIALIZED] VIEW [IF EXISTS]","DROP [TABLE] FUNCTION [IF EXISTS]","DROP PROCEDURE [IF EXISTS]","DROP ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","DROP CAPACITY [IF EXISTS]","DROP RESERVATION [IF EXISTS]","DROP ASSIGNMENT [IF EXISTS]","DROP SEARCH INDEX [IF EXISTS]","DROP [IF EXISTS]","GRANT","REVOKE","DECLARE","EXECUTE IMMEDIATE","LOOP","END LOOP","REPEAT","END REPEAT","WHILE","END WHILE","BREAK","LEAVE","CONTINUE","ITERATE","FOR","END FOR","BEGIN","BEGIN TRANSACTION","COMMIT TRANSACTION","ROLLBACK TRANSACTION","RAISE","RETURN","CALL","ASSERT","EXPORT DATA"]),JO=U(["UNION {ALL | DISTINCT}","EXCEPT DISTINCT","INTERSECT DISTINCT"]),zO=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),QO=U(["TABLESAMPLE SYSTEM","ANY TYPE","ALL COLUMNS","NOT DETERMINISTIC","{ROWS | RANGE} BETWEEN","IS [NOT] DISTINCT FROM"]),ZO=U([]),qO={name:"bigquery",tokenizerOptions:{reservedSelect:jO,reservedClauses:[...kO,...vT,...NR],reservedSetOperations:JO,reservedJoins:zO,reservedKeywordPhrases:QO,reservedDataTypePhrases:ZO,reservedKeywords:KO,reservedDataTypes:$O,reservedFunctionNames:XO,extraParens:["[]"],stringTypes:[{quote:'""".."""',prefixes:["R","B","RB","BR"]},{quote:"'''..'''",prefixes:["R","B","RB","BR"]},'""-bs',"''-bs",{quote:'""-raw',prefixes:["R","B","RB","BR"],requirePrefix:!0},{quote:"''-raw",prefixes:["R","B","RB","BR"],requirePrefix:!0}],identTypes:["``"],identChars:{dashes:!0},paramTypes:{positional:!0,named:["@"],quoted:["@"]},variableTypes:[{regex:String.raw`@@\w+`}],lineCommentTypes:["--","#"],operators:["&","|","^","~",">>","<<","||","=>"],postProcess:eu},formatOptions:{onelineClauses:[...NR,...vT],tabularOnelineClauses:vT}};function eu(e){return tu(Eu(e))}function tu(e){let t=yn;return e.map(E=>E.text==="OFFSET"&&t.text==="["?(t=E,Object.assign(Object.assign({},E),{type:v.RESERVED_FUNCTION_NAME})):(t=E,E))}function Eu(e){var t;const E=[];for(let n=0;nt=>t.type===v.IDENTIFIER||t.type===v.COMMA?t[e]+" ":t[e];function nu(e,t){let E=0;for(let n=t;n"?E--:r.text===">>"&&(E-=2),E===0)return n}return e.length-1}const ru=["ARRAY_AGG","AVG","CORRELATION","COUNT","COUNT_BIG","COVARIANCE","COVARIANCE_SAMP","CUME_DIST","GROUPING","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_ICPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_SAMP","SUM","VARIANCE","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","AGE","ARRAY_DELETE","ARRAY_FIRST","ARRAY_LAST","ARRAY_NEXT","ARRAY_PRIOR","ASCII","ASCII_STR","ASIN","ATAN","ATAN2","ATANH","BITAND","BITANDNOT","BITOR","BITXOR","BITNOT","BPCHAR","BSON_TO_JSON","BTRIM","CARDINALITY","CEILING","CEIL","CHARACTER_LENGTH","CHR","COALESCE","COLLATION_KEY","COLLATION_KEY_BIT","COMPARE_DECFLOAT","CONCAT","COS","COSH","COT","CURSOR_ROWCOUNT","DATAPARTITIONNUM","DATE_PART","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFWEEK_ISO","DAYOFYEAR","DAYS","DAYS_BETWEEN","DAYS_TO_END_OF_MONTH","DBPARTITIONNUM","DECFLOAT","DECFLOAT_FORMAT","DECODE","DECRYPT_BIN","DECRYPT_CHAR","DEGREES","DEREF","DIFFERENCE","DIGITS","DOUBLE_PRECISION","EMPTY_BLOB","EMPTY_CLOB","EMPTY_DBCLOB","EMPTY_NCLOB","ENCRYPT","EVENT_MON_STATE","EXP","EXTRACT","FIRST_DAY","FLOOR","FROM_UTC_TIMESTAMP","GENERATE_UNIQUE","GETHINT","GREATEST","HASH","HASH4","HASH8","HASHEDVALUE","HEX","HEXTORAW","HOUR","HOURS_BETWEEN","IDENTITY_VAL_LOCAL","IFNULL","INITCAP","INSERT","INSTR","INSTR2","INSTR4","INSTRB","INTNAND","INTNOR","INTNXOR","INTNNOT","ISNULL","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_VALUE","JULIAN_DAY","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LENGTH2","LENGTH4","LENGTHB","LN","LOCATE","LOCATE_IN_STRING","LOG10","LONG_VARCHAR","LONG_VARGRAPHIC","LOWER","LPAD","LTRIM","MAX","MAX_CARDINALITY","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MINUTES_BETWEEN","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MULTIPLY_ALT","NEXT_DAY","NEXT_MONTH","NEXT_QUARTER","NEXT_WEEK","NEXT_YEAR","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARAMETER","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","QUOTE_IDENT","QUOTE_LITERAL","RADIANS","RAISE_ERROR","RAND","RANDOM","RAWTOHEX","REC2XML","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH_COUNT","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RID_BIT","RIGHT","ROUND","ROUND_TIMESTAMP","RPAD","RTRIM","SECLABEL","SECLABEL_BY_NAME","SECLABEL_TO_CHAR","SECOND","SECONDS_BETWEEN","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTR2","SUBSTR4","SUBSTRB","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","THIS_MONTH","THIS_QUARTER","THIS_WEEK","THIS_YEAR","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF","TIMEZONE","TO_CHAR","TO_CLOB","TO_DATE","TO_HEX","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_UTC_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM","TRIM_ARRAY","TRUNC_TIMESTAMP","TRUNCATE","TRUNC","TYPE_ID","TYPE_NAME","TYPE_SCHEMA","UCASE","UNICODE_STR","UPPER","VALUE","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT","VARCHAR_FORMAT_BIT","VERIFY_GROUP_FOR_USER","VERIFY_ROLE_FOR_USER","VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER","WEEK","WEEK_ISO","WEEKS_BETWEEN","WIDTH_BUCKET","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLQUERY","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XMLXSROBJECTID","XSLTRANSFORM","YEAR","YEARS_BETWEEN","YMD_BETWEEN","BASE_TABLE","JSON_TABLE","UNNEST","XMLTABLE","RANK","DENSE_RANK","NTILE","LAG","LEAD","ROW_NUMBER","FIRST_VALUE","LAST_VALUE","NTH_VALUE","RATIO_TO_REPORT","CAST"],su=["ACTIVATE","ADD","AFTER","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","AS","ASENSITIVE","ASSOCIATE","ASUTIME","AT","ATTRIBUTES","AUDIT","AUTHORIZATION","AUX","AUXILIARY","BEFORE","BEGIN","BETWEEN","BINARY","BUFFERPOOL","BY","CACHE","CALL","CALLED","CAPTURE","CARDINALITY","CASCADED","CASE","CAST","CHECK","CLONE","CLOSE","CLUSTER","COLLECTION","COLLID","COLUMN","COMMENT","COMMIT","CONCAT","CONDITION","CONNECT","CONNECTION","CONSTRAINT","CONTAINS","CONTINUE","COUNT","COUNT_BIG","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_LC_CTYPE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATA","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFINITION","DELETE","DENSERANK","DENSE_RANK","DESCRIBE","DESCRIPTOR","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DSSIZE","DYNAMIC","EACH","EDITPROC","ELSE","ELSEIF","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ERASE","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTENDED","EXTERNAL","EXTRACT","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST1","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GRAPHIC","GROUP","HANDLER","HASH","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IMMEDIATE","IMPORT","IN","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDICATOR","INDICATORS","INF","INFINITY","INHERIT","INNER","INOUT","INSENSITIVE","INSERT","INTEGRITY","INTERSECT","INTO","IS","ISNULL","ISOBID","ISOLATION","ITERATE","JAR","JAVA","JOIN","KEEP","KEY","LABEL","LANGUAGE","LAST3","LATERAL","LC_CTYPE","LEAVE","LEFT","LIKE","LIMIT","LINKTYPE","LOCAL","LOCALDATE","LOCALE","LOCALTIME","LOCALTIMESTAMP","LOCATOR","LOCATORS","LOCK","LOCKMAX","LOCKSIZE","LOOP","MAINTAINED","MATERIALIZED","MAXVALUE","MICROSECOND","MICROSECONDS","MINUTE","MINUTES","MINVALUE","MODE","MODIFIES","MONTH","MONTHS","NAN","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT2","NOTNULL","NULL","NULLS","NUMPARTS","OBID","OF","OFF","OFFSET","OLD","OLD_TABLE","ON","OPEN","OPTIMIZATION","OPTIMIZE","OPTION","OR","ORDER","OUT","OUTER","OVER","OVERRIDING","PACKAGE","PADDED","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSWORD","PATH","PERCENT","PIECESIZE","PLAN","POSITION","PRECISION","PREPARE","PREVVAL","PRIMARY","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PSID","PUBLIC","QUERY","QUERYNO","RANGE","RANK","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESTRICT","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNS","REVOKE","RIGHT","ROLE","ROLLBACK","ROUND_CEILING","ROUND_DOWN","ROUND_FLOOR","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_UP","ROUND_UP","ROUTINE","ROW","ROWNUMBER","ROWS","ROWSET","ROW_NUMBER","RRN","RUN","SAVEPOINT","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURITY","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","STACKED","STANDARD","START","STARTING","STATEMENT","STATIC","STATMENT","STAY","STOGROUP","STORES","STYLE","SUBSTRING","SUMMARY","SYNONYM","SYSFUN","SYSIBM","SYSPROC","SYSTEM","SYSTEM_USER","TABLE","TABLESPACE","THEN","TO","TRANSACTION","TRIGGER","TRIM","TRUNCATE","TYPE","UNDO","UNION","UNIQUE","UNTIL","UPDATE","USAGE","USER","USING","VALIDPROC","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VIEW","VOLATILE","VOLUMES","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHOUT","WLM","WRITE","XMLELEMENT","XMLEXISTS","XMLNAMESPACES","YEAR","YEARS"],Tu=["ARRAY","BIGINT","BINARY","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATE","DATETIME","DBCLOB","DEC","DECIMAL","DOUBLE","DOUBLE PRECISION","FLOAT","FLOAT4","FLOAT8","GRAPHIC","INT","INT2","INT4","INT8","INTEGER","INTERVAL","LONG VARCHAR","LONG VARGRAPHIC","NCHAR","NCHR","NCLOB","NVARCHAR","NUMERIC","SMALLINT","REAL","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC"],lu=U(["SELECT [ALL | DISTINCT]"]),ou=U(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH NEXT","FOR UPDATE [OF]","FOR {READ | FETCH} ONLY","FOR {RR | CS | UR | RS} [USE AND KEEP {SHARE | UPDATE | EXCLUSIVE} LOCKS]","WAIT FOR OUTCOME","SKIP LOCKED DATA","INTO","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT"]),uR=U(["CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]"]),BT=U(["CREATE [OR REPLACE] VIEW","UPDATE","WHERE CURRENT OF","WITH {RR | RS | CS | UR}","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME COLUMN","ALTER [COLUMN]","SET DATA TYPE","SET NOT NULL","DROP {DEFAULT | GENERATED | NOT NULL}","TRUNCATE [TABLE]","ALLOCATE","ALTER AUDIT POLICY","ALTER BUFFERPOOL","ALTER DATABASE PARTITION GROUP","ALTER DATABASE","ALTER EVENT MONITOR","ALTER FUNCTION","ALTER HISTOGRAM TEMPLATE","ALTER INDEX","ALTER MASK","ALTER METHOD","ALTER MODULE","ALTER NICKNAME","ALTER PACKAGE","ALTER PERMISSION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SECURITY LABEL COMPONENT","ALTER SECURITY POLICY","ALTER SEQUENCE","ALTER SERVER","ALTER SERVICE CLASS","ALTER STOGROUP","ALTER TABLESPACE","ALTER THRESHOLD","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER TYPE","ALTER USAGE LIST","ALTER USER MAPPING","ALTER VIEW","ALTER WORK ACTION SET","ALTER WORK CLASS SET","ALTER WORKLOAD","ALTER WRAPPER","ALTER XSROBJECT","ALTER STOGROUP","ALTER TABLESPACE","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER VIEW","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","AUDIT","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON","COMMIT [WORK]","CONNECT","CREATE [OR REPLACE] [PUBLIC] ALIAS","CREATE AUDIT POLICY","CREATE BUFFERPOOL","CREATE DATABASE PARTITION GROUP","CREATE EVENT MONITOR","CREATE [OR REPLACE] FUNCTION","CREATE FUNCTION MAPPING","CREATE HISTOGRAM TEMPLATE","CREATE [UNIQUE] INDEX","CREATE INDEX EXTENSION","CREATE [OR REPLACE] MASK","CREATE [SPECIFIC] METHOD","CREATE [OR REPLACE] MODULE","CREATE [OR REPLACE] NICKNAME","CREATE [OR REPLACE] PERMISSION","CREATE [OR REPLACE] PROCEDURE","CREATE ROLE","CREATE SCHEMA","CREATE SECURITY LABEL [COMPONENT]","CREATE SECURITY POLICY","CREATE [OR REPLACE] SEQUENCE","CREATE SERVICE CLASS","CREATE SERVER","CREATE STOGROUP","CREATE SYNONYM","CREATE [LARGE | REGULAR | {SYSTEM | USER} TEMPORARY] TABLESPACE","CREATE THRESHOLD","CREATE {TRANSFORM | TRANSFORMS} FOR","CREATE [OR REPLACE] TRIGGER","CREATE TRUSTED CONTEXT","CREATE [OR REPLACE] TYPE","CREATE TYPE MAPPING","CREATE USAGE LIST","CREATE USER MAPPING FOR","CREATE [OR REPLACE] VARIABLE","CREATE WORK ACTION SET","CREATE WORK CLASS SET","CREATE WORKLOAD","CREATE WRAPPER","DECLARE","DECLARE GLOBAL TEMPORARY TABLE","DESCRIBE [INPUT | OUTPUT]","DISCONNECT","DROP [PUBLIC] ALIAS","DROP AUDIT POLICY","DROP BUFFERPOOL","DROP DATABASE PARTITION GROUP","DROP EVENT MONITOR","DROP [SPECIFIC] FUNCTION","DROP FUNCTION MAPPING","DROP HISTOGRAM TEMPLATE","DROP INDEX [EXTENSION]","DROP MASK","DROP [SPECIFIC] METHOD","DROP MODULE","DROP NICKNAME","DROP PACKAGE","DROP PERMISSION","DROP [SPECIFIC] PROCEDURE","DROP ROLE","DROP SCHEMA","DROP SECURITY LABEL [COMPONENT]","DROP SECURITY POLICY","DROP SEQUENCE","DROP SERVER","DROP SERVICE CLASS","DROP STOGROUP","DROP TABLE HIERARCHY","DROP {TABLESPACE | TABLESPACES}","DROP {TRANSFORM | TRANSFORMS}","DROP THRESHOLD","DROP TRIGGER","DROP TRUSTED CONTEXT","DROP TYPE [MAPPING]","DROP USAGE LIST","DROP USER MAPPING FOR","DROP VARIABLE","DROP VIEW [HIERARCHY]","DROP WORK {ACTION | CLASS} SET","DROP WORKLOAD","DROP WRAPPER","DROP XSROBJECT","END DECLARE SECTION","EXECUTE [IMMEDIATE]","EXPLAIN {PLAN [SECTION] | ALL}","FETCH [FROM]","FLUSH {BUFFERPOOL | BUFFERPOOLS} ALL","FLUSH EVENT MONITOR","FLUSH FEDERATED CACHE","FLUSH OPTIMIZATION PROFILE CACHE","FLUSH PACKAGE CACHE [DYNAMIC]","FLUSH AUTHENTICATION CACHE [FOR ALL]","FREE LOCATOR","GET DIAGNOSTICS","GOTO","GRANT","INCLUDE","ITERATE","LEAVE","LOCK TABLE","LOOP","OPEN","PIPE","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX | STOGROUP | TABLESPACE]","REPEAT","RESIGNAL","RETURN","REVOKE","ROLLBACK [WORK] [TO SAVEPOINT]","SAVEPOINT","SET COMPILATION ENVIRONMENT","SET CONNECTION","SET CURRENT","SET ENCRYPTION PASSWORD","SET EVENT MONITOR STATE","SET INTEGRITY","SET PASSTHRU","SET PATH","SET ROLE","SET SCHEMA","SET SERVER OPTION","SET {SESSION AUTHORIZATION | SESSION_USER}","SET USAGE LIST","SIGNAL","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}","WHILE"]),au=U(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),Ru=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),iu=U(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),Au=U([]),Su={name:"db2",tokenizerOptions:{reservedSelect:lu,reservedClauses:[...ou,...uR,...BT],reservedSetOperations:au,reservedJoins:Ru,reservedKeywordPhrases:iu,reservedDataTypePhrases:Au,reservedKeywords:su,reservedDataTypes:Tu,reservedFunctionNames:ru,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N","U&"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","%","|","&","^","~","¬=","¬>","¬<","!>","!<","^=","^>","^<","||","->","=>"]},formatOptions:{onelineClauses:[...uR,...BT],tabularOnelineClauses:BT}},Nu=["ARRAY_AGG","AVG","CORR","CORRELATION","COUNT","COUNT_BIG","COVAR_POP","COVARIANCE","COVAR","COVAR_SAMP","COVARIANCE_SAMP","EVERY","GROUPING","JSON_ARRAYAGG","JSON_OBJECTAGG","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","SOME","STDDEV_POP","STDDEV","STDDEV_SAMP","SUM","VAR_POP","VARIANCE","VAR","VAR_SAMP","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","ANTILOG","ARRAY_MAX_CARDINALITY","ARRAY_TRIM","ASCII","ASIN","ATAN","ATAN2","ATANH","BASE64_DECODE","BASE64_ENCODE","BIT_LENGTH","BITAND","BITANDNOT","BITNOT","BITOR","BITXOR","BSON_TO_JSON","CARDINALITY","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","COALESCE","COMPARE_DECFLOAT","CONCAT","CONTAINS","COS","COSH","COT","CURDATE","CURTIME","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK_ISO","DAYOFWEEK","DAYOFYEAR","DAYS","DBPARTITIONNAME","DBPARTITIONNUM","DECFLOAT_FORMAT","DECFLOAT_SORTKEY","DECRYPT_BINARY","DECRYPT_BIT","DECRYPT_CHAR","DECRYPT_DB","DEGREES","DIFFERENCE","DIGITS","DLCOMMENT","DLLINKTYPE","DLURLCOMPLETE","DLURLPATH","DLURLPATHONLY","DLURLSCHEME","DLURLSERVER","DLVALUE","DOUBLE_PRECISION","DOUBLE","ENCRPYT","ENCRYPT_AES","ENCRYPT_AES256","ENCRYPT_RC2","ENCRYPT_TDES","EXP","EXTRACT","FIRST_DAY","FLOOR","GENERATE_UNIQUE","GET_BLOB_FROM_FILE","GET_CLOB_FROM_FILE","GET_DBCLOB_FROM_FILE","GET_XML_FILE","GETHINT","GREATEST","HASH_MD5","HASH_ROW","HASH_SHA1","HASH_SHA256","HASH_SHA512","HASH_VALUES","HASHED_VALUE","HEX","HEXTORAW","HOUR","HTML_ENTITY_DECODE","HTML_ENTITY_ENCODE","HTTP_DELETE_BLOB","HTTP_DELETE","HTTP_GET_BLOB","HTTP_GET","HTTP_PATCH_BLOB","HTTP_PATCH","HTTP_POST_BLOB","HTTP_POST","HTTP_PUT_BLOB","HTTP_PUT","IDENTITY_VAL_LOCAL","IFNULL","INSERT","INSTR","INTERPRET","ISFALSE","ISNOTFALSE","ISNOTTRUE","ISTRUE","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_UPDATE","JSON_VALUE","JULIAN_DAY","LAND","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LN","LNOT","LOCATE_IN_STRING","LOCATE","LOG10","LOR","LOWER","LPAD","LTRIM","MAX_CARDINALITY","MAX","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MQREAD","MQREADCLOB","MQRECEIVE","MQRECEIVECLOB","MQSEND","MULTIPLY_ALT","NEXT_DAY","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","OCTET_LENGTH","OVERLAY","PI","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","RADIANS","RAISE_ERROR","RANDOM","RAND","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RIGHT","ROUND_TIMESTAMP","ROUND","RPAD","RRN","RTRIM","SCORE","SECOND","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF_BIG","TIMESTAMPDIFF","TO_CHAR","TO_CLOB","TO_DATE","TO_NUMBER","TO_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM_ARRAY","TRIM","TRUNC_TIMESTAMP","TRUNC","TRUNCATE","UCASE","UPPER","URL_DECODE","URL_ENCODE","VALUE","VARBINARY_FORMAT","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT_BINARY","VARCHAR_FORMAT","VERIFY_GROUP_FOR_USER","WEEK_ISO","WEEK","WRAP","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XOR","XSLTRANSFORM","YEAR","ZONED","BASE_TABLE","HTTP_DELETE_BLOB_VERBOSE","HTTP_DELETE_VERBOSE","HTTP_GET_BLOB_VERBOSE","HTTP_GET_VERBOSE","HTTP_PATCH_BLOB_VERBOSE","HTTP_PATCH_VERBOSE","HTTP_POST_BLOB_VERBOSE","HTTP_POST_VERBOSE","HTTP_PUT_BLOB_VERBOSE","HTTP_PUT_VERBOSE","JSON_TABLE","MQREADALL","MQREADALLCLOB","MQRECEIVEALL","MQRECEIVEALLCLOB","XMLTABLE","UNPACK","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","RATIO_TO_REPORT","ROW_NUMBER","CAST"],Iu=["ABSENT","ACCORDING","ACCTNG","ACTION","ACTIVATE","ADD","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","APPEND","APPLNAME","ARRAY","ARRAY_AGG","ARRAY_TRIM","AS","ASC","ASENSITIVE","ASSOCIATE","ATOMIC","ATTACH","ATTRIBUTES","AUTHORIZATION","AUTONOMOUS","BEFORE","BEGIN","BETWEEN","BIND","BSON","BUFFERPOOL","BY","CACHE","CALL","CALLED","CARDINALITY","CASE","CAST","CHECK","CL","CLOSE","CLUSTER","COLLECT","COLLECTION","COLUMN","COMMENT","COMMIT","COMPACT","COMPARISONS","COMPRESS","CONCAT","CONCURRENT","CONDITION","CONNECT","CONNECT_BY_ROOT","CONNECTION","CONSTANT","CONSTRAINT","CONTAINS","CONTENT","CONTINUE","COPY","COUNT","COUNT_BIG","CREATE","CREATEIN","CROSS","CUBE","CUME_DIST","CURRENT","CURRENT_DATE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEACTIVATE","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFER","DEFINE","DEFINITION","DELETE","DELETING","DENSE_RANK","DENSERANK","DESC","DESCRIBE","DESCRIPTOR","DETACH","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DYNAMIC","EACH","ELSE","ELSEIF","EMPTY","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ENFORCED","ERROR","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTEND","EXTERNAL","EXTRACT","FALSE","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST_VALUE","FOR","FOREIGN","FORMAT","FREE","FREEPAGE","FROM","FULL","FUNCTION","GBPCACHE","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GROUP","HANDLER","HASH","HASH_ROW","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IGNORE","IMMEDIATE","IMPLICITLY","IN","INCLUDE","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDEXBP","INDICATOR","INF","INFINITY","INHERIT","INLINE","INNER","INOUT","INSENSITIVE","INSERT","INSERTING","INTEGRITY","INTERPRET","INTERSECT","INTO","IS","ISNULL","ISOLATION","ITERATE","JAVA","JOIN","JSON","JSON_ARRAY","JSON_ARRAYAGG","JSON_EXISTS","JSON_OBJECT","JSON_OBJECTAGG","JSON_QUERY","JSON_TABLE","JSON_VALUE","KEEP","KEY","KEYS","LABEL","LAG","LANGUAGE","LAST_VALUE","LATERAL","LEAD","LEAVE","LEFT","LEVEL2","LIKE","LIMIT","LINKTYPE","LISTAGG","LOCAL","LOCALDATE","LOCALTIME","LOCALTIMESTAMP","LOCATION","LOCATOR","LOCK","LOCKSIZE","LOG","LOGGED","LOOP","MAINTAINED","MASK","MATCHED","MATERIALIZED","MAXVALUE","MERGE","MICROSECOND","MICROSECONDS","MINPCTUSED","MINUTE","MINUTES","MINVALUE","MIRROR","MIXED","MODE","MODIFIES","MONTH","MONTHS","NAMESPACE","NAN","NATIONAL","NCHAR","NCLOB","NESTED","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT","NOTNULL","NTH_VALUE","NTILE","NULL","NULLS","NVARCHAR","OBID","OBJECT","OF","OFF","OFFSET","OLD","OLD_TABLE","OMIT","ON","ONLY","OPEN","OPTIMIZE","OPTION","OR","ORDER","ORDINALITY","ORGANIZE","OUT","OUTER","OVER","OVERLAY","OVERRIDING","PACKAGE","PADDED","PAGE","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSING","PASSWORD","PATH","PCTFREE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PERIOD","PERMISSION","PIECESIZE","PIPE","PLAN","POSITION","PREPARE","PREVVAL","PRIMARY","PRIOR","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PROGRAMID","QUERY","RANGE","RANK","RATIO_TO_REPORT","RCDFMT","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","REGEXP_LIKE","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNING","RETURNS","REVOKE","RID","RIGHT","ROLLBACK","ROLLUP","ROUTINE","ROW","ROW_NUMBER","ROWNUMBER","ROWS","RRN","RUN","SAVEPOINT","SBCS","SCALAR","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURED","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SKIP","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","SQLIND_DEFAULT","SQLIND_UNASSIGNED","STACKED","START","STARTING","STATEMENT","STATIC","STOGROUP","SUBSTRING","SUMMARY","SYNONYM","SYSTEM_TIME","SYSTEM_USER","TABLE","TABLESPACE","TABLESPACES","TAG","THEN","THREADSAFE","TO","TRANSACTION","TRANSFER","TRIGGER","TRIM","TRIM_ARRAY","TRUE","TRUNCATE","TRY_CAST","TYPE","UNDO","UNION","UNIQUE","UNIT","UNKNOWN","UNNEST","UNTIL","UPDATE","UPDATING","URI","USAGE","USE","USER","USERID","USING","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VERSIONING","VIEW","VOLATILE","WAIT","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHIN","WITHOUT","WRAPPED","WRAPPER","WRITE","WRKSTNNAME","XMLAGG","XMLATTRIBUTES","XMLCAST","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLGROUP","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTABLE","XMLTEXT","XMLVALIDATE","XSLTRANSFORM","XSROBJECT","YEAR","YEARS","YES","ZONE"],Ou=["ARRAY","BIGINT","BINARY","BIT","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATA","DATALINK","DATE","DBCLOB","DECFLOAT","DECIMAL","DEC","DOUBLE","DOUBLE PRECISION","FLOAT","GRAPHIC","INT","INTEGER","LONG","NUMERIC","REAL","ROWID","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC","XML"],uu=U(["SELECT [ALL | DISTINCT]"]),cu=U(["WITH [RECURSIVE]","INTO","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","FOR READ ONLY","OPTIMIZE FOR","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","DELETE","INSERT","FOR SYSTEM NAME"]),cR=U(["CREATE [OR REPLACE] TABLE"]),FT=U(["CREATE [OR REPLACE] [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","WITH {NC | RR | RS | CS | UR}","DELETE FROM","DROP TABLE","ALTER TABLE","ADD [COLUMN]","ALTER [COLUMN]","DROP [COLUMN]","SET DATA TYPE","SET {GENERATED ALWAYS | GENERATED BY DEFAULT}","SET NOT NULL","SET {NOT HIDDEN | IMPLICITLY HIDDEN}","SET FIELDPROC","DROP {DEFAULT | NOT NULL | GENERATED | IDENTITY | ROW CHANGE TIMESTAMP | FIELDPROC}","TRUNCATE [TABLE]","SET [CURRENT] SCHEMA","SET CURRENT_SCHEMA","ALLOCATE CURSOR","ALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL] SQL","ALTER [SPECIFIC] {FUNCTION | PROCEDURE}","ALTER {MASK | PERMISSION | SEQUENCE | TRIGGER}","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PARAMETER | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","COMMENT ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON PARAMETER SPECIFIC {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON [TABLE FUNCTION] RETURN COLUMN","COMMENT ON [TABLE FUNCTION] RETURN COLUMN SPECIFIC [PROCEDURE | ROUTINE]","COMMIT [WORK] [HOLD]","CONNECT [TO | RESET] USER","CREATE [OR REPLACE] {ALIAS | FUNCTION | MASK | PERMISSION | PROCEDURE | SEQUENCE | TRIGGER | VARIABLE}","CREATE [ENCODED VECTOR] INDEX","CREATE UNIQUE [WHERE NOT NULL] INDEX","CREATE SCHEMA","CREATE TYPE","DEALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL]","DECLARE CURSOR","DECLARE GLOBAL TEMPORARY TABLE","DECLARE","DESCRIBE CURSOR","DESCRIBE INPUT","DESCRIBE [OUTPUT]","DESCRIBE {PROCEDURE | ROUTINE}","DESCRIBE TABLE","DISCONNECT ALL [SQL]","DISCONNECT [CURRENT]","DROP {ALIAS | INDEX | MASK | PACKAGE | PERMISSION | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT} [IF EXISTS]","DROP [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE} [IF EXISTS]","END DECLARE SECTION","EXECUTE [IMMEDIATE]","FREE LOCATOR","GET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","GET [CURRENT | STACKED] DIAGNOSTICS","GRANT {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","HOLD LOCATOR","INCLUDE","LABEL ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","LABEL ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","LOCK TABLE","OPEN","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX] TO","REVOKE {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","ROLLBACK [WORK] [HOLD | TO SAVEPOINT]","SAVEPOINT","SET CONNECTION","SET CURRENT {DEBUG MODE | DECFLOAT ROUNDING MODE | DEGREE | IMPLICIT XMLPARSE OPTION | TEMPORAL SYSTEM_TIME}","SET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","SET ENCRYPTION PASSWORD","SET OPTION","SET {[CURRENT [FUNCTION]] PATH | CURRENT_PATH}","SET RESULT SETS [WITH RETURN [TO CALLER | TO CLIENT]]","SET SESSION AUTHORIZATION","SET SESSION_USER","SET TRANSACTION","SIGNAL SQLSTATE [VALUE]","TAG","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}"]),Cu=U(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),Lu=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT | RIGHT] EXCEPTION JOIN","{INNER | CROSS} JOIN"]),_u=U(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),du=U([]),Du={name:"db2i",tokenizerOptions:{reservedSelect:uu,reservedClauses:[...cu,...cR,...FT],reservedSetOperations:Cu,reservedJoins:Lu,reservedKeywordPhrases:_u,reservedDataTypePhrases:du,reservedKeywords:Iu,reservedDataTypes:Ou,reservedFunctionNames:Nu,nestedBlockComments:!0,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","¬=","¬>","¬<","!>","!<","||","=>"]},formatOptions:{onelineClauses:[...cR,...FT],tabularOnelineClauses:FT}},Pu=["ABS","ACOS","ADD","ADD_PARQUET_KEY","AGE","AGGREGATE","ALIAS","ALL_PROFILING_OUTPUT","ANY_VALUE","APPLY","APPROX_COUNT_DISTINCT","APPROX_QUANTILE","ARBITRARY","ARGMAX","ARGMIN","ARG_MAX","ARG_MAX_NULL","ARG_MIN","ARG_MIN_NULL","ARRAY_AGG","ARRAY_AGGR","ARRAY_AGGREGATE","ARRAY_APPEND","ARRAY_APPLY","ARRAY_CAT","ARRAY_CONCAT","ARRAY_CONTAINS","ARRAY_COSINE_SIMILARITY","ARRAY_CROSS_PRODUCT","ARRAY_DISTANCE","ARRAY_DISTINCT","ARRAY_DOT_PRODUCT","ARRAY_EXTRACT","ARRAY_FILTER","ARRAY_GRADE_UP","ARRAY_HAS","ARRAY_HAS_ALL","ARRAY_HAS_ANY","ARRAY_INDEXOF","ARRAY_INNER_PRODUCT","ARRAY_INTERSECT","ARRAY_LENGTH","ARRAY_POP_BACK","ARRAY_POP_FRONT","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_PUSH_BACK","ARRAY_PUSH_FRONT","ARRAY_REDUCE","ARRAY_RESIZE","ARRAY_REVERSE","ARRAY_REVERSE_SORT","ARRAY_SELECT","ARRAY_SLICE","ARRAY_SORT","ARRAY_TO_JSON","ARRAY_TO_STRING","ARRAY_TRANSFORM","ARRAY_UNIQUE","ARRAY_VALUE","ARRAY_WHERE","ARRAY_ZIP","ARROW_SCAN","ARROW_SCAN_DUMB","ASCII","ASIN","ATAN","ATAN2","AVG","BASE64","BIN","BITSTRING","BITSTRING_AGG","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_POSITION","BIT_XOR","BOOL_AND","BOOL_OR","CARDINALITY","CBRT","CEIL","CEILING","CENTURY","CHECKPOINT","CHR","COLLATIONS","COL_DESCRIPTION","COMBINE","CONCAT","CONCAT_WS","CONSTANT_OR_NULL","CONTAINS","COPY_DATABASE","CORR","COS","COT","COUNT","COUNT_IF","COUNT_STAR","COVAR_POP","COVAR_SAMP","CREATE_SORT_KEY","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_DATE","CURRENT_LOCALTIME","CURRENT_LOCALTIMESTAMP","CURRENT_QUERY","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_SETTING","CURRENT_USER","CURRVAL","DAMERAU_LEVENSHTEIN","DATABASE_LIST","DATABASE_SIZE","DATEDIFF","DATEPART","DATESUB","DATETRUNC","DATE_ADD","DATE_DIFF","DATE_PART","DATE_SUB","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECADE","DECODE","DEGREES","DISABLE_CHECKPOINT_ON_SHUTDOWN","DISABLE_OBJECT_CACHE","DISABLE_OPTIMIZER","DISABLE_PRINT_PROGRESS_BAR","DISABLE_PROFILE","DISABLE_PROFILING","DISABLE_PROGRESS_BAR","DISABLE_VERIFICATION","DISABLE_VERIFY_EXTERNAL","DISABLE_VERIFY_FETCH_ROW","DISABLE_VERIFY_PARALLELISM","DISABLE_VERIFY_SERIALIZER","DIVIDE","DUCKDB_COLUMNS","DUCKDB_CONSTRAINTS","DUCKDB_DATABASES","DUCKDB_DEPENDENCIES","DUCKDB_EXTENSIONS","DUCKDB_FUNCTIONS","DUCKDB_INDEXES","DUCKDB_KEYWORDS","DUCKDB_MEMORY","DUCKDB_OPTIMIZERS","DUCKDB_SCHEMAS","DUCKDB_SECRETS","DUCKDB_SEQUENCES","DUCKDB_SETTINGS","DUCKDB_TABLES","DUCKDB_TEMPORARY_FILES","DUCKDB_TYPES","DUCKDB_VIEWS","EDIT","EDITDIST3","ELEMENT_AT","ENABLE_CHECKPOINT_ON_SHUTDOWN","ENABLE_OBJECT_CACHE","ENABLE_OPTIMIZER","ENABLE_PRINT_PROGRESS_BAR","ENABLE_PROFILE","ENABLE_PROFILING","ENABLE_PROGRESS_BAR","ENABLE_VERIFICATION","ENCODE","ENDS_WITH","ENTROPY","ENUM_CODE","ENUM_FIRST","ENUM_LAST","ENUM_RANGE","ENUM_RANGE_BOUNDARY","EPOCH","EPOCH_MS","EPOCH_NS","EPOCH_US","ERA","ERROR","EVEN","EXP","FACTORIAL","FAVG","FDIV","FILTER","FINALIZE","FIRST","FLATTEN","FLOOR","FMOD","FORCE_CHECKPOINT","FORMAT","FORMATREADABLEDECIMALSIZE","FORMATREADABLESIZE","FORMAT_BYTES","FORMAT_PG_TYPE","FORMAT_TYPE","FROM_BASE64","FROM_BINARY","FROM_HEX","FROM_JSON","FROM_JSON_STRICT","FSUM","FUNCTIONS","GAMMA","GCD","GENERATE_SERIES","GENERATE_SUBSCRIPTS","GEN_RANDOM_UUID","GEOMEAN","GEOMETRIC_MEAN","GETENV","GET_BIT","GET_BLOCK_SIZE","GET_CURRENT_TIME","GET_CURRENT_TIMESTAMP","GLOB","GRADE_UP","GREATEST","GREATEST_COMMON_DIVISOR","GROUP_CONCAT","HAMMING","HASH","HAS_ANY_COLUMN_PRIVILEGE","HAS_COLUMN_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE","HAS_FUNCTION_PRIVILEGE","HAS_LANGUAGE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_SEQUENCE_PRIVILEGE","HAS_SERVER_PRIVILEGE","HAS_TABLESPACE_PRIVILEGE","HAS_TABLE_PRIVILEGE","HEX","HISTOGRAM","HOUR","ICU_CALENDAR_NAMES","ICU_SORT_KEY","ILIKE_ESCAPE","IMPORT_DATABASE","INDEX_SCAN","INET_CLIENT_ADDR","INET_CLIENT_PORT","INET_SERVER_ADDR","INET_SERVER_PORT","INSTR","IN_SEARCH_PATH","ISFINITE","ISINF","ISNAN","ISODOW","ISOYEAR","JACCARD","JARO_SIMILARITY","JARO_WINKLER_SIMILARITY","JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_CONTAINS","JSON_DESERIALIZE_SQL","JSON_EXECUTE_SERIALIZED_SQL","JSON_EXTRACT","JSON_EXTRACT_PATH","JSON_EXTRACT_PATH_TEXT","JSON_EXTRACT_STRING","JSON_GROUP_ARRAY","JSON_GROUP_OBJECT","JSON_GROUP_STRUCTURE","JSON_KEYS","JSON_MERGE_PATCH","JSON_OBJECT","JSON_QUOTE","JSON_SERIALIZE_PLAN","JSON_SERIALIZE_SQL","JSON_STRUCTURE","JSON_TRANSFORM","JSON_TRANSFORM_STRICT","JSON_TYPE","JSON_VALID","JULIAN","KAHAN_SUM","KURTOSIS","KURTOSIS_POP","LAST","LAST_DAY","LCASE","LCM","LEAST","LEAST_COMMON_MULTIPLE","LEFT","LEFT_GRAPHEME","LEN","LENGTH","LENGTH_GRAPHEME","LEVENSHTEIN","LGAMMA","LIKE_ESCAPE","LIST","LISTAGG","LIST_AGGR","LIST_AGGREGATE","LIST_ANY_VALUE","LIST_APPEND","LIST_APPLY","LIST_APPROX_COUNT_DISTINCT","LIST_AVG","LIST_BIT_AND","LIST_BIT_OR","LIST_BIT_XOR","LIST_BOOL_AND","LIST_BOOL_OR","LIST_CAT","LIST_CONCAT","LIST_CONTAINS","LIST_COSINE_SIMILARITY","LIST_COUNT","LIST_DISTANCE","LIST_DISTINCT","LIST_DOT_PRODUCT","LIST_ELEMENT","LIST_ENTROPY","LIST_EXTRACT","LIST_FILTER","LIST_FIRST","LIST_GRADE_UP","LIST_HAS","LIST_HAS_ALL","LIST_HAS_ANY","LIST_HISTOGRAM","LIST_INDEXOF","LIST_INNER_PRODUCT","LIST_INTERSECT","LIST_KURTOSIS","LIST_KURTOSIS_POP","LIST_LAST","LIST_MAD","LIST_MAX","LIST_MEDIAN","LIST_MIN","LIST_MODE","LIST_PACK","LIST_POSITION","LIST_PREPEND","LIST_PRODUCT","LIST_REDUCE","LIST_RESIZE","LIST_REVERSE","LIST_REVERSE_SORT","LIST_SELECT","LIST_SEM","LIST_SKEWNESS","LIST_SLICE","LIST_SORT","LIST_STDDEV_POP","LIST_STDDEV_SAMP","LIST_STRING_AGG","LIST_SUM","LIST_TRANSFORM","LIST_UNIQUE","LIST_VALUE","LIST_VAR_POP","LIST_VAR_SAMP","LIST_WHERE","LIST_ZIP","LN","LOG","LOG10","LOG2","LOWER","LPAD","LSMODE","LTRIM","MAD","MAKE_DATE","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","MAP","MAP_CONCAT","MAP_ENTRIES","MAP_EXTRACT","MAP_FROM_ENTRIES","MAP_KEYS","MAP_VALUES","MAX","MAX_BY","MD5","MD5_NUMBER","MD5_NUMBER_LOWER","MD5_NUMBER_UPPER","MEAN","MEDIAN","METADATA_INFO","MICROSECOND","MILLENNIUM","MILLISECOND","MIN","MINUTE","MIN_BY","MISMATCHES","MOD","MODE","MONTH","MONTHNAME","MULTIPLY","NEXTAFTER","NEXTVAL","NFC_NORMALIZE","NOT_ILIKE_ESCAPE","NOT_LIKE_ESCAPE","NOW","NULLIF","OBJ_DESCRIPTION","OCTET_LENGTH","ORD","PARQUET_FILE_METADATA","PARQUET_KV_METADATA","PARQUET_METADATA","PARQUET_SCAN","PARQUET_SCHEMA","PARSE_DIRNAME","PARSE_DIRPATH","PARSE_FILENAME","PARSE_PATH","PG_COLLATION_IS_VISIBLE","PG_CONF_LOAD_TIME","PG_CONVERSION_IS_VISIBLE","PG_FUNCTION_IS_VISIBLE","PG_GET_CONSTRAINTDEF","PG_GET_EXPR","PG_GET_VIEWDEF","PG_HAS_ROLE","PG_IS_OTHER_TEMP_SCHEMA","PG_MY_TEMP_SCHEMA","PG_OPCLASS_IS_VISIBLE","PG_OPERATOR_IS_VISIBLE","PG_OPFAMILY_IS_VISIBLE","PG_POSTMASTER_START_TIME","PG_SIZE_PRETTY","PG_TABLE_IS_VISIBLE","PG_TIMEZONE_NAMES","PG_TS_CONFIG_IS_VISIBLE","PG_TS_DICT_IS_VISIBLE","PG_TS_PARSER_IS_VISIBLE","PG_TS_TEMPLATE_IS_VISIBLE","PG_TYPEOF","PG_TYPE_IS_VISIBLE","PI","PLATFORM","POSITION","POW","POWER","PRAGMA_COLLATIONS","PRAGMA_DATABASE_SIZE","PRAGMA_METADATA_INFO","PRAGMA_PLATFORM","PRAGMA_SHOW","PRAGMA_STORAGE_INFO","PRAGMA_TABLE_INFO","PRAGMA_USER_AGENT","PRAGMA_VERSION","PREFIX","PRINTF","PRODUCT","QUANTILE","QUANTILE_CONT","QUANTILE_DISC","QUARTER","RADIANS","RANDOM","RANGE","READFILE","READ_BLOB","READ_CSV","READ_CSV_AUTO","READ_JSON","READ_JSON_AUTO","READ_JSON_OBJECTS","READ_JSON_OBJECTS_AUTO","READ_NDJSON","READ_NDJSON_AUTO","READ_NDJSON_OBJECTS","READ_PARQUET","READ_TEXT","REDUCE","REGEXP_ESCAPE","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_FULL_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","REPEAT","REPEAT_ROW","REPLACE","RESERVOIR_QUANTILE","REVERSE","RIGHT","RIGHT_GRAPHEME","ROUND","ROUNDBANKERS","ROUND_EVEN","ROW","ROW_TO_JSON","RPAD","RTRIM","SECOND","SEM","SEQ_SCAN","SESSION_USER","SETSEED","SET_BIT","SHA256","SHA3","SHELL_ADD_SCHEMA","SHELL_ESCAPE_CRNL","SHELL_IDQUOTE","SHELL_MODULE_SCHEMA","SHELL_PUTSNL","SHOBJ_DESCRIPTION","SHOW","SHOW_DATABASES","SHOW_TABLES","SHOW_TABLES_EXPANDED","SIGN","SIGNBIT","SIN","SKEWNESS","SNIFF_CSV","SPLIT","SPLIT_PART","SQL_AUTO_COMPLETE","SQRT","STARTS_WITH","STATS","STDDEV","STDDEV_POP","STDDEV_SAMP","STORAGE_INFO","STRFTIME","STRING_AGG","STRING_SPLIT","STRING_SPLIT_REGEX","STRING_TO_ARRAY","STRIP_ACCENTS","STRLEN","STRPOS","STRPTIME","STRUCT_EXTRACT","STRUCT_INSERT","STRUCT_PACK","STR_SPLIT","STR_SPLIT_REGEX","SUBSTR","SUBSTRING","SUBSTRING_GRAPHEME","SUBTRACT","SUFFIX","SUM","SUMKAHAN","SUMMARY","SUM_NO_OVERFLOW","TABLE_INFO","TAN","TEST_ALL_TYPES","TEST_VECTOR_TYPES","TIMEZONE","TIMEZONE_HOUR","TIMEZONE_MINUTE","TIME_BUCKET","TODAY","TO_BASE","TO_BASE64","TO_BINARY","TO_CENTURIES","TO_DAYS","TO_DECADES","TO_HEX","TO_HOURS","TO_JSON","TO_MICROSECONDS","TO_MILLENNIA","TO_MILLISECONDS","TO_MINUTES","TO_MONTHS","TO_SECONDS","TO_TIMESTAMP","TO_WEEKS","TO_YEARS","TRANSACTION_TIMESTAMP","TRANSLATE","TRIM","TRUNC","TRY_STRPTIME","TXID_CURRENT","TYPEOF","UCASE","UNBIN","UNHEX","UNICODE","UNION_EXTRACT","UNION_TAG","UNION_VALUE","UNNEST","UNPIVOT_LIST","UPPER","USER","USER_AGENT","UUID","VARIANCE","VAR_POP","VAR_SAMP","VECTOR_TYPE","VERIFY_EXTERNAL","VERIFY_FETCH_ROW","VERIFY_PARALLELISM","VERIFY_SERIALIZER","VERSION","WEEK","WEEKDAY","WEEKOFYEAR","WHICH_SECRET","WRITEFILE","XOR","YEAR","YEARWEEK","CAST","COALESCE","RANK","ROW_NUMBER"],pu=["ALL","ANALYSE","ANALYZE","AND","ANY","AS","ASC","ATTACH","ASYMMETRIC","BOTH","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","DEFAULT","DEFERRABLE","DESC","DESCRIBE","DETACH","DISTINCT","DO","ELSE","END","EXCEPT","FALSE","FETCH","FOR","FOREIGN","FROM","GRANT","GROUP","HAVING","IN","INITIALLY","INTERSECT","INTO","IS","LATERAL","LEADING","LIMIT","NOT","NULL","OFFSET","ON","ONLY","OR","ORDER","PIVOT","PIVOT_LONGER","PIVOT_WIDER","PLACING","PRIMARY","REFERENCES","RETURNING","SELECT","SHOW","SOME","SUMMARIZE","SYMMETRIC","TABLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","UNPIVOT","USING","VARIADIC","WHEN","WHERE","WINDOW","WITH"],fu=["ARRAY","BIGINT","BINARY","BIT","BITSTRING","BLOB","BOOL","BOOLEAN","BPCHAR","BYTEA","CHAR","DATE","DATETIME","DEC","DECIMAL","DOUBLE","ENUM","FLOAT","FLOAT4","FLOAT8","GUID","HUGEINT","INET","INT","INT1","INT128","INT16","INT2","INT32","INT4","INT64","INT8","INTEGER","INTEGRAL","INTERVAL","JSON","LIST","LOGICAL","LONG","MAP","NUMERIC","NVARCHAR","OID","REAL","ROW","SHORT","SIGNED","SMALLINT","STRING","STRUCT","TEXT","TIME","TIMESTAMP_MS","TIMESTAMP_NS","TIMESTAMP_S","TIMESTAMP_US","TIMESTAMP","TIMESTAMPTZ","TIMETZ","TINYINT","UBIGINT","UHUGEINT","UINT128","UINT16","UINT32","UINT64","UINT8","UINTEGER","UNION","USMALLINT","UTINYINT","UUID","VARBINARY","VARCHAR"],mu=U(["SELECT [ALL | DISTINCT]"]),Mu=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL]","HAVING","WINDOW","PARTITION BY","ORDER BY [ALL]","LIMIT","OFFSET","USING SAMPLE","QUALIFY","INSERT [OR REPLACE] INTO","VALUES","DEFAULT VALUES","SET","RETURNING"]),CR=U(["CREATE [OR REPLACE] [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]),YT=U(["UPDATE","ON CONFLICT","DELETE FROM","DROP TABLE [IF EXISTS]","TRUNCATE","ALTER TABLE","ADD [COLUMN] [IF NOT EXISTS]","ADD PRIMARY KEY","DROP [COLUMN] [IF EXISTS]","ALTER [COLUMN]","RENAME [COLUMN]","RENAME TO","SET [DATA] TYPE","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","CREATE [OR REPLACE] [TEMPORARY | TEMP] {MACRO | FUNCTION}","DROP MACRO [TABLE] [IF EXISTS]","DROP FUNCTION [IF EXISTS]","CREATE [UNIQUE] INDEX [IF NOT EXISTS]","DROP INDEX [IF EXISTS]","CREATE [OR REPLACE] SCHEMA [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","CREATE [OR REPLACE] [PERSISTENT | TEMPORARY] SECRET [IF NOT EXISTS]","DROP [PERSISTENT | TEMPORARY] SECRET [IF EXISTS]","CREATE [OR REPLACE] [TEMPORARY | TEMP] SEQUENCE","DROP SEQUENCE [IF EXISTS]","CREATE [OR REPLACE] [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]","DROP VIEW [IF EXISTS]","ALTER VIEW","CREATE TYPE","DROP TYPE [IF EXISTS]","ANALYZE","ATTACH [DATABASE] [IF NOT EXISTS]","DETACH [DATABASE] [IF EXISTS]","CALL","[FORCE] CHECKPOINT","COMMENT ON [TABLE | COLUMN | VIEW | INDEX | SEQUENCE | TYPE | MACRO | MACRO TABLE]","COPY [FROM DATABASE]","DESCRIBE","EXPORT DATABASE","IMPORT DATABASE","INSTALL","LOAD","PIVOT","PIVOT_WIDER","UNPIVOT","EXPLAIN [ANALYZE]","SET {LOCAL | SESSION | GLOBAL}","RESET [LOCAL | SESSION | GLOBAL]","{SET | RESET} VARIABLE","SUMMARIZE","BEGIN TRANSACTION","ROLLBACK","COMMIT","ABORT","USE","VACUUM [ANALYZE]","PREPARE","EXECUTE","DEALLOCATE [PREPARE]"]),Uu=U(["UNION [ALL | BY NAME]","EXCEPT [ALL]","INTERSECT [ALL]"]),hu=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","{NATURAL | ASOF} [INNER] JOIN","{NATURAL | ASOF} {LEFT | RIGHT | FULL} [OUTER] JOIN","POSITIONAL JOIN","ANTI JOIN","SEMI JOIN"]),xu=U(["{ROWS | RANGE | GROUPS} BETWEEN","SIMILAR TO","IS [NOT] DISTINCT FROM"]),yu=U(["TIMESTAMP WITH TIME ZONE"]),Gu={name:"duckdb",tokenizerOptions:{reservedSelect:mu,reservedClauses:[...Mu,...CR,...YT],reservedSetOperations:Uu,reservedJoins:hu,reservedKeywordPhrases:xu,reservedDataTypePhrases:yu,supportsXor:!0,reservedKeywords:pu,reservedDataTypes:fu,reservedFunctionNames:Pu,nestedBlockComments:!0,extraParens:["[]","{}"],underscoresInNumbers:!0,stringTypes:["$$","''-qq",{quote:"''-qq-bs",prefixes:["E"],requirePrefix:!0},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{rest:"$"},paramTypes:{positional:!0,numbered:["$"],quoted:["$"]},operators:["//","%","**","^","!","&","|","~","<<",">>","::","==","->","->>",":",":=","=>","~~","!~~","~~*","!~~*","~~~","~","!~","~*","!~*","^@","||",">>=","<<="]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...CR,...YT],tabularOnelineClauses:YT}},gu=["ABS","ACOS","ASIN","ATAN","BIN","BROUND","CBRT","CEIL","CEILING","CONV","COS","DEGREES","EXP","FACTORIAL","FLOOR","GREATEST","HEX","LEAST","LN","LOG","LOG10","LOG2","NEGATIVE","PI","PMOD","POSITIVE","POW","POWER","RADIANS","RAND","ROUND","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIN","SQRT","TAN","UNHEX","WIDTH_BUCKET","ARRAY_CONTAINS","MAP_KEYS","MAP_VALUES","SIZE","SORT_ARRAY","BINARY","CAST","ADD_MONTHS","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","QUARTER","SECOND","TIMESTAMP","TO_DATE","TO_UTC_TIMESTAMP","TRUNC","UNIX_TIMESTAMP","WEEKOFYEAR","YEAR","ASSERT_TRUE","COALESCE","IF","ISNOTNULL","ISNULL","NULLIF","NVL","ASCII","BASE64","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONTEXT_NGRAMS","DECODE","ELT","ENCODE","FIELD","FIND_IN_SET","FORMAT_NUMBER","GET_JSON_OBJECT","IN_FILE","INITCAP","INSTR","LCASE","LENGTH","LEVENSHTEIN","LOCATE","LOWER","LPAD","LTRIM","NGRAMS","OCTET_LENGTH","PARSE_URL","PRINTF","QUOTE","REGEXP_EXTRACT","REGEXP_REPLACE","REPEAT","REVERSE","RPAD","RTRIM","SENTENCES","SOUNDEX","SPACE","SPLIT","STR_TO_MAP","SUBSTR","SUBSTRING","TRANSLATE","TRIM","UCASE","UNBASE64","UPPER","MASK","MASK_FIRST_N","MASK_HASH","MASK_LAST_N","MASK_SHOW_FIRST_N","MASK_SHOW_LAST_N","AES_DECRYPT","AES_ENCRYPT","CRC32","CURRENT_DATABASE","CURRENT_USER","HASH","JAVA_METHOD","LOGGED_IN_USER","MD5","REFLECT","SHA","SHA1","SHA2","SURROGATE_KEY","VERSION","AVG","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COVAR_POP","COVAR_SAMP","HISTOGRAM_NUMERIC","MAX","MIN","NTILE","PERCENTILE","PERCENTILE_APPROX","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","EXPLODE","INLINE","JSON_TUPLE","PARSE_URL_TUPLE","POSEXPLODE","STACK","LEAD","LAG","FIRST_VALUE","LAST_VALUE","RANK","ROW_NUMBER","DENSE_RANK","CUME_DIST","PERCENT_RANK","NTILE"],Hu=["ADD","ADMIN","AFTER","ANALYZE","ARCHIVE","ASC","BEFORE","BUCKET","BUCKETS","CASCADE","CHANGE","CLUSTER","CLUSTERED","CLUSTERSTATUS","COLLECTION","COLUMNS","COMMENT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONTINUE","DATA","DATABASES","DATETIME","DAY","DBPROPERTIES","DEFERRED","DEFINED","DELIMITED","DEPENDENCY","DESC","DIRECTORIES","DIRECTORY","DISABLE","DISTRIBUTE","ELEM_TYPE","ENABLE","ESCAPED","EXCLUSIVE","EXPLAIN","EXPORT","FIELDS","FILE","FILEFORMAT","FIRST","FORMAT","FORMATTED","FUNCTIONS","HOLD_DDLTIME","HOUR","IDXPROPERTIES","IGNORE","INDEX","INDEXES","INPATH","INPUTDRIVER","INPUTFORMAT","ITEMS","JAR","KEYS","KEY_TYPE","LIMIT","LINES","LOAD","LOCATION","LOCK","LOCKS","LOGICAL","LONG","MAPJOIN","MATERIALIZED","METADATA","MINUS","MINUTE","MONTH","MSCK","NOSCAN","NO_DROP","OFFLINE","OPTION","OUTPUTDRIVER","OUTPUTFORMAT","OVERWRITE","OWNER","PARTITIONED","PARTITIONS","PLUS","PRETTY","PRINCIPALS","PROTECTION","PURGE","READ","READONLY","REBUILD","RECORDREADER","RECORDWRITER","RELOAD","RENAME","REPAIR","REPLACE","REPLICATION","RESTRICT","REWRITE","ROLE","ROLES","SCHEMA","SCHEMAS","SECOND","SEMI","SERDE","SERDEPROPERTIES","SERVER","SETS","SHARED","SHOW","SHOW_DATABASE","SKEWED","SORT","SORTED","SSL","STATISTICS","STORED","STREAMTABLE","STRING","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","TINYINT","TOUCH","TRANSACTIONS","UNARCHIVE","UNDO","UNIONTYPE","UNLOCK","UNSET","UNSIGNED","URI","USE","UTC","UTCTIMESTAMP","VALUE_TYPE","VIEW","WHILE","YEAR","AUTOCOMMIT","ISOLATION","LEVEL","OFFSET","SNAPSHOT","TRANSACTION","WORK","WRITE","ABORT","KEY","LAST","NORELY","NOVALIDATE","NULLS","RELY","VALIDATE","DETAIL","DOW","EXPRESSION","OPERATOR","QUARTER","SUMMARY","VECTORIZATION","WEEK","YEARS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","TIMESTAMPTZ","ZONE","ALL","ALTER","AND","AS","AUTHORIZATION","BETWEEN","BOTH","BY","CASE","CAST","COLUMN","CONF","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIMESTAMP","CURSOR","DATABASE","DELETE","DESCRIBE","DISTINCT","DROP","ELSE","END","EXCHANGE","EXISTS","EXTENDED","EXTERNAL","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","FUNCTION","GRANT","GROUP","GROUPING","HAVING","IF","IMPORT","IN","INNER","INSERT","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LESS","LIKE","LOCAL","MACRO","MORE","NONE","NOT","NULL","OF","ON","OR","ORDER","OUT","OUTER","OVER","PARTIALSCAN","PARTITION","PERCENT","PRECEDING","PRESERVE","PROCEDURE","RANGE","READS","REDUCE","REVOKE","RIGHT","ROLLUP","ROW","ROWS","SELECT","SET","TABLE","TABLESAMPLE","THEN","TO","TRANSFORM","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNION","UNIQUEJOIN","UPDATE","USER","USING","UTC_TMESTAMP","VALUES","WHEN","WHERE","WINDOW","WITH","COMMIT","ONLY","REGEXP","RLIKE","ROLLBACK","START","CACHE","CONSTRAINT","FOREIGN","PRIMARY","REFERENCES","DAYOFWEEK","EXTRACT","FLOOR","VIEWS","TIME","SYNC","TEXTFILE","SEQUENCEFILE","ORC","CSV","TSV","PARQUET","AVRO","RCFILE","JSONFILE","INPUTFORMAT","OUTPUTFORMAT"],vu=["ARRAY","BIGINT","BINARY","BOOLEAN","CHAR","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MAP","NUMERIC","PRECISION","SMALLINT","STRUCT","TIMESTAMP","VARCHAR"],Bu=U(["SELECT [ALL | DISTINCT]"]),Fu=U(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT INTO [TABLE]","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT [VALUES]","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),LR=U(["CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS]"]),wT=U(["CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","RENAME TO","TRUNCATE [TABLE]","ALTER","CREATE","USE","DESCRIBE","DROP","FETCH","SHOW","STORED AS","STORED BY","ROW FORMAT"]),Yu=U(["UNION [ALL | DISTINCT]"]),wu=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","LEFT SEMI JOIN"]),Vu=U(["{ROWS | RANGE} BETWEEN"]),bu=U([]),Wu={name:"hive",tokenizerOptions:{reservedSelect:Bu,reservedClauses:[...Fu,...LR,...wT],reservedSetOperations:Yu,reservedJoins:wu,reservedKeywordPhrases:Vu,reservedDataTypePhrases:bu,reservedKeywords:Hu,reservedDataTypes:vu,reservedFunctionNames:gu,extraParens:["[]"],stringTypes:['""-bs',"''-bs"],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||"]},formatOptions:{onelineClauses:[...LR,...wT],tabularOnelineClauses:wT}};function rT(e){return e.map((t,E)=>{const n=e[E+1]||yn;if(QE.SET(t)&&n.text==="(")return Object.assign(Object.assign({},t),{type:v.RESERVED_FUNCTION_NAME});const r=e[E-1]||yn;return QE.VALUES(t)&&r.text==="="?Object.assign(Object.assign({},t),{type:v.RESERVED_FUNCTION_NAME}):t})}const Xu=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DELETE_DOMAIN_ID","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DO_DOMAIN_IDS","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERAL","GRANT","GROUP","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IGNORE_DOMAIN_IDS","IGNORE_SERVER_IDS","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MASTER_HEARTBEAT_PERIOD","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OFFSET","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PAGE_CHECKSUM","PARSE_VCOL_EXPR","PARTITION","POSITION","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","READ_WRITE","RECURSIVE","REF_SYSTEM_ID","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","RETURNING","REVOKE","RIGHT","RLIKE","ROW_NUMBER","ROWS","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SLOW","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],Ku=["BIGINT","BINARY","BIT","BLOB","CHAR BYTE","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],$u=["ADDDATE","ADD_MONTHS","BIT_AND","BIT_OR","BIT_XOR","CAST","COUNT","CUME_DIST","CURDATE","CURTIME","DATE_ADD","DATE_SUB","DATE_FORMAT","DECODE","DENSE_RANK","EXTRACT","FIRST_VALUE","GROUP_CONCAT","JSON_ARRAYAGG","JSON_OBJECTAGG","LAG","LEAD","MAX","MEDIAN","MID","MIN","NOW","NTH_VALUE","NTILE","POSITION","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","ROW_NUMBER","SESSION_USER","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUBDATE","SUBSTR","SUBSTRING","SUM","SYSTEM_USER","TRIM","TRIM_ORACLE","VARIANCE","VAR_POP","VAR_SAMP","ABS","ACOS","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ASIN","ATAN","ATAN2","BENCHMARK","BIN","BINLOG_GTID_POS","BIT_COUNT","BIT_LENGTH","CEIL","CEILING","CHARACTER_LENGTH","CHAR_LENGTH","CHR","COERCIBILITY","COLUMN_CHECK","COLUMN_EXISTS","COLUMN_LIST","COLUMN_JSON","COMPRESS","CONCAT","CONCAT_OPERATOR_ORACLE","CONCAT_WS","CONNECTION_ID","CONV","CONVERT_TZ","COS","COT","CRC32","DATEDIFF","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEGREES","DECODE_HISTOGRAM","DECODE_ORACLE","DES_DECRYPT","DES_ENCRYPT","ELT","ENCODE","ENCRYPT","EXP","EXPORT_SET","EXTRACTVALUE","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GET_LOCK","GREATEST","HEX","IFNULL","INSTR","ISNULL","IS_FREE_LOCK","IS_USED_LOCK","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_COMPACT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_DETAILED","JSON_EXISTS","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_LOOSE","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_QUERY","JSON_QUOTE","JSON_OBJECT","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_SEARCH","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAST_DAY","LAST_INSERT_ID","LCASE","LEAST","LENGTH","LENGTHB","LN","LOAD_FILE","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LPAD_ORACLE","LTRIM","LTRIM_ORACLE","MAKEDATE","MAKETIME","MAKE_SET","MASTER_GTID_WAIT","MASTER_POS_WAIT","MD5","MONTHNAME","NAME_CONST","NVL","NVL2","OCT","OCTET_LENGTH","ORD","PERIOD_ADD","PERIOD_DIFF","PI","POW","POWER","QUOTE","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","RADIANS","RAND","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPLACE_ORACLE","REVERSE","ROUND","RPAD","RPAD_ORACLE","RTRIM","RTRIM_ORACLE","SEC_TO_TIME","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SPACE","SQRT","STRCMP","STR_TO_DATE","SUBSTR_ORACLE","SUBSTRING_INDEX","SUBTIME","SYS_GUID","TAN","TIMEDIFF","TIME_FORMAT","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_SECONDS","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UUID","UUID_SHORT","VERSION","WEEKDAY","WEEKOFYEAR","WSREP_LAST_WRITTEN_GTID","WSREP_LAST_SEEN_GTID","WSREP_SYNC_WAIT_UPTO_GTID","YEARWEEK","COALESCE","NULLIF"],ju=U(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),ku=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET","RETURNING"]),_R=U(["CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]"]),VT=U(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] [IGNORE] TABLE [IF EXISTS]","ADD [COLUMN] [IF NOT EXISTS]","{CHANGE | MODIFY} [COLUMN] [IF EXISTS]","DROP [COLUMN] [IF EXISTS]","RENAME [TO]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","SET {VISIBLE | INVISIBLE}","TRUNCATE [TABLE]","ALTER DATABASE","ALTER DATABASE COMMENT","ALTER EVENT","ALTER FUNCTION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SCHEMA COMMENT","ALTER SEQUENCE","ALTER SERVER","ALTER USER","ALTER VIEW","ANALYZE","ANALYZE TABLE","BACKUP LOCK","BACKUP STAGE","BACKUP UNLOCK","BEGIN","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHECK TABLE","CHECK VIEW","CHECKSUM TABLE","COMMIT","CREATE AGGREGATE FUNCTION","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE INDEX","CREATE PROCEDURE","CREATE ROLE","CREATE SEQUENCE","CREATE SERVER","CREATE SPATIAL INDEX","CREATE TRIGGER","CREATE UNIQUE INDEX","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP INDEX","DROP PREPARE","DROP PROCEDURE","DROP ROLE","DROP SEQUENCE","DROP SERVER","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GET DIAGNOSTICS","GET DIAGNOSTICS CONDITION","GRANT","HANDLER","HELP","INSTALL PLUGIN","INSTALL SONAME","KILL","LOAD DATA INFILE","LOAD INDEX INTO CACHE","LOAD XML INFILE","LOCK TABLE","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","PURGE MASTER LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","REPAIR VIEW","RESET MASTER","RESET QUERY CACHE","RESET REPLICA","RESET SLAVE","RESIGNAL","REVOKE","ROLLBACK","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET GLOBAL TRANSACTION","SET NAMES","SET PASSWORD","SET ROLE","SET STATEMENT","SET TRANSACTION","SHOW","SHOW ALL REPLICAS STATUS","SHOW ALL SLAVES STATUS","SHOW AUTHORS","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW BINLOG STATUS","SHOW CHARACTER SET","SHOW CLIENT_STATISTICS","SHOW COLLATION","SHOW COLUMNS","SHOW CONTRIBUTORS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PACKAGE","SHOW CREATE PACKAGE BODY","SHOW CREATE PROCEDURE","SHOW CREATE SEQUENCE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINE INNODB STATUS","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW EXPLAIN","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW INDEXES","SHOW INDEX_STATISTICS","SHOW KEYS","SHOW LOCALES","SHOW MASTER LOGS","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PACKAGE BODY CODE","SHOW PACKAGE BODY STATUS","SHOW PACKAGE STATUS","SHOW PLUGINS","SHOW PLUGINS SONAME","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW QUERY_RESPONSE_TIME","SHOW RELAYLOG EVENTS","SHOW REPLICA","SHOW REPLICA HOSTS","SHOW REPLICA STATUS","SHOW SCHEMAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW SLAVE STATUS","SHOW STATUS","SHOW STORAGE ENGINES","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW USER_STATISTICS","SHOW VARIABLES","SHOW WARNINGS","SHOW WSREP_MEMBERSHIP","SHOW WSREP_STATUS","SHUTDOWN","SIGNAL","START ALL REPLICAS","START ALL SLAVES","START REPLICA","START SLAVE","START TRANSACTION","STOP ALL REPLICAS","STOP ALL SLAVES","STOP REPLICA","STOP SLAVE","UNINSTALL PLUGIN","UNINSTALL SONAME","UNLOCK TABLE","USE","XA BEGIN","XA COMMIT","XA END","XA PREPARE","XA RECOVER","XA ROLLBACK","XA START"]),Ju=U(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]","MINUS [ALL | DISTINCT]"]),zu=U(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),Qu=U(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),Zu=U([]),qu={name:"mariadb",tokenizerOptions:{reservedSelect:ju,reservedClauses:[...ku,..._R,...VT],reservedSetOperations:Ju,reservedJoins:zu,reservedKeywordPhrases:Qu,reservedDataTypePhrases:Zu,supportsXor:!0,reservedKeywords:Xu,reservedDataTypes:Ku,reservedFunctionNames:$u,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","&&","||","!","*.*"],postProcess:rT},formatOptions:{onelineClauses:[..._R,...VT],tabularOnelineClauses:VT}},ec=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","INTERSECT","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],tc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],Ec=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BINARY","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","CAN_ACCESS_COLUMN","CAN_ACCESS_DATABASE","CAN_ACCESS_TABLE","CAN_ACCESS_USER","CAN_ACCESS_VIEW","CAST","CEIL","CEILING","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEFAULT","DEGREES","DENSE_RANK","DIV","ELT","EXP","EXPORT_SET","EXTRACT","EXTRACTVALUE","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOMCOLLECTION","GEOMETRYCOLLECTION","GET_DD_COLUMN_PRIVILEGES","GET_DD_CREATE_OPTIONS","GET_DD_INDEX_SUB_PART_LENGTH","GET_FORMAT","GET_LOCK","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","INTERNAL_AUTO_INCREMENT","INTERNAL_AVG_ROW_LENGTH","INTERNAL_CHECK_TIME","INTERNAL_CHECKSUM","INTERNAL_DATA_FREE","INTERNAL_DATA_LENGTH","INTERNAL_DD_CHAR_LENGTH","INTERNAL_GET_COMMENT_OR_ERROR","INTERNAL_GET_ENABLED_ROLE_JSON","INTERNAL_GET_HOSTNAME","INTERNAL_GET_USERNAME","INTERNAL_GET_VIEW_WARNING_OR_ERROR","INTERNAL_INDEX_COLUMN_CARDINALITY","INTERNAL_INDEX_LENGTH","INTERNAL_IS_ENABLED_ROLE","INTERNAL_IS_MANDATORY_ROLE","INTERNAL_KEYS_DISABLED","INTERNAL_MAX_DATA_LENGTH","INTERNAL_TABLE_ROWS","INTERNAL_UPDATE_TIME","INTERVAL","IS","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS NOT","IS NOT NULL","IS NULL","IS_USED_LOCK","IS_UUID","ISNULL","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LINESTRING","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MATCH","MAX","MBRCONTAINS","MBRCOVEREDBY","MBRCOVERS","MBRDISJOINT","MBREQUALS","MBRINTERSECTS","MBROVERLAPS","MBRTOUCHES","MBRWITHIN","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MOD","MONTH","MONTHNAME","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","NAME_CONST","NOT","NOT IN","NOT LIKE","NOT REGEXP","NOW","NTH_VALUE","NTILE","NULLIF","OCT","OCTET_LENGTH","ORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","POINT","POLYGON","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_BUFFER","ST_BUFFER_STRATEGY","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_CONVEXHULL","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DISTANCE_SPHERE","ST_ENDPOINT","ST_ENVELOPE","ST_EQUALS","ST_EXTERIORRING","ST_FRECHETDISTANCE","ST_GEOHASH","ST_GEOMCOLLFROMTEXT","ST_GEOMCOLLFROMWKB","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMGEOJSON","ST_GEOMFROMTEXT","ST_GEOMFROMWKB","ST_HAUSDORFFDISTANCE","ST_INTERIORRINGN","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISSIMPLE","ST_ISVALID","ST_LATFROMGEOHASH","ST_LATITUDE","ST_LENGTH","ST_LINEFROMTEXT","ST_LINEFROMWKB","ST_LINEINTERPOLATEPOINT","ST_LINEINTERPOLATEPOINTS","ST_LONGFROMGEOHASH","ST_LONGITUDE","ST_MAKEENVELOPE","ST_MLINEFROMTEXT","ST_MLINEFROMWKB","ST_MPOINTFROMTEXT","ST_MPOINTFROMWKB","ST_MPOLYFROMTEXT","ST_MPOLYFROMWKB","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINTATDISTANCE","ST_POINTFROMGEOHASH","ST_POINTFROMTEXT","ST_POINTFROMWKB","ST_POINTN","ST_POLYFROMTEXT","ST_POLYFROMWKB","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SWAPXY","ST_SYMDIFFERENCE","ST_TOUCHES","ST_TRANSFORM","ST_UNION","ST_VALIDATE","ST_WITHIN","ST_X","ST_Y","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],nc=U(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),rc=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),dR=U(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),bT=U(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER EVENT","ALTER FUNCTION","ALTER INSTANCE","ALTER LOGFILE GROUP","ALTER PROCEDURE","ALTER RESOURCE GROUP","ALTER SERVER","ALTER TABLESPACE","ALTER USER","ALTER VIEW","ANALYZE TABLE","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK TABLE","CHECKSUM TABLE","CLONE","COMMIT","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE FUNCTION","CREATE INDEX","CREATE LOGFILE GROUP","CREATE PROCEDURE","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SERVER","CREATE SPATIAL REFERENCE SYSTEM","CREATE TABLESPACE","CREATE TRIGGER","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP FUNCTION","DROP INDEX","DROP LOGFILE GROUP","DROP PROCEDURE","DROP RESOURCE GROUP","DROP ROLE","DROP SERVER","DROP SPATIAL REFERENCE SYSTEM","DROP TABLESPACE","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GRANT","HANDLER","HELP","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SOURCE_POS_WAIT","START GROUP_REPLICATION","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP REPLICA","STOP SLAVE","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),sc=U(["UNION [ALL | DISTINCT]"]),Tc=U(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),lc=U(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),oc=U([]),ac={name:"mysql",tokenizerOptions:{reservedSelect:nc,reservedClauses:[...rc,...dR,...bT],reservedSetOperations:sc,reservedJoins:Tc,reservedKeywordPhrases:lc,reservedDataTypePhrases:oc,supportsXor:!0,reservedKeywords:ec,reservedDataTypes:tc,reservedFunctionNames:Ec,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:rT},formatOptions:{onelineClauses:[...dR,...bT],tabularOnelineClauses:bT}},Rc=["ADD","ALL","ALTER","ANALYZE","AND","ARRAY","AS","ASC","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERATED","GRANT","GROUP","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","ILIKE","IN","INDEX","INFILE","INNER","INOUT","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOW_PRIORITY","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OF","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PRIMARY","PROCEDURE","RANGE","READ","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","REVOKE","RIGHT","RLIKE","ROW","ROWS","SECOND_MICROSECOND","SELECT","SET","SHOW","SPATIAL","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_EXTENDED","STORED","STRAIGHT_JOIN","TABLE","TABLESAMPLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","TiDB_CURRENT_TSO","UNION","UNIQUE","UNLOCK","UNSIGNED","UNTIL","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],ic=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],Ac=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","BITAND","BITNEG","BITOR","BITXOR","CASE","CAST","CEIL","CEILING","CHAR_FUNC","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_RESOURCE_GROUP","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT_FUNC","DEGREES","DENSE_RANK","DES_DECRYPT","DES_ENCRYPT","DIV","ELT","ENCODE","ENCRYPT","EQ","EXP","EXPORT_SET","EXTRACT","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_NANO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GE","GET_FORMAT","GET_LOCK","GETPARAM","GREATEST","GROUP_CONCAT","GROUPING","GT","HEX","HOUR","IF","IFNULL","ILIKE","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","INSERT_FUNC","INSTR","INTDIV","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","ISFALSE","ISNULL","ISTRUE","JSON_ARRAY","JSON_ARRAYAGG","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MEMBEROF","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LASTVAL","LCASE","LE","LEAD","LEAST","LEFT","LEFTSHIFT","LENGTH","LIKE","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LT","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MAX","MD5","MICROSECOND","MID","MIN","MINUS","MINUTE","MOD","MONTH","MONTHNAME","MUL","NAME_CONST","NE","NEXTVAL","NOT","NOW","NTH_VALUE","NTILE","NULLEQ","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","PASSWORD_FUNC","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","PLUS","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RIGHTSHIFT","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SETVAL","SETVAR","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SM3","SPACE","SQRT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIDB_BOUNDED_STALENESS","TIDB_CURRENT_TSO","TIDB_DECODE_BINARY_PLAN","TIDB_DECODE_KEY","TIDB_DECODE_PLAN","TIDB_DECODE_SQL_DIGESTS","TIDB_ENCODE_SQL_DIGEST","TIDB_IS_DDL_OWNER","TIDB_PARSE_TSO","TIDB_PARSE_TSO_LOGICAL","TIDB_ROW_CHECKSUM","TIDB_SHARD","TIDB_VERSION","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRANSLATE","TRIM","TRUNCATE","UCASE","UNARYMINUS","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VAR_POP","VAR_SAMP","VARIANCE","VERSION","VITESS_HASH","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],Sc=U(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),Nc=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),DR=U(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),WT=U(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER INSTANCE","ALTER RESOURCE GROUP","ALTER SEQUENCE","ALTER USER","ALTER VIEW","ANALYZE TABLE","CHECK TABLE","CHECKSUM TABLE","COMMIT","CREATE DATABASE","CREATE INDEX","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SEQUENCE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP INDEX","DROP RESOURCE GROUP","DROP ROLE","DROP TABLESPACE","DROP USER","DROP VIEW","EXPLAIN","FLUSH","GRANT","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOCK INSTANCE FOR BACKUP","LOCK TABLES","OPTIMIZE TABLE","PREPARE","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE"]),Ic=U(["UNION [ALL | DISTINCT]"]),Oc=U(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),uc=U(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),cc=U([]),Cc={name:"tidb",tokenizerOptions:{reservedSelect:Sc,reservedClauses:[...Nc,...DR,...WT],reservedSetOperations:Ic,reservedJoins:Oc,reservedKeywordPhrases:uc,reservedDataTypePhrases:cc,supportsXor:!0,reservedKeywords:Rc,reservedDataTypes:ic,reservedFunctionNames:Ac,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:rT},formatOptions:{onelineClauses:[...DR,...WT],tabularOnelineClauses:WT}},Lc=["ABORT","ABS","ACOS","ADVISOR","ARRAY_AGG","ARRAY_AGG","ARRAY_APPEND","ARRAY_AVG","ARRAY_BINARY_SEARCH","ARRAY_CONCAT","ARRAY_CONTAINS","ARRAY_COUNT","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_FLATTEN","ARRAY_IFNULL","ARRAY_INSERT","ARRAY_INTERSECT","ARRAY_LENGTH","ARRAY_MAX","ARRAY_MIN","ARRAY_MOVE","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_PUT","ARRAY_RANGE","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_REPLACE","ARRAY_REVERSE","ARRAY_SORT","ARRAY_STAR","ARRAY_SUM","ARRAY_SYMDIFF","ARRAY_SYMDIFF1","ARRAY_SYMDIFFN","ARRAY_UNION","ASIN","ATAN","ATAN2","AVG","BASE64","BASE64_DECODE","BASE64_ENCODE","BITAND ","BITCLEAR ","BITNOT ","BITOR ","BITSET ","BITSHIFT ","BITTEST ","BITXOR ","CEIL","CLOCK_LOCAL","CLOCK_MILLIS","CLOCK_STR","CLOCK_TZ","CLOCK_UTC","COALESCE","CONCAT","CONCAT2","CONTAINS","CONTAINS_TOKEN","CONTAINS_TOKEN_LIKE","CONTAINS_TOKEN_REGEXP","COS","COUNT","COUNT","COUNTN","CUME_DIST","CURL","DATE_ADD_MILLIS","DATE_ADD_STR","DATE_DIFF_MILLIS","DATE_DIFF_STR","DATE_FORMAT_STR","DATE_PART_MILLIS","DATE_PART_STR","DATE_RANGE_MILLIS","DATE_RANGE_STR","DATE_TRUNC_MILLIS","DATE_TRUNC_STR","DECODE","DECODE_JSON","DEGREES","DENSE_RANK","DURATION_TO_STR","ENCODED_SIZE","ENCODE_JSON","EXP","FIRST_VALUE","FLOOR","GREATEST","HAS_TOKEN","IFINF","IFMISSING","IFMISSINGORNULL","IFNAN","IFNANORINF","IFNULL","INITCAP","ISARRAY","ISATOM","ISBITSET","ISBOOLEAN","ISNUMBER","ISOBJECT","ISSTRING","LAG","LAST_VALUE","LEAD","LEAST","LENGTH","LN","LOG","LOWER","LTRIM","MAX","MEAN","MEDIAN","META","MILLIS","MILLIS_TO_LOCAL","MILLIS_TO_STR","MILLIS_TO_TZ","MILLIS_TO_UTC","MILLIS_TO_ZONE_NAME","MIN","MISSINGIF","NANIF","NEGINFIF","NOW_LOCAL","NOW_MILLIS","NOW_STR","NOW_TZ","NOW_UTC","NTH_VALUE","NTILE","NULLIF","NVL","NVL2","OBJECT_ADD","OBJECT_CONCAT","OBJECT_INNER_PAIRS","OBJECT_INNER_VALUES","OBJECT_LENGTH","OBJECT_NAMES","OBJECT_PAIRS","OBJECT_PUT","OBJECT_REMOVE","OBJECT_RENAME","OBJECT_REPLACE","OBJECT_UNWRAP","OBJECT_VALUES","PAIRS","PERCENT_RANK","PI","POLY_LENGTH","POSINFIF","POSITION","POWER","RADIANS","RANDOM","RANK","RATIO_TO_REPORT","REGEXP_CONTAINS","REGEXP_LIKE","REGEXP_MATCHES","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGEX_CONTAINS","REGEX_LIKE","REGEX_MATCHES","REGEX_POSITION","REGEX_REPLACE","REGEX_SPLIT","REPEAT","REPLACE","REVERSE","ROUND","ROW_NUMBER","RTRIM","SEARCH","SEARCH_META","SEARCH_SCORE","SIGN","SIN","SPLIT","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DURATION","STR_TO_MILLIS","STR_TO_TZ","STR_TO_UTC","STR_TO_ZONE_NAME","SUBSTR","SUFFIXES","SUM","TAN","TITLE","TOARRAY","TOATOM","TOBOOLEAN","TOKENS","TOKENS","TONUMBER","TOOBJECT","TOSTRING","TRIM","TRUNC","UPPER","UUID","VARIANCE","VARIANCE_POP","VARIANCE_SAMP","VAR_POP","VAR_SAMP","WEEKDAY_MILLIS","WEEKDAY_STR","CAST"],_c=["ADVISE","ALL","ALTER","ANALYZE","AND","ANY","ARRAY","AS","ASC","AT","BEGIN","BETWEEN","BINARY","BOOLEAN","BREAK","BUCKET","BUILD","BY","CALL","CASE","CAST","CLUSTER","COLLATE","COLLECTION","COMMIT","COMMITTED","CONNECT","CONTINUE","CORRELATED","COVER","CREATE","CURRENT","DATABASE","DATASET","DATASTORE","DECLARE","DECREMENT","DELETE","DERIVED","DESC","DESCRIBE","DISTINCT","DO","DROP","EACH","ELEMENT","ELSE","END","EVERY","EXCEPT","EXCLUDE","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FILTER","FIRST","FLATTEN","FLUSH","FOLLOWING","FOR","FORCE","FROM","FTS","FUNCTION","GOLANG","GRANT","GROUP","GROUPS","GSI","HASH","HAVING","IF","IGNORE","ILIKE","IN","INCLUDE","INCREMENT","INDEX","INFER","INLINE","INNER","INSERT","INTERSECT","INTO","IS","ISOLATION","JAVASCRIPT","JOIN","KEY","KEYS","KEYSPACE","KNOWN","LANGUAGE","LAST","LEFT","LET","LETTING","LEVEL","LIKE","LIMIT","LSM","MAP","MAPPING","MATCHED","MATERIALIZED","MERGE","MINUS","MISSING","NAMESPACE","NEST","NL","NO","NOT","NTH_VALUE","NULL","NULLS","NUMBER","OBJECT","OFFSET","ON","OPTION","OPTIONS","OR","ORDER","OTHERS","OUTER","OVER","PARSE","PARTITION","PASSWORD","PATH","POOL","PRECEDING","PREPARE","PRIMARY","PRIVATE","PRIVILEGE","PROBE","PROCEDURE","PUBLIC","RANGE","RAW","REALM","REDUCE","RENAME","RESPECT","RETURN","RETURNING","REVOKE","RIGHT","ROLE","ROLLBACK","ROW","ROWS","SATISFIES","SAVEPOINT","SCHEMA","SCOPE","SELECT","SELF","SEMI","SET","SHOW","SOME","START","STATISTICS","STRING","SYSTEM","THEN","TIES","TO","TRAN","TRANSACTION","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNDER","UNION","UNIQUE","UNKNOWN","UNNEST","UNSET","UPDATE","UPSERT","USE","USER","USING","VALIDATE","VALUE","VALUED","VALUES","VIA","VIEW","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WORK","XOR"],dc=[],Dc=U(["SELECT [ALL | DISTINCT]"]),Pc=U(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED THEN","UPDATE SET","INSERT","NEST","UNNEST","RETURNING"]),PR=U(["UPDATE","DELETE FROM","SET SCHEMA","ADVISE","ALTER INDEX","BEGIN TRANSACTION","BUILD INDEX","COMMIT TRANSACTION","CREATE COLLECTION","CREATE FUNCTION","CREATE INDEX","CREATE PRIMARY INDEX","CREATE SCOPE","DROP COLLECTION","DROP FUNCTION","DROP INDEX","DROP PRIMARY INDEX","DROP SCOPE","EXECUTE","EXECUTE FUNCTION","EXPLAIN","GRANT","INFER","PREPARE","REVOKE","ROLLBACK TRANSACTION","SAVEPOINT","SET TRANSACTION","UPDATE STATISTICS","UPSERT","LET","SET CURRENT SCHEMA","SHOW","USE [PRIMARY] KEYS"]),pc=U(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),fc=U(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","INNER JOIN"]),mc=U(["{ROWS | RANGE | GROUPS} BETWEEN"]),Mc=U([]),Uc={name:"n1ql",tokenizerOptions:{reservedSelect:Dc,reservedClauses:[...Pc,...PR],reservedSetOperations:pc,reservedJoins:fc,reservedKeywordPhrases:mc,reservedDataTypePhrases:Mc,supportsXor:!0,reservedKeywords:_c,reservedDataTypes:dc,reservedFunctionNames:Lc,stringTypes:['""-bs',"''-bs"],identTypes:["``"],extraParens:["[]","{}"],paramTypes:{positional:!0,numbered:["$"],named:["$"]},lineCommentTypes:["#","--"],operators:["%","==",":","||"]},formatOptions:{onelineClauses:PR}},hc=["ADD","AGENT","AGGREGATE","ALL","ALTER","AND","ANY","ARROW","AS","ASC","AT","ATTRIBUTE","AUTHID","AVG","BEGIN","BETWEEN","BLOCK","BODY","BOTH","BOUND","BULK","BY","BYTE","CALL","CALLING","CASCADE","CASE","CHARSET","CHARSETFORM","CHARSETID","CHECK","CLOSE","CLUSTER","CLUSTERS","COLAUTH","COLLECT","COLUMNS","COMMENT","COMMIT","COMMITTED","COMPILED","COMPRESS","CONNECT","CONSTANT","CONSTRUCTOR","CONTEXT","CONVERT","COUNT","CRASH","CREATE","CURRENT","CURSOR","CUSTOMDATUM","DANGLING","DATA","DAY","DECLARE","DEFAULT","DEFINE","DELETE","DESC","DETERMINISTIC","DISTINCT","DROP","DURATION","ELEMENT","ELSE","ELSIF","EMPTY","END","ESCAPE","EXCEPT","EXCEPTION","EXCEPTIONS","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FINAL","FIXED","FOR","FORALL","FORCE","FORM","FROM","FUNCTION","GENERAL","GOTO","GRANT","GROUP","HASH","HAVING","HEAP","HIDDEN","HOUR","IDENTIFIED","IF","IMMEDIATE","IN","INCLUDING","INDEX","INDEXES","INDICATOR","INDICES","INFINITE","INSERT","INSTANTIABLE","INTERFACE","INTERSECT","INTERVAL","INTO","INVALIDATE","IS","ISOLATION","JAVA","LANGUAGE","LARGE","LEADING","LENGTH","LEVEL","LIBRARY","LIKE","LIKE2","LIKE4","LIKEC","LIMIT","LIMITED","LOCAL","LOCK","LOOP","MAP","MAX","MAXLEN","MEMBER","MERGE","MIN","MINUS","MINUTE","MOD","MODE","MODIFY","MONTH","MULTISET","NAME","NAN","NATIONAL","NATIVE","NEW","NOCOMPRESS","NOCOPY","NOT","NOWAIT","NULL","OBJECT","OCICOLL","OCIDATE","OCIDATETIME","OCIDURATION","OCIINTERVAL","OCILOBLOCATOR","OCINUMBER","OCIRAW","OCIREF","OCIREFCURSOR","OCIROWID","OCISTRING","OCITYPE","OF","ON","ONLY","OPAQUE","OPEN","OPERATOR","OPTION","OR","ORACLE","ORADATA","ORDER","OVERLAPS","ORGANIZATION","ORLANY","ORLVARY","OTHERS","OUT","OVERRIDING","PACKAGE","PARALLEL_ENABLE","PARAMETER","PARAMETERS","PARTITION","PASCAL","PIPE","PIPELINED","PRAGMA","PRIOR","PRIVATE","PROCEDURE","PUBLIC","RAISE","RANGE","READ","RECORD","REF","REFERENCE","REM","REMAINDER","RENAME","RESOURCE","RESULT","RETURN","RETURNING","REVERSE","REVOKE","ROLLBACK","ROW","SAMPLE","SAVE","SAVEPOINT","SB1","SB2","SB4","SECOND","SEGMENT","SELECT","SELF","SEPARATE","SEQUENCE","SERIALIZABLE","SET","SHARE","SHORT","SIZE","SIZE_T","SOME","SPARSE","SQL","SQLCODE","SQLDATA","SQLNAME","SQLSTATE","STANDARD","START","STATIC","STDDEV","STORED","STRING","STRUCT","STYLE","SUBMULTISET","SUBPARTITION","SUBSTITUTABLE","SUBTYPE","SUM","SYNONYM","TABAUTH","TABLE","TDO","THE","THEN","TIME","TIMEZONE_ABBR","TIMEZONE_HOUR","TIMEZONE_MINUTE","TIMEZONE_REGION","TO","TRAILING","TRANSAC","TRANSACTIONAL","TRUSTED","TYPE","UB1","UB2","UB4","UNDER","UNION","UNIQUE","UNSIGNED","UNTRUSTED","UPDATE","USE","USING","VALIST","VALUE","VALUES","VARIABLE","VARIANCE","VARRAY","VIEW","VIEWS","VOID","WHEN","WHERE","WHILE","WITH","WORK","WRAPPED","WRITE","YEAR","ZONE"],xc=["ARRAY","BFILE_BASE","BINARY","BLOB_BASE","CHAR VARYING","CHAR_BASE","CHAR","CHARACTER VARYING","CHARACTER","CLOB_BASE","DATE_BASE","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTERVAL DAY","INTERVAL YEAR","LONG","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR VARYING","NCHAR","NCHAR","NUMBER_BASE","NUMBER","NUMBERIC","NVARCHAR","PRECISION","RAW","TIMESTAMP","UROWID","VARCHAR","VARCHAR2"],yc=["ABS","ACOS","ASIN","ATAN","ATAN2","BITAND","CEIL","COS","COSH","EXP","FLOOR","LN","LOG","MOD","NANVL","POWER","REMAINDER","ROUND","SIGN","SIN","SINH","SQRT","TAN","TANH","TRUNC","WIDTH_BUCKET","CHR","CONCAT","INITCAP","LOWER","LPAD","LTRIM","NLS_INITCAP","NLS_LOWER","NLSSORT","NLS_UPPER","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","RPAD","RTRIM","SOUNDEX","SUBSTR","TRANSLATE","TREAT","TRIM","UPPER","NLS_CHARSET_DECL_LEN","NLS_CHARSET_ID","NLS_CHARSET_NAME","ASCII","INSTR","LENGTH","REGEXP_INSTR","ADD_MONTHS","CURRENT_DATE","CURRENT_TIMESTAMP","DBTIMEZONE","EXTRACT","FROM_TZ","LAST_DAY","LOCALTIMESTAMP","MONTHS_BETWEEN","NEW_TIME","NEXT_DAY","NUMTODSINTERVAL","NUMTOYMINTERVAL","ROUND","SESSIONTIMEZONE","SYS_EXTRACT_UTC","SYSDATE","SYSTIMESTAMP","TO_CHAR","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_DSINTERVAL","TO_YMINTERVAL","TRUNC","TZ_OFFSET","GREATEST","LEAST","ASCIISTR","BIN_TO_NUM","CAST","CHARTOROWID","COMPOSE","CONVERT","DECOMPOSE","HEXTORAW","NUMTODSINTERVAL","NUMTOYMINTERVAL","RAWTOHEX","RAWTONHEX","ROWIDTOCHAR","ROWIDTONCHAR","SCN_TO_TIMESTAMP","TIMESTAMP_TO_SCN","TO_BINARY_DOUBLE","TO_BINARY_FLOAT","TO_CHAR","TO_CLOB","TO_DATE","TO_DSINTERVAL","TO_LOB","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_DSINTERVAL","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_YMINTERVAL","TO_YMINTERVAL","TRANSLATE","UNISTR","BFILENAME","EMPTY_BLOB,","EMPTY_CLOB","CARDINALITY","COLLECT","POWERMULTISET","POWERMULTISET_BY_CARDINALITY","SET","SYS_CONNECT_BY_PATH","CLUSTER_ID","CLUSTER_PROBABILITY","CLUSTER_SET","FEATURE_ID","FEATURE_SET","FEATURE_VALUE","PREDICTION","PREDICTION_COST","PREDICTION_DETAILS","PREDICTION_PROBABILITY","PREDICTION_SET","APPENDCHILDXML","DELETEXML","DEPTH","EXTRACT","EXISTSNODE","EXTRACTVALUE","INSERTCHILDXML","INSERTXMLBEFORE","PATH","SYS_DBURIGEN","SYS_XMLAGG","SYS_XMLGEN","UPDATEXML","XMLAGG","XMLCDATA","XMLCOLATTVAL","XMLCOMMENT","XMLCONCAT","XMLFOREST","XMLPARSE","XMLPI","XMLQUERY","XMLROOT","XMLSEQUENCE","XMLSERIALIZE","XMLTABLE","XMLTRANSFORM","DECODE","DUMP","ORA_HASH","VSIZE","COALESCE","LNNVL","NULLIF","NVL","NVL2","SYS_CONTEXT","SYS_GUID","SYS_TYPEID","UID","USER","USERENV","AVG","COLLECT","CORR","CORR_S","CORR_K","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","FIRST","GROUP_ID","GROUPING","GROUPING_ID","LAST","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANK","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","STATS_BINOMIAL_TEST","STATS_CROSSTAB","STATS_F_TEST","STATS_KS_TEST","STATS_MODE","STATS_MW_TEST","STATS_ONE_WAY_ANOVA","STATS_T_TEST_ONE","STATS_T_TEST_PAIRED","STATS_T_TEST_INDEP","STATS_T_TEST_INDEPU","STATS_WSR_TEST","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTILE","RATIO_TO_REPORT","ROW_NUMBER","DEREF","MAKE_REF","REF","REFTOHEX","VALUE","CV","ITERATION_NUMBER","PRESENTNNV","PRESENTV","PREVIOUS"],Gc=U(["SELECT [ALL | DISTINCT | UNIQUE]"]),gc=U(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","INSERT [INTO | ALL INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [THEN]","UPDATE SET","RETURNING"]),pR=U(["CREATE [GLOBAL TEMPORARY | PRIVATE TEMPORARY | SHARDED | DUPLICATED | IMMUTABLE BLOCKCHAIN | BLOCKCHAIN | IMMUTABLE] TABLE"]),XT=U(["CREATE [OR REPLACE] [NO FORCE | FORCE] [EDITIONING | EDITIONABLE | EDITIONABLE EDITIONING | NONEDITIONABLE] VIEW","CREATE MATERIALIZED VIEW","UPDATE [ONLY]","DELETE FROM [ONLY]","DROP TABLE","ALTER TABLE","ADD","DROP {COLUMN | UNUSED COLUMNS | COLUMNS CONTINUE}","MODIFY","RENAME TO","RENAME COLUMN","TRUNCATE TABLE","SET SCHEMA","BEGIN","CONNECT BY","DECLARE","EXCEPT","EXCEPTION","LOOP","START WITH"]),Hc=U(["UNION [ALL]","MINUS","INTERSECT"]),vc=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | OUTER} APPLY"]),Bc=U(["ON {UPDATE | DELETE} [SET NULL]","ON COMMIT","{ROWS | RANGE} BETWEEN"]),Fc=U([]),Yc={name:"plsql",tokenizerOptions:{reservedSelect:Gc,reservedClauses:[...gc,...pR,...XT],reservedSetOperations:Hc,reservedJoins:vc,reservedKeywordPhrases:Bc,reservedDataTypePhrases:Fc,supportsXor:!0,reservedKeywords:hc,reservedDataTypes:xc,reservedFunctionNames:yc,stringTypes:[{quote:"''-qq",prefixes:["N"]},{quote:"q''",prefixes:["N"]}],identTypes:['""-qq'],identChars:{rest:"$#"},variableTypes:[{regex:"&{1,2}[A-Za-z][A-Za-z0-9_$#]*"}],paramTypes:{numbered:[":"],named:[":"]},operators:["**",":=","%","~=","^=",">>","<<","=>","@","||"],postProcess:wc},formatOptions:{alwaysDenseOperators:["@"],onelineClauses:[...pR,...XT],tabularOnelineClauses:XT}};function wc(e){let t=yn;return e.map(E=>QE.SET(E)&&QE.BY(t)?Object.assign(Object.assign({},E),{type:v.RESERVED_KEYWORD}):(cS(E.type)&&(t=E),E))}const Vc=["ABS","ACOS","ACOSD","ACOSH","ASIN","ASIND","ASINH","ATAN","ATAN2","ATAN2D","ATAND","ATANH","CBRT","CEIL","CEILING","COS","COSD","COSH","COT","COTD","DEGREES","DIV","EXP","FACTORIAL","FLOOR","GCD","LCM","LN","LOG","LOG10","MIN_SCALE","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SCALE","SETSEED","SIGN","SIN","SIND","SINH","SQRT","TAN","TAND","TANH","TRIM_SCALE","TRUNC","WIDTH_BUCKET","ABS","ASCII","BIT_LENGTH","BTRIM","CHARACTER_LENGTH","CHAR_LENGTH","CHR","CONCAT","CONCAT_WS","FORMAT","INITCAP","LEFT","LENGTH","LOWER","LPAD","LTRIM","MD5","NORMALIZE","OCTET_LENGTH","OVERLAY","PARSE_IDENT","PG_CLIENT_ENCODING","POSITION","QUOTE_IDENT","QUOTE_LITERAL","QUOTE_NULLABLE","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REPEAT","REPLACE","REVERSE","RIGHT","RPAD","RTRIM","SPLIT_PART","SPRINTF","STARTS_WITH","STRING_AGG","STRING_TO_ARRAY","STRING_TO_TABLE","STRPOS","SUBSTR","SUBSTRING","TO_ASCII","TO_HEX","TRANSLATE","TRIM","UNISTR","UPPER","BIT_COUNT","BIT_LENGTH","BTRIM","CONVERT","CONVERT_FROM","CONVERT_TO","DECODE","ENCODE","GET_BIT","GET_BYTE","LENGTH","LTRIM","MD5","OCTET_LENGTH","OVERLAY","POSITION","RTRIM","SET_BIT","SET_BYTE","SHA224","SHA256","SHA384","SHA512","STRING_AGG","SUBSTR","SUBSTRING","TRIM","BIT_COUNT","BIT_LENGTH","GET_BIT","LENGTH","OCTET_LENGTH","OVERLAY","POSITION","SET_BIT","SUBSTRING","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","TO_CHAR","TO_DATE","TO_NUMBER","TO_TIMESTAMP","CLOCK_TIMESTAMP","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_BIN","DATE_PART","DATE_TRUNC","EXTRACT","ISFINITE","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","LOCALTIME","LOCALTIMESTAMP","MAKE_DATE","MAKE_INTERVAL","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","NOW","PG_SLEEP","PG_SLEEP_FOR","PG_SLEEP_UNTIL","STATEMENT_TIMESTAMP","TIMEOFDAY","TO_TIMESTAMP","TRANSACTION_TIMESTAMP","ENUM_FIRST","ENUM_LAST","ENUM_RANGE","AREA","BOUND_BOX","BOX","CENTER","CIRCLE","DIAGONAL","DIAMETER","HEIGHT","ISCLOSED","ISOPEN","LENGTH","LINE","LSEG","NPOINTS","PATH","PCLOSE","POINT","POLYGON","POPEN","RADIUS","SLOPE","WIDTH","ABBREV","BROADCAST","FAMILY","HOST","HOSTMASK","INET_MERGE","INET_SAME_FAMILY","MACADDR8_SET7BIT","MASKLEN","NETMASK","NETWORK","SET_MASKLEN","TRUNC","ARRAY_TO_TSVECTOR","GET_CURRENT_TS_CONFIG","JSONB_TO_TSVECTOR","JSON_TO_TSVECTOR","LENGTH","NUMNODE","PHRASETO_TSQUERY","PLAINTO_TSQUERY","QUERYTREE","SETWEIGHT","STRIP","TO_TSQUERY","TO_TSVECTOR","TSQUERY_PHRASE","TSVECTOR_TO_ARRAY","TS_DEBUG","TS_DELETE","TS_FILTER","TS_HEADLINE","TS_LEXIZE","TS_PARSE","TS_RANK","TS_RANK_CD","TS_REWRITE","TS_STAT","TS_TOKEN_TYPE","WEBSEARCH_TO_TSQUERY","GEN_RANDOM_UUID","UUIDV4","UUIDV7","UUID_EXTRACT_TIMESTAMP","UUID_EXTRACT_VERSION","CURSOR_TO_XML","CURSOR_TO_XMLSCHEMA","DATABASE_TO_XML","DATABASE_TO_XMLSCHEMA","DATABASE_TO_XML_AND_XMLSCHEMA","NEXTVAL","QUERY_TO_XML","QUERY_TO_XMLSCHEMA","QUERY_TO_XML_AND_XMLSCHEMA","SCHEMA_TO_XML","SCHEMA_TO_XMLSCHEMA","SCHEMA_TO_XML_AND_XMLSCHEMA","STRING","TABLE_TO_XML","TABLE_TO_XMLSCHEMA","TABLE_TO_XML_AND_XMLSCHEMA","XMLAGG","XMLCOMMENT","XMLCONCAT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLPARSE","XMLPI","XMLROOT","XMLSERIALIZE","XMLTABLE","XML_IS_WELL_FORMED","XML_IS_WELL_FORMED_CONTENT","XML_IS_WELL_FORMED_DOCUMENT","XPATH","XPATH_EXISTS","ARRAY_TO_JSON","JSONB_AGG","JSONB_ARRAY_ELEMENTS","JSONB_ARRAY_ELEMENTS_TEXT","JSONB_ARRAY_LENGTH","JSONB_BUILD_ARRAY","JSONB_BUILD_OBJECT","JSONB_EACH","JSONB_EACH_TEXT","JSONB_EXTRACT_PATH","JSONB_EXTRACT_PATH_TEXT","JSONB_INSERT","JSONB_OBJECT","JSONB_OBJECT_AGG","JSONB_OBJECT_KEYS","JSONB_PATH_EXISTS","JSONB_PATH_EXISTS_TZ","JSONB_PATH_MATCH","JSONB_PATH_MATCH_TZ","JSONB_PATH_QUERY","JSONB_PATH_QUERY_ARRAY","JSONB_PATH_QUERY_ARRAY_TZ","JSONB_PATH_QUERY_FIRST","JSONB_PATH_QUERY_FIRST_TZ","JSONB_PATH_QUERY_TZ","JSONB_POPULATE_RECORD","JSONB_POPULATE_RECORDSET","JSONB_PRETTY","JSONB_SET","JSONB_SET_LAX","JSONB_STRIP_NULLS","JSONB_TO_RECORD","JSONB_TO_RECORDSET","JSONB_TYPEOF","JSON_AGG","JSON_ARRAY_ELEMENTS","JSON_ARRAY_ELEMENTS_TEXT","JSON_ARRAY_LENGTH","JSON_BUILD_ARRAY","JSON_BUILD_OBJECT","JSON_EACH","JSON_EACH_TEXT","JSON_EXTRACT_PATH","JSON_EXTRACT_PATH_TEXT","JSON_OBJECT","JSON_OBJECT_AGG","JSON_OBJECT_KEYS","JSON_POPULATE_RECORD","JSON_POPULATE_RECORDSET","JSON_STRIP_NULLS","JSON_TO_RECORD","JSON_TO_RECORDSET","JSON_TYPEOF","ROW_TO_JSON","TO_JSON","TO_JSONB","TO_TIMESTAMP","CURRVAL","LASTVAL","NEXTVAL","SETVAL","COALESCE","GREATEST","LEAST","NULLIF","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_DIMS","ARRAY_FILL","ARRAY_LENGTH","ARRAY_LOWER","ARRAY_NDIMS","ARRAY_POSITION","ARRAY_POSITIONS","ARRAY_PREPEND","ARRAY_REMOVE","ARRAY_REPLACE","ARRAY_TO_STRING","ARRAY_UPPER","CARDINALITY","STRING_TO_ARRAY","TRIM_ARRAY","UNNEST","ISEMPTY","LOWER","LOWER_INC","LOWER_INF","MULTIRANGE","RANGE_MERGE","UPPER","UPPER_INC","UPPER_INF","ARRAY_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COALESCE","CORR","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","EVERY","GROUPING","JSONB_AGG","JSONB_OBJECT_AGG","JSON_AGG","JSON_OBJECT_AGG","MAX","MIN","MODE","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANGE_AGG","RANGE_INTERSECT_AGG","RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","TO_JSON","TO_JSONB","VARIANCE","VAR_POP","VAR_SAMP","XMLAGG","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","GENERATE_SERIES","GENERATE_SUBSCRIPTS","ACLDEFAULT","ACLEXPLODE","COL_DESCRIPTION","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_QUERY","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","FORMAT_TYPE","HAS_ANY_COLUMN_PRIVILEGE","HAS_COLUMN_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE","HAS_FUNCTION_PRIVILEGE","HAS_LANGUAGE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_SEQUENCE_PRIVILEGE","HAS_SERVER_PRIVILEGE","HAS_TABLESPACE_PRIVILEGE","HAS_TABLE_PRIVILEGE","HAS_TYPE_PRIVILEGE","INET_CLIENT_ADDR","INET_CLIENT_PORT","INET_SERVER_ADDR","INET_SERVER_PORT","MAKEACLITEM","OBJ_DESCRIPTION","PG_BACKEND_PID","PG_BLOCKING_PIDS","PG_COLLATION_IS_VISIBLE","PG_CONF_LOAD_TIME","PG_CONTROL_CHECKPOINT","PG_CONTROL_INIT","PG_CONTROL_SYSTEM","PG_CONVERSION_IS_VISIBLE","PG_CURRENT_LOGFILE","PG_CURRENT_SNAPSHOT","PG_CURRENT_XACT_ID","PG_CURRENT_XACT_ID_IF_ASSIGNED","PG_DESCRIBE_OBJECT","PG_FUNCTION_IS_VISIBLE","PG_GET_CATALOG_FOREIGN_KEYS","PG_GET_CONSTRAINTDEF","PG_GET_EXPR","PG_GET_FUNCTIONDEF","PG_GET_FUNCTION_ARGUMENTS","PG_GET_FUNCTION_IDENTITY_ARGUMENTS","PG_GET_FUNCTION_RESULT","PG_GET_INDEXDEF","PG_GET_KEYWORDS","PG_GET_OBJECT_ADDRESS","PG_GET_OWNED_SEQUENCE","PG_GET_RULEDEF","PG_GET_SERIAL_SEQUENCE","PG_GET_STATISTICSOBJDEF","PG_GET_TRIGGERDEF","PG_GET_USERBYID","PG_GET_VIEWDEF","PG_HAS_ROLE","PG_IDENTIFY_OBJECT","PG_IDENTIFY_OBJECT_AS_ADDRESS","PG_INDEXAM_HAS_PROPERTY","PG_INDEX_COLUMN_HAS_PROPERTY","PG_INDEX_HAS_PROPERTY","PG_IS_OTHER_TEMP_SCHEMA","PG_JIT_AVAILABLE","PG_LAST_COMMITTED_XACT","PG_LISTENING_CHANNELS","PG_MY_TEMP_SCHEMA","PG_NOTIFICATION_QUEUE_USAGE","PG_OPCLASS_IS_VISIBLE","PG_OPERATOR_IS_VISIBLE","PG_OPFAMILY_IS_VISIBLE","PG_OPTIONS_TO_TABLE","PG_POSTMASTER_START_TIME","PG_SAFE_SNAPSHOT_BLOCKING_PIDS","PG_SNAPSHOT_XIP","PG_SNAPSHOT_XMAX","PG_SNAPSHOT_XMIN","PG_STATISTICS_OBJ_IS_VISIBLE","PG_TABLESPACE_DATABASES","PG_TABLESPACE_LOCATION","PG_TABLE_IS_VISIBLE","PG_TRIGGER_DEPTH","PG_TS_CONFIG_IS_VISIBLE","PG_TS_DICT_IS_VISIBLE","PG_TS_PARSER_IS_VISIBLE","PG_TS_TEMPLATE_IS_VISIBLE","PG_TYPEOF","PG_TYPE_IS_VISIBLE","PG_VISIBLE_IN_SNAPSHOT","PG_XACT_COMMIT_TIMESTAMP","PG_XACT_COMMIT_TIMESTAMP_ORIGIN","PG_XACT_STATUS","PQSERVERVERSION","ROW_SECURITY_ACTIVE","SESSION_USER","SHOBJ_DESCRIPTION","TO_REGCLASS","TO_REGCOLLATION","TO_REGNAMESPACE","TO_REGOPER","TO_REGOPERATOR","TO_REGPROC","TO_REGPROCEDURE","TO_REGROLE","TO_REGTYPE","TXID_CURRENT","TXID_CURRENT_IF_ASSIGNED","TXID_CURRENT_SNAPSHOT","TXID_SNAPSHOT_XIP","TXID_SNAPSHOT_XMAX","TXID_SNAPSHOT_XMIN","TXID_STATUS","TXID_VISIBLE_IN_SNAPSHOT","USER","VERSION","BRIN_DESUMMARIZE_RANGE","BRIN_SUMMARIZE_NEW_VALUES","BRIN_SUMMARIZE_RANGE","CONVERT_FROM","CURRENT_SETTING","GIN_CLEAN_PENDING_LIST","PG_ADVISORY_LOCK","PG_ADVISORY_LOCK_SHARED","PG_ADVISORY_UNLOCK","PG_ADVISORY_UNLOCK_ALL","PG_ADVISORY_UNLOCK_SHARED","PG_ADVISORY_XACT_LOCK","PG_ADVISORY_XACT_LOCK_SHARED","PG_BACKUP_START_TIME","PG_CANCEL_BACKEND","PG_COLLATION_ACTUAL_VERSION","PG_COLUMN_COMPRESSION","PG_COLUMN_SIZE","PG_COPY_LOGICAL_REPLICATION_SLOT","PG_COPY_PHYSICAL_REPLICATION_SLOT","PG_CREATE_LOGICAL_REPLICATION_SLOT","PG_CREATE_PHYSICAL_REPLICATION_SLOT","PG_CREATE_RESTORE_POINT","PG_CURRENT_WAL_FLUSH_LSN","PG_CURRENT_WAL_INSERT_LSN","PG_CURRENT_WAL_LSN","PG_DATABASE_SIZE","PG_DROP_REPLICATION_SLOT","PG_EXPORT_SNAPSHOT","PG_FILENODE_RELATION","PG_GET_WAL_REPLAY_PAUSE_STATE","PG_IMPORT_SYSTEM_COLLATIONS","PG_INDEXES_SIZE","PG_IS_IN_BACKUP","PG_IS_IN_RECOVERY","PG_IS_WAL_REPLAY_PAUSED","PG_LAST_WAL_RECEIVE_LSN","PG_LAST_WAL_REPLAY_LSN","PG_LAST_XACT_REPLAY_TIMESTAMP","PG_LOGICAL_EMIT_MESSAGE","PG_LOGICAL_SLOT_GET_BINARY_CHANGES","PG_LOGICAL_SLOT_GET_CHANGES","PG_LOGICAL_SLOT_PEEK_BINARY_CHANGES","PG_LOGICAL_SLOT_PEEK_CHANGES","PG_LOG_BACKEND_MEMORY_CONTEXTS","PG_LS_ARCHIVE_STATUSDIR","PG_LS_DIR","PG_LS_LOGDIR","PG_LS_TMPDIR","PG_LS_WALDIR","PG_PARTITION_ANCESTORS","PG_PARTITION_ROOT","PG_PARTITION_TREE","PG_PROMOTE","PG_READ_BINARY_FILE","PG_READ_FILE","PG_RELATION_FILENODE","PG_RELATION_FILEPATH","PG_RELATION_SIZE","PG_RELOAD_CONF","PG_REPLICATION_ORIGIN_ADVANCE","PG_REPLICATION_ORIGIN_CREATE","PG_REPLICATION_ORIGIN_DROP","PG_REPLICATION_ORIGIN_OID","PG_REPLICATION_ORIGIN_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_IS_SETUP","PG_REPLICATION_ORIGIN_SESSION_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_RESET","PG_REPLICATION_ORIGIN_SESSION_SETUP","PG_REPLICATION_ORIGIN_XACT_RESET","PG_REPLICATION_ORIGIN_XACT_SETUP","PG_REPLICATION_SLOT_ADVANCE","PG_ROTATE_LOGFILE","PG_SIZE_BYTES","PG_SIZE_PRETTY","PG_START_BACKUP","PG_STAT_FILE","PG_STOP_BACKUP","PG_SWITCH_WAL","PG_TABLESPACE_SIZE","PG_TABLE_SIZE","PG_TERMINATE_BACKEND","PG_TOTAL_RELATION_SIZE","PG_TRY_ADVISORY_LOCK","PG_TRY_ADVISORY_LOCK_SHARED","PG_TRY_ADVISORY_XACT_LOCK","PG_TRY_ADVISORY_XACT_LOCK_SHARED","PG_WALFILE_NAME","PG_WALFILE_NAME_OFFSET","PG_WAL_LSN_DIFF","PG_WAL_REPLAY_PAUSE","PG_WAL_REPLAY_RESUME","SET_CONFIG","SUPPRESS_REDUNDANT_UPDATES_TRIGGER","TSVECTOR_UPDATE_TRIGGER","TSVECTOR_UPDATE_TRIGGER_COLUMN","PG_EVENT_TRIGGER_DDL_COMMANDS","PG_EVENT_TRIGGER_DROPPED_OBJECTS","PG_EVENT_TRIGGER_TABLE_REWRITE_OID","PG_EVENT_TRIGGER_TABLE_REWRITE_REASON","PG_GET_OBJECT_ADDRESS","PG_MCV_LIST_ITEMS","CAST"],bc=["ALL","ANALYSE","ANALYZE","AND","ANY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BETWEEN","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DAY","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","EXISTS","FALSE","FETCH","FILTER","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","HOUR","ILIKE","IN","INITIALLY","INNER","INOUT","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","MINUTE","MONTH","NATURAL","NOT","NOTNULL","NULL","NULLIF","OFFSET","ON","ONLY","OR","ORDER","OUT","OUTER","OVER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","ROW","SECOND","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VALUES","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","YEAR"],Wc=["ARRAY","BIGINT","BIT","BIT VARYING","BOOL","BOOLEAN","CHAR","CHARACTER","CHARACTER VARYING","DECIMAL","DEC","DOUBLE","ENUM","FLOAT","INT","INTEGER","INTERVAL","NCHAR","NUMERIC","JSON","JSONB","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TIMESTAMPTZ","UUID","VARCHAR","XML","ZONE"],Xc=U(["SELECT [ALL | DISTINCT]"]),Kc=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR {UPDATE | NO KEY UPDATE | SHARE | KEY SHARE} [OF]","INSERT INTO","VALUES","DEFAULT VALUES","SET","RETURNING"]),fR=U(["CREATE [GLOBAL | LOCAL] [TEMPORARY | TEMP | UNLOGGED] TABLE [IF NOT EXISTS]"]),KT=U(["CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW","CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE [ONLY]","WHERE CURRENT OF","ON CONFLICT","DELETE FROM [ONLY]","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS] [ONLY]","ALTER TABLE ALL IN TABLESPACE","RENAME [COLUMN]","RENAME TO","ADD [COLUMN] [IF NOT EXISTS]","DROP [COLUMN] [IF EXISTS]","ALTER [COLUMN]","SET DATA TYPE","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","TRUNCATE [TABLE] [ONLY]","SET SCHEMA","AFTER","ABORT","ALTER AGGREGATE","ALTER COLLATION","ALTER CONVERSION","ALTER DATABASE","ALTER DEFAULT PRIVILEGES","ALTER DOMAIN","ALTER EVENT TRIGGER","ALTER EXTENSION","ALTER FOREIGN DATA WRAPPER","ALTER FOREIGN TABLE","ALTER FUNCTION","ALTER GROUP","ALTER INDEX","ALTER LANGUAGE","ALTER LARGE OBJECT","ALTER MATERIALIZED VIEW","ALTER OPERATOR","ALTER OPERATOR CLASS","ALTER OPERATOR FAMILY","ALTER POLICY","ALTER PROCEDURE","ALTER PUBLICATION","ALTER ROLE","ALTER ROUTINE","ALTER RULE","ALTER SCHEMA","ALTER SEQUENCE","ALTER SERVER","ALTER STATISTICS","ALTER SUBSCRIPTION","ALTER SYSTEM","ALTER TABLESPACE","ALTER TEXT SEARCH CONFIGURATION","ALTER TEXT SEARCH DICTIONARY","ALTER TEXT SEARCH PARSER","ALTER TEXT SEARCH TEMPLATE","ALTER TRIGGER","ALTER TYPE","ALTER USER","ALTER USER MAPPING","ALTER VIEW","ANALYZE","BEGIN","CALL","CHECKPOINT","CLOSE","CLUSTER","COMMENT ON","COMMIT","COMMIT PREPARED","COPY","CREATE ACCESS METHOD","CREATE [OR REPLACE] AGGREGATE","CREATE CAST","CREATE COLLATION","CREATE [DEFAULT] CONVERSION","CREATE DATABASE","CREATE DOMAIN","CREATE EVENT TRIGGER","CREATE EXTENSION","CREATE FOREIGN DATA WRAPPER","CREATE FOREIGN TABLE","CREATE [OR REPLACE] FUNCTION","CREATE GROUP","CREATE [UNIQUE] INDEX","CREATE [OR REPLACE] [TRUSTED] [PROCEDURAL] LANGUAGE","CREATE OPERATOR","CREATE OPERATOR CLASS","CREATE OPERATOR FAMILY","CREATE POLICY","CREATE [OR REPLACE] PROCEDURE","CREATE PUBLICATION","CREATE ROLE","CREATE [OR REPLACE] RULE","CREATE SCHEMA [AUTHORIZATION]","CREATE [TEMPORARY | TEMP | UNLOGGED] SEQUENCE","CREATE SERVER","CREATE STATISTICS","CREATE SUBSCRIPTION","CREATE TABLESPACE","CREATE TEXT SEARCH CONFIGURATION","CREATE TEXT SEARCH DICTIONARY","CREATE TEXT SEARCH PARSER","CREATE TEXT SEARCH TEMPLATE","CREATE [OR REPLACE] TRANSFORM","CREATE [OR REPLACE] [CONSTRAINT] TRIGGER","CREATE TYPE","CREATE USER","CREATE USER MAPPING","DEALLOCATE","DECLARE","DISCARD","DROP ACCESS METHOD","DROP AGGREGATE","DROP CAST","DROP COLLATION","DROP CONVERSION","DROP DATABASE","DROP DOMAIN","DROP EVENT TRIGGER","DROP EXTENSION","DROP FOREIGN DATA WRAPPER","DROP FOREIGN TABLE","DROP FUNCTION","DROP GROUP","DROP IDENTITY","DROP INDEX","DROP LANGUAGE","DROP MATERIALIZED VIEW [IF EXISTS]","DROP OPERATOR","DROP OPERATOR CLASS","DROP OPERATOR FAMILY","DROP OWNED","DROP POLICY","DROP PROCEDURE","DROP PUBLICATION","DROP ROLE","DROP ROUTINE","DROP RULE","DROP SCHEMA","DROP SEQUENCE","DROP SERVER","DROP STATISTICS","DROP SUBSCRIPTION","DROP TABLESPACE","DROP TEXT SEARCH CONFIGURATION","DROP TEXT SEARCH DICTIONARY","DROP TEXT SEARCH PARSER","DROP TEXT SEARCH TEMPLATE","DROP TRANSFORM","DROP TRIGGER","DROP TYPE","DROP USER","DROP USER MAPPING","DROP VIEW","EXECUTE","EXPLAIN","FETCH","GRANT","IMPORT FOREIGN SCHEMA","LISTEN","LOAD","LOCK","MOVE","NOTIFY","OVERRIDING SYSTEM VALUE","PREPARE","PREPARE TRANSACTION","REASSIGN OWNED","REFRESH MATERIALIZED VIEW","REINDEX","RELEASE SAVEPOINT","RESET [ALL|ROLE|SESSION AUTHORIZATION]","REVOKE","ROLLBACK","ROLLBACK PREPARED","ROLLBACK TO SAVEPOINT","SAVEPOINT","SECURITY LABEL","SELECT INTO","SET CONSTRAINTS","SET ROLE","SET SESSION AUTHORIZATION","SET TRANSACTION","SHOW","START TRANSACTION","UNLISTEN","VACUUM"]),$c=U(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),jc=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),kc=U(["PRIMARY KEY","GENERATED {ALWAYS | BY DEFAULT} AS IDENTITY","ON {UPDATE | DELETE} [NO ACTION | RESTRICT | CASCADE | SET NULL | SET DEFAULT]","DO {NOTHING | UPDATE}","AS MATERIALIZED","{ROWS | RANGE | GROUPS} BETWEEN","IS [NOT] DISTINCT FROM","NULLS {FIRST | LAST}","WITH ORDINALITY"]),Jc=U(["[TIMESTAMP | TIME] {WITH | WITHOUT} TIME ZONE"]),zc={name:"postgresql",tokenizerOptions:{reservedSelect:Xc,reservedClauses:[...Kc,...fR,...KT],reservedSetOperations:$c,reservedJoins:jc,reservedKeywordPhrases:kc,reservedDataTypePhrases:Jc,reservedKeywords:bc,reservedDataTypes:Wc,reservedFunctionNames:Vc,nestedBlockComments:!0,extraParens:["[]"],underscoresInNumbers:!0,stringTypes:["$$",{quote:"''-qq",prefixes:["U&"]},{quote:"''-qq-bs",prefixes:["E"],requirePrefix:!0},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:[{quote:'""-qq',prefixes:["U&"]}],identChars:{rest:"$"},paramTypes:{numbered:["$"]},operators:["%","^","|/","||/","@",":=","&","|","#","~","<<",">>","~>~","~<~","~>=~","~<=~","@-@","@@","##","<->","&&","&<","&>","<<|","&<|","|>>","|&>","<^","^>","?#","?-","?|","?-|","?||","@>","<@","~=","?","@?","?&","->","->>","#>","#>>","#-","=>",">>=","<<=","~~","~~*","!~~","!~~*","~","~*","!~","!~*","-|-","||","@@@","!!","^@","<%","%>","<<%","%>>","<<->","<->>","<<<->","<->>>","::",":","<#>","<=>","<+>","<~>","<%>"],operatorKeyword:!0},formatOptions:{alwaysDenseOperators:["::",":"],onelineClauses:[...fR,...KT],tabularOnelineClauses:KT}},Qc=["ANY_VALUE","APPROXIMATE PERCENTILE_DISC","AVG","COUNT","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","array_concat","array_flatten","get_array_length","split_to_array","subarray","BIT_AND","BIT_OR","BOOL_AND","BOOL_OR","COALESCE","DECODE","GREATEST","LEAST","NVL","NVL2","NULLIF","ADD_MONTHS","AT TIME ZONE","CONVERT_TIMEZONE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_CMP","DATE_CMP_TIMESTAMP","DATE_CMP_TIMESTAMPTZ","DATE_PART_YEAR","DATEADD","DATEDIFF","DATE_PART","DATE_TRUNC","EXTRACT","GETDATE","INTERVAL_CMP","LAST_DAY","MONTHS_BETWEEN","NEXT_DAY","SYSDATE","TIMEOFDAY","TIMESTAMP_CMP","TIMESTAMP_CMP_DATE","TIMESTAMP_CMP_TIMESTAMPTZ","TIMESTAMPTZ_CMP","TIMESTAMPTZ_CMP_DATE","TIMESTAMPTZ_CMP_TIMESTAMP","TIMEZONE","TO_TIMESTAMP","TRUNC","AddBBox","DropBBox","GeometryType","ST_AddPoint","ST_Angle","ST_Area","ST_AsBinary","ST_AsEWKB","ST_AsEWKT","ST_AsGeoJSON","ST_AsText","ST_Azimuth","ST_Boundary","ST_Collect","ST_Contains","ST_ContainsProperly","ST_ConvexHull","ST_CoveredBy","ST_Covers","ST_Crosses","ST_Dimension","ST_Disjoint","ST_Distance","ST_DistanceSphere","ST_DWithin","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_Force2D","ST_Force3D","ST_Force3DM","ST_Force3DZ","ST_Force4D","ST_GeometryN","ST_GeometryType","ST_GeomFromEWKB","ST_GeomFromEWKT","ST_GeomFromText","ST_GeomFromWKB","ST_InteriorRingN","ST_Intersects","ST_IsPolygonCCW","ST_IsPolygonCW","ST_IsClosed","ST_IsCollection","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_Length","ST_LengthSphere","ST_Length2D","ST_LineFromMultiPoint","ST_LineInterpolatePoint","ST_M","ST_MakeEnvelope","ST_MakeLine","ST_MakePoint","ST_MakePolygon","ST_MemSize","ST_MMax","ST_MMin","ST_Multi","ST_NDims","ST_NPoints","ST_NRings","ST_NumGeometries","ST_NumInteriorRings","ST_NumPoints","ST_Perimeter","ST_Perimeter2D","ST_Point","ST_PointN","ST_Points","ST_Polygon","ST_RemovePoint","ST_Reverse","ST_SetPoint","ST_SetSRID","ST_Simplify","ST_SRID","ST_StartPoint","ST_Touches","ST_Within","ST_X","ST_XMax","ST_XMin","ST_Y","ST_YMax","ST_YMin","ST_Z","ST_ZMax","ST_ZMin","SupportsBBox","CHECKSUM","FUNC_SHA1","FNV_HASH","MD5","SHA","SHA1","SHA2","HLL","HLL_CREATE_SKETCH","HLL_CARDINALITY","HLL_COMBINE","IS_VALID_JSON","IS_VALID_JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_EXTRACT_ARRAY_ELEMENT_TEXT","JSON_EXTRACT_PATH_TEXT","JSON_PARSE","JSON_SERIALIZE","ABS","ACOS","ASIN","ATAN","ATAN2","CBRT","CEILING","CEIL","COS","COT","DEGREES","DEXP","DLOG1","DLOG10","EXP","FLOOR","LN","LOG","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SIN","SIGN","SQRT","TAN","TO_HEX","TRUNC","EXPLAIN_MODEL","ASCII","BPCHARCMP","BTRIM","BTTEXT_PATTERN_CMP","CHAR_LENGTH","CHARACTER_LENGTH","CHARINDEX","CHR","COLLATE","CONCAT","CRC32","DIFFERENCE","INITCAP","LEFT","RIGHT","LEN","LENGTH","LOWER","LPAD","RPAD","LTRIM","OCTETINDEX","OCTET_LENGTH","POSITION","QUOTE_IDENT","QUOTE_LITERAL","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","REPLICATE","REVERSE","RTRIM","SOUNDEX","SPLIT_PART","STRPOS","STRTOL","SUBSTRING","TEXTLEN","TRANSLATE","TRIM","UPPER","decimal_precision","decimal_scale","is_array","is_bigint","is_boolean","is_char","is_decimal","is_float","is_integer","is_object","is_scalar","is_smallint","is_varchar","json_typeof","AVG","COUNT","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAST_VALUE","LAG","LEAD","LISTAGG","MAX","MEDIAN","MIN","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","CAST","CONVERT","TO_CHAR","TO_DATE","TO_NUMBER","TEXT_TO_INT_ALT","TEXT_TO_NUMERIC_ALT","CHANGE_QUERY_PRIORITY","CHANGE_SESSION_PRIORITY","CHANGE_USER_PRIORITY","CURRENT_SETTING","PG_CANCEL_BACKEND","PG_TERMINATE_BACKEND","REBOOT_CLUSTER","SET_CONFIG","CURRENT_AWS_ACCOUNT","CURRENT_DATABASE","CURRENT_NAMESPACE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","CURRENT_USER_ID","HAS_ASSUMEROLE_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_TABLE_PRIVILEGE","PG_BACKEND_PID","PG_GET_COLS","PG_GET_GRANTEE_BY_IAM_ROLE","PG_GET_IAM_ROLE_BY_USER","PG_GET_LATE_BINDING_VIEW_COLS","PG_LAST_COPY_COUNT","PG_LAST_COPY_ID","PG_LAST_UNLOAD_ID","PG_LAST_QUERY_ID","PG_LAST_UNLOAD_COUNT","SESSION_USER","SLICE_NUM","USER","VERSION"],Zc=["AES128","AES256","ALL","ALLOWOVERWRITE","ANY","AS","ASC","AUTHORIZATION","BACKUP","BETWEEN","BINARY","BOTH","CHECK","COLUMN","CONSTRAINT","CREATE","CROSS","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DESC","DISABLE","DISTINCT","DO","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GROUP","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTO","IS","ISNULL","LANGUAGE","LEADING","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","MINUS","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RECOVER","REFERENCES","REJECTLOG","RESORT","RESPECT","RESTORE","SIMILAR","SNAPSHOT","SOME","SYSTEM","TABLE","TAG","TDES","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","UNIQUE","USING","VERBOSE","WALLET","WITHOUT","ACCEPTANYDATE","ACCEPTINVCHARS","BLANKSASNULL","DATEFORMAT","EMPTYASNULL","ENCODING","ESCAPE","EXPLICIT_IDS","FILLRECORD","IGNOREBLANKLINES","IGNOREHEADER","REMOVEQUOTES","ROUNDEC","TIMEFORMAT","TRIMBLANKS","TRUNCATECOLUMNS","COMPROWS","COMPUPDATE","MAXERROR","NOLOAD","STATUPDATE","FORMAT","CSV","DELIMITER","FIXEDWIDTH","SHAPEFILE","AVRO","JSON","PARQUET","ORC","ACCESS_KEY_ID","CREDENTIALS","ENCRYPTED","IAM_ROLE","MASTER_SYMMETRIC_KEY","SECRET_ACCESS_KEY","SESSION_TOKEN","BZIP2","GZIP","LZOP","ZSTD","MANIFEST","READRATIO","REGION","SSH","RAW","AZ64","BYTEDICT","DELTA","DELTA32K","LZO","MOSTLY8","MOSTLY16","MOSTLY32","RUNLENGTH","TEXT255","TEXT32K","CATALOG_ROLE","SECRET_ARN","EXTERNAL","AUTO","EVEN","KEY","PREDICATE","COMPRESSION"],qc=["ARRAY","BIGINT","BPCHAR","CHAR","CHARACTER VARYING","CHARACTER","DECIMAL","INT","INT2","INT4","INT8","INTEGER","NCHAR","NUMERIC","NVARCHAR","SMALLINT","TEXT","VARBYTE","VARCHAR"],eC=U(["SELECT [ALL | DISTINCT]"]),tC=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET"]),mR=U(["CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP] TABLE [IF NOT EXISTS]"]),$T=U(["CREATE [OR REPLACE | MATERIALIZED] VIEW","UPDATE","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ALTER TABLE APPEND","ADD [COLUMN]","DROP [COLUMN]","RENAME TO","RENAME COLUMN","ALTER COLUMN","TYPE","ENCODE","TRUNCATE [TABLE]","ABORT","ALTER DATABASE","ALTER DATASHARE","ALTER DEFAULT PRIVILEGES","ALTER GROUP","ALTER MATERIALIZED VIEW","ALTER PROCEDURE","ALTER SCHEMA","ALTER USER","ANALYSE","ANALYZE","ANALYSE COMPRESSION","ANALYZE COMPRESSION","BEGIN","CALL","CANCEL","CLOSE","COMMIT","COPY","CREATE DATABASE","CREATE DATASHARE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL SCHEMA","CREATE EXTERNAL TABLE","CREATE FUNCTION","CREATE GROUP","CREATE LIBRARY","CREATE MODEL","CREATE PROCEDURE","CREATE SCHEMA","CREATE USER","DEALLOCATE","DECLARE","DESC DATASHARE","DROP DATABASE","DROP DATASHARE","DROP FUNCTION","DROP GROUP","DROP LIBRARY","DROP MODEL","DROP MATERIALIZED VIEW","DROP PROCEDURE","DROP SCHEMA","DROP USER","DROP VIEW","DROP","EXECUTE","EXPLAIN","FETCH","GRANT","LOCK","PREPARE","REFRESH MATERIALIZED VIEW","RESET","REVOKE","ROLLBACK","SELECT INTO","SET SESSION AUTHORIZATION","SET SESSION CHARACTERISTICS","SHOW","SHOW EXTERNAL TABLE","SHOW MODEL","SHOW DATASHARES","SHOW PROCEDURE","SHOW TABLE","SHOW VIEW","START TRANSACTION","UNLOAD","VACUUM"]),EC=U(["UNION [ALL]","EXCEPT","INTERSECT","MINUS"]),nC=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),rC=U(["NULL AS","DATA CATALOG","HIVE METASTORE","{ROWS | RANGE} BETWEEN"]),sC=U([]),TC={name:"redshift",tokenizerOptions:{reservedSelect:eC,reservedClauses:[...tC,...mR,...$T],reservedSetOperations:EC,reservedJoins:nC,reservedKeywordPhrases:rC,reservedDataTypePhrases:sC,reservedKeywords:Zc,reservedDataTypes:qc,reservedFunctionNames:Qc,extraParens:["[]"],stringTypes:["''-qq"],identTypes:['""-qq'],identChars:{first:"#"},paramTypes:{numbered:["$"]},operators:["^","%","@","|/","||/","&","|","~","<<",">>","||","::"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...mR,...$T],tabularOnelineClauses:$T}},lC=["ADD","AFTER","ALL","ALTER","ANALYZE","AND","ANTI","ANY","ARCHIVE","AS","ASC","AT","AUTHORIZATION","BETWEEN","BOTH","BUCKET","BUCKETS","BY","CACHE","CASCADE","CAST","CHANGE","CHECK","CLEAR","CLUSTER","CLUSTERED","CODEGEN","COLLATE","COLLECTION","COLUMN","COLUMNS","COMMENT","COMMIT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONSTRAINT","COST","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATA","DATABASE","DATABASES","DAY","DBPROPERTIES","DEFINED","DELETE","DELIMITED","DESC","DESCRIBE","DFS","DIRECTORIES","DIRECTORY","DISTINCT","DISTRIBUTE","DIV","DROP","ESCAPE","ESCAPED","EXCEPT","EXCHANGE","EXISTS","EXPORT","EXTENDED","EXTERNAL","EXTRACT","FALSE","FETCH","FIELDS","FILTER","FILEFORMAT","FIRST","FIRST_VALUE","FOLLOWING","FOR","FOREIGN","FORMAT","FORMATTED","FULL","FUNCTION","FUNCTIONS","GLOBAL","GRANT","GROUP","GROUPING","HOUR","IF","IGNORE","IMPORT","IN","INDEX","INDEXES","INNER","INPATH","INPUTFORMAT","INTERSECT","INTO","IS","ITEMS","KEYS","LAST","LAST_VALUE","LATERAL","LAZY","LEADING","LEFT","LIKE","LINES","LIST","LOCAL","LOCATION","LOCK","LOCKS","LOGICAL","MACRO","MATCHED","MERGE","MINUTE","MONTH","MSCK","NAMESPACE","NAMESPACES","NATURAL","NO","NOT","NULL","NULLS","OF","ONLY","OPTION","OPTIONS","OR","ORDER","OUT","OUTER","OUTPUTFORMAT","OVER","OVERLAPS","OVERLAY","OVERWRITE","OWNER","PARTITION","PARTITIONED","PARTITIONS","PERCENT","PLACING","POSITION","PRECEDING","PRIMARY","PRINCIPALS","PROPERTIES","PURGE","QUERY","RANGE","RECORDREADER","RECORDWRITER","RECOVER","REDUCE","REFERENCES","RENAME","REPAIR","REPLACE","RESPECT","RESTRICT","REVOKE","RIGHT","RLIKE","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","SCHEMA","SECOND","SELECT","SEMI","SEPARATED","SERDE","SERDEPROPERTIES","SESSION_USER","SETS","SHOW","SKEWED","SOME","SORT","SORTED","START","STATISTICS","STORED","STRATIFY","SUBSTR","SUBSTRING","TABLE","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","THEN","TO","TOUCH","TRAILING","TRANSACTION","TRANSACTIONS","TRIM","TRUE","TRUNCATE","UNARCHIVE","UNBOUNDED","UNCACHE","UNIQUE","UNKNOWN","UNLOCK","UNSET","USE","USER","USING","VIEW","WINDOW","YEAR","ANALYSE","ARRAY_ZIP","COALESCE","CONTAINS","CONVERT","DAYS","DAY_HOUR","DAY_MINUTE","DAY_SECOND","DECODE","DEFAULT","DISTINCTROW","ENCODE","EXPLODE","EXPLODE_OUTER","FIXED","GREATEST","GROUP_CONCAT","HOURS","HOUR_MINUTE","HOUR_SECOND","IFNULL","LEAST","LEVEL","MINUTE_SECOND","NULLIF","OFFSET","ON","OPTIMIZE","REGEXP","SEPARATOR","SIZE","TYPE","TYPES","UNSIGNED","VARIABLES","YEAR_MONTH"],oC=["ARRAY","BIGINT","BINARY","BOOLEAN","BYTE","CHAR","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","LONG","MAP","NUMERIC","REAL","SHORT","SMALLINT","STRING","STRUCT","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TINYINT","VARCHAR"],aC=["APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COUNT","COUNT","COUNT_IF","COUNT_MIN_SKETCH","COVAR_POP","COVAR_SAMP","EVERY","FIRST","FIRST_VALUE","GROUPING","GROUPING_ID","KURTOSIS","LAST","LAST_VALUE","MAX","MAX_BY","MEAN","MIN","MIN_BY","PERCENTILE","PERCENTILE","PERCENTILE_APPROX","SKEWNESS","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","CUME_DIST","DENSE_RANK","LAG","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","ARRAY","ARRAY_CONTAINS","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_UNION","ARRAYS_OVERLAP","ARRAYS_ZIP","FLATTEN","SEQUENCE","SHUFFLE","SLICE","SORT_ARRAY","ELEMENT_AT","ELEMENT_AT","MAP_CONCAT","MAP_ENTRIES","MAP_FROM_ARRAYS","MAP_FROM_ENTRIES","MAP_KEYS","MAP_VALUES","STR_TO_MAP","ADD_MONTHS","CURRENT_DATE","CURRENT_DATE","CURRENT_TIMESTAMP","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","DATE_ADD","DATE_FORMAT","DATE_FROM_UNIX_DATE","DATE_PART","DATE_SUB","DATE_TRUNC","DATEDIFF","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MAKE_DATE","MAKE_DT_INTERVAL","MAKE_INTERVAL","MAKE_TIMESTAMP","MAKE_YM_INTERVAL","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","NOW","QUARTER","SECOND","SESSION_WINDOW","TIMESTAMP_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_SECONDS","TO_DATE","TO_TIMESTAMP","TO_UNIX_TIMESTAMP","TO_UTC_TIMESTAMP","TRUNC","UNIX_DATE","UNIX_MICROS","UNIX_MILLIS","UNIX_SECONDS","UNIX_TIMESTAMP","WEEKDAY","WEEKOFYEAR","WINDOW","YEAR","FROM_JSON","GET_JSON_OBJECT","JSON_ARRAY_LENGTH","JSON_OBJECT_KEYS","JSON_TUPLE","SCHEMA_OF_JSON","TO_JSON","ABS","ACOS","ACOSH","AGGREGATE","ARRAY_SORT","ASCII","ASIN","ASINH","ASSERT_TRUE","ATAN","ATAN2","ATANH","BASE64","BIN","BIT_COUNT","BIT_GET","BIT_LENGTH","BROUND","BTRIM","CARDINALITY","CBRT","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONV","COS","COSH","COT","CRC32","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_USER","DEGREES","ELT","EXP","EXPM1","FACTORIAL","FIND_IN_SET","FLOOR","FORALL","FORMAT_NUMBER","FORMAT_STRING","FROM_CSV","GETBIT","HASH","HEX","HYPOT","INITCAP","INLINE","INLINE_OUTER","INPUT_FILE_BLOCK_LENGTH","INPUT_FILE_BLOCK_START","INPUT_FILE_NAME","INSTR","ISNAN","ISNOTNULL","ISNULL","JAVA_METHOD","LCASE","LEFT","LENGTH","LEVENSHTEIN","LN","LOCATE","LOG","LOG10","LOG1P","LOG2","LOWER","LPAD","LTRIM","MAP_FILTER","MAP_ZIP_WITH","MD5","MOD","MONOTONICALLY_INCREASING_ID","NAMED_STRUCT","NANVL","NEGATIVE","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARSE_URL","PI","PMOD","POSEXPLODE","POSEXPLODE_OUTER","POSITION","POSITIVE","POW","POWER","PRINTF","RADIANS","RAISE_ERROR","RAND","RANDN","RANDOM","REFLECT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_REPLACE","REPEAT","REPLACE","REVERSE","RIGHT","RINT","ROUND","RPAD","RTRIM","SCHEMA_OF_CSV","SENTENCES","SHA","SHA1","SHA2","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIGNUM","SIN","SINH","SOUNDEX","SPACE","SPARK_PARTITION_ID","SPLIT","SQRT","STACK","SUBSTR","SUBSTRING","SUBSTRING_INDEX","TAN","TANH","TO_CSV","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRY_ADD","TRY_DIVIDE","TYPEOF","UCASE","UNBASE64","UNHEX","UPPER","UUID","VERSION","WIDTH_BUCKET","XPATH","XPATH_BOOLEAN","XPATH_DOUBLE","XPATH_FLOAT","XPATH_INT","XPATH_LONG","XPATH_NUMBER","XPATH_SHORT","XPATH_STRING","XXHASH64","ZIP_WITH","CAST","COALESCE","NULLIF"],RC=U(["SELECT [ALL | DISTINCT]"]),iC=U(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT [INTO | OVERWRITE] [TABLE]","VALUES","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),MR=U(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]),jT=U(["CREATE [OR REPLACE] [GLOBAL TEMPORARY | TEMPORARY] VIEW [IF NOT EXISTS]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD COLUMNS","DROP {COLUMN | COLUMNS}","RENAME TO","RENAME COLUMN","ALTER COLUMN","TRUNCATE TABLE","LATERAL VIEW","ALTER DATABASE","ALTER VIEW","CREATE DATABASE","CREATE FUNCTION","DROP DATABASE","DROP FUNCTION","DROP VIEW","REPAIR TABLE","USE DATABASE","TABLESAMPLE","PIVOT","TRANSFORM","EXPLAIN","ADD FILE","ADD JAR","ANALYZE TABLE","CACHE TABLE","CLEAR CACHE","DESCRIBE DATABASE","DESCRIBE FUNCTION","DESCRIBE QUERY","DESCRIBE TABLE","LIST FILE","LIST JAR","REFRESH","REFRESH TABLE","REFRESH FUNCTION","RESET","SHOW COLUMNS","SHOW CREATE TABLE","SHOW DATABASES","SHOW FUNCTIONS","SHOW PARTITIONS","SHOW TABLE EXTENDED","SHOW TABLES","SHOW TBLPROPERTIES","SHOW VIEWS","UNCACHE TABLE"]),AC=U(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),SC=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT] {ANTI | SEMI} JOIN","NATURAL [LEFT] {ANTI | SEMI} JOIN"]),NC=U(["ON DELETE","ON UPDATE","CURRENT ROW","{ROWS | RANGE} BETWEEN"]),IC=U([]),OC={name:"spark",tokenizerOptions:{reservedSelect:RC,reservedClauses:[...iC,...MR,...jT],reservedSetOperations:AC,reservedJoins:SC,reservedKeywordPhrases:NC,reservedDataTypePhrases:IC,supportsXor:!0,reservedKeywords:lC,reservedDataTypes:oC,reservedFunctionNames:aC,extraParens:["[]"],stringTypes:["''-bs",'""-bs',{quote:"''-raw",prefixes:["R","X"],requirePrefix:!0},{quote:'""-raw',prefixes:["R","X"],requirePrefix:!0}],identTypes:["``"],identChars:{allowFirstCharNumber:!0},variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||","->"],postProcess:uC},formatOptions:{onelineClauses:[...MR,...jT],tabularOnelineClauses:jT}};function uC(e){return e.map((t,E)=>{const n=e[E-1]||yn,r=e[E+1]||yn;return QE.WINDOW(t)&&r.type===v.OPEN_PAREN?Object.assign(Object.assign({},t),{type:v.RESERVED_FUNCTION_NAME}):t.text==="ITEMS"&&t.type===v.RESERVED_KEYWORD&&!(n.text==="COLLECTION"&&r.text==="TERMINATED")?Object.assign(Object.assign({},t),{type:v.IDENTIFIER,text:t.raw}):t})}const cC=["ABS","CHANGES","CHAR","COALESCE","FORMAT","GLOB","HEX","IFNULL","IIF","INSTR","LAST_INSERT_ROWID","LENGTH","LIKE","LIKELIHOOD","LIKELY","LOAD_EXTENSION","LOWER","LTRIM","NULLIF","PRINTF","QUOTE","RANDOM","RANDOMBLOB","REPLACE","ROUND","RTRIM","SIGN","SOUNDEX","SQLITE_COMPILEOPTION_GET","SQLITE_COMPILEOPTION_USED","SQLITE_OFFSET","SQLITE_SOURCE_ID","SQLITE_VERSION","SUBSTR","SUBSTRING","TOTAL_CHANGES","TRIM","TYPEOF","UNICODE","UNLIKELY","UPPER","ZEROBLOB","AVG","COUNT","GROUP_CONCAT","MAX","MIN","SUM","TOTAL","DATE","TIME","DATETIME","JULIANDAY","UNIXEPOCH","STRFTIME","row_number","rank","dense_rank","percent_rank","cume_dist","ntile","lag","lead","first_value","last_value","nth_value","ACOS","ACOSH","ASIN","ASINH","ATAN","ATAN2","ATANH","CEIL","CEILING","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG","LOG10","LOG2","MOD","PI","POW","POWER","RADIANS","SIN","SINH","SQRT","TAN","TANH","TRUNC","JSON","JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_ARRAY_LENGTH","JSON_EXTRACT","JSON_INSERT","JSON_OBJECT","JSON_PATCH","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_TYPE","JSON_TYPE","JSON_VALID","JSON_QUOTE","JSON_GROUP_ARRAY","JSON_GROUP_OBJECT","JSON_EACH","JSON_TREE","CAST"],CC=["ABORT","ACTION","ADD","AFTER","ALL","ALTER","AND","ARE","ALWAYS","ANALYZE","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DO","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUDE","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FILTER","FIRST","FOLLOWING","FOR","FOREIGN","FROM","FULL","GENERATED","GLOB","GROUP","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LAST","LEFT","LIKE","LIMIT","MATCH","MATERIALIZED","NATURAL","NO","NOT","NOTHING","NOTNULL","NULL","NULLS","OF","OFFSET","ON","ONLY","OPEN","OR","ORDER","OTHERS","OUTER","OVER","PARTITION","PLAN","PRAGMA","PRECEDING","PRIMARY","QUERY","RAISE","RANGE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RETURNING","RIGHT","ROLLBACK","ROW","ROWS","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TIES","TO","TRANSACTION","TRIGGER","UNBOUNDED","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WINDOW","WITH","WITHOUT"],LC=["ANY","ARRAY","BLOB","CHARACTER","DECIMAL","INT","INTEGER","NATIVE CHARACTER","NCHAR","NUMERIC","NVARCHAR","REAL","TEXT","VARCHAR","VARYING CHARACTER"],_C=U(["SELECT [ALL | DISTINCT]"]),dC=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK] INTO","REPLACE INTO","VALUES","SET","RETURNING"]),UR=U(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]),kT=U(["CREATE [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]","UPDATE [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK]","ON CONFLICT","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME [COLUMN]","RENAME TO","SET SCHEMA"]),DC=U(["UNION [ALL]","EXCEPT","INTERSECT"]),PC=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),pC=U(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN","DO UPDATE"]),fC=U([]),mC={name:"sqlite",tokenizerOptions:{reservedSelect:_C,reservedClauses:[...dC,...UR,...kT],reservedSetOperations:DC,reservedJoins:PC,reservedKeywordPhrases:pC,reservedDataTypePhrases:fC,reservedKeywords:CC,reservedDataTypes:LC,reservedFunctionNames:cC,stringTypes:["''-qq",{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``","[]"],paramTypes:{positional:!0,numbered:["?"],named:[":","@","$"]},operators:["%","~","&","|","<<",">>","==","->","->>","||"]},formatOptions:{onelineClauses:[...UR,...kT],tabularOnelineClauses:kT}},MC=["GROUPING","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","ROW_NUMBER","POSITION","OCCURRENCES_REGEX","POSITION_REGEX","EXTRACT","CHAR_LENGTH","CHARACTER_LENGTH","OCTET_LENGTH","CARDINALITY","ABS","MOD","LN","EXP","POWER","SQRT","FLOOR","CEIL","CEILING","WIDTH_BUCKET","SUBSTRING","SUBSTRING_REGEX","UPPER","LOWER","CONVERT","TRANSLATE","TRANSLATE_REGEX","TRIM","OVERLAY","NORMALIZE","SPECIFICTYPE","CURRENT_DATE","CURRENT_TIME","LOCALTIME","CURRENT_TIMESTAMP","LOCALTIMESTAMP","COUNT","AVG","MAX","MIN","SUM","STDDEV_POP","STDDEV_SAMP","VAR_SAMP","VAR_POP","COLLECT","FUSION","INTERSECTION","COVAR_POP","COVAR_SAMP","CORR","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","PERCENTILE_CONT","PERCENTILE_DISC","CAST","COALESCE","NULLIF","ROUND","SIN","COS","TAN","ASIN","ACOS","ATAN"],UC=["ALL","ALLOCATE","ALTER","ANY","ARE","AS","ASC","ASENSITIVE","ASYMMETRIC","AT","ATOMIC","AUTHORIZATION","BEGIN","BETWEEN","BOTH","BY","CALL","CALLED","CASCADED","CAST","CHECK","CLOSE","COALESCE","COLLATE","COLUMN","COMMIT","CONDITION","CONNECT","CONSTRAINT","CORRESPONDING","CREATE","CROSS","CUBE","CURRENT","CURRENT_CATALOG","CURRENT_DEFAULT_TRANSFORM_GROUP","CURRENT_PATH","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TRANSFORM_GROUP_FOR_TYPE","CURRENT_USER","CURSOR","CYCLE","DEALLOCATE","DAY","DECLARE","DEFAULT","DELETE","DEREF","DESC","DESCRIBE","DETERMINISTIC","DISCONNECT","DISTINCT","DROP","DYNAMIC","EACH","ELEMENT","END-EXEC","ESCAPE","EVERY","EXCEPT","EXEC","EXECUTE","EXISTS","EXTERNAL","FALSE","FETCH","FILTER","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GET","GLOBAL","GRANT","GROUP","HAVING","HOLD","HOUR","IDENTITY","IN","INDICATOR","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTO","IS","LANGUAGE","LARGE","LATERAL","LEADING","LEFT","LIKE","LIKE_REGEX","LOCAL","MATCH","MEMBER","MERGE","METHOD","MINUTE","MODIFIES","MODULE","MONTH","NATURAL","NEW","NO","NONE","NOT","NULL","NULLIF","OF","OLD","ON","ONLY","OPEN","ORDER","OUT","OUTER","OVER","OVERLAPS","PARAMETER","PARTITION","PRECISION","PREPARE","PRIMARY","PROCEDURE","RANGE","READS","REAL","RECURSIVE","REF","REFERENCES","REFERENCING","RELEASE","RESULT","RETURN","RETURNS","REVOKE","RIGHT","ROLLBACK","ROLLUP","ROW","ROWS","SAVEPOINT","SCOPE","SCROLL","SEARCH","SECOND","SELECT","SENSITIVE","SESSION_USER","SET","SIMILAR","SOME","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","START","STATIC","SUBMULTISET","SYMMETRIC","SYSTEM","SYSTEM_USER","TABLE","TABLESAMPLE","THEN","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSLATION","TREAT","TRIGGER","TRUE","UESCAPE","UNION","UNIQUE","UNKNOWN","UNNEST","UPDATE","USER","USING","VALUE","VALUES","WHENEVER","WINDOW","WITHIN","WITHOUT","YEAR"],hC=["ARRAY","BIGINT","BINARY LARGE OBJECT","BINARY VARYING","BINARY","BLOB","BOOLEAN","CHAR LARGE OBJECT","CHAR VARYING","CHAR","CHARACTER LARGE OBJECT","CHARACTER VARYING","CHARACTER","CLOB","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MULTISET","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER LARGE OBJECT","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR LARGE OBJECT","NCHAR VARYING","NCHAR","NCLOB","NUMERIC","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],xC=U(["SELECT [ALL | DISTINCT]"]),yC=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET"]),hR=U(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]),JT=U(["CREATE [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","DELETE FROM","DROP TABLE","ALTER TABLE","ADD COLUMN","DROP [COLUMN]","RENAME COLUMN","RENAME TO","ALTER [COLUMN]","{SET | DROP} DEFAULT","ADD SCOPE","DROP SCOPE {CASCADE | RESTRICT}","RESTART WITH","TRUNCATE TABLE","SET SCHEMA"]),GC=U(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),gC=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),HC=U(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),vC=U([]),BC={name:"sql",tokenizerOptions:{reservedSelect:xC,reservedClauses:[...yC,...hR,...JT],reservedSetOperations:GC,reservedJoins:gC,reservedKeywordPhrases:HC,reservedDataTypePhrases:vC,reservedKeywords:UC,reservedDataTypes:hC,reservedFunctionNames:MC,stringTypes:[{quote:"''-qq-bs",prefixes:["N","U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``"],paramTypes:{positional:!0},operators:["||"]},formatOptions:{onelineClauses:[...hR,...JT],tabularOnelineClauses:JT}},FC=["ABS","ACOS","ALL_MATCH","ANY_MATCH","APPROX_DISTINCT","APPROX_MOST_FREQUENT","APPROX_PERCENTILE","APPROX_SET","ARBITRARY","ARRAYS_OVERLAP","ARRAY_AGG","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_SORT","ARRAY_UNION","ASIN","ATAN","ATAN2","AT_TIMEZONE","AVG","BAR","BETA_CDF","BING_TILE","BING_TILES_AROUND","BING_TILE_AT","BING_TILE_COORDINATES","BING_TILE_POLYGON","BING_TILE_QUADKEY","BING_TILE_ZOOM_LEVEL","BITWISE_AND","BITWISE_AND_AGG","BITWISE_LEFT_SHIFT","BITWISE_NOT","BITWISE_OR","BITWISE_OR_AGG","BITWISE_RIGHT_SHIFT","BITWISE_RIGHT_SHIFT_ARITHMETIC","BITWISE_XOR","BIT_COUNT","BOOL_AND","BOOL_OR","CARDINALITY","CAST","CBRT","CEIL","CEILING","CHAR2HEXINT","CHECKSUM","CHR","CLASSIFY","COALESCE","CODEPOINT","COLOR","COMBINATIONS","CONCAT","CONCAT_WS","CONTAINS","CONTAINS_SEQUENCE","CONVEX_HULL_AGG","CORR","COS","COSH","COSINE_SIMILARITY","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CRC32","CUME_DIST","CURRENT_CATALOG","CURRENT_DATE","CURRENT_GROUPS","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","DATE","DATE_ADD","DATE_DIFF","DATE_FORMAT","DATE_PARSE","DATE_TRUNC","DAY","DAY_OF_MONTH","DAY_OF_WEEK","DAY_OF_YEAR","DEGREES","DENSE_RANK","DOW","DOY","E","ELEMENT_AT","EMPTY_APPROX_SET","EVALUATE_CLASSIFIER_PREDICTIONS","EVERY","EXP","EXTRACT","FEATURES","FILTER","FIRST_VALUE","FLATTEN","FLOOR","FORMAT","FORMAT_DATETIME","FORMAT_NUMBER","FROM_BASE","FROM_BASE32","FROM_BASE64","FROM_BASE64URL","FROM_BIG_ENDIAN_32","FROM_BIG_ENDIAN_64","FROM_ENCODED_POLYLINE","FROM_GEOJSON_GEOMETRY","FROM_HEX","FROM_IEEE754_32","FROM_IEEE754_64","FROM_ISO8601_DATE","FROM_ISO8601_TIMESTAMP","FROM_ISO8601_TIMESTAMP_NANOS","FROM_UNIXTIME","FROM_UNIXTIME_NANOS","FROM_UTF8","GEOMETRIC_MEAN","GEOMETRY_FROM_HADOOP_SHAPE","GEOMETRY_INVALID_REASON","GEOMETRY_NEAREST_POINTS","GEOMETRY_TO_BING_TILES","GEOMETRY_UNION","GEOMETRY_UNION_AGG","GREATEST","GREAT_CIRCLE_DISTANCE","HAMMING_DISTANCE","HASH_COUNTS","HISTOGRAM","HMAC_MD5","HMAC_SHA1","HMAC_SHA256","HMAC_SHA512","HOUR","HUMAN_READABLE_SECONDS","IF","INDEX","INFINITY","INTERSECTION_CARDINALITY","INVERSE_BETA_CDF","INVERSE_NORMAL_CDF","IS_FINITE","IS_INFINITE","IS_JSON_SCALAR","IS_NAN","JACCARD_INDEX","JSON_ARRAY_CONTAINS","JSON_ARRAY_GET","JSON_ARRAY_LENGTH","JSON_EXISTS","JSON_EXTRACT","JSON_EXTRACT_SCALAR","JSON_FORMAT","JSON_PARSE","JSON_QUERY","JSON_SIZE","JSON_VALUE","KURTOSIS","LAG","LAST_DAY_OF_MONTH","LAST_VALUE","LEAD","LEARN_CLASSIFIER","LEARN_LIBSVM_CLASSIFIER","LEARN_LIBSVM_REGRESSOR","LEARN_REGRESSOR","LEAST","LENGTH","LEVENSHTEIN_DISTANCE","LINE_INTERPOLATE_POINT","LINE_INTERPOLATE_POINTS","LINE_LOCATE_POINT","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","LUHN_CHECK","MAKE_SET_DIGEST","MAP","MAP_AGG","MAP_CONCAT","MAP_ENTRIES","MAP_FILTER","MAP_FROM_ENTRIES","MAP_KEYS","MAP_UNION","MAP_VALUES","MAP_ZIP_WITH","MAX","MAX_BY","MD5","MERGE","MERGE_SET_DIGEST","MILLISECOND","MIN","MINUTE","MIN_BY","MOD","MONTH","MULTIMAP_AGG","MULTIMAP_FROM_ENTRIES","MURMUR3","NAN","NGRAMS","NONE_MATCH","NORMALIZE","NORMAL_CDF","NOW","NTH_VALUE","NTILE","NULLIF","NUMERIC_HISTOGRAM","OBJECTID","OBJECTID_TIMESTAMP","PARSE_DATA_SIZE","PARSE_DATETIME","PARSE_DURATION","PERCENT_RANK","PI","POSITION","POW","POWER","QDIGEST_AGG","QUARTER","RADIANS","RAND","RANDOM","RANK","REDUCE","REDUCE_AGG","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGRESS","REGR_INTERCEPT","REGR_SLOPE","RENDER","REPEAT","REPLACE","REVERSE","RGB","ROUND","ROW_NUMBER","RPAD","RTRIM","SECOND","SEQUENCE","SHA1","SHA256","SHA512","SHUFFLE","SIGN","SIMPLIFY_GEOMETRY","SIN","SKEWNESS","SLICE","SOUNDEX","SPATIAL_PARTITIONING","SPATIAL_PARTITIONS","SPLIT","SPLIT_PART","SPLIT_TO_MAP","SPLIT_TO_MULTIMAP","SPOOKY_HASH_V2_32","SPOOKY_HASH_V2_64","SQRT","STARTS_WITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRPOS","ST_AREA","ST_ASBINARY","ST_ASTEXT","ST_BOUNDARY","ST_BUFFER","ST_CENTROID","ST_CONTAINS","ST_CONVEXHULL","ST_COORDDIM","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_ENDPOINT","ST_ENVELOPE","ST_ENVELOPEASPTS","ST_EQUALS","ST_EXTERIORRING","ST_GEOMETRIES","ST_GEOMETRYFROMTEXT","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMBINARY","ST_INTERIORRINGN","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISRING","ST_ISSIMPLE","ST_ISVALID","ST_LENGTH","ST_LINEFROMTEXT","ST_LINESTRING","ST_MULTIPOINT","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINT","ST_POINTN","ST_POINTS","ST_POLYGON","ST_RELATE","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_TOUCHES","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","SUBSTR","SUBSTRING","SUM","TAN","TANH","TDIGEST_AGG","TIMESTAMP_OBJECTID","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO_BASE","TO_BASE32","TO_BASE64","TO_BASE64URL","TO_BIG_ENDIAN_32","TO_BIG_ENDIAN_64","TO_CHAR","TO_DATE","TO_ENCODED_POLYLINE","TO_GEOJSON_GEOMETRY","TO_GEOMETRY","TO_HEX","TO_IEEE754_32","TO_IEEE754_64","TO_ISO8601","TO_MILLISECONDS","TO_SPHERICAL_GEOGRAPHY","TO_TIMESTAMP","TO_UNIXTIME","TO_UTF8","TRANSFORM","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRIM_ARRAY","TRUNCATE","TRY","TRY_CAST","TYPEOF","UPPER","URL_DECODE","URL_ENCODE","URL_EXTRACT_FRAGMENT","URL_EXTRACT_HOST","URL_EXTRACT_PARAMETER","URL_EXTRACT_PATH","URL_EXTRACT_PORT","URL_EXTRACT_PROTOCOL","URL_EXTRACT_QUERY","UUID","VALUES_AT_QUANTILES","VALUE_AT_QUANTILE","VARIANCE","VAR_POP","VAR_SAMP","VERSION","WEEK","WEEK_OF_YEAR","WIDTH_BUCKET","WILSON_INTERVAL_LOWER","WILSON_INTERVAL_UPPER","WITH_TIMEZONE","WORD_STEM","XXHASH64","YEAR","YEAR_OF_WEEK","YOW","ZIP","ZIP_WITH","CLASSIFIER","FIRST","LAST","MATCH_NUMBER","NEXT","PERMUTE","PREV"],YC=["ABSENT","ADD","ADMIN","AFTER","ALL","ALTER","ANALYZE","AND","ANY","AS","ASC","AT","AUTHORIZATION","BERNOULLI","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CATALOGS","COLUMN","COLUMNS","COMMENT","COMMIT","COMMITTED","CONDITIONAL","CONSTRAINT","COPARTITION","CREATE","CROSS","CUBE","CURRENT","CURRENT_PATH","CURRENT_ROLE","DATA","DEALLOCATE","DEFAULT","DEFINE","DEFINER","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DISTINCT","DISTRIBUTED","DOUBLE","DROP","ELSE","EMPTY","ENCODING","END","ERROR","ESCAPE","EXCEPT","EXCLUDING","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FINAL","FIRST","FOLLOWING","FOR","FROM","FULL","FUNCTIONS","GRANT","GRANTED","GRANTS","GRAPHVIZ","GROUP","GROUPING","GROUPS","HAVING","IGNORE","IN","INCLUDING","INITIAL","INNER","INPUT","INSERT","INTERSECT","INTERVAL","INTO","INVOKER","IO","IS","ISOLATION","JOIN","JSON","JSON_ARRAY","JSON_OBJECT","KEEP","KEY","KEYS","LAST","LATERAL","LEADING","LEFT","LEVEL","LIKE","LIMIT","LOCAL","LOGICAL","MATCH","MATCHED","MATCHES","MATCH_RECOGNIZE","MATERIALIZED","MEASURES","NATURAL","NEXT","NFC","NFD","NFKC","NFKD","NO","NONE","NOT","NULL","NULLS","OBJECT","OF","OFFSET","OMIT","ON","ONE","ONLY","OPTION","OR","ORDER","ORDINALITY","OUTER","OUTPUT","OVER","OVERFLOW","PARTITION","PARTITIONS","PASSING","PAST","PATH","PATTERN","PER","PERMUTE","PRECEDING","PRECISION","PREPARE","PRIVILEGES","PROPERTIES","PRUNE","QUOTES","RANGE","READ","RECURSIVE","REFRESH","RENAME","REPEATABLE","RESET","RESPECT","RESTRICT","RETURNING","REVOKE","RIGHT","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","RUNNING","SCALAR","SCHEMA","SCHEMAS","SECURITY","SEEK","SELECT","SERIALIZABLE","SESSION","SET","SETS","SHOW","SKIP","SOME","START","STATS","STRING","SUBSET","SYSTEM","TABLE","TABLES","TABLESAMPLE","TEXT","THEN","TIES","TIME","TIMESTAMP","TO","TRAILING","TRANSACTION","TRUE","TYPE","UESCAPE","UNBOUNDED","UNCOMMITTED","UNCONDITIONAL","UNION","UNIQUE","UNKNOWN","UNMATCHED","UNNEST","UPDATE","USE","USER","USING","UTF16","UTF32","UTF8","VALIDATE","VALUE","VALUES","VERBOSE","VIEW","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","WORK","WRAPPER","WRITE","ZONE"],wC=["BIGINT","INT","INTEGER","SMALLINT","TINYINT","BOOLEAN","DATE","DECIMAL","REAL","DOUBLE","HYPERLOGLOG","QDIGEST","TDIGEST","P4HYPERLOGLOG","INTERVAL","TIMESTAMP","TIME","VARBINARY","VARCHAR","CHAR","ROW","ARRAY","MAP","JSON","JSON2016","IPADDRESS","GEOMETRY","UUID","SETDIGEST","JONIREGEXP","RE2JREGEXP","LIKEPATTERN","COLOR","CODEPOINTS","FUNCTION","JSONPATH"],VC=U(["SELECT [ALL | DISTINCT]"]),bC=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET","MATCH_RECOGNIZE","MEASURES","ONE ROW PER MATCH","ALL ROWS PER MATCH","AFTER MATCH","PATTERN","SUBSET","DEFINE"]),xR=U(["CREATE TABLE [IF NOT EXISTS]"]),zT=U(["CREATE [OR REPLACE] [MATERIALIZED] VIEW","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME COLUMN [IF EXISTS]","RENAME TO","SET AUTHORIZATION [USER | ROLE]","SET PROPERTIES","EXECUTE","TRUNCATE TABLE","ALTER SCHEMA","ALTER MATERIALIZED VIEW","ALTER VIEW","CREATE SCHEMA","CREATE ROLE","DROP SCHEMA","DROP MATERIALIZED VIEW","DROP VIEW","DROP ROLE","EXPLAIN","ANALYZE","EXPLAIN ANALYZE","EXPLAIN ANALYZE VERBOSE","USE","DESCRIBE INPUT","DESCRIBE OUTPUT","REFRESH MATERIALIZED VIEW","RESET SESSION","SET SESSION","SET PATH","SET TIME ZONE","SHOW GRANTS","SHOW CREATE TABLE","SHOW CREATE SCHEMA","SHOW CREATE VIEW","SHOW CREATE MATERIALIZED VIEW","SHOW TABLES","SHOW SCHEMAS","SHOW CATALOGS","SHOW COLUMNS","SHOW STATS FOR","SHOW ROLES","SHOW CURRENT ROLES","SHOW ROLE GRANTS","SHOW FUNCTIONS","SHOW SESSION"]),WC=U(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),XC=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),KC=U(["{ROWS | RANGE | GROUPS} BETWEEN","IS [NOT] DISTINCT FROM"]),$C=U([]),jC={name:"trino",tokenizerOptions:{reservedSelect:VC,reservedClauses:[...bC,...xR,...zT],reservedSetOperations:WC,reservedJoins:XC,reservedKeywordPhrases:KC,reservedDataTypePhrases:$C,reservedKeywords:YC,reservedDataTypes:wC,reservedFunctionNames:FC,extraParens:["[]","{}"],stringTypes:[{quote:"''-qq",prefixes:["U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq'],paramTypes:{positional:!0},operators:["%","->","=>",":","||","|","^","$"]},formatOptions:{onelineClauses:[...xR,...zT],tabularOnelineClauses:zT}},kC=["APPROX_COUNT_DISTINCT","AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","STDEV","STDEVP","SUM","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","Collation - COLLATIONPROPERTY","Collation - TERTIARY_WEIGHTS","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","@@CURSOR_ROWS","@@FETCH_STATUS","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","@@DATEFIRST","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_TIMEZONE_ID","DATEADD","DATEDIFF","DATEDIFF_BIG","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","JSON","ISJSON","JSON_VALUE","JSON_QUERY","JSON_MODIFY","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","CHOOSE","GREATEST","IIF","LEAST","@@PROCID","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FILEPROPERTYEX","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","NEXT VALUE FOR","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","DATABASE_PRINCIPAL_ID","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHARINDEX","CONCAT","CONCAT_WS","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STRING_AGG","STRING_ESCAPE","STUFF","SUBSTRING","TRANSLATE","TRIM","UNICODE","UPPER","$PARTITION","@@ERROR","@@IDENTITY","@@PACK_RECEIVED","@@ROWCOUNT","@@TRANCOUNT","BINARY_CHECKSUM","CHECKSUM","COMPRESS","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","CURRENT_TRANSACTION_ID","DECOMPRESS","ERROR_LINE","ERROR_MESSAGE","ERROR_NUMBER","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GET_FILESTREAM_TRANSACTION_CONTEXT","GETANSINULL","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","SESSION_CONTEXT","XACT_STATE","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACK_SENT","@@PACKET_ERRORS","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","COALESCE","NULLIF"],JC=["ADD","ALL","ALTER","AND","ANY","AS","ASC","AUTHORIZATION","BACKUP","BEGIN","BETWEEN","BREAK","BROWSE","BULK","BY","CASCADE","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLUMN","COMMIT","COMPUTE","CONSTRAINT","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DBCC","DEALLOCATE","DECLARE","DEFAULT","DELETE","DENY","DESC","DISK","DISTINCT","DISTRIBUTED","DROP","DUMP","ERRLVL","ESCAPE","EXEC","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FILE","FILLFACTOR","FOR","FOREIGN","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GOTO","GRANT","GROUP","HAVING","HOLDLOCK","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IN","INDEX","INNER","INSERT","INTERSECT","INTO","IS","JOIN","KEY","KILL","LEFT","LIKE","LINENO","LOAD","MERGE","NOCHECK","NONCLUSTERED","NOT","NULL","NULLIF","OF","OFF","OFFSETS","ON","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OUTER","OVER","PERCENT","PIVOT","PLAN","PRIMARY","PRINT","PROC","PROCEDURE","PUBLIC","RAISERROR","READ","READTEXT","RECONFIGURE","REFERENCES","REPLICATION","RESTORE","RESTRICT","RETURN","REVERT","REVOKE","RIGHT","ROLLBACK","ROWCOUNT","ROWGUIDCOL","RULE","SAVE","SCHEMA","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION_USER","SET","SETUSER","SHUTDOWN","SOME","STATISTICS","SYSTEM_USER","TABLE","TABLESAMPLE","TEXTSIZE","THEN","TO","TOP","TRAN","TRANSACTION","TRIGGER","TRUNCATE","TRY_CONVERT","TSEQUAL","UNION","UNIQUE","UNPIVOT","UPDATE","UPDATETEXT","USE","USER","VALUES","VIEW","WAITFOR","WHERE","WHILE","WITH","WITHIN GROUP","WRITETEXT","$ACTION"],zC=["BINARY","BIT","CHAR","CHAR","CHARACTER","DATE","DATETIME2","DATETIMEOFFSET","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","NATIONAL","NCHAR","NUMERIC","NVARCHAR","PRECISION","REAL","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],QC=U(["SELECT [ALL | DISTINCT]"]),ZC=U(["WITH","INTO","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","OFFSET","FETCH {FIRST | NEXT}","FOR {BROWSE | XML | JSON}","OPTION","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY TARGET | BY SOURCE] [THEN]","UPDATE SET"]),yR=U(["CREATE TABLE"]),QT=U(["CREATE [OR ALTER] [MATERIALIZED] VIEW","UPDATE","WHERE CURRENT OF","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD","DROP COLUMN [IF EXISTS]","ALTER COLUMN","TRUNCATE TABLE","CREATE [UNIQUE] [CLUSTERED] INDEX","CREATE DATABASE","ALTER DATABASE","DROP DATABASE [IF EXISTS]","CREATE [OR ALTER] [PARTITION] {FUNCTION | PROCEDURE | PROC}","ALTER [PARTITION] {FUNCTION | PROCEDURE | PROC}","DROP [PARTITION] {FUNCTION | PROCEDURE | PROC} [IF EXISTS]","GO","USE","ADD SENSITIVITY CLASSIFICATION","ADD SIGNATURE","AGGREGATE","ANSI_DEFAULTS","ANSI_NULLS","ANSI_NULL_DFLT_OFF","ANSI_NULL_DFLT_ON","ANSI_PADDING","ANSI_WARNINGS","APPLICATION ROLE","ARITHABORT","ARITHIGNORE","ASSEMBLY","ASYMMETRIC KEY","AUTHORIZATION","AVAILABILITY GROUP","BACKUP","BACKUP CERTIFICATE","BACKUP MASTER KEY","BACKUP SERVICE MASTER KEY","BEGIN CONVERSATION TIMER","BEGIN DIALOG CONVERSATION","BROKER PRIORITY","BULK INSERT","CERTIFICATE","CLOSE MASTER KEY","CLOSE SYMMETRIC KEY","COLUMN ENCRYPTION KEY","COLUMN MASTER KEY","COLUMNSTORE INDEX","CONCAT_NULL_YIELDS_NULL","CONTEXT_INFO","CONTRACT","CREDENTIAL","CRYPTOGRAPHIC PROVIDER","CURSOR_CLOSE_ON_COMMIT","DATABASE","DATABASE AUDIT SPECIFICATION","DATABASE ENCRYPTION KEY","DATABASE HADR","DATABASE SCOPED CONFIGURATION","DATABASE SCOPED CREDENTIAL","DATABASE SET","DATEFIRST","DATEFORMAT","DEADLOCK_PRIORITY","DENY","DENY XML","DISABLE TRIGGER","ENABLE TRIGGER","END CONVERSATION","ENDPOINT","EVENT NOTIFICATION","EVENT SESSION","EXECUTE AS","EXTERNAL DATA SOURCE","EXTERNAL FILE FORMAT","EXTERNAL LANGUAGE","EXTERNAL LIBRARY","EXTERNAL RESOURCE POOL","EXTERNAL TABLE","FIPS_FLAGGER","FMTONLY","FORCEPLAN","FULLTEXT CATALOG","FULLTEXT INDEX","FULLTEXT STOPLIST","GET CONVERSATION GROUP","GET_TRANSMISSION_STATUS","GRANT","GRANT XML","IDENTITY_INSERT","IMPLICIT_TRANSACTIONS","INDEX","LANGUAGE","LOCK_TIMEOUT","LOGIN","MASTER KEY","MESSAGE TYPE","MOVE CONVERSATION","NOCOUNT","NOEXEC","NUMERIC_ROUNDABORT","OFFSETS","OPEN MASTER KEY","OPEN SYMMETRIC KEY","PARSEONLY","PARTITION SCHEME","QUERY_GOVERNOR_COST_LIMIT","QUEUE","QUOTED_IDENTIFIER","RECEIVE","REMOTE SERVICE BINDING","REMOTE_PROC_TRANSACTIONS","RESOURCE GOVERNOR","RESOURCE POOL","RESTORE","RESTORE FILELISTONLY","RESTORE HEADERONLY","RESTORE LABELONLY","RESTORE MASTER KEY","RESTORE REWINDONLY","RESTORE SERVICE MASTER KEY","RESTORE VERIFYONLY","REVERT","REVOKE","REVOKE XML","ROLE","ROUTE","ROWCOUNT","RULE","SCHEMA","SEARCH PROPERTY LIST","SECURITY POLICY","SELECTIVE XML INDEX","SEND","SENSITIVITY CLASSIFICATION","SEQUENCE","SERVER AUDIT","SERVER AUDIT SPECIFICATION","SERVER CONFIGURATION","SERVER ROLE","SERVICE","SERVICE MASTER KEY","SETUSER","SHOWPLAN_ALL","SHOWPLAN_TEXT","SHOWPLAN_XML","SIGNATURE","SPATIAL INDEX","STATISTICS","STATISTICS IO","STATISTICS PROFILE","STATISTICS TIME","STATISTICS XML","SYMMETRIC KEY","SYNONYM","TABLE","TABLE IDENTITY","TEXTSIZE","TRANSACTION ISOLATION LEVEL","TRIGGER","TYPE","UPDATE STATISTICS","USER","WORKLOAD GROUP","XACT_ABORT","XML INDEX","XML SCHEMA COLLECTION"]),qC=U(["UNION [ALL]","EXCEPT","INTERSECT"]),eL=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","{CROSS | OUTER} APPLY"]),tL=U(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),EL=U([]),nL={name:"transactsql",tokenizerOptions:{reservedSelect:QC,reservedClauses:[...ZC,...yR,...QT],reservedSetOperations:qC,reservedJoins:eL,reservedKeywordPhrases:tL,reservedDataTypePhrases:EL,reservedKeywords:JC,reservedDataTypes:zC,reservedFunctionNames:kC,nestedBlockComments:!0,stringTypes:[{quote:"''-qq",prefixes:["N"]},"{}"],identTypes:['""-qq',"[]"],identChars:{first:"#@",rest:"#@$"},paramTypes:{named:["@"],quoted:["@"]},operators:["%","&","|","^","~","!<","!>","+=","-=","*=","/=","%=","|=","&=","^=","::",":"],propertyAccessOperators:[".."]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...yR,...QT],tabularOnelineClauses:QT}},rL=["ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","_BINARY","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","EXTRA_JOIN","FALSE","FETCH","FOR","FORCE","FORCE_COMPILED_MODE","FORCE_INTERPRETER_MODE","FOREIGN","FROM","FULL","FULLTEXT","GRANT","GROUP","HAVING","HEARTBEAT_NO_LOGGING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","_INTERNAL_DYNAMIC_TYPECAST","INTERSECT","INTERVAL","INTO","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MATCH","MAXVALUE","MINUS","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NO_QUERY_REWRITE","NOT","NO_WRITE_TO_BINLOG","NO_QUERY_REWRITE","NULL","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","RETURN","REVOKE","RIGHT","RIGHT_ANTI_JOIN","RIGHT_SEMI_JOIN","RIGHT_STRAIGHT_JOIN","RLIKE","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SEMI_JOIN","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQL_BIG_RESULT","SQL_BUFFER_RESULT","SQL_CACHE","SQL_CALC_FOUND_ROWS","SQLEXCEPTION","SQL_NO_CACHE","SQL_NO_LOGGING","SQL_SMALL_RESULT","SQLSTATE","SQLWARNING","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNBOUNDED","UNDO","UNION","UNIQUE","UNLOCK","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","_UTF8","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WRITE","XOR","YEAR_MONTH","ZEROFILL"],sL=["BIGINT","BINARY","BIT","BLOB","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","UNSIGNED","VARBINARY","VARCHAR","VARCHARACTER","YEAR"],TL=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_COUNT_DISTINCT_ACCUMULATE","APPROX_COUNT_DISTINCT_COMBINE","APPROX_COUNT_DISTINCT_ESTIMATE","APPROX_GEOGRAPHY_INTERSECTS","APPROX_PERCENTILE","ASCII","ASIN","ATAN","ATAN2","AVG","BIN","BINARY","BIT_AND","BIT_COUNT","BIT_OR","BIT_XOR","CAST","CEIL","CEILING","CHAR","CHARACTER_LENGTH","CHAR_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COLLECT","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATEDIFF","DATE_FORMAT","DATE_SUB","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DENSE_RANK","DIV","DOT_PRODUCT","ELT","EUCLIDEAN_DISTANCE","EXP","EXTRACT","FIELD","FIRST","FIRST_VALUE","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOGRAPHY_AREA","GEOGRAPHY_CONTAINS","GEOGRAPHY_DISTANCE","GEOGRAPHY_INTERSECTS","GEOGRAPHY_LATITUDE","GEOGRAPHY_LENGTH","GEOGRAPHY_LONGITUDE","GEOGRAPHY_POINT","GEOGRAPHY_WITHIN_DISTANCE","GEOMETRY_AREA","GEOMETRY_CONTAINS","GEOMETRY_DISTANCE","GEOMETRY_FILTER","GEOMETRY_INTERSECTS","GEOMETRY_LENGTH","GEOMETRY_POINT","GEOMETRY_WITHIN_DISTANCE","GEOMETRY_X","GEOMETRY_Y","GREATEST","GROUPING","GROUP_CONCAT","HEX","HIGHLIGHT","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INITCAP","INSERT","INSTR","INTERVAL","IS","IS NULL","JSON_AGG","JSON_ARRAY_CONTAINS_DOUBLE","JSON_ARRAY_CONTAINS_JSON","JSON_ARRAY_CONTAINS_STRING","JSON_ARRAY_PUSH_DOUBLE","JSON_ARRAY_PUSH_JSON","JSON_ARRAY_PUSH_STRING","JSON_DELETE_KEY","JSON_EXTRACT_DOUBLE","JSON_EXTRACT_JSON","JSON_EXTRACT_STRING","JSON_EXTRACT_BIGINT","JSON_GET_TYPE","JSON_LENGTH","JSON_SET_DOUBLE","JSON_SET_JSON","JSON_SET_STRING","JSON_SPLICE_DOUBLE","JSON_SPLICE_JSON","JSON_SPLICE_STRING","LAG","LAST_DAY","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LN","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LPAD","LTRIM","MATCH","MAX","MD5","MEDIAN","MICROSECOND","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","NOT","NOW","NTH_VALUE","NTILE","NULLIF","OCTET_LENGTH","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIVOT","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANK","REGEXP","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCALAR","SCHEMA","SEC_TO_TIME","SHA1","SHA2","SIGMOID","SIGN","SIN","SLEEP","SPLIT","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUM","SYS_GUID","TAN","TIME","TIMEDIFF","TIME_BUCKET","TIME_FORMAT","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_JSON","TO_NUMBER","TO_SECONDS","TO_TIMESTAMP","TRIM","TRUNC","TRUNCATE","UCASE","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","VALUES","VARIANCE","VAR_POP","VAR_SAMP","VECTOR_SUB","VERSION","WEEK","WEEKDAY","WEEKOFYEAR","YEAR"],lL=U(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),oL=U(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [IGNORE] [INTO]","VALUES","REPLACE [INTO]","ON DUPLICATE KEY UPDATE","SET","CREATE [OR REPLACE] [TEMPORARY] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] [EXTERNAL] FUNCTION"]),GR=U(["CREATE [ROWSTORE] [REFERENCE | TEMPORARY | GLOBAL TEMPORARY] TABLE [IF NOT EXISTS]"]),ZT=U(["CREATE VIEW","UPDATE","DELETE [FROM]","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] TABLE","ADD [COLUMN]","ADD [UNIQUE] {INDEX | KEY}","DROP [COLUMN]","MODIFY [COLUMN]","CHANGE","RENAME [TO | AS]","TRUNCATE [TABLE]","ADD AGGREGATOR","ADD LEAF","AGGREGATOR SET AS MASTER","ALTER DATABASE","ALTER PIPELINE","ALTER RESOURCE POOL","ALTER USER","ALTER VIEW","ANALYZE TABLE","ATTACH DATABASE","ATTACH LEAF","ATTACH LEAF ALL","BACKUP DATABASE","BINLOG","BOOTSTRAP AGGREGATOR","CACHE INDEX","CALL","CHANGE","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK BLOB CHECKSUM","CHECK TABLE","CHECKSUM TABLE","CLEAR ORPHAN DATABASES","CLONE","COMMIT","CREATE DATABASE","CREATE GROUP","CREATE INDEX","CREATE LINK","CREATE MILESTONE","CREATE PIPELINE","CREATE RESOURCE POOL","CREATE ROLE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DETACH DATABASE","DETACH PIPELINE","DROP DATABASE","DROP FUNCTION","DROP INDEX","DROP LINK","DROP PIPELINE","DROP PROCEDURE","DROP RESOURCE POOL","DROP ROLE","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","FORCE","GRANT","HANDLER","HELP","KILL CONNECTION","KILLALL QUERIES","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","REBALANCE PARTITIONS","RELEASE SAVEPOINT","REMOVE AGGREGATOR","REMOVE LEAF","REPAIR TABLE","REPLACE","REPLICATE DATABASE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","RESTORE DATABASE","RESTORE REDUNDANCY","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE FUNCTION","SHOW CREATE PIPELINE","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SNAPSHOT DATABASE","SOURCE_POS_WAIT","START GROUP_REPLICATION","START PIPELINE","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP PIPELINE","STOP REPLICA","STOP REPLICATING","STOP SLAVE","TEST PIPELINE","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),aL=U(["UNION [ALL | DISTINCT]","EXCEPT","INTERSECT","MINUS"]),RL=U(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),iL=U(["ON DELETE","ON UPDATE","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),AL=U([]),SL={name:"singlestoredb",tokenizerOptions:{reservedSelect:lL,reservedClauses:[...oL,...GR,...ZT],reservedSetOperations:aL,reservedJoins:RL,reservedKeywordPhrases:iL,reservedDataTypePhrases:AL,reservedKeywords:rL,reservedDataTypes:sL,reservedFunctionNames:TL,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_$]+"},{quote:"``",prefixes:["@"],requirePrefix:!0}],lineCommentTypes:["--","#"],operators:[":=","&","|","^","~","<<",">>","<=>","&&","||","::","::$","::%",":>","!:>","*.*"],postProcess:rT},formatOptions:{alwaysDenseOperators:["::","::$","::%"],onelineClauses:[...GR,...ZT],tabularOnelineClauses:ZT}},NL=["ABS","ACOS","ACOSH","ADD_MONTHS","ALL_USER_NAMES","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","APPROX_PERCENTILE_ACCUMULATE","APPROX_PERCENTILE_COMBINE","APPROX_PERCENTILE_ESTIMATE","APPROX_TOP_K","APPROX_TOP_K_ACCUMULATE","APPROX_TOP_K_COMBINE","APPROX_TOP_K_ESTIMATE","APPROXIMATE_JACCARD_INDEX","APPROXIMATE_SIMILARITY","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_COMPACT","ARRAY_CONSTRUCT","ARRAY_CONSTRUCT_COMPACT","ARRAY_CONTAINS","ARRAY_INSERT","ARRAY_INTERSECTION","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_SIZE","ARRAY_SLICE","ARRAY_TO_STRING","ARRAY_UNION_AGG","ARRAY_UNIQUE_AGG","ARRAYS_OVERLAP","AS_ARRAY","AS_BINARY","AS_BOOLEAN","AS_CHAR","AS_VARCHAR","AS_DATE","AS_DECIMAL","AS_NUMBER","AS_DOUBLE","AS_REAL","AS_INTEGER","AS_OBJECT","AS_TIME","AS_TIMESTAMP_LTZ","AS_TIMESTAMP_NTZ","AS_TIMESTAMP_TZ","ASCII","ASIN","ASINH","ATAN","ATAN2","ATANH","AUTO_REFRESH_REGISTRATION_HISTORY","AUTOMATIC_CLUSTERING_HISTORY","AVG","BASE64_DECODE_BINARY","BASE64_DECODE_STRING","BASE64_ENCODE","BIT_LENGTH","BITAND","BITAND_AGG","BITMAP_BIT_POSITION","BITMAP_BUCKET_NUMBER","BITMAP_CONSTRUCT_AGG","BITMAP_COUNT","BITMAP_OR_AGG","BITNOT","BITOR","BITOR_AGG","BITSHIFTLEFT","BITSHIFTRIGHT","BITXOR","BITXOR_AGG","BOOLAND","BOOLAND_AGG","BOOLNOT","BOOLOR","BOOLOR_AGG","BOOLXOR","BOOLXOR_AGG","BUILD_SCOPED_FILE_URL","BUILD_STAGE_FILE_URL","CASE","CAST","CBRT","CEIL","CHARINDEX","CHECK_JSON","CHECK_XML","CHR","CHAR","COALESCE","COLLATE","COLLATION","COMPLETE_TASK_GRAPHS","COMPRESS","CONCAT","CONCAT_WS","CONDITIONAL_CHANGE_EVENT","CONDITIONAL_TRUE_EVENT","CONTAINS","CONVERT_TIMEZONE","COPY_HISTORY","CORR","COS","COSH","COT","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CUME_DIST","CURRENT_ACCOUNT","CURRENT_AVAILABLE_ROLES","CURRENT_CLIENT","CURRENT_DATABASE","CURRENT_DATE","CURRENT_IP_ADDRESS","CURRENT_REGION","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_SECONDARY_ROLES","CURRENT_SESSION","CURRENT_STATEMENT","CURRENT_TASK_GRAPHS","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TRANSACTION","CURRENT_USER","CURRENT_VERSION","CURRENT_WAREHOUSE","DATA_TRANSFER_HISTORY","DATABASE_REFRESH_HISTORY","DATABASE_REFRESH_PROGRESS","DATABASE_REFRESH_PROGRESS_BY_JOB","DATABASE_STORAGE_USAGE_HISTORY","DATE_FROM_PARTS","DATE_PART","DATE_TRUNC","DATEADD","DATEDIFF","DAYNAME","DECODE","DECOMPRESS_BINARY","DECOMPRESS_STRING","DECRYPT","DECRYPT_RAW","DEGREES","DENSE_RANK","DIV0","EDITDISTANCE","ENCRYPT","ENCRYPT_RAW","ENDSWITH","EQUAL_NULL","EXP","EXPLAIN_JSON","EXTERNAL_FUNCTIONS_HISTORY","EXTERNAL_TABLE_FILES","EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY","EXTRACT","EXTRACT_SEMANTIC_CATEGORIES","FACTORIAL","FILTER","FIRST_VALUE","FLATTEN","FLOOR","GENERATE_COLUMN_DESCRIPTION","GENERATOR","GET","GET_ABSOLUTE_PATH","GET_DDL","GET_IGNORE_CASE","GET_OBJECT_REFERENCES","GET_PATH","GET_PRESIGNED_URL","GET_RELATIVE_PATH","GET_STAGE_LOCATION","GETBIT","GREATEST","GREATEST_IGNORE_NULLS","GROUPING","GROUPING_ID","HASH","HASH_AGG","HAVERSINE","HEX_DECODE_BINARY","HEX_DECODE_STRING","HEX_ENCODE","HLL","HLL_ACCUMULATE","HLL_COMBINE","HLL_ESTIMATE","HLL_EXPORT","HLL_IMPORT","HOUR","MINUTE","SECOND","IDENTIFIER","IFF","IFNULL","ILIKE","ILIKE ANY","INFER_SCHEMA","INITCAP","INSERT","INVOKER_ROLE","INVOKER_SHARE","IS_ARRAY","IS_BINARY","IS_BOOLEAN","IS_CHAR","IS_VARCHAR","IS_DATE","IS_DATE_VALUE","IS_DECIMAL","IS_DOUBLE","IS_REAL","IS_GRANTED_TO_INVOKER_ROLE","IS_INTEGER","IS_NULL_VALUE","IS_OBJECT","IS_ROLE_IN_SESSION","IS_TIME","IS_TIMESTAMP_LTZ","IS_TIMESTAMP_NTZ","IS_TIMESTAMP_TZ","JAROWINKLER_SIMILARITY","JSON_EXTRACT_PATH_TEXT","KURTOSIS","LAG","LAST_DAY","LAST_QUERY_ID","LAST_TRANSACTION","LAST_VALUE","LEAD","LEAST","LEFT","LENGTH","LEN","LIKE","LIKE ALL","LIKE ANY","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOGIN_HISTORY","LOGIN_HISTORY_BY_USER","LOWER","LPAD","LTRIM","MATERIALIZED_VIEW_REFRESH_HISTORY","MD5","MD5_HEX","MD5_BINARY","MD5_NUMBER — Obsoleted","MD5_NUMBER_LOWER64","MD5_NUMBER_UPPER64","MEDIAN","MIN","MAX","MINHASH","MINHASH_COMBINE","MOD","MODE","MONTHNAME","MONTHS_BETWEEN","NEXT_DAY","NORMAL","NTH_VALUE","NTILE","NULLIF","NULLIFZERO","NVL","NVL2","OBJECT_AGG","OBJECT_CONSTRUCT","OBJECT_CONSTRUCT_KEEP_NULL","OBJECT_DELETE","OBJECT_INSERT","OBJECT_KEYS","OBJECT_PICK","OCTET_LENGTH","PARSE_IP","PARSE_JSON","PARSE_URL","PARSE_XML","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIPE_USAGE_HISTORY","POLICY_CONTEXT","POLICY_REFERENCES","POSITION","POW","POWER","PREVIOUS_DAY","QUERY_ACCELERATION_HISTORY","QUERY_HISTORY","QUERY_HISTORY_BY_SESSION","QUERY_HISTORY_BY_USER","QUERY_HISTORY_BY_WAREHOUSE","RADIANS","RANDOM","RANDSTR","RANK","RATIO_TO_REPORT","REGEXP","REGEXP_COUNT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","REGEXP_SUBSTR_ALL","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","REGR_VALX","REGR_VALY","REPEAT","REPLACE","REPLICATION_GROUP_REFRESH_HISTORY","REPLICATION_GROUP_REFRESH_PROGRESS","REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB","REPLICATION_GROUP_USAGE_HISTORY","REPLICATION_USAGE_HISTORY","REST_EVENT_HISTORY","RESULT_SCAN","REVERSE","RIGHT","RLIKE","ROUND","ROW_NUMBER","RPAD","RTRIM","RTRIMMED_LENGTH","SEARCH_OPTIMIZATION_HISTORY","SEQ1","SEQ2","SEQ4","SEQ8","SERVERLESS_TASK_HISTORY","SHA1","SHA1_HEX","SHA1_BINARY","SHA2","SHA2_HEX","SHA2_BINARY","SIGN","SIN","SINH","SKEW","SOUNDEX","SPACE","SPLIT","SPLIT_PART","SPLIT_TO_TABLE","SQRT","SQUARE","ST_AREA","ST_ASEWKB","ST_ASEWKT","ST_ASGEOJSON","ST_ASWKB","ST_ASBINARY","ST_ASWKT","ST_ASTEXT","ST_AZIMUTH","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DWITHIN","ST_ENDPOINT","ST_ENVELOPE","ST_GEOGFROMGEOHASH","ST_GEOGPOINTFROMGEOHASH","ST_GEOGRAPHYFROMWKB","ST_GEOGRAPHYFROMWKT","ST_GEOHASH","ST_GEOMETRYFROMWKB","ST_GEOMETRYFROMWKT","ST_HAUSDORFFDISTANCE","ST_INTERSECTION","ST_INTERSECTS","ST_LENGTH","ST_MAKEGEOMPOINT","ST_GEOM_POINT","ST_MAKELINE","ST_MAKEPOINT","ST_POINT","ST_MAKEPOLYGON","ST_POLYGON","ST_NPOINTS","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SETSRID","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY","STAGE_STORAGE_USAGE_HISTORY","STARTSWITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRIP_NULL_VALUE","STRTOK","STRTOK_SPLIT_TO_TABLE","STRTOK_TO_ARRAY","SUBSTR","SUBSTRING","SUM","SYSDATE","SYSTEM$ABORT_SESSION","SYSTEM$ABORT_TRANSACTION","SYSTEM$AUTHORIZE_PRIVATELINK","SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS","SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS","SYSTEM$CANCEL_ALL_QUERIES","SYSTEM$CANCEL_QUERY","SYSTEM$CLUSTERING_DEPTH","SYSTEM$CLUSTERING_INFORMATION","SYSTEM$CLUSTERING_RATIO ","SYSTEM$CURRENT_USER_TASK_NAME","SYSTEM$DATABASE_REFRESH_HISTORY ","SYSTEM$DATABASE_REFRESH_PROGRESS","SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB ","SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$DISABLE_DATABASE_REPLICATION","SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$ESTIMATE_QUERY_ACCELERATION","SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS","SYSTEM$EXPLAIN_JSON_TO_TEXT","SYSTEM$EXPLAIN_PLAN_JSON","SYSTEM$EXTERNAL_TABLE_PIPE_STATUS","SYSTEM$GENERATE_SAML_CSR","SYSTEM$GENERATE_SCIM_ACCESS_TOKEN","SYSTEM$GET_AWS_SNS_IAM_POLICY","SYSTEM$GET_PREDECESSOR_RETURN_VALUE","SYSTEM$GET_PRIVATELINK","SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS","SYSTEM$GET_PRIVATELINK_CONFIG","SYSTEM$GET_SNOWFLAKE_PLATFORM_INFO","SYSTEM$GET_TAG","SYSTEM$GET_TAG_ALLOWED_VALUES","SYSTEM$GET_TAG_ON_CURRENT_COLUMN","SYSTEM$GET_TAG_ON_CURRENT_TABLE","SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER","SYSTEM$LAST_CHANGE_COMMIT_TIME","SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME","SYSTEM$MIGRATE_SAML_IDP_REGISTRATION","SYSTEM$PIPE_FORCE_RESUME","SYSTEM$PIPE_STATUS","SYSTEM$REVOKE_PRIVATELINK","SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS","SYSTEM$SET_RETURN_VALUE","SYSTEM$SHOW_OAUTH_CLIENT_SECRETS","SYSTEM$STREAM_GET_TABLE_TIMESTAMP","SYSTEM$STREAM_HAS_DATA","SYSTEM$TASK_DEPENDENTS_ENABLE","SYSTEM$TYPEOF","SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS","SYSTEM$VERIFY_EXTERNAL_OAUTH_TOKEN","SYSTEM$WAIT","SYSTEM$WHITELIST","SYSTEM$WHITELIST_PRIVATELINK","TAG_REFERENCES","TAG_REFERENCES_ALL_COLUMNS","TAG_REFERENCES_WITH_LINEAGE","TAN","TANH","TASK_DEPENDENTS","TASK_HISTORY","TIME_FROM_PARTS","TIME_SLICE","TIMEADD","TIMEDIFF","TIMESTAMP_FROM_PARTS","TIMESTAMPADD","TIMESTAMPDIFF","TO_ARRAY","TO_BINARY","TO_BOOLEAN","TO_CHAR","TO_VARCHAR","TO_DATE","DATE","TO_DECIMAL","TO_NUMBER","TO_NUMERIC","TO_DOUBLE","TO_GEOGRAPHY","TO_GEOMETRY","TO_JSON","TO_OBJECT","TO_TIME","TIME","TO_TIMESTAMP","TO_TIMESTAMP_LTZ","TO_TIMESTAMP_NTZ","TO_TIMESTAMP_TZ","TO_VARIANT","TO_XML","TRANSLATE","TRIM","TRUNCATE","TRUNC","TRUNC","TRY_BASE64_DECODE_BINARY","TRY_BASE64_DECODE_STRING","TRY_CAST","TRY_HEX_DECODE_BINARY","TRY_HEX_DECODE_STRING","TRY_PARSE_JSON","TRY_TO_BINARY","TRY_TO_BOOLEAN","TRY_TO_DATE","TRY_TO_DECIMAL","TRY_TO_NUMBER","TRY_TO_NUMERIC","TRY_TO_DOUBLE","TRY_TO_GEOGRAPHY","TRY_TO_GEOMETRY","TRY_TO_TIME","TRY_TO_TIMESTAMP","TRY_TO_TIMESTAMP_LTZ","TRY_TO_TIMESTAMP_NTZ","TRY_TO_TIMESTAMP_TZ","TYPEOF","UNICODE","UNIFORM","UPPER","UUID_STRING","VALIDATE","VALIDATE_PIPE_LOAD","VAR_POP","VAR_SAMP","VARIANCE","VARIANCE_SAMP","VARIANCE_POP","WAREHOUSE_LOAD_HISTORY","WAREHOUSE_METERING_HISTORY","WIDTH_BUCKET","XMLGET","YEAR","YEAROFWEEK","YEAROFWEEKISO","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFWEEKISO","DAYOFYEAR","WEEK","WEEK","WEEKOFYEAR","WEEKISO","MONTH","QUARTER","ZEROIFNULL","ZIPF"],IL=["ACCOUNT","ALL","ALTER","AND","ANY","AS","BETWEEN","BY","CASE","CAST","CHECK","COLUMN","CONNECT","CONNECTION","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATABASE","DELETE","DISTINCT","DROP","ELSE","EXISTS","FALSE","FOLLOWING","FOR","FROM","FULL","GRANT","GROUP","GSCLUSTER","HAVING","ILIKE","IN","INCREMENT","INNER","INSERT","INTERSECT","INTO","IS","ISSUE","JOIN","LATERAL","LEFT","LIKE","LOCALTIME","LOCALTIMESTAMP","MINUS","NATURAL","NOT","NULL","OF","ON","OR","ORDER","ORGANIZATION","QUALIFY","REGEXP","REVOKE","RIGHT","RLIKE","ROW","ROWS","SAMPLE","SCHEMA","SELECT","SET","SOME","START","TABLE","TABLESAMPLE","THEN","TO","TRIGGER","TRUE","TRY_CAST","UNION","UNIQUE","UPDATE","USING","VALUES","VIEW","WHEN","WHENEVER","WHERE","WITH","COMMENT"],OL=["NUMBER","DECIMAL","NUMERIC","INT","INTEGER","BIGINT","SMALLINT","TINYINT","BYTEINT","FLOAT","FLOAT4","FLOAT8","DOUBLE","DOUBLE PRECISION","REAL","VARCHAR","CHAR","CHARACTER","STRING","TEXT","BINARY","VARBINARY","BOOLEAN","DATE","DATETIME","TIME","TIMESTAMP","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TIMESTAMP_TZ","VARIANT","OBJECT","ARRAY","GEOGRAPHY","GEOMETRY"],uL=U(["SELECT [ALL | DISTINCT]"]),cL=U(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","QUALIFY","LIMIT","OFFSET","FETCH [FIRST | NEXT]","INSERT [OVERWRITE] [ALL INTO | INTO | ALL | FIRST]","{THEN | ELSE} INTO","VALUES","SET","CLUSTER BY","[WITH] {MASKING POLICY | TAG | ROW ACCESS POLICY}","COPY GRANTS","USING TEMPLATE","MERGE INTO","WHEN MATCHED [AND]","THEN {UPDATE SET | DELETE}","WHEN NOT MATCHED THEN INSERT"]),gR=U(["CREATE [OR REPLACE] [VOLATILE] TABLE [IF NOT EXISTS]","CREATE [OR REPLACE] [LOCAL | GLOBAL] {TEMP|TEMPORARY} TABLE [IF NOT EXISTS]"]),qT=U(["CREATE [OR REPLACE] [SECURE] [RECURSIVE] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","RENAME TO","SWAP WITH","[SUSPEND | RESUME] RECLUSTER","DROP CLUSTERING KEY","ADD [COLUMN]","RENAME COLUMN","{ALTER | MODIFY} [COLUMN]","DROP [COLUMN]","{ADD | ALTER | MODIFY | DROP} [CONSTRAINT]","RENAME CONSTRAINT","{ADD | DROP} SEARCH OPTIMIZATION","{SET | UNSET} TAG","{ADD | DROP} ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","SET DATA TYPE","UNSET COMMENT","{SET | UNSET} MASKING POLICY","TRUNCATE [TABLE] [IF EXISTS]","ALTER ACCOUNT","ALTER API INTEGRATION","ALTER CONNECTION","ALTER DATABASE","ALTER EXTERNAL TABLE","ALTER FAILOVER GROUP","ALTER FILE FORMAT","ALTER FUNCTION","ALTER INTEGRATION","ALTER MASKING POLICY","ALTER MATERIALIZED VIEW","ALTER NETWORK POLICY","ALTER NOTIFICATION INTEGRATION","ALTER PIPE","ALTER PROCEDURE","ALTER REPLICATION GROUP","ALTER RESOURCE MONITOR","ALTER ROLE","ALTER ROW ACCESS POLICY","ALTER SCHEMA","ALTER SECURITY INTEGRATION","ALTER SEQUENCE","ALTER SESSION","ALTER SESSION POLICY","ALTER SHARE","ALTER STAGE","ALTER STORAGE INTEGRATION","ALTER STREAM","ALTER TAG","ALTER TASK","ALTER USER","ALTER VIEW","ALTER WAREHOUSE","BEGIN","CALL","COMMIT","COPY INTO","CREATE ACCOUNT","CREATE API INTEGRATION","CREATE CONNECTION","CREATE DATABASE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL TABLE","CREATE FAILOVER GROUP","CREATE FILE FORMAT","CREATE FUNCTION","CREATE INTEGRATION","CREATE MANAGED ACCOUNT","CREATE MASKING POLICY","CREATE MATERIALIZED VIEW","CREATE NETWORK POLICY","CREATE NOTIFICATION INTEGRATION","CREATE PIPE","CREATE PROCEDURE","CREATE REPLICATION GROUP","CREATE RESOURCE MONITOR","CREATE ROLE","CREATE ROW ACCESS POLICY","CREATE SCHEMA","CREATE SECURITY INTEGRATION","CREATE SEQUENCE","CREATE SESSION POLICY","CREATE SHARE","CREATE STAGE","CREATE STORAGE INTEGRATION","CREATE STREAM","CREATE TAG","CREATE TASK","CREATE USER","CREATE WAREHOUSE","DELETE","DESCRIBE DATABASE","DESCRIBE EXTERNAL TABLE","DESCRIBE FILE FORMAT","DESCRIBE FUNCTION","DESCRIBE INTEGRATION","DESCRIBE MASKING POLICY","DESCRIBE MATERIALIZED VIEW","DESCRIBE NETWORK POLICY","DESCRIBE PIPE","DESCRIBE PROCEDURE","DESCRIBE RESULT","DESCRIBE ROW ACCESS POLICY","DESCRIBE SCHEMA","DESCRIBE SEQUENCE","DESCRIBE SESSION POLICY","DESCRIBE SHARE","DESCRIBE STAGE","DESCRIBE STREAM","DESCRIBE TABLE","DESCRIBE TASK","DESCRIBE TRANSACTION","DESCRIBE USER","DESCRIBE VIEW","DESCRIBE WAREHOUSE","DROP CONNECTION","DROP DATABASE","DROP EXTERNAL TABLE","DROP FAILOVER GROUP","DROP FILE FORMAT","DROP FUNCTION","DROP INTEGRATION","DROP MANAGED ACCOUNT","DROP MASKING POLICY","DROP MATERIALIZED VIEW","DROP NETWORK POLICY","DROP PIPE","DROP PROCEDURE","DROP REPLICATION GROUP","DROP RESOURCE MONITOR","DROP ROLE","DROP ROW ACCESS POLICY","DROP SCHEMA","DROP SEQUENCE","DROP SESSION POLICY","DROP SHARE","DROP STAGE","DROP STREAM","DROP TAG","DROP TASK","DROP USER","DROP VIEW","DROP WAREHOUSE","EXECUTE IMMEDIATE","EXECUTE TASK","EXPLAIN","GET","GRANT OWNERSHIP","GRANT ROLE","INSERT","LIST","MERGE","PUT","REMOVE","REVOKE ROLE","ROLLBACK","SHOW COLUMNS","SHOW CONNECTIONS","SHOW DATABASES","SHOW DATABASES IN FAILOVER GROUP","SHOW DATABASES IN REPLICATION GROUP","SHOW DELEGATED AUTHORIZATIONS","SHOW EXTERNAL FUNCTIONS","SHOW EXTERNAL TABLES","SHOW FAILOVER GROUPS","SHOW FILE FORMATS","SHOW FUNCTIONS","SHOW GLOBAL ACCOUNTS","SHOW GRANTS","SHOW INTEGRATIONS","SHOW LOCKS","SHOW MANAGED ACCOUNTS","SHOW MASKING POLICIES","SHOW MATERIALIZED VIEWS","SHOW NETWORK POLICIES","SHOW OBJECTS","SHOW ORGANIZATION ACCOUNTS","SHOW PARAMETERS","SHOW PIPES","SHOW PRIMARY KEYS","SHOW PROCEDURES","SHOW REGIONS","SHOW REPLICATION ACCOUNTS","SHOW REPLICATION DATABASES","SHOW REPLICATION GROUPS","SHOW RESOURCE MONITORS","SHOW ROLES","SHOW ROW ACCESS POLICIES","SHOW SCHEMAS","SHOW SEQUENCES","SHOW SESSION POLICIES","SHOW SHARES","SHOW SHARES IN FAILOVER GROUP","SHOW SHARES IN REPLICATION GROUP","SHOW STAGES","SHOW STREAMS","SHOW TABLES","SHOW TAGS","SHOW TASKS","SHOW TRANSACTIONS","SHOW USER FUNCTIONS","SHOW USERS","SHOW VARIABLES","SHOW VIEWS","SHOW WAREHOUSES","TRUNCATE MATERIALIZED VIEW","UNDROP DATABASE","UNDROP SCHEMA","UNDROP TABLE","UNDROP TAG","UNSET","USE DATABASE","USE ROLE","USE SCHEMA","USE SECONDARY ROLES","USE WAREHOUSE"]),CL=U(["UNION [ALL]","MINUS","EXCEPT","INTERSECT"]),LL=U(["[INNER] JOIN","[NATURAL] {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | NATURAL} JOIN"]),_L=U(["{ROWS | RANGE} BETWEEN","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]"]),dL=U([]),DL={name:"snowflake",tokenizerOptions:{reservedSelect:uL,reservedClauses:[...cL,...gR,...qT],reservedSetOperations:CL,reservedJoins:LL,reservedKeywordPhrases:_L,reservedDataTypePhrases:dL,reservedKeywords:IL,reservedDataTypes:OL,reservedFunctionNames:NL,stringTypes:["$$","''-qq-bs"],identTypes:['""-qq'],variableTypes:[{regex:"[$][1-9]\\d*"},{regex:"[$][_a-zA-Z][_a-zA-Z0-9$]*"}],extraParens:["[]"],identChars:{rest:"$"},lineCommentTypes:["--","//"],operators:["%","::","||","=>",":=","->"],propertyAccessOperators:[":"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...gR,...qT],tabularOnelineClauses:qT}},PL=Object.freeze(Object.defineProperty({__proto__:null,bigquery:qO,db2:Su,db2i:Du,duckdb:Gu,hive:Wu,mariadb:qu,mysql:ac,n1ql:Uc,plsql:Yc,postgresql:zc,redshift:TC,singlestoredb:SL,snowflake:DL,spark:OC,sql:BC,sqlite:mC,tidb:Cc,transactsql:nL,trino:jC},Symbol.toStringTag,{value:"Module"})),Rr=e=>e[e.length-1],CS=e=>e.sort((t,E)=>E.length-t.length||t.localeCompare(E)),is=e=>e.replace(/\s+/gu," "),el=e=>/\n/.test(e),bt=e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),HR=/\s+/uy,en=e=>new RegExp(`(?:${e})`,"uy"),pL=e=>e.split("").map(t=>/ /gu.test(t)?"\\s+":`[${t.toUpperCase()}${t.toLowerCase()}]`).join(""),fL=e=>e+"(?:-"+e+")*",mL=({prefixes:e,requirePrefix:t})=>`(?:${e.map(pL).join("|")}${t?"":"|"})`,ML=e=>new RegExp(`(?:${e.map(bt).join("|")}).*?(?=\r -|\r| -|$)`,"uy"),vR=(e,t=[])=>{const E=e==="open"?0:1,n=["()",...t].map(r=>r[E]);return en(n.map(bt).join("|"))},BR=e=>en(`${CS(e).map(bt).join("|")}`),UL=({rest:e,dashes:t})=>e||t?`(?![${e||""}${t?"-":""}])`:"",qt=(e,t={})=>{if(e.length===0)return/^\b$/u;const E=UL(t),n=CS(e).map(bt).join("|").replace(/ /gu,"\\s+");return new RegExp(`(?:${n})${E}\\b`,"iuy")},tl=(e,t)=>{if(!e.length)return;const E=e.map(bt).join("|");return en(`(?:${E})(?:${t})`)},hL=()=>{const e={"<":">","[":"]","(":")","{":"}"},t="{left}(?:(?!{right}').)*?{right}",E=Object.entries(e).map(([l,o])=>t.replace(/{left}/g,bt(l)).replace(/{right}/g,bt(o))),n=bt(Object.keys(e).join(""));return`[Qq]'(?:${String.raw`(?[^\s${n}])(?:(?!\k').)*?\k`}|${E.join("|")})'`},FR={"``":"(?:`[^`]*`)+","[]":String.raw`(?:\[[^\]]*\])(?:\][^\]]*\])*`,'""-qq':String.raw`(?:"[^"]*")+`,'""-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")`,'""-qq-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")+`,'""-raw':String.raw`(?:"[^"]*")`,"''-qq":String.raw`(?:'[^']*')+`,"''-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')`,"''-qq-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')+`,"''-raw":String.raw`(?:'[^']*')`,$$:String.raw`(?\$\w*\$)[\s\S]*?\k`,"'''..'''":String.raw`'''[^\\]*?(?:\\.[^\\]*?)*?'''`,'""".."""':String.raw`"""[^\\]*?(?:\\.[^\\]*?)*?"""`,"{}":String.raw`(?:\{[^\}]*\})`,"q''":hL()},LS=e=>typeof e=="string"?FR[e]:"regex"in e?e.regex:mL(e)+FR[e.quote],xL=e=>en(e.map(t=>"regex"in t?t.regex:LS(t)).join("|")),_S=e=>e.map(LS).join("|"),YR=e=>en(_S(e)),yL=(e={})=>en(dS(e)),dS=({first:e,rest:t,dashes:E,allowFirstCharNumber:n}={})=>{const r="\\p{Alphabetic}\\p{Mark}_",s="\\p{Decimal_Number}",l=bt(e??""),o=bt(t??""),a=n?`[${r}${s}${l}][${r}${s}${o}]*`:`[${r}${l}][${r}${s}${o}]*`;return E?fL(a):a};function DS(e,t){const E=e.slice(0,t).split(/\n/);return{line:E.length,col:E[E.length-1].length+1}}class GL{constructor(t,E){this.rules=t,this.dialectName=E,this.input="",this.index=0}tokenize(t){this.input=t,this.index=0;const E=[];let n;for(;this.index0;)if(n=this.matchSection(wR,t))E+=n,r++;else if(n=this.matchSection(HL,t))E+=n,r--;else if(n=this.matchSection(gL,t))E+=n;else return null;return[E]}matchSection(t,E){t.lastIndex=this.lastIndex;const n=t.exec(E);return n&&(this.lastIndex+=n[0].length),n?n[0]:null}}class BL{constructor(t,E){this.cfg=t,this.dialectName=E,this.rulesBeforeParams=this.buildRulesBeforeParams(t),this.rulesAfterParams=this.buildRulesAfterParams(t)}tokenize(t,E){const n=[...this.rulesBeforeParams,...this.buildParamRules(this.cfg,E),...this.rulesAfterParams],r=new GL(n,this.dialectName).tokenize(t);return this.cfg.postProcess?this.cfg.postProcess(r):r}buildRulesBeforeParams(t){var E,n,r;return this.validRules([{type:v.DISABLE_COMMENT,regex:/(\/\* *sql-formatter-disable *\*\/[\s\S]*?(?:\/\* *sql-formatter-enable *\*\/|$))/uy},{type:v.BLOCK_COMMENT,regex:t.nestedBlockComments?new vL:/(\/\*[^]*?\*\/)/uy},{type:v.LINE_COMMENT,regex:ML((E=t.lineCommentTypes)!==null&&E!==void 0?E:["--"])},{type:v.QUOTED_IDENTIFIER,regex:YR(t.identTypes)},{type:v.NUMBER,regex:t.underscoresInNumbers?/(?:0x[0-9a-fA-F_]+|0b[01_]+|(?:-\s*)?(?:[0-9_]*\.[0-9_]+|[0-9_]+(?:\.[0-9_]*)?)(?:[eE][-+]?[0-9_]+(?:\.[0-9_]+)?)?)(?![\w\p{Alphabetic}])/uy:/(?:0x[0-9a-fA-F]+|0b[01]+|(?:-\s*)?(?:[0-9]*\.[0-9]+|[0-9]+(?:\.[0-9]*)?)(?:[eE][-+]?[0-9]+(?:\.[0-9]+)?)?)(?![\w\p{Alphabetic}])/uy},{type:v.RESERVED_KEYWORD_PHRASE,regex:qt((n=t.reservedKeywordPhrases)!==null&&n!==void 0?n:[],t.identChars),text:We},{type:v.RESERVED_DATA_TYPE_PHRASE,regex:qt((r=t.reservedDataTypePhrases)!==null&&r!==void 0?r:[],t.identChars),text:We},{type:v.CASE,regex:/CASE\b/iuy,text:We},{type:v.END,regex:/END\b/iuy,text:We},{type:v.BETWEEN,regex:/BETWEEN\b/iuy,text:We},{type:v.LIMIT,regex:t.reservedClauses.includes("LIMIT")?/LIMIT\b/iuy:void 0,text:We},{type:v.RESERVED_CLAUSE,regex:qt(t.reservedClauses,t.identChars),text:We},{type:v.RESERVED_SELECT,regex:qt(t.reservedSelect,t.identChars),text:We},{type:v.RESERVED_SET_OPERATION,regex:qt(t.reservedSetOperations,t.identChars),text:We},{type:v.WHEN,regex:/WHEN\b/iuy,text:We},{type:v.ELSE,regex:/ELSE\b/iuy,text:We},{type:v.THEN,regex:/THEN\b/iuy,text:We},{type:v.RESERVED_JOIN,regex:qt(t.reservedJoins,t.identChars),text:We},{type:v.AND,regex:/AND\b/iuy,text:We},{type:v.OR,regex:/OR\b/iuy,text:We},{type:v.XOR,regex:t.supportsXor?/XOR\b/iuy:void 0,text:We},...t.operatorKeyword?[{type:v.OPERATOR,regex:/OPERATOR *\([^)]+\)/iuy}]:[],{type:v.RESERVED_FUNCTION_NAME,regex:qt(t.reservedFunctionNames,t.identChars),text:We},{type:v.RESERVED_DATA_TYPE,regex:qt(t.reservedDataTypes,t.identChars),text:We},{type:v.RESERVED_KEYWORD,regex:qt(t.reservedKeywords,t.identChars),text:We}])}buildRulesAfterParams(t){var E,n;return this.validRules([{type:v.VARIABLE,regex:t.variableTypes?xL(t.variableTypes):void 0},{type:v.STRING,regex:YR(t.stringTypes)},{type:v.IDENTIFIER,regex:yL(t.identChars)},{type:v.DELIMITER,regex:/[;]/uy},{type:v.COMMA,regex:/[,]/y},{type:v.OPEN_PAREN,regex:vR("open",t.extraParens)},{type:v.CLOSE_PAREN,regex:vR("close",t.extraParens)},{type:v.OPERATOR,regex:BR(["+","-","/",">","<","=","<>","<=",">=","!=",...(E=t.operators)!==null&&E!==void 0?E:[]])},{type:v.ASTERISK,regex:/[*]/uy},{type:v.PROPERTY_ACCESS_OPERATOR,regex:BR([".",...(n=t.propertyAccessOperators)!==null&&n!==void 0?n:[]])}])}buildParamRules(t,E){var n,r,s,l,o;const a={named:E?.named||((n=t.paramTypes)===null||n===void 0?void 0:n.named)||[],quoted:E?.quoted||((r=t.paramTypes)===null||r===void 0?void 0:r.quoted)||[],numbered:E?.numbered||((s=t.paramTypes)===null||s===void 0?void 0:s.numbered)||[],positional:typeof E?.positional=="boolean"?E.positional:(l=t.paramTypes)===null||l===void 0?void 0:l.positional,custom:E?.custom||((o=t.paramTypes)===null||o===void 0?void 0:o.custom)||[]};return this.validRules([{type:v.NAMED_PARAMETER,regex:tl(a.named,dS(t.paramChars||t.identChars)),key:R=>R.slice(1)},{type:v.QUOTED_PARAMETER,regex:tl(a.quoted,_S(t.identTypes)),key:R=>(({tokenKey:A,quoteChar:N})=>A.replace(new RegExp(bt("\\"+N),"gu"),N))({tokenKey:R.slice(2,-1),quoteChar:R.slice(-1)})},{type:v.NUMBERED_PARAMETER,regex:tl(a.numbered,"[0-9]+"),key:R=>R.slice(1)},{type:v.POSITIONAL_PARAMETER,regex:a.positional?/[?]/y:void 0},...a.custom.map(R=>{var A;return{type:v.CUSTOM_PARAMETER,regex:en(R.regex),key:(A=R.key)!==null&&A!==void 0?A:N=>N}})])}validRules(t){return t.filter(E=>!!E.regex)}}const We=e=>is(e.toUpperCase()),VR=new Map,FL=e=>{let t=VR.get(e);return t||(t=YL(e),VR.set(e,t)),t},YL=e=>({tokenizer:new BL(e.tokenizerOptions,e.name),formatOptions:wL(e.formatOptions)}),wL=e=>{var t;return{alwaysDenseOperators:e.alwaysDenseOperators||[],onelineClauses:Object.fromEntries(e.onelineClauses.map(E=>[E,!0])),tabularOnelineClauses:Object.fromEntries(((t=e.tabularOnelineClauses)!==null&&t!==void 0?t:e.onelineClauses).map(E=>[E,!0]))}};function VL(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"?" ".repeat(10):e.useTabs?" ":" ".repeat(e.tabWidth)}function rn(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"}class bL{constructor(t){this.params=t,this.index=0}get({key:t,text:E}){return this.params?t?this.params[t]:this.params[this.index++]:E}getPositionalParameterIndex(){return this.index}setPositionalParameterIndex(t){this.index=t}}var PS={exports:{}};(function(e){(function(t,E){e.exports?e.exports=E():t.nearley=E()})(yS,function(){function t(R,A,N){return this.id=++t.highestId,this.name=R,this.symbols=A,this.postprocess=N,this}t.highestId=0,t.prototype.toString=function(R){var A=typeof R>"u"?this.symbols.map(a).join(" "):this.symbols.slice(0,R).map(a).join(" ")+" ● "+this.symbols.slice(R).map(a).join(" ");return this.name+" → "+A};function E(R,A,N,i){this.rule=R,this.dot=A,this.reference=N,this.data=[],this.wantedBy=i,this.isComplete=this.dot===R.symbols.length}E.prototype.toString=function(){return"{"+this.rule.toString(this.dot)+"}, from: "+(this.reference||0)},E.prototype.nextState=function(R){var A=new E(this.rule,this.dot+1,this.reference,this.wantedBy);return A.left=this,A.right=R,A.isComplete&&(A.data=A.build(),A.right=void 0),A},E.prototype.build=function(){var R=[],A=this;do R.push(A.right.data),A=A.left;while(A.left);return R.reverse(),R},E.prototype.finish=function(){this.rule.postprocess&&(this.data=this.rule.postprocess(this.data,this.reference,l.fail))};function n(R,A){this.grammar=R,this.index=A,this.states=[],this.wants={},this.scannable=[],this.completed={}}n.prototype.process=function(R){for(var A=this.states,N=this.wants,i=this.completed,O=0;O0&&A.push(" ^ "+i+" more lines identical to this"),i=0,A.push(" "+u)),N=u}},l.prototype.getSymbolDisplay=function(R){return o(R)},l.prototype.buildFirstStateStack=function(R,A){if(A.indexOf(R)!==-1)return null;if(R.wantedBy.length===0)return[R];var N=R.wantedBy[0],i=[R].concat(A),O=this.buildFirstStateStack(N,i);return O===null?null:[R].concat(O)},l.prototype.save=function(){var R=this.table[this.current];return R.lexerState=this.lexerState,R},l.prototype.restore=function(R){var A=R.index;this.current=A,this.table[A]=R,this.table.splice(A+1),this.lexerState=R.lexerState,this.results=this.finish()},l.prototype.rewind=function(R){if(!this.options.keepHistory)throw new Error("set option `keepHistory` to enable rewinding");this.restore(this.table[R])},l.prototype.finish=function(){var R=[],A=this.grammar.start,N=this.table[this.table.length-1];return N.states.forEach(function(i){i.rule.name===A&&i.dot===i.rule.symbols.length&&i.reference===0&&i.data!==l.fail&&R.push(i)}),R.map(function(i){return i.data})};function o(R){var A=typeof R;if(A==="string")return R;if(A==="object"){if(R.literal)return JSON.stringify(R.literal);if(R instanceof RegExp)return"character matching "+R;if(R.type)return R.type+" token";if(R.test)return"token matching "+String(R.test);throw new Error("Unknown symbol type: "+R)}}function a(R){var A=typeof R;if(A==="string")return R;if(A==="object"){if(R.literal)return JSON.stringify(R.literal);if(R instanceof RegExp)return R.toString();if(R.type)return"%"+R.type;if(R.test)return"<"+String(R.test)+">";throw new Error("Unknown symbol type: "+R)}}return{Parser:l,Grammar:r,Rule:t}})})(PS);var WL=PS.exports;const XL=QR(WL);function KL(e){return e.map($L).map(jL).map(kL).map(JL).map(zL)}const $L=(e,t,E)=>{if(cS(e.type)){const n=QL(E,t);if(n&&n.type===v.PROPERTY_ACCESS_OPERATOR)return Object.assign(Object.assign({},e),{type:v.IDENTIFIER,text:e.raw});const r=Yn(E,t);if(r&&r.type===v.PROPERTY_ACCESS_OPERATOR)return Object.assign(Object.assign({},e),{type:v.IDENTIFIER,text:e.raw})}return e},jL=(e,t,E)=>{if(e.type===v.RESERVED_FUNCTION_NAME){const n=Yn(E,t);if(!n||!pS(n))return Object.assign(Object.assign({},e),{type:v.IDENTIFIER,text:e.raw})}return e},kL=(e,t,E)=>{if(e.type===v.RESERVED_DATA_TYPE){const n=Yn(E,t);if(n&&pS(n))return Object.assign(Object.assign({},e),{type:v.RESERVED_PARAMETERIZED_DATA_TYPE})}return e},JL=(e,t,E)=>{if(e.type===v.IDENTIFIER){const n=Yn(E,t);if(n&&fS(n))return Object.assign(Object.assign({},e),{type:v.ARRAY_IDENTIFIER})}return e},zL=(e,t,E)=>{if(e.type===v.RESERVED_DATA_TYPE){const n=Yn(E,t);if(n&&fS(n))return Object.assign(Object.assign({},e),{type:v.ARRAY_KEYWORD})}return e},QL=(e,t)=>Yn(e,t,-1),Yn=(e,t,E=1)=>{let n=1;for(;e[t+n*E]&&ZL(e[t+n*E]);)n++;return e[t+n*E]},pS=e=>e.type===v.OPEN_PAREN&&e.text==="(",fS=e=>e.type===v.OPEN_PAREN&&e.text==="[",ZL=e=>e.type===v.BLOCK_COMMENT||e.type===v.LINE_COMMENT;class mS{constructor(t){this.tokenize=t,this.index=0,this.tokens=[],this.input=""}reset(t,E){this.input=t,this.index=0,this.tokens=this.tokenize(t)}next(){return this.tokens[this.index++]}save(){}formatError(t){const{line:E,col:n}=DS(this.input,t.start);return`Parse error at token: ${t.text} at line ${E} column ${n}`}has(t){return t in v}}var Z;(function(e){e.statement="statement",e.clause="clause",e.set_operation="set_operation",e.function_call="function_call",e.parameterized_data_type="parameterized_data_type",e.array_subscript="array_subscript",e.property_access="property_access",e.parenthesis="parenthesis",e.between_predicate="between_predicate",e.case_expression="case_expression",e.case_when="case_when",e.case_else="case_else",e.limit_clause="limit_clause",e.all_columns_asterisk="all_columns_asterisk",e.literal="literal",e.identifier="identifier",e.keyword="keyword",e.data_type="data_type",e.parameter="parameter",e.operator="operator",e.comma="comma",e.line_comment="line_comment",e.block_comment="block_comment",e.disable_comment="disable_comment"})(Z=Z||(Z={}));function El(e){return e[0]}const re=new mS(e=>[]),FE=([[e]])=>e,$e=e=>({type:Z.keyword,tokenType:e.type,text:e.text,raw:e.raw}),bR=e=>({type:Z.data_type,text:e.text,raw:e.raw}),je=(e,{leading:t,trailing:E})=>(t?.length&&(e=Object.assign(Object.assign({},e),{leadingComments:t})),E?.length&&(e=Object.assign(Object.assign({},e),{trailingComments:E})),e),qL=(e,{leading:t,trailing:E})=>{if(t?.length){const[n,...r]=e;e=[je(n,{leading:t}),...r]}if(E?.length){const n=e.slice(0,-1),r=e[e.length-1];e=[...n,je(r,{trailing:E})]}return e},e_={Lexer:re,ParserRules:[{name:"main$ebnf$1",symbols:[]},{name:"main$ebnf$1",symbols:["main$ebnf$1","statement"],postprocess:e=>e[0].concat([e[1]])},{name:"main",symbols:["main$ebnf$1"],postprocess:([e])=>{const t=e[e.length-1];return t&&!t.hasSemicolon?t.children.length>0?e:e.slice(0,-1):e}},{name:"statement$subexpression$1",symbols:[re.has("DELIMITER")?{type:"DELIMITER"}:DELIMITER]},{name:"statement$subexpression$1",symbols:[re.has("EOF")?{type:"EOF"}:EOF]},{name:"statement",symbols:["expressions_or_clauses","statement$subexpression$1"],postprocess:([e,[t]])=>({type:Z.statement,children:e,hasSemicolon:t.type===v.DELIMITER})},{name:"expressions_or_clauses$ebnf$1",symbols:[]},{name:"expressions_or_clauses$ebnf$1",symbols:["expressions_or_clauses$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses$ebnf$2",symbols:[]},{name:"expressions_or_clauses$ebnf$2",symbols:["expressions_or_clauses$ebnf$2","clause"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses",symbols:["expressions_or_clauses$ebnf$1","expressions_or_clauses$ebnf$2"],postprocess:([e,t])=>[...e,...t]},{name:"clause$subexpression$1",symbols:["limit_clause"]},{name:"clause$subexpression$1",symbols:["select_clause"]},{name:"clause$subexpression$1",symbols:["other_clause"]},{name:"clause$subexpression$1",symbols:["set_operation"]},{name:"clause",symbols:["clause$subexpression$1"],postprocess:FE},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["free_form_sql"]},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"limit_clause$ebnf$1$subexpression$1",symbols:[re.has("COMMA")?{type:"COMMA"}:COMMA,"limit_clause$ebnf$1$subexpression$1$ebnf$1"]},{name:"limit_clause$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1"],postprocess:El},{name:"limit_clause$ebnf$1",symbols:[],postprocess:()=>null},{name:"limit_clause",symbols:[re.has("LIMIT")?{type:"LIMIT"}:LIMIT,"_","expression_chain_","limit_clause$ebnf$1"],postprocess:([e,t,E,n])=>{if(n){const[r,s]=n;return{type:Z.limit_clause,limitKw:je($e(e),{trailing:t}),offset:E,count:s}}else return{type:Z.limit_clause,limitKw:je($e(e),{trailing:t}),count:E}}},{name:"select_clause$subexpression$1$ebnf$1",symbols:[]},{name:"select_clause$subexpression$1$ebnf$1",symbols:["select_clause$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["all_columns_asterisk","select_clause$subexpression$1$ebnf$1"]},{name:"select_clause$subexpression$1$ebnf$2",symbols:[]},{name:"select_clause$subexpression$1$ebnf$2",symbols:["select_clause$subexpression$1$ebnf$2","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["asteriskless_free_form_sql","select_clause$subexpression$1$ebnf$2"]},{name:"select_clause",symbols:[re.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT,"select_clause$subexpression$1"],postprocess:([e,[t,E]])=>({type:Z.clause,nameKw:$e(e),children:[t,...E]})},{name:"select_clause",symbols:[re.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT],postprocess:([e])=>({type:Z.clause,nameKw:$e(e),children:[]})},{name:"all_columns_asterisk",symbols:[re.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK],postprocess:()=>({type:Z.all_columns_asterisk})},{name:"other_clause$ebnf$1",symbols:[]},{name:"other_clause$ebnf$1",symbols:["other_clause$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"other_clause",symbols:[re.has("RESERVED_CLAUSE")?{type:"RESERVED_CLAUSE"}:RESERVED_CLAUSE,"other_clause$ebnf$1"],postprocess:([e,t])=>({type:Z.clause,nameKw:$e(e),children:t})},{name:"set_operation$ebnf$1",symbols:[]},{name:"set_operation$ebnf$1",symbols:["set_operation$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"set_operation",symbols:[re.has("RESERVED_SET_OPERATION")?{type:"RESERVED_SET_OPERATION"}:RESERVED_SET_OPERATION,"set_operation$ebnf$1"],postprocess:([e,t])=>({type:Z.set_operation,nameKw:$e(e),children:t})},{name:"expression_chain_$ebnf$1",symbols:["expression_with_comments_"]},{name:"expression_chain_$ebnf$1",symbols:["expression_chain_$ebnf$1","expression_with_comments_"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain_",symbols:["expression_chain_$ebnf$1"],postprocess:El},{name:"expression_chain$ebnf$1",symbols:[]},{name:"expression_chain$ebnf$1",symbols:["expression_chain$ebnf$1","_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain",symbols:["expression","expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"andless_expression_chain$ebnf$1",symbols:[]},{name:"andless_expression_chain$ebnf$1",symbols:["andless_expression_chain$ebnf$1","_andless_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"andless_expression_chain",symbols:["andless_expression","andless_expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"expression_with_comments_",symbols:["expression","_"],postprocess:([e,t])=>je(e,{trailing:t})},{name:"_expression_with_comments",symbols:["_","expression"],postprocess:([e,t])=>je(t,{leading:e})},{name:"_andless_expression_with_comments",symbols:["_","andless_expression"],postprocess:([e,t])=>je(t,{leading:e})},{name:"free_form_sql$subexpression$1",symbols:["asteriskless_free_form_sql"]},{name:"free_form_sql$subexpression$1",symbols:["asterisk"]},{name:"free_form_sql",symbols:["free_form_sql$subexpression$1"],postprocess:FE},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["logic_operator"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comma"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comment"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["other_keyword"]},{name:"asteriskless_free_form_sql",symbols:["asteriskless_free_form_sql$subexpression$1"],postprocess:FE},{name:"expression$subexpression$1",symbols:["andless_expression"]},{name:"expression$subexpression$1",symbols:["logic_operator"]},{name:"expression",symbols:["expression$subexpression$1"],postprocess:FE},{name:"andless_expression$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"andless_expression$subexpression$1",symbols:["asterisk"]},{name:"andless_expression",symbols:["andless_expression$subexpression$1"],postprocess:FE},{name:"asteriskless_andless_expression$subexpression$1",symbols:["atomic_expression"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["between_predicate"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["case_expression"]},{name:"asteriskless_andless_expression",symbols:["asteriskless_andless_expression$subexpression$1"],postprocess:FE},{name:"atomic_expression$subexpression$1",symbols:["array_subscript"]},{name:"atomic_expression$subexpression$1",symbols:["function_call"]},{name:"atomic_expression$subexpression$1",symbols:["property_access"]},{name:"atomic_expression$subexpression$1",symbols:["parenthesis"]},{name:"atomic_expression$subexpression$1",symbols:["curly_braces"]},{name:"atomic_expression$subexpression$1",symbols:["square_brackets"]},{name:"atomic_expression$subexpression$1",symbols:["operator"]},{name:"atomic_expression$subexpression$1",symbols:["identifier"]},{name:"atomic_expression$subexpression$1",symbols:["parameter"]},{name:"atomic_expression$subexpression$1",symbols:["literal"]},{name:"atomic_expression$subexpression$1",symbols:["data_type"]},{name:"atomic_expression$subexpression$1",symbols:["keyword"]},{name:"atomic_expression",symbols:["atomic_expression$subexpression$1"],postprocess:FE},{name:"array_subscript",symbols:[re.has("ARRAY_IDENTIFIER")?{type:"ARRAY_IDENTIFIER"}:ARRAY_IDENTIFIER,"_","square_brackets"],postprocess:([e,t,E])=>({type:Z.array_subscript,array:je({type:Z.identifier,quoted:!1,text:e.text},{trailing:t}),parenthesis:E})},{name:"array_subscript",symbols:[re.has("ARRAY_KEYWORD")?{type:"ARRAY_KEYWORD"}:ARRAY_KEYWORD,"_","square_brackets"],postprocess:([e,t,E])=>({type:Z.array_subscript,array:je($e(e),{trailing:t}),parenthesis:E})},{name:"function_call",symbols:[re.has("RESERVED_FUNCTION_NAME")?{type:"RESERVED_FUNCTION_NAME"}:RESERVED_FUNCTION_NAME,"_","parenthesis"],postprocess:([e,t,E])=>({type:Z.function_call,nameKw:je($e(e),{trailing:t}),parenthesis:E})},{name:"parenthesis",symbols:[{literal:"("},"expressions_or_clauses",{literal:")"}],postprocess:([e,t,E])=>({type:Z.parenthesis,children:t,openParen:"(",closeParen:")"})},{name:"curly_braces$ebnf$1",symbols:[]},{name:"curly_braces$ebnf$1",symbols:["curly_braces$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"curly_braces",symbols:[{literal:"{"},"curly_braces$ebnf$1",{literal:"}"}],postprocess:([e,t,E])=>({type:Z.parenthesis,children:t,openParen:"{",closeParen:"}"})},{name:"square_brackets$ebnf$1",symbols:[]},{name:"square_brackets$ebnf$1",symbols:["square_brackets$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"square_brackets",symbols:[{literal:"["},"square_brackets$ebnf$1",{literal:"]"}],postprocess:([e,t,E])=>({type:Z.parenthesis,children:t,openParen:"[",closeParen:"]"})},{name:"property_access$subexpression$1",symbols:["identifier"]},{name:"property_access$subexpression$1",symbols:["array_subscript"]},{name:"property_access$subexpression$1",symbols:["all_columns_asterisk"]},{name:"property_access$subexpression$1",symbols:["parameter"]},{name:"property_access",symbols:["atomic_expression","_",re.has("PROPERTY_ACCESS_OPERATOR")?{type:"PROPERTY_ACCESS_OPERATOR"}:PROPERTY_ACCESS_OPERATOR,"_","property_access$subexpression$1"],postprocess:([e,t,E,n,[r]])=>({type:Z.property_access,object:je(e,{trailing:t}),operator:E.text,property:je(r,{leading:n})})},{name:"between_predicate",symbols:[re.has("BETWEEN")?{type:"BETWEEN"}:BETWEEN,"_","andless_expression_chain","_",re.has("AND")?{type:"AND"}:AND,"_","andless_expression"],postprocess:([e,t,E,n,r,s,l])=>({type:Z.between_predicate,betweenKw:$e(e),expr1:qL(E,{leading:t,trailing:n}),andKw:$e(r),expr2:[je(l,{leading:s})]})},{name:"case_expression$ebnf$1",symbols:["expression_chain_"],postprocess:El},{name:"case_expression$ebnf$1",symbols:[],postprocess:()=>null},{name:"case_expression$ebnf$2",symbols:[]},{name:"case_expression$ebnf$2",symbols:["case_expression$ebnf$2","case_clause"],postprocess:e=>e[0].concat([e[1]])},{name:"case_expression",symbols:[re.has("CASE")?{type:"CASE"}:CASE,"_","case_expression$ebnf$1","case_expression$ebnf$2",re.has("END")?{type:"END"}:END],postprocess:([e,t,E,n,r])=>({type:Z.case_expression,caseKw:je($e(e),{trailing:t}),endKw:$e(r),expr:E||[],clauses:n})},{name:"case_clause",symbols:[re.has("WHEN")?{type:"WHEN"}:WHEN,"_","expression_chain_",re.has("THEN")?{type:"THEN"}:THEN,"_","expression_chain_"],postprocess:([e,t,E,n,r,s])=>({type:Z.case_when,whenKw:je($e(e),{trailing:t}),thenKw:je($e(n),{trailing:r}),condition:E,result:s})},{name:"case_clause",symbols:[re.has("ELSE")?{type:"ELSE"}:ELSE,"_","expression_chain_"],postprocess:([e,t,E])=>({type:Z.case_else,elseKw:je($e(e),{trailing:t}),result:E})},{name:"comma$subexpression$1",symbols:[re.has("COMMA")?{type:"COMMA"}:COMMA]},{name:"comma",symbols:["comma$subexpression$1"],postprocess:([[e]])=>({type:Z.comma})},{name:"asterisk$subexpression$1",symbols:[re.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK]},{name:"asterisk",symbols:["asterisk$subexpression$1"],postprocess:([[e]])=>({type:Z.operator,text:e.text})},{name:"operator$subexpression$1",symbols:[re.has("OPERATOR")?{type:"OPERATOR"}:OPERATOR]},{name:"operator",symbols:["operator$subexpression$1"],postprocess:([[e]])=>({type:Z.operator,text:e.text})},{name:"identifier$subexpression$1",symbols:[re.has("IDENTIFIER")?{type:"IDENTIFIER"}:IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[re.has("QUOTED_IDENTIFIER")?{type:"QUOTED_IDENTIFIER"}:QUOTED_IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[re.has("VARIABLE")?{type:"VARIABLE"}:VARIABLE]},{name:"identifier",symbols:["identifier$subexpression$1"],postprocess:([[e]])=>({type:Z.identifier,quoted:e.type!=="IDENTIFIER",text:e.text})},{name:"parameter$subexpression$1",symbols:[re.has("NAMED_PARAMETER")?{type:"NAMED_PARAMETER"}:NAMED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[re.has("QUOTED_PARAMETER")?{type:"QUOTED_PARAMETER"}:QUOTED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[re.has("NUMBERED_PARAMETER")?{type:"NUMBERED_PARAMETER"}:NUMBERED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[re.has("POSITIONAL_PARAMETER")?{type:"POSITIONAL_PARAMETER"}:POSITIONAL_PARAMETER]},{name:"parameter$subexpression$1",symbols:[re.has("CUSTOM_PARAMETER")?{type:"CUSTOM_PARAMETER"}:CUSTOM_PARAMETER]},{name:"parameter",symbols:["parameter$subexpression$1"],postprocess:([[e]])=>({type:Z.parameter,key:e.key,text:e.text})},{name:"literal$subexpression$1",symbols:[re.has("NUMBER")?{type:"NUMBER"}:NUMBER]},{name:"literal$subexpression$1",symbols:[re.has("STRING")?{type:"STRING"}:STRING]},{name:"literal",symbols:["literal$subexpression$1"],postprocess:([[e]])=>({type:Z.literal,text:e.text})},{name:"keyword$subexpression$1",symbols:[re.has("RESERVED_KEYWORD")?{type:"RESERVED_KEYWORD"}:RESERVED_KEYWORD]},{name:"keyword$subexpression$1",symbols:[re.has("RESERVED_KEYWORD_PHRASE")?{type:"RESERVED_KEYWORD_PHRASE"}:RESERVED_KEYWORD_PHRASE]},{name:"keyword$subexpression$1",symbols:[re.has("RESERVED_JOIN")?{type:"RESERVED_JOIN"}:RESERVED_JOIN]},{name:"keyword",symbols:["keyword$subexpression$1"],postprocess:([[e]])=>$e(e)},{name:"data_type$subexpression$1",symbols:[re.has("RESERVED_DATA_TYPE")?{type:"RESERVED_DATA_TYPE"}:RESERVED_DATA_TYPE]},{name:"data_type$subexpression$1",symbols:[re.has("RESERVED_DATA_TYPE_PHRASE")?{type:"RESERVED_DATA_TYPE_PHRASE"}:RESERVED_DATA_TYPE_PHRASE]},{name:"data_type",symbols:["data_type$subexpression$1"],postprocess:([[e]])=>bR(e)},{name:"data_type",symbols:[re.has("RESERVED_PARAMETERIZED_DATA_TYPE")?{type:"RESERVED_PARAMETERIZED_DATA_TYPE"}:RESERVED_PARAMETERIZED_DATA_TYPE,"_","parenthesis"],postprocess:([e,t,E])=>({type:Z.parameterized_data_type,dataType:je(bR(e),{trailing:t}),parenthesis:E})},{name:"logic_operator$subexpression$1",symbols:[re.has("AND")?{type:"AND"}:AND]},{name:"logic_operator$subexpression$1",symbols:[re.has("OR")?{type:"OR"}:OR]},{name:"logic_operator$subexpression$1",symbols:[re.has("XOR")?{type:"XOR"}:XOR]},{name:"logic_operator",symbols:["logic_operator$subexpression$1"],postprocess:([[e]])=>$e(e)},{name:"other_keyword$subexpression$1",symbols:[re.has("WHEN")?{type:"WHEN"}:WHEN]},{name:"other_keyword$subexpression$1",symbols:[re.has("THEN")?{type:"THEN"}:THEN]},{name:"other_keyword$subexpression$1",symbols:[re.has("ELSE")?{type:"ELSE"}:ELSE]},{name:"other_keyword$subexpression$1",symbols:[re.has("END")?{type:"END"}:END]},{name:"other_keyword",symbols:["other_keyword$subexpression$1"],postprocess:([[e]])=>$e(e)},{name:"_$ebnf$1",symbols:[]},{name:"_$ebnf$1",symbols:["_$ebnf$1","comment"],postprocess:e=>e[0].concat([e[1]])},{name:"_",symbols:["_$ebnf$1"],postprocess:([e])=>e},{name:"comment",symbols:[re.has("LINE_COMMENT")?{type:"LINE_COMMENT"}:LINE_COMMENT],postprocess:([e])=>({type:Z.line_comment,text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[re.has("BLOCK_COMMENT")?{type:"BLOCK_COMMENT"}:BLOCK_COMMENT],postprocess:([e])=>({type:Z.block_comment,text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[re.has("DISABLE_COMMENT")?{type:"DISABLE_COMMENT"}:DISABLE_COMMENT],postprocess:([e])=>({type:Z.disable_comment,text:e.text,precedingWhitespace:e.precedingWhitespace})}],ParserStart:"main"},{Parser:t_,Grammar:E_}=XL;function n_(e){let t={};const E=new mS(r=>[...KL(e.tokenize(r,t)),uS(r.length)]),n=new t_(E_.fromCompiled(e_),{lexer:E});return{parse:(r,s)=>{t=s;const{results:l}=n.feed(r);if(l.length===1)return l[0];throw l.length===0?new Error("Parse error: Invalid SQL"):new Error(`Parse error: Ambiguous grammar -${JSON.stringify(l,void 0,2)}`)}}}var g;(function(e){e[e.SPACE=0]="SPACE",e[e.NO_SPACE=1]="NO_SPACE",e[e.NO_NEWLINE=2]="NO_NEWLINE",e[e.NEWLINE=3]="NEWLINE",e[e.MANDATORY_NEWLINE=4]="MANDATORY_NEWLINE",e[e.INDENT=5]="INDENT",e[e.SINGLE_INDENT=6]="SINGLE_INDENT"})(g=g||(g={}));class MS{constructor(t){this.indentation=t,this.items=[]}add(...t){for(const E of t)switch(E){case g.SPACE:this.items.push(g.SPACE);break;case g.NO_SPACE:this.trimHorizontalWhitespace();break;case g.NO_NEWLINE:this.trimWhitespace();break;case g.NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(g.NEWLINE);break;case g.MANDATORY_NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(g.MANDATORY_NEWLINE);break;case g.INDENT:this.addIndentation();break;case g.SINGLE_INDENT:this.items.push(g.SINGLE_INDENT);break;default:this.items.push(E)}}trimHorizontalWhitespace(){for(;r_(Rr(this.items));)this.items.pop()}trimWhitespace(){for(;s_(Rr(this.items));)this.items.pop()}addNewline(t){if(this.items.length>0)switch(Rr(this.items)){case g.NEWLINE:this.items.pop(),this.items.push(t);break;case g.MANDATORY_NEWLINE:break;default:this.items.push(t);break}}addIndentation(){for(let t=0;tthis.itemToString(t)).join("")}getLayoutItems(){return this.items}itemToString(t){switch(t){case g.SPACE:return" ";case g.NEWLINE:case g.MANDATORY_NEWLINE:return` -`;case g.SINGLE_INDENT:return this.indentation.getSingleIndent();default:return t}}}const r_=e=>e===g.SPACE||e===g.SINGLE_INDENT,s_=e=>e===g.SPACE||e===g.SINGLE_INDENT||e===g.NEWLINE;function WR(e,t){if(t==="standard")return e;let E=[];return e.length>=10&&e.includes(" ")&&([e,...E]=e.split(" ")),t==="tabularLeft"?e=e.padEnd(9," "):e=e.padStart(9," "),e+["",...E].join(" ")}function XR(e){return WO(e)||e===v.RESERVED_CLAUSE||e===v.RESERVED_SELECT||e===v.RESERVED_SET_OPERATION||e===v.RESERVED_JOIN||e===v.LIMIT}const nl="top-level",T_="block-level";class US{constructor(t){this.indent=t,this.indentTypes=[]}getSingleIndent(){return this.indent}getLevel(){return this.indentTypes.length}increaseTopLevel(){this.indentTypes.push(nl)}increaseBlockLevel(){this.indentTypes.push(T_)}decreaseTopLevel(){this.indentTypes.length>0&&Rr(this.indentTypes)===nl&&this.indentTypes.pop()}decreaseBlockLevel(){for(;this.indentTypes.length>0&&this.indentTypes.pop()===nl;);}}class l_ extends MS{constructor(t){super(new US("")),this.expressionWidth=t,this.length=0,this.trailingSpace=!1}add(...t){if(t.forEach(E=>this.addToLength(E)),this.length>this.expressionWidth)throw new to;super.add(...t)}addToLength(t){if(typeof t=="string")this.length+=t.length,this.trailingSpace=!1;else{if(t===g.MANDATORY_NEWLINE||t===g.NEWLINE)throw new to;t===g.INDENT||t===g.SINGLE_INDENT||t===g.SPACE?this.trailingSpace||(this.length++,this.trailingSpace=!0):(t===g.NO_NEWLINE||t===g.NO_SPACE)&&this.trailingSpace&&(this.trailingSpace=!1,this.length--)}}}class to extends Error{}class ws{constructor({cfg:t,dialectCfg:E,params:n,layout:r,inline:s=!1}){this.inline=!1,this.nodes=[],this.index=-1,this.cfg=t,this.dialectCfg=E,this.inline=s,this.params=n,this.layout=r}format(t){for(this.nodes=t,this.index=0;this.index{this.layout.add(this.showFunctionKw(t.nameKw))}),this.formatNode(t.parenthesis)}formatParameterizedDataType(t){this.withComments(t.dataType,()=>{this.layout.add(this.showDataType(t.dataType))}),this.formatNode(t.parenthesis)}formatArraySubscript(t){let E;switch(t.array.type){case Z.data_type:E=this.showDataType(t.array);break;case Z.keyword:E=this.showKw(t.array);break;default:E=this.showIdentifier(t.array);break}this.withComments(t.array,()=>{this.layout.add(E)}),this.formatNode(t.parenthesis)}formatPropertyAccess(t){this.formatNode(t.object),this.layout.add(g.NO_SPACE,t.operator),this.formatNode(t.property)}formatParenthesis(t){const E=this.formatInlineExpression(t.children);E?(this.layout.add(t.openParen),this.layout.add(...E.getLayoutItems()),this.layout.add(g.NO_SPACE,t.closeParen,g.SPACE)):(this.layout.add(t.openParen,g.NEWLINE),rn(this.cfg)?(this.layout.add(g.INDENT),this.layout=this.formatSubExpression(t.children)):(this.layout.indentation.increaseBlockLevel(),this.layout.add(g.INDENT),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseBlockLevel()),this.layout.add(g.NEWLINE,g.INDENT,t.closeParen,g.SPACE))}formatBetweenPredicate(t){this.layout.add(this.showKw(t.betweenKw),g.SPACE),this.layout=this.formatSubExpression(t.expr1),this.layout.add(g.NO_SPACE,g.SPACE,this.showNonTabularKw(t.andKw),g.SPACE),this.layout=this.formatSubExpression(t.expr2),this.layout.add(g.SPACE)}formatCaseExpression(t){this.formatNode(t.caseKw),this.layout.indentation.increaseBlockLevel(),this.layout=this.formatSubExpression(t.expr),this.layout=this.formatSubExpression(t.clauses),this.layout.indentation.decreaseBlockLevel(),this.layout.add(g.NEWLINE,g.INDENT),this.formatNode(t.endKw)}formatCaseWhen(t){this.layout.add(g.NEWLINE,g.INDENT),this.formatNode(t.whenKw),this.layout=this.formatSubExpression(t.condition),this.formatNode(t.thenKw),this.layout=this.formatSubExpression(t.result)}formatCaseElse(t){this.layout.add(g.NEWLINE,g.INDENT),this.formatNode(t.elseKw),this.layout=this.formatSubExpression(t.result)}formatClause(t){this.isOnelineClause(t)?this.formatClauseInOnelineStyle(t):rn(this.cfg)?this.formatClauseInTabularStyle(t):this.formatClauseInIndentedStyle(t)}isOnelineClause(t){return rn(this.cfg)?this.dialectCfg.tabularOnelineClauses[t.nameKw.text]:this.dialectCfg.onelineClauses[t.nameKw.text]}formatClauseInIndentedStyle(t){this.layout.add(g.NEWLINE,g.INDENT,this.showKw(t.nameKw),g.NEWLINE),this.layout.indentation.increaseTopLevel(),this.layout.add(g.INDENT),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatClauseInOnelineStyle(t){this.layout.add(g.NEWLINE,g.INDENT,this.showKw(t.nameKw),g.SPACE),this.layout=this.formatSubExpression(t.children)}formatClauseInTabularStyle(t){this.layout.add(g.NEWLINE,g.INDENT,this.showKw(t.nameKw),g.SPACE),this.layout.indentation.increaseTopLevel(),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatSetOperation(t){this.layout.add(g.NEWLINE,g.INDENT,this.showKw(t.nameKw),g.NEWLINE),this.layout.add(g.INDENT),this.layout=this.formatSubExpression(t.children)}formatLimitClause(t){this.withComments(t.limitKw,()=>{this.layout.add(g.NEWLINE,g.INDENT,this.showKw(t.limitKw))}),this.layout.indentation.increaseTopLevel(),rn(this.cfg)?this.layout.add(g.SPACE):this.layout.add(g.NEWLINE,g.INDENT),t.offset?(this.layout=this.formatSubExpression(t.offset),this.layout.add(g.NO_SPACE,",",g.SPACE),this.layout=this.formatSubExpression(t.count)):this.layout=this.formatSubExpression(t.count),this.layout.indentation.decreaseTopLevel()}formatAllColumnsAsterisk(t){this.layout.add("*",g.SPACE)}formatLiteral(t){this.layout.add(t.text,g.SPACE)}formatIdentifier(t){this.layout.add(this.showIdentifier(t),g.SPACE)}formatParameter(t){this.layout.add(this.params.get(t),g.SPACE)}formatOperator({text:t}){this.cfg.denseOperators||this.dialectCfg.alwaysDenseOperators.includes(t)?this.layout.add(g.NO_SPACE,t):t===":"?this.layout.add(g.NO_SPACE,t,g.SPACE):this.layout.add(t,g.SPACE)}formatComma(t){this.inline?this.layout.add(g.NO_SPACE,",",g.SPACE):this.layout.add(g.NO_SPACE,",",g.NEWLINE,g.INDENT)}withComments(t,E){this.formatComments(t.leadingComments),E(),this.formatComments(t.trailingComments)}formatComments(t){t&&t.forEach(E=>{E.type===Z.line_comment?this.formatLineComment(E):this.formatBlockComment(E)})}formatLineComment(t){el(t.precedingWhitespace||"")?this.layout.add(g.NEWLINE,g.INDENT,t.text,g.MANDATORY_NEWLINE,g.INDENT):this.layout.getLayoutItems().length>0?this.layout.add(g.NO_NEWLINE,g.SPACE,t.text,g.MANDATORY_NEWLINE,g.INDENT):this.layout.add(t.text,g.MANDATORY_NEWLINE,g.INDENT)}formatBlockComment(t){t.type===Z.block_comment&&this.isMultilineBlockComment(t)?(this.splitBlockComment(t.text).forEach(E=>{this.layout.add(g.NEWLINE,g.INDENT,E)}),this.layout.add(g.NEWLINE,g.INDENT)):this.layout.add(t.text,g.SPACE)}isMultilineBlockComment(t){return el(t.text)||el(t.precedingWhitespace||"")}isDocComment(t){const E=t.split(/\n/);return/^\/\*\*?$/.test(E[0])&&E.slice(1,E.length-1).every(n=>/^\s*\*/.test(n))&&/^\s*\*\/$/.test(Rr(E))}splitBlockComment(t){return this.isDocComment(t)?t.split(/\n/).map(E=>/^\s*\*/.test(E)?" "+E.replace(/^\s*/,""):E):t.split(/\n/).map(E=>E.replace(/^\s*/,""))}formatSubExpression(t){return new ws({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:this.layout,inline:this.inline}).format(t)}formatInlineExpression(t){const E=this.params.getPositionalParameterIndex();try{return new ws({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:new l_(this.cfg.expressionWidth),inline:!0}).format(t)}catch(n){if(n instanceof to){this.params.setPositionalParameterIndex(E);return}else throw n}}formatKeywordNode(t){switch(t.tokenType){case v.RESERVED_JOIN:return this.formatJoin(t);case v.AND:case v.OR:case v.XOR:return this.formatLogicalOperator(t);default:return this.formatKeyword(t)}}formatJoin(t){rn(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(g.NEWLINE,g.INDENT,this.showKw(t),g.SPACE),this.layout.indentation.increaseTopLevel()):this.layout.add(g.NEWLINE,g.INDENT,this.showKw(t),g.SPACE)}formatKeyword(t){this.layout.add(this.showKw(t),g.SPACE)}formatLogicalOperator(t){this.cfg.logicalOperatorNewline==="before"?rn(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(g.NEWLINE,g.INDENT,this.showKw(t),g.SPACE),this.layout.indentation.increaseTopLevel()):this.layout.add(g.NEWLINE,g.INDENT,this.showKw(t),g.SPACE):this.layout.add(this.showKw(t),g.NEWLINE,g.INDENT)}formatDataType(t){this.layout.add(this.showDataType(t),g.SPACE)}showKw(t){return XR(t.tokenType)?WR(this.showNonTabularKw(t),this.cfg.indentStyle):this.showNonTabularKw(t)}showNonTabularKw(t){switch(this.cfg.keywordCase){case"preserve":return is(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showFunctionKw(t){return XR(t.tokenType)?WR(this.showNonTabularFunctionKw(t),this.cfg.indentStyle):this.showNonTabularFunctionKw(t)}showNonTabularFunctionKw(t){switch(this.cfg.functionCase){case"preserve":return is(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showIdentifier(t){if(t.quoted)return t.text;switch(this.cfg.identifierCase){case"preserve":return t.text;case"upper":return t.text.toUpperCase();case"lower":return t.text.toLowerCase()}}showDataType(t){switch(this.cfg.dataTypeCase){case"preserve":return is(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}}class o_{constructor(t,E){this.dialect=t,this.cfg=E,this.params=new bL(this.cfg.params)}format(t){const E=this.parse(t);return this.formatAst(E).trimEnd()}parse(t){return n_(this.dialect.tokenizer).parse(t,this.cfg.paramTypes||{})}formatAst(t){return t.map(E=>this.formatStatement(E)).join(` -`.repeat(this.cfg.linesBetweenQueries+1))}formatStatement(t){const E=new ws({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new MS(new US(VL(this.cfg)))}).format(t.children);return t.hasSemicolon&&(this.cfg.newlineBeforeSemicolon?E.add(g.NEWLINE,";"):E.add(g.NO_NEWLINE,";")),E.toString()}}class As extends Error{}function a_(e){const t=["multilineLists","newlineBeforeOpenParen","newlineBeforeCloseParen","aliasAs","commaPosition","tabulateAlias"];for(const E of t)if(E in e)throw new As(`${E} config is no more supported.`);if(e.expressionWidth<=0)throw new As(`expressionWidth config must be positive number. Received ${e.expressionWidth} instead.`);if(e.params&&!R_(e.params)&&console.warn('WARNING: All "params" option values should be strings.'),e.paramTypes&&!i_(e.paramTypes))throw new As("Empty regex given in custom paramTypes. That would result in matching infinite amount of parameters.");return e}function R_(e){return(e instanceof Array?e:Object.values(e)).every(E=>typeof E=="string")}function i_(e){return e.custom&&Array.isArray(e.custom)?e.custom.every(t=>t.regex!==""):!0}var A_=function(e,t){var E={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(E[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r{if(typeof t.language=="string"&&!S_.includes(t.language))throw new As(`Unsupported SQL dialect: ${t.language}`);const E=hS[t.language||"sql"];return O_(e,Object.assign(Object.assign({},t),{dialect:PL[E]}))},O_=(e,t)=>{var{dialect:E}=t,n=A_(t,["dialect"]);if(typeof e!="string")throw new Error("Invalid query argument. Expected string, instead got "+typeof e);const r=a_(Object.assign(Object.assign({},N_),n));return new o_(FL(E),r).format(e)},Jn=new Map,KR=(e,t)=>{if(e==null)return"";const E=`${e}-${t}`;if(Jn.has(E))return Jn.get(E);const n=String(e),r=(t||"").toLowerCase(),s=r.includes("datetime")||r.includes("timestamp"),l=r.includes("date")&&!s,o=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})/,a=/^(\d{4})-(\d{2})-(\d{2})$/;let R=n;const A=n.match(o),N=n.match(a);if(s||A){if(A){const[,i,O,C,u,D,I]=A;R=`${i}/${O}/${C} ${u}:${D}:${I}`}}else if((l||N)&&N){const[,i,O,C]=N;R=`${i}/${O}/${C}`}return Jn.size>1e4&&Jn.clear(),Jn.set(E,R),R},rl=e=>{if(!e)return 0;let t=0;for(let E=0;E255?14:8;return t},xS=f.memo(function({columns:t,data:E,showColumnInfo:n=!1,editable:r=!1,primaryKeyColumn:s,onCellChange:l,onDeleteRow:o,onDeleteRows:a,onRefresh:R,modifiedCells:A,rowHeight:N=28,overscan:i=20}){const[O,C]=f.useState(new Set),u=f.useRef(null),D=f.useRef(0),I=f.useRef(0),[,S]=f.useState(0),[c,L]=f.useState(0),[B,p]=f.useState(null),[P,y]=f.useState(""),[Y,K]=f.useState(null),oe=f.useRef(null),[_e,F]=f.useState(""),[He,Ie]=f.useState(!1),[me,le]=f.useState(0),X=f.useRef(null),[ee,te]=f.useState(!1),[Ee,Re]=f.useState(new Set),[Fe,Ye]=f.useState(null),[Me,Ve]=f.useState(!1),[be,ze]=f.useState(null),Et=f.useMemo(()=>{const G=new Set;return Ee.forEach(x=>{const W=x.indexOf("-");W>0&&G.add(parseInt(x.substring(0,W)))}),G},[Ee]),iE=f.useMemo(()=>t.some(G=>G.comment),[t]),Mt=n?iE?58:44:28,Oe=r?48:0,Ce=f.useMemo(()=>[...t].sort((G,x)=>{const W=O.has(G.name)?0:1,Ae=O.has(x.name)?0:1;return W-Ae}),[t,O]),Lt=f.useMemo(()=>{const G={};for(const H of Ce){let z=rl(H.name)+24+20;n&&H.type&&(z=Math.max(z,rl(H.type)+24));let de=0;const ot=Math.min(E.length,100);for(let Le=0;Le{const G={};let x=Oe;for(const W of Ce)O.has(W.name)&&(G[W.name]=x,x+=Lt[W.name]||100);return G},[Ce,O,Lt,Oe]),zt=f.useMemo(()=>{if(!_e)return new Set;const G=new Set,x=_e.toLowerCase();for(let W=0;W[...zt],[zt]),Qe=f.useMemo(()=>{const G=D.current,x=Math.max(0,Math.floor(G/N)-i),W=Math.ceil(c/N),Ae=Math.min(E.length-1,x+W+i*2);return{startIndex:x,endIndex:Ae,totalHeight:E.length*N,offsetY:x*N}},[E.length,D.current,c,N,i]),ve=f.useMemo(()=>Oe+Ce.reduce((G,x)=>G+(Lt[x.name]||100),0),[Ce,Lt,Oe]);f.useEffect(()=>{const G=u.current;if(!G)return;const x=()=>L(G.clientHeight-Mt);let W=null;const Ae=()=>{W||(W=requestAnimationFrame(()=>{D.current=G.scrollTop,I.current=G.scrollLeft,S(z=>z+1),W=null}))};x(),G.addEventListener("scroll",Ae,{passive:!0});const H=new ResizeObserver(x);return H.observe(G),()=>{G.removeEventListener("scroll",Ae),H.disconnect(),W&&cancelAnimationFrame(W)}},[Mt]);const AE=f.useCallback(G=>{C(x=>{const W=new Set(x);return W.has(G)?W.delete(G):W.add(G),W})},[]),St=f.useCallback(G=>Ce.findIndex(x=>x.name===G),[Ce]),lt=f.useCallback((G,x)=>{const W=new Set,Ae=Math.min(G.row,x.row),H=Math.max(G.row,x.row),z=Math.min(St(G.col),St(x.col)),de=Math.max(St(G.col),St(x.col));for(let ot=Ae;ot<=H;ot++)for(let Le=z;Le<=de;Le++)Ce[Le]&&W.add(`${ot}-${Ce[Le].name}`);return W},[Ce,St]),Qt=f.useCallback((G,x,W)=>{if(W.button!==0)return;const Ae=`${G}-${x}`;W.shiftKey&&be?Re(lt(be,{row:G,col:x})):W.ctrlKey||W.metaKey?(Re(H=>{const z=new Set(H);return z.has(Ae)?z.delete(Ae):z.add(Ae),z}),ze({row:G,col:x})):(Re(new Set([Ae])),Ye({row:G,col:x}),ze({row:G,col:x}),Ve(!0))},[be,lt]),SE=f.useCallback((G,x)=>{Me&&Fe&&Re(lt(Fe,{row:G,col:x}))},[Me,Fe,lt]);f.useEffect(()=>{const G=()=>Ve(!1);return window.addEventListener("mouseup",G),()=>window.removeEventListener("mouseup",G)},[]);const ue=f.useCallback(G=>{if(j.length===0)return;const x=j[G];if(!x)return;const W=x.indexOf("-"),Ae=parseInt(x.substring(0,W)),H=x.substring(W+1),z=u.current;z&&(z.scrollTop=Math.max(0,Ae*N-c/2)),Re(new Set([x])),ze({row:Ae,col:H})},[j,N,c]),m=f.useCallback(()=>{if(j.length===0)return;const G=(me+1)%j.length;le(G),ue(G)},[me,j.length,ue]),w=f.useCallback(()=>{if(j.length===0)return;const G=(me-1+j.length)%j.length;le(G),ue(G)},[me,j.length,ue]);f.useEffect(()=>{const G=x=>{(x.ctrlKey||x.metaKey)&&x.key==="f"&&ee&&(x.preventDefault(),Ie(!0),setTimeout(()=>X.current?.focus(),50)),x.key==="Escape"&&He&&(Ie(!1),F(""))};return window.addEventListener("keydown",G),()=>window.removeEventListener("keydown",G)},[ee,He]);const J=f.useCallback(()=>{if(Ee.size===E.length*Ce.length)Re(new Set);else{const G=new Set;for(let x=0;x{Re(new Set),ze(null),p(null)},[]),{startIndex:b,endIndex:ne,totalHeight:ie,offsetY:_t}=Qe,NE=I.current;return T.jsxs("div",{className:"navi-table-container",tabIndex:0,onFocus:()=>te(!0),onBlur:G=>{G.currentTarget.contains(G.relatedTarget)||te(!1)},onMouseEnter:()=>te(!0),children:[He&&T.jsxs("div",{className:"navi-search-bar",children:[T.jsx(NS,{size:14,className:"text-gray-400"}),T.jsx("input",{ref:X,type:"text",value:_e,onChange:G=>F(G.target.value),placeholder:"搜索数据... (Enter 下一个)",className:"navi-search-input",onKeyDown:G=>{G.key==="Enter"&&!G.shiftKey?(G.preventDefault(),m()):G.key==="Enter"&&G.shiftKey&&(G.preventDefault(),w())}}),_e&&T.jsx("span",{className:"text-xs text-gray-500",children:j.length>0?`${me+1}/${j.length}`:"0/0"}),T.jsx("button",{onClick:w,disabled:j.length===0,className:"navi-search-btn",children:T.jsx(RS,{size:16})}),T.jsx("button",{onClick:m,disabled:j.length===0,className:"navi-search-btn",children:T.jsx(xn,{size:16})}),T.jsx("button",{onClick:()=>{Ie(!1),F("")},className:"navi-search-btn",children:T.jsx(RE,{size:16})})]}),T.jsxs("div",{ref:u,className:"navi-scroll-container",onClick:G=>{(G.target===G.currentTarget||G.target.classList.contains("navi-body"))&&Te()},children:[T.jsxs("div",{className:"navi-header",style:{minWidth:ve},children:[r&&T.jsx("div",{className:"navi-row-number-header",style:{width:Oe},onClick:J,children:"#"}),Ce.map(G=>{const x=O.has(G.name),W=Lt[G.name]||100;return T.jsx("div",{onClick:()=>AE(G.name),className:`navi-header-cell ${x?"pinned":""}`,style:{width:W,minWidth:W,position:x?"sticky":"relative",left:x?Jt[G.name]:"auto",boxShadow:x&&NE>0?"2px 0 4px rgba(0,0,0,0.3)":"none",height:Mt},title:x?`取消固定 ${G.name}`:`固定 ${G.name}`,children:T.jsxs("div",{className:"navi-header-content",children:[T.jsxs("div",{className:"navi-header-row",children:[T.jsx("span",{className:"navi-col-name",children:G.name}),n&&G.key==="PRI"&&T.jsx(Qo,{size:10,className:"text-amber-500"}),T.jsx("span",{className:`navi-pin-icon ${x?"active":""}`,children:x?T.jsx(_O,{size:10}):T.jsx(LO,{size:10})})]}),n&&G.type&&T.jsx("div",{className:"navi-col-type",children:G.type}),n&&G.comment&&T.jsx("div",{className:"navi-col-comment",title:G.comment,children:G.comment})]})},G.name)})]}),T.jsx("div",{className:"navi-body",style:{height:Math.max(ie,c),minWidth:ve},onClick:G=>{G.target===G.currentTarget&&Te()},children:T.jsx("div",{className:"navi-rows-container",style:{transform:`translateY(${_t}px)`},children:Array.from({length:ne-b+1},(G,x)=>{const W=b+x,Ae=E[W];if(!Ae)return null;const H=Et.has(W);return T.jsxs("div",{className:`navi-row ${H?"selected":""}`,style:{height:N},onContextMenu:z=>{if(r){if(z.preventDefault(),Et.size===0){const de=Ce[0]?.name;de&&(Re(new Set([`${W}-${de}`])),ze({row:W,col:de}))}K({x:z.clientX,y:z.clientY,row:W,col:""})}},children:[r&&T.jsx("div",{className:`navi-row-number ${H?"selected":""}`,style:{width:Oe,height:N},onClick:z=>{const de=new Set;for(const ot of Ce)de.add(`${W}-${ot.name}`);z.ctrlKey||z.metaKey?Re(ot=>{const Le=new Set(ot);return de.forEach(he=>{Le.has(he)?Le.delete(he):Le.add(he)}),Le}):(Re(de),ze({row:W,col:Ce[0]?.name||""}))},children:W+1}),Ce.map(z=>{const de=O.has(z.name),ot=Lt[z.name]||100,Le=Ae[z.name],he=`${W}-${z.name}`,wn=B?.row===W&&B?.col===z.name,sT=Ee.has(he),gr=be?.row===W&&be?.col===z.name,TT=A?.has(he),lT=zt.has(he),oT=j[me]===he;let tn=null;Le!=null&&(tn=typeof Le=="object"?JSON.stringify(Le):KR(Le,z.type||""));let Zt="transparent";return oT?Zt="#665500":lT?Zt="rgba(255, 200, 0, 0.15)":gr?Zt="#264f78":sT?Zt="rgba(38, 79, 120, 0.5)":TT?Zt="rgba(249, 115, 22, 0.15)":de&&(Zt="#1e2d3d"),T.jsx("div",{className:"navi-cell",style:{background:Zt,position:de?"sticky":"relative",left:de?Jt[z.name]:"auto",width:ot,minWidth:ot,maxWidth:ot,height:N,boxShadow:de&&NE>0?"2px 0 4px rgba(0,0,0,0.3)":"none",outline:gr?"1px solid #007acc":"none",outlineOffset:"-1px",zIndex:de?10:1},onMouseDown:d=>Qt(W,z.name,d),onMouseEnter:()=>SE(W,z.name),onDoubleClick:()=>{r&&(p({row:W,col:z.name}),y(Le===null?"":String(Le)),setTimeout(()=>oe.current?.focus(),0))},onContextMenu:d=>{d.preventDefault(),d.stopPropagation(),Ee.has(he)||(Re(new Set([he])),ze({row:W,col:z.name})),K({x:d.clientX,y:d.clientY,row:W,col:z.name})},title:tn||"",children:wn?T.jsx("input",{ref:oe,type:"text",value:P,onChange:d=>y(d.target.value),onBlur:()=>{P!==(Le===null?"":String(Le))&&l?.(W,z.name,P===""?null:P),p(null)},onKeyDown:d=>{d.key==="Enter"?(P!==(Le===null?"":String(Le))&&l?.(W,z.name,P===""?null:P),p(null)):d.key==="Escape"&&p(null)},onClick:d=>d.stopPropagation(),onMouseDown:d=>d.stopPropagation(),className:"navi-cell-input",autoFocus:!0}):Le===null?T.jsx("span",{className:"navi-null",children:"NULL"}):Le===""?T.jsx("span",{className:"navi-empty"}):typeof Le=="object"?T.jsx("span",{className:"navi-json",children:tn}):T.jsx("span",{className:"navi-value",children:tn})},z.name)})]},W)})})}),E.length===0&&T.jsx("div",{className:"navi-empty",children:"暂无数据"})]}),Y&&T.jsxs(T.Fragment,{children:[T.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>{K(null),Re(new Set)}}),T.jsxs("div",{className:"navi-context-menu",style:{left:Math.min(Y.x,window.innerWidth-200),top:Math.min(Y.y,window.innerHeight-300)},children:[Ee.size>0&&T.jsxs("div",{className:"navi-context-info",children:["已选 ",Ee.size," 格 · ",Et.size," 行"]}),T.jsxs("button",{className:"navi-context-item",onClick:async()=>{const G=[...Ee][0];if(G){const x=G.indexOf("-"),W=parseInt(G.substring(0,x)),Ae=G.substring(x+1),H=E[W]?.[Ae];H!=null&&await navigator.clipboard.writeText(String(H))}K(null)},children:[T.jsx(nT,{size:13}),T.jsx("span",{children:"复制"}),T.jsx("span",{className:"navi-shortcut",children:"Ctrl+C"})]}),r&&T.jsxs(T.Fragment,{children:[T.jsxs("button",{className:"navi-context-item",onClick:async()=>{if(Y.col&&Ee.size===1){const G=await navigator.clipboard.readText();l?.(Y.row,Y.col,G)}K(null)},children:[T.jsx(AO,{size:13}),T.jsx("span",{children:"粘贴"}),T.jsx("span",{className:"navi-shortcut",children:"Ctrl+V"})]}),T.jsx("div",{className:"navi-context-divider"}),T.jsxs("button",{className:"navi-context-item warning",onClick:()=>{Ee.forEach(G=>{const x=G.indexOf("-"),W=parseInt(G.substring(0,x)),Ae=G.substring(x+1);l?.(W,Ae,null)}),K(null)},children:[T.jsx(NO,{size:13}),T.jsxs("span",{children:["设为 ",T.jsx("span",{className:"font-mono",children:"NULL"})]}),Ee.size>1&&T.jsxs("span",{className:"navi-shortcut",children:[Ee.size,"格"]})]}),T.jsxs("button",{className:"navi-context-item",onClick:()=>{Ee.forEach(G=>{const x=G.indexOf("-"),W=parseInt(G.substring(0,x)),Ae=G.substring(x+1);l?.(W,Ae,"")}),K(null)},children:[T.jsx(pO,{size:13}),T.jsx("span",{children:"设为空字符串"}),Ee.size>1&&T.jsxs("span",{className:"navi-shortcut",children:[Ee.size,"格"]})]}),T.jsx("div",{className:"navi-context-divider"}),T.jsxs("button",{className:"navi-context-item danger",onClick:()=>{if(Et.size>1){const G=[...Et].sort((x,W)=>W-x);a?a(G):G.forEach(x=>o?.(x))}else o?.(Y.row);K(null),Re(new Set)},children:[T.jsx(yE,{size:13}),Et.size>1?`删除 ${Et.size} 行`:"删除此行"]})]}),T.jsx("div",{className:"navi-context-divider"}),T.jsxs("button",{className:"navi-context-item success",onClick:()=>{R?.(),K(null),Re(new Set)},children:[T.jsx(eo,{size:13}),T.jsx("span",{children:"刷新数据"}),T.jsx("span",{className:"navi-shortcut",children:"F5"})]})]})]})]})}),u_=f.lazy(()=>gO(()=>import("./SqlEditor-BZP69oik.js").then(e=>e.S),__vite__mapDeps([0,1]),import.meta.url)),c_=f.memo(()=>T.jsx("div",{className:"h-full flex items-center justify-center bg-metro-dark",children:T.jsxs("div",{className:"flex flex-col items-center gap-3",children:[T.jsx(Mr,{className:"w-8 h-8 animate-spin text-accent-blue"}),T.jsx("span",{className:"text-sm text-text-tertiary",children:"加载编辑器..."})]})})),C_=f.memo(function({tabs:t,activeTab:E,databases:n,tables:r,columns:s,onTabChange:l,onCloseTab:o,onNewQuery:a,onRunQuery:R,onUpdateSql:A,onUpdateTabTitle:N,onLoadTablePage:i,onChangeTablePageSize:O,onNewConnectionWithType:C,onUpdateTableCell:u,onDeleteTableRow:D,onDeleteTableRows:I,onSaveTableChanges:S,onDiscardTableChanges:c,onRefreshTable:L,loadingTables:B}){f.useEffect(()=>{const Y=K=>{if(K.ctrlKey&&K.key==="w"&&(K.preventDefault(),E!=="welcome"&&o(E)),K.ctrlKey&&K.key==="s"){const oe=t.find(_e=>_e.id===E);oe&&"tableName"in oe&&oe.pendingChanges?.size>0&&(K.preventDefault(),S?.(E))}};return window.addEventListener("keydown",Y),()=>window.removeEventListener("keydown",Y)},[E,t,o,S]);const p=t.find(Y=>Y.id===E),P=Y=>"tableName"in Y?Y.tableName:Y.title,y=Y=>"tableName"in Y?T.jsx(Fn,{size:12,className:"text-accent-orange"}):null;return T.jsxs("div",{className:"flex-1 flex flex-col bg-metro-dark",children:[T.jsxs("div",{className:"h-10 bg-metro-bg flex items-stretch px-1 border-b border-metro-border/50 overflow-x-auto",children:[T.jsxs("button",{onClick:()=>l("welcome"),className:`px-5 text-sm flex items-center transition-all duration-150 shrink-0 relative - ${E==="welcome"?"bg-metro-dark text-white font-medium":"text-text-secondary hover:text-white hover:bg-metro-hover"}`,children:["主页",E==="welcome"&&T.jsx("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-accent-blue"})]}),t.map(Y=>T.jsxs("div",{className:`px-4 flex items-center gap-2 text-sm group transition-all duration-150 shrink-0 relative - ${E===Y.id?"bg-metro-dark text-white font-medium":"text-text-secondary hover:text-white hover:bg-metro-hover"}`,children:[T.jsxs("button",{onClick:()=>l(Y.id),className:"flex items-center gap-2",children:[y(Y),T.jsx("span",{className:"max-w-[120px] truncate",children:P(Y)})]}),T.jsx("button",{onClick:()=>o(Y.id),className:"opacity-0 group-hover:opacity-100 hover:text-accent-red p-0.5 rounded-sm hover:bg-white/10 transition-all",children:T.jsx(RE,{size:14})}),E===Y.id&&T.jsx("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-accent-blue"})]},Y.id)),T.jsx("button",{onClick:a,className:"w-10 flex items-center justify-center text-text-tertiary hover:text-white hover:bg-metro-hover shrink-0 transition-colors",title:"新建查询 (Ctrl+Q)",children:T.jsx(Bn,{size:18})})]}),T.jsx("div",{className:"flex-1 min-h-0",children:E==="welcome"?T.jsx(L_,{onNewQuery:a,onNewConnectionWithType:C}):p?"tableName"in p?T.jsx(__,{tab:p,isLoading:B?.has(p.id),onLoadPage:Y=>i(p.id,Y),onChangePageSize:Y=>O?.(p.id,Y),onCellChange:(Y,K,oe)=>u?.(p.id,Y,K,oe),onDeleteRow:Y=>D?.(p.id,Y),onDeleteRows:Y=>I?.(p.id,Y),onSave:()=>S?.(p.id),onDiscard:()=>c?.(p.id),onRefresh:()=>L?.(p.id)}):T.jsx(d_,{tab:p,databases:n,tables:r,columns:s,onRun:Y=>R(p.id,Y),onUpdateSql:Y=>A(p.id,Y),onUpdateTitle:Y=>N(p.id,Y)}):null})]})}),L_=f.memo(function({onNewQuery:t,onNewConnectionWithType:E}){return T.jsxs("div",{className:"h-full flex flex-col items-center justify-center bg-gradient-to-b from-metro-dark via-metro-dark to-metro-bg relative overflow-hidden",children:[T.jsxs("div",{className:"absolute inset-0 pointer-events-none",children:[T.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-accent-blue/5 rounded-full blur-3xl"}),T.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-64 h-64 bg-accent-purple/5 rounded-full blur-3xl"})]}),T.jsxs("div",{className:"flex items-center gap-4 mb-3 relative z-10",children:[T.jsx("div",{className:"p-3 bg-gradient-to-br from-accent-blue/20 to-accent-blue/5 rounded-lg",children:T.jsx(vn,{size:48,className:"text-accent-blue"})}),T.jsx("h1",{className:"text-5xl font-light tracking-tight text-white",children:"EasySQL"})]}),T.jsx("p",{className:"text-text-tertiary mb-10 text-lg relative z-10",children:"简洁高效的数据库管理工具"}),T.jsx("button",{onClick:t,className:`px-10 py-3.5 bg-accent-blue hover:bg-accent-blue-hover text-base font-medium - transition-all duration-200 shadow-metro hover:shadow-metro-lg relative z-10 - hover:translate-y-[-2px]`,children:"开始查询"}),T.jsx("p",{className:"mt-14 text-text-disabled text-sm tracking-wide relative z-10",children:"快速创建数据库连接"}),T.jsx("div",{className:"mt-5 grid grid-cols-5 gap-2 relative z-10",children:Object.entries(_E).slice(0,5).map(([n,r])=>T.jsxs("button",{onClick:()=>r.supported&&E?.(n),className:`metro-tile w-24 h-24 flex flex-col items-center justify-center shadow-metro relative - ${r.supported?"cursor-pointer":"cursor-not-allowed"}`,style:{backgroundColor:r.color,opacity:r.supported?1:.4,filter:r.supported?"none":"grayscale(50%)"},title:r.supported?`创建 ${r.name} 连接`:`${r.name} - 即将支持`,disabled:!r.supported,children:[T.jsx("span",{className:"text-3xl mb-2",children:r.icon}),T.jsx("span",{className:"text-xs font-medium text-white/90",children:r.name}),!r.supported&&T.jsx("span",{className:"absolute bottom-1 text-[10px] text-white/60",children:"即将支持"})]},n))}),T.jsx("div",{className:"grid grid-cols-4 gap-2 mt-2 relative z-10",children:Object.entries(_E).slice(5,9).map(([n,r])=>T.jsxs("button",{onClick:()=>r.supported&&E?.(n),className:`metro-tile w-24 h-24 flex flex-col items-center justify-center shadow-metro relative - ${r.supported?"cursor-pointer":"cursor-not-allowed"}`,style:{backgroundColor:r.color,opacity:r.supported?1:.4,filter:r.supported?"none":"grayscale(50%)"},title:r.supported?`创建 ${r.name} 连接`:`${r.name} - 即将支持`,disabled:!r.supported,children:[T.jsx("span",{className:"text-3xl mb-2",children:r.icon}),T.jsx("span",{className:"text-xs font-medium text-white/90",children:r.name}),!r.supported&&T.jsx("span",{className:"absolute bottom-1 text-[10px] text-white/60",children:"即将支持"})]},n))})]})}),__=f.memo(function({tab:t,isLoading:E,onLoadPage:n,onChangePageSize:r,onCellChange:s,onDeleteRow:l,onDeleteRows:o,onSave:a,onDiscard:R,onRefresh:A}){const N=Math.ceil(t.total/t.pageSize),i=(t.pendingChanges?.size||0)>0||(t.deletedRows?.size||0)>0,O=t.columns.find(I=>I.key==="PRI")?.name||t.columns[0]?.name,C=new Set;t.pendingChanges?.forEach((I,S)=>{const c=parseInt(S);Object.keys(I).forEach(L=>{C.add(`${c}-${L}`)})});const u=t.data.filter((I,S)=>!t.deletedRows?.has(S)),D=t.data.map((I,S)=>S).filter(I=>!t.deletedRows?.has(I));return T.jsxs("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[T.jsxs("div",{className:"bg-metro-bg border-b border-metro-border/50 flex items-center justify-between px-3 gap-2",style:{flexShrink:0,height:36},children:[T.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[T.jsx(Fn,{size:16,className:"text-accent-orange flex-shrink-0"}),T.jsx("span",{className:"font-medium text-white text-sm truncate",children:t.tableName}),T.jsxs("span",{className:"text-text-tertiary text-xs flex-shrink-0",children:["(",t.total.toLocaleString(),"行)"]}),E&&T.jsxs("div",{className:"flex items-center gap-1.5 text-accent-blue text-xs flex-shrink-0",children:[T.jsx(Mr,{size:12,className:"animate-spin"}),"加载中..."]})]}),i&&T.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[T.jsxs("span",{className:"text-xs text-accent-orange font-medium px-1.5 py-0.5 bg-accent-orange/10 rounded",children:[(t.pendingChanges?.size||0)+(t.deletedRows?.size||0),"项"]}),T.jsxs("button",{onClick:a,className:"h-6 px-2 bg-accent-green hover:bg-accent-green-hover flex items-center gap-1 text-xs font-medium transition-all",title:"保存修改 (Ctrl+S)",children:[T.jsx(Zo,{size:11}),"保存"]}),T.jsxs("button",{onClick:R,className:"h-6 px-2 bg-metro-surface hover:bg-metro-hover flex items-center gap-1 text-xs transition-all border border-metro-border",children:[T.jsx(DO,{size:11}),"放弃"]})]}),T.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[T.jsx("button",{onClick:()=>n(t.page-1),disabled:t.page<=1||E,className:"p-0.5 hover:bg-metro-hover disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:T.jsx(RS,{size:16})}),T.jsxs("span",{className:"text-xs whitespace-nowrap min-w-[70px] text-center",children:[T.jsx("span",{className:"text-accent-blue font-medium",children:t.page}),"/",N,"页"]}),T.jsx("button",{onClick:()=>n(t.page+1),disabled:t.page>=N||E,className:"p-0.5 hover:bg-metro-hover disabled:opacity-30 disabled:cursor-not-allowed transition-colors",children:T.jsx(xn,{size:16})}),T.jsxs("select",{value:t.pageSize,onChange:I=>r?.(parseInt(I.target.value)),disabled:E,className:"h-6 px-1 text-xs bg-metro-surface border border-metro-border text-white rounded cursor-pointer hover:border-text-tertiary focus:border-accent-blue outline-none disabled:opacity-50",title:"每页条数",children:[T.jsx("option",{value:100,children:"100"}),T.jsx("option",{value:500,children:"500"}),T.jsx("option",{value:1e3,children:"1000"}),T.jsx("option",{value:2e3,children:"2000"}),T.jsx("option",{value:5e3,children:"5000"})]})]})]}),T.jsxs("div",{style:{flex:1,position:"relative",overflow:"hidden"},children:[E&&T.jsx("div",{className:"absolute inset-0 bg-metro-dark/80 flex items-center justify-center z-50",children:T.jsxs("div",{className:"flex flex-col items-center gap-3",children:[T.jsx(Mr,{size:32,className:"animate-spin text-accent-blue"}),T.jsx("span",{className:"text-sm text-text-secondary",children:"加载数据中..."})]})}),T.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0},children:T.jsx(xS,{columns:t.columns,data:u,showColumnInfo:!0,editable:!0,primaryKeyColumn:O,modifiedCells:C,onCellChange:(I,S,c)=>{const L=D[I];s?.(L,S,c)},onDeleteRow:I=>{const S=D[I];l?.(S)},onDeleteRows:I=>{const S=I.map(c=>D[c]);o?.(S)},onRefresh:A})})]})]})}),d_=f.memo(function({tab:t,databases:E,tables:n,columns:r,onRun:s,onUpdateSql:l,onUpdateTitle:o}){const[a,R]=f.useState(t.sql),[A,N]=f.useState(null),[i,O]=f.useState(!1),C=f.useCallback(()=>{s(a),l(a)},[a,s,l]),u=f.useCallback(async()=>{const P=await se.openFile();P&&!P.error&&(R(P.content),N(P.path),l(P.content),o?.(P.name))},[l,o]),D=f.useCallback(async()=>{const P=await se.saveFile(A,a);P&&!P.error&&(N(P.path),o?.(P.name))},[A,a,o]),I=f.useCallback(()=>{try{const P=I_(a,{language:"mysql",tabWidth:2,keywordCase:"upper",linesBetweenQueries:2});R(P),l(P)}catch(P){console.error("SQL 格式化失败:",P)}},[a,l]),S=f.useCallback(P=>{for(const[,y]of r){const Y=y.find(K=>K.name===P||K.name.toLowerCase()===P.toLowerCase());if(Y)return Y}},[r]),c=f.useCallback(async()=>{if(!t.results||t.results.rows.length===0)return;const P=window.electronAPI;if(!P)return;const y=await P.saveDialog({filters:[{name:"CSV",extensions:["csv"]}],defaultPath:`query_results_${Date.now()}.csv`});if(!y)return;const K=t.results.columns.join(","),oe=t.results.rows.map(_e=>_e.map(F=>F===null?"":typeof F=="string"?`"${F.replace(/"/g,'""')}"`:String(F)).join(",")).join(` -`);await P.writeFile(y,`${K} -${oe}`)},[t.results]),L=f.useCallback(async()=>{if(!t.results||t.results.rows.length===0)return;const P=window.electronAPI;if(!P)return;const y=await P.saveDialog({filters:[{name:"SQL",extensions:["sql"]}],defaultPath:`query_results_${Date.now()}.sql`});if(!y)return;const Y="table_name",K=t.results.columns,oe=t.results.rows;let _e=`-- 导出时间: ${new Date().toLocaleString()} -`;_e+=`-- 共 ${oe.length} 条记录 - -`,oe.forEach(F=>{const He=F.map(Ie=>Ie===null?"NULL":typeof Ie=="number"?Ie:`'${String(Ie).replace(/'/g,"''")}'`).join(", ");_e+=`INSERT INTO \`${Y}\` (\`${K.join("`, `")}\`) VALUES (${He}); -`}),await P.writeFile(y,_e)},[t.results]),B=t.results?.rows.map(P=>{const y={};return t.results?.columns.forEach((Y,K)=>{y[Y]=P[K]}),y})||[],p=t.results?.columns.map(P=>{const y=S(P);return{name:P,type:y?.type,key:y?.key,comment:y?.comment}})||[];return T.jsxs("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[T.jsxs("div",{style:{height:"200px",flexShrink:0,display:"flex",flexDirection:"column",borderBottom:"1px solid #5d5d5d"},children:[T.jsxs("div",{className:"h-10 bg-metro-bg flex items-center px-2 gap-2",style:{flexShrink:0},children:[T.jsxs("button",{onClick:C,className:"h-7 px-4 bg-accent-green hover:bg-accent-green/90 flex items-center gap-1.5 text-sm transition-colors",title:"执行 SQL (Ctrl+Enter)",children:[T.jsx(dO,{size:14,fill:"currentColor"}),"执行"]}),T.jsx("div",{className:"w-px h-5 bg-white/20 mx-1"}),T.jsxs("button",{onClick:u,className:"h-7 px-3 bg-metro-surface hover:bg-metro-surface/80 flex items-center gap-1.5 text-sm transition-colors",title:"打开 SQL 文件 (Ctrl+O)",children:[T.jsx(Ys,{size:14}),"打开"]}),T.jsxs("button",{onClick:D,className:"h-7 px-3 bg-metro-surface hover:bg-metro-surface/80 flex items-center gap-1.5 text-sm transition-colors",title:"保存 SQL 文件 (Ctrl+S)",children:[T.jsx(Zo,{size:14}),"保存"]}),T.jsxs("button",{onClick:I,className:"h-7 px-3 bg-metro-surface hover:bg-metro-surface/80 flex items-center gap-1.5 text-sm transition-colors",title:"格式化 SQL (Ctrl+Shift+F)",children:[T.jsx(oO,{size:14}),"格式化"]}),T.jsx("div",{className:"w-px h-5 bg-white/20 mx-1"}),T.jsxs("div",{className:"relative",children:[T.jsxs("button",{onClick:()=>O(!i),className:"h-7 px-3 bg-metro-surface hover:bg-metro-surface/80 flex items-center gap-1.5 text-sm transition-colors disabled:opacity-40",title:"导出结果",disabled:!t.results||t.results.rows.length===0,children:[T.jsx(iS,{size:14}),"导出"]}),i&&T.jsxs(T.Fragment,{children:[T.jsx("div",{className:"fixed inset-0",onClick:()=>O(!1)}),T.jsxs("div",{className:"absolute top-full left-0 mt-1 bg-metro-surface border border-metro-border rounded shadow-lg z-50 min-w-[140px] animate-fade-in",children:[T.jsxs("button",{onClick:()=>{c(),O(!1)},className:"w-full px-3 py-2 text-left text-sm hover:bg-accent-blue/20 flex items-center gap-2",children:[T.jsx(AS,{size:14,className:"text-accent-green"}),"导出 CSV"]}),T.jsxs("button",{onClick:()=>{L(),O(!1)},className:"w-full px-3 py-2 text-left text-sm hover:bg-accent-blue/20 flex items-center gap-2",children:[T.jsx(Fs,{size:14,className:"text-accent-orange"}),"导出 SQL"]})]})]})]}),T.jsxs("span",{className:"text-xs text-white/40 ml-auto",children:[A&&T.jsx("span",{className:"mr-3 text-accent-blue",children:A.split(/[/\\]/).pop()}),"Ctrl+Enter 执行 | Ctrl+S 保存"]})]}),T.jsx("div",{style:{flex:1,minHeight:0},children:T.jsx(f.Suspense,{fallback:T.jsx(c_,{}),children:T.jsx(u_,{value:a,onChange:R,onRun:C,onSave:D,onOpen:u,onFormat:I,databases:E,tables:n,columns:r})})})]}),T.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[T.jsx("div",{className:"h-9 bg-metro-bg flex items-center px-3 border-b border-metro-border",style:{flexShrink:0},children:T.jsxs("span",{className:"text-sm text-white/60",children:["结果",t.results&&T.jsxs("span",{className:"ml-2 text-white/40",children:["(",t.results.rows.length.toLocaleString()," 行)"]})]})}),T.jsx("div",{style:{flex:1,position:"relative",overflow:"hidden"},children:T.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0},children:t.results?T.jsx(xS,{columns:p,data:B,showColumnInfo:!0,onRefresh:()=>s(a)}):T.jsx("div",{className:"h-full flex items-center justify-center text-white/30",children:T.jsxs("div",{className:"flex flex-col items-center gap-2",children:[T.jsx(vn,{size:32,className:"text-white/20"}),T.jsx("span",{children:"执行查询以查看结果"})]})})})})]})]})});function D_({connection:e,defaultType:t,onSave:E,onClose:n}){const r=t||"mysql",s=_E[r]?.port||3306,[l,o]=f.useState({id:"",name:"",type:r,host:"localhost",port:s,username:"",password:"",database:"",sshEnabled:!1,sshHost:"",sshPort:22,sshUser:"",sshPassword:"",sshKey:""}),[a,R]=f.useState(!1),[A,N]=f.useState(null);f.useEffect(()=>{if(e)o(e);else{const u=t||"mysql",D=_E[u]?.port||3306;o(I=>({...I,id:`conn-${Date.now()}`,type:u,port:D,name:_E[u]?.name||""}))}},[e,t]);const i=u=>{const D=_E[u];o(I=>({...I,type:u,port:D?.port||I.port}))},O=async()=>{R(!0),N(null);const u=await se.testConnection(l);N({text:u?.message||"测试失败",type:u?.success?"success":"error"}),R(!1)},C=()=>{if(!l.name.trim()){N({text:"请输入连接名称",type:"error"});return}E(l)};return T.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center animate-fade-in",children:[T.jsx("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm",onClick:n}),T.jsxs("div",{className:"relative w-[560px] max-h-[90vh] bg-metro-bg flex flex-col overflow-hidden shadow-metro-xl animate-slide-up",children:[T.jsxs("div",{className:"h-14 bg-accent-blue flex items-center justify-between px-5",children:[T.jsx("span",{className:"font-semibold text-lg",children:e?"编辑连接":"新建连接"}),T.jsx("button",{onClick:n,className:"p-1.5 hover:bg-white/20 transition-colors rounded-sm",children:T.jsx(RE,{size:20})})]}),T.jsxs("div",{className:"flex-1 overflow-y-auto p-5 space-y-5",children:[T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:"连接名称"}),T.jsx("input",{type:"text",value:l.name,onChange:u=>o(D=>({...D,name:u.target.value})),placeholder:"输入名称",className:`w-full h-10 px-4 bg-metro-surface border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-3 font-medium",children:"数据库类型"}),T.jsx("div",{className:"grid grid-cols-3 gap-2",children:Object.entries(_E).map(([u,D])=>T.jsxs("button",{onClick:()=>D.supported&&i(u),className:`h-16 flex items-center gap-3 px-4 transition-all metro-tile relative - ${D.supported?"":"cursor-not-allowed"} - ${l.type===u&&D.supported?"ring-2 ring-white ring-inset shadow-metro-lg":D.supported?"opacity-60 hover:opacity-100":""}`,style:{backgroundColor:D.color,opacity:D.supported?l.type===u?1:.6:.3,filter:D.supported?"none":"grayscale(60%)"},disabled:!D.supported,title:D.supported?D.name:`${D.name} - 即将支持`,children:[T.jsx("span",{className:"text-2xl",children:D.icon}),T.jsxs("div",{className:"flex flex-col items-start",children:[T.jsx("span",{className:"text-sm font-medium",children:D.name}),!D.supported&&T.jsx("span",{className:"text-[10px] text-white/60",children:"即将支持"})]})]},u))})]}),l.type==="sqlite"?T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:"数据库文件"}),T.jsxs("div",{className:"flex gap-2",children:[T.jsx("input",{type:"text",value:l.database,onChange:u=>o(D=>({...D,database:u.target.value})),placeholder:"选择或输入 .db 文件路径",className:`flex-1 h-10 px-4 bg-metro-surface border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`}),T.jsxs("button",{onClick:async()=>{const u=await se.selectFile(["db","sqlite","sqlite3"]);u?.path&&o(D=>({...D,database:u.path}))},className:"h-10 px-4 bg-metro-surface hover:bg-metro-hover flex items-center gap-2 text-sm transition-colors rounded-sm",children:[T.jsx(Ys,{size:16}),"浏览"]})]}),T.jsx("p",{className:"text-xs text-text-disabled mt-2",children:"如果文件不存在,将创建新的数据库"})]}):T.jsxs(T.Fragment,{children:[T.jsxs("div",{className:"grid grid-cols-4 gap-4",children:[T.jsxs("div",{className:"col-span-3",children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:"主机"}),T.jsx("input",{type:"text",value:l.host,onChange:u=>o(D=>({...D,host:u.target.value})),placeholder:"localhost",className:`w-full h-10 px-4 bg-metro-surface border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:"端口"}),T.jsx("input",{type:"number",value:l.port,onChange:u=>o(D=>({...D,port:parseInt(u.target.value)||0})),className:`w-full h-10 px-4 bg-metro-surface border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]})]}),l.type==="redis"?T.jsxs("div",{children:[T.jsxs("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:["密码 ",T.jsx("span",{className:"text-text-disabled font-normal",children:"(可选)"})]}),T.jsx("input",{type:"password",value:l.password,onChange:u=>o(D=>({...D,password:u.target.value})),placeholder:"无密码时留空",className:`w-full h-10 px-4 bg-metro-surface border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]}):T.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[T.jsxs("div",{children:[T.jsxs("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:["用户名 ",l.type==="mongodb"&&T.jsx("span",{className:"text-text-disabled font-normal",children:"(可选)"})]}),T.jsx("input",{type:"text",value:l.username,onChange:u=>o(D=>({...D,username:u.target.value})),placeholder:l.type==="mongodb"?"无认证时留空":"root",className:`w-full h-10 px-4 bg-metro-surface border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]}),T.jsxs("div",{children:[T.jsxs("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:["密码 ",l.type==="mongodb"&&T.jsx("span",{className:"text-text-disabled font-normal",children:"(可选)"})]}),T.jsx("input",{type:"password",value:l.password,onChange:u=>o(D=>({...D,password:u.target.value})),placeholder:l.type==="mongodb"?"无认证时留空":"",className:`w-full h-10 px-4 bg-metro-surface border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]})]}),T.jsxs("div",{children:[T.jsxs("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:["数据库 ",T.jsx("span",{className:"text-text-disabled font-normal",children:"(可选)"})]}),T.jsx("input",{type:"text",value:l.database,onChange:u=>o(D=>({...D,database:u.target.value})),placeholder:l.type==="mongodb"?"默认 admin":"留空表示连接所有数据库",className:`w-full h-10 px-4 bg-metro-surface border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]})]}),T.jsxs("div",{className:"pt-4 border-t border-metro-border",children:[T.jsxs("label",{className:"flex items-center gap-3 cursor-pointer group",children:[T.jsx("input",{type:"checkbox",checked:l.sshEnabled,onChange:u=>o(D=>({...D,sshEnabled:u.target.checked})),className:"w-5 h-5 accent-accent-blue cursor-pointer"}),T.jsx(PO,{size:18,className:l.sshEnabled?"text-accent-green":"text-text-disabled"}),T.jsx("span",{className:"text-sm font-medium group-hover:text-white transition-colors",children:"SSH 隧道连接"})]}),l.sshEnabled&&T.jsxs("div",{className:"mt-4 p-4 bg-metro-surface rounded-sm space-y-4 border-l-2 border-accent-green",children:[T.jsxs("div",{className:"grid grid-cols-4 gap-3",children:[T.jsxs("div",{className:"col-span-3",children:[T.jsx("label",{className:"block text-xs text-text-tertiary mb-1.5",children:"SSH 主机"}),T.jsx("input",{type:"text",value:l.sshHost,onChange:u=>o(D=>({...D,sshHost:u.target.value})),className:`w-full h-9 px-3 bg-metro-bg border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-xs text-text-tertiary mb-1.5",children:"端口"}),T.jsx("input",{type:"number",value:l.sshPort,onChange:u=>o(D=>({...D,sshPort:parseInt(u.target.value)||22})),className:`w-full h-9 px-3 bg-metro-bg border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]})]}),T.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[T.jsxs("div",{children:[T.jsx("label",{className:"block text-xs text-text-tertiary mb-1.5",children:"SSH 用户名"}),T.jsx("input",{type:"text",value:l.sshUser,onChange:u=>o(D=>({...D,sshUser:u.target.value})),className:`w-full h-9 px-3 bg-metro-bg border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-xs text-text-tertiary mb-1.5",children:"SSH 密码"}),T.jsx("input",{type:"password",value:l.sshPassword,onChange:u=>o(D=>({...D,sshPassword:u.target.value})),className:`w-full h-9 px-3 bg-metro-bg border-2 border-transparent \r - focus:border-accent-blue text-sm transition-all rounded-sm`})]})]})]})]}),A&&T.jsx("div",{className:`p-4 text-sm rounded-sm ${A.type==="success"?"bg-accent-green/20 text-accent-green border-l-2 border-accent-green":"bg-accent-red/20 text-accent-red border-l-2 border-accent-red"}`,children:A.text})]}),T.jsxs("div",{className:"h-16 bg-metro-surface flex items-center justify-end gap-3 px-5 border-t border-metro-border/50",children:[T.jsxs("button",{onClick:O,disabled:a,className:`h-10 px-5 bg-transparent border border-text-tertiary hover:border-white hover:bg-white/5\r - text-sm transition-all disabled:opacity-50 flex items-center gap-2 rounded-sm`,children:[a&&T.jsx(Mr,{size:14,className:"animate-spin"}),"测试连接"]}),T.jsx("button",{onClick:C,className:"h-10 px-8 bg-accent-blue hover:bg-accent-blue-hover text-sm font-medium transition-all shadow-metro rounded-sm",children:"保存"}),T.jsx("button",{onClick:n,className:"h-10 px-5 bg-metro-hover hover:bg-metro-border text-sm transition-all rounded-sm",children:"取消"})]})]})]})}const sl=[{name:"utf8mb4",collations:["utf8mb4_general_ci","utf8mb4_unicode_ci","utf8mb4_bin","utf8mb4_0900_ai_ci"]},{name:"utf8",collations:["utf8_general_ci","utf8_unicode_ci","utf8_bin"]},{name:"latin1",collations:["latin1_swedish_ci","latin1_general_ci","latin1_bin"]},{name:"gbk",collations:["gbk_chinese_ci","gbk_bin"]},{name:"gb2312",collations:["gb2312_chinese_ci","gb2312_bin"]}];function P_({isOpen:e,onClose:t,onSubmit:E}){const[n,r]=f.useState(""),[s,l]=f.useState("utf8mb4"),[o,a]=f.useState("utf8mb4_general_ci");if(!e)return null;const A=sl.find(O=>O.name===s)?.collations||[],N=O=>{l(O);const C=sl.find(u=>u.name===O);C&&C.collations.length>0&&a(C.collations[0])},i=O=>{O.preventDefault(),n.trim()&&(E(n.trim(),s,o),r(""),l("utf8mb4"),a("utf8mb4_general_ci"))};return T.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:T.jsxs("div",{className:"bg-metro-card border border-metro-border w-[420px] shadow-metro-lg animate-fade-in",children:[T.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-metro-border bg-metro-surface",children:[T.jsxs("div",{className:"flex items-center gap-2",children:[T.jsx(vn,{size:18,className:"text-accent-blue"}),T.jsx("span",{className:"font-medium",children:"新建数据库"})]}),T.jsx("button",{onClick:t,className:"p-1 hover:bg-metro-hover rounded-sm transition-colors",children:T.jsx(RE,{size:16})})]}),T.jsxs("form",{onSubmit:i,className:"p-4 space-y-4",children:[T.jsxs("div",{children:[T.jsxs("label",{className:"block text-sm text-text-secondary mb-1.5",children:["数据库名称 ",T.jsx("span",{className:"text-accent-red",children:"*"})]}),T.jsx("input",{type:"text",value:n,onChange:O=>r(O.target.value),placeholder:"输入数据库名称",className:`w-full h-9 px-3 bg-metro-surface border border-metro-border text-sm\r - focus:border-accent-blue focus:outline-none transition-colors`,autoFocus:!0})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-1.5",children:"字符集"}),T.jsx("select",{value:s,onChange:O=>N(O.target.value),className:`w-full h-9 px-3 bg-metro-surface border border-metro-border text-sm\r - focus:border-accent-blue focus:outline-none transition-colors`,children:sl.map(O=>T.jsx("option",{value:O.name,children:O.name},O.name))})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-1.5",children:"排序规则"}),T.jsx("select",{value:o,onChange:O=>a(O.target.value),className:`w-full h-9 px-3 bg-metro-surface border border-metro-border text-sm\r - focus:border-accent-blue focus:outline-none transition-colors`,children:A.map(O=>T.jsx("option",{value:O,children:O},O))})]}),T.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[T.jsx("button",{type:"button",onClick:t,className:"px-4 py-2 text-sm bg-metro-surface hover:bg-metro-hover transition-colors",children:"取消"}),T.jsx("button",{type:"submit",disabled:!n.trim(),className:`px-4 py-2 text-sm bg-accent-blue hover:bg-accent-blue-hover disabled:opacity-50 \r - disabled:cursor-not-allowed transition-colors`,children:"创建"})]})]})]})})}const p_=[{group:"整数",types:["INT","TINYINT","SMALLINT","MEDIUMINT","BIGINT"]},{group:"小数",types:["DECIMAL","FLOAT","DOUBLE"]},{group:"字符串",types:["VARCHAR","CHAR","TEXT","MEDIUMTEXT","LONGTEXT"]},{group:"日期时间",types:["DATETIME","DATE","TIME","TIMESTAMP","YEAR"]},{group:"二进制",types:["BLOB","MEDIUMBLOB","LONGBLOB","BINARY","VARBINARY"]},{group:"其他",types:["JSON","ENUM","SET","BOOLEAN"]}],Tl={name:"",type:"INT",length:"",nullable:!0,primaryKey:!1,autoIncrement:!1,defaultValue:"",comment:""};function f_({isOpen:e,database:t,onClose:E,onSubmit:n}){const[r,s]=f.useState(""),[l,o]=f.useState([{...Tl,id:crypto.randomUUID(),name:"id",primaryKey:!0,autoIncrement:!0,nullable:!1}]);if(!e)return null;const a=()=>{o([...l,{...Tl,id:crypto.randomUUID()}])},R=C=>{l.length>1&&o(l.filter(u=>u.id!==C))},A=(C,u,D)=>{o(l.map(I=>{if(I.id!==C)return I;const S={...I,[u]:D};return u==="primaryKey"&&D&&(S.nullable=!1),u==="autoIncrement"&&D&&(S.primaryKey=!0,S.nullable=!1),S}))},N=(C,u)=>{const D=u==="up"?C-1:C+1;if(D<0||D>=l.length)return;const I=[...l],S=I[C];I[C]=I[D],I[D]=S,o(I)},i=C=>{C.preventDefault(),r.trim()&&l.some(u=>u.name.trim())&&(n(r.trim(),l.filter(u=>u.name.trim())),s(""),o([{...Tl,id:crypto.randomUUID(),name:"id",primaryKey:!0,autoIncrement:!0,nullable:!1}]))},O=C=>["VARCHAR","CHAR","DECIMAL","FLOAT","DOUBLE","BINARY","VARBINARY"].includes(C);return T.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:T.jsxs("div",{className:"bg-metro-card border border-metro-border w-[800px] max-h-[85vh] flex flex-col shadow-metro-lg animate-fade-in",children:[T.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-metro-border bg-metro-surface flex-shrink-0",children:[T.jsxs("div",{className:"flex items-center gap-2",children:[T.jsx(Fn,{size:18,className:"text-accent-orange"}),T.jsxs("span",{className:"font-medium",children:["新建表 - ",t]})]}),T.jsx("button",{onClick:E,className:"p-1 hover:bg-metro-hover rounded-sm transition-colors",children:T.jsx(RE,{size:16})})]}),T.jsxs("form",{onSubmit:i,className:"flex-1 flex flex-col min-h-0",children:[T.jsxs("div",{className:"p-4 border-b border-metro-border flex-shrink-0",children:[T.jsxs("label",{className:"block text-sm text-text-secondary mb-1.5",children:["表名称 ",T.jsx("span",{className:"text-accent-red",children:"*"})]}),T.jsx("input",{type:"text",value:r,onChange:C=>s(C.target.value),placeholder:"输入表名称",className:`w-64 h-9 px-3 bg-metro-surface border border-metro-border text-sm\r - focus:border-accent-blue focus:outline-none transition-colors`,autoFocus:!0})]}),T.jsxs("div",{className:"flex-1 overflow-auto p-4",children:[T.jsxs("div",{className:"flex items-center justify-between mb-3",children:[T.jsx("span",{className:"text-sm text-text-secondary",children:"字段定义"}),T.jsxs("button",{type:"button",onClick:a,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-accent-blue hover:bg-accent-blue-hover transition-colors",children:[T.jsx(Bn,{size:14}),"添加字段"]})]}),T.jsxs("div",{className:"flex items-center gap-2 px-2 py-2 bg-metro-surface text-xs text-text-secondary border-b border-metro-border",children:[T.jsx("div",{className:"w-8"}),T.jsx("div",{className:"w-32",children:"字段名"}),T.jsx("div",{className:"w-28",children:"类型"}),T.jsx("div",{className:"w-16",children:"长度"}),T.jsx("div",{className:"w-12 text-center",children:"主键"}),T.jsx("div",{className:"w-12 text-center",children:"自增"}),T.jsx("div",{className:"w-12 text-center",children:"可空"}),T.jsx("div",{className:"w-24",children:"默认值"}),T.jsx("div",{className:"flex-1",children:"备注"}),T.jsx("div",{className:"w-16"})]}),T.jsx("div",{className:"space-y-0.5",children:l.map((C,u)=>T.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 hover:bg-metro-hover/50 group",children:[T.jsxs("div",{className:"w-8 flex flex-col gap-0.5",children:[T.jsx("button",{type:"button",onClick:()=>N(u,"up"),disabled:u===0,className:"p-0.5 hover:bg-metro-hover disabled:opacity-30 rounded-sm",children:T.jsx(RO,{size:10})}),T.jsx("button",{type:"button",onClick:()=>N(u,"down"),disabled:u===l.length-1,className:"p-0.5 hover:bg-metro-hover disabled:opacity-30 rounded-sm",children:T.jsx(aO,{size:10})})]}),T.jsx("input",{type:"text",value:C.name,onChange:D=>A(C.id,"name",D.target.value),placeholder:"字段名",className:`w-32 h-7 px-2 bg-metro-surface border border-metro-border text-xs\r - focus:border-accent-blue focus:outline-none transition-colors`}),T.jsx("select",{value:C.type,onChange:D=>A(C.id,"type",D.target.value),className:`w-28 h-7 px-2 bg-metro-surface border border-metro-border text-xs\r - focus:border-accent-blue focus:outline-none transition-colors`,children:p_.map(D=>T.jsx("optgroup",{label:D.group,children:D.types.map(I=>T.jsx("option",{value:I,children:I},I))},D.group))}),T.jsx("input",{type:"text",value:C.length,onChange:D=>A(C.id,"length",D.target.value),placeholder:O(C.type)?"长度":"-",disabled:!O(C.type),className:`w-16 h-7 px-2 bg-metro-surface border border-metro-border text-xs\r - focus:border-accent-blue focus:outline-none transition-colors\r - disabled:opacity-50 disabled:cursor-not-allowed`}),T.jsx("div",{className:"w-12 flex justify-center",children:T.jsx("button",{type:"button",onClick:()=>A(C.id,"primaryKey",!C.primaryKey),className:`p-1 rounded-sm transition-colors ${C.primaryKey?"bg-accent-orange text-white":"hover:bg-metro-hover"}`,children:T.jsx(Qo,{size:12})})}),T.jsx("div",{className:"w-12 flex justify-center",children:T.jsx("input",{type:"checkbox",checked:C.autoIncrement,onChange:D=>A(C.id,"autoIncrement",D.target.checked),className:"w-4 h-4 accent-accent-blue"})}),T.jsx("div",{className:"w-12 flex justify-center",children:T.jsx("input",{type:"checkbox",checked:C.nullable,onChange:D=>A(C.id,"nullable",D.target.checked),disabled:C.primaryKey,className:"w-4 h-4 accent-accent-blue disabled:opacity-50"})}),T.jsx("input",{type:"text",value:C.defaultValue,onChange:D=>A(C.id,"defaultValue",D.target.value),placeholder:"默认值",className:`w-24 h-7 px-2 bg-metro-surface border border-metro-border text-xs\r - focus:border-accent-blue focus:outline-none transition-colors`}),T.jsx("input",{type:"text",value:C.comment,onChange:D=>A(C.id,"comment",D.target.value),placeholder:"备注",className:`flex-1 h-7 px-2 bg-metro-surface border border-metro-border text-xs\r - focus:border-accent-blue focus:outline-none transition-colors`}),T.jsx("div",{className:"w-16 flex justify-end",children:T.jsx("button",{type:"button",onClick:()=>R(C.id),disabled:l.length===1,className:`p-1.5 text-text-disabled hover:text-accent-red hover:bg-metro-hover \r - rounded-sm transition-colors disabled:opacity-30 disabled:cursor-not-allowed`,children:T.jsx(yE,{size:14})})})]},C.id))})]}),T.jsxs("div",{className:"flex justify-end gap-2 p-4 border-t border-metro-border flex-shrink-0",children:[T.jsx("button",{type:"button",onClick:E,className:"px-4 py-2 text-sm bg-metro-surface hover:bg-metro-hover transition-colors",children:"取消"}),T.jsx("button",{type:"submit",disabled:!r.trim()||!l.some(C=>C.name.trim()),className:`px-4 py-2 text-sm bg-accent-blue hover:bg-accent-blue-hover disabled:opacity-50 \r - disabled:cursor-not-allowed transition-colors`,children:"创建"})]})]})]})})}function $R({isOpen:e,title:t,label:E,placeholder:n,defaultValue:r="",confirmText:s="确定",onClose:l,onSubmit:o,icon:a,showDataOption:R,onSubmitWithData:A}){const[N,i]=f.useState(r),[O,C]=f.useState(!1);if(f.useEffect(()=>{i(r)},[r,e]),!e)return null;const u=D=>{D.preventDefault(),N.trim()&&(R&&A?A(N.trim(),O):o(N.trim()))};return T.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:T.jsxs("div",{className:"bg-metro-card border border-metro-border w-[380px] shadow-metro-lg animate-fade-in",children:[T.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-metro-border bg-metro-surface",children:[T.jsxs("div",{className:"flex items-center gap-2",children:[a,T.jsx("span",{className:"font-medium",children:t})]}),T.jsx("button",{onClick:l,className:"p-1 hover:bg-metro-hover rounded-sm transition-colors",children:T.jsx(RE,{size:16})})]}),T.jsxs("form",{onSubmit:u,className:"p-4 space-y-4",children:[T.jsxs("div",{children:[T.jsxs("label",{className:"block text-sm text-text-secondary mb-1.5",children:[E," ",T.jsx("span",{className:"text-accent-red",children:"*"})]}),T.jsx("input",{type:"text",value:N,onChange:D=>i(D.target.value),placeholder:n,className:`w-full h-9 px-3 bg-metro-surface border border-metro-border text-sm\r - focus:border-accent-blue focus:outline-none transition-colors`,autoFocus:!0})]}),R&&T.jsxs("div",{className:"flex items-center gap-2",children:[T.jsx("input",{type:"checkbox",id:"withData",checked:O,onChange:D=>C(D.target.checked),className:"w-4 h-4 accent-accent-blue"}),T.jsx("label",{htmlFor:"withData",className:"text-sm text-text-secondary cursor-pointer",children:"同时复制表数据"})]}),T.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[T.jsx("button",{type:"button",onClick:l,className:"px-4 py-2 text-sm bg-metro-surface hover:bg-metro-hover transition-colors",children:"取消"}),T.jsx("button",{type:"submit",disabled:!N.trim(),className:`px-4 py-2 text-sm bg-accent-blue hover:bg-accent-blue-hover disabled:opacity-50 \r - disabled:cursor-not-allowed transition-colors`,children:s})]})]})]})})}const zn={mysql:[{group:"整数",types:["TINYINT","SMALLINT","MEDIUMINT","INT","BIGINT"]},{group:"小数",types:["DECIMAL","FLOAT","DOUBLE"]},{group:"字符串",types:["CHAR","VARCHAR","TINYTEXT","TEXT","MEDIUMTEXT","LONGTEXT"]},{group:"日期时间",types:["DATE","TIME","DATETIME","TIMESTAMP","YEAR"]},{group:"二进制",types:["BINARY","VARBINARY","TINYBLOB","BLOB","MEDIUMBLOB","LONGBLOB"]},{group:"其他",types:["JSON","ENUM","SET","BOOLEAN","BIT"]}],postgres:[{group:"整数",types:["SMALLINT","INTEGER","BIGINT","SERIAL","BIGSERIAL"]},{group:"小数",types:["DECIMAL","NUMERIC","REAL","DOUBLE PRECISION"]},{group:"字符串",types:["CHAR","VARCHAR","TEXT"]},{group:"日期时间",types:["DATE","TIME","TIMESTAMP","TIMESTAMPTZ","INTERVAL"]},{group:"布尔",types:["BOOLEAN"]},{group:"其他",types:["JSON","JSONB","UUID","BYTEA","ARRAY"]}],sqlserver:[{group:"整数",types:["TINYINT","SMALLINT","INT","BIGINT"]},{group:"小数",types:["DECIMAL","NUMERIC","FLOAT","REAL","MONEY"]},{group:"字符串",types:["CHAR","VARCHAR","NCHAR","NVARCHAR","TEXT","NTEXT"]},{group:"日期时间",types:["DATE","TIME","DATETIME","DATETIME2","DATETIMEOFFSET"]},{group:"二进制",types:["BINARY","VARBINARY","IMAGE"]},{group:"其他",types:["BIT","UNIQUEIDENTIFIER","XML"]}],sqlite:[{group:"基本",types:["INTEGER","REAL","TEXT","BLOB","NUMERIC"]}]},m_=["InnoDB","MyISAM","Memory","CSV","Archive","Blackhole","Federated","NDB"],M_=["utf8mb4","utf8mb3","utf8","latin1","gbk","gb2312","big5","ascii","binary"],jR={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"],gbk:["gbk_chinese_ci","gbk_bin"]},U_=["DEFAULT","DYNAMIC","FIXED","COMPRESSED","REDUNDANT","COMPACT"];function xt({value:e,options:t,onChange:E,placeholder:n="选择...",className:r="",disabled:s=!1}){const[l,o]=f.useState(!1),[a,R]=f.useState(""),A=f.useRef(null),N=t.filter(O=>O.label.toLowerCase().includes(a.toLowerCase())||O.value.toLowerCase().includes(a.toLowerCase())),i=t.find(O=>O.value===e);return f.useEffect(()=>{const O=C=>{A.current&&!A.current.contains(C.target)&&(o(!1),R(""))};return document.addEventListener("mousedown",O),()=>document.removeEventListener("mousedown",O)},[]),T.jsxs("div",{ref:A,className:`relative flex items-center justify-between cursor-pointer ${r}`,onClick:O=>{O.stopPropagation(),s||o(!l)},children:[T.jsx("span",{className:`text-xs ${i?"text-text-primary":"text-text-secondary"} ${s?"opacity-50":""}`,children:i?.label||n}),T.jsx("span",{className:"text-text-secondary text-[10px]",children:"▼"}),l&&T.jsxs("div",{className:"absolute z-50 top-full left-0 w-full min-w-[120px] mt-0.5 bg-metro-surface border border-metro-border shadow-lg max-h-48 overflow-hidden flex flex-col",children:[T.jsx("input",{type:"text",value:a,onChange:O=>R(O.target.value),onClick:O=>O.stopPropagation(),placeholder:"搜索...",className:"w-full h-7 px-2 bg-metro-hover border-b border-metro-border text-xs focus:outline-none",autoFocus:!0}),T.jsx("div",{className:"overflow-auto flex-1",children:N.length===0?T.jsx("div",{className:"px-2 py-1.5 text-xs text-text-secondary",children:"无匹配项"}):N.map(O=>T.jsx("div",{onClick:C=>{C.stopPropagation(),E(O.value),o(!1),R("")},className:`px-2 py-1.5 text-xs cursor-pointer hover:bg-metro-hover - ${O.value===e?"bg-accent-blue/20 text-accent-blue":""}`,children:O.label},O.value))})]})]})}function h_({values:e,options:t,onChange:E,placeholder:n="选择...",className:r=""}){const[s,l]=f.useState(!1),[o,a]=f.useState(""),R=f.useRef(null),A=t.filter(i=>i.label.toLowerCase().includes(o.toLowerCase()));f.useEffect(()=>{const i=O=>{R.current&&!R.current.contains(O.target)&&(l(!1),a(""))};return document.addEventListener("mousedown",i),()=>document.removeEventListener("mousedown",i)},[]);const N=i=>{e.includes(i)?E(e.filter(O=>O!==i)):E([...e,i])};return T.jsxs("div",{ref:R,className:`relative ${r}`,children:[T.jsx("div",{onClick:i=>{i.stopPropagation(),l(!s)},className:`w-full min-h-[28px] px-2 py-1 bg-transparent border border-transparent hover:border-metro-border \r - text-xs flex items-center gap-1 flex-wrap cursor-pointer`,children:e.length===0?T.jsx("span",{className:"text-text-secondary",children:n}):e.map(i=>T.jsx("span",{className:"bg-accent-blue/20 text-accent-blue px-1.5 py-0.5 rounded text-[10px]",children:i},i))}),s&&T.jsxs("div",{className:"absolute z-50 top-full left-0 w-full min-w-[150px] mt-0.5 bg-metro-surface border border-metro-border shadow-lg max-h-48 overflow-hidden flex flex-col",children:[T.jsx("input",{type:"text",value:o,onChange:i=>a(i.target.value),onClick:i=>i.stopPropagation(),placeholder:"搜索...",className:"w-full h-7 px-2 bg-metro-hover border-b border-metro-border text-xs focus:outline-none",autoFocus:!0}),T.jsx("div",{className:"overflow-auto flex-1",children:A.length===0?T.jsx("div",{className:"px-2 py-1.5 text-xs text-text-secondary",children:"无匹配项"}):A.map(i=>T.jsxs("div",{onClick:O=>{O.stopPropagation(),N(i.value)},className:`px-2 py-1.5 text-xs cursor-pointer hover:bg-metro-hover flex items-center gap-2 - ${e.includes(i.value)?"bg-accent-blue/10":""}`,children:[T.jsx("input",{type:"checkbox",checked:e.includes(i.value),onChange:()=>{},className:"w-3 h-3 accent-accent-blue"}),i.label]},i.value))})]})]})}const kR={name:"",type:"INT",length:"",decimals:"",nullable:!0,primaryKey:!1,autoIncrement:!1,unsigned:!1,zerofill:!1,defaultValue:"",comment:"",isVirtual:!1,virtualExpression:""},x_={name:"",columns:[],type:"NORMAL",method:"BTREE",comment:""},y_={name:"",columns:[],refSchema:"",refTable:"",refColumns:[],onDelete:"NO ACTION",onUpdate:"NO ACTION"},JR={engine:"InnoDB",charset:"utf8mb4",collation:"utf8mb4_general_ci",comment:"",autoIncrement:"",rowFormat:"DEFAULT"};function G_({isOpen:e,mode:t,database:E,tableName:n,connectionId:r,dbType:s,onClose:l,onSave:o,onGetTableInfo:a,onGetDatabases:R,onGetTables:A,onGetColumns:N}){const[i,O]=f.useState("columns"),[C,u]=f.useState(n||""),[D,I]=f.useState([]),[S,c]=f.useState([]),[L,B]=f.useState([]),[p,P]=f.useState(JR),[y,Y]=f.useState(null),[K,oe]=f.useState(!1),[_e,F]=f.useState(!1),[He,Ie]=f.useState(""),[me,le]=f.useState(null),[X,ee]=f.useState(null),[te,Ee]=f.useState(null);f.useEffect(()=>{e&&t==="edit"&&a?(u(n||""),Ie(""),Re()):e&&t==="create"&&(I([{...kR,id:crypto.randomUUID(),name:"id",primaryKey:!0,autoIncrement:!0,nullable:!1,_isNew:!0}]),c([]),B([]),P(JR),Y(null),u(""),Ie(""),oe(!1))},[e,t,n]);const Re=async()=>{if(!a){oe(!1);return}oe(!0);try{const m=await a();m&&m.columns?I(m.columns.map(w=>({...w,_original:{...w}}))):I([]),m&&m.indexes?c(m.indexes.map(w=>({...w,_original:{...w}}))):c([]),m&&m.foreignKeys?B(m.foreignKeys.map(w=>({...w,_original:{...w}}))):B([]),m&&m.options?(P(m.options),Y(m.options)):Y(null)}catch(m){console.error("Load table info error:",m),Ie(m.message||"加载表信息失败")}finally{oe(!1)}},Fe=f.useMemo(()=>{const m=s.toLowerCase();return m==="mysql"||m==="mariadb"?zn.mysql:m==="postgres"||m==="postgresql"?zn.postgres:m==="sqlserver"?zn.sqlserver:m==="sqlite"?zn.sqlite:zn.mysql},[s]),Ye=m=>{const w=m.toUpperCase();return["VARCHAR","CHAR","DECIMAL","NUMERIC","FLOAT","DOUBLE","BINARY","VARBINARY","BIT"].includes(w)},Me=m=>{const w=m.toUpperCase();return["DECIMAL","NUMERIC","FLOAT","DOUBLE"].includes(w)},Ve=m=>{const w=m.toUpperCase();return["TINYINT","SMALLINT","MEDIUMINT","INT","INTEGER","BIGINT","FLOAT","DOUBLE","DECIMAL"].includes(w)},be=()=>{const m={...kR,id:crypto.randomUUID(),_isNew:!0};I([...D,m]),le(m.id)},ze=m=>{const w=D.find(J=>J.id===m);w&&(w._isNew?I(D.filter(J=>J.id!==m)):I(D.map(J=>J.id===m?{...J,_isDeleted:!0}:J)))},Et=(m,w,J)=>{I(D.map(Te=>{if(Te.id!==m)return Te;const b={...Te,[w]:J};return w==="primaryKey"&&J&&(b.nullable=!1),w==="autoIncrement"&&J&&(b.primaryKey=!0,b.nullable=!1),b}))},iE=(m,w)=>{const J=D.filter(ie=>!ie._isDeleted),Te=w==="up"?m-1:m+1;if(Te<0||Te>=J.length)return;const b=[...J],ne=b[m];b[m]=b[Te],b[Te]=ne,I([...b,...D.filter(ie=>ie._isDeleted)])},Mt=()=>{const m={...x_,id:crypto.randomUUID(),_isNew:!0};c([...S,m]),ee(m.id)},Oe=m=>{const w=S.find(J=>J.id===m);w&&(w._isNew?c(S.filter(J=>J.id!==m)):c(S.map(J=>J.id===m?{...J,_isDeleted:!0}:J)))},Ce=(m,w)=>m.length===0||!m.some(b=>b)?"":`${w==="UNIQUE"?"uk":w==="FULLTEXT"?"ft":"idx"}_${C||"table"}_${m.filter(b=>b).join("_")}`,Lt=(m,w,J)=>{c(S.map(Te=>{if(Te.id!==m)return Te;const b={...Te,[w]:J};if(w==="columns"&&Array.isArray(J)&&J.length>0&&J.some(ne=>ne)){const ne=Ce(J,Te.type);(!Te.name||Te.name.startsWith("idx_")||Te.name.startsWith("uk_")||Te.name.startsWith("ft_"))&&(b.name=ne)}if(w==="type"&&Te.columns.length>0&&Te.columns.some(ne=>ne)){const ne=Ce(Te.columns,J);(!Te.name||Te.name.startsWith("idx_")||Te.name.startsWith("uk_")||Te.name.startsWith("ft_"))&&(b.name=ne)}return b}))},Jt=m=>m.length===0||!m[0]?"":`fk_${C||"table"}_${m.filter(J=>J).join("_")}`,zt=()=>{const m={...y_,id:crypto.randomUUID(),_isNew:!0};B([...L,m]),Ee(m.id)},j=m=>{const w=L.find(J=>J.id===m);w&&(w._isNew?B(L.filter(J=>J.id!==m)):B(L.map(J=>J.id===m?{...J,_isDeleted:!0}:J)))},Qe=(m,w,J)=>{B(L.map(Te=>{if(Te.id!==m)return Te;const b={...Te,[w]:J};if(w==="columns"&&Array.isArray(J)&&J.length>0&&J[0]){const ne=Jt(J);(!Te.name||Te.name.startsWith("fk_"))&&(b.name=ne)}return b}))},ve=m=>{if(!m._original)return!1;const w=m._original;return m.name!==w.name||m.type!==w.type||m.length!==w.length||m.decimals!==w.decimals||m.nullable!==w.nullable||m.defaultValue!==w.defaultValue||m.comment!==w.comment||m.unsigned!==w.unsigned||m.autoIncrement!==w.autoIncrement},AE=f.useMemo(()=>{const m=s.toLowerCase(),w=b=>m==="mysql"||m==="mariadb"?`\`${b}\``:m==="postgres"||m==="postgresql"?`"${b}"`:m==="sqlserver"?`[${b}]`:`"${b}"`,J=b=>{let ne=b.type.toUpperCase();return b.length&&(b.decimals&&Me(b.type)?ne+=`(${b.length},${b.decimals})`:ne+=`(${b.length})`),ne},Te=(b,ne=!1)=>{let ie=`${w(b.name)} ${J(b)}`;if(Ve(b.type)&&b.unsigned&&(m==="mysql"||m==="mariadb")&&(ie+=" UNSIGNED"),b.zerofill&&(m==="mysql"||m==="mariadb")&&(ie+=" ZEROFILL"),b.nullable||(ie+=" NOT NULL"),b.autoIncrement&&(m==="mysql"||m==="mariadb"?ie+=" AUTO_INCREMENT":m==="sqlserver"&&(ie+=" IDENTITY(1,1)")),b.defaultValue!==void 0&&b.defaultValue!==""){const _t=b.defaultValue;_t.toUpperCase()==="NULL"?ie+=" DEFAULT NULL":_t.toUpperCase()==="CURRENT_TIMESTAMP"||_t.toUpperCase().startsWith("NOW")?ie+=` DEFAULT ${_t}`:ie+=` DEFAULT '${_t}'`}return b.comment&&(m==="mysql"||m==="mariadb")&&(ie+=` COMMENT '${b.comment.replace(/'/g,"''")}'`),ie};if(t==="create"){const b=D.filter(x=>!x._isDeleted&&x.name);if(!C||b.length===0)return"-- 请填写表名和至少一个字段";const ne=b.map(x=>" "+Te(x,!0)),ie=b.filter(x=>x.primaryKey);ie.length>0&&ne.push(` PRIMARY KEY (${ie.map(x=>w(x.name)).join(", ")})`);const _t=S.filter(x=>!x._isDeleted&&x.name&&x.columns.length>0&&x.columns.some(W=>W));for(const x of _t){let W=" ";x.type==="UNIQUE"?W+="UNIQUE ":x.type==="FULLTEXT"?W+="FULLTEXT ":x.type==="SPATIAL"&&(W+="SPATIAL "),W+=`INDEX ${w(x.name)} (${x.columns.map(Ae=>w(Ae)).join(", ")})`,x.method&&x.method!=="BTREE"&&(m==="mysql"||m==="mariadb")&&(W+=` USING ${x.method}`),ne.push(W)}const NE=L.filter(x=>!x._isDeleted&&x.name&&x.columns.length>0&&x.columns[0]&&x.refTable&&x.refColumns.length>0&&x.refColumns[0]);for(const x of NE){let W=` CONSTRAINT ${w(x.name)} FOREIGN KEY (${x.columns.map(Ae=>w(Ae)).join(", ")}) `;W+=`REFERENCES ${x.refSchema?w(x.refSchema)+".":""}${w(x.refTable)} (${x.refColumns.map(Ae=>w(Ae)).join(", ")})`,x.onDelete!=="NO ACTION"&&(W+=` ON DELETE ${x.onDelete}`),x.onUpdate!=="NO ACTION"&&(W+=` ON UPDATE ${x.onUpdate}`),ne.push(W)}let G=`CREATE TABLE ${w(E)}.${w(C)} ( -${ne.join(`, -`)} -)`;if(m==="mysql"||m==="mariadb"){const x=[];p.engine&&x.push(`ENGINE=${p.engine}`),p.charset&&x.push(`DEFAULT CHARSET=${p.charset}`),p.collation&&x.push(`COLLATE=${p.collation}`),p.rowFormat&&p.rowFormat!=="DEFAULT"&&x.push(`ROW_FORMAT=${p.rowFormat}`),p.comment&&x.push(`COMMENT='${p.comment.replace(/'/g,"''")}'`),p.autoIncrement&&x.push(`AUTO_INCREMENT=${p.autoIncrement}`),x.length>0&&(G+=` -`+x.join(` -`))}return G+";"}else{const b=[],ne=`${w(E)}.${w(C)}`,ie=D.filter(H=>H._isDeleted&&H._original);for(const H of ie)b.push(`ALTER TABLE ${ne} DROP COLUMN ${w(H.name)};`);const _t=D.filter(H=>H._isNew&&!H._isDeleted&&H.name);for(const H of _t)b.push(`ALTER TABLE ${ne} ADD COLUMN ${Te(H)};`);const NE=D.filter(H=>!H._isNew&&!H._isDeleted&&H._original&&ve(H));for(const H of NE)m==="mysql"||m==="mariadb"?b.push(`ALTER TABLE ${ne} -CHANGE COLUMN ${w(H._original.name)} ${Te(H)};`):m==="postgres"||m==="postgresql"?(H._original.name!==H.name&&b.push(`ALTER TABLE ${ne} RENAME COLUMN ${w(H._original.name)} TO ${w(H.name)};`),b.push(`ALTER TABLE ${ne} ALTER COLUMN ${w(H.name)} TYPE ${J(H)};`),H.nullable!==H._original.nullable&&b.push(`ALTER TABLE ${ne} ALTER COLUMN ${w(H.name)} ${H.nullable?"DROP":"SET"} NOT NULL;`)):m==="sqlserver"&&(H._original.name!==H.name&&b.push(`EXEC sp_rename '${C}.${H._original.name}', '${H.name}', 'COLUMN';`),b.push(`ALTER TABLE ${ne} ALTER COLUMN ${w(H.name)} ${J(H)}${H.nullable?"":" NOT NULL"};`));const G=S.filter(H=>H._isDeleted&&H._original);for(const H of G)m==="mysql"||m==="mariadb"?b.push(`ALTER TABLE ${ne} DROP INDEX ${w(H.name)};`):m==="postgres"||m==="postgresql"?b.push(`DROP INDEX ${w(H.name)};`):m==="sqlserver"&&b.push(`DROP INDEX ${w(H.name)} ON ${ne};`);const x=S.filter(H=>H._isNew&&!H._isDeleted&&H.name&&H.columns.length>0&&H.columns.some(z=>z));for(const H of x){let z="";m==="mysql"||m==="mariadb"?(z=`ALTER TABLE ${ne} ADD `,H.type==="UNIQUE"?z+="UNIQUE ":H.type==="FULLTEXT"?z+="FULLTEXT ":H.type==="SPATIAL"&&(z+="SPATIAL "),z+=`INDEX ${w(H.name)} (${H.columns.map(de=>w(de)).join(", ")})`,H.method&&H.method!=="BTREE"&&(z+=` USING ${H.method}`)):z=`CREATE ${H.type==="UNIQUE"?"UNIQUE ":""}INDEX ${w(H.name)} ON ${ne} (${H.columns.map(de=>w(de)).join(", ")})`,b.push(z+";")}const W=L.filter(H=>H._isDeleted&&H._original);for(const H of W)m==="mysql"||m==="mariadb"?b.push(`ALTER TABLE ${ne} DROP FOREIGN KEY ${w(H.name)};`):b.push(`ALTER TABLE ${ne} DROP CONSTRAINT ${w(H.name)};`);const Ae=L.filter(H=>H._isNew&&!H._isDeleted&&H.name&&H.columns.length>0&&H.columns[0]&&H.refTable&&H.refColumns.length>0&&H.refColumns[0]);for(const H of Ae){let z=`ALTER TABLE ${ne} ADD CONSTRAINT ${w(H.name)} FOREIGN KEY (${H.columns.map(de=>w(de)).join(", ")}) `;z+=`REFERENCES ${H.refSchema?w(H.refSchema)+".":""}${w(H.refTable)} (${H.refColumns.map(de=>w(de)).join(", ")})`,H.onDelete!=="NO ACTION"&&(z+=` ON DELETE ${H.onDelete}`),H.onUpdate!=="NO ACTION"&&(z+=` ON UPDATE ${H.onUpdate}`),b.push(z+";")}if(m==="mysql"||m==="mariadb"){const H=y||{comment:"",engine:"",charset:""};if(p.comment!==H.comment&&(p.comment?b.push(`ALTER TABLE ${ne} COMMENT='${p.comment.replace(/'/g,"''")}';`):b.push(`ALTER TABLE ${ne} COMMENT='';`)),p.engine&&p.engine!==H.engine&&b.push(`ALTER TABLE ${ne} ENGINE=${p.engine};`),p.charset&&p.charset!==H.charset){let z=`ALTER TABLE ${ne} CONVERT TO CHARACTER SET ${p.charset}`;p.collation&&(z+=` COLLATE ${p.collation}`),b.push(z+";")}}return b.length>0?b.join(` - -`):"-- 没有需要执行的修改"}},[t,C,D,S,L,p,y,E,s]),St=async()=>{if(!C){Ie("请输入表名");return}if(D.filter(w=>!w._isDeleted&&w.name).length===0){Ie("请至少添加一个字段");return}F(!0),Ie("");try{const w=await o(AE);if(!w.success)Ie(w.message);else if(t==="edit"&&a)try{const J=await a();if(J){const Te=J.columns.map(ie=>({...ie,id:crypto.randomUUID(),_original:{...ie,id:crypto.randomUUID()}})),b=J.indexes.map(ie=>({...ie,id:crypto.randomUUID(),_original:{...ie,id:crypto.randomUUID()}})),ne=J.foreignKeys.map(ie=>({...ie,id:crypto.randomUUID(),_original:{...ie,id:crypto.randomUUID()}}));I(Te),c(b),B(ne),J.options&&(P(J.options),Y(J.options))}}catch{}else l()}catch(w){Ie(w.message||"保存失败")}finally{F(!1)}};if(!e)return null;const lt=D.filter(m=>!m._isDeleted),Qt=S.filter(m=>!m._isDeleted),SE=L.filter(m=>!m._isDeleted),ue=[{id:"columns",label:"字段",icon:cO,count:lt.length},{id:"indexes",label:"索引",icon:vn,count:Qt.length},{id:"foreignKeys",label:"外键",icon:uO,count:SE.length},{id:"options",label:"选项",icon:IS},{id:"sql",label:"SQL 预览",icon:Fs}];return T.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:T.jsxs("div",{className:"bg-metro-card border border-metro-border w-[1100px] h-[700px] flex flex-col shadow-metro-lg animate-fade-in",children:[T.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-metro-border bg-metro-surface flex-shrink-0",children:[T.jsxs("div",{className:"flex items-center gap-3",children:[T.jsx(Fn,{size:18,className:"text-accent-teal"}),T.jsxs("span",{className:"font-medium",children:[t==="create"?"新建表":"编辑表"," - ",E]}),t==="edit"&&n&&T.jsxs("span",{className:"text-text-secondary",children:["(",n,")"]})]}),T.jsxs("div",{className:"flex items-center gap-2",children:[T.jsxs("button",{onClick:St,disabled:_e,className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-accent-blue hover:bg-accent-blue-hover \r - disabled:opacity-50 transition-colors`,children:[T.jsx(Zo,{size:14}),_e?"保存中...":"保存"]}),T.jsx("button",{onClick:l,className:"p-1.5 hover:bg-metro-hover rounded-sm transition-colors",children:T.jsx(RE,{size:16})})]})]}),T.jsxs("div",{className:"border-b border-metro-border bg-metro-surface/50 flex-shrink-0",children:[T.jsxs("div",{className:"flex items-center gap-6 px-4 py-2 border-b border-metro-border/50",children:[T.jsxs("div",{className:"flex items-center gap-2",children:[T.jsx("span",{className:"text-sm text-text-secondary w-12",children:"表名:"}),T.jsx("input",{type:"text",value:C,onChange:m=>u(m.target.value),placeholder:"输入表名",disabled:t==="edit",className:`w-48 h-8 px-3 bg-metro-surface border border-metro-border text-sm\r - focus:border-accent-blue focus:outline-none transition-colors\r - disabled:opacity-60 disabled:cursor-not-allowed`})]}),T.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[T.jsx("span",{className:"text-sm text-text-secondary w-12",children:"注释:"}),T.jsx("input",{type:"text",value:p.comment,onChange:m=>P({...p,comment:m.target.value}),placeholder:"表注释",className:`flex-1 max-w-md h-8 px-3 bg-metro-surface border border-metro-border text-sm\r - focus:border-accent-blue focus:outline-none transition-colors`})]})]}),T.jsx("div",{className:"flex px-4",children:ue.map(m=>T.jsxs("button",{onClick:()=>O(m.id),className:`flex items-center gap-1.5 px-4 py-2 text-sm border-b-2 transition-colors - ${i===m.id?"border-accent-blue text-accent-blue":"border-transparent text-text-secondary hover:text-text-primary"}`,children:[T.jsx(m.icon,{size:14}),m.label,"count"in m&&m.count!==void 0&&T.jsx("span",{className:"ml-1 text-xs bg-metro-hover px-1.5 rounded",children:m.count})]},m.id))})]}),He&&T.jsx("div",{className:"px-4 py-2 bg-accent-red/20 border-b border-accent-red/30 text-sm text-accent-red flex-shrink-0",children:He}),T.jsx("div",{className:"flex-1 overflow-hidden",children:K?T.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary",children:"加载中..."}):T.jsxs(T.Fragment,{children:[i==="columns"&&T.jsx(g_,{columns:lt,dataTypes:Fe,dbType:s,selectedId:me,onSelect:le,onAdd:be,onRemove:ze,onUpdate:Et,onMove:iE,needsLength:Ye,needsDecimals:Me,supportsUnsigned:Ve}),i==="indexes"&&T.jsx(v_,{indexes:Qt,columns:lt,selectedId:X,onSelect:ee,onAdd:Mt,onRemove:Oe,onUpdate:Lt,dbType:s}),i==="foreignKeys"&&T.jsx(B_,{foreignKeys:SE,columns:lt,selectedId:te,onSelect:Ee,onAdd:zt,onRemove:j,onUpdate:Qe,onGetDatabases:R,onGetTables:A,onGetColumns:N,currentDatabase:E}),i==="options"&&T.jsx(F_,{options:p,dbType:s,onChange:P}),i==="sql"&&T.jsx(Y_,{sql:AE})]})})]})})}function g_({columns:e,dataTypes:t,dbType:E,selectedId:n,onSelect:r,onAdd:s,onRemove:l,onUpdate:o,onMove:a,needsLength:R,needsDecimals:A,supportsUnsigned:N}){const i=E.toLowerCase()==="mysql"||E.toLowerCase()==="mariadb",[O,C]=f.useState(null),[u,D]=f.useState(null),I=(L,B)=>{C(B),L.dataTransfer.effectAllowed="move"},S=(L,B)=>{L.preventDefault(),O!==null&&O!==B&&D(B)},c=()=>{if(O!==null&&u!==null&&O!==u)if(uu;L--)a(L,"up");else for(let L=O;LT.jsxs("tr",{onDragOver:p=>S(p,B),onClick:()=>r(L.id),className:`border-b border-metro-border/50 cursor-pointer transition-colors - ${n===L.id?"bg-accent-blue/20":"hover:bg-metro-hover/50"} - ${L._isNew?"bg-accent-green/10":""} - ${u===B?"border-t-2 border-t-accent-blue":""}`,children:[T.jsx("td",{draggable:!0,onDragStart:p=>I(p,B),onDragEnd:c,className:"px-1 py-1.5 text-center cursor-grab active:cursor-grabbing",children:T.jsx(IO,{size:14,className:"text-text-secondary mx-auto"})}),T.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:T.jsx("input",{type:"text",value:L.name,onChange:p=>o(L.id,"name",p.target.value),onFocus:()=>r(L.id),placeholder:"字段名",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-metro-border \r - focus:border-accent-blue focus:bg-metro-surface focus:outline-none text-xs\r - selection:bg-accent-blue selection:text-white`})}),T.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:T.jsx("select",{value:L.type,onChange:p=>o(L.id,"type",p.target.value),onFocus:()=>r(L.id),className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-metro-border \r - focus:border-accent-blue focus:bg-metro-surface focus:outline-none text-xs`,children:t.map(p=>T.jsx("optgroup",{label:p.group,children:p.types.map(P=>T.jsx("option",{value:P,children:P},P))},p.group))})}),T.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:T.jsx("input",{type:"text",value:L.length,onChange:p=>o(L.id,"length",p.target.value),onFocus:()=>r(L.id),disabled:!R(L.type),placeholder:R(L.type)?"":"-",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-metro-border \r - focus:border-accent-blue focus:bg-metro-surface focus:outline-none text-xs\r - disabled:opacity-40 disabled:cursor-not-allowed selection:bg-accent-blue selection:text-white`})}),T.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:T.jsx("input",{type:"text",value:L.decimals,onChange:p=>o(L.id,"decimals",p.target.value),onFocus:()=>r(L.id),disabled:!A(L.type),placeholder:A(L.type)?"":"-",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-metro-border \r - focus:border-accent-blue focus:bg-metro-surface focus:outline-none text-xs\r - disabled:opacity-40 disabled:cursor-not-allowed selection:bg-accent-blue selection:text-white`})}),T.jsx("td",{className:"px-3 py-1.5 text-center",onClick:p=>p.stopPropagation(),children:T.jsx("input",{type:"checkbox",checked:!L.nullable,onChange:p=>{r(L.id),o(L.id,"nullable",!p.target.checked)},disabled:L.primaryKey,className:"w-4 h-4 accent-accent-blue disabled:opacity-50"})}),i&&T.jsx("td",{className:"px-3 py-1.5 text-center",onClick:p=>p.stopPropagation(),children:T.jsx("input",{type:"checkbox",checked:L.unsigned,onChange:p=>{r(L.id),o(L.id,"unsigned",p.target.checked)},disabled:!N(L.type),className:"w-4 h-4 accent-accent-blue disabled:opacity-50"})}),T.jsxs("td",{className:"px-3 py-1.5 text-center",onClick:p=>p.stopPropagation(),children:[T.jsx("button",{onClick:()=>{r(L.id),o(L.id,"primaryKey",!L.primaryKey)},className:`p-1 rounded-sm transition-colors ${L.primaryKey?"bg-accent-orange text-white":"hover:bg-metro-hover"}`,title:L.primaryKey?"主键":"设为主键",children:T.jsx(Qo,{size:12})}),L.autoIncrement&&T.jsx("span",{className:"ml-1 text-xs text-accent-blue",title:"自增",children:"A"})]}),T.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:T.jsx("input",{type:"text",value:L.defaultValue,onChange:p=>o(L.id,"defaultValue",p.target.value),onFocus:()=>r(L.id),placeholder:"",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-metro-border \r - focus:border-accent-blue focus:bg-metro-surface focus:outline-none text-xs\r - selection:bg-accent-blue selection:text-white`})}),T.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:T.jsx("input",{type:"text",value:L.comment,onChange:p=>o(L.id,"comment",p.target.value),onFocus:()=>r(L.id),placeholder:"",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-metro-border \r - focus:border-accent-blue focus:bg-metro-surface focus:outline-none text-xs\r - selection:bg-accent-blue selection:text-white`})}),T.jsx("td",{className:"px-2 py-1.5 text-center",onClick:p=>p.stopPropagation(),children:T.jsx("button",{onClick:()=>{r(L.id),e.length>1&&l(L.id)},disabled:e.length<=1,className:`p-1 text-text-secondary hover:text-accent-red hover:bg-accent-red/10 rounded transition-colors\r - disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:text-text-secondary disabled:hover:bg-transparent`,title:"删除字段",children:T.jsx(yE,{size:14})})})]},L.id))})]})}),n&&T.jsx(H_,{column:e.find(L=>L.id===n),onUpdate:(L,B)=>o(n,L,B),isMysql:i})]})}function H_({column:e,onUpdate:t,isMysql:E}){return T.jsx("div",{className:"border-t border-metro-border bg-metro-surface/50 px-4 py-3 flex-shrink-0",children:T.jsxs("div",{className:"grid grid-cols-4 gap-4 text-sm",children:[T.jsxs("label",{className:"flex items-center gap-2",children:[T.jsx("input",{type:"checkbox",checked:e.autoIncrement,onChange:n=>t("autoIncrement",n.target.checked),className:"w-4 h-4 accent-accent-blue"}),T.jsx("span",{children:"自动递增"})]}),E&&T.jsxs(T.Fragment,{children:[T.jsxs("label",{className:"flex items-center gap-2",children:[T.jsx("input",{type:"checkbox",checked:e.zerofill,onChange:n=>t("zerofill",n.target.checked),className:"w-4 h-4 accent-accent-blue"}),T.jsx("span",{children:"填充零"})]}),T.jsxs("label",{className:"flex items-center gap-2",children:[T.jsx("input",{type:"checkbox",checked:e.isVirtual,onChange:n=>t("isVirtual",n.target.checked),className:"w-4 h-4 accent-accent-blue"}),T.jsx("span",{children:"虚拟"})]})]})]})})}function v_({indexes:e,columns:t,selectedId:E,onSelect:n,onAdd:r,onRemove:s,onUpdate:l,dbType:o}){const a=o.toLowerCase()==="mysql"||o.toLowerCase()==="mariadb",R=t.filter(i=>i.name).map(i=>({label:i.name,value:i.name})),A=[{label:"NORMAL",value:"NORMAL"},{label:"UNIQUE",value:"UNIQUE"},...a?[{label:"FULLTEXT",value:"FULLTEXT"},{label:"SPATIAL",value:"SPATIAL"}]:[]],N=[{label:"BTREE",value:"BTREE"},{label:"HASH",value:"HASH"}];return T.jsxs("div",{className:"h-full flex flex-col",children:[T.jsx("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-metro-border bg-metro-surface/30 flex-shrink-0",children:T.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-accent-green hover:bg-accent-green/80 transition-colors",children:[T.jsx(Bn,{size:14}),"添加索引"]})}),T.jsxs("div",{className:"flex-1 overflow-auto",children:[T.jsxs("table",{className:"w-full text-sm",children:[T.jsx("thead",{className:"bg-metro-surface sticky top-0",children:T.jsxs("tr",{className:"border-b border-metro-border",children:[T.jsx("th",{className:"w-40 px-3 py-2 text-left font-medium",children:"名称"}),T.jsx("th",{className:"w-64 px-3 py-2 text-left font-medium",children:"字段"}),T.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"索引类型"}),a&&T.jsx("th",{className:"w-24 px-3 py-2 text-left font-medium",children:"索引方法"}),T.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"注释"}),T.jsx("th",{className:"w-16 px-3 py-2 text-center font-medium",children:"操作"})]})}),T.jsx("tbody",{children:e.map(i=>T.jsxs("tr",{onClick:()=>n(i.id),className:`border-b border-metro-border/50 cursor-pointer transition-colors - ${E===i.id?"bg-accent-blue/20":"hover:bg-metro-hover/50"} - ${i._isNew?"bg-accent-green/10":""}`,children:[T.jsx("td",{className:"px-3 py-1.5",children:T.jsx("input",{type:"text",value:i.name,onChange:O=>l(i.id,"name",O.target.value),onClick:O=>O.stopPropagation(),placeholder:"索引名",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-metro-border \r - focus:border-accent-blue focus:bg-metro-surface focus:outline-none text-xs`})}),T.jsx("td",{className:"px-3 py-1.5",onClick:O=>O.stopPropagation(),children:T.jsx(h_,{values:i.columns,options:R,onChange:O=>l(i.id,"columns",O),placeholder:"选择字段..."})}),T.jsx("td",{className:"px-3 py-1.5",onClick:O=>O.stopPropagation(),children:T.jsx(xt,{value:i.type,options:A,onChange:O=>l(i.id,"type",O),placeholder:"索引类型"})}),a&&T.jsx("td",{className:"px-3 py-1.5",onClick:O=>O.stopPropagation(),children:T.jsx(xt,{value:i.method,options:N,onChange:O=>l(i.id,"method",O),placeholder:"索引方法"})}),T.jsx("td",{className:"px-3 py-1.5",children:T.jsx("input",{type:"text",value:i.comment,onChange:O=>l(i.id,"comment",O.target.value),onClick:O=>O.stopPropagation(),placeholder:"",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-metro-border \r - focus:border-accent-blue focus:bg-metro-surface focus:outline-none text-xs`})}),T.jsx("td",{className:"px-3 py-1.5 text-center",children:T.jsx("button",{onClick:O=>{O.stopPropagation(),s(i.id)},className:"p-1 text-text-secondary hover:text-accent-red hover:bg-accent-red/10 rounded transition-colors",title:"删除索引",children:T.jsx(yE,{size:14})})})]},i.id))})]}),e.length===0&&T.jsx("div",{className:"text-center py-8 text-text-secondary text-sm",children:'暂无索引,点击"添加索引"创建'})]})]})}function B_({foreignKeys:e,columns:t,selectedId:E,onSelect:n,onAdd:r,onRemove:s,onUpdate:l,onGetDatabases:o,onGetTables:a,onGetColumns:R,currentDatabase:A}){const[N,i]=f.useState([A]),[O,C]=f.useState({}),[u,D]=f.useState({});f.useEffect(()=>{o&&o().then(P=>i(P))},[]);const I=async(P,y)=>{if(!a)return;const Y=await a(y);C(K=>({...K,[P]:Y}))},S=async(P,y,Y)=>{if(!R)return;const K=await R(y,Y);D(oe=>({...oe,[P]:K}))},c=["CASCADE","SET NULL","NO ACTION","RESTRICT","SET DEFAULT"],L=t.filter(P=>P.name).map(P=>({label:P.name,value:P.name})),B=N.map(P=>({label:P,value:P})),p=c.map(P=>({label:P,value:P}));return T.jsxs("div",{className:"h-full flex flex-col",children:[T.jsx("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-metro-border bg-metro-surface/30 flex-shrink-0",children:T.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-accent-green hover:bg-accent-green/80 transition-colors",children:[T.jsx(Bn,{size:14}),"添加外键"]})}),T.jsxs("div",{className:"flex-1 overflow-auto",children:[T.jsxs("table",{className:"w-full text-sm",children:[T.jsx("thead",{className:"bg-metro-surface sticky top-0",children:T.jsxs("tr",{className:"border-b border-metro-border",children:[T.jsx("th",{className:"w-36 px-3 py-2 text-left font-medium",children:"名称"}),T.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"字段"}),T.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"被引用的模式"}),T.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"被引用的表"}),T.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"被引用的字段"}),T.jsx("th",{className:"w-24 px-3 py-2 text-left font-medium",children:"删除时"}),T.jsx("th",{className:"w-24 px-3 py-2 text-left font-medium",children:"更新时"}),T.jsx("th",{className:"w-16 px-3 py-2 text-center font-medium",children:"操作"})]})}),T.jsx("tbody",{children:e.map(P=>T.jsxs("tr",{onClick:()=>n(P.id),className:`border-b border-metro-border/50 cursor-pointer transition-colors - ${E===P.id?"bg-accent-blue/20":"hover:bg-metro-hover/50"} - ${P._isNew?"bg-accent-green/10":""}`,children:[T.jsx("td",{className:"px-3 py-1.5",children:T.jsx("input",{type:"text",value:P.name,onChange:y=>l(P.id,"name",y.target.value),onClick:y=>y.stopPropagation(),placeholder:"外键名",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-metro-border \r - focus:border-accent-blue focus:bg-metro-surface focus:outline-none text-xs`})}),T.jsx("td",{className:"px-3 py-1.5",onClick:y=>y.stopPropagation(),children:T.jsx(xt,{value:P.columns[0]||"",options:L,onChange:y=>l(P.id,"columns",[y]),placeholder:"选择字段"})}),T.jsx("td",{className:"px-3 py-1.5",onClick:y=>y.stopPropagation(),children:T.jsx(xt,{value:P.refSchema||A,options:B,onChange:y=>{l(P.id,"refSchema",y),I(P.id,y)},placeholder:"选择模式"})}),T.jsxs("td",{className:"px-3 py-1.5",onClick:y=>y.stopPropagation(),children:[T.jsx(xt,{value:P.refTable,options:(O[P.id]||[]).map(y=>({label:y,value:y})),onChange:y=>{l(P.id,"refTable",y),S(P.id,P.refSchema||A,y)},placeholder:"选择表"}),!O[P.id]&&T.jsx("button",{onClick:()=>I(P.id,P.refSchema||A),className:"text-[10px] text-accent-blue hover:underline mt-0.5",children:"加载表列表"})]}),T.jsxs("td",{className:"px-3 py-1.5",onClick:y=>y.stopPropagation(),children:[T.jsx(xt,{value:P.refColumns[0]||"",options:(u[P.id]||[]).map(y=>({label:y,value:y})),onChange:y=>l(P.id,"refColumns",[y]),placeholder:"选择字段"}),P.refTable&&!u[P.id]&&T.jsx("button",{onClick:()=>S(P.id,P.refSchema||A,P.refTable),className:"text-[10px] text-accent-blue hover:underline mt-0.5",children:"加载字段"})]}),T.jsx("td",{className:"px-3 py-1.5",onClick:y=>y.stopPropagation(),children:T.jsx(xt,{value:P.onDelete,options:p,onChange:y=>l(P.id,"onDelete",y)})}),T.jsx("td",{className:"px-3 py-1.5",onClick:y=>y.stopPropagation(),children:T.jsx(xt,{value:P.onUpdate,options:p,onChange:y=>l(P.id,"onUpdate",y)})}),T.jsx("td",{className:"px-3 py-1.5 text-center",children:T.jsx("button",{onClick:y=>{y.stopPropagation(),s(P.id)},className:"p-1 text-text-secondary hover:text-accent-red hover:bg-accent-red/10 rounded transition-colors",title:"删除外键",children:T.jsx(yE,{size:14})})})]},P.id))})]}),e.length===0&&T.jsx("div",{className:"text-center py-8 text-text-secondary text-sm",children:'暂无外键,点击"添加外键"创建'})]})]})}function F_({options:e,dbType:t,onChange:E}){const n=t.toLowerCase()==="mysql"||t.toLowerCase()==="mariadb",r=m_.map(a=>({label:a,value:a})),s=U_.map(a=>({label:a,value:a})),l=M_.map(a=>({label:a,value:a})),o=(jR[e.charset]||[]).map(a=>({label:a,value:a}));return n?T.jsx("div",{className:"p-4 space-y-4",children:T.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-1.5",children:"数据库引擎"}),T.jsx(xt,{value:e.engine,options:r,onChange:a=>E({...e,engine:a}),placeholder:"选择引擎",className:"h-9 bg-metro-surface border border-metro-border px-2"})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-1.5",children:"行格式"}),T.jsx(xt,{value:e.rowFormat,options:s,onChange:a=>E({...e,rowFormat:a}),placeholder:"选择行格式",className:"h-9 bg-metro-surface border border-metro-border px-2"})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-1.5",children:"字符集"}),T.jsx(xt,{value:e.charset,options:l,onChange:a=>{const R=jR[a]||[];E({...e,charset:a,collation:R[0]||""})},placeholder:"选择字符集",className:"h-9 bg-metro-surface border border-metro-border px-2"})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-1.5",children:"排序规则"}),T.jsx(xt,{value:e.collation,options:o,onChange:a=>E({...e,collation:a}),placeholder:"选择排序规则",className:"h-9 bg-metro-surface border border-metro-border px-2"})]}),T.jsxs("div",{children:[T.jsx("label",{className:"block text-sm text-text-secondary mb-1.5",children:"自增值"}),T.jsx("input",{type:"text",value:e.autoIncrement,onChange:a=>E({...e,autoIncrement:a.target.value}),placeholder:"默认",className:`w-full h-9 px-3 bg-metro-surface border border-metro-border text-sm\r - focus:border-accent-blue focus:outline-none transition-colors`})]})]})}):T.jsx("div",{className:"p-4 text-text-secondary text-sm",children:"表选项仅适用于 MySQL / MariaDB"})}function Y_({sql:e}){const[t,E]=f.useState(!1),n=async()=>{await navigator.clipboard.writeText(e),E(!0),setTimeout(()=>E(!1),2e3)};return T.jsxs("div",{className:"h-full flex flex-col",children:[T.jsxs("div",{className:"flex items-center justify-between px-4 py-2 border-b border-metro-border bg-metro-surface/30 flex-shrink-0",children:[T.jsx("span",{className:"text-sm text-text-secondary",children:"将要执行的 SQL 语句"}),T.jsx("button",{onClick:n,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-metro-surface hover:bg-metro-hover border border-metro-border transition-colors",children:t?"已复制":"复制"})]}),T.jsx("div",{className:"flex-1 overflow-auto p-4",children:T.jsx("pre",{className:"text-sm font-mono text-accent-teal whitespace-pre-wrap break-all",children:e})})]})}function zR(e,t){const E=f.useRef(),n=f.useRef(e);return f.useEffect(()=>{n.current=e},[e]),f.useCallback((...r)=>{E.current&&clearTimeout(E.current),E.current=setTimeout(()=>{n.current(...r)},t)},[t])}function w_(){const[e,t]=f.useState([]),[E,n]=f.useState(null),[r,s]=f.useState(new Set),[l,o]=f.useState(new Map),[a,R]=f.useState(null),[A,N]=f.useState(new Map),[i,O]=f.useState(new Set),[C,u]=f.useState(new Set),[D,I]=f.useState(new Map),[S,c]=f.useState(!1),[L,B]=f.useState(null),[p,P]=f.useState(void 0),[y,Y]=f.useState([]),[K,oe]=f.useState("welcome"),[_e,F]=f.useState({text:"就绪",type:"success"}),[He,Ie]=f.useState(!1),[me,le]=f.useState(null),[X,ee]=f.useState(!1),[te,Ee]=f.useState(null),[Re,Fe]=f.useState(!1),[Ye,Me]=f.useState(null),[Ve,be]=f.useState(!1),[ze,Et]=f.useState(null),[iE,Mt]=f.useState(!1),[Oe,Ce]=f.useState(null);f.useEffect(()=>{se.loadConnections().then(d=>{d&&t(d)})},[]);const Lt=zR(d=>{se.saveConnections(d)},500);f.useEffect(()=>{e.length>0&&Lt(e)},[e,Lt]),f.useEffect(()=>{const d=_=>{if((_.ctrlKey||_.metaKey)&&_.key==="q"){_.preventDefault();const M=`query-${Date.now()}`,h={id:M,title:"查询",sql:"",results:null};Y($=>[...$,h]),oe(M)}};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[]);const Jt=d=>{t(L?_=>_.map(M=>M.id===d.id?d:M):_=>[..._,d]),c(!1)},zt=async d=>{F({text:`正在连接 ${d.name}...`,type:"info"});const _=await se.connect(d);if(_?.success){s(h=>new Set(h).add(d.id)),n(d.id),F({text:`已连接: ${d.name}`,type:"success"});const M=await se.getDatabases(d.id);o(h=>new Map(h).set(d.id,M||[]))}else F({text:_?.message||"连接失败",type:"error"})},j=async d=>{await se.disconnect(d),s(_=>{const M=new Set(_);return M.delete(d),M}),o(_=>{const M=new Map(_);return M.delete(d),M}),N(_=>{const M=new Map(_);for(const h of M.keys())h.startsWith(`${d}:`)&&M.delete(h);return M}),E===d&&(n(null),R(null))},Qe=async d=>{if(n(d),r.has(d)&&!l.has(d)){F({text:"正在加载数据库列表...",type:"info"});try{const _=await se.getDatabases(d);o(M=>new Map(M).set(d,_||[])),F({text:`${_?.length||0} 个数据库`,type:"success"})}catch(_){F({text:_.message,type:"error"})}}},ve=f.useCallback(async(d,_)=>{if(A.has(d)){R(d);return}R(d),O(M=>new Set(M).add(d)),F({text:`正在加载 ${d} 的表...`,type:"info"});try{const M=await se.getTables(_,d);if(N(h=>{const $=new Map(h);return $.set(d,M||[]),$}),O(h=>{const $=new Set(h);return $.delete(d),$}),M&&M.length>0){const h=M.map(async Q=>{const q=await se.getColumns(_,d,Q.name);return{name:Q.name,cols:q||[]}}),$=await Promise.all(h);I(Q=>{const q=new Map(Q);return $.forEach(({name:Ze,cols:Nt})=>{Nt.length>0&&q.set(Ze,Nt)}),q})}F({text:`${d}: ${M?.length||0} 个表`,type:"success"})}catch(M){O(h=>{const $=new Set(h);return $.delete(d),$}),F({text:M.message,type:"error"})}},[A]),AE=d=>{const _=`query-${Date.now()}`,M={id:_,title:"查询",sql:"",results:null};Y(h=>[...h,M]),oe(_)},St=async(d,_,M)=>{const h=y.find(q=>"tableName"in q&&q.tableName===M&&q.database===_&&q.connectionId===d);if(h){oe(h.id);return}const $=`table-${Date.now()}`,Q={id:$,type:"table",tableName:M,database:_,connectionId:d,columns:[],data:[],total:0,page:1,pageSize:1e3,originalData:[],pendingChanges:new Map,deletedRows:new Set};Y(q=>[...q,Q]),oe($),u(q=>new Set(q).add($)),F({text:`正在加载 ${M}...`,type:"info"});try{const q=await se.getTableData(d,_,M,1,1e3),Ze=q?.columns||[];Y(Nt=>Nt.map(IE=>IE.id===$?{...IE,columns:Ze,data:q?.data||[],total:q?.total||0,originalData:q?.data||[]}:IE)),F({text:`${M}: ${q?.total||0} 行`,type:"success"})}catch(q){F({text:q.message,type:"error"}),Y(Ze=>Ze.filter(Nt=>Nt.id!==$)),oe("welcome")}finally{u(q=>{const Ze=new Set(q);return Ze.delete($),Ze})}},lt=async(d,_)=>{const M=y.find(h=>h.id===d);if(!(!M||!("tableName"in M))){u(h=>new Set(h).add(d)),F({text:`加载第 ${_} 页...`,type:"info"});try{const h=await se.getTableData(M.connectionId,M.database,M.tableName,_,M.pageSize);Y($=>$.map(Q=>Q.id===d&&"tableName"in Q?{...Q,data:h?.data||[],page:_,originalData:h?.data||[],pendingChanges:new Map,deletedRows:new Set}:Q)),F({text:`${M.tableName}: 第 ${_} 页`,type:"success"})}catch(h){F({text:h.message,type:"error"})}finally{u(h=>{const $=new Set(h);return $.delete(d),$})}}},Qt=async(d,_)=>{const M=y.find(h=>h.id===d);if(!(!M||!("tableName"in M))){u(h=>new Set(h).add(d)),F({text:`切换为每页 ${_} 条...`,type:"info"});try{const h=await se.getTableData(M.connectionId,M.database,M.tableName,1,_);Y($=>$.map(Q=>Q.id===d&&"tableName"in Q?{...Q,data:h?.data||[],page:1,pageSize:_,originalData:h?.data||[],pendingChanges:new Map,deletedRows:new Set}:Q)),F({text:`${M.tableName}: 每页 ${_} 条`,type:"success"})}catch(h){F({text:h.message,type:"error"})}finally{u(h=>{const $=new Set(h);return $.delete(d),$})}}},SE=(d,_,M,h)=>{Y($=>$.map(Q=>{if(Q.id!==d||!("tableName"in Q))return Q;const q=Q,Ze=[...q.data];Ze[_]={...Ze[_],[M]:h};const Nt=new Map(q.pendingChanges||new Map),IE=Nt.get(String(_))||{};return IE[M]=h,Nt.set(String(_),IE),{...q,data:Ze,pendingChanges:Nt}}))},ue=(d,_)=>{Y(M=>M.map(h=>{if(h.id!==d||!("tableName"in h))return h;const $=h,Q=new Set($.deletedRows||new Set);return Q.add(_),{...$,deletedRows:Q}}))},m=(d,_)=>{Y(M=>M.map(h=>{if(h.id!==d||!("tableName"in h))return h;const $=h,Q=new Set($.deletedRows||new Set);return _.forEach(q=>Q.add(q)),{...$,deletedRows:Q}}))},w=async d=>{const _=y.find(h=>h.id===d);if(!_||!("tableName"in _))return;const M=_.columns.find(h=>h.key==="PRI")?.name||_.columns[0]?.name;if(!M){F({text:"无法确定主键列",type:"error"});return}F({text:"保存中...",type:"info"});try{if(_.pendingChanges)for(const[Q,q]of _.pendingChanges){const Ze=parseInt(Q),IE=(_.originalData?.[Ze]||_.data[Ze])[M],ea=await se.updateRow(_.connectionId,_.database,_.tableName,{column:M,value:IE},q);if(ea?.error){F({text:`保存失败: ${ea.error}`,type:"error"});return}}if(_.deletedRows)for(const Q of _.deletedRows){const Ze=(_.originalData?.[Q]||_.data[Q])[M],Nt=await se.deleteRow(_.connectionId,_.database,_.tableName,{column:M,value:Ze});if(Nt?.error){F({text:`删除失败: ${Nt.error}`,type:"error"});return}}const h=await se.getTableData(_.connectionId,_.database,_.tableName,_.page,_.pageSize),$=await se.getTableData(_.connectionId,_.database,_.tableName,1,1);Y(Q=>Q.map(q=>q.id===d&&"tableName"in q?{...q,data:h?.data||[],total:$?.total||_.total,originalData:h?.data||[],pendingChanges:new Map,deletedRows:new Set}:q)),F({text:"保存成功",type:"success"})}catch(h){F({text:`保存失败: ${h.message}`,type:"error"})}},J=d=>{Y(_=>_.map(M=>{if(M.id!==d||!("tableName"in M))return M;const h=M;return{...h,data:h.originalData||h.data,pendingChanges:new Map,deletedRows:new Set}})),F({text:"已放弃修改",type:"warning"})},Te=async d=>{const _=y.find(M=>M.id===d);if(!(!_||!("tableName"in _))){u(M=>new Set(M).add(d)),F({text:`刷新 ${_.tableName}...`,type:"info"});try{const M=await se.getTableData(_.connectionId,_.database,_.tableName,_.page,_.pageSize),h=await se.getTableData(_.connectionId,_.database,_.tableName,1,1);Y($=>$.map(Q=>Q.id===d&&"tableName"in Q?{...Q,data:M?.data||[],total:h?.total||_.total,originalData:M?.data||[],pendingChanges:new Map,deletedRows:new Set}:Q)),F({text:`${_.tableName}: ${h?.total||0} 行`,type:"success"})}catch(M){F({text:M.message,type:"error"})}finally{u(M=>{const h=new Set(M);return h.delete(d),h})}}},b=zR(async(d,_)=>{if(!E){F({text:"请先连接数据库",type:"warning"});return}F({text:"执行中...",type:"info"});const M=Date.now(),h=await se.query(E,_),$=((Date.now()-M)/1e3).toFixed(2);h?.error?F({text:h.error,type:"error"}):(Y(Q=>Q.map(q=>q.id===d?{...q,results:h,sql:_}:q)),F({text:`${h?.rows?.length||0} 行 (${$}s)`,type:"success"}))},300),ne=async d=>{if(!E){F({text:"请先连接数据库",type:"warning"});return}F({text:`正在备份 ${d}...`,type:"info"});const _=await se.backupDatabase(E,d);_?.error?F({text:`备份失败: ${_.error}`,type:"error"}):_?.cancelled?F({text:"备份已取消",type:"warning"}):_?.success&&F({text:`备份成功: ${_.path}`,type:"success"})},ie=async(d,_,M)=>{if(!E){F({text:"请先连接数据库",type:"warning"});return}F({text:`正在导出 ${_}...`,type:"info"});const h=await se.exportTable(E,d,_,M);h?.error?F({text:`导出失败: ${h.error}`,type:"error"}):h?.cancelled?F({text:"导出已取消",type:"warning"}):h?.success&&F({text:`导出成功: ${h.path}`,type:"success"})},_t=d=>{le(d),Ie(!0)},NE=async(d,_,M)=>{if(!me)return;Ie(!1),F({text:`正在创建数据库 ${d}...`,type:"info"});const h=await se.createDatabase(me,d,_,M);if(h?.success){F({text:`数据库 ${d} 创建成功`,type:"success"});const $=await se.getDatabases(me);o(Q=>new Map(Q).set(me,$||[]))}else F({text:h?.message||"创建失败",type:"error"});le(null)},G=async(d,_)=>{F({text:`正在删除数据库 ${_}...`,type:"info"});const M=await se.dropDatabase(d,_);if(M?.success){F({text:`数据库 ${_} 已删除`,type:"success"});const h=await se.getDatabases(d);o($=>new Map($).set(d,h||[])),N($=>{const Q=new Map($);return Q.delete(_),Q}),a===_&&R(null)}else F({text:M?.message||"删除失败",type:"error"})},x=(d,_)=>{sT(d,_)},W=async(d,_)=>{if(!te)return;const{connectionId:M,database:h}=te;ee(!1),F({text:`正在创建表 ${d}...`,type:"info"});const $=_.map(q=>({name:q.name,type:q.length?`${q.type}(${q.length})`:q.type,nullable:q.nullable,primaryKey:q.primaryKey,autoIncrement:q.autoIncrement,defaultValue:q.defaultValue,comment:q.comment})),Q=await se.createTable(M,h,d,$);Q?.success?(F({text:`表 ${d} 创建成功`,type:"success"}),he(M,h)):F({text:Q?.message||"创建失败",type:"error"}),Ee(null)},Ae=async(d,_,M)=>{F({text:`正在删除表 ${M}...`,type:"info"});const h=await se.dropTable(d,_,M);h?.success?(F({text:`表 ${M} 已删除`,type:"success"}),he(d,_),Y($=>$.filter(Q=>!("tableName"in Q)||Q.tableName!==M||Q.database!==_))):F({text:h?.message||"删除失败",type:"error"})},H=async(d,_,M)=>{F({text:`正在清空表 ${M}...`,type:"info"});const h=await se.truncateTable(d,_,M);if(h?.success){F({text:`表 ${M} 已清空`,type:"success"});const $=y.find(Q=>"tableName"in Q&&Q.tableName===M&&Q.database===_);$&&Te($.id)}else F({text:h?.message||"清空失败",type:"error"})},z=(d,_,M)=>{Me({connectionId:d,database:_,table:M}),Fe(!0)},de=async d=>{if(!Ye)return;const{connectionId:_,database:M,table:h}=Ye;Fe(!1),F({text:`正在重命名表 ${h} -> ${d}...`,type:"info"});const $=await se.renameTable(_,M,h,d);$?.success?(F({text:`表已重命名为 ${d}`,type:"success"}),he(_,M),Y(Q=>Q.map(q=>"tableName"in q&&q.tableName===h&&q.database===M?{...q,tableName:d}:q))):F({text:$?.message||"重命名失败",type:"error"}),Me(null)},ot=(d,_,M)=>{Et({connectionId:d,database:_,table:M}),be(!0)},Le=async(d,_)=>{if(!ze)return;const{connectionId:M,database:h,table:$}=ze;be(!1),F({text:`正在复制表 ${$} -> ${d}...`,type:"info"});const Q=await se.duplicateTable(M,h,$,d,_);Q?.success?(F({text:`表已复制为 ${d}`,type:"success"}),he(M,h)):F({text:Q?.message||"复制失败",type:"error"}),Et(null)},he=async(d,_)=>{O(M=>new Set(M).add(_)),F({text:`刷新 ${_} 表列表...`,type:"info"});try{const M=await se.getTables(d,_);N(h=>{const $=new Map(h);return $.set(_,M||[]),$}),F({text:`${_}: ${M?.length||0} 个表`,type:"success"})}catch(M){F({text:M.message,type:"error"})}finally{O(M=>{const h=new Set(M);return h.delete(_),h})}},wn=(d,_,M)=>{Ce({mode:"edit",connectionId:d,database:_,tableName:M}),Mt(!0)},sT=(d,_)=>{Ce({mode:"create",connectionId:d,database:_}),Mt(!0)},gr=async d=>{if(!Oe)return{success:!1,message:"无效的操作"};const{connectionId:_,database:M}=Oe;F({text:"正在保存表结构...",type:"info"});const h=await se.executeMultiSQL(_,d);return h?.success?(F({text:"表结构保存成功",type:"success"}),he(_,M),{success:!0,message:"保存成功"}):(F({text:h?.message||"保存失败",type:"error"}),{success:!1,message:h?.message||"保存失败"})},TT=f.useCallback(async()=>{if(!Oe||Oe.mode!=="edit"||!Oe.tableName)return{columns:[],indexes:[],foreignKeys:[],options:{}};const{connectionId:d,database:_,tableName:M}=Oe;return await se.getTableInfo(d,_,M)},[Oe]),lT=async()=>Oe?await se.getDatabases(Oe.connectionId):[],oT=async d=>Oe?(await se.getTables(Oe.connectionId,d)).map(M=>M.name):[],tn=async(d,_)=>Oe?await se.getColumnNames(Oe.connectionId,d,_):[],Zt=d=>e.find(M=>M.id===d)?.type||"mysql";return T.jsxs("div",{className:"h-screen flex flex-col bg-metro-dark overflow-hidden",children:[T.jsx(UO,{}),T.jsxs("div",{className:"flex-1 flex overflow-hidden",children:[T.jsx(xO,{connections:e,activeConnection:E,connectedIds:r,databasesMap:l,tablesMap:A,selectedDatabase:a,loadingDbSet:i,onNewConnection:()=>{B(null),P(void 0),c(!0)},onSelectConnection:Qe,onConnect:zt,onDisconnect:j,onEditConnection:d=>{B(d),c(!0)},onDeleteConnection:d=>t(_=>_.filter(M=>M.id!==d)),onDeleteConnections:d=>{d.forEach(_=>{r.has(_)&&se.disconnect(_)}),s(_=>{const M=new Set(_);return d.forEach(h=>M.delete(h)),M}),t(_=>_.filter(M=>!d.includes(M.id))),F({text:`已删除 ${d.length} 个连接`,type:"success"})},onSelectDatabase:ve,onOpenTable:St,onBackupDatabase:ne,onExportTable:ie,onCreateDatabase:_t,onDropDatabase:G,onCreateTable:x,onDropTable:Ae,onTruncateTable:H,onRenameTable:z,onDuplicateTable:ot,onRefreshTables:he,onDesignTable:wn,onExportConnections:async d=>{const _=await se.exportConnections(e,d);_?.success?F({text:`已导出 ${_.count} 个连接到 ${_.path}`,type:"success"}):_?.error&&F({text:_.error,type:"error"})},onImportConnections:async()=>{const d=await se.importConnections();if(d?.success&&d.connections){const _=new Set(e.map(h=>h.name)),M=d.connections.map(h=>{let $=h.name,Q=1;for(;_.has($);)$=`${h.name} (${Q++})`;return _.add($),{...h,name:$}});t(h=>[...h,...M]),F({text:`已从 ${d.source} 导入 ${d.count} 个连接`,type:"success"})}else d?.error&&F({text:d.error,type:"error"})}}),T.jsx(C_,{tabs:y,activeTab:K,databases:E?l.get(E)||[]:[],tables:a?A.get(a)||[]:[],columns:D,onTabChange:oe,onCloseTab:d=>{Y(_=>{const M=_.filter(h=>h.id!==d);if(K===d){const h=_.findIndex($=>$.id===d);if(M.length>0){const $=Math.min(h,M.length-1);oe(M[$].id)}else oe("welcome")}return M})},onNewQuery:()=>AE(),onRunQuery:b,onUpdateSql:(d,_)=>Y(M=>M.map(h=>h.id===d&&!("tableName"in h)?{...h,sql:_}:h)),onUpdateTabTitle:(d,_)=>Y(M=>M.map(h=>h.id===d&&!("tableName"in h)?{...h,title:_}:h)),onLoadTablePage:lt,onChangeTablePageSize:Qt,onUpdateTableCell:SE,onDeleteTableRow:ue,onDeleteTableRows:m,onSaveTableChanges:w,onDiscardTableChanges:J,onRefreshTable:Te,loadingTables:C,onNewConnectionWithType:d=>{B(null),P(d),c(!0)}})]}),T.jsxs("div",{className:"h-6 bg-metro-bg flex items-center px-3 text-xs border-t border-metro-border",children:[T.jsxs("div",{className:`flex items-center gap-2 ${_e.type==="success"?"text-accent-green":_e.type==="error"?"text-accent-red":_e.type==="warning"?"text-accent-orange":"text-white/60"}`,children:[T.jsx("span",{className:"w-2 h-2 rounded-full bg-current"}),_e.text]}),T.jsx("span",{className:"ml-auto text-white/40",children:"EasySQL"})]}),S&&T.jsx(D_,{connection:L,defaultType:p,onSave:Jt,onClose:()=>{c(!1),P(void 0)}}),T.jsx(P_,{isOpen:He,onClose:()=>{Ie(!1),le(null)},onSubmit:NE}),T.jsx(f_,{isOpen:X,database:te?.database||"",onClose:()=>{ee(!1),Ee(null)},onSubmit:W}),T.jsx($R,{isOpen:Re,title:"重命名表",label:"新表名",placeholder:"输入新的表名",defaultValue:Ye?.table||"",confirmText:"重命名",icon:T.jsx(SS,{size:18,className:"text-accent-blue"}),onClose:()=>{Fe(!1),Me(null)},onSubmit:de}),T.jsx($R,{isOpen:Ve,title:"复制表",label:"新表名",placeholder:"输入新的表名",defaultValue:ze?.table?`${ze.table}_copy`:"",confirmText:"复制",icon:T.jsx(nT,{size:18,className:"text-accent-purple"}),showDataOption:!0,onClose:()=>{be(!1),Et(null)},onSubmit:d=>Le(d,!1),onSubmitWithData:Le}),iE&&Oe&&T.jsx(G_,{isOpen:!0,mode:Oe.mode,database:Oe.database,tableName:Oe.tableName,connectionId:Oe.connectionId,dbType:Zt(Oe.connectionId),onClose:()=>{Mt(!1),Ce(null)},onSave:gr,onGetTableInfo:Oe.mode==="edit"?TT:void 0,onGetDatabases:lT,onGetTables:oT,onGetColumns:tn})]})}ll.createRoot(document.getElementById("root")).render(T.jsx(kS.StrictMode,{children:T.jsx(w_,{})}));export{kS as W,gO as _,T as j,f as r}; diff --git a/dist/assets/index-DmXkzViA.css b/dist/assets/index-DmXkzViA.css new file mode 100644 index 0000000..51d7cc7 --- /dev/null +++ b/dist/assets/index-DmXkzViA.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-12{bottom:3rem}.left-0{left:0}.left-3{left:.75rem}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.z-40{z-index:40}.z-50{z-index:50}.z-\[9998\]{z-index:9998}.col-span-2{grid-column:span 2 / span 2}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[700px\]{height:700px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[300px\]{max-height:300px}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[36px\]{min-height:36px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[1100px\]{width:1100px}.w-\[380px\]{width:380px}.w-\[420px\]{width:420px}.w-\[520px\]{width:520px}.w-\[850px\]{width:850px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.min-w-\[70px\]{min-width:70px}.max-w-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[300px\]{max-width:300px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .2s ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scaleIn .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-down{animation:slideDown .25s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slideUp .25s ease-out}.animate-spin{animation:spin 1s linear infinite}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-lg{border-bottom-right-radius:.5rem;border-bottom-left-radius:.5rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.rounded-t-xl{border-top-left-radius:.75rem;border-top-right-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0px}.border-t-2{border-top-width:2px}.border-border-default{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-border-default\/50{border-color:#e2e8f080}.border-border-light{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-border-strong{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-danger-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-danger-500\/30{border-color:#ef44444d}.border-primary-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-primary-200\/50{border-color:#bfdbfe80}.border-primary-400{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.border-primary-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-success-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-t-primary-500{--tw-border-opacity: 1;border-top-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-border-default{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-border-light{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-danger-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-danger-500\/20{background-color:#ef444433}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-light-bg{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-light-elevated,.bg-light-hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-light-muted{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-light-surface{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-light-surface\/50{background-color:#f8fafc80}.bg-primary-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-primary-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-primary-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-primary-500\/20{background-color:#3b82f633}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-success-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-success-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-text-disabled{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-warning-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-warning-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/30{background-color:#ffffff4d}.bg-white\/50{background-color:#ffffff80}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-light-surface{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-100{--tw-gradient-from: #dbeafe var(--tw-gradient-from-position);--tw-gradient-to: rgb(219 234 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white{--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-light-surface{--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #f8fafc var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-light-elevated{--tw-gradient-to: #f1f5f9 var(--tw-gradient-to-position)}.to-primary-50{--tw-gradient-to: #eff6ff var(--tw-gradient-to-position)}.to-primary-600{--tw-gradient-to: #2563eb var(--tw-gradient-to-position)}.to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position)}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-9{padding-left:2.25rem}.pr-3{padding-right:.75rem}.pr-8{padding-right:2rem}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,SF Mono,Consolas,monospace}.font-sans{font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[13px\]{font-size:13px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.tracking-wider{letter-spacing:.05em}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-border-default{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-danger-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-danger-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-info-500{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}.text-primary-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-primary-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-primary-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-success-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-success-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-teal-500{--tw-text-opacity: 1;color:rgb(20 184 166 / var(--tw-text-opacity, 1))}.text-teal-600{--tw-text-opacity: 1;color:rgb(13 148 136 / var(--tw-text-opacity, 1))}.text-text-disabled{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-text-muted{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-text-primary{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-text-secondary{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-text-tertiary{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-warning-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-warning-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/90{color:#ffffffe6}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-text-muted::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.placeholder-text-muted::placeholder{--tw-placeholder-opacity: 1;color:rgb(100 116 139 / var(--tw-placeholder-opacity, 1))}.accent-blue-500{accent-color:#3b82f6}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.shadow-btn{--tw-shadow: 0 1px 2px rgba(59, 130, 246, .1), 0 1px 3px rgba(59, 130, 246, .08);--tw-shadow-colored: 0 1px 2px var(--tw-shadow-color), 0 1px 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-focus{--tw-shadow: 0 0 0 3px rgba(59, 130, 246, .15);--tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, .05), 0 4px 6px -2px rgba(0, 0, 0, .03);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-modal{--tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, .12);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .03);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color), 0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, .05), 0 10px 10px -5px rgba(0, 0, 0, .02);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 10px 10px -5px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-primary-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #3b82f6;--primary-hover: #2563eb;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#fff;color:#0f172a;overflow:hidden;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}::-moz-selection{background:#3b82f633;color:#0f172a}::selection{background:#3b82f633;color:#0f172a}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}::-webkit-scrollbar-corner{background:transparent}.scrollbar-thin::-webkit-scrollbar{width:4px;height:4px}.drag{-webkit-app-region:drag}.no-drag{-webkit-app-region:no-drag}input,textarea,select{font-family:Inter,-apple-system,sans-serif;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);color:#0f172a;transition:all .15s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}input::-moz-placeholder,textarea::-moz-placeholder{color:#64748b}input::placeholder,textarea::placeholder{color:#64748b}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius);font-weight:500;font-size:.875rem;transition:all .15s ease;cursor:pointer;border:none}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px #3b82f61a}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 12px #3b82f633}.btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.btn-secondary:hover{background:#e2e8f0;border-color:#cbd5e1}.card{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-lg);box-shadow:0 1px 3px #0000000a;transition:all .2s ease}.card:hover{box-shadow:0 4px 12px #0000000f}.db-tile{position:relative;border-radius:var(--radius-lg);overflow:hidden;transition:all .2s ease;cursor:pointer}.db-tile:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.db-tile:active{transform:scale(.98)}.menu{animation:menuIn .15s ease-out}@keyframes menuIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tab-indicator{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--primary);border-radius:2px 2px 0 0}.loader{width:20px;height:20px;border:2px solid #e2e8f0;border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status-dot{width:8px;height:8px;border-radius:50%;transition:all .2s ease}.status-dot.connected{background:#22c55e;box-shadow:0 0 0 2px #22c55e33}.status-dot.disconnected{background:#cbd5e1}.tooltip{position:relative}.tooltip:before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:6px 10px;background:#1e293b;color:#fff;border-radius:6px;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .15s ease;z-index:1000}.tooltip:hover:before{opacity:1;visibility:visible}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:focus:not(:focus-visible){outline:none}.disabled,[disabled]{opacity:.5;cursor:not-allowed;pointer-events:none}.navi-table-container{height:100%;display:flex;flex-direction:column;position:relative;background:#fff;outline:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navi-scroll-container{flex:1;overflow:auto;position:relative}.navi-header{display:flex;position:sticky;top:0;z-index:20;background:#f8fafc;border-bottom:1px solid #e2e8f0}.navi-row-number-header{position:sticky;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-right:1px solid #e2e8f0;color:#94a3b8;font-size:11px;font-weight:500;cursor:pointer}.navi-row-number-header:hover{background:#f1f5f9}.navi-header-cell{display:flex;align-items:center;padding:0 10px;border-right:1px solid #e2e8f0;background:#f8fafc;cursor:pointer;transition:background .1s;flex-shrink:0;position:relative}.navi-header-cell:hover{background:#f1f5f9}.navi-header-cell.resizing{background:#dbeafe}.navi-resize-handle{position:absolute;right:0;top:0;bottom:0;width:6px;cursor:col-resize;background:transparent;z-index:10;transition:background .15s}.navi-resize-handle:hover,.navi-header-cell.resizing .navi-resize-handle{background:#3b82f6}.navi-resize-handle:after{content:"";position:absolute;right:2px;top:50%;transform:translateY(-50%);width:2px;height:16px;background:#cbd5e1;border-radius:1px;opacity:0;transition:opacity .15s}.navi-header-cell:hover .navi-resize-handle:after{opacity:1}.navi-header-cell.resizing .navi-resize-handle:after{opacity:1;background:#fff}.navi-col-name{color:#0f172a;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navi-col-type{color:#64748b;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navi-col-comment{color:#22c55e;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navi-body{position:relative;cursor:default}.navi-row{display:flex;border-bottom:1px solid #f1f5f9}.navi-row.selected{background:#3b82f614}.navi-row.empty-row{background:#fcfcfd}.navi-row-number.empty{background:#fafafa;border-right:1px solid #e2e8f0}.navi-cell.empty{background:transparent;border-right:1px solid #f1f5f9}.navi-row-number{position:sticky;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#fafafa;border-right:1px solid #e2e8f0;color:#94a3b8;font-size:11px;font-family:JetBrains Mono,monospace;cursor:pointer;flex-shrink:0}.navi-row-number:hover{background:#f1f5f9;color:#64748b}.navi-row-number.selected{background:#3b82f6;color:#fff}.navi-cell{position:relative;display:flex;align-items:center;padding:0 10px;border-right:1px solid #f1f5f9;font-family:JetBrains Mono,monospace;font-size:12px;overflow:hidden;flex-shrink:0;cursor:default}.navi-cell:hover{background:#f8fafc}.navi-value{color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.navi-null{color:#94a3b8;font-style:italic;font-size:11px}.navi-json{color:#f59e0b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navi-cell-input{position:absolute;inset:0;width:100%;height:100%;padding:0 10px;margin:0;background:#fff;color:#0f172a;border:2px solid #3b82f6;outline:none;font-family:JetBrains Mono,monospace;font-size:12px}.navi-date-cell{display:inline-flex;align-items:center;gap:4px;width:100%;height:100%}.navi-date-icon{flex-shrink:0;color:#60a5fa}.navi-date-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1e293b;font-family:JetBrains Mono,monospace;font-size:12px}.navi-date-cell-edit{display:inline-flex;align-items:center;gap:4px;position:absolute;inset:0;padding:0 10px;background:transparent}.navi-date-input-field{flex:1;min-width:0;background:transparent;border:none;outline:none;font-family:JetBrains Mono,monospace;font-size:12px;color:#1e293b}.navi-date-input-field::-moz-placeholder{color:#94a3b8;font-size:11px}.navi-date-input-field::placeholder{color:#94a3b8;font-size:11px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.navi-context-menu{position:fixed;z-index:50;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-lg);padding:6px 0;min-width:200px;box-shadow:0 10px 40px #0000001f;animation:menuIn .15s ease-out}.navi-context-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;background:transparent;border:none;color:#475569;font-size:13px;text-align:left;cursor:pointer;transition:background .1s}.navi-context-item:hover{background:#f1f5f9;color:#0f172a}.navi-context-item.danger{color:#ef4444}.navi-context-item.danger:hover{background:#fef2f2}.navi-context-divider{height:1px;background:#e2e8f0;margin:4px 0}.navi-shortcut{margin-left:auto;font-size:11px;color:#94a3b8;font-family:JetBrains Mono,monospace}.loading-overlay{position:absolute;inset:0;background:#ffffffe6;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:#94a3b8}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden}.navi-search-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border-bottom:1px solid #e2e8f0}.navi-search-input{flex:1;height:32px;padding:0 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;color:#0f172a;outline:none;transition:border-color .15s}.navi-search-input:focus{border-color:#3b82f6}.navi-search-input::-moz-placeholder{color:#94a3b8}.navi-search-input::placeholder{color:#94a3b8}.navi-search-btn{padding:4px;background:transparent;border:none;border-radius:4px;color:#64748b;cursor:pointer;transition:all .15s}.navi-search-btn:hover{background:#f1f5f9;color:#0f172a}.navi-search-btn:disabled{opacity:.4;cursor:not-allowed}.navi-header-content{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;overflow:hidden}.navi-header-row{display:flex;align-items:center;gap:6px}.navi-pin-icon{opacity:0;color:#94a3b8;transition:opacity .15s}.navi-header-cell:hover .navi-pin-icon{opacity:1}.navi-pin-icon.active{opacity:1;color:#3b82f6}.navi-context-info{padding:6px 14px;font-size:11px;color:#64748b;border-bottom:1px solid #e2e8f0;margin-bottom:4px}.navi-context-item.warning{color:#d97706}.navi-context-item.warning:hover{background:#fffbeb}.navi-context-item.success{color:#059669}.navi-context-item.success:hover{background:#f0fdf4}.navi-header-cell.pinned{background:#f1f5f9}.navi-empty{padding:40px;text-align:center;color:#94a3b8;font-size:14px}.navi-rows-container{position:relative}.selection\:bg-primary-500 *::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.selection\:bg-primary-500 *::selection{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.selection\:text-white *::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white *::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:bg-primary-500::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.selection\:bg-primary-500::selection{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.selection\:text-white::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:border-border-default:hover{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.hover\:border-border-strong:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:border-primary-300:hover{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.hover\:bg-danger-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-danger-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-danger-500:hover{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.hover\:bg-danger-500\/10:hover{background-color:#ef44441a}.hover\:bg-light-elevated:hover,.hover\:bg-light-hover:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-light-hover\/50:hover{background-color:#f1f5f980}.hover\:bg-light-muted:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-50:hover{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.hover\:bg-primary-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-success-50:hover{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.hover\:bg-success-600:hover{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.hover\:bg-warning-50:hover{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:from-primary-600:hover{--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-primary-700:hover{--tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position)}.hover\:text-danger-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.hover\:text-primary-500:hover{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.hover\:text-primary-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-success-500:hover{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.hover\:text-text-primary:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.hover\:text-text-secondary:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-warning-500:hover{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:shadow-btn-hover:hover{--tw-shadow: 0 4px 12px rgba(59, 130, 246, .2), 0 2px 4px rgba(59, 130, 246, .1);--tw-shadow-colored: 0 4px 12px var(--tw-shadow-color), 0 2px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -1px rgba(0, 0, 0, .03);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .03);--tw-shadow-colored: 0 1px 3px var(--tw-shadow-color), 0 1px 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-primary-400:focus{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.focus\:border-primary-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:bg-white:focus{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.focus\:shadow-focus:focus{--tw-shadow: 0 0 0 3px rgba(59, 130, 246, .15);--tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-primary-100:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity, 1))}.focus\:ring-primary-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1))}.focus\:ring-primary-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-light-surface:disabled{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-text-secondary:hover:disabled{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:border-primary-300{--tw-border-opacity: 1;border-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1} diff --git a/dist/assets/index-DvMrZv5L.js b/dist/assets/index-DvMrZv5L.js new file mode 100644 index 0000000..7b1b6f8 --- /dev/null +++ b/dist/assets/index-DvMrZv5L.js @@ -0,0 +1,453 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SqlEditor-Da5-w0EM.js","./SqlEditor-ClHlk_C4.css"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const T of r)if(T.type==="childList")for(const l of T.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&n(l)}).observe(document,{childList:!0,subtree:!0});function E(r){const T={};return r.integrity&&(T.integrity=r.integrity),r.referrerPolicy&&(T.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?T.credentials="include":r.crossOrigin==="anonymous"?T.credentials="omit":T.credentials="same-origin",T}function n(r){if(r.ep)return;r.ep=!0;const T=E(r);fetch(r.href,T)}})();var qS=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function IR(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var uR={exports:{}},tT={},cR={exports:{}},Pe={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Wr=Symbol.for("react.element"),eN=Symbol.for("react.portal"),tN=Symbol.for("react.fragment"),EN=Symbol.for("react.strict_mode"),nN=Symbol.for("react.profiler"),rN=Symbol.for("react.provider"),sN=Symbol.for("react.context"),TN=Symbol.for("react.forward_ref"),lN=Symbol.for("react.suspense"),aN=Symbol.for("react.memo"),oN=Symbol.for("react.lazy"),co=Symbol.iterator;function iN(e){return e===null||typeof e!="object"?null:(e=co&&e[co]||e["@@iterator"],typeof e=="function"?e:null)}var CR={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},dR=Object.assign,LR={};function Kn(e,t,E){this.props=e,this.context=t,this.refs=LR,this.updater=E||CR}Kn.prototype.isReactComponent={};Kn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Kn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function _R(){}_R.prototype=Kn.prototype;function La(e,t,E){this.props=e,this.context=t,this.refs=LR,this.updater=E||CR}var _a=La.prototype=new _R;_a.constructor=La;dR(_a,Kn.prototype);_a.isPureReactComponent=!0;var Co=Array.isArray,fR=Object.prototype.hasOwnProperty,fa={current:null},pR={key:!0,ref:!0,__self:!0,__source:!0};function mR(e,t,E){var n,r={},T=null,l=null;if(t!=null)for(n in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(T=""+t.key),t)fR.call(t,n)&&!pR.hasOwnProperty(n)&&(r[n]=t[n]);var a=arguments.length-2;if(a===1)r.children=E;else if(1>>1,ce=b[Ee];if(0>>1;Eer(De,J))Ner(se,De)?(b[Ee]=se,b[Ne]=J,Ee=Ne):(b[Ee]=De,b[me]=J,Ee=me);else if(Ner(se,J))b[Ee]=se,b[Ne]=J,Ee=Ne;else break e}}return U}function r(b,U){var J=b.sortIndex-U.sortIndex;return J!==0?J:b.id-U.id}if(typeof performance=="object"&&typeof performance.now=="function"){var T=performance;e.unstable_now=function(){return T.now()}}else{var l=Date,a=l.now();e.unstable_now=function(){return l.now()-a}}var i=[],o=[],S=1,N=null,R=3,O=!1,L=!1,_=!1,H=typeof setTimeout=="function"?setTimeout:null,c=typeof clearTimeout=="function"?clearTimeout:null,A=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function I(b){for(var U=E(o);U!==null;){if(U.callback===null)n(o);else if(U.startTime<=b)n(o),U.sortIndex=U.expirationTime,t(i,U);else break;U=E(o)}}function C(b){if(_=!1,I(b),!L)if(E(i)!==null)L=!0,j(M);else{var U=E(o);U!==null&&ee(C,U.startTime-b)}}function M(b,U){L=!1,_&&(_=!1,c(D),D=-1),O=!0;var J=R;try{for(I(U),N=E(i);N!==null&&(!(N.expirationTime>U)||b&&!ne());){var Ee=N.callback;if(typeof Ee=="function"){N.callback=null,R=N.priorityLevel;var ce=Ee(N.expirationTime<=U);U=e.unstable_now(),typeof ce=="function"?N.callback=ce:N===E(i)&&n(i),I(U)}else n(i);N=E(i)}if(N!==null)var ye=!0;else{var me=E(o);me!==null&&ee(C,me.startTime-U),ye=!1}return ye}finally{N=null,R=J,O=!1}}var p=!1,P=null,D=-1,Z=5,Y=-1;function ne(){return!(e.unstable_now()-Yb||125Ee?(b.sortIndex=J,t(o,b),E(i)===null&&b===E(o)&&(_?(c(D),D=-1):_=!0,ee(C,J-Ee))):(b.sortIndex=ce,t(i,b),L||O||(L=!0,j(M))),b},e.unstable_shouldYield=ne,e.unstable_wrapCallback=function(b){var U=R;return function(){var J=R;R=U;try{return b.apply(this,arguments)}finally{R=J}}}})(UR);MR.exports=UR;var _N=MR.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var fN=u,Ht=_N;function z(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,E=1;E"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),pl=Object.prototype.hasOwnProperty,pN=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,_o={},fo={};function mN(e){return pl.call(fo,e)?!0:pl.call(_o,e)?!1:pN.test(e)?fo[e]=!0:(_o[e]=!0,!1)}function DN(e,t,E,n){if(E!==null&&E.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return n?!1:E!==null?!E.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function PN(e,t,E,n){if(t===null||typeof t>"u"||DN(e,t,E,n))return!0;if(n)return!1;if(E!==null)switch(E.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function pt(e,t,E,n,r,T,l){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=r,this.mustUseProperty=E,this.propertyName=e,this.type=t,this.sanitizeURL=T,this.removeEmptyString=l}var St={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){St[e]=new pt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];St[t]=new pt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){St[e]=new pt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){St[e]=new pt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){St[e]=new pt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){St[e]=new pt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){St[e]=new pt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){St[e]=new pt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){St[e]=new pt(e,5,!1,e.toLowerCase(),null,!1,!1)});var ma=/[\-:]([a-z])/g;function Da(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(ma,Da);St[t]=new pt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(ma,Da);St[t]=new pt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ma,Da);St[t]=new pt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){St[e]=new pt(e,1,!1,e.toLowerCase(),null,!1,!1)});St.xlinkHref=new pt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){St[e]=new pt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Pa(e,t,E,n){var r=St.hasOwnProperty(t)?St[t]:null;(r!==null?r.type!==0:n||!(2a||r[l]!==T[a]){var i=` +`+r[l].replace(" at new "," at ");return e.displayName&&i.includes("")&&(i=i.replace("",e.displayName)),i}while(1<=l&&0<=a);break}}}finally{PT=!1,Error.prepareStackTrace=E}return(e=e?e.displayName||e.name:"")?Rr(e):""}function hN(e){switch(e.tag){case 5:return Rr(e.type);case 16:return Rr("Lazy");case 13:return Rr("Suspense");case 19:return Rr("SuspenseList");case 0:case 2:case 15:return e=hT(e.type,!1),e;case 11:return e=hT(e.type.render,!1),e;case 1:return e=hT(e.type,!0),e;default:return""}}function hl(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ln:return"Fragment";case dn:return"Portal";case ml:return"Profiler";case ha:return"StrictMode";case Dl:return"Suspense";case Pl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case gR:return(e.displayName||"Context")+".Consumer";case yR:return(e._context.displayName||"Context")+".Provider";case Ma:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ua:return t=e.displayName||null,t!==null?t:hl(e.type)||"Memo";case PE:t=e._payload,e=e._init;try{return hl(e(t))}catch{}}return null}function MN(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return hl(t);case 8:return t===ha?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function bE(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function vR(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function UN(e){var t=vR(e)?"checked":"value",E=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof E<"u"&&typeof E.get=="function"&&typeof E.set=="function"){var r=E.get,T=E.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(l){n=""+l,T.call(this,l)}}),Object.defineProperty(e,t,{enumerable:E.enumerable}),{getValue:function(){return n},setValue:function(l){n=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Zr(e){e._valueTracker||(e._valueTracker=UN(e))}function HR(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var E=t.getValue(),n="";return e&&(n=vR(e)?e.checked?"true":"false":e.value),e=n,e!==E?(t.setValue(e),!0):!1}function Ms(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ml(e,t){var E=t.checked;return ze({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:E??e._wrapperState.initialChecked})}function mo(e,t){var E=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;E=bE(t.value!=null?t.value:E),e._wrapperState={initialChecked:n,initialValue:E,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function BR(e,t){t=t.checked,t!=null&&Pa(e,"checked",t,!1)}function Ul(e,t){BR(e,t);var E=bE(t.value),n=t.type;if(E!=null)n==="number"?(E===0&&e.value===""||e.value!=E)&&(e.value=""+E):e.value!==""+E&&(e.value=""+E);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?xl(e,t.type,E):t.hasOwnProperty("defaultValue")&&xl(e,t.type,bE(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Do(e,t,E){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,E||t===e.value||(e.value=t),e.defaultValue=t}E=e.name,E!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,E!==""&&(e.name=E)}function xl(e,t,E){(t!=="number"||Ms(e.ownerDocument)!==e)&&(E==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+E&&(e.defaultValue=""+E))}var Ar=Array.isArray;function yn(e,t,E,n){if(e=e.options,t){t={};for(var r=0;r"+t.valueOf().toString()+"",t=qr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Dr(e,t){if(t){var E=e.firstChild;if(E&&E===e.lastChild&&E.nodeType===3){E.nodeValue=t;return}}e.textContent=t}var Ir={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},xN=["Webkit","ms","Moz","O"];Object.keys(Ir).forEach(function(e){xN.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ir[t]=Ir[e]})});function bR(e,t,E){return t==null||typeof t=="boolean"||t===""?"":E||typeof t!="number"||t===0||Ir.hasOwnProperty(e)&&Ir[e]?(""+t).trim():t+"px"}function VR(e,t){e=e.style;for(var E in t)if(t.hasOwnProperty(E)){var n=E.indexOf("--")===0,r=bR(E,t[E],n);E==="float"&&(E="cssFloat"),n?e.setProperty(E,r):e[E]=r}}var yN=ze({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Gl(e,t){if(t){if(yN[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(z(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(z(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(z(61))}if(t.style!=null&&typeof t.style!="object")throw Error(z(62))}}function vl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Hl=null;function xa(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Bl=null,gn=null,Gn=null;function Mo(e){if(e=kr(e)){if(typeof Bl!="function")throw Error(z(280));var t=e.stateNode;t&&(t=TT(t),Bl(e.stateNode,e.type,t))}}function WR(e){gn?Gn?Gn.push(e):Gn=[e]:gn=e}function XR(){if(gn){var e=gn,t=Gn;if(Gn=gn=null,Mo(e),t)for(e=0;e>>=0,e===0?32:31-(WN(e)/XN|0)|0}var es=64,ts=4194304;function Sr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function gs(e,t){var E=e.pendingLanes;if(E===0)return 0;var n=0,r=e.suspendedLanes,T=e.pingedLanes,l=E&268435455;if(l!==0){var a=l&~r;a!==0?n=Sr(a):(T&=l,T!==0&&(n=Sr(T)))}else l=E&~r,l!==0?n=Sr(l):T!==0&&(n=Sr(T));if(n===0)return 0;if(t!==0&&t!==n&&!(t&r)&&(r=n&-n,T=t&-t,r>=T||r===16&&(T&4194240)!==0))return t;if(n&4&&(n|=E&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0E;E++)t.push(e);return t}function Xr(e,t,E){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Qt(t),e[t]=E}function $N(e,t){var E=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0=Or),Fo=" ",Yo=!1;function iA(e,t){switch(e){case"keyup":return _I.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function RA(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var _n=!1;function pI(e,t){switch(e){case"compositionend":return RA(t);case"keypress":return t.which!==32?null:(Yo=!0,Fo);case"textInput":return e=t.data,e===Fo&&Yo?null:e;default:return null}}function mI(e,t){if(_n)return e==="compositionend"||!Ya&&iA(e,t)?(e=aA(),Os=Ha=xE=null,_n=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:E,offset:t-e};e=n}e:{for(;E;){if(E.nextSibling){E=E.nextSibling;break e}E=E.parentNode}E=void 0}E=Wo(E)}}function IA(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?IA(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function uA(){for(var e=window,t=Ms();t instanceof e.HTMLIFrameElement;){try{var E=typeof t.contentWindow.location.href=="string"}catch{E=!1}if(E)e=t.contentWindow;else break;t=Ms(e.document)}return t}function wa(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function GI(e){var t=uA(),E=e.focusedElem,n=e.selectionRange;if(t!==E&&E&&E.ownerDocument&&IA(E.ownerDocument.documentElement,E)){if(n!==null&&wa(E)){if(t=n.start,e=n.end,e===void 0&&(e=t),"selectionStart"in E)E.selectionStart=t,E.selectionEnd=Math.min(e,E.value.length);else if(e=(t=E.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var r=E.textContent.length,T=Math.min(n.start,r);n=n.end===void 0?T:Math.min(n.end,r),!e.extend&&T>n&&(r=n,n=T,T=r),r=Xo(E,T);var l=Xo(E,n);r&&l&&(e.rangeCount!==1||e.anchorNode!==r.node||e.anchorOffset!==r.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(t=t.createRange(),t.setStart(r.node,r.offset),e.removeAllRanges(),T>n?(e.addRange(t),e.extend(l.node,l.offset)):(t.setEnd(l.node,l.offset),e.addRange(t)))}}for(t=[],e=E;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof E.focus=="function"&&E.focus(),E=0;E=document.documentMode,fn=null,Wl=null,Cr=null,Xl=!1;function jo(e,t,E){var n=E.window===E?E.document:E.nodeType===9?E:E.ownerDocument;Xl||fn==null||fn!==Ms(n)||(n=fn,"selectionStart"in n&&wa(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Cr&&yr(Cr,n)||(Cr=n,n=Hs(Wl,"onSelect"),0Dn||(e.current=zl[Dn],zl[Dn]=null,Dn--)}function Fe(e,t){Dn++,zl[Dn]=e.current,e.current=t}var VE={},Ct=jE(VE),Pt=jE(!1),Tn=VE;function wn(e,t){var E=e.type.contextTypes;if(!E)return VE;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var r={},T;for(T in E)r[T]=t[T];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=r),r}function ht(e){return e=e.childContextTypes,e!=null}function Fs(){Ve(Pt),Ve(Ct)}function Zo(e,t,E){if(Ct.current!==VE)throw Error(z(168));Fe(Ct,t),Fe(Pt,E)}function mA(e,t,E){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!="function")return E;n=n.getChildContext();for(var r in n)if(!(r in t))throw Error(z(108,MN(e)||"Unknown",r));return ze({},E,n)}function Ys(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||VE,Tn=Ct.current,Fe(Ct,e),Fe(Pt,Pt.current),!0}function qo(e,t,E){var n=e.stateNode;if(!n)throw Error(z(169));E?(e=mA(e,t,Tn),n.__reactInternalMemoizedMergedChildContext=e,Ve(Pt),Ve(Ct),Fe(Ct,e)):Ve(Pt),Fe(Pt,E)}var AE=null,lT=!1,VT=!1;function DA(e){AE===null?AE=[e]:AE.push(e)}function kI(e){lT=!0,DA(e)}function kE(){if(!VT&&AE!==null){VT=!0;var e=0,t=He;try{var E=AE;for(He=1;e>=l,r-=l,SE=1<<32-Qt(t)+r|E<D?(Z=P,P=null):Z=P.sibling;var Y=R(c,P,I[D],C);if(Y===null){P===null&&(P=Z);break}e&&P&&Y.alternate===null&&t(c,P),A=T(Y,A,D),p===null?M=Y:p.sibling=Y,p=Y,P=Z}if(D===I.length)return E(c,P),ke&&ZE(c,D),M;if(P===null){for(;DD?(Z=P,P=null):Z=P.sibling;var ne=R(c,P,Y.value,C);if(ne===null){P===null&&(P=Z);break}e&&P&&ne.alternate===null&&t(c,P),A=T(ne,A,D),p===null?M=ne:p.sibling=ne,p=ne,P=Z}if(Y.done)return E(c,P),ke&&ZE(c,D),M;if(P===null){for(;!Y.done;D++,Y=I.next())Y=N(c,Y.value,C),Y!==null&&(A=T(Y,A,D),p===null?M=Y:p.sibling=Y,p=Y);return ke&&ZE(c,D),M}for(P=n(c,P);!Y.done;D++,Y=I.next())Y=O(P,c,D,Y.value,C),Y!==null&&(e&&Y.alternate!==null&&P.delete(Y.key===null?D:Y.key),A=T(Y,A,D),p===null?M=Y:p.sibling=Y,p=Y);return e&&P.forEach(function(xe){return t(c,xe)}),ke&&ZE(c,D),M}function H(c,A,I,C){if(typeof I=="object"&&I!==null&&I.type===Ln&&I.key===null&&(I=I.props.children),typeof I=="object"&&I!==null){switch(I.$$typeof){case Qr:e:{for(var M=I.key,p=A;p!==null;){if(p.key===M){if(M=I.type,M===Ln){if(p.tag===7){E(c,p.sibling),A=r(p,I.props.children),A.return=c,c=A;break e}}else if(p.elementType===M||typeof M=="object"&&M!==null&&M.$$typeof===PE&&Ei(M)===p.type){E(c,p.sibling),A=r(p,I.props),A.ref=lr(c,p,I),A.return=c,c=A;break e}E(c,p);break}else t(c,p);p=p.sibling}I.type===Ln?(A=sn(I.props.children,c.mode,C,I.key),A.return=c,c=A):(C=ms(I.type,I.key,I.props,null,c.mode,C),C.ref=lr(c,A,I),C.return=c,c=C)}return l(c);case dn:e:{for(p=I.key;A!==null;){if(A.key===p)if(A.tag===4&&A.stateNode.containerInfo===I.containerInfo&&A.stateNode.implementation===I.implementation){E(c,A.sibling),A=r(A,I.children||[]),A.return=c,c=A;break e}else{E(c,A);break}else t(c,A);A=A.sibling}A=zT(I,c.mode,C),A.return=c,c=A}return l(c);case PE:return p=I._init,H(c,A,p(I._payload),C)}if(Ar(I))return L(c,A,I,C);if(Er(I))return _(c,A,I,C);as(c,I)}return typeof I=="string"&&I!==""||typeof I=="number"?(I=""+I,A!==null&&A.tag===6?(E(c,A.sibling),A=r(A,I),A.return=c,c=A):(E(c,A),A=JT(I,c.mode,C),A.return=c,c=A),l(c)):E(c,A)}return H}var Vn=UA(!0),xA=UA(!1),Vs=jE(null),Ws=null,Mn=null,Xa=null;function ja(){Xa=Mn=Ws=null}function ka(e){var t=Vs.current;Ve(Vs),e._currentValue=t}function ql(e,t,E){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===E)break;e=e.return}}function Hn(e,t){Ws=e,Xa=Mn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Dt=!0),e.firstContext=null)}function jt(e){var t=e._currentValue;if(Xa!==e)if(e={context:e,memoizedValue:t,next:null},Mn===null){if(Ws===null)throw Error(z(308));Mn=e,Ws.dependencies={lanes:0,firstContext:e}}else Mn=Mn.next=e;return t}var En=null;function Ka(e){En===null?En=[e]:En.push(e)}function yA(e,t,E,n){var r=t.interleaved;return r===null?(E.next=E,Ka(t)):(E.next=r.next,r.next=E),t.interleaved=E,CE(e,n)}function CE(e,t){e.lanes|=t;var E=e.alternate;for(E!==null&&(E.lanes|=t),E=e,e=e.return;e!==null;)e.childLanes|=t,E=e.alternate,E!==null&&(E.childLanes|=t),E=e,e=e.return;return E.tag===3?E.stateNode:null}var hE=!1;function $a(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function gA(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function uE(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function BE(e,t,E){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,Ue&2){var r=n.pending;return r===null?t.next=t:(t.next=r.next,r.next=t),n.pending=t,CE(e,E)}return r=n.interleaved,r===null?(t.next=t,Ka(n)):(t.next=r.next,r.next=t),n.interleaved=t,CE(e,E)}function Cs(e,t,E){if(t=t.updateQueue,t!==null&&(t=t.shared,(E&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,E|=n,t.lanes=E,ga(e,E)}}function ni(e,t){var E=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,E===n)){var r=null,T=null;if(E=E.firstBaseUpdate,E!==null){do{var l={eventTime:E.eventTime,lane:E.lane,tag:E.tag,payload:E.payload,callback:E.callback,next:null};T===null?r=T=l:T=T.next=l,E=E.next}while(E!==null);T===null?r=T=t:T=T.next=t}else r=T=t;E={baseState:n.baseState,firstBaseUpdate:r,lastBaseUpdate:T,shared:n.shared,effects:n.effects},e.updateQueue=E;return}e=E.lastBaseUpdate,e===null?E.firstBaseUpdate=t:e.next=t,E.lastBaseUpdate=t}function Xs(e,t,E,n){var r=e.updateQueue;hE=!1;var T=r.firstBaseUpdate,l=r.lastBaseUpdate,a=r.shared.pending;if(a!==null){r.shared.pending=null;var i=a,o=i.next;i.next=null,l===null?T=o:l.next=o,l=i;var S=e.alternate;S!==null&&(S=S.updateQueue,a=S.lastBaseUpdate,a!==l&&(a===null?S.firstBaseUpdate=o:a.next=o,S.lastBaseUpdate=i))}if(T!==null){var N=r.baseState;l=0,S=o=i=null,a=T;do{var R=a.lane,O=a.eventTime;if((n&R)===R){S!==null&&(S=S.next={eventTime:O,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var L=e,_=a;switch(R=t,O=E,_.tag){case 1:if(L=_.payload,typeof L=="function"){N=L.call(O,N,R);break e}N=L;break e;case 3:L.flags=L.flags&-65537|128;case 0:if(L=_.payload,R=typeof L=="function"?L.call(O,N,R):L,R==null)break e;N=ze({},N,R);break e;case 2:hE=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,R=r.effects,R===null?r.effects=[a]:R.push(a))}else O={eventTime:O,lane:R,tag:a.tag,payload:a.payload,callback:a.callback,next:null},S===null?(o=S=O,i=N):S=S.next=O,l|=R;if(a=a.next,a===null){if(a=r.shared.pending,a===null)break;R=a,a=R.next,R.next=null,r.lastBaseUpdate=R,r.shared.pending=null}}while(!0);if(S===null&&(i=N),r.baseState=i,r.firstBaseUpdate=o,r.lastBaseUpdate=S,t=r.shared.interleaved,t!==null){r=t;do l|=r.lane,r=r.next;while(r!==t)}else T===null&&(r.shared.lanes=0);on|=l,e.lanes=l,e.memoizedState=N}}function ri(e,t,E){if(e=t.effects,t.effects=null,e!==null)for(t=0;tE?E:4,e(!0);var n=XT.transition;XT.transition={};try{e(!1),t()}finally{He=E,XT.transition=n}}function zA(){return kt().memoizedState}function zI(e,t,E){var n=YE(e);if(E={lane:n,action:E,hasEagerState:!1,eagerState:null,next:null},QA(e))ZA(t,E);else if(E=yA(e,t,E,n),E!==null){var r=_t();Zt(E,e,n,r),qA(E,t,n)}}function QI(e,t,E){var n=YE(e),r={lane:n,action:E,hasEagerState:!1,eagerState:null,next:null};if(QA(e))ZA(t,r);else{var T=e.alternate;if(e.lanes===0&&(T===null||T.lanes===0)&&(T=t.lastRenderedReducer,T!==null))try{var l=t.lastRenderedState,a=T(l,E);if(r.hasEagerState=!0,r.eagerState=a,eE(a,l)){var i=t.interleaved;i===null?(r.next=r,Ka(t)):(r.next=i.next,i.next=r),t.interleaved=r;return}}catch{}finally{}E=yA(e,t,r,n),E!==null&&(r=_t(),Zt(E,e,n,r),qA(E,t,n))}}function QA(e){var t=e.alternate;return e===Je||t!==null&&t===Je}function ZA(e,t){dr=ks=!0;var E=e.pending;E===null?t.next=t:(t.next=E.next,E.next=t),e.pending=t}function qA(e,t,E){if(E&4194240){var n=t.lanes;n&=e.pendingLanes,E|=n,t.lanes=E,ga(e,E)}}var Ks={readContext:jt,useCallback:ut,useContext:ut,useEffect:ut,useImperativeHandle:ut,useInsertionEffect:ut,useLayoutEffect:ut,useMemo:ut,useReducer:ut,useRef:ut,useState:ut,useDebugValue:ut,useDeferredValue:ut,useTransition:ut,useMutableSource:ut,useSyncExternalStore:ut,useId:ut,unstable_isNewReconciler:!1},ZI={readContext:jt,useCallback:function(e,t){return nE().memoizedState=[e,t===void 0?null:t],e},useContext:jt,useEffect:Ti,useImperativeHandle:function(e,t,E){return E=E!=null?E.concat([e]):null,Ls(4194308,4,jA.bind(null,t,e),E)},useLayoutEffect:function(e,t){return Ls(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ls(4,2,e,t)},useMemo:function(e,t){var E=nE();return t=t===void 0?null:t,e=e(),E.memoizedState=[e,t],e},useReducer:function(e,t,E){var n=nE();return t=E!==void 0?E(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=zI.bind(null,Je,e),[n.memoizedState,e]},useRef:function(e){var t=nE();return e={current:e},t.memoizedState=e},useState:si,useDebugValue:Eo,useDeferredValue:function(e){return nE().memoizedState=e},useTransition:function(){var e=si(!1),t=e[0];return e=JI.bind(null,e[1]),nE().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,E){var n=Je,r=nE();if(ke){if(E===void 0)throw Error(z(407));E=E()}else{if(E=t(),it===null)throw Error(z(349));an&30||BA(n,t,E)}r.memoizedState=E;var T={value:E,getSnapshot:t};return r.queue=T,Ti(YA.bind(null,n,T,e),[e]),n.flags|=2048,wr(9,FA.bind(null,n,T,E,t),void 0,null),E},useId:function(){var e=nE(),t=it.identifierPrefix;if(ke){var E=NE,n=SE;E=(n&~(1<<32-Qt(n)-1)).toString(32)+E,t=":"+t+"R"+E,E=Fr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=l.createElement(E,{is:n.is}):(e=l.createElement(E),E==="select"&&(l=e,n.multiple?l.multiple=!0:n.size&&(l.size=n.size))):e=l.createElementNS(e,E),e[sE]=t,e[vr]=n,oS(e,t,!1,!1),t.stateNode=e;e:{switch(l=vl(E,n),E){case"dialog":be("cancel",e),be("close",e),r=n;break;case"iframe":case"object":case"embed":be("load",e),r=n;break;case"video":case"audio":for(r=0;rjn&&(t.flags|=128,n=!0,ar(T,!1),t.lanes=4194304)}else{if(!n)if(e=js(l),e!==null){if(t.flags|=128,n=!0,E=e.updateQueue,E!==null&&(t.updateQueue=E,t.flags|=4),ar(T,!0),T.tail===null&&T.tailMode==="hidden"&&!l.alternate&&!ke)return Ot(t),null}else 2*tt()-T.renderingStartTime>jn&&E!==1073741824&&(t.flags|=128,n=!0,ar(T,!1),t.lanes=4194304);T.isBackwards?(l.sibling=t.child,t.child=l):(E=T.last,E!==null?E.sibling=l:t.child=l,T.last=l)}return T.tail!==null?(t=T.tail,T.rendering=t,T.tail=t.sibling,T.renderingStartTime=tt(),t.sibling=null,E=$e.current,Fe($e,n?E&1|2:E&1),t):(Ot(t),null);case 22:case 23:return ao(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?yt&1073741824&&(Ot(t),t.subtreeFlags&6&&(t.flags|=8192)):Ot(t),null;case 24:return null;case 25:return null}throw Error(z(156,t.tag))}function Tu(e,t){switch(Va(t),t.tag){case 1:return ht(t.type)&&Fs(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Wn(),Ve(Pt),Ve(Ct),Qa(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return za(t),null;case 13:if(Ve($e),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(z(340));bn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ve($e),null;case 4:return Wn(),null;case 10:return ka(t.type._context),null;case 22:case 23:return ao(),null;case 24:return null;default:return null}}var is=!1,ct=!1,lu=typeof WeakSet=="function"?WeakSet:Set,re=null;function Un(e,t){var E=e.ref;if(E!==null)if(typeof E=="function")try{E(null)}catch(n){et(e,t,n)}else E.current=null}function aa(e,t,E){try{E()}catch(n){et(e,t,n)}}var Oi=!1;function au(e,t){if(jl=Gs,e=uA(),wa(e)){if("selectionStart"in e)var E={start:e.selectionStart,end:e.selectionEnd};else e:{E=(E=e.ownerDocument)&&E.defaultView||window;var n=E.getSelection&&E.getSelection();if(n&&n.rangeCount!==0){E=n.anchorNode;var r=n.anchorOffset,T=n.focusNode;n=n.focusOffset;try{E.nodeType,T.nodeType}catch{E=null;break e}var l=0,a=-1,i=-1,o=0,S=0,N=e,R=null;t:for(;;){for(var O;N!==E||r!==0&&N.nodeType!==3||(a=l+r),N!==T||n!==0&&N.nodeType!==3||(i=l+n),N.nodeType===3&&(l+=N.nodeValue.length),(O=N.firstChild)!==null;)R=N,N=O;for(;;){if(N===e)break t;if(R===E&&++o===r&&(a=l),R===T&&++S===n&&(i=l),(O=N.nextSibling)!==null)break;N=R,R=N.parentNode}N=O}E=a===-1||i===-1?null:{start:a,end:i}}else E=null}E=E||{start:0,end:0}}else E=null;for(kl={focusedElem:e,selectionRange:E},Gs=!1,re=t;re!==null;)if(t=re,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,re=e;else for(;re!==null;){t=re;try{var L=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(L!==null){var _=L.memoizedProps,H=L.memoizedState,c=t.stateNode,A=c.getSnapshotBeforeUpdate(t.elementType===t.type?_:$t(t.type,_),H);c.__reactInternalSnapshotBeforeUpdate=A}break;case 3:var I=t.stateNode.containerInfo;I.nodeType===1?I.textContent="":I.nodeType===9&&I.documentElement&&I.removeChild(I.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(z(163))}}catch(C){et(t,t.return,C)}if(e=t.sibling,e!==null){e.return=t.return,re=e;break}re=t.return}return L=Oi,Oi=!1,L}function Lr(e,t,E){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var r=n=n.next;do{if((r.tag&e)===e){var T=r.destroy;r.destroy=void 0,T!==void 0&&aa(t,E,T)}r=r.next}while(r!==n)}}function iT(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var E=t=t.next;do{if((E.tag&e)===e){var n=E.create;E.destroy=n()}E=E.next}while(E!==t)}}function oa(e){var t=e.ref;if(t!==null){var E=e.stateNode;switch(e.tag){case 5:e=E;break;default:e=E}typeof t=="function"?t(e):t.current=e}}function AS(e){var t=e.alternate;t!==null&&(e.alternate=null,AS(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[sE],delete t[vr],delete t[Jl],delete t[XI],delete t[jI])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function SS(e){return e.tag===5||e.tag===3||e.tag===4}function ci(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||SS(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ia(e,t,E){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?E.nodeType===8?E.parentNode.insertBefore(e,t):E.insertBefore(e,t):(E.nodeType===8?(t=E.parentNode,t.insertBefore(e,E)):(t=E,t.appendChild(e)),E=E._reactRootContainer,E!=null||t.onclick!==null||(t.onclick=Bs));else if(n!==4&&(e=e.child,e!==null))for(ia(e,t,E),e=e.sibling;e!==null;)ia(e,t,E),e=e.sibling}function Ra(e,t,E){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?E.insertBefore(e,t):E.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(Ra(e,t,E),e=e.sibling;e!==null;)Ra(e,t,E),e=e.sibling}var Rt=null,Jt=!1;function DE(e,t,E){for(E=E.child;E!==null;)NS(e,t,E),E=E.sibling}function NS(e,t,E){if(TE&&typeof TE.onCommitFiberUnmount=="function")try{TE.onCommitFiberUnmount(ET,E)}catch{}switch(E.tag){case 5:ct||Un(E,t);case 6:var n=Rt,r=Jt;Rt=null,DE(e,t,E),Rt=n,Jt=r,Rt!==null&&(Jt?(e=Rt,E=E.stateNode,e.nodeType===8?e.parentNode.removeChild(E):e.removeChild(E)):Rt.removeChild(E.stateNode));break;case 18:Rt!==null&&(Jt?(e=Rt,E=E.stateNode,e.nodeType===8?bT(e.parentNode,E):e.nodeType===1&&bT(e,E),Ur(e)):bT(Rt,E.stateNode));break;case 4:n=Rt,r=Jt,Rt=E.stateNode.containerInfo,Jt=!0,DE(e,t,E),Rt=n,Jt=r;break;case 0:case 11:case 14:case 15:if(!ct&&(n=E.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){r=n=n.next;do{var T=r,l=T.destroy;T=T.tag,l!==void 0&&(T&2||T&4)&&aa(E,t,l),r=r.next}while(r!==n)}DE(e,t,E);break;case 1:if(!ct&&(Un(E,t),n=E.stateNode,typeof n.componentWillUnmount=="function"))try{n.props=E.memoizedProps,n.state=E.memoizedState,n.componentWillUnmount()}catch(a){et(E,t,a)}DE(e,t,E);break;case 21:DE(e,t,E);break;case 22:E.mode&1?(ct=(n=ct)||E.memoizedState!==null,DE(e,t,E),ct=n):DE(e,t,E);break;default:DE(e,t,E)}}function Ci(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var E=e.stateNode;E===null&&(E=e.stateNode=new lu),t.forEach(function(n){var r=Ou.bind(null,e,n);E.has(n)||(E.add(n),n.then(r,r))})}}function Kt(e,t){var E=t.deletions;if(E!==null)for(var n=0;nr&&(r=l),n&=~T}if(n=r,n=tt()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*iu(n/1960))-n,10e?16:e,yE===null)var n=!1;else{if(e=yE,yE=null,zs=0,Ue&6)throw Error(z(331));var r=Ue;for(Ue|=4,re=e.current;re!==null;){var T=re,l=T.child;if(re.flags&16){var a=T.deletions;if(a!==null){for(var i=0;itt()-To?rn(e,0):so|=E),Mt(e,t)}function _S(e,t){t===0&&(e.mode&1?(t=ts,ts<<=1,!(ts&130023424)&&(ts=4194304)):t=1);var E=_t();e=CE(e,t),e!==null&&(Xr(e,t,E),Mt(e,E))}function uu(e){var t=e.memoizedState,E=0;t!==null&&(E=t.retryLane),_S(e,E)}function Ou(e,t){var E=0;switch(e.tag){case 13:var n=e.stateNode,r=e.memoizedState;r!==null&&(E=r.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(z(314))}n!==null&&n.delete(t),_S(e,E)}var fS;fS=function(e,t,E){if(e!==null)if(e.memoizedProps!==t.pendingProps||Pt.current)Dt=!0;else{if(!(e.lanes&E)&&!(t.flags&128))return Dt=!1,ru(e,t,E);Dt=!!(e.flags&131072)}else Dt=!1,ke&&t.flags&1048576&&PA(t,bs,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;_s(e,t),e=t.pendingProps;var r=wn(t,Ct.current);Hn(t,E),r=qa(null,t,n,e,r,E);var T=eo();return t.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ht(n)?(T=!0,Ys(t)):T=!1,t.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,$a(t),r.updater=oT,t.stateNode=r,r._reactInternals=t,ta(t,n,e,E),t=ra(null,t,n,!0,T,E)):(t.tag=0,ke&&T&&ba(t),Lt(null,t,r,E),t=t.child),t;case 16:n=t.elementType;e:{switch(_s(e,t),e=t.pendingProps,r=n._init,n=r(n._payload),t.type=n,r=t.tag=Cu(n),e=$t(n,e),r){case 0:t=na(null,t,n,e,E);break e;case 1:t=Ni(null,t,n,e,E);break e;case 11:t=Ai(null,t,n,e,E);break e;case 14:t=Si(null,t,n,$t(n.type,e),E);break e}throw Error(z(306,n,""))}return t;case 0:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:$t(n,r),na(e,t,n,r,E);case 1:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:$t(n,r),Ni(e,t,n,r,E);case 3:e:{if(TS(t),e===null)throw Error(z(387));n=t.pendingProps,T=t.memoizedState,r=T.element,gA(e,t),Xs(t,n,null,E);var l=t.memoizedState;if(n=l.element,T.isDehydrated)if(T={element:n,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=T,t.memoizedState=T,t.flags&256){r=Xn(Error(z(423)),t),t=Ii(e,t,n,E,r);break e}else if(n!==r){r=Xn(Error(z(424)),t),t=Ii(e,t,n,E,r);break e}else for(gt=HE(t.stateNode.containerInfo.firstChild),vt=t,ke=!0,zt=null,E=xA(t,null,n,E),t.child=E;E;)E.flags=E.flags&-3|4096,E=E.sibling;else{if(bn(),n===r){t=dE(e,t,E);break e}Lt(e,t,n,E)}t=t.child}return t;case 5:return GA(t),e===null&&Zl(t),n=t.type,r=t.pendingProps,T=e!==null?e.memoizedProps:null,l=r.children,Kl(n,r)?l=null:T!==null&&Kl(n,T)&&(t.flags|=32),sS(e,t),Lt(e,t,l,E),t.child;case 6:return e===null&&Zl(t),null;case 13:return lS(e,t,E);case 4:return Ja(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=Vn(t,null,n,E):Lt(e,t,n,E),t.child;case 11:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:$t(n,r),Ai(e,t,n,r,E);case 7:return Lt(e,t,t.pendingProps,E),t.child;case 8:return Lt(e,t,t.pendingProps.children,E),t.child;case 12:return Lt(e,t,t.pendingProps.children,E),t.child;case 10:e:{if(n=t.type._context,r=t.pendingProps,T=t.memoizedProps,l=r.value,Fe(Vs,n._currentValue),n._currentValue=l,T!==null)if(eE(T.value,l)){if(T.children===r.children&&!Pt.current){t=dE(e,t,E);break e}}else for(T=t.child,T!==null&&(T.return=t);T!==null;){var a=T.dependencies;if(a!==null){l=T.child;for(var i=a.firstContext;i!==null;){if(i.context===n){if(T.tag===1){i=uE(-1,E&-E),i.tag=2;var o=T.updateQueue;if(o!==null){o=o.shared;var S=o.pending;S===null?i.next=i:(i.next=S.next,S.next=i),o.pending=i}}T.lanes|=E,i=T.alternate,i!==null&&(i.lanes|=E),ql(T.return,E,t),a.lanes|=E;break}i=i.next}}else if(T.tag===10)l=T.type===t.type?null:T.child;else if(T.tag===18){if(l=T.return,l===null)throw Error(z(341));l.lanes|=E,a=l.alternate,a!==null&&(a.lanes|=E),ql(l,E,t),l=T.sibling}else l=T.child;if(l!==null)l.return=T;else for(l=T;l!==null;){if(l===t){l=null;break}if(T=l.sibling,T!==null){T.return=l.return,l=T;break}l=l.return}T=l}Lt(e,t,r.children,E),t=t.child}return t;case 9:return r=t.type,n=t.pendingProps.children,Hn(t,E),r=jt(r),n=n(r),t.flags|=1,Lt(e,t,n,E),t.child;case 14:return n=t.type,r=$t(n,t.pendingProps),r=$t(n.type,r),Si(e,t,n,r,E);case 15:return nS(e,t,t.type,t.pendingProps,E);case 17:return n=t.type,r=t.pendingProps,r=t.elementType===n?r:$t(n,r),_s(e,t),t.tag=1,ht(n)?(e=!0,Ys(t)):e=!1,Hn(t,E),eS(t,n,r),ta(t,n,r,E),ra(null,t,n,!0,e,E);case 19:return aS(e,t,E);case 22:return rS(e,t,E)}throw Error(z(156,t.tag))};function pS(e,t){return QR(e,t)}function cu(e,t,E,n){this.tag=e,this.key=E,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Wt(e,t,E,n){return new cu(e,t,E,n)}function io(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Cu(e){if(typeof e=="function")return io(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ma)return 11;if(e===Ua)return 14}return 2}function wE(e,t){var E=e.alternate;return E===null?(E=Wt(e.tag,t,e.key,e.mode),E.elementType=e.elementType,E.type=e.type,E.stateNode=e.stateNode,E.alternate=e,e.alternate=E):(E.pendingProps=t,E.type=e.type,E.flags=0,E.subtreeFlags=0,E.deletions=null),E.flags=e.flags&14680064,E.childLanes=e.childLanes,E.lanes=e.lanes,E.child=e.child,E.memoizedProps=e.memoizedProps,E.memoizedState=e.memoizedState,E.updateQueue=e.updateQueue,t=e.dependencies,E.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},E.sibling=e.sibling,E.index=e.index,E.ref=e.ref,E}function ms(e,t,E,n,r,T){var l=2;if(n=e,typeof e=="function")io(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case Ln:return sn(E.children,r,T,t);case ha:l=8,r|=8;break;case ml:return e=Wt(12,E,t,r|2),e.elementType=ml,e.lanes=T,e;case Dl:return e=Wt(13,E,t,r),e.elementType=Dl,e.lanes=T,e;case Pl:return e=Wt(19,E,t,r),e.elementType=Pl,e.lanes=T,e;case GR:return AT(E,r,T,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case yR:l=10;break e;case gR:l=9;break e;case Ma:l=11;break e;case Ua:l=14;break e;case PE:l=16,n=null;break e}throw Error(z(130,e==null?e:typeof e,""))}return t=Wt(l,E,t,r),t.elementType=e,t.type=n,t.lanes=T,t}function sn(e,t,E,n){return e=Wt(7,e,n,t),e.lanes=E,e}function AT(e,t,E,n){return e=Wt(22,e,n,t),e.elementType=GR,e.lanes=E,e.stateNode={isHidden:!1},e}function JT(e,t,E){return e=Wt(6,e,null,t),e.lanes=E,e}function zT(e,t,E){return t=Wt(4,e.children!==null?e.children:[],e.key,t),t.lanes=E,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function du(e,t,E,n,r){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=UT(0),this.expirationTimes=UT(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=UT(0),this.identifierPrefix=n,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function Ro(e,t,E,n,r,T,l,a,i){return e=new du(e,t,E,a,i),t===1?(t=1,T===!0&&(t|=8)):t=0,T=Wt(3,null,null,t),e.current=T,T.stateNode=e,T.memoizedState={element:n,isDehydrated:E,cache:null,transitions:null,pendingSuspenseBoundaries:null},$a(T),e}function Lu(e,t,E){var n=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(hS)}catch(e){console.error(e)}}hS(),hR.exports=Bt;var Du=hR.exports,Pi=Du;fl.createRoot=Pi.createRoot,fl.hydrateRoot=Pi.hydrateRoot;/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var Pu={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hu=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().trim(),Ae=(e,t)=>{const E=u.forwardRef(({color:n="currentColor",size:r=24,strokeWidth:T=2,absoluteStrokeWidth:l,className:a="",children:i,...o},S)=>u.createElement("svg",{ref:S,...Pu,width:r,height:r,stroke:n,strokeWidth:l?Number(T)*24/Number(r):T,className:["lucide",`lucide-${hu(e)}`,a].join(" "),...o},[...t.map(([N,R])=>u.createElement(N,R)),...Array.isArray(i)?i:[i]]));return E.displayName=`${e}`,E};/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const MS=Ae("AlertCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Mu=Ae("AlignLeft",[["line",{x1:"21",x2:"3",y1:"6",y2:"6",key:"1fp77t"}],["line",{x1:"15",x2:"3",y1:"12",y2:"12",key:"v6grx8"}],["line",{x1:"17",x2:"3",y1:"18",y2:"18",key:"1awlsn"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Uu=Ae("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xu=Ae("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hi=Ae("Calendar",[["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",ry:"2",key:"eu3xkr"}],["line",{x1:"16",x2:"16",y1:"2",y2:"6",key:"m3sa8f"}],["line",{x1:"8",x2:"8",y1:"2",y2:"6",key:"18kwsl"}],["line",{x1:"3",x2:"21",y1:"10",y2:"10",key:"xt86sb"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yu=Ae("CheckCircle",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gu=Ae("CheckSquare",[["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}],["path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11",key:"1jnkn4"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const aE=Ae("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const LE=Ae("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Io=Ae("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const WE=Ae("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gu=Ae("ClipboardPaste",[["path",{d:"M15 2H9a1 1 0 0 0-1 1v2c0 .6.4 1 1 1h6c.6 0 1-.4 1-1V3c0-.6-.4-1-1-1Z",key:"1pp7kr"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2M16 4h2a2 2 0 0 1 2 2v2M11 14h10",key:"2ik1ml"}],["path",{d:"m17 10 4 4-4 4",key:"vp2hj1"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const US=Ae("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Gt=Ae("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xS=Ae("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vu=Ae("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qs=Ae("FileCode",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"m10 13-2 2 2 2",key:"17smn8"}],["path",{d:"m14 17 2-2-2-2",key:"14mezr"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yS=Ae("FileSpreadsheet",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["path",{d:"M8 13h2",key:"yr2amv"}],["path",{d:"M8 17h2",key:"2yhykz"}],["path",{d:"M14 13h2",key:"un5t4a"}],["path",{d:"M14 17h2",key:"10kma7"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ua=Ae("FileText",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"16",x2:"8",y1:"13",y2:"13",key:"14keom"}],["line",{x1:"16",x2:"8",y1:"17",y2:"17",key:"17nazh"}],["line",{x1:"10",x2:"8",y1:"9",y2:"9",key:"1a5vjj"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Hu=Ae("FileX",[["path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z",key:"1nnpy2"}],["polyline",{points:"14 2 14 8 20 8",key:"1ew0cm"}],["line",{x1:"9.5",x2:"14.5",y1:"12.5",y2:"17.5",key:"izs6du"}],["line",{x1:"14.5",x2:"9.5",y1:"12.5",y2:"17.5",key:"1lehlj"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Oa=Ae("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ca=Ae("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Bu=Ae("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Fu=Ae("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Yu=Ae("HardDrive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const OT=Ae("Key",[["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["path",{d:"m15.5 7.5 3 3L22 7l-3-3",key:"1rn1fs"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wu=Ae("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const bu=Ae("List",[["line",{x1:"8",x2:"21",y1:"6",y2:"6",key:"7ey8pc"}],["line",{x1:"8",x2:"21",y1:"12",y2:"12",key:"rjfblc"}],["line",{x1:"8",x2:"21",y1:"18",y2:"18",key:"c3b1m8"}],["line",{x1:"3",x2:"3.01",y1:"6",y2:"6",key:"1g7gq3"}],["line",{x1:"3",x2:"3.01",y1:"12",y2:"12",key:"1pjlvk"}],["line",{x1:"3",x2:"3.01",y1:"18",y2:"18",key:"28t2mc"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Fn=Ae("Loader2",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vu=Ae("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wu=Ae("Minimize2",[["polyline",{points:"4 14 10 14 10 20",key:"11kfnr"}],["polyline",{points:"20 10 14 10 14 4",key:"rlmsce"}],["line",{x1:"14",x2:"21",y1:"10",y2:"3",key:"o5lafz"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gS=Ae("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Mi=Ae("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z",key:"ymcmye"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xu=Ae("PinOff",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["line",{x1:"12",x2:"12",y1:"17",y2:"22",key:"1jrz49"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V17h12",key:"13x2n8"}],["path",{d:"M15 9.34V6h1a2 2 0 0 0 0-4H7.89",key:"reo3ki"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ju=Ae("Pin",[["line",{x1:"12",x2:"12",y1:"17",y2:"22",key:"1jrz49"}],["path",{d:"M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24Z",key:"13yl11"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ku=Ae("Play",[["polygon",{points:"5 3 19 12 5 21 5 3",key:"191637"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ui=Ae("PlusCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const In=Ae("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vr=Ae("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const GS=Ae("Save",[["path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z",key:"1owoqh"}],["polyline",{points:"17 21 17 13 7 13 7 21",key:"1md35c"}],["polyline",{points:"7 3 7 8 15 8",key:"8nz8an"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const cT=Ae("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ca=Ae("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const uo=Ae("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ku=Ae("Shield",[["path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10",key:"1irkt0"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $u=Ae("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zn=Ae("Table2",[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const IE=Ae("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ju=Ae("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zu=Ae("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xi=Ae("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qu=Ae("XCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const tE=Ae("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** + * @license lucide-react v0.294.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Zu=Ae("Zap",[["polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",key:"45s27k"}]]),de=()=>typeof window<"u"&&window.electronAPI?window.electronAPI:null,Le={minimize:async()=>{const e=de();e&&await e.minimize()},maximize:async()=>{const e=de();e&&await e.maximize()},close:async()=>{const e=de();e&&await e.close()},testConnection:async e=>{const t=de();if(!t)return{success:!1,message:"Electron API 不可用"};try{return await t.testConnection(e)}catch(E){return{success:!1,message:E.toString()}}},connect:async e=>{const t=de();if(!t)return{success:!1,message:"Electron API 不可用"};try{return await t.connect(e)}catch(E){return{success:!1,message:E.toString()}}},disconnect:async e=>{const t=de();if(t)try{await t.disconnect(e)}catch(E){console.error("Disconnect error:",E)}},query:async(e,t)=>{const E=de();if(!E)return{columns:[],rows:[],error:"Electron API 不可用"};try{const n=await E.query(e,t);return{columns:n.columns,rows:n.rows,error:n.error}}catch(n){return{columns:[],rows:[],error:n.toString()}}},executeQuery:async(e,t)=>{const E=de();if(!E)return{columns:[],rows:[],error:"Electron API 不可用"};try{const n=await E.query(e,t);return{columns:n.columns,rows:n.rows,error:n.error}}catch(n){return{columns:[],rows:[],error:n.toString()}}},getDatabases:async e=>{const t=de();if(!t)return[];try{return await t.getDatabases(e)}catch(E){return console.error("getDatabases error:",E),[]}},getTables:async(e,t)=>{const E=de();if(!E)return[];try{return await E.getTables(e,t)}catch(n){return console.error("getTables error:",n),[]}},getColumns:async(e,t,E)=>{const n=de();if(!n)return[];try{return await n.getColumns(e,t,E)}catch(r){return console.error("getColumns error:",r),[]}},getTableColumns:async(e,t,E)=>{const n=de();if(!n)return[];try{return await n.getColumns(e,t,E)}catch(r){return console.error("getTableColumns error:",r),[]}},getTableData:async(e,t,E,n,r)=>{const T=de();if(!T)return{data:[],total:0};try{const l=await T.getTableData(e,t,E,n||1,r||100),a=l.columns||[];return{data:(l.rows||[]).map(o=>{const S={};return a.forEach((N,R)=>{S[N.name]=o[R]}),S}),total:l.total,columns:l.columns}}catch(l){return console.error("getTableData error:",l),{data:[],total:0}}},updateRow:async(e,t,E,n,r)=>{const T=de();if(!T)return{success:!1,error:"Electron API 不可用"};try{const l=await T.updateRow(e,t,E,n,r);return{success:l.success,error:l.success?void 0:l.message}}catch(l){return{success:!1,error:l.toString()}}},deleteRow:async(e,t,E,n)=>{const r=de();if(!r)return{success:!1,error:"Electron API 不可用"};try{const T=await r.deleteRow(e,t,E,n);return{success:T.success,error:T.success?void 0:T.message}}catch(T){return{success:!1,error:T.toString()}}},insertRow:async(e,t,E,n,r)=>{const T=de();if(!T)return{success:!1,error:"Electron API 不可用"};try{const l=await T.insertRow(e,t,E,n,r);return{success:l.success,error:l.success?void 0:l.message,insertId:l.insertId}}catch(l){return{success:!1,error:l.toString()}}},updateTableRow:async(e,t,E,n,r,T)=>{const l=de();if(!l)return{success:!1,error:"Electron API 不可用"};try{const a=await l.updateRow(e,t,E,{column:n,value:r},T);return{success:a.success,error:a.success?void 0:a.message}}catch(a){return{success:!1,error:a.toString()}}},insertTableRow:async(e,t,E,n)=>{const r=Object.keys(n),T=Object.values(n),l=de();if(!l)return{success:!1,error:"Electron API 不可用"};try{const a=await l.insertRow(e,t,E,r,T);return{success:a.success,error:a.success?void 0:a.message,insertId:a.insertId}}catch(a){return{success:!1,error:a.toString()}}},deleteTableRow:async(e,t,E,n,r)=>{const T=de();if(!T)return{success:!1,error:"Electron API 不可用"};try{const l=await T.deleteRow(e,t,E,{column:n,value:r});return{success:l.success,error:l.success?void 0:l.message}}catch(l){return{success:!1,error:l.toString()}}},createDatabase:async(e,t,E="utf8mb4",n="utf8mb4_general_ci")=>{const r=de();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.createDatabase(e,t,E,n)}catch(T){return{success:!1,message:T.toString()}}},dropDatabase:async(e,t)=>{const E=de();if(!E)return{success:!1,message:"Electron API 不可用"};try{return await E.dropDatabase(e,t)}catch(n){return{success:!1,message:n.toString()}}},createTable:async(e,t,E,n)=>{const r=de();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.createTable(e,t,E,n)}catch(T){return{success:!1,message:T.toString()}}},dropTable:async(e,t,E)=>{const n=de();if(!n)return{success:!1,message:"Electron API 不可用"};try{return await n.dropTable(e,t,E)}catch(r){return{success:!1,message:r.toString()}}},truncateTable:async(e,t,E)=>{const n=de();if(!n)return{success:!1,message:"Electron API 不可用"};try{return await n.truncateTable(e,t,E)}catch(r){return{success:!1,message:r.toString()}}},renameTable:async(e,t,E,n)=>{const r=de();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.renameTable(e,t,E,n)}catch(T){return{success:!1,message:T.toString()}}},duplicateTable:async(e,t,E,n,r=!1)=>{const T=de();if(!T)return{success:!1,message:"Electron API 不可用"};try{return await T.duplicateTable(e,t,E,n,r)}catch(l){return{success:!1,message:l.toString()}}},addColumn:async(e,t,E,n)=>{const r=de();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.addColumn(e,t,E,n)}catch(T){return{success:!1,message:T.toString()}}},modifyColumn:async(e,t,E,n,r)=>{const T=de();if(!T)return{success:!1,message:"Electron API 不可用"};try{return await T.modifyColumn(e,t,E,n,r)}catch(l){return{success:!1,message:l.toString()}}},dropColumn:async(e,t,E,n)=>{const r=de();if(!r)return{success:!1,message:"Electron API 不可用"};try{return await r.dropColumn(e,t,E,n)}catch(T){return{success:!1,message:T.toString()}}},getTableInfo:async(e,t,E)=>{const n=de();if(!n)return{columns:[],indexes:[],foreignKeys:[],options:{}};try{return await n.getTableInfo(e,t,E)}catch(r){return console.error("getTableInfo error:",r),{columns:[],indexes:[],foreignKeys:[],options:{}}}},getIndexes:async(e,t,E)=>{const n=de();if(!n)return[];try{return await n.getIndexes(e,t,E)}catch(r){return console.error("getIndexes error:",r),[]}},getForeignKeys:async(e,t,E)=>{const n=de();if(!n)return[];try{return await n.getForeignKeys(e,t,E)}catch(r){return console.error("getForeignKeys error:",r),[]}},getColumnNames:async(e,t,E)=>{const n=de();if(!n)return[];try{return await n.getColumnNames(e,t,E)}catch(r){return console.error("getColumnNames error:",r),[]}},executeMultiSQL:async(e,t)=>{const E=de();if(!E)return{success:!1,message:"Electron API 不可用"};try{return await E.executeMultiSQL(e,t)}catch(n){return{success:!1,message:n.toString()}}},saveConnections:async e=>{const t=de();if(t)try{await t.saveConnections(e)}catch(E){console.error("saveConnections error:",E)}},loadConnections:async()=>{const e=de();if(!e)return[];try{return await e.loadConnections()}catch(t){return console.error("loadConnections error:",t),[]}},exportConnections:async(e,t)=>{const E=de();if(!E)return{success:!1,error:"Electron API 不可用"};try{const n=await E.saveDialog({filters:[{name:t==="json"?"JSON":"Navicat NCX",extensions:[t==="json"?"json":"ncx"]}]});if(!n)return{cancelled:!0};const r=t==="json"?JSON.stringify(e,null,2):eO(e);return await E.writeFile(n,r),{success:!0,path:n,count:e.length}}catch(n){return{success:!1,error:n.toString()}}},importConnections:async()=>{const e=de();if(!e)return{success:!1,error:"Electron API 不可用"};try{const t=await e.selectFile(["json","ncx"]);if(!t)return{cancelled:!0};const E=await e.readFile(t);if(!E.success||!E.content)return{success:!1,error:E.error||"读取文件失败"};const n=t.toLowerCase().endsWith(".ncx");let r;return n?r=await qu(E.content,e):r=JSON.parse(E.content),{success:!0,connections:r,count:r.length,source:n?"Navicat":"JSON"}}catch(t){return{success:!1,error:t.toString()}}},openFile:async()=>{const e=de();if(!e)return null;try{return await e.openFile()}catch(t){return{path:"",content:"",name:"",error:t.toString()}}},saveFile:async(e,t)=>{const E=de();if(!E)return null;try{return await E.saveFile(e,t)}catch(n){return{path:"",name:"",error:n.toString()}}},selectFile:async e=>{const t=de();if(!t)return null;try{const E=await t.selectFile(e);return E?{path:E}:null}catch{return null}},backupDatabase:async(e,t)=>{const E=de();if(!E)return{success:!1,error:"Electron API 不可用"};try{const n=await E.saveDialog({filters:[{name:"SQL 文件",extensions:["sql"]}],defaultPath:`${t}_backup.sql`});if(!n)return{cancelled:!0};const r=await Le.getTables(e,t);let T=`-- Database: ${t} +-- Backup Time: ${new Date().toISOString()} + +`;for(const l of r){if(l.isView)continue;const a=await Le.query(e,`SELECT * FROM \`${l.name}\``);if(a.rows&&a.rows.length>0){for(const i of a.rows){const o=i.map(S=>S===null?"NULL":typeof S=="string"?`'${S.replace(/'/g,"''")}'`:S).join(", ");T+=`INSERT INTO \`${l.name}\` VALUES (${o}); +`}T+=` +`}}return await E.writeFile(n,T),{success:!0,path:n}}catch(n){return{success:!1,error:n.toString()}}},exportTable:async(e,t,E,n)=>{const r=de();if(!r)return{success:!1,error:"Electron API 不可用"};try{const T=n==="excel"?"xlsx":n,l=await r.saveDialog({filters:[{name:n.toUpperCase(),extensions:[T]}],defaultPath:`${E}.${T}`});if(!l)return{cancelled:!0};const a=await Le.query(e,`SELECT * FROM \`${E}\``);let i;if(n==="csv"){const o=a.columns.join(","),S=a.rows.map(N=>N.map(R=>R===null?"":typeof R=="string"?`"${R.replace(/"/g,'""')}"`:R).join(",")).join(` +`);i=`${o} +${S}`}else if(n==="sql")i=a.rows.map(o=>{const S=o.map(N=>N===null?"NULL":typeof N=="string"?`'${N.replace(/'/g,"''")}'`:N).join(", ");return`INSERT INTO \`${E}\` VALUES (${S});`}).join(` +`);else{const o=a.columns.join(","),S=a.rows.map(N=>N.map(R=>R===null?"":typeof R=="string"?`"${R.replace(/"/g,'""')}"`:R).join(",")).join(` +`);i=`${o} +${S}`}return await r.writeFile(l,i),{success:!0,path:l}}catch(T){return{success:!1,error:T.toString()}}}};async function qu(e,t){const E=[],n=/]*?)\/>/gi,r=/]*?)>/gi,T=R=>{const O={},L=/(\w+)\s*=\s*"([^"]*)"/g;let _;for(;(_=L.exec(R))!==null;)O[_[1]]=_[2];return O},l=async R=>{const O=R.ConnectionName||R.Name||R.connection_name||"";if(!O)return null;let L=(R.ConnType||R.Type||R.conn_type||"mysql").toLowerCase();L==="postgresql"&&(L="postgres"),(L==="sql server"||L==="mssql")&&(L="sqlserver");const _=R.Password||R.password||"";let H="";if(_&&/^[0-9A-Fa-f]+$/.test(_)&&_.length>=16)try{const c=parseInt(R.Version||R.version||"12")||12;H=await t.decryptNavicatPassword(_,c),console.log(`密码解密成功: ${O} (版本: ${c})`)}catch(c){console.warn(`密码解密失败: ${O}`,c),H=_}else H=_;return{id:crypto.randomUUID(),name:O,type:L,host:R.Host||R.host||R.Server||"localhost",port:parseInt(R.Port||R.port||"3306")||3306,username:R.UserName||R.Username||R.User||R.user||"",password:H,database:R.Database||R.database||R.InitialDatabase||""}},a=[];let i;for(;(i=n.exec(e))!==null;)a.push(i[1]);for(;(i=r.exec(e))!==null;)a.push(i[1]);const o=a.map(async R=>{const O=T(R);return await l(O)}),S=await Promise.all(o);for(const R of S)R&&E.push(R);return E.filter((R,O,L)=>O===L.findIndex(_=>_.name===R.name))}function eO(e){let t=` + +`;for(const E of e)t+=` +`;return t+="",t}const tO=u.memo(function(){const[t,E]=u.useState(!1),n=async()=>{await Le.maximize(),E(!t)};return s.jsxs("div",{className:"h-10 bg-white flex items-center justify-between drag select-none border-b border-border-default",children:[s.jsxs("div",{className:"flex items-center h-full px-4 no-drag gap-2.5",children:[s.jsx("div",{className:"w-7 h-7 rounded-lg bg-primary-500 flex items-center justify-center",children:s.jsx(Gt,{size:15,className:"text-white"})}),s.jsx("span",{className:"text-sm font-semibold text-text-primary",children:"EasySQL"}),s.jsxs("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded bg-primary-50 text-primary-600",children:["v","2.0.1"]})]}),s.jsxs("div",{className:"flex h-full no-drag",children:[s.jsx("button",{onClick:()=>Le.minimize(),className:"w-11 h-full flex items-center justify-center hover:bg-light-hover transition-colors",title:"最小化",children:s.jsx(gS,{size:15,className:"text-text-tertiary"})}),s.jsx("button",{onClick:n,className:"w-11 h-full flex items-center justify-center hover:bg-light-hover transition-colors",title:t?"还原":"最大化",children:t?s.jsx(Wu,{size:13,className:"text-text-tertiary"}):s.jsx(Vu,{size:13,className:"text-text-tertiary"})}),s.jsx("button",{onClick:()=>Le.close(),className:"w-11 h-full flex items-center justify-center hover:bg-danger-500 hover:text-white transition-colors group",title:"关闭",children:s.jsx(tE,{size:15,className:"text-text-tertiary group-hover:text-white"})})]})]})}),rE={mysql:{name:"MySQL",icon:"🐬",color:"#00758f",defaultPort:3306,supported:!0,needsHost:!0,needsAuth:!0,needsFile:!1},postgres:{name:"PostgreSQL",icon:"🐘",color:"#336791",defaultPort:5432,supported:!0,needsHost:!0,needsAuth:!0,needsFile:!1},sqlite:{name:"SQLite",icon:"💾",color:"#003b57",defaultPort:0,supported:!0,needsHost:!1,needsAuth:!1,needsFile:!0},mongodb:{name:"MongoDB",icon:"🍃",color:"#47a248",defaultPort:27017,supported:!0,needsHost:!0,needsAuth:!0,needsFile:!1},redis:{name:"Redis",icon:"⚡",color:"#dc382d",defaultPort:6379,supported:!0,needsHost:!0,needsAuth:!0,needsFile:!1},sqlserver:{name:"SQL Server",icon:"📊",color:"#cc2927",defaultPort:1433,supported:!0,needsHost:!0,needsAuth:!0,needsFile:!1},oracle:{name:"Oracle",icon:"🔶",color:"#f80000",defaultPort:1521,supported:!1,needsHost:!0,needsAuth:!0,needsFile:!1},mariadb:{name:"MariaDB",icon:"🦭",color:"#c0765a",defaultPort:3306,supported:!0,needsHost:!0,needsAuth:!0,needsFile:!1},snowflake:{name:"Snowflake",icon:"❄️",color:"#29b5e8",defaultPort:443,supported:!1,needsHost:!0,needsAuth:!0,needsFile:!1}},EO=u.memo(function({tables:t,db:E,connectionId:n,expandedDbs:r,setExpandedDbs:T,onOpenTable:l,onContextMenu:a}){const i=t.filter(_=>!_.isView),o=t.filter(_=>_.isView),S=`${E}_tables`,N=`${E}_views`,R=r.has(S),O=r.has(N),L=_=>{T(H=>{const c=new Set(H);return c.has(_)?c.delete(_):c.add(_),c})};return u.useEffect(()=>{i.length>0&&T(_=>new Set(_).add(S))},[i.length,S,T]),t.length===0?s.jsx("div",{className:"px-4 py-3 text-xs text-text-muted",children:"暂无表"}):s.jsxs("div",{className:"py-1",children:[i.length>0&&s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 mx-2 text-xs text-text-secondary hover:bg-light-hover cursor-pointer transition-colors rounded-lg",onClick:()=>L(S),children:[s.jsx("span",{className:"text-text-muted",children:R?s.jsx(LE,{size:12}):s.jsx(WE,{size:12})}),s.jsx("span",{className:"text-warning-500",children:R?s.jsx(Oa,{size:13}):s.jsx(ca,{size:13})}),s.jsx("span",{className:"flex-1 font-medium",children:"表"}),s.jsx("span",{className:"text-text-muted text-[10px] bg-light-elevated px-1.5 py-0.5 rounded-full",children:i.length})]}),R&&s.jsx("div",{className:"ml-4 pl-2 border-l border-border-light",children:i.map(_=>s.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 mr-1 text-text-secondary hover:bg-light-hover cursor-pointer transition-colors rounded-lg group",onClick:()=>l(n,E,_.name),onContextMenu:H=>a(H,_.name),title:_.name,children:[s.jsx(zn,{size:14,className:"text-warning-500 flex-shrink-0"}),s.jsx("span",{className:"truncate font-mono text-[13px] flex-1 min-w-0",children:_.name})]},_.name))})]}),o.length>0&&s.jsxs("div",{className:"mt-1",children:[s.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 mx-2 text-xs text-text-secondary hover:bg-light-hover cursor-pointer transition-colors rounded-lg",onClick:()=>L(N),children:[s.jsx("span",{className:"text-text-muted",children:O?s.jsx(LE,{size:12}):s.jsx(WE,{size:12})}),s.jsx("span",{className:"text-info-500",children:O?s.jsx(Oa,{size:13}):s.jsx(ca,{size:13})}),s.jsx("span",{className:"flex-1 font-medium",children:"视图"}),s.jsx("span",{className:"text-text-muted text-[10px] bg-light-elevated px-1.5 py-0.5 rounded-full",children:o.length})]}),O&&s.jsx("div",{className:"ml-4 pl-2 border-l border-border-light",children:o.map(_=>s.jsxs("div",{className:"flex items-center gap-2 px-2 py-1.5 mr-1 text-text-secondary hover:bg-light-hover cursor-pointer transition-colors rounded-lg group",onClick:()=>l(n,E,_.name),onContextMenu:H=>a(H,_.name),title:_.name,children:[s.jsx(vu,{size:14,className:"text-info-500 flex-shrink-0"}),s.jsx("span",{className:"truncate font-mono text-[13px] flex-1 min-w-0",children:_.name})]},_.name))})]})]})});function QT(e,t,E=200,n=200){const r=window.innerHeight,T=window.innerWidth;let l=e,a=t;return t+E>r-10&&(a=Math.max(10,t-E)),e+n>T-10&&(l=Math.max(10,e-n)),{x:l,y:a}}function nO({connections:e,activeConnection:t,connectedIds:E,databasesMap:n,tablesMap:r,selectedDatabase:T,loadingDbSet:l,loadingConnectionsSet:a,onNewConnection:i,onSelectConnection:o,onConnect:S,onDisconnect:N,onEditConnection:R,onDeleteConnection:O,onDeleteConnections:L,onSelectDatabase:_,onOpenTable:H,onBackupDatabase:c,onExportTable:A,onExportConnections:I,onImportConnections:C,onCreateDatabase:M,onDropDatabase:p,onCreateTable:P,onDropTable:D,onTruncateTable:Z,onRenameTable:Y,onDuplicateTable:ne,onRefreshTables:xe,onDesignTable:Se,onFetchDatabases:he}){const[B,j]=u.useState(null),[ee,b]=u.useState(null),[U,J]=u.useState(null),[Ee,ce]=u.useState(new Set),[ye,me]=u.useState(!1),[De,Ne]=u.useState(new Set),[se,We]=u.useState(""),Xe=u.useRef(null),W=u.useRef(null),[Qe,Te]=u.useState(!1),Ke=u.useRef(new Set);u.useEffect(()=>{T&&ce(y=>new Set(y).add(T))},[T]),u.useEffect(()=>{const y=Ke.current;E.forEach(le=>{y.has(le)||ce(Ce=>new Set(Ce).add(le))}),Ke.current=new Set(E)},[E]);const Ye=u.useCallback(y=>{(y.ctrlKey||y.metaKey)&&y.key==="f"&&Qe&&(y.preventDefault(),y.stopPropagation(),setTimeout(()=>Xe.current?.focus(),50)),y.key==="Escape"&&se&&We("")},[Qe,se]);u.useEffect(()=>{const y=W.current;if(y)return y.addEventListener("keydown",Ye),()=>y.removeEventListener("keydown",Ye)},[Ye]);const Q=y=>{const le=r.get(y)||[];return se?le.filter(Ce=>Ce.name.toLowerCase().includes(se.toLowerCase())):le},Oe=y=>se?(r.get(y)||[]).some(Ce=>Ce.name.toLowerCase().includes(se.toLowerCase())):!1,pe=y=>y.filter(le=>{if(!se)return!0;const Ce=se.toLowerCase();return!!(le.toLowerCase().includes(Ce)||Oe(le))});return u.useEffect(()=>{se&&n.forEach(y=>{y.forEach(le=>{Oe(le)&&ce(Ce=>new Set(Ce).add(le))})})},[se,n,r]),s.jsxs(s.Fragment,{children:[s.jsxs("div",{ref:W,className:"w-80 bg-light-surface flex flex-col h-full select-none border-r border-border-default",tabIndex:0,onFocus:()=>Te(!0),onBlur:y=>{y.currentTarget.contains(y.relatedTarget)||Te(!1)},onMouseEnter:()=>Te(!0),onMouseLeave:()=>Te(!1),children:[s.jsxs("div",{className:"p-3 flex-shrink-0 space-y-2",children:[s.jsxs("button",{onClick:i,className:`w-full h-9 bg-primary-500 hover:bg-primary-600 text-white + flex items-center justify-center gap-2 text-sm font-medium + transition-all rounded-lg shadow-btn hover:shadow-btn-hover`,children:[s.jsx(In,{size:16,strokeWidth:2.5}),s.jsx("span",{children:"新建连接"})]}),s.jsxs("div",{className:"flex gap-2",children:[s.jsxs("button",{onClick:C,className:`flex-1 h-8 bg-white hover:bg-light-hover border border-border-default + flex items-center justify-center gap-1.5 text-xs text-text-secondary + transition-colors rounded-lg`,children:[s.jsx(zu,{size:13}),s.jsx("span",{children:"导入"})]}),s.jsxs("div",{className:"relative group flex-1",children:[s.jsxs("button",{className:`w-full h-8 bg-white hover:bg-light-hover border border-border-default + flex items-center justify-center gap-1.5 text-xs text-text-secondary + transition-colors rounded-lg`,children:[s.jsx(xS,{size:13}),s.jsx("span",{children:"导出"})]}),s.jsxs("div",{className:`absolute left-0 right-0 top-full mt-1 bg-white border border-border-default + rounded-lg shadow-lg opacity-0 invisible group-hover:opacity-100 group-hover:visible + transition-all z-50 overflow-hidden`,children:[s.jsxs("button",{onClick:()=>I?.("json"),className:"w-full px-3 py-2 text-left text-xs hover:bg-light-hover flex items-center gap-2 text-text-primary",children:[s.jsx(qs,{size:12,className:"text-primary-500"}),"导出 JSON"]}),s.jsxs("button",{onClick:()=>I?.("ncx"),className:"w-full px-3 py-2 text-left text-xs hover:bg-light-hover flex items-center gap-2 text-text-primary",children:[s.jsx(ua,{size:12,className:"text-warning-500"}),"导出 Navicat"]})]})]})]})]}),s.jsx("div",{className:"px-3 pb-2 flex-shrink-0",children:s.jsxs("div",{className:"relative",children:[s.jsx(cT,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-text-muted"}),s.jsx("input",{ref:Xe,type:"text",value:se,onChange:y=>We(y.target.value),placeholder:"搜索...",className:`w-full h-8 pl-9 pr-8 bg-white text-sm text-text-primary placeholder-text-muted + border border-border-default focus:border-primary-500 transition-all rounded-lg`}),se&&s.jsx("button",{onClick:()=>We(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-text-secondary p-0.5",children:s.jsx(tE,{size:14})})]})}),s.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0 scrollbar-thin",children:[s.jsxs("div",{className:"px-3 py-2 flex items-center justify-between",children:[s.jsxs("span",{className:"text-[10px] font-semibold text-text-muted uppercase tracking-wider",children:["连接 · ",e.length]}),e.length>0&&s.jsx("button",{onClick:()=>{me(!ye),ye&&Ne(new Set)},className:`p-1 rounded transition-colors ${ye?"bg-primary-500 text-white":"hover:bg-light-hover text-text-muted"}`,children:ye?s.jsx(gu,{size:12}):s.jsx($u,{size:12})})]}),ye&&De.size>0&&s.jsxs("div",{className:"px-3 pb-2 flex items-center gap-2 animate-fade-in",children:[s.jsxs("span",{className:"text-xs text-text-tertiary",children:["已选 ",De.size," 项"]}),s.jsxs("button",{onClick:()=>{confirm(`确定删除 ${De.size} 个连接?`)&&(L?.([...De]),Ne(new Set),me(!1))},className:"px-2 py-1 text-xs bg-danger-50 text-danger-600 hover:bg-danger-100 rounded-md flex items-center gap-1",children:[s.jsx(IE,{size:11}),"删除"]})]}),e.length===0?s.jsxs("div",{className:"px-3 py-8 text-center",children:[s.jsx("div",{className:"w-12 h-12 mx-auto mb-3 rounded-xl bg-light-elevated flex items-center justify-center",children:s.jsx(Gt,{size:24,className:"text-text-muted"})}),s.jsx("p",{className:"text-text-muted text-sm",children:"暂无连接"}),s.jsx("p",{className:"text-text-disabled text-xs mt-1",children:"点击上方按钮创建"})]}):s.jsx("div",{className:"px-2 pb-3 space-y-0.5",children:e.map(y=>{const le=rE[y.type],Ce=E.has(y.id),ge=t===y.id,je=De.has(y.id),Be=Ee.has(y.id),Ze=n.get(y.id)||[];return Be&&Ce&&Ze.length>0,s.jsxs("div",{children:[s.jsxs("div",{className:`group flex items-center gap-2 px-2.5 py-2 cursor-pointer transition-all rounded-lg + ${je?"bg-primary-50 ring-1 ring-primary-200":""} + ${ge&&!je?"bg-light-hover":"hover:bg-light-hover"}`,onClick:()=>{if(ye)Ne(fe=>{const m=new Set(fe);return m.has(y.id)?m.delete(y.id):m.add(y.id),m});else if(o(y.id),Ce){const fe=!Ee.has(y.id);ce(m=>{const F=new Set(m);return F.has(y.id)?F.delete(y.id):F.add(y.id),F}),fe&&Ze.length===0&&he&&he(y.id)}},onDoubleClick:async()=>{!ye&&!Ce&&(await S(y),ce(fe=>new Set(fe).add(y.id)))},onContextMenu:fe=>{fe.preventDefault();const m=QT(fe.clientX,fe.clientY,200);j({x:m.x,y:m.y,conn:y})},children:[s.jsx("span",{className:"w-4 flex-shrink-0 flex items-center justify-center",children:ye?s.jsx("span",{className:`w-4 h-4 rounded border-2 flex items-center justify-center text-[10px] + ${je?"bg-primary-500 border-primary-500 text-white":"border-border-strong"}`,children:je&&"✓"}):s.jsx("span",{className:Ce?"text-text-muted":"opacity-0",children:Be?s.jsx(LE,{size:14}):s.jsx(WE,{size:14})})}),s.jsx("span",{className:"text-lg flex-shrink-0",children:le?.icon}),s.jsx("span",{className:"flex-1 text-sm truncate font-medium text-text-primary",children:y.name}),s.jsx("span",{className:`status-dot flex-shrink-0 ${Ce?"connected":"disconnected"}`})]}),Be&&Ce&&s.jsx("div",{className:"ml-5 mt-0.5 pl-3 border-l border-border-light animate-slide-down",children:a?.has(y.id)?s.jsxs("div",{className:"px-2.5 py-2 text-sm text-text-muted flex items-center gap-2",children:[s.jsx("span",{className:"w-3 h-3 border-2 border-primary-400 border-t-transparent rounded-full animate-spin"}),"加载数据库..."]}):Ze.length===0?s.jsx("div",{className:"px-2.5 py-2 text-sm text-text-muted",children:"无数据库或无权限"}):pe(Ze).map(fe=>{const m=T===fe,F=Ee.has(fe),q=Q(fe),_e=l.has(fe);return s.jsxs("div",{children:[s.jsxs("div",{className:`flex items-center gap-2 px-2.5 py-1.5 cursor-pointer text-sm transition-all rounded-lg mx-1 + ${m?"bg-primary-50 text-primary-700":"text-text-secondary hover:bg-light-hover"}`,onClick:()=>{!Ee.has(fe)&&_(fe,y.id),ce(ie=>{const Re=new Set(ie);return Re.has(fe)?Re.delete(fe):Re.add(fe),Re})},onContextMenu:k=>{k.preventDefault();const ie=QT(k.clientX,k.clientY,220);b({x:ie.x,y:ie.y,db:fe,connectionId:y.id})},children:[s.jsx("span",{className:"text-text-muted",children:F?s.jsx(LE,{size:14}):s.jsx(WE,{size:14})}),s.jsx(Gt,{size:14,className:m?"text-primary-500":"text-teal-500"}),s.jsx("span",{className:"flex-1 truncate",children:fe})]}),F&&s.jsx("div",{className:"ml-4 mt-0.5",children:_e?s.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 text-xs text-text-muted",children:[s.jsx(Fn,{size:12,className:"animate-spin text-primary-500"}),"加载中..."]}):s.jsx(EO,{tables:q,db:fe,connectionId:y.id,expandedDbs:Ee,setExpandedDbs:ce,onOpenTable:H,onContextMenu:(k,ie)=>{k.preventDefault();const Re=QT(k.clientX,k.clientY,320);J({x:Re.x,y:Re.y,db:fe,table:ie,connectionId:y.id})}})})]},fe)})})]},y.id)})})]})]}),B&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>j(null)}),s.jsxs("div",{className:"fixed z-50 bg-white border border-border-default py-1.5 min-w-[180px] rounded-xl shadow-modal menu",style:{left:B.x,top:B.y},children:[E.has(B.conn.id)?s.jsxs(s.Fragment,{children:[s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{N(B.conn.id),j(null)},children:[s.jsx("span",{className:"w-3 h-3 rounded-full border-2 border-danger-500"}),"断开连接"]}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{M?.(B.conn.id),j(null)},children:[s.jsx(Ui,{size:14,className:"text-success-500"}),"新建数据库"]}),s.jsx("div",{className:"my-1.5 mx-2 border-t border-border-light"})]}):s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{S(B.conn),ce(y=>new Set(y).add(B.conn.id)),j(null)},children:[s.jsx("span",{className:"w-3 h-3 rounded-full border-2 border-success-500"}),"连接"]}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{R(B.conn),j(null)},children:[s.jsx(Mi,{size:14,className:"text-text-muted"}),"编辑"]}),s.jsx("div",{className:"my-1.5 mx-2 border-t border-border-light"}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-danger-50 text-danger-600 flex items-center gap-3",onClick:()=>{O(B.conn.id),j(null)},children:[s.jsx(IE,{size:14}),"删除"]})]})]}),ee&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>b(null)}),s.jsxs("div",{className:"fixed z-50 bg-white border border-border-default py-1.5 min-w-[180px] rounded-xl shadow-modal menu",style:{left:ee.x,top:ee.y},children:[s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{P?.(ee.connectionId,ee.db),b(null)},children:[s.jsx(Ui,{size:14,className:"text-success-500"}),"新建表"]}),s.jsx("div",{className:"my-1.5 mx-2 border-t border-border-light"}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{xe?.(ee.connectionId,ee.db),b(null)},children:[s.jsx(Vr,{size:14,className:"text-text-muted"}),"刷新"]}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{c?.(ee.db),b(null)},children:[s.jsx(Yu,{size:14,className:"text-primary-500"}),"备份"]}),s.jsx("div",{className:"my-1.5 mx-2 border-t border-border-light"}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-danger-50 text-danger-600 flex items-center gap-3",onClick:()=>{confirm(`确定删除数据库 "${ee.db}"?`)&&p?.(ee.connectionId,ee.db),b(null)},children:[s.jsx(IE,{size:14}),"删除数据库"]})]})]}),U&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>J(null)}),s.jsxs("div",{className:"fixed z-50 bg-white border border-border-default py-1.5 min-w-[180px] rounded-xl shadow-modal menu",style:{left:U.x,top:U.y},children:[s.jsx("div",{className:"px-3 py-1.5 text-xs text-text-muted border-b border-border-light mb-1 font-mono",children:U.table}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{H(U.connectionId,U.db,U.table),J(null)},children:[s.jsx(zn,{size:14,className:"text-warning-500"}),"打开表"]}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{Se?.(U.connectionId,U.db,U.table),J(null)},children:[s.jsx(uo,{size:14,className:"text-teal-500"}),"设计表"]}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{Y?.(U.connectionId,U.db,U.table),J(null)},children:[s.jsx(Mi,{size:14,className:"text-primary-500"}),"重命名"]}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{ne?.(U.connectionId,U.db,U.table),J(null)},children:[s.jsx(US,{size:14,className:"text-info-500"}),"复制表"]}),s.jsx("div",{className:"my-1.5 mx-2 border-t border-border-light"}),s.jsx("div",{className:"px-3 py-1 text-[10px] text-text-muted uppercase",children:"导出"}),s.jsxs("button",{className:"w-full px-3 py-1.5 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{A?.(U.db,U.table,"excel"),J(null)},children:[s.jsx(yS,{size:14,className:"text-success-500"}),"Excel"]}),s.jsxs("button",{className:"w-full px-3 py-1.5 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{A?.(U.db,U.table,"sql"),J(null)},children:[s.jsx(qs,{size:14,className:"text-warning-500"}),"SQL"]}),s.jsxs("button",{className:"w-full px-3 py-1.5 text-left text-sm hover:bg-light-hover flex items-center gap-3 text-text-secondary",onClick:()=>{A?.(U.db,U.table,"csv"),J(null)},children:[s.jsx(ua,{size:14,className:"text-primary-500"}),"CSV"]}),s.jsx("div",{className:"my-1.5 mx-2 border-t border-border-light"}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-warning-50 text-warning-600 flex items-center gap-3",onClick:()=>{confirm(`确定清空表 "${U.table}"?`)&&Z?.(U.connectionId,U.db,U.table),J(null)},children:[s.jsx(Vr,{size:14}),"清空表"]}),s.jsxs("button",{className:"w-full px-3 py-2 text-left text-sm hover:bg-danger-50 text-danger-600 flex items-center gap-3",onClick:()=>{confirm(`确定删除表 "${U.table}"?`)&&D?.(U.connectionId,U.db,U.table),J(null)},children:[s.jsx(IE,{size:14}),"删除表"]})]})]})]})}const rO="modulepreload",sO=function(e,t){return new URL(e,t).href},yi={},TO=function(t,E,n){let r=Promise.resolve();if(E&&E.length>0){const l=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),i=a?.nonce||a?.getAttribute("nonce");r=Promise.allSettled(E.map(o=>{if(o=sO(o,n),o in yi)return;yi[o]=!0;const S=o.endsWith(".css"),N=S?'[rel="stylesheet"]':"";if(!!n)for(let L=l.length-1;L>=0;L--){const _=l[L];if(_.href===o&&(!S||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${N}`))return;const O=document.createElement("link");if(O.rel=S?"stylesheet":rO,S||(O.as="script"),O.crossOrigin="",O.href=o,i&&O.setAttribute("nonce",i),document.head.appendChild(O),S)return new Promise((L,_)=>{O.addEventListener("load",L),O.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${o}`)))})}))}function T(l){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=l,window.dispatchEvent(a),!a.defaultPrevented)throw l}return r.then(l=>{for(const a of l||[])a.status==="rejected"&&T(a.reason);return t().catch(T)})},x=e=>e.flatMap(lO),lO=e=>Ds(oO(e)).map(aO),aO=e=>e.replace(/ +/g," ").trim(),oO=e=>({type:"mandatory_block",items:Oo(e,0)[0]}),Oo=(e,t,E)=>{const n=[];for(;e[t];){const[r,T]=iO(e,t);if(n.push(r),t=T,e[t]==="|")t++;else if(e[t]==="}"||e[t]==="]"){if(E!==e[t])throw new Error(`Unbalanced parenthesis in: ${e}`);return t++,[n,t]}else if(t===e.length){if(E)throw new Error(`Unbalanced parenthesis in: ${e}`);return[n,t]}else throw new Error(`Unexpected "${e[t]}"`)}return[n,t]},iO=(e,t)=>{const E=[];for(;;){const[n,r]=RO(e,t);if(n)E.push(n),t=r;else break}return E.length===1?[E[0],t]:[{type:"concatenation",items:E},t]},RO=(e,t)=>{if(e[t]==="{")return AO(e,t+1);if(e[t]==="[")return SO(e,t+1);{let E="";for(;e[t]&&/[A-Za-z0-9_ ]/.test(e[t]);)E+=e[t],t++;return[E,t]}},AO=(e,t)=>{const[E,n]=Oo(e,t,"}");return[{type:"mandatory_block",items:E},n]},SO=(e,t)=>{const[E,n]=Oo(e,t,"]");return[{type:"optional_block",items:E},n]},Ds=e=>{if(typeof e=="string")return[e];if(e.type==="concatenation")return e.items.map(Ds).reduce(NO,[""]);if(e.type==="mandatory_block")return e.items.flatMap(Ds);if(e.type==="optional_block")return["",...e.items.flatMap(Ds)];throw new Error(`Unknown node type: ${e}`)},NO=(e,t)=>{const E=[];for(const n of e)for(const r of t)E.push(n+r);return E};var V;(function(e){e.QUOTED_IDENTIFIER="QUOTED_IDENTIFIER",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.VARIABLE="VARIABLE",e.RESERVED_DATA_TYPE="RESERVED_DATA_TYPE",e.RESERVED_PARAMETERIZED_DATA_TYPE="RESERVED_PARAMETERIZED_DATA_TYPE",e.RESERVED_KEYWORD="RESERVED_KEYWORD",e.RESERVED_FUNCTION_NAME="RESERVED_FUNCTION_NAME",e.RESERVED_KEYWORD_PHRASE="RESERVED_KEYWORD_PHRASE",e.RESERVED_DATA_TYPE_PHRASE="RESERVED_DATA_TYPE_PHRASE",e.RESERVED_SET_OPERATION="RESERVED_SET_OPERATION",e.RESERVED_CLAUSE="RESERVED_CLAUSE",e.RESERVED_SELECT="RESERVED_SELECT",e.RESERVED_JOIN="RESERVED_JOIN",e.ARRAY_IDENTIFIER="ARRAY_IDENTIFIER",e.ARRAY_KEYWORD="ARRAY_KEYWORD",e.CASE="CASE",e.END="END",e.WHEN="WHEN",e.ELSE="ELSE",e.THEN="THEN",e.LIMIT="LIMIT",e.BETWEEN="BETWEEN",e.AND="AND",e.OR="OR",e.XOR="XOR",e.OPERATOR="OPERATOR",e.COMMA="COMMA",e.ASTERISK="ASTERISK",e.PROPERTY_ACCESS_OPERATOR="PROPERTY_ACCESS_OPERATOR",e.OPEN_PAREN="OPEN_PAREN",e.CLOSE_PAREN="CLOSE_PAREN",e.LINE_COMMENT="LINE_COMMENT",e.BLOCK_COMMENT="BLOCK_COMMENT",e.DISABLE_COMMENT="DISABLE_COMMENT",e.NUMBER="NUMBER",e.NAMED_PARAMETER="NAMED_PARAMETER",e.QUOTED_PARAMETER="QUOTED_PARAMETER",e.NUMBERED_PARAMETER="NUMBERED_PARAMETER",e.POSITIONAL_PARAMETER="POSITIONAL_PARAMETER",e.CUSTOM_PARAMETER="CUSTOM_PARAMETER",e.DELIMITER="DELIMITER",e.EOF="EOF"})(V=V||(V={}));const vS=e=>({type:V.EOF,raw:"«EOF»",text:"«EOF»",start:e}),kn=vS(1/0),cn=e=>t=>t.type===e.type&&t.text===e.text,An={ARRAY:cn({text:"ARRAY",type:V.RESERVED_DATA_TYPE}),BY:cn({text:"BY",type:V.RESERVED_KEYWORD}),SET:cn({text:"SET",type:V.RESERVED_CLAUSE}),STRUCT:cn({text:"STRUCT",type:V.RESERVED_DATA_TYPE}),WINDOW:cn({text:"WINDOW",type:V.RESERVED_CLAUSE}),VALUES:cn({text:"VALUES",type:V.RESERVED_CLAUSE})},HS=e=>e===V.RESERVED_DATA_TYPE||e===V.RESERVED_KEYWORD||e===V.RESERVED_FUNCTION_NAME||e===V.RESERVED_KEYWORD_PHRASE||e===V.RESERVED_DATA_TYPE_PHRASE||e===V.RESERVED_CLAUSE||e===V.RESERVED_SELECT||e===V.RESERVED_SET_OPERATION||e===V.RESERVED_JOIN||e===V.ARRAY_KEYWORD||e===V.CASE||e===V.END||e===V.WHEN||e===V.ELSE||e===V.THEN||e===V.LIMIT||e===V.BETWEEN||e===V.AND||e===V.OR||e===V.XOR,IO=e=>e===V.AND||e===V.OR||e===V.XOR,uO=["KEYS.NEW_KEYSET","KEYS.ADD_KEY_FROM_RAW_BYTES","AEAD.DECRYPT_BYTES","AEAD.DECRYPT_STRING","AEAD.ENCRYPT","KEYS.KEYSET_CHAIN","KEYS.KEYSET_FROM_JSON","KEYS.KEYSET_TO_JSON","KEYS.ROTATE_KEYSET","KEYS.KEYSET_LENGTH","ANY_VALUE","ARRAY_AGG","AVG","CORR","COUNT","COUNTIF","COVAR_POP","COVAR_SAMP","MAX","MIN","ST_CLUSTERDBSCAN","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","VAR_POP","VAR_SAMP","ANY_VALUE","ARRAY_AGG","ARRAY_CONCAT_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","COUNTIF","LOGICAL_AND","LOGICAL_OR","MAX","MIN","STRING_AGG","SUM","APPROX_COUNT_DISTINCT","APPROX_QUANTILES","APPROX_TOP_COUNT","APPROX_TOP_SUM","ARRAY_CONCAT","ARRAY_LENGTH","ARRAY_TO_STRING","GENERATE_ARRAY","GENERATE_DATE_ARRAY","GENERATE_TIMESTAMP_ARRAY","ARRAY_REVERSE","OFFSET","SAFE_OFFSET","ORDINAL","SAFE_ORDINAL","BIT_COUNT","PARSE_BIGNUMERIC","PARSE_NUMERIC","SAFE_CAST","CURRENT_DATE","EXTRACT","DATE","DATE_ADD","DATE_SUB","DATE_DIFF","DATE_TRUNC","DATE_FROM_UNIX_DATE","FORMAT_DATE","LAST_DAY","PARSE_DATE","UNIX_DATE","CURRENT_DATETIME","DATETIME","EXTRACT","DATETIME_ADD","DATETIME_SUB","DATETIME_DIFF","DATETIME_TRUNC","FORMAT_DATETIME","LAST_DAY","PARSE_DATETIME","ERROR","EXTERNAL_QUERY","S2_CELLIDFROMPOINT","S2_COVERINGCELLIDS","ST_ANGLE","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_AZIMUTH","ST_BOUNDARY","ST_BOUNDINGBOX","ST_BUFFER","ST_BUFFERWITHTOLERANCE","ST_CENTROID","ST_CENTROID_AGG","ST_CLOSESTPOINT","ST_CLUSTERDBSCAN","ST_CONTAINS","ST_CONVEXHULL","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DUMP","ST_DWITHIN","ST_ENDPOINT","ST_EQUALS","ST_EXTENT","ST_EXTERIORRING","ST_GEOGFROM","ST_GEOGFROMGEOJSON","ST_GEOGFROMTEXT","ST_GEOGFROMWKB","ST_GEOGPOINT","ST_GEOGPOINTFROMGEOHASH","ST_GEOHASH","ST_GEOMETRYTYPE","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_INTERSECTSBOX","ST_ISCOLLECTION","ST_ISEMPTY","ST_LENGTH","ST_MAKELINE","ST_MAKEPOLYGON","ST_MAKEPOLYGONORIENTED","ST_MAXDISTANCE","ST_NPOINTS","ST_NUMGEOMETRIES","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SIMPLIFY","ST_SNAPTOGRID","ST_STARTPOINT","ST_TOUCHES","ST_UNION","ST_UNION_AGG","ST_WITHIN","ST_X","ST_Y","FARM_FINGERPRINT","MD5","SHA1","SHA256","SHA512","HLL_COUNT.INIT","HLL_COUNT.MERGE","HLL_COUNT.MERGE_PARTIAL","HLL_COUNT.EXTRACT","MAKE_INTERVAL","EXTRACT","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","JSON_EXTRACT","JSON_QUERY","JSON_EXTRACT_SCALAR","JSON_VALUE","JSON_EXTRACT_ARRAY","JSON_QUERY_ARRAY","JSON_EXTRACT_STRING_ARRAY","JSON_VALUE_ARRAY","TO_JSON_STRING","ABS","SIGN","IS_INF","IS_NAN","IEEE_DIVIDE","RAND","SQRT","POW","POWER","EXP","LN","LOG","LOG10","GREATEST","LEAST","DIV","SAFE_DIVIDE","SAFE_MULTIPLY","SAFE_NEGATE","SAFE_ADD","SAFE_SUBTRACT","MOD","ROUND","TRUNC","CEIL","CEILING","FLOOR","COS","COSH","ACOS","ACOSH","SIN","SINH","ASIN","ASINH","TAN","TANH","ATAN","ATANH","ATAN2","RANGE_BUCKET","FIRST_VALUE","LAST_VALUE","NTH_VALUE","LEAD","LAG","PERCENTILE_CONT","PERCENTILE_DISC","NET.IP_FROM_STRING","NET.SAFE_IP_FROM_STRING","NET.IP_TO_STRING","NET.IP_NET_MASK","NET.IP_TRUNC","NET.IPV4_FROM_INT64","NET.IPV4_TO_INT64","NET.HOST","NET.PUBLIC_SUFFIX","NET.REG_DOMAIN","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","NTILE","ROW_NUMBER","SESSION_USER","CORR","COVAR_POP","COVAR_SAMP","STDDEV_POP","STDDEV_SAMP","STDDEV","VAR_POP","VAR_SAMP","VARIANCE","ASCII","BYTE_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CODE_POINTS_TO_BYTES","CODE_POINTS_TO_STRING","CONCAT","CONTAINS_SUBSTR","ENDS_WITH","FORMAT","FROM_BASE32","FROM_BASE64","FROM_HEX","INITCAP","INSTR","LEFT","LENGTH","LPAD","LOWER","LTRIM","NORMALIZE","NORMALIZE_AND_CASEFOLD","OCTET_LENGTH","REGEXP_CONTAINS","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","REPEAT","REVERSE","RIGHT","RPAD","RTRIM","SAFE_CONVERT_BYTES_TO_STRING","SOUNDEX","SPLIT","STARTS_WITH","STRPOS","SUBSTR","SUBSTRING","TO_BASE32","TO_BASE64","TO_CODE_POINTS","TO_HEX","TRANSLATE","TRIM","UNICODE","UPPER","CURRENT_TIME","TIME","EXTRACT","TIME_ADD","TIME_SUB","TIME_DIFF","TIME_TRUNC","FORMAT_TIME","PARSE_TIME","CURRENT_TIMESTAMP","EXTRACT","STRING","TIMESTAMP","TIMESTAMP_ADD","TIMESTAMP_SUB","TIMESTAMP_DIFF","TIMESTAMP_TRUNC","FORMAT_TIMESTAMP","PARSE_TIMESTAMP","TIMESTAMP_SECONDS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UNIX_SECONDS","UNIX_MILLIS","UNIX_MICROS","GENERATE_UUID","COALESCE","IF","IFNULL","NULLIF","AVG","BIT_AND","BIT_OR","BIT_XOR","CORR","COUNT","COVAR_POP","COVAR_SAMP","EXACT_COUNT_DISTINCT","FIRST","GROUP_CONCAT","GROUP_CONCAT_UNQUOTED","LAST","MAX","MIN","NEST","NTH","QUANTILES","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","TOP","UNIQUE","VARIANCE","VAR_POP","VAR_SAMP","BIT_COUNT","BOOLEAN","BYTES","CAST","FLOAT","HEX_STRING","INTEGER","STRING","COALESCE","GREATEST","IFNULL","IS_INF","IS_NAN","IS_EXPLICITLY_DEFINED","LEAST","NVL","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE","DATE_ADD","DATEDIFF","DAY","DAYOFWEEK","DAYOFYEAR","FORMAT_UTC_USEC","HOUR","MINUTE","MONTH","MSEC_TO_TIMESTAMP","NOW","PARSE_UTC_USEC","QUARTER","SEC_TO_TIMESTAMP","SECOND","STRFTIME_UTC_USEC","TIME","TIMESTAMP","TIMESTAMP_TO_MSEC","TIMESTAMP_TO_SEC","TIMESTAMP_TO_USEC","USEC_TO_TIMESTAMP","UTC_USEC_TO_DAY","UTC_USEC_TO_HOUR","UTC_USEC_TO_MONTH","UTC_USEC_TO_WEEK","UTC_USEC_TO_YEAR","WEEK","YEAR","FORMAT_IP","PARSE_IP","FORMAT_PACKED_IP","PARSE_PACKED_IP","JSON_EXTRACT","JSON_EXTRACT_SCALAR","ABS","ACOS","ACOSH","ASIN","ASINH","ATAN","ATANH","ATAN2","CEIL","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG2","LOG10","PI","POW","RADIANS","RAND","ROUND","SIN","SINH","SQRT","TAN","TANH","REGEXP_MATCH","REGEXP_EXTRACT","REGEXP_REPLACE","CONCAT","INSTR","LEFT","LENGTH","LOWER","LPAD","LTRIM","REPLACE","RIGHT","RPAD","RTRIM","SPLIT","SUBSTR","UPPER","TABLE_DATE_RANGE","TABLE_DATE_RANGE_STRICT","TABLE_QUERY","HOST","DOMAIN","TLD","AVG","COUNT","MAX","MIN","STDDEV","SUM","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","CURRENT_USER","EVERY","FROM_BASE64","HASH","FARM_FINGERPRINT","IF","POSITION","SHA1","SOME","TO_BASE64","BQ.JOBS.CANCEL","BQ.REFRESH_MATERIALIZED_VIEW","OPTIONS","PIVOT","UNPIVOT"],OO=["ALL","AND","ANY","AS","ASC","ASSERT_ROWS_MODIFIED","AT","BETWEEN","BY","CASE","CAST","COLLATE","CONTAINS","CREATE","CROSS","CUBE","CURRENT","DEFAULT","DEFINE","DESC","DISTINCT","ELSE","END","ENUM","ESCAPE","EXCEPT","EXCLUDE","EXISTS","EXTRACT","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","GROUP","GROUPING","GROUPS","HASH","HAVING","IF","IGNORE","IN","INNER","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LIMIT","LOOKUP","MERGE","NATURAL","NEW","NO","NOT","NULL","NULLS","OF","ON","OR","ORDER","OUTER","OVER","PARTITION","PRECEDING","PROTO","RANGE","RECURSIVE","RESPECT","RIGHT","ROLLUP","ROWS","SELECT","SET","SOME","TABLE","TABLESAMPLE","THEN","TO","TREAT","TRUE","UNBOUNDED","UNION","UNNEST","USING","WHEN","WHERE","WINDOW","WITH","WITHIN","SAFE","LIKE","COPY","CLONE","IN","OUT","INOUT","RETURNS","LANGUAGE","CASCADE","RESTRICT","DETERMINISTIC"],cO=["ARRAY","BOOL","BYTES","DATE","DATETIME","GEOGRAPHY","INTERVAL","INT64","INT","SMALLINT","INTEGER","BIGINT","TINYINT","BYTEINT","NUMERIC","DECIMAL","BIGNUMERIC","BIGDECIMAL","FLOAT64","STRING","STRUCT","TIME","TIMEZONE"],CO=x(["SELECT [ALL | DISTINCT] [AS STRUCT | AS VALUE]"]),dO=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","OMIT RECORD IF","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [THEN]","UPDATE SET","CLUSTER BY","FOR SYSTEM_TIME AS OF","WITH CONNECTION","WITH PARTITION COLUMNS","REMOTE WITH CONNECTION"]),gi=x(["CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"]),ZT=x(["CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE [FROM]","DROP [SNAPSHOT | EXTERNAL] TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME TO","ALTER COLUMN [IF EXISTS]","SET DEFAULT COLLATE","SET OPTIONS","DROP NOT NULL","SET DATA TYPE","ALTER SCHEMA [IF EXISTS]","ALTER [MATERIALIZED] VIEW [IF EXISTS]","ALTER BI_CAPACITY","TRUNCATE TABLE","CREATE SCHEMA [IF NOT EXISTS]","DEFAULT COLLATE","CREATE [OR REPLACE] [TEMP|TEMPORARY|TABLE] FUNCTION [IF NOT EXISTS]","CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] ROW ACCESS POLICY [IF NOT EXISTS]","GRANT TO","FILTER USING","CREATE CAPACITY","AS JSON","CREATE RESERVATION","CREATE ASSIGNMENT","CREATE SEARCH INDEX [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","DROP [MATERIALIZED] VIEW [IF EXISTS]","DROP [TABLE] FUNCTION [IF EXISTS]","DROP PROCEDURE [IF EXISTS]","DROP ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","DROP CAPACITY [IF EXISTS]","DROP RESERVATION [IF EXISTS]","DROP ASSIGNMENT [IF EXISTS]","DROP SEARCH INDEX [IF EXISTS]","DROP [IF EXISTS]","GRANT","REVOKE","DECLARE","EXECUTE IMMEDIATE","LOOP","END LOOP","REPEAT","END REPEAT","WHILE","END WHILE","BREAK","LEAVE","CONTINUE","ITERATE","FOR","END FOR","BEGIN","BEGIN TRANSACTION","COMMIT TRANSACTION","ROLLBACK TRANSACTION","RAISE","RETURN","CALL","ASSERT","EXPORT DATA"]),LO=x(["UNION {ALL | DISTINCT}","EXCEPT DISTINCT","INTERSECT DISTINCT"]),_O=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),fO=x(["TABLESAMPLE SYSTEM","ANY TYPE","ALL COLUMNS","NOT DETERMINISTIC","{ROWS | RANGE} BETWEEN","IS [NOT] DISTINCT FROM"]),pO=x([]),mO={name:"bigquery",tokenizerOptions:{reservedSelect:CO,reservedClauses:[...dO,...ZT,...gi],reservedSetOperations:LO,reservedJoins:_O,reservedKeywordPhrases:fO,reservedDataTypePhrases:pO,reservedKeywords:OO,reservedDataTypes:cO,reservedFunctionNames:uO,extraParens:["[]"],stringTypes:[{quote:'""".."""',prefixes:["R","B","RB","BR"]},{quote:"'''..'''",prefixes:["R","B","RB","BR"]},'""-bs',"''-bs",{quote:'""-raw',prefixes:["R","B","RB","BR"],requirePrefix:!0},{quote:"''-raw",prefixes:["R","B","RB","BR"],requirePrefix:!0}],identTypes:["``"],identChars:{dashes:!0},paramTypes:{positional:!0,named:["@"],quoted:["@"]},variableTypes:[{regex:String.raw`@@\w+`}],lineCommentTypes:["--","#"],operators:["&","|","^","~",">>","<<","||","=>"],postProcess:DO},formatOptions:{onelineClauses:[...gi,...ZT],tabularOnelineClauses:ZT}};function DO(e){return PO(hO(e))}function PO(e){let t=kn;return e.map(E=>E.text==="OFFSET"&&t.text==="["?(t=E,Object.assign(Object.assign({},E),{type:V.RESERVED_FUNCTION_NAME})):(t=E,E))}function hO(e){var t;const E=[];for(let n=0;nt=>t.type===V.IDENTIFIER||t.type===V.COMMA?t[e]+" ":t[e];function MO(e,t){let E=0;for(let n=t;n"?E--:r.text===">>"&&(E-=2),E===0)return n}return e.length-1}const UO=["ARRAY_AGG","AVG","CORRELATION","COUNT","COUNT_BIG","COVARIANCE","COVARIANCE_SAMP","CUME_DIST","GROUPING","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_ICPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_SAMP","SUM","VARIANCE","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","AGE","ARRAY_DELETE","ARRAY_FIRST","ARRAY_LAST","ARRAY_NEXT","ARRAY_PRIOR","ASCII","ASCII_STR","ASIN","ATAN","ATAN2","ATANH","BITAND","BITANDNOT","BITOR","BITXOR","BITNOT","BPCHAR","BSON_TO_JSON","BTRIM","CARDINALITY","CEILING","CEIL","CHARACTER_LENGTH","CHR","COALESCE","COLLATION_KEY","COLLATION_KEY_BIT","COMPARE_DECFLOAT","CONCAT","COS","COSH","COT","CURSOR_ROWCOUNT","DATAPARTITIONNUM","DATE_PART","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFWEEK_ISO","DAYOFYEAR","DAYS","DAYS_BETWEEN","DAYS_TO_END_OF_MONTH","DBPARTITIONNUM","DECFLOAT","DECFLOAT_FORMAT","DECODE","DECRYPT_BIN","DECRYPT_CHAR","DEGREES","DEREF","DIFFERENCE","DIGITS","DOUBLE_PRECISION","EMPTY_BLOB","EMPTY_CLOB","EMPTY_DBCLOB","EMPTY_NCLOB","ENCRYPT","EVENT_MON_STATE","EXP","EXTRACT","FIRST_DAY","FLOOR","FROM_UTC_TIMESTAMP","GENERATE_UNIQUE","GETHINT","GREATEST","HASH","HASH4","HASH8","HASHEDVALUE","HEX","HEXTORAW","HOUR","HOURS_BETWEEN","IDENTITY_VAL_LOCAL","IFNULL","INITCAP","INSERT","INSTR","INSTR2","INSTR4","INSTRB","INTNAND","INTNOR","INTNXOR","INTNNOT","ISNULL","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_VALUE","JULIAN_DAY","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LENGTH2","LENGTH4","LENGTHB","LN","LOCATE","LOCATE_IN_STRING","LOG10","LONG_VARCHAR","LONG_VARGRAPHIC","LOWER","LPAD","LTRIM","MAX","MAX_CARDINALITY","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MINUTES_BETWEEN","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MULTIPLY_ALT","NEXT_DAY","NEXT_MONTH","NEXT_QUARTER","NEXT_WEEK","NEXT_YEAR","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARAMETER","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","QUOTE_IDENT","QUOTE_LITERAL","RADIANS","RAISE_ERROR","RAND","RANDOM","RAWTOHEX","REC2XML","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH_COUNT","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RID_BIT","RIGHT","ROUND","ROUND_TIMESTAMP","RPAD","RTRIM","SECLABEL","SECLABEL_BY_NAME","SECLABEL_TO_CHAR","SECOND","SECONDS_BETWEEN","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTR2","SUBSTR4","SUBSTRB","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","THIS_MONTH","THIS_QUARTER","THIS_WEEK","THIS_YEAR","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF","TIMEZONE","TO_CHAR","TO_CLOB","TO_DATE","TO_HEX","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_UTC_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM","TRIM_ARRAY","TRUNC_TIMESTAMP","TRUNCATE","TRUNC","TYPE_ID","TYPE_NAME","TYPE_SCHEMA","UCASE","UNICODE_STR","UPPER","VALUE","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT","VARCHAR_FORMAT_BIT","VERIFY_GROUP_FOR_USER","VERIFY_ROLE_FOR_USER","VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER","WEEK","WEEK_ISO","WEEKS_BETWEEN","WIDTH_BUCKET","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLQUERY","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XMLXSROBJECTID","XSLTRANSFORM","YEAR","YEARS_BETWEEN","YMD_BETWEEN","BASE_TABLE","JSON_TABLE","UNNEST","XMLTABLE","RANK","DENSE_RANK","NTILE","LAG","LEAD","ROW_NUMBER","FIRST_VALUE","LAST_VALUE","NTH_VALUE","RATIO_TO_REPORT","CAST"],xO=["ACTIVATE","ADD","AFTER","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","AS","ASENSITIVE","ASSOCIATE","ASUTIME","AT","ATTRIBUTES","AUDIT","AUTHORIZATION","AUX","AUXILIARY","BEFORE","BEGIN","BETWEEN","BINARY","BUFFERPOOL","BY","CACHE","CALL","CALLED","CAPTURE","CARDINALITY","CASCADED","CASE","CAST","CHECK","CLONE","CLOSE","CLUSTER","COLLECTION","COLLID","COLUMN","COMMENT","COMMIT","CONCAT","CONDITION","CONNECT","CONNECTION","CONSTRAINT","CONTAINS","CONTINUE","COUNT","COUNT_BIG","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_LC_CTYPE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATA","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFINITION","DELETE","DENSERANK","DENSE_RANK","DESCRIBE","DESCRIPTOR","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DSSIZE","DYNAMIC","EACH","EDITPROC","ELSE","ELSEIF","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ERASE","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTENDED","EXTERNAL","EXTRACT","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST1","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GRAPHIC","GROUP","HANDLER","HASH","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IMMEDIATE","IMPORT","IN","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDICATOR","INDICATORS","INF","INFINITY","INHERIT","INNER","INOUT","INSENSITIVE","INSERT","INTEGRITY","INTERSECT","INTO","IS","ISNULL","ISOBID","ISOLATION","ITERATE","JAR","JAVA","JOIN","KEEP","KEY","LABEL","LANGUAGE","LAST3","LATERAL","LC_CTYPE","LEAVE","LEFT","LIKE","LIMIT","LINKTYPE","LOCAL","LOCALDATE","LOCALE","LOCALTIME","LOCALTIMESTAMP","LOCATOR","LOCATORS","LOCK","LOCKMAX","LOCKSIZE","LOOP","MAINTAINED","MATERIALIZED","MAXVALUE","MICROSECOND","MICROSECONDS","MINUTE","MINUTES","MINVALUE","MODE","MODIFIES","MONTH","MONTHS","NAN","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT2","NOTNULL","NULL","NULLS","NUMPARTS","OBID","OF","OFF","OFFSET","OLD","OLD_TABLE","ON","OPEN","OPTIMIZATION","OPTIMIZE","OPTION","OR","ORDER","OUT","OUTER","OVER","OVERRIDING","PACKAGE","PADDED","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSWORD","PATH","PERCENT","PIECESIZE","PLAN","POSITION","PRECISION","PREPARE","PREVVAL","PRIMARY","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PSID","PUBLIC","QUERY","QUERYNO","RANGE","RANK","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESTRICT","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNS","REVOKE","RIGHT","ROLE","ROLLBACK","ROUND_CEILING","ROUND_DOWN","ROUND_FLOOR","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_UP","ROUND_UP","ROUTINE","ROW","ROWNUMBER","ROWS","ROWSET","ROW_NUMBER","RRN","RUN","SAVEPOINT","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURITY","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","STACKED","STANDARD","START","STARTING","STATEMENT","STATIC","STATMENT","STAY","STOGROUP","STORES","STYLE","SUBSTRING","SUMMARY","SYNONYM","SYSFUN","SYSIBM","SYSPROC","SYSTEM","SYSTEM_USER","TABLE","TABLESPACE","THEN","TO","TRANSACTION","TRIGGER","TRIM","TRUNCATE","TYPE","UNDO","UNION","UNIQUE","UNTIL","UPDATE","USAGE","USER","USING","VALIDPROC","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VIEW","VOLATILE","VOLUMES","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHOUT","WLM","WRITE","XMLELEMENT","XMLEXISTS","XMLNAMESPACES","YEAR","YEARS"],yO=["ARRAY","BIGINT","BINARY","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATE","DATETIME","DBCLOB","DEC","DECIMAL","DOUBLE","DOUBLE PRECISION","FLOAT","FLOAT4","FLOAT8","GRAPHIC","INT","INT2","INT4","INT8","INTEGER","INTERVAL","LONG VARCHAR","LONG VARGRAPHIC","NCHAR","NCHR","NCLOB","NVARCHAR","NUMERIC","SMALLINT","REAL","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC"],gO=x(["SELECT [ALL | DISTINCT]"]),GO=x(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH NEXT","FOR UPDATE [OF]","FOR {READ | FETCH} ONLY","FOR {RR | CS | UR | RS} [USE AND KEEP {SHARE | UPDATE | EXCLUSIVE} LOCKS]","WAIT FOR OUTCOME","SKIP LOCKED DATA","INTO","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT"]),vi=x(["CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]"]),qT=x(["CREATE [OR REPLACE] VIEW","UPDATE","WHERE CURRENT OF","WITH {RR | RS | CS | UR}","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME COLUMN","ALTER [COLUMN]","SET DATA TYPE","SET NOT NULL","DROP {DEFAULT | GENERATED | NOT NULL}","TRUNCATE [TABLE]","ALLOCATE","ALTER AUDIT POLICY","ALTER BUFFERPOOL","ALTER DATABASE PARTITION GROUP","ALTER DATABASE","ALTER EVENT MONITOR","ALTER FUNCTION","ALTER HISTOGRAM TEMPLATE","ALTER INDEX","ALTER MASK","ALTER METHOD","ALTER MODULE","ALTER NICKNAME","ALTER PACKAGE","ALTER PERMISSION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SECURITY LABEL COMPONENT","ALTER SECURITY POLICY","ALTER SEQUENCE","ALTER SERVER","ALTER SERVICE CLASS","ALTER STOGROUP","ALTER TABLESPACE","ALTER THRESHOLD","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER TYPE","ALTER USAGE LIST","ALTER USER MAPPING","ALTER VIEW","ALTER WORK ACTION SET","ALTER WORK CLASS SET","ALTER WORKLOAD","ALTER WRAPPER","ALTER XSROBJECT","ALTER STOGROUP","ALTER TABLESPACE","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER VIEW","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","AUDIT","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON","COMMIT [WORK]","CONNECT","CREATE [OR REPLACE] [PUBLIC] ALIAS","CREATE AUDIT POLICY","CREATE BUFFERPOOL","CREATE DATABASE PARTITION GROUP","CREATE EVENT MONITOR","CREATE [OR REPLACE] FUNCTION","CREATE FUNCTION MAPPING","CREATE HISTOGRAM TEMPLATE","CREATE [UNIQUE] INDEX","CREATE INDEX EXTENSION","CREATE [OR REPLACE] MASK","CREATE [SPECIFIC] METHOD","CREATE [OR REPLACE] MODULE","CREATE [OR REPLACE] NICKNAME","CREATE [OR REPLACE] PERMISSION","CREATE [OR REPLACE] PROCEDURE","CREATE ROLE","CREATE SCHEMA","CREATE SECURITY LABEL [COMPONENT]","CREATE SECURITY POLICY","CREATE [OR REPLACE] SEQUENCE","CREATE SERVICE CLASS","CREATE SERVER","CREATE STOGROUP","CREATE SYNONYM","CREATE [LARGE | REGULAR | {SYSTEM | USER} TEMPORARY] TABLESPACE","CREATE THRESHOLD","CREATE {TRANSFORM | TRANSFORMS} FOR","CREATE [OR REPLACE] TRIGGER","CREATE TRUSTED CONTEXT","CREATE [OR REPLACE] TYPE","CREATE TYPE MAPPING","CREATE USAGE LIST","CREATE USER MAPPING FOR","CREATE [OR REPLACE] VARIABLE","CREATE WORK ACTION SET","CREATE WORK CLASS SET","CREATE WORKLOAD","CREATE WRAPPER","DECLARE","DECLARE GLOBAL TEMPORARY TABLE","DESCRIBE [INPUT | OUTPUT]","DISCONNECT","DROP [PUBLIC] ALIAS","DROP AUDIT POLICY","DROP BUFFERPOOL","DROP DATABASE PARTITION GROUP","DROP EVENT MONITOR","DROP [SPECIFIC] FUNCTION","DROP FUNCTION MAPPING","DROP HISTOGRAM TEMPLATE","DROP INDEX [EXTENSION]","DROP MASK","DROP [SPECIFIC] METHOD","DROP MODULE","DROP NICKNAME","DROP PACKAGE","DROP PERMISSION","DROP [SPECIFIC] PROCEDURE","DROP ROLE","DROP SCHEMA","DROP SECURITY LABEL [COMPONENT]","DROP SECURITY POLICY","DROP SEQUENCE","DROP SERVER","DROP SERVICE CLASS","DROP STOGROUP","DROP TABLE HIERARCHY","DROP {TABLESPACE | TABLESPACES}","DROP {TRANSFORM | TRANSFORMS}","DROP THRESHOLD","DROP TRIGGER","DROP TRUSTED CONTEXT","DROP TYPE [MAPPING]","DROP USAGE LIST","DROP USER MAPPING FOR","DROP VARIABLE","DROP VIEW [HIERARCHY]","DROP WORK {ACTION | CLASS} SET","DROP WORKLOAD","DROP WRAPPER","DROP XSROBJECT","END DECLARE SECTION","EXECUTE [IMMEDIATE]","EXPLAIN {PLAN [SECTION] | ALL}","FETCH [FROM]","FLUSH {BUFFERPOOL | BUFFERPOOLS} ALL","FLUSH EVENT MONITOR","FLUSH FEDERATED CACHE","FLUSH OPTIMIZATION PROFILE CACHE","FLUSH PACKAGE CACHE [DYNAMIC]","FLUSH AUTHENTICATION CACHE [FOR ALL]","FREE LOCATOR","GET DIAGNOSTICS","GOTO","GRANT","INCLUDE","ITERATE","LEAVE","LOCK TABLE","LOOP","OPEN","PIPE","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX | STOGROUP | TABLESPACE]","REPEAT","RESIGNAL","RETURN","REVOKE","ROLLBACK [WORK] [TO SAVEPOINT]","SAVEPOINT","SET COMPILATION ENVIRONMENT","SET CONNECTION","SET CURRENT","SET ENCRYPTION PASSWORD","SET EVENT MONITOR STATE","SET INTEGRITY","SET PASSTHRU","SET PATH","SET ROLE","SET SCHEMA","SET SERVER OPTION","SET {SESSION AUTHORIZATION | SESSION_USER}","SET USAGE LIST","SIGNAL","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}","WHILE"]),vO=x(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),HO=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),BO=x(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),FO=x([]),YO={name:"db2",tokenizerOptions:{reservedSelect:gO,reservedClauses:[...GO,...vi,...qT],reservedSetOperations:vO,reservedJoins:HO,reservedKeywordPhrases:BO,reservedDataTypePhrases:FO,reservedKeywords:xO,reservedDataTypes:yO,reservedFunctionNames:UO,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N","U&"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","%","|","&","^","~","¬=","¬>","¬<","!>","!<","^=","^>","^<","||","->","=>"]},formatOptions:{onelineClauses:[...vi,...qT],tabularOnelineClauses:qT}},wO=["ARRAY_AGG","AVG","CORR","CORRELATION","COUNT","COUNT_BIG","COVAR_POP","COVARIANCE","COVAR","COVAR_SAMP","COVARIANCE_SAMP","EVERY","GROUPING","JSON_ARRAYAGG","JSON_OBJECTAGG","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","SOME","STDDEV_POP","STDDEV","STDDEV_SAMP","SUM","VAR_POP","VARIANCE","VAR","VAR_SAMP","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","ANTILOG","ARRAY_MAX_CARDINALITY","ARRAY_TRIM","ASCII","ASIN","ATAN","ATAN2","ATANH","BASE64_DECODE","BASE64_ENCODE","BIT_LENGTH","BITAND","BITANDNOT","BITNOT","BITOR","BITXOR","BSON_TO_JSON","CARDINALITY","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","COALESCE","COMPARE_DECFLOAT","CONCAT","CONTAINS","COS","COSH","COT","CURDATE","CURTIME","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK_ISO","DAYOFWEEK","DAYOFYEAR","DAYS","DBPARTITIONNAME","DBPARTITIONNUM","DECFLOAT_FORMAT","DECFLOAT_SORTKEY","DECRYPT_BINARY","DECRYPT_BIT","DECRYPT_CHAR","DECRYPT_DB","DEGREES","DIFFERENCE","DIGITS","DLCOMMENT","DLLINKTYPE","DLURLCOMPLETE","DLURLPATH","DLURLPATHONLY","DLURLSCHEME","DLURLSERVER","DLVALUE","DOUBLE_PRECISION","DOUBLE","ENCRPYT","ENCRYPT_AES","ENCRYPT_AES256","ENCRYPT_RC2","ENCRYPT_TDES","EXP","EXTRACT","FIRST_DAY","FLOOR","GENERATE_UNIQUE","GET_BLOB_FROM_FILE","GET_CLOB_FROM_FILE","GET_DBCLOB_FROM_FILE","GET_XML_FILE","GETHINT","GREATEST","HASH_MD5","HASH_ROW","HASH_SHA1","HASH_SHA256","HASH_SHA512","HASH_VALUES","HASHED_VALUE","HEX","HEXTORAW","HOUR","HTML_ENTITY_DECODE","HTML_ENTITY_ENCODE","HTTP_DELETE_BLOB","HTTP_DELETE","HTTP_GET_BLOB","HTTP_GET","HTTP_PATCH_BLOB","HTTP_PATCH","HTTP_POST_BLOB","HTTP_POST","HTTP_PUT_BLOB","HTTP_PUT","IDENTITY_VAL_LOCAL","IFNULL","INSERT","INSTR","INTERPRET","ISFALSE","ISNOTFALSE","ISNOTTRUE","ISTRUE","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_UPDATE","JSON_VALUE","JULIAN_DAY","LAND","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LN","LNOT","LOCATE_IN_STRING","LOCATE","LOG10","LOR","LOWER","LPAD","LTRIM","MAX_CARDINALITY","MAX","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MQREAD","MQREADCLOB","MQRECEIVE","MQRECEIVECLOB","MQSEND","MULTIPLY_ALT","NEXT_DAY","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","OCTET_LENGTH","OVERLAY","PI","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","RADIANS","RAISE_ERROR","RANDOM","RAND","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RIGHT","ROUND_TIMESTAMP","ROUND","RPAD","RRN","RTRIM","SCORE","SECOND","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF_BIG","TIMESTAMPDIFF","TO_CHAR","TO_CLOB","TO_DATE","TO_NUMBER","TO_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM_ARRAY","TRIM","TRUNC_TIMESTAMP","TRUNC","TRUNCATE","UCASE","UPPER","URL_DECODE","URL_ENCODE","VALUE","VARBINARY_FORMAT","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT_BINARY","VARCHAR_FORMAT","VERIFY_GROUP_FOR_USER","WEEK_ISO","WEEK","WRAP","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XOR","XSLTRANSFORM","YEAR","ZONED","BASE_TABLE","HTTP_DELETE_BLOB_VERBOSE","HTTP_DELETE_VERBOSE","HTTP_GET_BLOB_VERBOSE","HTTP_GET_VERBOSE","HTTP_PATCH_BLOB_VERBOSE","HTTP_PATCH_VERBOSE","HTTP_POST_BLOB_VERBOSE","HTTP_POST_VERBOSE","HTTP_PUT_BLOB_VERBOSE","HTTP_PUT_VERBOSE","JSON_TABLE","MQREADALL","MQREADALLCLOB","MQRECEIVEALL","MQRECEIVEALLCLOB","XMLTABLE","UNPACK","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","RATIO_TO_REPORT","ROW_NUMBER","CAST"],bO=["ABSENT","ACCORDING","ACCTNG","ACTION","ACTIVATE","ADD","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","APPEND","APPLNAME","ARRAY","ARRAY_AGG","ARRAY_TRIM","AS","ASC","ASENSITIVE","ASSOCIATE","ATOMIC","ATTACH","ATTRIBUTES","AUTHORIZATION","AUTONOMOUS","BEFORE","BEGIN","BETWEEN","BIND","BSON","BUFFERPOOL","BY","CACHE","CALL","CALLED","CARDINALITY","CASE","CAST","CHECK","CL","CLOSE","CLUSTER","COLLECT","COLLECTION","COLUMN","COMMENT","COMMIT","COMPACT","COMPARISONS","COMPRESS","CONCAT","CONCURRENT","CONDITION","CONNECT","CONNECT_BY_ROOT","CONNECTION","CONSTANT","CONSTRAINT","CONTAINS","CONTENT","CONTINUE","COPY","COUNT","COUNT_BIG","CREATE","CREATEIN","CROSS","CUBE","CUME_DIST","CURRENT","CURRENT_DATE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEACTIVATE","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFER","DEFINE","DEFINITION","DELETE","DELETING","DENSE_RANK","DENSERANK","DESC","DESCRIBE","DESCRIPTOR","DETACH","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DYNAMIC","EACH","ELSE","ELSEIF","EMPTY","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ENFORCED","ERROR","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTEND","EXTERNAL","EXTRACT","FALSE","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST_VALUE","FOR","FOREIGN","FORMAT","FREE","FREEPAGE","FROM","FULL","FUNCTION","GBPCACHE","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GROUP","HANDLER","HASH","HASH_ROW","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IGNORE","IMMEDIATE","IMPLICITLY","IN","INCLUDE","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDEXBP","INDICATOR","INF","INFINITY","INHERIT","INLINE","INNER","INOUT","INSENSITIVE","INSERT","INSERTING","INTEGRITY","INTERPRET","INTERSECT","INTO","IS","ISNULL","ISOLATION","ITERATE","JAVA","JOIN","JSON","JSON_ARRAY","JSON_ARRAYAGG","JSON_EXISTS","JSON_OBJECT","JSON_OBJECTAGG","JSON_QUERY","JSON_TABLE","JSON_VALUE","KEEP","KEY","KEYS","LABEL","LAG","LANGUAGE","LAST_VALUE","LATERAL","LEAD","LEAVE","LEFT","LEVEL2","LIKE","LIMIT","LINKTYPE","LISTAGG","LOCAL","LOCALDATE","LOCALTIME","LOCALTIMESTAMP","LOCATION","LOCATOR","LOCK","LOCKSIZE","LOG","LOGGED","LOOP","MAINTAINED","MASK","MATCHED","MATERIALIZED","MAXVALUE","MERGE","MICROSECOND","MICROSECONDS","MINPCTUSED","MINUTE","MINUTES","MINVALUE","MIRROR","MIXED","MODE","MODIFIES","MONTH","MONTHS","NAMESPACE","NAN","NATIONAL","NCHAR","NCLOB","NESTED","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT","NOTNULL","NTH_VALUE","NTILE","NULL","NULLS","NVARCHAR","OBID","OBJECT","OF","OFF","OFFSET","OLD","OLD_TABLE","OMIT","ON","ONLY","OPEN","OPTIMIZE","OPTION","OR","ORDER","ORDINALITY","ORGANIZE","OUT","OUTER","OVER","OVERLAY","OVERRIDING","PACKAGE","PADDED","PAGE","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSING","PASSWORD","PATH","PCTFREE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PERIOD","PERMISSION","PIECESIZE","PIPE","PLAN","POSITION","PREPARE","PREVVAL","PRIMARY","PRIOR","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PROGRAMID","QUERY","RANGE","RANK","RATIO_TO_REPORT","RCDFMT","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","REGEXP_LIKE","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNING","RETURNS","REVOKE","RID","RIGHT","ROLLBACK","ROLLUP","ROUTINE","ROW","ROW_NUMBER","ROWNUMBER","ROWS","RRN","RUN","SAVEPOINT","SBCS","SCALAR","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURED","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SKIP","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","SQLIND_DEFAULT","SQLIND_UNASSIGNED","STACKED","START","STARTING","STATEMENT","STATIC","STOGROUP","SUBSTRING","SUMMARY","SYNONYM","SYSTEM_TIME","SYSTEM_USER","TABLE","TABLESPACE","TABLESPACES","TAG","THEN","THREADSAFE","TO","TRANSACTION","TRANSFER","TRIGGER","TRIM","TRIM_ARRAY","TRUE","TRUNCATE","TRY_CAST","TYPE","UNDO","UNION","UNIQUE","UNIT","UNKNOWN","UNNEST","UNTIL","UPDATE","UPDATING","URI","USAGE","USE","USER","USERID","USING","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VERSIONING","VIEW","VOLATILE","WAIT","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHIN","WITHOUT","WRAPPED","WRAPPER","WRITE","WRKSTNNAME","XMLAGG","XMLATTRIBUTES","XMLCAST","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLGROUP","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTABLE","XMLTEXT","XMLVALIDATE","XSLTRANSFORM","XSROBJECT","YEAR","YEARS","YES","ZONE"],VO=["ARRAY","BIGINT","BINARY","BIT","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATA","DATALINK","DATE","DBCLOB","DECFLOAT","DECIMAL","DEC","DOUBLE","DOUBLE PRECISION","FLOAT","GRAPHIC","INT","INTEGER","LONG","NUMERIC","REAL","ROWID","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC","XML"],WO=x(["SELECT [ALL | DISTINCT]"]),XO=x(["WITH [RECURSIVE]","INTO","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","FOR READ ONLY","OPTIMIZE FOR","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","DELETE","INSERT","FOR SYSTEM NAME"]),Hi=x(["CREATE [OR REPLACE] TABLE"]),el=x(["CREATE [OR REPLACE] [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","WITH {NC | RR | RS | CS | UR}","DELETE FROM","DROP TABLE","ALTER TABLE","ADD [COLUMN]","ALTER [COLUMN]","DROP [COLUMN]","SET DATA TYPE","SET {GENERATED ALWAYS | GENERATED BY DEFAULT}","SET NOT NULL","SET {NOT HIDDEN | IMPLICITLY HIDDEN}","SET FIELDPROC","DROP {DEFAULT | NOT NULL | GENERATED | IDENTITY | ROW CHANGE TIMESTAMP | FIELDPROC}","TRUNCATE [TABLE]","SET [CURRENT] SCHEMA","SET CURRENT_SCHEMA","ALLOCATE CURSOR","ALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL] SQL","ALTER [SPECIFIC] {FUNCTION | PROCEDURE}","ALTER {MASK | PERMISSION | SEQUENCE | TRIGGER}","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PARAMETER | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","COMMENT ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON PARAMETER SPECIFIC {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON [TABLE FUNCTION] RETURN COLUMN","COMMENT ON [TABLE FUNCTION] RETURN COLUMN SPECIFIC [PROCEDURE | ROUTINE]","COMMIT [WORK] [HOLD]","CONNECT [TO | RESET] USER","CREATE [OR REPLACE] {ALIAS | FUNCTION | MASK | PERMISSION | PROCEDURE | SEQUENCE | TRIGGER | VARIABLE}","CREATE [ENCODED VECTOR] INDEX","CREATE UNIQUE [WHERE NOT NULL] INDEX","CREATE SCHEMA","CREATE TYPE","DEALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL]","DECLARE CURSOR","DECLARE GLOBAL TEMPORARY TABLE","DECLARE","DESCRIBE CURSOR","DESCRIBE INPUT","DESCRIBE [OUTPUT]","DESCRIBE {PROCEDURE | ROUTINE}","DESCRIBE TABLE","DISCONNECT ALL [SQL]","DISCONNECT [CURRENT]","DROP {ALIAS | INDEX | MASK | PACKAGE | PERMISSION | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT} [IF EXISTS]","DROP [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE} [IF EXISTS]","END DECLARE SECTION","EXECUTE [IMMEDIATE]","FREE LOCATOR","GET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","GET [CURRENT | STACKED] DIAGNOSTICS","GRANT {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","HOLD LOCATOR","INCLUDE","LABEL ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","LABEL ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","LOCK TABLE","OPEN","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX] TO","REVOKE {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","ROLLBACK [WORK] [HOLD | TO SAVEPOINT]","SAVEPOINT","SET CONNECTION","SET CURRENT {DEBUG MODE | DECFLOAT ROUNDING MODE | DEGREE | IMPLICIT XMLPARSE OPTION | TEMPORAL SYSTEM_TIME}","SET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","SET ENCRYPTION PASSWORD","SET OPTION","SET {[CURRENT [FUNCTION]] PATH | CURRENT_PATH}","SET RESULT SETS [WITH RETURN [TO CALLER | TO CLIENT]]","SET SESSION AUTHORIZATION","SET SESSION_USER","SET TRANSACTION","SIGNAL SQLSTATE [VALUE]","TAG","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}"]),jO=x(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),kO=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT | RIGHT] EXCEPTION JOIN","{INNER | CROSS} JOIN"]),KO=x(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),$O=x([]),JO={name:"db2i",tokenizerOptions:{reservedSelect:WO,reservedClauses:[...XO,...Hi,...el],reservedSetOperations:jO,reservedJoins:kO,reservedKeywordPhrases:KO,reservedDataTypePhrases:$O,reservedKeywords:bO,reservedDataTypes:VO,reservedFunctionNames:wO,nestedBlockComments:!0,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","¬=","¬>","¬<","!>","!<","||","=>"]},formatOptions:{onelineClauses:[...Hi,...el],tabularOnelineClauses:el}},zO=["ABS","ACOS","ADD","ADD_PARQUET_KEY","AGE","AGGREGATE","ALIAS","ALL_PROFILING_OUTPUT","ANY_VALUE","APPLY","APPROX_COUNT_DISTINCT","APPROX_QUANTILE","ARBITRARY","ARGMAX","ARGMIN","ARG_MAX","ARG_MAX_NULL","ARG_MIN","ARG_MIN_NULL","ARRAY_AGG","ARRAY_AGGR","ARRAY_AGGREGATE","ARRAY_APPEND","ARRAY_APPLY","ARRAY_CAT","ARRAY_CONCAT","ARRAY_CONTAINS","ARRAY_COSINE_SIMILARITY","ARRAY_CROSS_PRODUCT","ARRAY_DISTANCE","ARRAY_DISTINCT","ARRAY_DOT_PRODUCT","ARRAY_EXTRACT","ARRAY_FILTER","ARRAY_GRADE_UP","ARRAY_HAS","ARRAY_HAS_ALL","ARRAY_HAS_ANY","ARRAY_INDEXOF","ARRAY_INNER_PRODUCT","ARRAY_INTERSECT","ARRAY_LENGTH","ARRAY_POP_BACK","ARRAY_POP_FRONT","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_PUSH_BACK","ARRAY_PUSH_FRONT","ARRAY_REDUCE","ARRAY_RESIZE","ARRAY_REVERSE","ARRAY_REVERSE_SORT","ARRAY_SELECT","ARRAY_SLICE","ARRAY_SORT","ARRAY_TO_JSON","ARRAY_TO_STRING","ARRAY_TRANSFORM","ARRAY_UNIQUE","ARRAY_VALUE","ARRAY_WHERE","ARRAY_ZIP","ARROW_SCAN","ARROW_SCAN_DUMB","ASCII","ASIN","ATAN","ATAN2","AVG","BASE64","BIN","BITSTRING","BITSTRING_AGG","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_POSITION","BIT_XOR","BOOL_AND","BOOL_OR","CARDINALITY","CBRT","CEIL","CEILING","CENTURY","CHECKPOINT","CHR","COLLATIONS","COL_DESCRIPTION","COMBINE","CONCAT","CONCAT_WS","CONSTANT_OR_NULL","CONTAINS","COPY_DATABASE","CORR","COS","COT","COUNT","COUNT_IF","COUNT_STAR","COVAR_POP","COVAR_SAMP","CREATE_SORT_KEY","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_DATE","CURRENT_LOCALTIME","CURRENT_LOCALTIMESTAMP","CURRENT_QUERY","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_SETTING","CURRENT_USER","CURRVAL","DAMERAU_LEVENSHTEIN","DATABASE_LIST","DATABASE_SIZE","DATEDIFF","DATEPART","DATESUB","DATETRUNC","DATE_ADD","DATE_DIFF","DATE_PART","DATE_SUB","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECADE","DECODE","DEGREES","DISABLE_CHECKPOINT_ON_SHUTDOWN","DISABLE_OBJECT_CACHE","DISABLE_OPTIMIZER","DISABLE_PRINT_PROGRESS_BAR","DISABLE_PROFILE","DISABLE_PROFILING","DISABLE_PROGRESS_BAR","DISABLE_VERIFICATION","DISABLE_VERIFY_EXTERNAL","DISABLE_VERIFY_FETCH_ROW","DISABLE_VERIFY_PARALLELISM","DISABLE_VERIFY_SERIALIZER","DIVIDE","DUCKDB_COLUMNS","DUCKDB_CONSTRAINTS","DUCKDB_DATABASES","DUCKDB_DEPENDENCIES","DUCKDB_EXTENSIONS","DUCKDB_FUNCTIONS","DUCKDB_INDEXES","DUCKDB_KEYWORDS","DUCKDB_MEMORY","DUCKDB_OPTIMIZERS","DUCKDB_SCHEMAS","DUCKDB_SECRETS","DUCKDB_SEQUENCES","DUCKDB_SETTINGS","DUCKDB_TABLES","DUCKDB_TEMPORARY_FILES","DUCKDB_TYPES","DUCKDB_VIEWS","EDIT","EDITDIST3","ELEMENT_AT","ENABLE_CHECKPOINT_ON_SHUTDOWN","ENABLE_OBJECT_CACHE","ENABLE_OPTIMIZER","ENABLE_PRINT_PROGRESS_BAR","ENABLE_PROFILE","ENABLE_PROFILING","ENABLE_PROGRESS_BAR","ENABLE_VERIFICATION","ENCODE","ENDS_WITH","ENTROPY","ENUM_CODE","ENUM_FIRST","ENUM_LAST","ENUM_RANGE","ENUM_RANGE_BOUNDARY","EPOCH","EPOCH_MS","EPOCH_NS","EPOCH_US","ERA","ERROR","EVEN","EXP","FACTORIAL","FAVG","FDIV","FILTER","FINALIZE","FIRST","FLATTEN","FLOOR","FMOD","FORCE_CHECKPOINT","FORMAT","FORMATREADABLEDECIMALSIZE","FORMATREADABLESIZE","FORMAT_BYTES","FORMAT_PG_TYPE","FORMAT_TYPE","FROM_BASE64","FROM_BINARY","FROM_HEX","FROM_JSON","FROM_JSON_STRICT","FSUM","FUNCTIONS","GAMMA","GCD","GENERATE_SERIES","GENERATE_SUBSCRIPTS","GEN_RANDOM_UUID","GEOMEAN","GEOMETRIC_MEAN","GETENV","GET_BIT","GET_BLOCK_SIZE","GET_CURRENT_TIME","GET_CURRENT_TIMESTAMP","GLOB","GRADE_UP","GREATEST","GREATEST_COMMON_DIVISOR","GROUP_CONCAT","HAMMING","HASH","HAS_ANY_COLUMN_PRIVILEGE","HAS_COLUMN_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE","HAS_FUNCTION_PRIVILEGE","HAS_LANGUAGE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_SEQUENCE_PRIVILEGE","HAS_SERVER_PRIVILEGE","HAS_TABLESPACE_PRIVILEGE","HAS_TABLE_PRIVILEGE","HEX","HISTOGRAM","HOUR","ICU_CALENDAR_NAMES","ICU_SORT_KEY","ILIKE_ESCAPE","IMPORT_DATABASE","INDEX_SCAN","INET_CLIENT_ADDR","INET_CLIENT_PORT","INET_SERVER_ADDR","INET_SERVER_PORT","INSTR","IN_SEARCH_PATH","ISFINITE","ISINF","ISNAN","ISODOW","ISOYEAR","JACCARD","JARO_SIMILARITY","JARO_WINKLER_SIMILARITY","JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_CONTAINS","JSON_DESERIALIZE_SQL","JSON_EXECUTE_SERIALIZED_SQL","JSON_EXTRACT","JSON_EXTRACT_PATH","JSON_EXTRACT_PATH_TEXT","JSON_EXTRACT_STRING","JSON_GROUP_ARRAY","JSON_GROUP_OBJECT","JSON_GROUP_STRUCTURE","JSON_KEYS","JSON_MERGE_PATCH","JSON_OBJECT","JSON_QUOTE","JSON_SERIALIZE_PLAN","JSON_SERIALIZE_SQL","JSON_STRUCTURE","JSON_TRANSFORM","JSON_TRANSFORM_STRICT","JSON_TYPE","JSON_VALID","JULIAN","KAHAN_SUM","KURTOSIS","KURTOSIS_POP","LAST","LAST_DAY","LCASE","LCM","LEAST","LEAST_COMMON_MULTIPLE","LEFT","LEFT_GRAPHEME","LEN","LENGTH","LENGTH_GRAPHEME","LEVENSHTEIN","LGAMMA","LIKE_ESCAPE","LIST","LISTAGG","LIST_AGGR","LIST_AGGREGATE","LIST_ANY_VALUE","LIST_APPEND","LIST_APPLY","LIST_APPROX_COUNT_DISTINCT","LIST_AVG","LIST_BIT_AND","LIST_BIT_OR","LIST_BIT_XOR","LIST_BOOL_AND","LIST_BOOL_OR","LIST_CAT","LIST_CONCAT","LIST_CONTAINS","LIST_COSINE_SIMILARITY","LIST_COUNT","LIST_DISTANCE","LIST_DISTINCT","LIST_DOT_PRODUCT","LIST_ELEMENT","LIST_ENTROPY","LIST_EXTRACT","LIST_FILTER","LIST_FIRST","LIST_GRADE_UP","LIST_HAS","LIST_HAS_ALL","LIST_HAS_ANY","LIST_HISTOGRAM","LIST_INDEXOF","LIST_INNER_PRODUCT","LIST_INTERSECT","LIST_KURTOSIS","LIST_KURTOSIS_POP","LIST_LAST","LIST_MAD","LIST_MAX","LIST_MEDIAN","LIST_MIN","LIST_MODE","LIST_PACK","LIST_POSITION","LIST_PREPEND","LIST_PRODUCT","LIST_REDUCE","LIST_RESIZE","LIST_REVERSE","LIST_REVERSE_SORT","LIST_SELECT","LIST_SEM","LIST_SKEWNESS","LIST_SLICE","LIST_SORT","LIST_STDDEV_POP","LIST_STDDEV_SAMP","LIST_STRING_AGG","LIST_SUM","LIST_TRANSFORM","LIST_UNIQUE","LIST_VALUE","LIST_VAR_POP","LIST_VAR_SAMP","LIST_WHERE","LIST_ZIP","LN","LOG","LOG10","LOG2","LOWER","LPAD","LSMODE","LTRIM","MAD","MAKE_DATE","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","MAP","MAP_CONCAT","MAP_ENTRIES","MAP_EXTRACT","MAP_FROM_ENTRIES","MAP_KEYS","MAP_VALUES","MAX","MAX_BY","MD5","MD5_NUMBER","MD5_NUMBER_LOWER","MD5_NUMBER_UPPER","MEAN","MEDIAN","METADATA_INFO","MICROSECOND","MILLENNIUM","MILLISECOND","MIN","MINUTE","MIN_BY","MISMATCHES","MOD","MODE","MONTH","MONTHNAME","MULTIPLY","NEXTAFTER","NEXTVAL","NFC_NORMALIZE","NOT_ILIKE_ESCAPE","NOT_LIKE_ESCAPE","NOW","NULLIF","OBJ_DESCRIPTION","OCTET_LENGTH","ORD","PARQUET_FILE_METADATA","PARQUET_KV_METADATA","PARQUET_METADATA","PARQUET_SCAN","PARQUET_SCHEMA","PARSE_DIRNAME","PARSE_DIRPATH","PARSE_FILENAME","PARSE_PATH","PG_COLLATION_IS_VISIBLE","PG_CONF_LOAD_TIME","PG_CONVERSION_IS_VISIBLE","PG_FUNCTION_IS_VISIBLE","PG_GET_CONSTRAINTDEF","PG_GET_EXPR","PG_GET_VIEWDEF","PG_HAS_ROLE","PG_IS_OTHER_TEMP_SCHEMA","PG_MY_TEMP_SCHEMA","PG_OPCLASS_IS_VISIBLE","PG_OPERATOR_IS_VISIBLE","PG_OPFAMILY_IS_VISIBLE","PG_POSTMASTER_START_TIME","PG_SIZE_PRETTY","PG_TABLE_IS_VISIBLE","PG_TIMEZONE_NAMES","PG_TS_CONFIG_IS_VISIBLE","PG_TS_DICT_IS_VISIBLE","PG_TS_PARSER_IS_VISIBLE","PG_TS_TEMPLATE_IS_VISIBLE","PG_TYPEOF","PG_TYPE_IS_VISIBLE","PI","PLATFORM","POSITION","POW","POWER","PRAGMA_COLLATIONS","PRAGMA_DATABASE_SIZE","PRAGMA_METADATA_INFO","PRAGMA_PLATFORM","PRAGMA_SHOW","PRAGMA_STORAGE_INFO","PRAGMA_TABLE_INFO","PRAGMA_USER_AGENT","PRAGMA_VERSION","PREFIX","PRINTF","PRODUCT","QUANTILE","QUANTILE_CONT","QUANTILE_DISC","QUARTER","RADIANS","RANDOM","RANGE","READFILE","READ_BLOB","READ_CSV","READ_CSV_AUTO","READ_JSON","READ_JSON_AUTO","READ_JSON_OBJECTS","READ_JSON_OBJECTS_AUTO","READ_NDJSON","READ_NDJSON_AUTO","READ_NDJSON_OBJECTS","READ_PARQUET","READ_TEXT","REDUCE","REGEXP_ESCAPE","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_FULL_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","REPEAT","REPEAT_ROW","REPLACE","RESERVOIR_QUANTILE","REVERSE","RIGHT","RIGHT_GRAPHEME","ROUND","ROUNDBANKERS","ROUND_EVEN","ROW","ROW_TO_JSON","RPAD","RTRIM","SECOND","SEM","SEQ_SCAN","SESSION_USER","SETSEED","SET_BIT","SHA256","SHA3","SHELL_ADD_SCHEMA","SHELL_ESCAPE_CRNL","SHELL_IDQUOTE","SHELL_MODULE_SCHEMA","SHELL_PUTSNL","SHOBJ_DESCRIPTION","SHOW","SHOW_DATABASES","SHOW_TABLES","SHOW_TABLES_EXPANDED","SIGN","SIGNBIT","SIN","SKEWNESS","SNIFF_CSV","SPLIT","SPLIT_PART","SQL_AUTO_COMPLETE","SQRT","STARTS_WITH","STATS","STDDEV","STDDEV_POP","STDDEV_SAMP","STORAGE_INFO","STRFTIME","STRING_AGG","STRING_SPLIT","STRING_SPLIT_REGEX","STRING_TO_ARRAY","STRIP_ACCENTS","STRLEN","STRPOS","STRPTIME","STRUCT_EXTRACT","STRUCT_INSERT","STRUCT_PACK","STR_SPLIT","STR_SPLIT_REGEX","SUBSTR","SUBSTRING","SUBSTRING_GRAPHEME","SUBTRACT","SUFFIX","SUM","SUMKAHAN","SUMMARY","SUM_NO_OVERFLOW","TABLE_INFO","TAN","TEST_ALL_TYPES","TEST_VECTOR_TYPES","TIMEZONE","TIMEZONE_HOUR","TIMEZONE_MINUTE","TIME_BUCKET","TODAY","TO_BASE","TO_BASE64","TO_BINARY","TO_CENTURIES","TO_DAYS","TO_DECADES","TO_HEX","TO_HOURS","TO_JSON","TO_MICROSECONDS","TO_MILLENNIA","TO_MILLISECONDS","TO_MINUTES","TO_MONTHS","TO_SECONDS","TO_TIMESTAMP","TO_WEEKS","TO_YEARS","TRANSACTION_TIMESTAMP","TRANSLATE","TRIM","TRUNC","TRY_STRPTIME","TXID_CURRENT","TYPEOF","UCASE","UNBIN","UNHEX","UNICODE","UNION_EXTRACT","UNION_TAG","UNION_VALUE","UNNEST","UNPIVOT_LIST","UPPER","USER","USER_AGENT","UUID","VARIANCE","VAR_POP","VAR_SAMP","VECTOR_TYPE","VERIFY_EXTERNAL","VERIFY_FETCH_ROW","VERIFY_PARALLELISM","VERIFY_SERIALIZER","VERSION","WEEK","WEEKDAY","WEEKOFYEAR","WHICH_SECRET","WRITEFILE","XOR","YEAR","YEARWEEK","CAST","COALESCE","RANK","ROW_NUMBER"],QO=["ALL","ANALYSE","ANALYZE","AND","ANY","AS","ASC","ATTACH","ASYMMETRIC","BOTH","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","DEFAULT","DEFERRABLE","DESC","DESCRIBE","DETACH","DISTINCT","DO","ELSE","END","EXCEPT","FALSE","FETCH","FOR","FOREIGN","FROM","GRANT","GROUP","HAVING","IN","INITIALLY","INTERSECT","INTO","IS","LATERAL","LEADING","LIMIT","NOT","NULL","OFFSET","ON","ONLY","OR","ORDER","PIVOT","PIVOT_LONGER","PIVOT_WIDER","PLACING","PRIMARY","REFERENCES","RETURNING","SELECT","SHOW","SOME","SUMMARIZE","SYMMETRIC","TABLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","UNPIVOT","USING","VARIADIC","WHEN","WHERE","WINDOW","WITH"],ZO=["ARRAY","BIGINT","BINARY","BIT","BITSTRING","BLOB","BOOL","BOOLEAN","BPCHAR","BYTEA","CHAR","DATE","DATETIME","DEC","DECIMAL","DOUBLE","ENUM","FLOAT","FLOAT4","FLOAT8","GUID","HUGEINT","INET","INT","INT1","INT128","INT16","INT2","INT32","INT4","INT64","INT8","INTEGER","INTEGRAL","INTERVAL","JSON","LIST","LOGICAL","LONG","MAP","NUMERIC","NVARCHAR","OID","REAL","ROW","SHORT","SIGNED","SMALLINT","STRING","STRUCT","TEXT","TIME","TIMESTAMP_MS","TIMESTAMP_NS","TIMESTAMP_S","TIMESTAMP_US","TIMESTAMP","TIMESTAMPTZ","TIMETZ","TINYINT","UBIGINT","UHUGEINT","UINT128","UINT16","UINT32","UINT64","UINT8","UINTEGER","UNION","USMALLINT","UTINYINT","UUID","VARBINARY","VARCHAR"],qO=x(["SELECT [ALL | DISTINCT]"]),ec=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL]","HAVING","WINDOW","PARTITION BY","ORDER BY [ALL]","LIMIT","OFFSET","USING SAMPLE","QUALIFY","INSERT [OR REPLACE] INTO","VALUES","DEFAULT VALUES","SET","RETURNING"]),Bi=x(["CREATE [OR REPLACE] [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]),tl=x(["UPDATE","ON CONFLICT","DELETE FROM","DROP TABLE [IF EXISTS]","TRUNCATE","ALTER TABLE","ADD [COLUMN] [IF NOT EXISTS]","ADD PRIMARY KEY","DROP [COLUMN] [IF EXISTS]","ALTER [COLUMN]","RENAME [COLUMN]","RENAME TO","SET [DATA] TYPE","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","CREATE [OR REPLACE] [TEMPORARY | TEMP] {MACRO | FUNCTION}","DROP MACRO [TABLE] [IF EXISTS]","DROP FUNCTION [IF EXISTS]","CREATE [UNIQUE] INDEX [IF NOT EXISTS]","DROP INDEX [IF EXISTS]","CREATE [OR REPLACE] SCHEMA [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","CREATE [OR REPLACE] [PERSISTENT | TEMPORARY] SECRET [IF NOT EXISTS]","DROP [PERSISTENT | TEMPORARY] SECRET [IF EXISTS]","CREATE [OR REPLACE] [TEMPORARY | TEMP] SEQUENCE","DROP SEQUENCE [IF EXISTS]","CREATE [OR REPLACE] [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]","DROP VIEW [IF EXISTS]","ALTER VIEW","CREATE TYPE","DROP TYPE [IF EXISTS]","ANALYZE","ATTACH [DATABASE] [IF NOT EXISTS]","DETACH [DATABASE] [IF EXISTS]","CALL","[FORCE] CHECKPOINT","COMMENT ON [TABLE | COLUMN | VIEW | INDEX | SEQUENCE | TYPE | MACRO | MACRO TABLE]","COPY [FROM DATABASE]","DESCRIBE","EXPORT DATABASE","IMPORT DATABASE","INSTALL","LOAD","PIVOT","PIVOT_WIDER","UNPIVOT","EXPLAIN [ANALYZE]","SET {LOCAL | SESSION | GLOBAL}","RESET [LOCAL | SESSION | GLOBAL]","{SET | RESET} VARIABLE","SUMMARIZE","BEGIN TRANSACTION","ROLLBACK","COMMIT","ABORT","USE","VACUUM [ANALYZE]","PREPARE","EXECUTE","DEALLOCATE [PREPARE]"]),tc=x(["UNION [ALL | BY NAME]","EXCEPT [ALL]","INTERSECT [ALL]"]),Ec=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","{NATURAL | ASOF} [INNER] JOIN","{NATURAL | ASOF} {LEFT | RIGHT | FULL} [OUTER] JOIN","POSITIONAL JOIN","ANTI JOIN","SEMI JOIN"]),nc=x(["{ROWS | RANGE | GROUPS} BETWEEN","SIMILAR TO","IS [NOT] DISTINCT FROM"]),rc=x(["TIMESTAMP WITH TIME ZONE"]),sc={name:"duckdb",tokenizerOptions:{reservedSelect:qO,reservedClauses:[...ec,...Bi,...tl],reservedSetOperations:tc,reservedJoins:Ec,reservedKeywordPhrases:nc,reservedDataTypePhrases:rc,supportsXor:!0,reservedKeywords:QO,reservedDataTypes:ZO,reservedFunctionNames:zO,nestedBlockComments:!0,extraParens:["[]","{}"],underscoresInNumbers:!0,stringTypes:["$$","''-qq",{quote:"''-qq-bs",prefixes:["E"],requirePrefix:!0},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{rest:"$"},paramTypes:{positional:!0,numbered:["$"],quoted:["$"]},operators:["//","%","**","^","!","&","|","~","<<",">>","::","==","->","->>",":",":=","=>","~~","!~~","~~*","!~~*","~~~","~","!~","~*","!~*","^@","||",">>=","<<="]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...Bi,...tl],tabularOnelineClauses:tl}},Tc=["ABS","ACOS","ASIN","ATAN","BIN","BROUND","CBRT","CEIL","CEILING","CONV","COS","DEGREES","EXP","FACTORIAL","FLOOR","GREATEST","HEX","LEAST","LN","LOG","LOG10","LOG2","NEGATIVE","PI","PMOD","POSITIVE","POW","POWER","RADIANS","RAND","ROUND","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIN","SQRT","TAN","UNHEX","WIDTH_BUCKET","ARRAY_CONTAINS","MAP_KEYS","MAP_VALUES","SIZE","SORT_ARRAY","BINARY","CAST","ADD_MONTHS","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","QUARTER","SECOND","TIMESTAMP","TO_DATE","TO_UTC_TIMESTAMP","TRUNC","UNIX_TIMESTAMP","WEEKOFYEAR","YEAR","ASSERT_TRUE","COALESCE","IF","ISNOTNULL","ISNULL","NULLIF","NVL","ASCII","BASE64","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONTEXT_NGRAMS","DECODE","ELT","ENCODE","FIELD","FIND_IN_SET","FORMAT_NUMBER","GET_JSON_OBJECT","IN_FILE","INITCAP","INSTR","LCASE","LENGTH","LEVENSHTEIN","LOCATE","LOWER","LPAD","LTRIM","NGRAMS","OCTET_LENGTH","PARSE_URL","PRINTF","QUOTE","REGEXP_EXTRACT","REGEXP_REPLACE","REPEAT","REVERSE","RPAD","RTRIM","SENTENCES","SOUNDEX","SPACE","SPLIT","STR_TO_MAP","SUBSTR","SUBSTRING","TRANSLATE","TRIM","UCASE","UNBASE64","UPPER","MASK","MASK_FIRST_N","MASK_HASH","MASK_LAST_N","MASK_SHOW_FIRST_N","MASK_SHOW_LAST_N","AES_DECRYPT","AES_ENCRYPT","CRC32","CURRENT_DATABASE","CURRENT_USER","HASH","JAVA_METHOD","LOGGED_IN_USER","MD5","REFLECT","SHA","SHA1","SHA2","SURROGATE_KEY","VERSION","AVG","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COVAR_POP","COVAR_SAMP","HISTOGRAM_NUMERIC","MAX","MIN","NTILE","PERCENTILE","PERCENTILE_APPROX","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","EXPLODE","INLINE","JSON_TUPLE","PARSE_URL_TUPLE","POSEXPLODE","STACK","LEAD","LAG","FIRST_VALUE","LAST_VALUE","RANK","ROW_NUMBER","DENSE_RANK","CUME_DIST","PERCENT_RANK","NTILE"],lc=["ADD","ADMIN","AFTER","ANALYZE","ARCHIVE","ASC","BEFORE","BUCKET","BUCKETS","CASCADE","CHANGE","CLUSTER","CLUSTERED","CLUSTERSTATUS","COLLECTION","COLUMNS","COMMENT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONTINUE","DATA","DATABASES","DATETIME","DAY","DBPROPERTIES","DEFERRED","DEFINED","DELIMITED","DEPENDENCY","DESC","DIRECTORIES","DIRECTORY","DISABLE","DISTRIBUTE","ELEM_TYPE","ENABLE","ESCAPED","EXCLUSIVE","EXPLAIN","EXPORT","FIELDS","FILE","FILEFORMAT","FIRST","FORMAT","FORMATTED","FUNCTIONS","HOLD_DDLTIME","HOUR","IDXPROPERTIES","IGNORE","INDEX","INDEXES","INPATH","INPUTDRIVER","INPUTFORMAT","ITEMS","JAR","KEYS","KEY_TYPE","LIMIT","LINES","LOAD","LOCATION","LOCK","LOCKS","LOGICAL","LONG","MAPJOIN","MATERIALIZED","METADATA","MINUS","MINUTE","MONTH","MSCK","NOSCAN","NO_DROP","OFFLINE","OPTION","OUTPUTDRIVER","OUTPUTFORMAT","OVERWRITE","OWNER","PARTITIONED","PARTITIONS","PLUS","PRETTY","PRINCIPALS","PROTECTION","PURGE","READ","READONLY","REBUILD","RECORDREADER","RECORDWRITER","RELOAD","RENAME","REPAIR","REPLACE","REPLICATION","RESTRICT","REWRITE","ROLE","ROLES","SCHEMA","SCHEMAS","SECOND","SEMI","SERDE","SERDEPROPERTIES","SERVER","SETS","SHARED","SHOW","SHOW_DATABASE","SKEWED","SORT","SORTED","SSL","STATISTICS","STORED","STREAMTABLE","STRING","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","TINYINT","TOUCH","TRANSACTIONS","UNARCHIVE","UNDO","UNIONTYPE","UNLOCK","UNSET","UNSIGNED","URI","USE","UTC","UTCTIMESTAMP","VALUE_TYPE","VIEW","WHILE","YEAR","AUTOCOMMIT","ISOLATION","LEVEL","OFFSET","SNAPSHOT","TRANSACTION","WORK","WRITE","ABORT","KEY","LAST","NORELY","NOVALIDATE","NULLS","RELY","VALIDATE","DETAIL","DOW","EXPRESSION","OPERATOR","QUARTER","SUMMARY","VECTORIZATION","WEEK","YEARS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","TIMESTAMPTZ","ZONE","ALL","ALTER","AND","AS","AUTHORIZATION","BETWEEN","BOTH","BY","CASE","CAST","COLUMN","CONF","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIMESTAMP","CURSOR","DATABASE","DELETE","DESCRIBE","DISTINCT","DROP","ELSE","END","EXCHANGE","EXISTS","EXTENDED","EXTERNAL","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","FUNCTION","GRANT","GROUP","GROUPING","HAVING","IF","IMPORT","IN","INNER","INSERT","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LESS","LIKE","LOCAL","MACRO","MORE","NONE","NOT","NULL","OF","ON","OR","ORDER","OUT","OUTER","OVER","PARTIALSCAN","PARTITION","PERCENT","PRECEDING","PRESERVE","PROCEDURE","RANGE","READS","REDUCE","REVOKE","RIGHT","ROLLUP","ROW","ROWS","SELECT","SET","TABLE","TABLESAMPLE","THEN","TO","TRANSFORM","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNION","UNIQUEJOIN","UPDATE","USER","USING","UTC_TMESTAMP","VALUES","WHEN","WHERE","WINDOW","WITH","COMMIT","ONLY","REGEXP","RLIKE","ROLLBACK","START","CACHE","CONSTRAINT","FOREIGN","PRIMARY","REFERENCES","DAYOFWEEK","EXTRACT","FLOOR","VIEWS","TIME","SYNC","TEXTFILE","SEQUENCEFILE","ORC","CSV","TSV","PARQUET","AVRO","RCFILE","JSONFILE","INPUTFORMAT","OUTPUTFORMAT"],ac=["ARRAY","BIGINT","BINARY","BOOLEAN","CHAR","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MAP","NUMERIC","PRECISION","SMALLINT","STRUCT","TIMESTAMP","VARCHAR"],oc=x(["SELECT [ALL | DISTINCT]"]),ic=x(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT INTO [TABLE]","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT [VALUES]","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),Fi=x(["CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS]"]),El=x(["CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","RENAME TO","TRUNCATE [TABLE]","ALTER","CREATE","USE","DESCRIBE","DROP","FETCH","SHOW","STORED AS","STORED BY","ROW FORMAT"]),Rc=x(["UNION [ALL | DISTINCT]"]),Ac=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","LEFT SEMI JOIN"]),Sc=x(["{ROWS | RANGE} BETWEEN"]),Nc=x([]),Ic={name:"hive",tokenizerOptions:{reservedSelect:oc,reservedClauses:[...ic,...Fi,...El],reservedSetOperations:Rc,reservedJoins:Ac,reservedKeywordPhrases:Sc,reservedDataTypePhrases:Nc,reservedKeywords:lc,reservedDataTypes:ac,reservedFunctionNames:Tc,extraParens:["[]"],stringTypes:['""-bs',"''-bs"],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||"]},formatOptions:{onelineClauses:[...Fi,...El],tabularOnelineClauses:El}};function CT(e){return e.map((t,E)=>{const n=e[E+1]||kn;if(An.SET(t)&&n.text==="(")return Object.assign(Object.assign({},t),{type:V.RESERVED_FUNCTION_NAME});const r=e[E-1]||kn;return An.VALUES(t)&&r.text==="="?Object.assign(Object.assign({},t),{type:V.RESERVED_FUNCTION_NAME}):t})}const uc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DELETE_DOMAIN_ID","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DO_DOMAIN_IDS","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERAL","GRANT","GROUP","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IGNORE_DOMAIN_IDS","IGNORE_SERVER_IDS","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MASTER_HEARTBEAT_PERIOD","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OFFSET","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PAGE_CHECKSUM","PARSE_VCOL_EXPR","PARTITION","POSITION","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","READ_WRITE","RECURSIVE","REF_SYSTEM_ID","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","RETURNING","REVOKE","RIGHT","RLIKE","ROW_NUMBER","ROWS","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SLOW","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],Oc=["BIGINT","BINARY","BIT","BLOB","CHAR BYTE","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],cc=["ADDDATE","ADD_MONTHS","BIT_AND","BIT_OR","BIT_XOR","CAST","COUNT","CUME_DIST","CURDATE","CURTIME","DATE_ADD","DATE_SUB","DATE_FORMAT","DECODE","DENSE_RANK","EXTRACT","FIRST_VALUE","GROUP_CONCAT","JSON_ARRAYAGG","JSON_OBJECTAGG","LAG","LEAD","MAX","MEDIAN","MID","MIN","NOW","NTH_VALUE","NTILE","POSITION","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","ROW_NUMBER","SESSION_USER","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUBDATE","SUBSTR","SUBSTRING","SUM","SYSTEM_USER","TRIM","TRIM_ORACLE","VARIANCE","VAR_POP","VAR_SAMP","ABS","ACOS","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ASIN","ATAN","ATAN2","BENCHMARK","BIN","BINLOG_GTID_POS","BIT_COUNT","BIT_LENGTH","CEIL","CEILING","CHARACTER_LENGTH","CHAR_LENGTH","CHR","COERCIBILITY","COLUMN_CHECK","COLUMN_EXISTS","COLUMN_LIST","COLUMN_JSON","COMPRESS","CONCAT","CONCAT_OPERATOR_ORACLE","CONCAT_WS","CONNECTION_ID","CONV","CONVERT_TZ","COS","COT","CRC32","DATEDIFF","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEGREES","DECODE_HISTOGRAM","DECODE_ORACLE","DES_DECRYPT","DES_ENCRYPT","ELT","ENCODE","ENCRYPT","EXP","EXPORT_SET","EXTRACTVALUE","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GET_LOCK","GREATEST","HEX","IFNULL","INSTR","ISNULL","IS_FREE_LOCK","IS_USED_LOCK","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_COMPACT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_DETAILED","JSON_EXISTS","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_LOOSE","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_QUERY","JSON_QUOTE","JSON_OBJECT","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_SEARCH","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAST_DAY","LAST_INSERT_ID","LCASE","LEAST","LENGTH","LENGTHB","LN","LOAD_FILE","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LPAD_ORACLE","LTRIM","LTRIM_ORACLE","MAKEDATE","MAKETIME","MAKE_SET","MASTER_GTID_WAIT","MASTER_POS_WAIT","MD5","MONTHNAME","NAME_CONST","NVL","NVL2","OCT","OCTET_LENGTH","ORD","PERIOD_ADD","PERIOD_DIFF","PI","POW","POWER","QUOTE","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","RADIANS","RAND","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPLACE_ORACLE","REVERSE","ROUND","RPAD","RPAD_ORACLE","RTRIM","RTRIM_ORACLE","SEC_TO_TIME","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SPACE","SQRT","STRCMP","STR_TO_DATE","SUBSTR_ORACLE","SUBSTRING_INDEX","SUBTIME","SYS_GUID","TAN","TIMEDIFF","TIME_FORMAT","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_SECONDS","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UUID","UUID_SHORT","VERSION","WEEKDAY","WEEKOFYEAR","WSREP_LAST_WRITTEN_GTID","WSREP_LAST_SEEN_GTID","WSREP_SYNC_WAIT_UPTO_GTID","YEARWEEK","COALESCE","NULLIF"],Cc=x(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),dc=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET","RETURNING"]),Yi=x(["CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]"]),nl=x(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] [IGNORE] TABLE [IF EXISTS]","ADD [COLUMN] [IF NOT EXISTS]","{CHANGE | MODIFY} [COLUMN] [IF EXISTS]","DROP [COLUMN] [IF EXISTS]","RENAME [TO]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","SET {VISIBLE | INVISIBLE}","TRUNCATE [TABLE]","ALTER DATABASE","ALTER DATABASE COMMENT","ALTER EVENT","ALTER FUNCTION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SCHEMA COMMENT","ALTER SEQUENCE","ALTER SERVER","ALTER USER","ALTER VIEW","ANALYZE","ANALYZE TABLE","BACKUP LOCK","BACKUP STAGE","BACKUP UNLOCK","BEGIN","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHECK TABLE","CHECK VIEW","CHECKSUM TABLE","COMMIT","CREATE AGGREGATE FUNCTION","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE INDEX","CREATE PROCEDURE","CREATE ROLE","CREATE SEQUENCE","CREATE SERVER","CREATE SPATIAL INDEX","CREATE TRIGGER","CREATE UNIQUE INDEX","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP INDEX","DROP PREPARE","DROP PROCEDURE","DROP ROLE","DROP SEQUENCE","DROP SERVER","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GET DIAGNOSTICS","GET DIAGNOSTICS CONDITION","GRANT","HANDLER","HELP","INSTALL PLUGIN","INSTALL SONAME","KILL","LOAD DATA INFILE","LOAD INDEX INTO CACHE","LOAD XML INFILE","LOCK TABLE","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","PURGE MASTER LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","REPAIR VIEW","RESET MASTER","RESET QUERY CACHE","RESET REPLICA","RESET SLAVE","RESIGNAL","REVOKE","ROLLBACK","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET GLOBAL TRANSACTION","SET NAMES","SET PASSWORD","SET ROLE","SET STATEMENT","SET TRANSACTION","SHOW","SHOW ALL REPLICAS STATUS","SHOW ALL SLAVES STATUS","SHOW AUTHORS","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW BINLOG STATUS","SHOW CHARACTER SET","SHOW CLIENT_STATISTICS","SHOW COLLATION","SHOW COLUMNS","SHOW CONTRIBUTORS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PACKAGE","SHOW CREATE PACKAGE BODY","SHOW CREATE PROCEDURE","SHOW CREATE SEQUENCE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINE INNODB STATUS","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW EXPLAIN","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW INDEXES","SHOW INDEX_STATISTICS","SHOW KEYS","SHOW LOCALES","SHOW MASTER LOGS","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PACKAGE BODY CODE","SHOW PACKAGE BODY STATUS","SHOW PACKAGE STATUS","SHOW PLUGINS","SHOW PLUGINS SONAME","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW QUERY_RESPONSE_TIME","SHOW RELAYLOG EVENTS","SHOW REPLICA","SHOW REPLICA HOSTS","SHOW REPLICA STATUS","SHOW SCHEMAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW SLAVE STATUS","SHOW STATUS","SHOW STORAGE ENGINES","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW USER_STATISTICS","SHOW VARIABLES","SHOW WARNINGS","SHOW WSREP_MEMBERSHIP","SHOW WSREP_STATUS","SHUTDOWN","SIGNAL","START ALL REPLICAS","START ALL SLAVES","START REPLICA","START SLAVE","START TRANSACTION","STOP ALL REPLICAS","STOP ALL SLAVES","STOP REPLICA","STOP SLAVE","UNINSTALL PLUGIN","UNINSTALL SONAME","UNLOCK TABLE","USE","XA BEGIN","XA COMMIT","XA END","XA PREPARE","XA RECOVER","XA ROLLBACK","XA START"]),Lc=x(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]","MINUS [ALL | DISTINCT]"]),_c=x(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),fc=x(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),pc=x([]),mc={name:"mariadb",tokenizerOptions:{reservedSelect:Cc,reservedClauses:[...dc,...Yi,...nl],reservedSetOperations:Lc,reservedJoins:_c,reservedKeywordPhrases:fc,reservedDataTypePhrases:pc,supportsXor:!0,reservedKeywords:uc,reservedDataTypes:Oc,reservedFunctionNames:cc,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","&&","||","!","*.*"],postProcess:CT},formatOptions:{onelineClauses:[...Yi,...nl],tabularOnelineClauses:nl}},Dc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","INTERSECT","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],Pc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],hc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BINARY","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","CAN_ACCESS_COLUMN","CAN_ACCESS_DATABASE","CAN_ACCESS_TABLE","CAN_ACCESS_USER","CAN_ACCESS_VIEW","CAST","CEIL","CEILING","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEFAULT","DEGREES","DENSE_RANK","DIV","ELT","EXP","EXPORT_SET","EXTRACT","EXTRACTVALUE","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOMCOLLECTION","GEOMETRYCOLLECTION","GET_DD_COLUMN_PRIVILEGES","GET_DD_CREATE_OPTIONS","GET_DD_INDEX_SUB_PART_LENGTH","GET_FORMAT","GET_LOCK","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","INTERNAL_AUTO_INCREMENT","INTERNAL_AVG_ROW_LENGTH","INTERNAL_CHECK_TIME","INTERNAL_CHECKSUM","INTERNAL_DATA_FREE","INTERNAL_DATA_LENGTH","INTERNAL_DD_CHAR_LENGTH","INTERNAL_GET_COMMENT_OR_ERROR","INTERNAL_GET_ENABLED_ROLE_JSON","INTERNAL_GET_HOSTNAME","INTERNAL_GET_USERNAME","INTERNAL_GET_VIEW_WARNING_OR_ERROR","INTERNAL_INDEX_COLUMN_CARDINALITY","INTERNAL_INDEX_LENGTH","INTERNAL_IS_ENABLED_ROLE","INTERNAL_IS_MANDATORY_ROLE","INTERNAL_KEYS_DISABLED","INTERNAL_MAX_DATA_LENGTH","INTERNAL_TABLE_ROWS","INTERNAL_UPDATE_TIME","INTERVAL","IS","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS NOT","IS NOT NULL","IS NULL","IS_USED_LOCK","IS_UUID","ISNULL","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LINESTRING","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MATCH","MAX","MBRCONTAINS","MBRCOVEREDBY","MBRCOVERS","MBRDISJOINT","MBREQUALS","MBRINTERSECTS","MBROVERLAPS","MBRTOUCHES","MBRWITHIN","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MOD","MONTH","MONTHNAME","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","NAME_CONST","NOT","NOT IN","NOT LIKE","NOT REGEXP","NOW","NTH_VALUE","NTILE","NULLIF","OCT","OCTET_LENGTH","ORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","POINT","POLYGON","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_BUFFER","ST_BUFFER_STRATEGY","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_CONVEXHULL","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DISTANCE_SPHERE","ST_ENDPOINT","ST_ENVELOPE","ST_EQUALS","ST_EXTERIORRING","ST_FRECHETDISTANCE","ST_GEOHASH","ST_GEOMCOLLFROMTEXT","ST_GEOMCOLLFROMWKB","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMGEOJSON","ST_GEOMFROMTEXT","ST_GEOMFROMWKB","ST_HAUSDORFFDISTANCE","ST_INTERIORRINGN","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISSIMPLE","ST_ISVALID","ST_LATFROMGEOHASH","ST_LATITUDE","ST_LENGTH","ST_LINEFROMTEXT","ST_LINEFROMWKB","ST_LINEINTERPOLATEPOINT","ST_LINEINTERPOLATEPOINTS","ST_LONGFROMGEOHASH","ST_LONGITUDE","ST_MAKEENVELOPE","ST_MLINEFROMTEXT","ST_MLINEFROMWKB","ST_MPOINTFROMTEXT","ST_MPOINTFROMWKB","ST_MPOLYFROMTEXT","ST_MPOLYFROMWKB","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINTATDISTANCE","ST_POINTFROMGEOHASH","ST_POINTFROMTEXT","ST_POINTFROMWKB","ST_POINTN","ST_POLYFROMTEXT","ST_POLYFROMWKB","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SWAPXY","ST_SYMDIFFERENCE","ST_TOUCHES","ST_TRANSFORM","ST_UNION","ST_VALIDATE","ST_WITHIN","ST_X","ST_Y","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],Mc=x(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),Uc=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),wi=x(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),rl=x(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER EVENT","ALTER FUNCTION","ALTER INSTANCE","ALTER LOGFILE GROUP","ALTER PROCEDURE","ALTER RESOURCE GROUP","ALTER SERVER","ALTER TABLESPACE","ALTER USER","ALTER VIEW","ANALYZE TABLE","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK TABLE","CHECKSUM TABLE","CLONE","COMMIT","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE FUNCTION","CREATE INDEX","CREATE LOGFILE GROUP","CREATE PROCEDURE","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SERVER","CREATE SPATIAL REFERENCE SYSTEM","CREATE TABLESPACE","CREATE TRIGGER","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP FUNCTION","DROP INDEX","DROP LOGFILE GROUP","DROP PROCEDURE","DROP RESOURCE GROUP","DROP ROLE","DROP SERVER","DROP SPATIAL REFERENCE SYSTEM","DROP TABLESPACE","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GRANT","HANDLER","HELP","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SOURCE_POS_WAIT","START GROUP_REPLICATION","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP REPLICA","STOP SLAVE","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),xc=x(["UNION [ALL | DISTINCT]"]),yc=x(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),gc=x(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),Gc=x([]),vc={name:"mysql",tokenizerOptions:{reservedSelect:Mc,reservedClauses:[...Uc,...wi,...rl],reservedSetOperations:xc,reservedJoins:yc,reservedKeywordPhrases:gc,reservedDataTypePhrases:Gc,supportsXor:!0,reservedKeywords:Dc,reservedDataTypes:Pc,reservedFunctionNames:hc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:CT},formatOptions:{onelineClauses:[...wi,...rl],tabularOnelineClauses:rl}},Hc=["ADD","ALL","ALTER","ANALYZE","AND","ARRAY","AS","ASC","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERATED","GRANT","GROUP","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","ILIKE","IN","INDEX","INFILE","INNER","INOUT","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOW_PRIORITY","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OF","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PRIMARY","PROCEDURE","RANGE","READ","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","REVOKE","RIGHT","RLIKE","ROW","ROWS","SECOND_MICROSECOND","SELECT","SET","SHOW","SPATIAL","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_EXTENDED","STORED","STRAIGHT_JOIN","TABLE","TABLESAMPLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","TiDB_CURRENT_TSO","UNION","UNIQUE","UNLOCK","UNSIGNED","UNTIL","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],Bc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],Fc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","BITAND","BITNEG","BITOR","BITXOR","CASE","CAST","CEIL","CEILING","CHAR_FUNC","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_RESOURCE_GROUP","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT_FUNC","DEGREES","DENSE_RANK","DES_DECRYPT","DES_ENCRYPT","DIV","ELT","ENCODE","ENCRYPT","EQ","EXP","EXPORT_SET","EXTRACT","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_NANO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GE","GET_FORMAT","GET_LOCK","GETPARAM","GREATEST","GROUP_CONCAT","GROUPING","GT","HEX","HOUR","IF","IFNULL","ILIKE","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","INSERT_FUNC","INSTR","INTDIV","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","ISFALSE","ISNULL","ISTRUE","JSON_ARRAY","JSON_ARRAYAGG","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MEMBEROF","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LASTVAL","LCASE","LE","LEAD","LEAST","LEFT","LEFTSHIFT","LENGTH","LIKE","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LT","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MAX","MD5","MICROSECOND","MID","MIN","MINUS","MINUTE","MOD","MONTH","MONTHNAME","MUL","NAME_CONST","NE","NEXTVAL","NOT","NOW","NTH_VALUE","NTILE","NULLEQ","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","PASSWORD_FUNC","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","PLUS","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RIGHTSHIFT","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SETVAL","SETVAR","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SM3","SPACE","SQRT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIDB_BOUNDED_STALENESS","TIDB_CURRENT_TSO","TIDB_DECODE_BINARY_PLAN","TIDB_DECODE_KEY","TIDB_DECODE_PLAN","TIDB_DECODE_SQL_DIGESTS","TIDB_ENCODE_SQL_DIGEST","TIDB_IS_DDL_OWNER","TIDB_PARSE_TSO","TIDB_PARSE_TSO_LOGICAL","TIDB_ROW_CHECKSUM","TIDB_SHARD","TIDB_VERSION","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRANSLATE","TRIM","TRUNCATE","UCASE","UNARYMINUS","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VAR_POP","VAR_SAMP","VARIANCE","VERSION","VITESS_HASH","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],Yc=x(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),wc=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),bi=x(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),sl=x(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER INSTANCE","ALTER RESOURCE GROUP","ALTER SEQUENCE","ALTER USER","ALTER VIEW","ANALYZE TABLE","CHECK TABLE","CHECKSUM TABLE","COMMIT","CREATE DATABASE","CREATE INDEX","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SEQUENCE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP INDEX","DROP RESOURCE GROUP","DROP ROLE","DROP TABLESPACE","DROP USER","DROP VIEW","EXPLAIN","FLUSH","GRANT","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOCK INSTANCE FOR BACKUP","LOCK TABLES","OPTIMIZE TABLE","PREPARE","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE"]),bc=x(["UNION [ALL | DISTINCT]"]),Vc=x(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),Wc=x(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),Xc=x([]),jc={name:"tidb",tokenizerOptions:{reservedSelect:Yc,reservedClauses:[...wc,...bi,...sl],reservedSetOperations:bc,reservedJoins:Vc,reservedKeywordPhrases:Wc,reservedDataTypePhrases:Xc,supportsXor:!0,reservedKeywords:Hc,reservedDataTypes:Bc,reservedFunctionNames:Fc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:CT},formatOptions:{onelineClauses:[...bi,...sl],tabularOnelineClauses:sl}},kc=["ABORT","ABS","ACOS","ADVISOR","ARRAY_AGG","ARRAY_AGG","ARRAY_APPEND","ARRAY_AVG","ARRAY_BINARY_SEARCH","ARRAY_CONCAT","ARRAY_CONTAINS","ARRAY_COUNT","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_FLATTEN","ARRAY_IFNULL","ARRAY_INSERT","ARRAY_INTERSECT","ARRAY_LENGTH","ARRAY_MAX","ARRAY_MIN","ARRAY_MOVE","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_PUT","ARRAY_RANGE","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_REPLACE","ARRAY_REVERSE","ARRAY_SORT","ARRAY_STAR","ARRAY_SUM","ARRAY_SYMDIFF","ARRAY_SYMDIFF1","ARRAY_SYMDIFFN","ARRAY_UNION","ASIN","ATAN","ATAN2","AVG","BASE64","BASE64_DECODE","BASE64_ENCODE","BITAND ","BITCLEAR ","BITNOT ","BITOR ","BITSET ","BITSHIFT ","BITTEST ","BITXOR ","CEIL","CLOCK_LOCAL","CLOCK_MILLIS","CLOCK_STR","CLOCK_TZ","CLOCK_UTC","COALESCE","CONCAT","CONCAT2","CONTAINS","CONTAINS_TOKEN","CONTAINS_TOKEN_LIKE","CONTAINS_TOKEN_REGEXP","COS","COUNT","COUNT","COUNTN","CUME_DIST","CURL","DATE_ADD_MILLIS","DATE_ADD_STR","DATE_DIFF_MILLIS","DATE_DIFF_STR","DATE_FORMAT_STR","DATE_PART_MILLIS","DATE_PART_STR","DATE_RANGE_MILLIS","DATE_RANGE_STR","DATE_TRUNC_MILLIS","DATE_TRUNC_STR","DECODE","DECODE_JSON","DEGREES","DENSE_RANK","DURATION_TO_STR","ENCODED_SIZE","ENCODE_JSON","EXP","FIRST_VALUE","FLOOR","GREATEST","HAS_TOKEN","IFINF","IFMISSING","IFMISSINGORNULL","IFNAN","IFNANORINF","IFNULL","INITCAP","ISARRAY","ISATOM","ISBITSET","ISBOOLEAN","ISNUMBER","ISOBJECT","ISSTRING","LAG","LAST_VALUE","LEAD","LEAST","LENGTH","LN","LOG","LOWER","LTRIM","MAX","MEAN","MEDIAN","META","MILLIS","MILLIS_TO_LOCAL","MILLIS_TO_STR","MILLIS_TO_TZ","MILLIS_TO_UTC","MILLIS_TO_ZONE_NAME","MIN","MISSINGIF","NANIF","NEGINFIF","NOW_LOCAL","NOW_MILLIS","NOW_STR","NOW_TZ","NOW_UTC","NTH_VALUE","NTILE","NULLIF","NVL","NVL2","OBJECT_ADD","OBJECT_CONCAT","OBJECT_INNER_PAIRS","OBJECT_INNER_VALUES","OBJECT_LENGTH","OBJECT_NAMES","OBJECT_PAIRS","OBJECT_PUT","OBJECT_REMOVE","OBJECT_RENAME","OBJECT_REPLACE","OBJECT_UNWRAP","OBJECT_VALUES","PAIRS","PERCENT_RANK","PI","POLY_LENGTH","POSINFIF","POSITION","POWER","RADIANS","RANDOM","RANK","RATIO_TO_REPORT","REGEXP_CONTAINS","REGEXP_LIKE","REGEXP_MATCHES","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGEX_CONTAINS","REGEX_LIKE","REGEX_MATCHES","REGEX_POSITION","REGEX_REPLACE","REGEX_SPLIT","REPEAT","REPLACE","REVERSE","ROUND","ROW_NUMBER","RTRIM","SEARCH","SEARCH_META","SEARCH_SCORE","SIGN","SIN","SPLIT","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DURATION","STR_TO_MILLIS","STR_TO_TZ","STR_TO_UTC","STR_TO_ZONE_NAME","SUBSTR","SUFFIXES","SUM","TAN","TITLE","TOARRAY","TOATOM","TOBOOLEAN","TOKENS","TOKENS","TONUMBER","TOOBJECT","TOSTRING","TRIM","TRUNC","UPPER","UUID","VARIANCE","VARIANCE_POP","VARIANCE_SAMP","VAR_POP","VAR_SAMP","WEEKDAY_MILLIS","WEEKDAY_STR","CAST"],Kc=["ADVISE","ALL","ALTER","ANALYZE","AND","ANY","ARRAY","AS","ASC","AT","BEGIN","BETWEEN","BINARY","BOOLEAN","BREAK","BUCKET","BUILD","BY","CALL","CASE","CAST","CLUSTER","COLLATE","COLLECTION","COMMIT","COMMITTED","CONNECT","CONTINUE","CORRELATED","COVER","CREATE","CURRENT","DATABASE","DATASET","DATASTORE","DECLARE","DECREMENT","DELETE","DERIVED","DESC","DESCRIBE","DISTINCT","DO","DROP","EACH","ELEMENT","ELSE","END","EVERY","EXCEPT","EXCLUDE","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FILTER","FIRST","FLATTEN","FLUSH","FOLLOWING","FOR","FORCE","FROM","FTS","FUNCTION","GOLANG","GRANT","GROUP","GROUPS","GSI","HASH","HAVING","IF","IGNORE","ILIKE","IN","INCLUDE","INCREMENT","INDEX","INFER","INLINE","INNER","INSERT","INTERSECT","INTO","IS","ISOLATION","JAVASCRIPT","JOIN","KEY","KEYS","KEYSPACE","KNOWN","LANGUAGE","LAST","LEFT","LET","LETTING","LEVEL","LIKE","LIMIT","LSM","MAP","MAPPING","MATCHED","MATERIALIZED","MERGE","MINUS","MISSING","NAMESPACE","NEST","NL","NO","NOT","NTH_VALUE","NULL","NULLS","NUMBER","OBJECT","OFFSET","ON","OPTION","OPTIONS","OR","ORDER","OTHERS","OUTER","OVER","PARSE","PARTITION","PASSWORD","PATH","POOL","PRECEDING","PREPARE","PRIMARY","PRIVATE","PRIVILEGE","PROBE","PROCEDURE","PUBLIC","RANGE","RAW","REALM","REDUCE","RENAME","RESPECT","RETURN","RETURNING","REVOKE","RIGHT","ROLE","ROLLBACK","ROW","ROWS","SATISFIES","SAVEPOINT","SCHEMA","SCOPE","SELECT","SELF","SEMI","SET","SHOW","SOME","START","STATISTICS","STRING","SYSTEM","THEN","TIES","TO","TRAN","TRANSACTION","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNDER","UNION","UNIQUE","UNKNOWN","UNNEST","UNSET","UPDATE","UPSERT","USE","USER","USING","VALIDATE","VALUE","VALUED","VALUES","VIA","VIEW","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WORK","XOR"],$c=[],Jc=x(["SELECT [ALL | DISTINCT]"]),zc=x(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED THEN","UPDATE SET","INSERT","NEST","UNNEST","RETURNING"]),Vi=x(["UPDATE","DELETE FROM","SET SCHEMA","ADVISE","ALTER INDEX","BEGIN TRANSACTION","BUILD INDEX","COMMIT TRANSACTION","CREATE COLLECTION","CREATE FUNCTION","CREATE INDEX","CREATE PRIMARY INDEX","CREATE SCOPE","DROP COLLECTION","DROP FUNCTION","DROP INDEX","DROP PRIMARY INDEX","DROP SCOPE","EXECUTE","EXECUTE FUNCTION","EXPLAIN","GRANT","INFER","PREPARE","REVOKE","ROLLBACK TRANSACTION","SAVEPOINT","SET TRANSACTION","UPDATE STATISTICS","UPSERT","LET","SET CURRENT SCHEMA","SHOW","USE [PRIMARY] KEYS"]),Qc=x(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),Zc=x(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","INNER JOIN"]),qc=x(["{ROWS | RANGE | GROUPS} BETWEEN"]),eC=x([]),tC={name:"n1ql",tokenizerOptions:{reservedSelect:Jc,reservedClauses:[...zc,...Vi],reservedSetOperations:Qc,reservedJoins:Zc,reservedKeywordPhrases:qc,reservedDataTypePhrases:eC,supportsXor:!0,reservedKeywords:Kc,reservedDataTypes:$c,reservedFunctionNames:kc,stringTypes:['""-bs',"''-bs"],identTypes:["``"],extraParens:["[]","{}"],paramTypes:{positional:!0,numbered:["$"],named:["$"]},lineCommentTypes:["#","--"],operators:["%","==",":","||"]},formatOptions:{onelineClauses:Vi}},EC=["ADD","AGENT","AGGREGATE","ALL","ALTER","AND","ANY","ARROW","AS","ASC","AT","ATTRIBUTE","AUTHID","AVG","BEGIN","BETWEEN","BLOCK","BODY","BOTH","BOUND","BULK","BY","BYTE","CALL","CALLING","CASCADE","CASE","CHARSET","CHARSETFORM","CHARSETID","CHECK","CLOSE","CLUSTER","CLUSTERS","COLAUTH","COLLECT","COLUMNS","COMMENT","COMMIT","COMMITTED","COMPILED","COMPRESS","CONNECT","CONSTANT","CONSTRUCTOR","CONTEXT","CONVERT","COUNT","CRASH","CREATE","CURRENT","CURSOR","CUSTOMDATUM","DANGLING","DATA","DAY","DECLARE","DEFAULT","DEFINE","DELETE","DESC","DETERMINISTIC","DISTINCT","DROP","DURATION","ELEMENT","ELSE","ELSIF","EMPTY","END","ESCAPE","EXCEPT","EXCEPTION","EXCEPTIONS","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FINAL","FIXED","FOR","FORALL","FORCE","FORM","FROM","FUNCTION","GENERAL","GOTO","GRANT","GROUP","HASH","HAVING","HEAP","HIDDEN","HOUR","IDENTIFIED","IF","IMMEDIATE","IN","INCLUDING","INDEX","INDEXES","INDICATOR","INDICES","INFINITE","INSERT","INSTANTIABLE","INTERFACE","INTERSECT","INTERVAL","INTO","INVALIDATE","IS","ISOLATION","JAVA","LANGUAGE","LARGE","LEADING","LENGTH","LEVEL","LIBRARY","LIKE","LIKE2","LIKE4","LIKEC","LIMIT","LIMITED","LOCAL","LOCK","LOOP","MAP","MAX","MAXLEN","MEMBER","MERGE","MIN","MINUS","MINUTE","MOD","MODE","MODIFY","MONTH","MULTISET","NAME","NAN","NATIONAL","NATIVE","NEW","NOCOMPRESS","NOCOPY","NOT","NOWAIT","NULL","OBJECT","OCICOLL","OCIDATE","OCIDATETIME","OCIDURATION","OCIINTERVAL","OCILOBLOCATOR","OCINUMBER","OCIRAW","OCIREF","OCIREFCURSOR","OCIROWID","OCISTRING","OCITYPE","OF","ON","ONLY","OPAQUE","OPEN","OPERATOR","OPTION","OR","ORACLE","ORADATA","ORDER","OVERLAPS","ORGANIZATION","ORLANY","ORLVARY","OTHERS","OUT","OVERRIDING","PACKAGE","PARALLEL_ENABLE","PARAMETER","PARAMETERS","PARTITION","PASCAL","PIPE","PIPELINED","PRAGMA","PRIOR","PRIVATE","PROCEDURE","PUBLIC","RAISE","RANGE","READ","RECORD","REF","REFERENCE","REM","REMAINDER","RENAME","RESOURCE","RESULT","RETURN","RETURNING","REVERSE","REVOKE","ROLLBACK","ROW","SAMPLE","SAVE","SAVEPOINT","SB1","SB2","SB4","SECOND","SEGMENT","SELECT","SELF","SEPARATE","SEQUENCE","SERIALIZABLE","SET","SHARE","SHORT","SIZE","SIZE_T","SOME","SPARSE","SQL","SQLCODE","SQLDATA","SQLNAME","SQLSTATE","STANDARD","START","STATIC","STDDEV","STORED","STRING","STRUCT","STYLE","SUBMULTISET","SUBPARTITION","SUBSTITUTABLE","SUBTYPE","SUM","SYNONYM","TABAUTH","TABLE","TDO","THE","THEN","TIME","TIMEZONE_ABBR","TIMEZONE_HOUR","TIMEZONE_MINUTE","TIMEZONE_REGION","TO","TRAILING","TRANSAC","TRANSACTIONAL","TRUSTED","TYPE","UB1","UB2","UB4","UNDER","UNION","UNIQUE","UNSIGNED","UNTRUSTED","UPDATE","USE","USING","VALIST","VALUE","VALUES","VARIABLE","VARIANCE","VARRAY","VIEW","VIEWS","VOID","WHEN","WHERE","WHILE","WITH","WORK","WRAPPED","WRITE","YEAR","ZONE"],nC=["ARRAY","BFILE_BASE","BINARY","BLOB_BASE","CHAR VARYING","CHAR_BASE","CHAR","CHARACTER VARYING","CHARACTER","CLOB_BASE","DATE_BASE","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTERVAL DAY","INTERVAL YEAR","LONG","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR VARYING","NCHAR","NCHAR","NUMBER_BASE","NUMBER","NUMBERIC","NVARCHAR","PRECISION","RAW","TIMESTAMP","UROWID","VARCHAR","VARCHAR2"],rC=["ABS","ACOS","ASIN","ATAN","ATAN2","BITAND","CEIL","COS","COSH","EXP","FLOOR","LN","LOG","MOD","NANVL","POWER","REMAINDER","ROUND","SIGN","SIN","SINH","SQRT","TAN","TANH","TRUNC","WIDTH_BUCKET","CHR","CONCAT","INITCAP","LOWER","LPAD","LTRIM","NLS_INITCAP","NLS_LOWER","NLSSORT","NLS_UPPER","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","RPAD","RTRIM","SOUNDEX","SUBSTR","TRANSLATE","TREAT","TRIM","UPPER","NLS_CHARSET_DECL_LEN","NLS_CHARSET_ID","NLS_CHARSET_NAME","ASCII","INSTR","LENGTH","REGEXP_INSTR","ADD_MONTHS","CURRENT_DATE","CURRENT_TIMESTAMP","DBTIMEZONE","EXTRACT","FROM_TZ","LAST_DAY","LOCALTIMESTAMP","MONTHS_BETWEEN","NEW_TIME","NEXT_DAY","NUMTODSINTERVAL","NUMTOYMINTERVAL","ROUND","SESSIONTIMEZONE","SYS_EXTRACT_UTC","SYSDATE","SYSTIMESTAMP","TO_CHAR","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_DSINTERVAL","TO_YMINTERVAL","TRUNC","TZ_OFFSET","GREATEST","LEAST","ASCIISTR","BIN_TO_NUM","CAST","CHARTOROWID","COMPOSE","CONVERT","DECOMPOSE","HEXTORAW","NUMTODSINTERVAL","NUMTOYMINTERVAL","RAWTOHEX","RAWTONHEX","ROWIDTOCHAR","ROWIDTONCHAR","SCN_TO_TIMESTAMP","TIMESTAMP_TO_SCN","TO_BINARY_DOUBLE","TO_BINARY_FLOAT","TO_CHAR","TO_CLOB","TO_DATE","TO_DSINTERVAL","TO_LOB","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_DSINTERVAL","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_YMINTERVAL","TO_YMINTERVAL","TRANSLATE","UNISTR","BFILENAME","EMPTY_BLOB,","EMPTY_CLOB","CARDINALITY","COLLECT","POWERMULTISET","POWERMULTISET_BY_CARDINALITY","SET","SYS_CONNECT_BY_PATH","CLUSTER_ID","CLUSTER_PROBABILITY","CLUSTER_SET","FEATURE_ID","FEATURE_SET","FEATURE_VALUE","PREDICTION","PREDICTION_COST","PREDICTION_DETAILS","PREDICTION_PROBABILITY","PREDICTION_SET","APPENDCHILDXML","DELETEXML","DEPTH","EXTRACT","EXISTSNODE","EXTRACTVALUE","INSERTCHILDXML","INSERTXMLBEFORE","PATH","SYS_DBURIGEN","SYS_XMLAGG","SYS_XMLGEN","UPDATEXML","XMLAGG","XMLCDATA","XMLCOLATTVAL","XMLCOMMENT","XMLCONCAT","XMLFOREST","XMLPARSE","XMLPI","XMLQUERY","XMLROOT","XMLSEQUENCE","XMLSERIALIZE","XMLTABLE","XMLTRANSFORM","DECODE","DUMP","ORA_HASH","VSIZE","COALESCE","LNNVL","NULLIF","NVL","NVL2","SYS_CONTEXT","SYS_GUID","SYS_TYPEID","UID","USER","USERENV","AVG","COLLECT","CORR","CORR_S","CORR_K","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","FIRST","GROUP_ID","GROUPING","GROUPING_ID","LAST","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANK","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","STATS_BINOMIAL_TEST","STATS_CROSSTAB","STATS_F_TEST","STATS_KS_TEST","STATS_MODE","STATS_MW_TEST","STATS_ONE_WAY_ANOVA","STATS_T_TEST_ONE","STATS_T_TEST_PAIRED","STATS_T_TEST_INDEP","STATS_T_TEST_INDEPU","STATS_WSR_TEST","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTILE","RATIO_TO_REPORT","ROW_NUMBER","DEREF","MAKE_REF","REF","REFTOHEX","VALUE","CV","ITERATION_NUMBER","PRESENTNNV","PRESENTV","PREVIOUS"],sC=x(["SELECT [ALL | DISTINCT | UNIQUE]"]),TC=x(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","INSERT [INTO | ALL INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [THEN]","UPDATE SET","RETURNING"]),Wi=x(["CREATE [GLOBAL TEMPORARY | PRIVATE TEMPORARY | SHARDED | DUPLICATED | IMMUTABLE BLOCKCHAIN | BLOCKCHAIN | IMMUTABLE] TABLE"]),Tl=x(["CREATE [OR REPLACE] [NO FORCE | FORCE] [EDITIONING | EDITIONABLE | EDITIONABLE EDITIONING | NONEDITIONABLE] VIEW","CREATE MATERIALIZED VIEW","UPDATE [ONLY]","DELETE FROM [ONLY]","DROP TABLE","ALTER TABLE","ADD","DROP {COLUMN | UNUSED COLUMNS | COLUMNS CONTINUE}","MODIFY","RENAME TO","RENAME COLUMN","TRUNCATE TABLE","SET SCHEMA","BEGIN","CONNECT BY","DECLARE","EXCEPT","EXCEPTION","LOOP","START WITH"]),lC=x(["UNION [ALL]","MINUS","INTERSECT"]),aC=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | OUTER} APPLY"]),oC=x(["ON {UPDATE | DELETE} [SET NULL]","ON COMMIT","{ROWS | RANGE} BETWEEN"]),iC=x([]),RC={name:"plsql",tokenizerOptions:{reservedSelect:sC,reservedClauses:[...TC,...Wi,...Tl],reservedSetOperations:lC,reservedJoins:aC,reservedKeywordPhrases:oC,reservedDataTypePhrases:iC,supportsXor:!0,reservedKeywords:EC,reservedDataTypes:nC,reservedFunctionNames:rC,stringTypes:[{quote:"''-qq",prefixes:["N"]},{quote:"q''",prefixes:["N"]}],identTypes:['""-qq'],identChars:{rest:"$#"},variableTypes:[{regex:"&{1,2}[A-Za-z][A-Za-z0-9_$#]*"}],paramTypes:{numbered:[":"],named:[":"]},operators:["**",":=","%","~=","^=",">>","<<","=>","@","||"],postProcess:AC},formatOptions:{alwaysDenseOperators:["@"],onelineClauses:[...Wi,...Tl],tabularOnelineClauses:Tl}};function AC(e){let t=kn;return e.map(E=>An.SET(E)&&An.BY(t)?Object.assign(Object.assign({},E),{type:V.RESERVED_KEYWORD}):(HS(E.type)&&(t=E),E))}const SC=["ABS","ACOS","ACOSD","ACOSH","ASIN","ASIND","ASINH","ATAN","ATAN2","ATAN2D","ATAND","ATANH","CBRT","CEIL","CEILING","COS","COSD","COSH","COT","COTD","DEGREES","DIV","EXP","FACTORIAL","FLOOR","GCD","LCM","LN","LOG","LOG10","MIN_SCALE","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SCALE","SETSEED","SIGN","SIN","SIND","SINH","SQRT","TAN","TAND","TANH","TRIM_SCALE","TRUNC","WIDTH_BUCKET","ABS","ASCII","BIT_LENGTH","BTRIM","CHARACTER_LENGTH","CHAR_LENGTH","CHR","CONCAT","CONCAT_WS","FORMAT","INITCAP","LEFT","LENGTH","LOWER","LPAD","LTRIM","MD5","NORMALIZE","OCTET_LENGTH","OVERLAY","PARSE_IDENT","PG_CLIENT_ENCODING","POSITION","QUOTE_IDENT","QUOTE_LITERAL","QUOTE_NULLABLE","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REPEAT","REPLACE","REVERSE","RIGHT","RPAD","RTRIM","SPLIT_PART","SPRINTF","STARTS_WITH","STRING_AGG","STRING_TO_ARRAY","STRING_TO_TABLE","STRPOS","SUBSTR","SUBSTRING","TO_ASCII","TO_HEX","TRANSLATE","TRIM","UNISTR","UPPER","BIT_COUNT","BIT_LENGTH","BTRIM","CONVERT","CONVERT_FROM","CONVERT_TO","DECODE","ENCODE","GET_BIT","GET_BYTE","LENGTH","LTRIM","MD5","OCTET_LENGTH","OVERLAY","POSITION","RTRIM","SET_BIT","SET_BYTE","SHA224","SHA256","SHA384","SHA512","STRING_AGG","SUBSTR","SUBSTRING","TRIM","BIT_COUNT","BIT_LENGTH","GET_BIT","LENGTH","OCTET_LENGTH","OVERLAY","POSITION","SET_BIT","SUBSTRING","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","TO_CHAR","TO_DATE","TO_NUMBER","TO_TIMESTAMP","CLOCK_TIMESTAMP","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_BIN","DATE_PART","DATE_TRUNC","EXTRACT","ISFINITE","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","LOCALTIME","LOCALTIMESTAMP","MAKE_DATE","MAKE_INTERVAL","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","NOW","PG_SLEEP","PG_SLEEP_FOR","PG_SLEEP_UNTIL","STATEMENT_TIMESTAMP","TIMEOFDAY","TO_TIMESTAMP","TRANSACTION_TIMESTAMP","ENUM_FIRST","ENUM_LAST","ENUM_RANGE","AREA","BOUND_BOX","BOX","CENTER","CIRCLE","DIAGONAL","DIAMETER","HEIGHT","ISCLOSED","ISOPEN","LENGTH","LINE","LSEG","NPOINTS","PATH","PCLOSE","POINT","POLYGON","POPEN","RADIUS","SLOPE","WIDTH","ABBREV","BROADCAST","FAMILY","HOST","HOSTMASK","INET_MERGE","INET_SAME_FAMILY","MACADDR8_SET7BIT","MASKLEN","NETMASK","NETWORK","SET_MASKLEN","TRUNC","ARRAY_TO_TSVECTOR","GET_CURRENT_TS_CONFIG","JSONB_TO_TSVECTOR","JSON_TO_TSVECTOR","LENGTH","NUMNODE","PHRASETO_TSQUERY","PLAINTO_TSQUERY","QUERYTREE","SETWEIGHT","STRIP","TO_TSQUERY","TO_TSVECTOR","TSQUERY_PHRASE","TSVECTOR_TO_ARRAY","TS_DEBUG","TS_DELETE","TS_FILTER","TS_HEADLINE","TS_LEXIZE","TS_PARSE","TS_RANK","TS_RANK_CD","TS_REWRITE","TS_STAT","TS_TOKEN_TYPE","WEBSEARCH_TO_TSQUERY","GEN_RANDOM_UUID","UUIDV4","UUIDV7","UUID_EXTRACT_TIMESTAMP","UUID_EXTRACT_VERSION","CURSOR_TO_XML","CURSOR_TO_XMLSCHEMA","DATABASE_TO_XML","DATABASE_TO_XMLSCHEMA","DATABASE_TO_XML_AND_XMLSCHEMA","NEXTVAL","QUERY_TO_XML","QUERY_TO_XMLSCHEMA","QUERY_TO_XML_AND_XMLSCHEMA","SCHEMA_TO_XML","SCHEMA_TO_XMLSCHEMA","SCHEMA_TO_XML_AND_XMLSCHEMA","STRING","TABLE_TO_XML","TABLE_TO_XMLSCHEMA","TABLE_TO_XML_AND_XMLSCHEMA","XMLAGG","XMLCOMMENT","XMLCONCAT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLPARSE","XMLPI","XMLROOT","XMLSERIALIZE","XMLTABLE","XML_IS_WELL_FORMED","XML_IS_WELL_FORMED_CONTENT","XML_IS_WELL_FORMED_DOCUMENT","XPATH","XPATH_EXISTS","ARRAY_TO_JSON","JSONB_AGG","JSONB_ARRAY_ELEMENTS","JSONB_ARRAY_ELEMENTS_TEXT","JSONB_ARRAY_LENGTH","JSONB_BUILD_ARRAY","JSONB_BUILD_OBJECT","JSONB_EACH","JSONB_EACH_TEXT","JSONB_EXTRACT_PATH","JSONB_EXTRACT_PATH_TEXT","JSONB_INSERT","JSONB_OBJECT","JSONB_OBJECT_AGG","JSONB_OBJECT_KEYS","JSONB_PATH_EXISTS","JSONB_PATH_EXISTS_TZ","JSONB_PATH_MATCH","JSONB_PATH_MATCH_TZ","JSONB_PATH_QUERY","JSONB_PATH_QUERY_ARRAY","JSONB_PATH_QUERY_ARRAY_TZ","JSONB_PATH_QUERY_FIRST","JSONB_PATH_QUERY_FIRST_TZ","JSONB_PATH_QUERY_TZ","JSONB_POPULATE_RECORD","JSONB_POPULATE_RECORDSET","JSONB_PRETTY","JSONB_SET","JSONB_SET_LAX","JSONB_STRIP_NULLS","JSONB_TO_RECORD","JSONB_TO_RECORDSET","JSONB_TYPEOF","JSON_AGG","JSON_ARRAY_ELEMENTS","JSON_ARRAY_ELEMENTS_TEXT","JSON_ARRAY_LENGTH","JSON_BUILD_ARRAY","JSON_BUILD_OBJECT","JSON_EACH","JSON_EACH_TEXT","JSON_EXTRACT_PATH","JSON_EXTRACT_PATH_TEXT","JSON_OBJECT","JSON_OBJECT_AGG","JSON_OBJECT_KEYS","JSON_POPULATE_RECORD","JSON_POPULATE_RECORDSET","JSON_STRIP_NULLS","JSON_TO_RECORD","JSON_TO_RECORDSET","JSON_TYPEOF","ROW_TO_JSON","TO_JSON","TO_JSONB","TO_TIMESTAMP","CURRVAL","LASTVAL","NEXTVAL","SETVAL","COALESCE","GREATEST","LEAST","NULLIF","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_DIMS","ARRAY_FILL","ARRAY_LENGTH","ARRAY_LOWER","ARRAY_NDIMS","ARRAY_POSITION","ARRAY_POSITIONS","ARRAY_PREPEND","ARRAY_REMOVE","ARRAY_REPLACE","ARRAY_TO_STRING","ARRAY_UPPER","CARDINALITY","STRING_TO_ARRAY","TRIM_ARRAY","UNNEST","ISEMPTY","LOWER","LOWER_INC","LOWER_INF","MULTIRANGE","RANGE_MERGE","UPPER","UPPER_INC","UPPER_INF","ARRAY_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COALESCE","CORR","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","EVERY","GROUPING","JSONB_AGG","JSONB_OBJECT_AGG","JSON_AGG","JSON_OBJECT_AGG","MAX","MIN","MODE","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANGE_AGG","RANGE_INTERSECT_AGG","RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","TO_JSON","TO_JSONB","VARIANCE","VAR_POP","VAR_SAMP","XMLAGG","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","GENERATE_SERIES","GENERATE_SUBSCRIPTS","ACLDEFAULT","ACLEXPLODE","COL_DESCRIPTION","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_QUERY","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","FORMAT_TYPE","HAS_ANY_COLUMN_PRIVILEGE","HAS_COLUMN_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE","HAS_FUNCTION_PRIVILEGE","HAS_LANGUAGE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_SEQUENCE_PRIVILEGE","HAS_SERVER_PRIVILEGE","HAS_TABLESPACE_PRIVILEGE","HAS_TABLE_PRIVILEGE","HAS_TYPE_PRIVILEGE","INET_CLIENT_ADDR","INET_CLIENT_PORT","INET_SERVER_ADDR","INET_SERVER_PORT","MAKEACLITEM","OBJ_DESCRIPTION","PG_BACKEND_PID","PG_BLOCKING_PIDS","PG_COLLATION_IS_VISIBLE","PG_CONF_LOAD_TIME","PG_CONTROL_CHECKPOINT","PG_CONTROL_INIT","PG_CONTROL_SYSTEM","PG_CONVERSION_IS_VISIBLE","PG_CURRENT_LOGFILE","PG_CURRENT_SNAPSHOT","PG_CURRENT_XACT_ID","PG_CURRENT_XACT_ID_IF_ASSIGNED","PG_DESCRIBE_OBJECT","PG_FUNCTION_IS_VISIBLE","PG_GET_CATALOG_FOREIGN_KEYS","PG_GET_CONSTRAINTDEF","PG_GET_EXPR","PG_GET_FUNCTIONDEF","PG_GET_FUNCTION_ARGUMENTS","PG_GET_FUNCTION_IDENTITY_ARGUMENTS","PG_GET_FUNCTION_RESULT","PG_GET_INDEXDEF","PG_GET_KEYWORDS","PG_GET_OBJECT_ADDRESS","PG_GET_OWNED_SEQUENCE","PG_GET_RULEDEF","PG_GET_SERIAL_SEQUENCE","PG_GET_STATISTICSOBJDEF","PG_GET_TRIGGERDEF","PG_GET_USERBYID","PG_GET_VIEWDEF","PG_HAS_ROLE","PG_IDENTIFY_OBJECT","PG_IDENTIFY_OBJECT_AS_ADDRESS","PG_INDEXAM_HAS_PROPERTY","PG_INDEX_COLUMN_HAS_PROPERTY","PG_INDEX_HAS_PROPERTY","PG_IS_OTHER_TEMP_SCHEMA","PG_JIT_AVAILABLE","PG_LAST_COMMITTED_XACT","PG_LISTENING_CHANNELS","PG_MY_TEMP_SCHEMA","PG_NOTIFICATION_QUEUE_USAGE","PG_OPCLASS_IS_VISIBLE","PG_OPERATOR_IS_VISIBLE","PG_OPFAMILY_IS_VISIBLE","PG_OPTIONS_TO_TABLE","PG_POSTMASTER_START_TIME","PG_SAFE_SNAPSHOT_BLOCKING_PIDS","PG_SNAPSHOT_XIP","PG_SNAPSHOT_XMAX","PG_SNAPSHOT_XMIN","PG_STATISTICS_OBJ_IS_VISIBLE","PG_TABLESPACE_DATABASES","PG_TABLESPACE_LOCATION","PG_TABLE_IS_VISIBLE","PG_TRIGGER_DEPTH","PG_TS_CONFIG_IS_VISIBLE","PG_TS_DICT_IS_VISIBLE","PG_TS_PARSER_IS_VISIBLE","PG_TS_TEMPLATE_IS_VISIBLE","PG_TYPEOF","PG_TYPE_IS_VISIBLE","PG_VISIBLE_IN_SNAPSHOT","PG_XACT_COMMIT_TIMESTAMP","PG_XACT_COMMIT_TIMESTAMP_ORIGIN","PG_XACT_STATUS","PQSERVERVERSION","ROW_SECURITY_ACTIVE","SESSION_USER","SHOBJ_DESCRIPTION","TO_REGCLASS","TO_REGCOLLATION","TO_REGNAMESPACE","TO_REGOPER","TO_REGOPERATOR","TO_REGPROC","TO_REGPROCEDURE","TO_REGROLE","TO_REGTYPE","TXID_CURRENT","TXID_CURRENT_IF_ASSIGNED","TXID_CURRENT_SNAPSHOT","TXID_SNAPSHOT_XIP","TXID_SNAPSHOT_XMAX","TXID_SNAPSHOT_XMIN","TXID_STATUS","TXID_VISIBLE_IN_SNAPSHOT","USER","VERSION","BRIN_DESUMMARIZE_RANGE","BRIN_SUMMARIZE_NEW_VALUES","BRIN_SUMMARIZE_RANGE","CONVERT_FROM","CURRENT_SETTING","GIN_CLEAN_PENDING_LIST","PG_ADVISORY_LOCK","PG_ADVISORY_LOCK_SHARED","PG_ADVISORY_UNLOCK","PG_ADVISORY_UNLOCK_ALL","PG_ADVISORY_UNLOCK_SHARED","PG_ADVISORY_XACT_LOCK","PG_ADVISORY_XACT_LOCK_SHARED","PG_BACKUP_START_TIME","PG_CANCEL_BACKEND","PG_COLLATION_ACTUAL_VERSION","PG_COLUMN_COMPRESSION","PG_COLUMN_SIZE","PG_COPY_LOGICAL_REPLICATION_SLOT","PG_COPY_PHYSICAL_REPLICATION_SLOT","PG_CREATE_LOGICAL_REPLICATION_SLOT","PG_CREATE_PHYSICAL_REPLICATION_SLOT","PG_CREATE_RESTORE_POINT","PG_CURRENT_WAL_FLUSH_LSN","PG_CURRENT_WAL_INSERT_LSN","PG_CURRENT_WAL_LSN","PG_DATABASE_SIZE","PG_DROP_REPLICATION_SLOT","PG_EXPORT_SNAPSHOT","PG_FILENODE_RELATION","PG_GET_WAL_REPLAY_PAUSE_STATE","PG_IMPORT_SYSTEM_COLLATIONS","PG_INDEXES_SIZE","PG_IS_IN_BACKUP","PG_IS_IN_RECOVERY","PG_IS_WAL_REPLAY_PAUSED","PG_LAST_WAL_RECEIVE_LSN","PG_LAST_WAL_REPLAY_LSN","PG_LAST_XACT_REPLAY_TIMESTAMP","PG_LOGICAL_EMIT_MESSAGE","PG_LOGICAL_SLOT_GET_BINARY_CHANGES","PG_LOGICAL_SLOT_GET_CHANGES","PG_LOGICAL_SLOT_PEEK_BINARY_CHANGES","PG_LOGICAL_SLOT_PEEK_CHANGES","PG_LOG_BACKEND_MEMORY_CONTEXTS","PG_LS_ARCHIVE_STATUSDIR","PG_LS_DIR","PG_LS_LOGDIR","PG_LS_TMPDIR","PG_LS_WALDIR","PG_PARTITION_ANCESTORS","PG_PARTITION_ROOT","PG_PARTITION_TREE","PG_PROMOTE","PG_READ_BINARY_FILE","PG_READ_FILE","PG_RELATION_FILENODE","PG_RELATION_FILEPATH","PG_RELATION_SIZE","PG_RELOAD_CONF","PG_REPLICATION_ORIGIN_ADVANCE","PG_REPLICATION_ORIGIN_CREATE","PG_REPLICATION_ORIGIN_DROP","PG_REPLICATION_ORIGIN_OID","PG_REPLICATION_ORIGIN_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_IS_SETUP","PG_REPLICATION_ORIGIN_SESSION_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_RESET","PG_REPLICATION_ORIGIN_SESSION_SETUP","PG_REPLICATION_ORIGIN_XACT_RESET","PG_REPLICATION_ORIGIN_XACT_SETUP","PG_REPLICATION_SLOT_ADVANCE","PG_ROTATE_LOGFILE","PG_SIZE_BYTES","PG_SIZE_PRETTY","PG_START_BACKUP","PG_STAT_FILE","PG_STOP_BACKUP","PG_SWITCH_WAL","PG_TABLESPACE_SIZE","PG_TABLE_SIZE","PG_TERMINATE_BACKEND","PG_TOTAL_RELATION_SIZE","PG_TRY_ADVISORY_LOCK","PG_TRY_ADVISORY_LOCK_SHARED","PG_TRY_ADVISORY_XACT_LOCK","PG_TRY_ADVISORY_XACT_LOCK_SHARED","PG_WALFILE_NAME","PG_WALFILE_NAME_OFFSET","PG_WAL_LSN_DIFF","PG_WAL_REPLAY_PAUSE","PG_WAL_REPLAY_RESUME","SET_CONFIG","SUPPRESS_REDUNDANT_UPDATES_TRIGGER","TSVECTOR_UPDATE_TRIGGER","TSVECTOR_UPDATE_TRIGGER_COLUMN","PG_EVENT_TRIGGER_DDL_COMMANDS","PG_EVENT_TRIGGER_DROPPED_OBJECTS","PG_EVENT_TRIGGER_TABLE_REWRITE_OID","PG_EVENT_TRIGGER_TABLE_REWRITE_REASON","PG_GET_OBJECT_ADDRESS","PG_MCV_LIST_ITEMS","CAST"],NC=["ALL","ANALYSE","ANALYZE","AND","ANY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BETWEEN","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DAY","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","EXISTS","FALSE","FETCH","FILTER","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","HOUR","ILIKE","IN","INITIALLY","INNER","INOUT","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","MINUTE","MONTH","NATURAL","NOT","NOTNULL","NULL","NULLIF","OFFSET","ON","ONLY","OR","ORDER","OUT","OUTER","OVER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","ROW","SECOND","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VALUES","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","YEAR"],IC=["ARRAY","BIGINT","BIT","BIT VARYING","BOOL","BOOLEAN","CHAR","CHARACTER","CHARACTER VARYING","DECIMAL","DEC","DOUBLE","ENUM","FLOAT","INT","INTEGER","INTERVAL","NCHAR","NUMERIC","JSON","JSONB","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TIMESTAMPTZ","UUID","VARCHAR","XML","ZONE"],uC=x(["SELECT [ALL | DISTINCT]"]),OC=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR {UPDATE | NO KEY UPDATE | SHARE | KEY SHARE} [OF]","INSERT INTO","VALUES","DEFAULT VALUES","SET","RETURNING"]),Xi=x(["CREATE [GLOBAL | LOCAL] [TEMPORARY | TEMP | UNLOGGED] TABLE [IF NOT EXISTS]"]),ll=x(["CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW","CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE [ONLY]","WHERE CURRENT OF","ON CONFLICT","DELETE FROM [ONLY]","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS] [ONLY]","ALTER TABLE ALL IN TABLESPACE","RENAME [COLUMN]","RENAME TO","ADD [COLUMN] [IF NOT EXISTS]","DROP [COLUMN] [IF EXISTS]","ALTER [COLUMN]","SET DATA TYPE","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","TRUNCATE [TABLE] [ONLY]","SET SCHEMA","AFTER","ABORT","ALTER AGGREGATE","ALTER COLLATION","ALTER CONVERSION","ALTER DATABASE","ALTER DEFAULT PRIVILEGES","ALTER DOMAIN","ALTER EVENT TRIGGER","ALTER EXTENSION","ALTER FOREIGN DATA WRAPPER","ALTER FOREIGN TABLE","ALTER FUNCTION","ALTER GROUP","ALTER INDEX","ALTER LANGUAGE","ALTER LARGE OBJECT","ALTER MATERIALIZED VIEW","ALTER OPERATOR","ALTER OPERATOR CLASS","ALTER OPERATOR FAMILY","ALTER POLICY","ALTER PROCEDURE","ALTER PUBLICATION","ALTER ROLE","ALTER ROUTINE","ALTER RULE","ALTER SCHEMA","ALTER SEQUENCE","ALTER SERVER","ALTER STATISTICS","ALTER SUBSCRIPTION","ALTER SYSTEM","ALTER TABLESPACE","ALTER TEXT SEARCH CONFIGURATION","ALTER TEXT SEARCH DICTIONARY","ALTER TEXT SEARCH PARSER","ALTER TEXT SEARCH TEMPLATE","ALTER TRIGGER","ALTER TYPE","ALTER USER","ALTER USER MAPPING","ALTER VIEW","ANALYZE","BEGIN","CALL","CHECKPOINT","CLOSE","CLUSTER","COMMENT ON","COMMIT","COMMIT PREPARED","COPY","CREATE ACCESS METHOD","CREATE [OR REPLACE] AGGREGATE","CREATE CAST","CREATE COLLATION","CREATE [DEFAULT] CONVERSION","CREATE DATABASE","CREATE DOMAIN","CREATE EVENT TRIGGER","CREATE EXTENSION","CREATE FOREIGN DATA WRAPPER","CREATE FOREIGN TABLE","CREATE [OR REPLACE] FUNCTION","CREATE GROUP","CREATE [UNIQUE] INDEX","CREATE [OR REPLACE] [TRUSTED] [PROCEDURAL] LANGUAGE","CREATE OPERATOR","CREATE OPERATOR CLASS","CREATE OPERATOR FAMILY","CREATE POLICY","CREATE [OR REPLACE] PROCEDURE","CREATE PUBLICATION","CREATE ROLE","CREATE [OR REPLACE] RULE","CREATE SCHEMA [AUTHORIZATION]","CREATE [TEMPORARY | TEMP | UNLOGGED] SEQUENCE","CREATE SERVER","CREATE STATISTICS","CREATE SUBSCRIPTION","CREATE TABLESPACE","CREATE TEXT SEARCH CONFIGURATION","CREATE TEXT SEARCH DICTIONARY","CREATE TEXT SEARCH PARSER","CREATE TEXT SEARCH TEMPLATE","CREATE [OR REPLACE] TRANSFORM","CREATE [OR REPLACE] [CONSTRAINT] TRIGGER","CREATE TYPE","CREATE USER","CREATE USER MAPPING","DEALLOCATE","DECLARE","DISCARD","DROP ACCESS METHOD","DROP AGGREGATE","DROP CAST","DROP COLLATION","DROP CONVERSION","DROP DATABASE","DROP DOMAIN","DROP EVENT TRIGGER","DROP EXTENSION","DROP FOREIGN DATA WRAPPER","DROP FOREIGN TABLE","DROP FUNCTION","DROP GROUP","DROP IDENTITY","DROP INDEX","DROP LANGUAGE","DROP MATERIALIZED VIEW [IF EXISTS]","DROP OPERATOR","DROP OPERATOR CLASS","DROP OPERATOR FAMILY","DROP OWNED","DROP POLICY","DROP PROCEDURE","DROP PUBLICATION","DROP ROLE","DROP ROUTINE","DROP RULE","DROP SCHEMA","DROP SEQUENCE","DROP SERVER","DROP STATISTICS","DROP SUBSCRIPTION","DROP TABLESPACE","DROP TEXT SEARCH CONFIGURATION","DROP TEXT SEARCH DICTIONARY","DROP TEXT SEARCH PARSER","DROP TEXT SEARCH TEMPLATE","DROP TRANSFORM","DROP TRIGGER","DROP TYPE","DROP USER","DROP USER MAPPING","DROP VIEW","EXECUTE","EXPLAIN","FETCH","GRANT","IMPORT FOREIGN SCHEMA","LISTEN","LOAD","LOCK","MOVE","NOTIFY","OVERRIDING SYSTEM VALUE","PREPARE","PREPARE TRANSACTION","REASSIGN OWNED","REFRESH MATERIALIZED VIEW","REINDEX","RELEASE SAVEPOINT","RESET [ALL|ROLE|SESSION AUTHORIZATION]","REVOKE","ROLLBACK","ROLLBACK PREPARED","ROLLBACK TO SAVEPOINT","SAVEPOINT","SECURITY LABEL","SELECT INTO","SET CONSTRAINTS","SET ROLE","SET SESSION AUTHORIZATION","SET TRANSACTION","SHOW","START TRANSACTION","UNLISTEN","VACUUM"]),cC=x(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),CC=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),dC=x(["PRIMARY KEY","GENERATED {ALWAYS | BY DEFAULT} AS IDENTITY","ON {UPDATE | DELETE} [NO ACTION | RESTRICT | CASCADE | SET NULL | SET DEFAULT]","DO {NOTHING | UPDATE}","AS MATERIALIZED","{ROWS | RANGE | GROUPS} BETWEEN","IS [NOT] DISTINCT FROM","NULLS {FIRST | LAST}","WITH ORDINALITY"]),LC=x(["[TIMESTAMP | TIME] {WITH | WITHOUT} TIME ZONE"]),_C={name:"postgresql",tokenizerOptions:{reservedSelect:uC,reservedClauses:[...OC,...Xi,...ll],reservedSetOperations:cC,reservedJoins:CC,reservedKeywordPhrases:dC,reservedDataTypePhrases:LC,reservedKeywords:NC,reservedDataTypes:IC,reservedFunctionNames:SC,nestedBlockComments:!0,extraParens:["[]"],underscoresInNumbers:!0,stringTypes:["$$",{quote:"''-qq",prefixes:["U&"]},{quote:"''-qq-bs",prefixes:["E"],requirePrefix:!0},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:[{quote:'""-qq',prefixes:["U&"]}],identChars:{rest:"$"},paramTypes:{numbered:["$"]},operators:["%","^","|/","||/","@",":=","&","|","#","~","<<",">>","~>~","~<~","~>=~","~<=~","@-@","@@","##","<->","&&","&<","&>","<<|","&<|","|>>","|&>","<^","^>","?#","?-","?|","?-|","?||","@>","<@","~=","?","@?","?&","->","->>","#>","#>>","#-","=>",">>=","<<=","~~","~~*","!~~","!~~*","~","~*","!~","!~*","-|-","||","@@@","!!","^@","<%","%>","<<%","%>>","<<->","<->>","<<<->","<->>>","::",":","<#>","<=>","<+>","<~>","<%>"],operatorKeyword:!0},formatOptions:{alwaysDenseOperators:["::",":"],onelineClauses:[...Xi,...ll],tabularOnelineClauses:ll}},fC=["ANY_VALUE","APPROXIMATE PERCENTILE_DISC","AVG","COUNT","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","array_concat","array_flatten","get_array_length","split_to_array","subarray","BIT_AND","BIT_OR","BOOL_AND","BOOL_OR","COALESCE","DECODE","GREATEST","LEAST","NVL","NVL2","NULLIF","ADD_MONTHS","AT TIME ZONE","CONVERT_TIMEZONE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_CMP","DATE_CMP_TIMESTAMP","DATE_CMP_TIMESTAMPTZ","DATE_PART_YEAR","DATEADD","DATEDIFF","DATE_PART","DATE_TRUNC","EXTRACT","GETDATE","INTERVAL_CMP","LAST_DAY","MONTHS_BETWEEN","NEXT_DAY","SYSDATE","TIMEOFDAY","TIMESTAMP_CMP","TIMESTAMP_CMP_DATE","TIMESTAMP_CMP_TIMESTAMPTZ","TIMESTAMPTZ_CMP","TIMESTAMPTZ_CMP_DATE","TIMESTAMPTZ_CMP_TIMESTAMP","TIMEZONE","TO_TIMESTAMP","TRUNC","AddBBox","DropBBox","GeometryType","ST_AddPoint","ST_Angle","ST_Area","ST_AsBinary","ST_AsEWKB","ST_AsEWKT","ST_AsGeoJSON","ST_AsText","ST_Azimuth","ST_Boundary","ST_Collect","ST_Contains","ST_ContainsProperly","ST_ConvexHull","ST_CoveredBy","ST_Covers","ST_Crosses","ST_Dimension","ST_Disjoint","ST_Distance","ST_DistanceSphere","ST_DWithin","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_Force2D","ST_Force3D","ST_Force3DM","ST_Force3DZ","ST_Force4D","ST_GeometryN","ST_GeometryType","ST_GeomFromEWKB","ST_GeomFromEWKT","ST_GeomFromText","ST_GeomFromWKB","ST_InteriorRingN","ST_Intersects","ST_IsPolygonCCW","ST_IsPolygonCW","ST_IsClosed","ST_IsCollection","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_Length","ST_LengthSphere","ST_Length2D","ST_LineFromMultiPoint","ST_LineInterpolatePoint","ST_M","ST_MakeEnvelope","ST_MakeLine","ST_MakePoint","ST_MakePolygon","ST_MemSize","ST_MMax","ST_MMin","ST_Multi","ST_NDims","ST_NPoints","ST_NRings","ST_NumGeometries","ST_NumInteriorRings","ST_NumPoints","ST_Perimeter","ST_Perimeter2D","ST_Point","ST_PointN","ST_Points","ST_Polygon","ST_RemovePoint","ST_Reverse","ST_SetPoint","ST_SetSRID","ST_Simplify","ST_SRID","ST_StartPoint","ST_Touches","ST_Within","ST_X","ST_XMax","ST_XMin","ST_Y","ST_YMax","ST_YMin","ST_Z","ST_ZMax","ST_ZMin","SupportsBBox","CHECKSUM","FUNC_SHA1","FNV_HASH","MD5","SHA","SHA1","SHA2","HLL","HLL_CREATE_SKETCH","HLL_CARDINALITY","HLL_COMBINE","IS_VALID_JSON","IS_VALID_JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_EXTRACT_ARRAY_ELEMENT_TEXT","JSON_EXTRACT_PATH_TEXT","JSON_PARSE","JSON_SERIALIZE","ABS","ACOS","ASIN","ATAN","ATAN2","CBRT","CEILING","CEIL","COS","COT","DEGREES","DEXP","DLOG1","DLOG10","EXP","FLOOR","LN","LOG","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SIN","SIGN","SQRT","TAN","TO_HEX","TRUNC","EXPLAIN_MODEL","ASCII","BPCHARCMP","BTRIM","BTTEXT_PATTERN_CMP","CHAR_LENGTH","CHARACTER_LENGTH","CHARINDEX","CHR","COLLATE","CONCAT","CRC32","DIFFERENCE","INITCAP","LEFT","RIGHT","LEN","LENGTH","LOWER","LPAD","RPAD","LTRIM","OCTETINDEX","OCTET_LENGTH","POSITION","QUOTE_IDENT","QUOTE_LITERAL","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","REPLICATE","REVERSE","RTRIM","SOUNDEX","SPLIT_PART","STRPOS","STRTOL","SUBSTRING","TEXTLEN","TRANSLATE","TRIM","UPPER","decimal_precision","decimal_scale","is_array","is_bigint","is_boolean","is_char","is_decimal","is_float","is_integer","is_object","is_scalar","is_smallint","is_varchar","json_typeof","AVG","COUNT","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAST_VALUE","LAG","LEAD","LISTAGG","MAX","MEDIAN","MIN","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","CAST","CONVERT","TO_CHAR","TO_DATE","TO_NUMBER","TEXT_TO_INT_ALT","TEXT_TO_NUMERIC_ALT","CHANGE_QUERY_PRIORITY","CHANGE_SESSION_PRIORITY","CHANGE_USER_PRIORITY","CURRENT_SETTING","PG_CANCEL_BACKEND","PG_TERMINATE_BACKEND","REBOOT_CLUSTER","SET_CONFIG","CURRENT_AWS_ACCOUNT","CURRENT_DATABASE","CURRENT_NAMESPACE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","CURRENT_USER_ID","HAS_ASSUMEROLE_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_TABLE_PRIVILEGE","PG_BACKEND_PID","PG_GET_COLS","PG_GET_GRANTEE_BY_IAM_ROLE","PG_GET_IAM_ROLE_BY_USER","PG_GET_LATE_BINDING_VIEW_COLS","PG_LAST_COPY_COUNT","PG_LAST_COPY_ID","PG_LAST_UNLOAD_ID","PG_LAST_QUERY_ID","PG_LAST_UNLOAD_COUNT","SESSION_USER","SLICE_NUM","USER","VERSION"],pC=["AES128","AES256","ALL","ALLOWOVERWRITE","ANY","AS","ASC","AUTHORIZATION","BACKUP","BETWEEN","BINARY","BOTH","CHECK","COLUMN","CONSTRAINT","CREATE","CROSS","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DESC","DISABLE","DISTINCT","DO","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GROUP","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTO","IS","ISNULL","LANGUAGE","LEADING","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","MINUS","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RECOVER","REFERENCES","REJECTLOG","RESORT","RESPECT","RESTORE","SIMILAR","SNAPSHOT","SOME","SYSTEM","TABLE","TAG","TDES","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","UNIQUE","USING","VERBOSE","WALLET","WITHOUT","ACCEPTANYDATE","ACCEPTINVCHARS","BLANKSASNULL","DATEFORMAT","EMPTYASNULL","ENCODING","ESCAPE","EXPLICIT_IDS","FILLRECORD","IGNOREBLANKLINES","IGNOREHEADER","REMOVEQUOTES","ROUNDEC","TIMEFORMAT","TRIMBLANKS","TRUNCATECOLUMNS","COMPROWS","COMPUPDATE","MAXERROR","NOLOAD","STATUPDATE","FORMAT","CSV","DELIMITER","FIXEDWIDTH","SHAPEFILE","AVRO","JSON","PARQUET","ORC","ACCESS_KEY_ID","CREDENTIALS","ENCRYPTED","IAM_ROLE","MASTER_SYMMETRIC_KEY","SECRET_ACCESS_KEY","SESSION_TOKEN","BZIP2","GZIP","LZOP","ZSTD","MANIFEST","READRATIO","REGION","SSH","RAW","AZ64","BYTEDICT","DELTA","DELTA32K","LZO","MOSTLY8","MOSTLY16","MOSTLY32","RUNLENGTH","TEXT255","TEXT32K","CATALOG_ROLE","SECRET_ARN","EXTERNAL","AUTO","EVEN","KEY","PREDICATE","COMPRESSION"],mC=["ARRAY","BIGINT","BPCHAR","CHAR","CHARACTER VARYING","CHARACTER","DECIMAL","INT","INT2","INT4","INT8","INTEGER","NCHAR","NUMERIC","NVARCHAR","SMALLINT","TEXT","VARBYTE","VARCHAR"],DC=x(["SELECT [ALL | DISTINCT]"]),PC=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET"]),ji=x(["CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP] TABLE [IF NOT EXISTS]"]),al=x(["CREATE [OR REPLACE | MATERIALIZED] VIEW","UPDATE","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ALTER TABLE APPEND","ADD [COLUMN]","DROP [COLUMN]","RENAME TO","RENAME COLUMN","ALTER COLUMN","TYPE","ENCODE","TRUNCATE [TABLE]","ABORT","ALTER DATABASE","ALTER DATASHARE","ALTER DEFAULT PRIVILEGES","ALTER GROUP","ALTER MATERIALIZED VIEW","ALTER PROCEDURE","ALTER SCHEMA","ALTER USER","ANALYSE","ANALYZE","ANALYSE COMPRESSION","ANALYZE COMPRESSION","BEGIN","CALL","CANCEL","CLOSE","COMMIT","COPY","CREATE DATABASE","CREATE DATASHARE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL SCHEMA","CREATE EXTERNAL TABLE","CREATE FUNCTION","CREATE GROUP","CREATE LIBRARY","CREATE MODEL","CREATE PROCEDURE","CREATE SCHEMA","CREATE USER","DEALLOCATE","DECLARE","DESC DATASHARE","DROP DATABASE","DROP DATASHARE","DROP FUNCTION","DROP GROUP","DROP LIBRARY","DROP MODEL","DROP MATERIALIZED VIEW","DROP PROCEDURE","DROP SCHEMA","DROP USER","DROP VIEW","DROP","EXECUTE","EXPLAIN","FETCH","GRANT","LOCK","PREPARE","REFRESH MATERIALIZED VIEW","RESET","REVOKE","ROLLBACK","SELECT INTO","SET SESSION AUTHORIZATION","SET SESSION CHARACTERISTICS","SHOW","SHOW EXTERNAL TABLE","SHOW MODEL","SHOW DATASHARES","SHOW PROCEDURE","SHOW TABLE","SHOW VIEW","START TRANSACTION","UNLOAD","VACUUM"]),hC=x(["UNION [ALL]","EXCEPT","INTERSECT","MINUS"]),MC=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),UC=x(["NULL AS","DATA CATALOG","HIVE METASTORE","{ROWS | RANGE} BETWEEN"]),xC=x([]),yC={name:"redshift",tokenizerOptions:{reservedSelect:DC,reservedClauses:[...PC,...ji,...al],reservedSetOperations:hC,reservedJoins:MC,reservedKeywordPhrases:UC,reservedDataTypePhrases:xC,reservedKeywords:pC,reservedDataTypes:mC,reservedFunctionNames:fC,extraParens:["[]"],stringTypes:["''-qq"],identTypes:['""-qq'],identChars:{first:"#"},paramTypes:{numbered:["$"]},operators:["^","%","@","|/","||/","&","|","~","<<",">>","||","::"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...ji,...al],tabularOnelineClauses:al}},gC=["ADD","AFTER","ALL","ALTER","ANALYZE","AND","ANTI","ANY","ARCHIVE","AS","ASC","AT","AUTHORIZATION","BETWEEN","BOTH","BUCKET","BUCKETS","BY","CACHE","CASCADE","CAST","CHANGE","CHECK","CLEAR","CLUSTER","CLUSTERED","CODEGEN","COLLATE","COLLECTION","COLUMN","COLUMNS","COMMENT","COMMIT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONSTRAINT","COST","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATA","DATABASE","DATABASES","DAY","DBPROPERTIES","DEFINED","DELETE","DELIMITED","DESC","DESCRIBE","DFS","DIRECTORIES","DIRECTORY","DISTINCT","DISTRIBUTE","DIV","DROP","ESCAPE","ESCAPED","EXCEPT","EXCHANGE","EXISTS","EXPORT","EXTENDED","EXTERNAL","EXTRACT","FALSE","FETCH","FIELDS","FILTER","FILEFORMAT","FIRST","FIRST_VALUE","FOLLOWING","FOR","FOREIGN","FORMAT","FORMATTED","FULL","FUNCTION","FUNCTIONS","GLOBAL","GRANT","GROUP","GROUPING","HOUR","IF","IGNORE","IMPORT","IN","INDEX","INDEXES","INNER","INPATH","INPUTFORMAT","INTERSECT","INTO","IS","ITEMS","KEYS","LAST","LAST_VALUE","LATERAL","LAZY","LEADING","LEFT","LIKE","LINES","LIST","LOCAL","LOCATION","LOCK","LOCKS","LOGICAL","MACRO","MATCHED","MERGE","MINUTE","MONTH","MSCK","NAMESPACE","NAMESPACES","NATURAL","NO","NOT","NULL","NULLS","OF","ONLY","OPTION","OPTIONS","OR","ORDER","OUT","OUTER","OUTPUTFORMAT","OVER","OVERLAPS","OVERLAY","OVERWRITE","OWNER","PARTITION","PARTITIONED","PARTITIONS","PERCENT","PLACING","POSITION","PRECEDING","PRIMARY","PRINCIPALS","PROPERTIES","PURGE","QUERY","RANGE","RECORDREADER","RECORDWRITER","RECOVER","REDUCE","REFERENCES","RENAME","REPAIR","REPLACE","RESPECT","RESTRICT","REVOKE","RIGHT","RLIKE","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","SCHEMA","SECOND","SELECT","SEMI","SEPARATED","SERDE","SERDEPROPERTIES","SESSION_USER","SETS","SHOW","SKEWED","SOME","SORT","SORTED","START","STATISTICS","STORED","STRATIFY","SUBSTR","SUBSTRING","TABLE","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","THEN","TO","TOUCH","TRAILING","TRANSACTION","TRANSACTIONS","TRIM","TRUE","TRUNCATE","UNARCHIVE","UNBOUNDED","UNCACHE","UNIQUE","UNKNOWN","UNLOCK","UNSET","USE","USER","USING","VIEW","WINDOW","YEAR","ANALYSE","ARRAY_ZIP","COALESCE","CONTAINS","CONVERT","DAYS","DAY_HOUR","DAY_MINUTE","DAY_SECOND","DECODE","DEFAULT","DISTINCTROW","ENCODE","EXPLODE","EXPLODE_OUTER","FIXED","GREATEST","GROUP_CONCAT","HOURS","HOUR_MINUTE","HOUR_SECOND","IFNULL","LEAST","LEVEL","MINUTE_SECOND","NULLIF","OFFSET","ON","OPTIMIZE","REGEXP","SEPARATOR","SIZE","TYPE","TYPES","UNSIGNED","VARIABLES","YEAR_MONTH"],GC=["ARRAY","BIGINT","BINARY","BOOLEAN","BYTE","CHAR","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","LONG","MAP","NUMERIC","REAL","SHORT","SMALLINT","STRING","STRUCT","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TINYINT","VARCHAR"],vC=["APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COUNT","COUNT","COUNT_IF","COUNT_MIN_SKETCH","COVAR_POP","COVAR_SAMP","EVERY","FIRST","FIRST_VALUE","GROUPING","GROUPING_ID","KURTOSIS","LAST","LAST_VALUE","MAX","MAX_BY","MEAN","MIN","MIN_BY","PERCENTILE","PERCENTILE","PERCENTILE_APPROX","SKEWNESS","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","CUME_DIST","DENSE_RANK","LAG","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","ARRAY","ARRAY_CONTAINS","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_UNION","ARRAYS_OVERLAP","ARRAYS_ZIP","FLATTEN","SEQUENCE","SHUFFLE","SLICE","SORT_ARRAY","ELEMENT_AT","ELEMENT_AT","MAP_CONCAT","MAP_ENTRIES","MAP_FROM_ARRAYS","MAP_FROM_ENTRIES","MAP_KEYS","MAP_VALUES","STR_TO_MAP","ADD_MONTHS","CURRENT_DATE","CURRENT_DATE","CURRENT_TIMESTAMP","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","DATE_ADD","DATE_FORMAT","DATE_FROM_UNIX_DATE","DATE_PART","DATE_SUB","DATE_TRUNC","DATEDIFF","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MAKE_DATE","MAKE_DT_INTERVAL","MAKE_INTERVAL","MAKE_TIMESTAMP","MAKE_YM_INTERVAL","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","NOW","QUARTER","SECOND","SESSION_WINDOW","TIMESTAMP_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_SECONDS","TO_DATE","TO_TIMESTAMP","TO_UNIX_TIMESTAMP","TO_UTC_TIMESTAMP","TRUNC","UNIX_DATE","UNIX_MICROS","UNIX_MILLIS","UNIX_SECONDS","UNIX_TIMESTAMP","WEEKDAY","WEEKOFYEAR","WINDOW","YEAR","FROM_JSON","GET_JSON_OBJECT","JSON_ARRAY_LENGTH","JSON_OBJECT_KEYS","JSON_TUPLE","SCHEMA_OF_JSON","TO_JSON","ABS","ACOS","ACOSH","AGGREGATE","ARRAY_SORT","ASCII","ASIN","ASINH","ASSERT_TRUE","ATAN","ATAN2","ATANH","BASE64","BIN","BIT_COUNT","BIT_GET","BIT_LENGTH","BROUND","BTRIM","CARDINALITY","CBRT","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONV","COS","COSH","COT","CRC32","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_USER","DEGREES","ELT","EXP","EXPM1","FACTORIAL","FIND_IN_SET","FLOOR","FORALL","FORMAT_NUMBER","FORMAT_STRING","FROM_CSV","GETBIT","HASH","HEX","HYPOT","INITCAP","INLINE","INLINE_OUTER","INPUT_FILE_BLOCK_LENGTH","INPUT_FILE_BLOCK_START","INPUT_FILE_NAME","INSTR","ISNAN","ISNOTNULL","ISNULL","JAVA_METHOD","LCASE","LEFT","LENGTH","LEVENSHTEIN","LN","LOCATE","LOG","LOG10","LOG1P","LOG2","LOWER","LPAD","LTRIM","MAP_FILTER","MAP_ZIP_WITH","MD5","MOD","MONOTONICALLY_INCREASING_ID","NAMED_STRUCT","NANVL","NEGATIVE","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARSE_URL","PI","PMOD","POSEXPLODE","POSEXPLODE_OUTER","POSITION","POSITIVE","POW","POWER","PRINTF","RADIANS","RAISE_ERROR","RAND","RANDN","RANDOM","REFLECT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_REPLACE","REPEAT","REPLACE","REVERSE","RIGHT","RINT","ROUND","RPAD","RTRIM","SCHEMA_OF_CSV","SENTENCES","SHA","SHA1","SHA2","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIGNUM","SIN","SINH","SOUNDEX","SPACE","SPARK_PARTITION_ID","SPLIT","SQRT","STACK","SUBSTR","SUBSTRING","SUBSTRING_INDEX","TAN","TANH","TO_CSV","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRY_ADD","TRY_DIVIDE","TYPEOF","UCASE","UNBASE64","UNHEX","UPPER","UUID","VERSION","WIDTH_BUCKET","XPATH","XPATH_BOOLEAN","XPATH_DOUBLE","XPATH_FLOAT","XPATH_INT","XPATH_LONG","XPATH_NUMBER","XPATH_SHORT","XPATH_STRING","XXHASH64","ZIP_WITH","CAST","COALESCE","NULLIF"],HC=x(["SELECT [ALL | DISTINCT]"]),BC=x(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT [INTO | OVERWRITE] [TABLE]","VALUES","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),ki=x(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]),ol=x(["CREATE [OR REPLACE] [GLOBAL TEMPORARY | TEMPORARY] VIEW [IF NOT EXISTS]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD COLUMNS","DROP {COLUMN | COLUMNS}","RENAME TO","RENAME COLUMN","ALTER COLUMN","TRUNCATE TABLE","LATERAL VIEW","ALTER DATABASE","ALTER VIEW","CREATE DATABASE","CREATE FUNCTION","DROP DATABASE","DROP FUNCTION","DROP VIEW","REPAIR TABLE","USE DATABASE","TABLESAMPLE","PIVOT","TRANSFORM","EXPLAIN","ADD FILE","ADD JAR","ANALYZE TABLE","CACHE TABLE","CLEAR CACHE","DESCRIBE DATABASE","DESCRIBE FUNCTION","DESCRIBE QUERY","DESCRIBE TABLE","LIST FILE","LIST JAR","REFRESH","REFRESH TABLE","REFRESH FUNCTION","RESET","SHOW COLUMNS","SHOW CREATE TABLE","SHOW DATABASES","SHOW FUNCTIONS","SHOW PARTITIONS","SHOW TABLE EXTENDED","SHOW TABLES","SHOW TBLPROPERTIES","SHOW VIEWS","UNCACHE TABLE"]),FC=x(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),YC=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT] {ANTI | SEMI} JOIN","NATURAL [LEFT] {ANTI | SEMI} JOIN"]),wC=x(["ON DELETE","ON UPDATE","CURRENT ROW","{ROWS | RANGE} BETWEEN"]),bC=x([]),VC={name:"spark",tokenizerOptions:{reservedSelect:HC,reservedClauses:[...BC,...ki,...ol],reservedSetOperations:FC,reservedJoins:YC,reservedKeywordPhrases:wC,reservedDataTypePhrases:bC,supportsXor:!0,reservedKeywords:gC,reservedDataTypes:GC,reservedFunctionNames:vC,extraParens:["[]"],stringTypes:["''-bs",'""-bs',{quote:"''-raw",prefixes:["R","X"],requirePrefix:!0},{quote:'""-raw',prefixes:["R","X"],requirePrefix:!0}],identTypes:["``"],identChars:{allowFirstCharNumber:!0},variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||","->"],postProcess:WC},formatOptions:{onelineClauses:[...ki,...ol],tabularOnelineClauses:ol}};function WC(e){return e.map((t,E)=>{const n=e[E-1]||kn,r=e[E+1]||kn;return An.WINDOW(t)&&r.type===V.OPEN_PAREN?Object.assign(Object.assign({},t),{type:V.RESERVED_FUNCTION_NAME}):t.text==="ITEMS"&&t.type===V.RESERVED_KEYWORD&&!(n.text==="COLLECTION"&&r.text==="TERMINATED")?Object.assign(Object.assign({},t),{type:V.IDENTIFIER,text:t.raw}):t})}const XC=["ABS","CHANGES","CHAR","COALESCE","FORMAT","GLOB","HEX","IFNULL","IIF","INSTR","LAST_INSERT_ROWID","LENGTH","LIKE","LIKELIHOOD","LIKELY","LOAD_EXTENSION","LOWER","LTRIM","NULLIF","PRINTF","QUOTE","RANDOM","RANDOMBLOB","REPLACE","ROUND","RTRIM","SIGN","SOUNDEX","SQLITE_COMPILEOPTION_GET","SQLITE_COMPILEOPTION_USED","SQLITE_OFFSET","SQLITE_SOURCE_ID","SQLITE_VERSION","SUBSTR","SUBSTRING","TOTAL_CHANGES","TRIM","TYPEOF","UNICODE","UNLIKELY","UPPER","ZEROBLOB","AVG","COUNT","GROUP_CONCAT","MAX","MIN","SUM","TOTAL","DATE","TIME","DATETIME","JULIANDAY","UNIXEPOCH","STRFTIME","row_number","rank","dense_rank","percent_rank","cume_dist","ntile","lag","lead","first_value","last_value","nth_value","ACOS","ACOSH","ASIN","ASINH","ATAN","ATAN2","ATANH","CEIL","CEILING","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG","LOG10","LOG2","MOD","PI","POW","POWER","RADIANS","SIN","SINH","SQRT","TAN","TANH","TRUNC","JSON","JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_ARRAY_LENGTH","JSON_EXTRACT","JSON_INSERT","JSON_OBJECT","JSON_PATCH","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_TYPE","JSON_TYPE","JSON_VALID","JSON_QUOTE","JSON_GROUP_ARRAY","JSON_GROUP_OBJECT","JSON_EACH","JSON_TREE","CAST"],jC=["ABORT","ACTION","ADD","AFTER","ALL","ALTER","AND","ARE","ALWAYS","ANALYZE","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DO","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUDE","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FILTER","FIRST","FOLLOWING","FOR","FOREIGN","FROM","FULL","GENERATED","GLOB","GROUP","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LAST","LEFT","LIKE","LIMIT","MATCH","MATERIALIZED","NATURAL","NO","NOT","NOTHING","NOTNULL","NULL","NULLS","OF","OFFSET","ON","ONLY","OPEN","OR","ORDER","OTHERS","OUTER","OVER","PARTITION","PLAN","PRAGMA","PRECEDING","PRIMARY","QUERY","RAISE","RANGE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RETURNING","RIGHT","ROLLBACK","ROW","ROWS","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TIES","TO","TRANSACTION","TRIGGER","UNBOUNDED","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WINDOW","WITH","WITHOUT"],kC=["ANY","ARRAY","BLOB","CHARACTER","DECIMAL","INT","INTEGER","NATIVE CHARACTER","NCHAR","NUMERIC","NVARCHAR","REAL","TEXT","VARCHAR","VARYING CHARACTER"],KC=x(["SELECT [ALL | DISTINCT]"]),$C=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK] INTO","REPLACE INTO","VALUES","SET","RETURNING"]),Ki=x(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]),il=x(["CREATE [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]","UPDATE [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK]","ON CONFLICT","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME [COLUMN]","RENAME TO","SET SCHEMA"]),JC=x(["UNION [ALL]","EXCEPT","INTERSECT"]),zC=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),QC=x(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN","DO UPDATE"]),ZC=x([]),qC={name:"sqlite",tokenizerOptions:{reservedSelect:KC,reservedClauses:[...$C,...Ki,...il],reservedSetOperations:JC,reservedJoins:zC,reservedKeywordPhrases:QC,reservedDataTypePhrases:ZC,reservedKeywords:jC,reservedDataTypes:kC,reservedFunctionNames:XC,stringTypes:["''-qq",{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``","[]"],paramTypes:{positional:!0,numbered:["?"],named:[":","@","$"]},operators:["%","~","&","|","<<",">>","==","->","->>","||"]},formatOptions:{onelineClauses:[...Ki,...il],tabularOnelineClauses:il}},ed=["GROUPING","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","ROW_NUMBER","POSITION","OCCURRENCES_REGEX","POSITION_REGEX","EXTRACT","CHAR_LENGTH","CHARACTER_LENGTH","OCTET_LENGTH","CARDINALITY","ABS","MOD","LN","EXP","POWER","SQRT","FLOOR","CEIL","CEILING","WIDTH_BUCKET","SUBSTRING","SUBSTRING_REGEX","UPPER","LOWER","CONVERT","TRANSLATE","TRANSLATE_REGEX","TRIM","OVERLAY","NORMALIZE","SPECIFICTYPE","CURRENT_DATE","CURRENT_TIME","LOCALTIME","CURRENT_TIMESTAMP","LOCALTIMESTAMP","COUNT","AVG","MAX","MIN","SUM","STDDEV_POP","STDDEV_SAMP","VAR_SAMP","VAR_POP","COLLECT","FUSION","INTERSECTION","COVAR_POP","COVAR_SAMP","CORR","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","PERCENTILE_CONT","PERCENTILE_DISC","CAST","COALESCE","NULLIF","ROUND","SIN","COS","TAN","ASIN","ACOS","ATAN"],td=["ALL","ALLOCATE","ALTER","ANY","ARE","AS","ASC","ASENSITIVE","ASYMMETRIC","AT","ATOMIC","AUTHORIZATION","BEGIN","BETWEEN","BOTH","BY","CALL","CALLED","CASCADED","CAST","CHECK","CLOSE","COALESCE","COLLATE","COLUMN","COMMIT","CONDITION","CONNECT","CONSTRAINT","CORRESPONDING","CREATE","CROSS","CUBE","CURRENT","CURRENT_CATALOG","CURRENT_DEFAULT_TRANSFORM_GROUP","CURRENT_PATH","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TRANSFORM_GROUP_FOR_TYPE","CURRENT_USER","CURSOR","CYCLE","DEALLOCATE","DAY","DECLARE","DEFAULT","DELETE","DEREF","DESC","DESCRIBE","DETERMINISTIC","DISCONNECT","DISTINCT","DROP","DYNAMIC","EACH","ELEMENT","END-EXEC","ESCAPE","EVERY","EXCEPT","EXEC","EXECUTE","EXISTS","EXTERNAL","FALSE","FETCH","FILTER","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GET","GLOBAL","GRANT","GROUP","HAVING","HOLD","HOUR","IDENTITY","IN","INDICATOR","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTO","IS","LANGUAGE","LARGE","LATERAL","LEADING","LEFT","LIKE","LIKE_REGEX","LOCAL","MATCH","MEMBER","MERGE","METHOD","MINUTE","MODIFIES","MODULE","MONTH","NATURAL","NEW","NO","NONE","NOT","NULL","NULLIF","OF","OLD","ON","ONLY","OPEN","ORDER","OUT","OUTER","OVER","OVERLAPS","PARAMETER","PARTITION","PRECISION","PREPARE","PRIMARY","PROCEDURE","RANGE","READS","REAL","RECURSIVE","REF","REFERENCES","REFERENCING","RELEASE","RESULT","RETURN","RETURNS","REVOKE","RIGHT","ROLLBACK","ROLLUP","ROW","ROWS","SAVEPOINT","SCOPE","SCROLL","SEARCH","SECOND","SELECT","SENSITIVE","SESSION_USER","SET","SIMILAR","SOME","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","START","STATIC","SUBMULTISET","SYMMETRIC","SYSTEM","SYSTEM_USER","TABLE","TABLESAMPLE","THEN","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSLATION","TREAT","TRIGGER","TRUE","UESCAPE","UNION","UNIQUE","UNKNOWN","UNNEST","UPDATE","USER","USING","VALUE","VALUES","WHENEVER","WINDOW","WITHIN","WITHOUT","YEAR"],Ed=["ARRAY","BIGINT","BINARY LARGE OBJECT","BINARY VARYING","BINARY","BLOB","BOOLEAN","CHAR LARGE OBJECT","CHAR VARYING","CHAR","CHARACTER LARGE OBJECT","CHARACTER VARYING","CHARACTER","CLOB","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MULTISET","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER LARGE OBJECT","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR LARGE OBJECT","NCHAR VARYING","NCHAR","NCLOB","NUMERIC","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],nd=x(["SELECT [ALL | DISTINCT]"]),rd=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET"]),$i=x(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]),Rl=x(["CREATE [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","DELETE FROM","DROP TABLE","ALTER TABLE","ADD COLUMN","DROP [COLUMN]","RENAME COLUMN","RENAME TO","ALTER [COLUMN]","{SET | DROP} DEFAULT","ADD SCOPE","DROP SCOPE {CASCADE | RESTRICT}","RESTART WITH","TRUNCATE TABLE","SET SCHEMA"]),sd=x(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),Td=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),ld=x(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),ad=x([]),od={name:"sql",tokenizerOptions:{reservedSelect:nd,reservedClauses:[...rd,...$i,...Rl],reservedSetOperations:sd,reservedJoins:Td,reservedKeywordPhrases:ld,reservedDataTypePhrases:ad,reservedKeywords:td,reservedDataTypes:Ed,reservedFunctionNames:ed,stringTypes:[{quote:"''-qq-bs",prefixes:["N","U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``"],paramTypes:{positional:!0},operators:["||"]},formatOptions:{onelineClauses:[...$i,...Rl],tabularOnelineClauses:Rl}},id=["ABS","ACOS","ALL_MATCH","ANY_MATCH","APPROX_DISTINCT","APPROX_MOST_FREQUENT","APPROX_PERCENTILE","APPROX_SET","ARBITRARY","ARRAYS_OVERLAP","ARRAY_AGG","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_SORT","ARRAY_UNION","ASIN","ATAN","ATAN2","AT_TIMEZONE","AVG","BAR","BETA_CDF","BING_TILE","BING_TILES_AROUND","BING_TILE_AT","BING_TILE_COORDINATES","BING_TILE_POLYGON","BING_TILE_QUADKEY","BING_TILE_ZOOM_LEVEL","BITWISE_AND","BITWISE_AND_AGG","BITWISE_LEFT_SHIFT","BITWISE_NOT","BITWISE_OR","BITWISE_OR_AGG","BITWISE_RIGHT_SHIFT","BITWISE_RIGHT_SHIFT_ARITHMETIC","BITWISE_XOR","BIT_COUNT","BOOL_AND","BOOL_OR","CARDINALITY","CAST","CBRT","CEIL","CEILING","CHAR2HEXINT","CHECKSUM","CHR","CLASSIFY","COALESCE","CODEPOINT","COLOR","COMBINATIONS","CONCAT","CONCAT_WS","CONTAINS","CONTAINS_SEQUENCE","CONVEX_HULL_AGG","CORR","COS","COSH","COSINE_SIMILARITY","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CRC32","CUME_DIST","CURRENT_CATALOG","CURRENT_DATE","CURRENT_GROUPS","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","DATE","DATE_ADD","DATE_DIFF","DATE_FORMAT","DATE_PARSE","DATE_TRUNC","DAY","DAY_OF_MONTH","DAY_OF_WEEK","DAY_OF_YEAR","DEGREES","DENSE_RANK","DOW","DOY","E","ELEMENT_AT","EMPTY_APPROX_SET","EVALUATE_CLASSIFIER_PREDICTIONS","EVERY","EXP","EXTRACT","FEATURES","FILTER","FIRST_VALUE","FLATTEN","FLOOR","FORMAT","FORMAT_DATETIME","FORMAT_NUMBER","FROM_BASE","FROM_BASE32","FROM_BASE64","FROM_BASE64URL","FROM_BIG_ENDIAN_32","FROM_BIG_ENDIAN_64","FROM_ENCODED_POLYLINE","FROM_GEOJSON_GEOMETRY","FROM_HEX","FROM_IEEE754_32","FROM_IEEE754_64","FROM_ISO8601_DATE","FROM_ISO8601_TIMESTAMP","FROM_ISO8601_TIMESTAMP_NANOS","FROM_UNIXTIME","FROM_UNIXTIME_NANOS","FROM_UTF8","GEOMETRIC_MEAN","GEOMETRY_FROM_HADOOP_SHAPE","GEOMETRY_INVALID_REASON","GEOMETRY_NEAREST_POINTS","GEOMETRY_TO_BING_TILES","GEOMETRY_UNION","GEOMETRY_UNION_AGG","GREATEST","GREAT_CIRCLE_DISTANCE","HAMMING_DISTANCE","HASH_COUNTS","HISTOGRAM","HMAC_MD5","HMAC_SHA1","HMAC_SHA256","HMAC_SHA512","HOUR","HUMAN_READABLE_SECONDS","IF","INDEX","INFINITY","INTERSECTION_CARDINALITY","INVERSE_BETA_CDF","INVERSE_NORMAL_CDF","IS_FINITE","IS_INFINITE","IS_JSON_SCALAR","IS_NAN","JACCARD_INDEX","JSON_ARRAY_CONTAINS","JSON_ARRAY_GET","JSON_ARRAY_LENGTH","JSON_EXISTS","JSON_EXTRACT","JSON_EXTRACT_SCALAR","JSON_FORMAT","JSON_PARSE","JSON_QUERY","JSON_SIZE","JSON_VALUE","KURTOSIS","LAG","LAST_DAY_OF_MONTH","LAST_VALUE","LEAD","LEARN_CLASSIFIER","LEARN_LIBSVM_CLASSIFIER","LEARN_LIBSVM_REGRESSOR","LEARN_REGRESSOR","LEAST","LENGTH","LEVENSHTEIN_DISTANCE","LINE_INTERPOLATE_POINT","LINE_INTERPOLATE_POINTS","LINE_LOCATE_POINT","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","LUHN_CHECK","MAKE_SET_DIGEST","MAP","MAP_AGG","MAP_CONCAT","MAP_ENTRIES","MAP_FILTER","MAP_FROM_ENTRIES","MAP_KEYS","MAP_UNION","MAP_VALUES","MAP_ZIP_WITH","MAX","MAX_BY","MD5","MERGE","MERGE_SET_DIGEST","MILLISECOND","MIN","MINUTE","MIN_BY","MOD","MONTH","MULTIMAP_AGG","MULTIMAP_FROM_ENTRIES","MURMUR3","NAN","NGRAMS","NONE_MATCH","NORMALIZE","NORMAL_CDF","NOW","NTH_VALUE","NTILE","NULLIF","NUMERIC_HISTOGRAM","OBJECTID","OBJECTID_TIMESTAMP","PARSE_DATA_SIZE","PARSE_DATETIME","PARSE_DURATION","PERCENT_RANK","PI","POSITION","POW","POWER","QDIGEST_AGG","QUARTER","RADIANS","RAND","RANDOM","RANK","REDUCE","REDUCE_AGG","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGRESS","REGR_INTERCEPT","REGR_SLOPE","RENDER","REPEAT","REPLACE","REVERSE","RGB","ROUND","ROW_NUMBER","RPAD","RTRIM","SECOND","SEQUENCE","SHA1","SHA256","SHA512","SHUFFLE","SIGN","SIMPLIFY_GEOMETRY","SIN","SKEWNESS","SLICE","SOUNDEX","SPATIAL_PARTITIONING","SPATIAL_PARTITIONS","SPLIT","SPLIT_PART","SPLIT_TO_MAP","SPLIT_TO_MULTIMAP","SPOOKY_HASH_V2_32","SPOOKY_HASH_V2_64","SQRT","STARTS_WITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRPOS","ST_AREA","ST_ASBINARY","ST_ASTEXT","ST_BOUNDARY","ST_BUFFER","ST_CENTROID","ST_CONTAINS","ST_CONVEXHULL","ST_COORDDIM","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_ENDPOINT","ST_ENVELOPE","ST_ENVELOPEASPTS","ST_EQUALS","ST_EXTERIORRING","ST_GEOMETRIES","ST_GEOMETRYFROMTEXT","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMBINARY","ST_INTERIORRINGN","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISRING","ST_ISSIMPLE","ST_ISVALID","ST_LENGTH","ST_LINEFROMTEXT","ST_LINESTRING","ST_MULTIPOINT","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINT","ST_POINTN","ST_POINTS","ST_POLYGON","ST_RELATE","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_TOUCHES","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","SUBSTR","SUBSTRING","SUM","TAN","TANH","TDIGEST_AGG","TIMESTAMP_OBJECTID","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO_BASE","TO_BASE32","TO_BASE64","TO_BASE64URL","TO_BIG_ENDIAN_32","TO_BIG_ENDIAN_64","TO_CHAR","TO_DATE","TO_ENCODED_POLYLINE","TO_GEOJSON_GEOMETRY","TO_GEOMETRY","TO_HEX","TO_IEEE754_32","TO_IEEE754_64","TO_ISO8601","TO_MILLISECONDS","TO_SPHERICAL_GEOGRAPHY","TO_TIMESTAMP","TO_UNIXTIME","TO_UTF8","TRANSFORM","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRIM_ARRAY","TRUNCATE","TRY","TRY_CAST","TYPEOF","UPPER","URL_DECODE","URL_ENCODE","URL_EXTRACT_FRAGMENT","URL_EXTRACT_HOST","URL_EXTRACT_PARAMETER","URL_EXTRACT_PATH","URL_EXTRACT_PORT","URL_EXTRACT_PROTOCOL","URL_EXTRACT_QUERY","UUID","VALUES_AT_QUANTILES","VALUE_AT_QUANTILE","VARIANCE","VAR_POP","VAR_SAMP","VERSION","WEEK","WEEK_OF_YEAR","WIDTH_BUCKET","WILSON_INTERVAL_LOWER","WILSON_INTERVAL_UPPER","WITH_TIMEZONE","WORD_STEM","XXHASH64","YEAR","YEAR_OF_WEEK","YOW","ZIP","ZIP_WITH","CLASSIFIER","FIRST","LAST","MATCH_NUMBER","NEXT","PERMUTE","PREV"],Rd=["ABSENT","ADD","ADMIN","AFTER","ALL","ALTER","ANALYZE","AND","ANY","AS","ASC","AT","AUTHORIZATION","BERNOULLI","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CATALOGS","COLUMN","COLUMNS","COMMENT","COMMIT","COMMITTED","CONDITIONAL","CONSTRAINT","COPARTITION","CREATE","CROSS","CUBE","CURRENT","CURRENT_PATH","CURRENT_ROLE","DATA","DEALLOCATE","DEFAULT","DEFINE","DEFINER","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DISTINCT","DISTRIBUTED","DOUBLE","DROP","ELSE","EMPTY","ENCODING","END","ERROR","ESCAPE","EXCEPT","EXCLUDING","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FINAL","FIRST","FOLLOWING","FOR","FROM","FULL","FUNCTIONS","GRANT","GRANTED","GRANTS","GRAPHVIZ","GROUP","GROUPING","GROUPS","HAVING","IGNORE","IN","INCLUDING","INITIAL","INNER","INPUT","INSERT","INTERSECT","INTERVAL","INTO","INVOKER","IO","IS","ISOLATION","JOIN","JSON","JSON_ARRAY","JSON_OBJECT","KEEP","KEY","KEYS","LAST","LATERAL","LEADING","LEFT","LEVEL","LIKE","LIMIT","LOCAL","LOGICAL","MATCH","MATCHED","MATCHES","MATCH_RECOGNIZE","MATERIALIZED","MEASURES","NATURAL","NEXT","NFC","NFD","NFKC","NFKD","NO","NONE","NOT","NULL","NULLS","OBJECT","OF","OFFSET","OMIT","ON","ONE","ONLY","OPTION","OR","ORDER","ORDINALITY","OUTER","OUTPUT","OVER","OVERFLOW","PARTITION","PARTITIONS","PASSING","PAST","PATH","PATTERN","PER","PERMUTE","PRECEDING","PRECISION","PREPARE","PRIVILEGES","PROPERTIES","PRUNE","QUOTES","RANGE","READ","RECURSIVE","REFRESH","RENAME","REPEATABLE","RESET","RESPECT","RESTRICT","RETURNING","REVOKE","RIGHT","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","RUNNING","SCALAR","SCHEMA","SCHEMAS","SECURITY","SEEK","SELECT","SERIALIZABLE","SESSION","SET","SETS","SHOW","SKIP","SOME","START","STATS","STRING","SUBSET","SYSTEM","TABLE","TABLES","TABLESAMPLE","TEXT","THEN","TIES","TIME","TIMESTAMP","TO","TRAILING","TRANSACTION","TRUE","TYPE","UESCAPE","UNBOUNDED","UNCOMMITTED","UNCONDITIONAL","UNION","UNIQUE","UNKNOWN","UNMATCHED","UNNEST","UPDATE","USE","USER","USING","UTF16","UTF32","UTF8","VALIDATE","VALUE","VALUES","VERBOSE","VIEW","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","WORK","WRAPPER","WRITE","ZONE"],Ad=["BIGINT","INT","INTEGER","SMALLINT","TINYINT","BOOLEAN","DATE","DECIMAL","REAL","DOUBLE","HYPERLOGLOG","QDIGEST","TDIGEST","P4HYPERLOGLOG","INTERVAL","TIMESTAMP","TIME","VARBINARY","VARCHAR","CHAR","ROW","ARRAY","MAP","JSON","JSON2016","IPADDRESS","GEOMETRY","UUID","SETDIGEST","JONIREGEXP","RE2JREGEXP","LIKEPATTERN","COLOR","CODEPOINTS","FUNCTION","JSONPATH"],Sd=x(["SELECT [ALL | DISTINCT]"]),Nd=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET","MATCH_RECOGNIZE","MEASURES","ONE ROW PER MATCH","ALL ROWS PER MATCH","AFTER MATCH","PATTERN","SUBSET","DEFINE"]),Ji=x(["CREATE TABLE [IF NOT EXISTS]"]),Al=x(["CREATE [OR REPLACE] [MATERIALIZED] VIEW","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME COLUMN [IF EXISTS]","RENAME TO","SET AUTHORIZATION [USER | ROLE]","SET PROPERTIES","EXECUTE","TRUNCATE TABLE","ALTER SCHEMA","ALTER MATERIALIZED VIEW","ALTER VIEW","CREATE SCHEMA","CREATE ROLE","DROP SCHEMA","DROP MATERIALIZED VIEW","DROP VIEW","DROP ROLE","EXPLAIN","ANALYZE","EXPLAIN ANALYZE","EXPLAIN ANALYZE VERBOSE","USE","DESCRIBE INPUT","DESCRIBE OUTPUT","REFRESH MATERIALIZED VIEW","RESET SESSION","SET SESSION","SET PATH","SET TIME ZONE","SHOW GRANTS","SHOW CREATE TABLE","SHOW CREATE SCHEMA","SHOW CREATE VIEW","SHOW CREATE MATERIALIZED VIEW","SHOW TABLES","SHOW SCHEMAS","SHOW CATALOGS","SHOW COLUMNS","SHOW STATS FOR","SHOW ROLES","SHOW CURRENT ROLES","SHOW ROLE GRANTS","SHOW FUNCTIONS","SHOW SESSION"]),Id=x(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),ud=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),Od=x(["{ROWS | RANGE | GROUPS} BETWEEN","IS [NOT] DISTINCT FROM"]),cd=x([]),Cd={name:"trino",tokenizerOptions:{reservedSelect:Sd,reservedClauses:[...Nd,...Ji,...Al],reservedSetOperations:Id,reservedJoins:ud,reservedKeywordPhrases:Od,reservedDataTypePhrases:cd,reservedKeywords:Rd,reservedDataTypes:Ad,reservedFunctionNames:id,extraParens:["[]","{}"],stringTypes:[{quote:"''-qq",prefixes:["U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq'],paramTypes:{positional:!0},operators:["%","->","=>",":","||","|","^","$"]},formatOptions:{onelineClauses:[...Ji,...Al],tabularOnelineClauses:Al}},dd=["APPROX_COUNT_DISTINCT","AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","STDEV","STDEVP","SUM","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","Collation - COLLATIONPROPERTY","Collation - TERTIARY_WEIGHTS","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","@@CURSOR_ROWS","@@FETCH_STATUS","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","@@DATEFIRST","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_TIMEZONE_ID","DATEADD","DATEDIFF","DATEDIFF_BIG","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","JSON","ISJSON","JSON_VALUE","JSON_QUERY","JSON_MODIFY","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","CHOOSE","GREATEST","IIF","LEAST","@@PROCID","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FILEPROPERTYEX","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","NEXT VALUE FOR","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","DATABASE_PRINCIPAL_ID","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHARINDEX","CONCAT","CONCAT_WS","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STRING_AGG","STRING_ESCAPE","STUFF","SUBSTRING","TRANSLATE","TRIM","UNICODE","UPPER","$PARTITION","@@ERROR","@@IDENTITY","@@PACK_RECEIVED","@@ROWCOUNT","@@TRANCOUNT","BINARY_CHECKSUM","CHECKSUM","COMPRESS","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","CURRENT_TRANSACTION_ID","DECOMPRESS","ERROR_LINE","ERROR_MESSAGE","ERROR_NUMBER","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GET_FILESTREAM_TRANSACTION_CONTEXT","GETANSINULL","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","SESSION_CONTEXT","XACT_STATE","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACK_SENT","@@PACKET_ERRORS","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","COALESCE","NULLIF"],Ld=["ADD","ALL","ALTER","AND","ANY","AS","ASC","AUTHORIZATION","BACKUP","BEGIN","BETWEEN","BREAK","BROWSE","BULK","BY","CASCADE","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLUMN","COMMIT","COMPUTE","CONSTRAINT","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DBCC","DEALLOCATE","DECLARE","DEFAULT","DELETE","DENY","DESC","DISK","DISTINCT","DISTRIBUTED","DROP","DUMP","ERRLVL","ESCAPE","EXEC","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FILE","FILLFACTOR","FOR","FOREIGN","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GOTO","GRANT","GROUP","HAVING","HOLDLOCK","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IN","INDEX","INNER","INSERT","INTERSECT","INTO","IS","JOIN","KEY","KILL","LEFT","LIKE","LINENO","LOAD","MERGE","NOCHECK","NONCLUSTERED","NOT","NULL","NULLIF","OF","OFF","OFFSETS","ON","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OUTER","OVER","PERCENT","PIVOT","PLAN","PRIMARY","PRINT","PROC","PROCEDURE","PUBLIC","RAISERROR","READ","READTEXT","RECONFIGURE","REFERENCES","REPLICATION","RESTORE","RESTRICT","RETURN","REVERT","REVOKE","RIGHT","ROLLBACK","ROWCOUNT","ROWGUIDCOL","RULE","SAVE","SCHEMA","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION_USER","SET","SETUSER","SHUTDOWN","SOME","STATISTICS","SYSTEM_USER","TABLE","TABLESAMPLE","TEXTSIZE","THEN","TO","TOP","TRAN","TRANSACTION","TRIGGER","TRUNCATE","TRY_CONVERT","TSEQUAL","UNION","UNIQUE","UNPIVOT","UPDATE","UPDATETEXT","USE","USER","VALUES","VIEW","WAITFOR","WHERE","WHILE","WITH","WITHIN GROUP","WRITETEXT","$ACTION"],_d=["BINARY","BIT","CHAR","CHAR","CHARACTER","DATE","DATETIME2","DATETIMEOFFSET","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","NATIONAL","NCHAR","NUMERIC","NVARCHAR","PRECISION","REAL","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],fd=x(["SELECT [ALL | DISTINCT]"]),pd=x(["WITH","INTO","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","OFFSET","FETCH {FIRST | NEXT}","FOR {BROWSE | XML | JSON}","OPTION","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY TARGET | BY SOURCE] [THEN]","UPDATE SET"]),zi=x(["CREATE TABLE"]),Sl=x(["CREATE [OR ALTER] [MATERIALIZED] VIEW","UPDATE","WHERE CURRENT OF","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD","DROP COLUMN [IF EXISTS]","ALTER COLUMN","TRUNCATE TABLE","CREATE [UNIQUE] [CLUSTERED] INDEX","CREATE DATABASE","ALTER DATABASE","DROP DATABASE [IF EXISTS]","CREATE [OR ALTER] [PARTITION] {FUNCTION | PROCEDURE | PROC}","ALTER [PARTITION] {FUNCTION | PROCEDURE | PROC}","DROP [PARTITION] {FUNCTION | PROCEDURE | PROC} [IF EXISTS]","GO","USE","ADD SENSITIVITY CLASSIFICATION","ADD SIGNATURE","AGGREGATE","ANSI_DEFAULTS","ANSI_NULLS","ANSI_NULL_DFLT_OFF","ANSI_NULL_DFLT_ON","ANSI_PADDING","ANSI_WARNINGS","APPLICATION ROLE","ARITHABORT","ARITHIGNORE","ASSEMBLY","ASYMMETRIC KEY","AUTHORIZATION","AVAILABILITY GROUP","BACKUP","BACKUP CERTIFICATE","BACKUP MASTER KEY","BACKUP SERVICE MASTER KEY","BEGIN CONVERSATION TIMER","BEGIN DIALOG CONVERSATION","BROKER PRIORITY","BULK INSERT","CERTIFICATE","CLOSE MASTER KEY","CLOSE SYMMETRIC KEY","COLUMN ENCRYPTION KEY","COLUMN MASTER KEY","COLUMNSTORE INDEX","CONCAT_NULL_YIELDS_NULL","CONTEXT_INFO","CONTRACT","CREDENTIAL","CRYPTOGRAPHIC PROVIDER","CURSOR_CLOSE_ON_COMMIT","DATABASE","DATABASE AUDIT SPECIFICATION","DATABASE ENCRYPTION KEY","DATABASE HADR","DATABASE SCOPED CONFIGURATION","DATABASE SCOPED CREDENTIAL","DATABASE SET","DATEFIRST","DATEFORMAT","DEADLOCK_PRIORITY","DENY","DENY XML","DISABLE TRIGGER","ENABLE TRIGGER","END CONVERSATION","ENDPOINT","EVENT NOTIFICATION","EVENT SESSION","EXECUTE AS","EXTERNAL DATA SOURCE","EXTERNAL FILE FORMAT","EXTERNAL LANGUAGE","EXTERNAL LIBRARY","EXTERNAL RESOURCE POOL","EXTERNAL TABLE","FIPS_FLAGGER","FMTONLY","FORCEPLAN","FULLTEXT CATALOG","FULLTEXT INDEX","FULLTEXT STOPLIST","GET CONVERSATION GROUP","GET_TRANSMISSION_STATUS","GRANT","GRANT XML","IDENTITY_INSERT","IMPLICIT_TRANSACTIONS","INDEX","LANGUAGE","LOCK_TIMEOUT","LOGIN","MASTER KEY","MESSAGE TYPE","MOVE CONVERSATION","NOCOUNT","NOEXEC","NUMERIC_ROUNDABORT","OFFSETS","OPEN MASTER KEY","OPEN SYMMETRIC KEY","PARSEONLY","PARTITION SCHEME","QUERY_GOVERNOR_COST_LIMIT","QUEUE","QUOTED_IDENTIFIER","RECEIVE","REMOTE SERVICE BINDING","REMOTE_PROC_TRANSACTIONS","RESOURCE GOVERNOR","RESOURCE POOL","RESTORE","RESTORE FILELISTONLY","RESTORE HEADERONLY","RESTORE LABELONLY","RESTORE MASTER KEY","RESTORE REWINDONLY","RESTORE SERVICE MASTER KEY","RESTORE VERIFYONLY","REVERT","REVOKE","REVOKE XML","ROLE","ROUTE","ROWCOUNT","RULE","SCHEMA","SEARCH PROPERTY LIST","SECURITY POLICY","SELECTIVE XML INDEX","SEND","SENSITIVITY CLASSIFICATION","SEQUENCE","SERVER AUDIT","SERVER AUDIT SPECIFICATION","SERVER CONFIGURATION","SERVER ROLE","SERVICE","SERVICE MASTER KEY","SETUSER","SHOWPLAN_ALL","SHOWPLAN_TEXT","SHOWPLAN_XML","SIGNATURE","SPATIAL INDEX","STATISTICS","STATISTICS IO","STATISTICS PROFILE","STATISTICS TIME","STATISTICS XML","SYMMETRIC KEY","SYNONYM","TABLE","TABLE IDENTITY","TEXTSIZE","TRANSACTION ISOLATION LEVEL","TRIGGER","TYPE","UPDATE STATISTICS","USER","WORKLOAD GROUP","XACT_ABORT","XML INDEX","XML SCHEMA COLLECTION"]),md=x(["UNION [ALL]","EXCEPT","INTERSECT"]),Dd=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","{CROSS | OUTER} APPLY"]),Pd=x(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),hd=x([]),Md={name:"transactsql",tokenizerOptions:{reservedSelect:fd,reservedClauses:[...pd,...zi,...Sl],reservedSetOperations:md,reservedJoins:Dd,reservedKeywordPhrases:Pd,reservedDataTypePhrases:hd,reservedKeywords:Ld,reservedDataTypes:_d,reservedFunctionNames:dd,nestedBlockComments:!0,stringTypes:[{quote:"''-qq",prefixes:["N"]},"{}"],identTypes:['""-qq',"[]"],identChars:{first:"#@",rest:"#@$"},paramTypes:{named:["@"],quoted:["@"]},operators:["%","&","|","^","~","!<","!>","+=","-=","*=","/=","%=","|=","&=","^=","::",":"],propertyAccessOperators:[".."]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...zi,...Sl],tabularOnelineClauses:Sl}},Ud=["ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","_BINARY","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","EXTRA_JOIN","FALSE","FETCH","FOR","FORCE","FORCE_COMPILED_MODE","FORCE_INTERPRETER_MODE","FOREIGN","FROM","FULL","FULLTEXT","GRANT","GROUP","HAVING","HEARTBEAT_NO_LOGGING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","_INTERNAL_DYNAMIC_TYPECAST","INTERSECT","INTERVAL","INTO","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MATCH","MAXVALUE","MINUS","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NO_QUERY_REWRITE","NOT","NO_WRITE_TO_BINLOG","NO_QUERY_REWRITE","NULL","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","RETURN","REVOKE","RIGHT","RIGHT_ANTI_JOIN","RIGHT_SEMI_JOIN","RIGHT_STRAIGHT_JOIN","RLIKE","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SEMI_JOIN","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQL_BIG_RESULT","SQL_BUFFER_RESULT","SQL_CACHE","SQL_CALC_FOUND_ROWS","SQLEXCEPTION","SQL_NO_CACHE","SQL_NO_LOGGING","SQL_SMALL_RESULT","SQLSTATE","SQLWARNING","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNBOUNDED","UNDO","UNION","UNIQUE","UNLOCK","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","_UTF8","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WRITE","XOR","YEAR_MONTH","ZEROFILL"],xd=["BIGINT","BINARY","BIT","BLOB","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","UNSIGNED","VARBINARY","VARCHAR","VARCHARACTER","YEAR"],yd=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_COUNT_DISTINCT_ACCUMULATE","APPROX_COUNT_DISTINCT_COMBINE","APPROX_COUNT_DISTINCT_ESTIMATE","APPROX_GEOGRAPHY_INTERSECTS","APPROX_PERCENTILE","ASCII","ASIN","ATAN","ATAN2","AVG","BIN","BINARY","BIT_AND","BIT_COUNT","BIT_OR","BIT_XOR","CAST","CEIL","CEILING","CHAR","CHARACTER_LENGTH","CHAR_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COLLECT","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATEDIFF","DATE_FORMAT","DATE_SUB","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DENSE_RANK","DIV","DOT_PRODUCT","ELT","EUCLIDEAN_DISTANCE","EXP","EXTRACT","FIELD","FIRST","FIRST_VALUE","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOGRAPHY_AREA","GEOGRAPHY_CONTAINS","GEOGRAPHY_DISTANCE","GEOGRAPHY_INTERSECTS","GEOGRAPHY_LATITUDE","GEOGRAPHY_LENGTH","GEOGRAPHY_LONGITUDE","GEOGRAPHY_POINT","GEOGRAPHY_WITHIN_DISTANCE","GEOMETRY_AREA","GEOMETRY_CONTAINS","GEOMETRY_DISTANCE","GEOMETRY_FILTER","GEOMETRY_INTERSECTS","GEOMETRY_LENGTH","GEOMETRY_POINT","GEOMETRY_WITHIN_DISTANCE","GEOMETRY_X","GEOMETRY_Y","GREATEST","GROUPING","GROUP_CONCAT","HEX","HIGHLIGHT","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INITCAP","INSERT","INSTR","INTERVAL","IS","IS NULL","JSON_AGG","JSON_ARRAY_CONTAINS_DOUBLE","JSON_ARRAY_CONTAINS_JSON","JSON_ARRAY_CONTAINS_STRING","JSON_ARRAY_PUSH_DOUBLE","JSON_ARRAY_PUSH_JSON","JSON_ARRAY_PUSH_STRING","JSON_DELETE_KEY","JSON_EXTRACT_DOUBLE","JSON_EXTRACT_JSON","JSON_EXTRACT_STRING","JSON_EXTRACT_BIGINT","JSON_GET_TYPE","JSON_LENGTH","JSON_SET_DOUBLE","JSON_SET_JSON","JSON_SET_STRING","JSON_SPLICE_DOUBLE","JSON_SPLICE_JSON","JSON_SPLICE_STRING","LAG","LAST_DAY","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LN","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LPAD","LTRIM","MATCH","MAX","MD5","MEDIAN","MICROSECOND","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","NOT","NOW","NTH_VALUE","NTILE","NULLIF","OCTET_LENGTH","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIVOT","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANK","REGEXP","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCALAR","SCHEMA","SEC_TO_TIME","SHA1","SHA2","SIGMOID","SIGN","SIN","SLEEP","SPLIT","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUM","SYS_GUID","TAN","TIME","TIMEDIFF","TIME_BUCKET","TIME_FORMAT","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_JSON","TO_NUMBER","TO_SECONDS","TO_TIMESTAMP","TRIM","TRUNC","TRUNCATE","UCASE","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","VALUES","VARIANCE","VAR_POP","VAR_SAMP","VECTOR_SUB","VERSION","WEEK","WEEKDAY","WEEKOFYEAR","YEAR"],gd=x(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),Gd=x(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [IGNORE] [INTO]","VALUES","REPLACE [INTO]","ON DUPLICATE KEY UPDATE","SET","CREATE [OR REPLACE] [TEMPORARY] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] [EXTERNAL] FUNCTION"]),Qi=x(["CREATE [ROWSTORE] [REFERENCE | TEMPORARY | GLOBAL TEMPORARY] TABLE [IF NOT EXISTS]"]),Nl=x(["CREATE VIEW","UPDATE","DELETE [FROM]","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] TABLE","ADD [COLUMN]","ADD [UNIQUE] {INDEX | KEY}","DROP [COLUMN]","MODIFY [COLUMN]","CHANGE","RENAME [TO | AS]","TRUNCATE [TABLE]","ADD AGGREGATOR","ADD LEAF","AGGREGATOR SET AS MASTER","ALTER DATABASE","ALTER PIPELINE","ALTER RESOURCE POOL","ALTER USER","ALTER VIEW","ANALYZE TABLE","ATTACH DATABASE","ATTACH LEAF","ATTACH LEAF ALL","BACKUP DATABASE","BINLOG","BOOTSTRAP AGGREGATOR","CACHE INDEX","CALL","CHANGE","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK BLOB CHECKSUM","CHECK TABLE","CHECKSUM TABLE","CLEAR ORPHAN DATABASES","CLONE","COMMIT","CREATE DATABASE","CREATE GROUP","CREATE INDEX","CREATE LINK","CREATE MILESTONE","CREATE PIPELINE","CREATE RESOURCE POOL","CREATE ROLE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DETACH DATABASE","DETACH PIPELINE","DROP DATABASE","DROP FUNCTION","DROP INDEX","DROP LINK","DROP PIPELINE","DROP PROCEDURE","DROP RESOURCE POOL","DROP ROLE","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","FORCE","GRANT","HANDLER","HELP","KILL CONNECTION","KILLALL QUERIES","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","REBALANCE PARTITIONS","RELEASE SAVEPOINT","REMOVE AGGREGATOR","REMOVE LEAF","REPAIR TABLE","REPLACE","REPLICATE DATABASE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","RESTORE DATABASE","RESTORE REDUNDANCY","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE FUNCTION","SHOW CREATE PIPELINE","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SNAPSHOT DATABASE","SOURCE_POS_WAIT","START GROUP_REPLICATION","START PIPELINE","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP PIPELINE","STOP REPLICA","STOP REPLICATING","STOP SLAVE","TEST PIPELINE","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),vd=x(["UNION [ALL | DISTINCT]","EXCEPT","INTERSECT","MINUS"]),Hd=x(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),Bd=x(["ON DELETE","ON UPDATE","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),Fd=x([]),Yd={name:"singlestoredb",tokenizerOptions:{reservedSelect:gd,reservedClauses:[...Gd,...Qi,...Nl],reservedSetOperations:vd,reservedJoins:Hd,reservedKeywordPhrases:Bd,reservedDataTypePhrases:Fd,reservedKeywords:Ud,reservedDataTypes:xd,reservedFunctionNames:yd,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_$]+"},{quote:"``",prefixes:["@"],requirePrefix:!0}],lineCommentTypes:["--","#"],operators:[":=","&","|","^","~","<<",">>","<=>","&&","||","::","::$","::%",":>","!:>","*.*"],postProcess:CT},formatOptions:{alwaysDenseOperators:["::","::$","::%"],onelineClauses:[...Qi,...Nl],tabularOnelineClauses:Nl}},wd=["ABS","ACOS","ACOSH","ADD_MONTHS","ALL_USER_NAMES","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","APPROX_PERCENTILE_ACCUMULATE","APPROX_PERCENTILE_COMBINE","APPROX_PERCENTILE_ESTIMATE","APPROX_TOP_K","APPROX_TOP_K_ACCUMULATE","APPROX_TOP_K_COMBINE","APPROX_TOP_K_ESTIMATE","APPROXIMATE_JACCARD_INDEX","APPROXIMATE_SIMILARITY","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_COMPACT","ARRAY_CONSTRUCT","ARRAY_CONSTRUCT_COMPACT","ARRAY_CONTAINS","ARRAY_INSERT","ARRAY_INTERSECTION","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_SIZE","ARRAY_SLICE","ARRAY_TO_STRING","ARRAY_UNION_AGG","ARRAY_UNIQUE_AGG","ARRAYS_OVERLAP","AS_ARRAY","AS_BINARY","AS_BOOLEAN","AS_CHAR","AS_VARCHAR","AS_DATE","AS_DECIMAL","AS_NUMBER","AS_DOUBLE","AS_REAL","AS_INTEGER","AS_OBJECT","AS_TIME","AS_TIMESTAMP_LTZ","AS_TIMESTAMP_NTZ","AS_TIMESTAMP_TZ","ASCII","ASIN","ASINH","ATAN","ATAN2","ATANH","AUTO_REFRESH_REGISTRATION_HISTORY","AUTOMATIC_CLUSTERING_HISTORY","AVG","BASE64_DECODE_BINARY","BASE64_DECODE_STRING","BASE64_ENCODE","BIT_LENGTH","BITAND","BITAND_AGG","BITMAP_BIT_POSITION","BITMAP_BUCKET_NUMBER","BITMAP_CONSTRUCT_AGG","BITMAP_COUNT","BITMAP_OR_AGG","BITNOT","BITOR","BITOR_AGG","BITSHIFTLEFT","BITSHIFTRIGHT","BITXOR","BITXOR_AGG","BOOLAND","BOOLAND_AGG","BOOLNOT","BOOLOR","BOOLOR_AGG","BOOLXOR","BOOLXOR_AGG","BUILD_SCOPED_FILE_URL","BUILD_STAGE_FILE_URL","CASE","CAST","CBRT","CEIL","CHARINDEX","CHECK_JSON","CHECK_XML","CHR","CHAR","COALESCE","COLLATE","COLLATION","COMPLETE_TASK_GRAPHS","COMPRESS","CONCAT","CONCAT_WS","CONDITIONAL_CHANGE_EVENT","CONDITIONAL_TRUE_EVENT","CONTAINS","CONVERT_TIMEZONE","COPY_HISTORY","CORR","COS","COSH","COT","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CUME_DIST","CURRENT_ACCOUNT","CURRENT_AVAILABLE_ROLES","CURRENT_CLIENT","CURRENT_DATABASE","CURRENT_DATE","CURRENT_IP_ADDRESS","CURRENT_REGION","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_SECONDARY_ROLES","CURRENT_SESSION","CURRENT_STATEMENT","CURRENT_TASK_GRAPHS","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TRANSACTION","CURRENT_USER","CURRENT_VERSION","CURRENT_WAREHOUSE","DATA_TRANSFER_HISTORY","DATABASE_REFRESH_HISTORY","DATABASE_REFRESH_PROGRESS","DATABASE_REFRESH_PROGRESS_BY_JOB","DATABASE_STORAGE_USAGE_HISTORY","DATE_FROM_PARTS","DATE_PART","DATE_TRUNC","DATEADD","DATEDIFF","DAYNAME","DECODE","DECOMPRESS_BINARY","DECOMPRESS_STRING","DECRYPT","DECRYPT_RAW","DEGREES","DENSE_RANK","DIV0","EDITDISTANCE","ENCRYPT","ENCRYPT_RAW","ENDSWITH","EQUAL_NULL","EXP","EXPLAIN_JSON","EXTERNAL_FUNCTIONS_HISTORY","EXTERNAL_TABLE_FILES","EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY","EXTRACT","EXTRACT_SEMANTIC_CATEGORIES","FACTORIAL","FILTER","FIRST_VALUE","FLATTEN","FLOOR","GENERATE_COLUMN_DESCRIPTION","GENERATOR","GET","GET_ABSOLUTE_PATH","GET_DDL","GET_IGNORE_CASE","GET_OBJECT_REFERENCES","GET_PATH","GET_PRESIGNED_URL","GET_RELATIVE_PATH","GET_STAGE_LOCATION","GETBIT","GREATEST","GREATEST_IGNORE_NULLS","GROUPING","GROUPING_ID","HASH","HASH_AGG","HAVERSINE","HEX_DECODE_BINARY","HEX_DECODE_STRING","HEX_ENCODE","HLL","HLL_ACCUMULATE","HLL_COMBINE","HLL_ESTIMATE","HLL_EXPORT","HLL_IMPORT","HOUR","MINUTE","SECOND","IDENTIFIER","IFF","IFNULL","ILIKE","ILIKE ANY","INFER_SCHEMA","INITCAP","INSERT","INVOKER_ROLE","INVOKER_SHARE","IS_ARRAY","IS_BINARY","IS_BOOLEAN","IS_CHAR","IS_VARCHAR","IS_DATE","IS_DATE_VALUE","IS_DECIMAL","IS_DOUBLE","IS_REAL","IS_GRANTED_TO_INVOKER_ROLE","IS_INTEGER","IS_NULL_VALUE","IS_OBJECT","IS_ROLE_IN_SESSION","IS_TIME","IS_TIMESTAMP_LTZ","IS_TIMESTAMP_NTZ","IS_TIMESTAMP_TZ","JAROWINKLER_SIMILARITY","JSON_EXTRACT_PATH_TEXT","KURTOSIS","LAG","LAST_DAY","LAST_QUERY_ID","LAST_TRANSACTION","LAST_VALUE","LEAD","LEAST","LEFT","LENGTH","LEN","LIKE","LIKE ALL","LIKE ANY","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOGIN_HISTORY","LOGIN_HISTORY_BY_USER","LOWER","LPAD","LTRIM","MATERIALIZED_VIEW_REFRESH_HISTORY","MD5","MD5_HEX","MD5_BINARY","MD5_NUMBER — Obsoleted","MD5_NUMBER_LOWER64","MD5_NUMBER_UPPER64","MEDIAN","MIN","MAX","MINHASH","MINHASH_COMBINE","MOD","MODE","MONTHNAME","MONTHS_BETWEEN","NEXT_DAY","NORMAL","NTH_VALUE","NTILE","NULLIF","NULLIFZERO","NVL","NVL2","OBJECT_AGG","OBJECT_CONSTRUCT","OBJECT_CONSTRUCT_KEEP_NULL","OBJECT_DELETE","OBJECT_INSERT","OBJECT_KEYS","OBJECT_PICK","OCTET_LENGTH","PARSE_IP","PARSE_JSON","PARSE_URL","PARSE_XML","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIPE_USAGE_HISTORY","POLICY_CONTEXT","POLICY_REFERENCES","POSITION","POW","POWER","PREVIOUS_DAY","QUERY_ACCELERATION_HISTORY","QUERY_HISTORY","QUERY_HISTORY_BY_SESSION","QUERY_HISTORY_BY_USER","QUERY_HISTORY_BY_WAREHOUSE","RADIANS","RANDOM","RANDSTR","RANK","RATIO_TO_REPORT","REGEXP","REGEXP_COUNT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","REGEXP_SUBSTR_ALL","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","REGR_VALX","REGR_VALY","REPEAT","REPLACE","REPLICATION_GROUP_REFRESH_HISTORY","REPLICATION_GROUP_REFRESH_PROGRESS","REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB","REPLICATION_GROUP_USAGE_HISTORY","REPLICATION_USAGE_HISTORY","REST_EVENT_HISTORY","RESULT_SCAN","REVERSE","RIGHT","RLIKE","ROUND","ROW_NUMBER","RPAD","RTRIM","RTRIMMED_LENGTH","SEARCH_OPTIMIZATION_HISTORY","SEQ1","SEQ2","SEQ4","SEQ8","SERVERLESS_TASK_HISTORY","SHA1","SHA1_HEX","SHA1_BINARY","SHA2","SHA2_HEX","SHA2_BINARY","SIGN","SIN","SINH","SKEW","SOUNDEX","SPACE","SPLIT","SPLIT_PART","SPLIT_TO_TABLE","SQRT","SQUARE","ST_AREA","ST_ASEWKB","ST_ASEWKT","ST_ASGEOJSON","ST_ASWKB","ST_ASBINARY","ST_ASWKT","ST_ASTEXT","ST_AZIMUTH","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DWITHIN","ST_ENDPOINT","ST_ENVELOPE","ST_GEOGFROMGEOHASH","ST_GEOGPOINTFROMGEOHASH","ST_GEOGRAPHYFROMWKB","ST_GEOGRAPHYFROMWKT","ST_GEOHASH","ST_GEOMETRYFROMWKB","ST_GEOMETRYFROMWKT","ST_HAUSDORFFDISTANCE","ST_INTERSECTION","ST_INTERSECTS","ST_LENGTH","ST_MAKEGEOMPOINT","ST_GEOM_POINT","ST_MAKELINE","ST_MAKEPOINT","ST_POINT","ST_MAKEPOLYGON","ST_POLYGON","ST_NPOINTS","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SETSRID","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY","STAGE_STORAGE_USAGE_HISTORY","STARTSWITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRIP_NULL_VALUE","STRTOK","STRTOK_SPLIT_TO_TABLE","STRTOK_TO_ARRAY","SUBSTR","SUBSTRING","SUM","SYSDATE","SYSTEM$ABORT_SESSION","SYSTEM$ABORT_TRANSACTION","SYSTEM$AUTHORIZE_PRIVATELINK","SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS","SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS","SYSTEM$CANCEL_ALL_QUERIES","SYSTEM$CANCEL_QUERY","SYSTEM$CLUSTERING_DEPTH","SYSTEM$CLUSTERING_INFORMATION","SYSTEM$CLUSTERING_RATIO ","SYSTEM$CURRENT_USER_TASK_NAME","SYSTEM$DATABASE_REFRESH_HISTORY ","SYSTEM$DATABASE_REFRESH_PROGRESS","SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB ","SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$DISABLE_DATABASE_REPLICATION","SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$ESTIMATE_QUERY_ACCELERATION","SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS","SYSTEM$EXPLAIN_JSON_TO_TEXT","SYSTEM$EXPLAIN_PLAN_JSON","SYSTEM$EXTERNAL_TABLE_PIPE_STATUS","SYSTEM$GENERATE_SAML_CSR","SYSTEM$GENERATE_SCIM_ACCESS_TOKEN","SYSTEM$GET_AWS_SNS_IAM_POLICY","SYSTEM$GET_PREDECESSOR_RETURN_VALUE","SYSTEM$GET_PRIVATELINK","SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS","SYSTEM$GET_PRIVATELINK_CONFIG","SYSTEM$GET_SNOWFLAKE_PLATFORM_INFO","SYSTEM$GET_TAG","SYSTEM$GET_TAG_ALLOWED_VALUES","SYSTEM$GET_TAG_ON_CURRENT_COLUMN","SYSTEM$GET_TAG_ON_CURRENT_TABLE","SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER","SYSTEM$LAST_CHANGE_COMMIT_TIME","SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME","SYSTEM$MIGRATE_SAML_IDP_REGISTRATION","SYSTEM$PIPE_FORCE_RESUME","SYSTEM$PIPE_STATUS","SYSTEM$REVOKE_PRIVATELINK","SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS","SYSTEM$SET_RETURN_VALUE","SYSTEM$SHOW_OAUTH_CLIENT_SECRETS","SYSTEM$STREAM_GET_TABLE_TIMESTAMP","SYSTEM$STREAM_HAS_DATA","SYSTEM$TASK_DEPENDENTS_ENABLE","SYSTEM$TYPEOF","SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS","SYSTEM$VERIFY_EXTERNAL_OAUTH_TOKEN","SYSTEM$WAIT","SYSTEM$WHITELIST","SYSTEM$WHITELIST_PRIVATELINK","TAG_REFERENCES","TAG_REFERENCES_ALL_COLUMNS","TAG_REFERENCES_WITH_LINEAGE","TAN","TANH","TASK_DEPENDENTS","TASK_HISTORY","TIME_FROM_PARTS","TIME_SLICE","TIMEADD","TIMEDIFF","TIMESTAMP_FROM_PARTS","TIMESTAMPADD","TIMESTAMPDIFF","TO_ARRAY","TO_BINARY","TO_BOOLEAN","TO_CHAR","TO_VARCHAR","TO_DATE","DATE","TO_DECIMAL","TO_NUMBER","TO_NUMERIC","TO_DOUBLE","TO_GEOGRAPHY","TO_GEOMETRY","TO_JSON","TO_OBJECT","TO_TIME","TIME","TO_TIMESTAMP","TO_TIMESTAMP_LTZ","TO_TIMESTAMP_NTZ","TO_TIMESTAMP_TZ","TO_VARIANT","TO_XML","TRANSLATE","TRIM","TRUNCATE","TRUNC","TRUNC","TRY_BASE64_DECODE_BINARY","TRY_BASE64_DECODE_STRING","TRY_CAST","TRY_HEX_DECODE_BINARY","TRY_HEX_DECODE_STRING","TRY_PARSE_JSON","TRY_TO_BINARY","TRY_TO_BOOLEAN","TRY_TO_DATE","TRY_TO_DECIMAL","TRY_TO_NUMBER","TRY_TO_NUMERIC","TRY_TO_DOUBLE","TRY_TO_GEOGRAPHY","TRY_TO_GEOMETRY","TRY_TO_TIME","TRY_TO_TIMESTAMP","TRY_TO_TIMESTAMP_LTZ","TRY_TO_TIMESTAMP_NTZ","TRY_TO_TIMESTAMP_TZ","TYPEOF","UNICODE","UNIFORM","UPPER","UUID_STRING","VALIDATE","VALIDATE_PIPE_LOAD","VAR_POP","VAR_SAMP","VARIANCE","VARIANCE_SAMP","VARIANCE_POP","WAREHOUSE_LOAD_HISTORY","WAREHOUSE_METERING_HISTORY","WIDTH_BUCKET","XMLGET","YEAR","YEAROFWEEK","YEAROFWEEKISO","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFWEEKISO","DAYOFYEAR","WEEK","WEEK","WEEKOFYEAR","WEEKISO","MONTH","QUARTER","ZEROIFNULL","ZIPF"],bd=["ACCOUNT","ALL","ALTER","AND","ANY","AS","BETWEEN","BY","CASE","CAST","CHECK","COLUMN","CONNECT","CONNECTION","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATABASE","DELETE","DISTINCT","DROP","ELSE","EXISTS","FALSE","FOLLOWING","FOR","FROM","FULL","GRANT","GROUP","GSCLUSTER","HAVING","ILIKE","IN","INCREMENT","INNER","INSERT","INTERSECT","INTO","IS","ISSUE","JOIN","LATERAL","LEFT","LIKE","LOCALTIME","LOCALTIMESTAMP","MINUS","NATURAL","NOT","NULL","OF","ON","OR","ORDER","ORGANIZATION","QUALIFY","REGEXP","REVOKE","RIGHT","RLIKE","ROW","ROWS","SAMPLE","SCHEMA","SELECT","SET","SOME","START","TABLE","TABLESAMPLE","THEN","TO","TRIGGER","TRUE","TRY_CAST","UNION","UNIQUE","UPDATE","USING","VALUES","VIEW","WHEN","WHENEVER","WHERE","WITH","COMMENT"],Vd=["NUMBER","DECIMAL","NUMERIC","INT","INTEGER","BIGINT","SMALLINT","TINYINT","BYTEINT","FLOAT","FLOAT4","FLOAT8","DOUBLE","DOUBLE PRECISION","REAL","VARCHAR","CHAR","CHARACTER","STRING","TEXT","BINARY","VARBINARY","BOOLEAN","DATE","DATETIME","TIME","TIMESTAMP","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TIMESTAMP_TZ","VARIANT","OBJECT","ARRAY","GEOGRAPHY","GEOMETRY"],Wd=x(["SELECT [ALL | DISTINCT]"]),Xd=x(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","QUALIFY","LIMIT","OFFSET","FETCH [FIRST | NEXT]","INSERT [OVERWRITE] [ALL INTO | INTO | ALL | FIRST]","{THEN | ELSE} INTO","VALUES","SET","CLUSTER BY","[WITH] {MASKING POLICY | TAG | ROW ACCESS POLICY}","COPY GRANTS","USING TEMPLATE","MERGE INTO","WHEN MATCHED [AND]","THEN {UPDATE SET | DELETE}","WHEN NOT MATCHED THEN INSERT"]),Zi=x(["CREATE [OR REPLACE] [VOLATILE] TABLE [IF NOT EXISTS]","CREATE [OR REPLACE] [LOCAL | GLOBAL] {TEMP|TEMPORARY} TABLE [IF NOT EXISTS]"]),Il=x(["CREATE [OR REPLACE] [SECURE] [RECURSIVE] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","RENAME TO","SWAP WITH","[SUSPEND | RESUME] RECLUSTER","DROP CLUSTERING KEY","ADD [COLUMN]","RENAME COLUMN","{ALTER | MODIFY} [COLUMN]","DROP [COLUMN]","{ADD | ALTER | MODIFY | DROP} [CONSTRAINT]","RENAME CONSTRAINT","{ADD | DROP} SEARCH OPTIMIZATION","{SET | UNSET} TAG","{ADD | DROP} ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","SET DATA TYPE","UNSET COMMENT","{SET | UNSET} MASKING POLICY","TRUNCATE [TABLE] [IF EXISTS]","ALTER ACCOUNT","ALTER API INTEGRATION","ALTER CONNECTION","ALTER DATABASE","ALTER EXTERNAL TABLE","ALTER FAILOVER GROUP","ALTER FILE FORMAT","ALTER FUNCTION","ALTER INTEGRATION","ALTER MASKING POLICY","ALTER MATERIALIZED VIEW","ALTER NETWORK POLICY","ALTER NOTIFICATION INTEGRATION","ALTER PIPE","ALTER PROCEDURE","ALTER REPLICATION GROUP","ALTER RESOURCE MONITOR","ALTER ROLE","ALTER ROW ACCESS POLICY","ALTER SCHEMA","ALTER SECURITY INTEGRATION","ALTER SEQUENCE","ALTER SESSION","ALTER SESSION POLICY","ALTER SHARE","ALTER STAGE","ALTER STORAGE INTEGRATION","ALTER STREAM","ALTER TAG","ALTER TASK","ALTER USER","ALTER VIEW","ALTER WAREHOUSE","BEGIN","CALL","COMMIT","COPY INTO","CREATE ACCOUNT","CREATE API INTEGRATION","CREATE CONNECTION","CREATE DATABASE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL TABLE","CREATE FAILOVER GROUP","CREATE FILE FORMAT","CREATE FUNCTION","CREATE INTEGRATION","CREATE MANAGED ACCOUNT","CREATE MASKING POLICY","CREATE MATERIALIZED VIEW","CREATE NETWORK POLICY","CREATE NOTIFICATION INTEGRATION","CREATE PIPE","CREATE PROCEDURE","CREATE REPLICATION GROUP","CREATE RESOURCE MONITOR","CREATE ROLE","CREATE ROW ACCESS POLICY","CREATE SCHEMA","CREATE SECURITY INTEGRATION","CREATE SEQUENCE","CREATE SESSION POLICY","CREATE SHARE","CREATE STAGE","CREATE STORAGE INTEGRATION","CREATE STREAM","CREATE TAG","CREATE TASK","CREATE USER","CREATE WAREHOUSE","DELETE","DESCRIBE DATABASE","DESCRIBE EXTERNAL TABLE","DESCRIBE FILE FORMAT","DESCRIBE FUNCTION","DESCRIBE INTEGRATION","DESCRIBE MASKING POLICY","DESCRIBE MATERIALIZED VIEW","DESCRIBE NETWORK POLICY","DESCRIBE PIPE","DESCRIBE PROCEDURE","DESCRIBE RESULT","DESCRIBE ROW ACCESS POLICY","DESCRIBE SCHEMA","DESCRIBE SEQUENCE","DESCRIBE SESSION POLICY","DESCRIBE SHARE","DESCRIBE STAGE","DESCRIBE STREAM","DESCRIBE TABLE","DESCRIBE TASK","DESCRIBE TRANSACTION","DESCRIBE USER","DESCRIBE VIEW","DESCRIBE WAREHOUSE","DROP CONNECTION","DROP DATABASE","DROP EXTERNAL TABLE","DROP FAILOVER GROUP","DROP FILE FORMAT","DROP FUNCTION","DROP INTEGRATION","DROP MANAGED ACCOUNT","DROP MASKING POLICY","DROP MATERIALIZED VIEW","DROP NETWORK POLICY","DROP PIPE","DROP PROCEDURE","DROP REPLICATION GROUP","DROP RESOURCE MONITOR","DROP ROLE","DROP ROW ACCESS POLICY","DROP SCHEMA","DROP SEQUENCE","DROP SESSION POLICY","DROP SHARE","DROP STAGE","DROP STREAM","DROP TAG","DROP TASK","DROP USER","DROP VIEW","DROP WAREHOUSE","EXECUTE IMMEDIATE","EXECUTE TASK","EXPLAIN","GET","GRANT OWNERSHIP","GRANT ROLE","INSERT","LIST","MERGE","PUT","REMOVE","REVOKE ROLE","ROLLBACK","SHOW COLUMNS","SHOW CONNECTIONS","SHOW DATABASES","SHOW DATABASES IN FAILOVER GROUP","SHOW DATABASES IN REPLICATION GROUP","SHOW DELEGATED AUTHORIZATIONS","SHOW EXTERNAL FUNCTIONS","SHOW EXTERNAL TABLES","SHOW FAILOVER GROUPS","SHOW FILE FORMATS","SHOW FUNCTIONS","SHOW GLOBAL ACCOUNTS","SHOW GRANTS","SHOW INTEGRATIONS","SHOW LOCKS","SHOW MANAGED ACCOUNTS","SHOW MASKING POLICIES","SHOW MATERIALIZED VIEWS","SHOW NETWORK POLICIES","SHOW OBJECTS","SHOW ORGANIZATION ACCOUNTS","SHOW PARAMETERS","SHOW PIPES","SHOW PRIMARY KEYS","SHOW PROCEDURES","SHOW REGIONS","SHOW REPLICATION ACCOUNTS","SHOW REPLICATION DATABASES","SHOW REPLICATION GROUPS","SHOW RESOURCE MONITORS","SHOW ROLES","SHOW ROW ACCESS POLICIES","SHOW SCHEMAS","SHOW SEQUENCES","SHOW SESSION POLICIES","SHOW SHARES","SHOW SHARES IN FAILOVER GROUP","SHOW SHARES IN REPLICATION GROUP","SHOW STAGES","SHOW STREAMS","SHOW TABLES","SHOW TAGS","SHOW TASKS","SHOW TRANSACTIONS","SHOW USER FUNCTIONS","SHOW USERS","SHOW VARIABLES","SHOW VIEWS","SHOW WAREHOUSES","TRUNCATE MATERIALIZED VIEW","UNDROP DATABASE","UNDROP SCHEMA","UNDROP TABLE","UNDROP TAG","UNSET","USE DATABASE","USE ROLE","USE SCHEMA","USE SECONDARY ROLES","USE WAREHOUSE"]),jd=x(["UNION [ALL]","MINUS","EXCEPT","INTERSECT"]),kd=x(["[INNER] JOIN","[NATURAL] {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | NATURAL} JOIN"]),Kd=x(["{ROWS | RANGE} BETWEEN","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]"]),$d=x([]),Jd={name:"snowflake",tokenizerOptions:{reservedSelect:Wd,reservedClauses:[...Xd,...Zi,...Il],reservedSetOperations:jd,reservedJoins:kd,reservedKeywordPhrases:Kd,reservedDataTypePhrases:$d,reservedKeywords:bd,reservedDataTypes:Vd,reservedFunctionNames:wd,stringTypes:["$$","''-qq-bs"],identTypes:['""-qq'],variableTypes:[{regex:"[$][1-9]\\d*"},{regex:"[$][_a-zA-Z][_a-zA-Z0-9$]*"}],extraParens:["[]"],identChars:{rest:"$"},lineCommentTypes:["--","//"],operators:["%","::","||","=>",":=","->"],propertyAccessOperators:[":"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...Zi,...Il],tabularOnelineClauses:Il}},zd=Object.freeze(Object.defineProperty({__proto__:null,bigquery:mO,db2:YO,db2i:JO,duckdb:sc,hive:Ic,mariadb:mc,mysql:vc,n1ql:tC,plsql:RC,postgresql:_C,redshift:yC,singlestoredb:Yd,snowflake:Jd,spark:VC,sql:od,sqlite:qC,tidb:jc,transactsql:Md,trino:Cd},Symbol.toStringTag,{value:"Module"})),pr=e=>e[e.length-1],BS=e=>e.sort((t,E)=>E.length-t.length||t.localeCompare(E)),Ps=e=>e.replace(/\s+/gu," "),ul=e=>/\n/.test(e),qt=e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),qi=/\s+/uy,un=e=>new RegExp(`(?:${e})`,"uy"),Qd=e=>e.split("").map(t=>/ /gu.test(t)?"\\s+":`[${t.toUpperCase()}${t.toLowerCase()}]`).join(""),Zd=e=>e+"(?:-"+e+")*",qd=({prefixes:e,requirePrefix:t})=>`(?:${e.map(Qd).join("|")}${t?"":"|"})`,eL=e=>new RegExp(`(?:${e.map(qt).join("|")}).*?(?=\r +|\r| +|$)`,"uy"),eR=(e,t=[])=>{const E=e==="open"?0:1,n=["()",...t].map(r=>r[E]);return un(n.map(qt).join("|"))},tR=e=>un(`${BS(e).map(qt).join("|")}`),tL=({rest:e,dashes:t})=>e||t?`(?![${e||""}${t?"-":""}])`:"",iE=(e,t={})=>{if(e.length===0)return/^\b$/u;const E=tL(t),n=BS(e).map(qt).join("|").replace(/ /gu,"\\s+");return new RegExp(`(?:${n})${E}\\b`,"iuy")},Ol=(e,t)=>{if(!e.length)return;const E=e.map(qt).join("|");return un(`(?:${E})(?:${t})`)},EL=()=>{const e={"<":">","[":"]","(":")","{":"}"},t="{left}(?:(?!{right}').)*?{right}",E=Object.entries(e).map(([l,a])=>t.replace(/{left}/g,qt(l)).replace(/{right}/g,qt(a))),n=qt(Object.keys(e).join(""));return`[Qq]'(?:${String.raw`(?[^\s${n}])(?:(?!\k').)*?\k`}|${E.join("|")})'`},ER={"``":"(?:`[^`]*`)+","[]":String.raw`(?:\[[^\]]*\])(?:\][^\]]*\])*`,'""-qq':String.raw`(?:"[^"]*")+`,'""-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")`,'""-qq-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")+`,'""-raw':String.raw`(?:"[^"]*")`,"''-qq":String.raw`(?:'[^']*')+`,"''-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')`,"''-qq-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')+`,"''-raw":String.raw`(?:'[^']*')`,$$:String.raw`(?\$\w*\$)[\s\S]*?\k`,"'''..'''":String.raw`'''[^\\]*?(?:\\.[^\\]*?)*?'''`,'""".."""':String.raw`"""[^\\]*?(?:\\.[^\\]*?)*?"""`,"{}":String.raw`(?:\{[^\}]*\})`,"q''":EL()},FS=e=>typeof e=="string"?ER[e]:"regex"in e?e.regex:qd(e)+ER[e.quote],nL=e=>un(e.map(t=>"regex"in t?t.regex:FS(t)).join("|")),YS=e=>e.map(FS).join("|"),nR=e=>un(YS(e)),rL=(e={})=>un(wS(e)),wS=({first:e,rest:t,dashes:E,allowFirstCharNumber:n}={})=>{const r="\\p{Alphabetic}\\p{Mark}_",T="\\p{Decimal_Number}",l=qt(e??""),a=qt(t??""),i=n?`[${r}${T}${l}][${r}${T}${a}]*`:`[${r}${l}][${r}${T}${a}]*`;return E?Zd(i):i};function bS(e,t){const E=e.slice(0,t).split(/\n/);return{line:E.length,col:E[E.length-1].length+1}}class sL{constructor(t,E){this.rules=t,this.dialectName=E,this.input="",this.index=0}tokenize(t){this.input=t,this.index=0;const E=[];let n;for(;this.index0;)if(n=this.matchSection(rR,t))E+=n,r++;else if(n=this.matchSection(lL,t))E+=n,r--;else if(n=this.matchSection(TL,t))E+=n;else return null;return[E]}matchSection(t,E){t.lastIndex=this.lastIndex;const n=t.exec(E);return n&&(this.lastIndex+=n[0].length),n?n[0]:null}}class oL{constructor(t,E){this.cfg=t,this.dialectName=E,this.rulesBeforeParams=this.buildRulesBeforeParams(t),this.rulesAfterParams=this.buildRulesAfterParams(t)}tokenize(t,E){const n=[...this.rulesBeforeParams,...this.buildParamRules(this.cfg,E),...this.rulesAfterParams],r=new sL(n,this.dialectName).tokenize(t);return this.cfg.postProcess?this.cfg.postProcess(r):r}buildRulesBeforeParams(t){var E,n,r;return this.validRules([{type:V.DISABLE_COMMENT,regex:/(\/\* *sql-formatter-disable *\*\/[\s\S]*?(?:\/\* *sql-formatter-enable *\*\/|$))/uy},{type:V.BLOCK_COMMENT,regex:t.nestedBlockComments?new aL:/(\/\*[^]*?\*\/)/uy},{type:V.LINE_COMMENT,regex:eL((E=t.lineCommentTypes)!==null&&E!==void 0?E:["--"])},{type:V.QUOTED_IDENTIFIER,regex:nR(t.identTypes)},{type:V.NUMBER,regex:t.underscoresInNumbers?/(?:0x[0-9a-fA-F_]+|0b[01_]+|(?:-\s*)?(?:[0-9_]*\.[0-9_]+|[0-9_]+(?:\.[0-9_]*)?)(?:[eE][-+]?[0-9_]+(?:\.[0-9_]+)?)?)(?![\w\p{Alphabetic}])/uy:/(?:0x[0-9a-fA-F]+|0b[01]+|(?:-\s*)?(?:[0-9]*\.[0-9]+|[0-9]+(?:\.[0-9]*)?)(?:[eE][-+]?[0-9]+(?:\.[0-9]+)?)?)(?![\w\p{Alphabetic}])/uy},{type:V.RESERVED_KEYWORD_PHRASE,regex:iE((n=t.reservedKeywordPhrases)!==null&&n!==void 0?n:[],t.identChars),text:rt},{type:V.RESERVED_DATA_TYPE_PHRASE,regex:iE((r=t.reservedDataTypePhrases)!==null&&r!==void 0?r:[],t.identChars),text:rt},{type:V.CASE,regex:/CASE\b/iuy,text:rt},{type:V.END,regex:/END\b/iuy,text:rt},{type:V.BETWEEN,regex:/BETWEEN\b/iuy,text:rt},{type:V.LIMIT,regex:t.reservedClauses.includes("LIMIT")?/LIMIT\b/iuy:void 0,text:rt},{type:V.RESERVED_CLAUSE,regex:iE(t.reservedClauses,t.identChars),text:rt},{type:V.RESERVED_SELECT,regex:iE(t.reservedSelect,t.identChars),text:rt},{type:V.RESERVED_SET_OPERATION,regex:iE(t.reservedSetOperations,t.identChars),text:rt},{type:V.WHEN,regex:/WHEN\b/iuy,text:rt},{type:V.ELSE,regex:/ELSE\b/iuy,text:rt},{type:V.THEN,regex:/THEN\b/iuy,text:rt},{type:V.RESERVED_JOIN,regex:iE(t.reservedJoins,t.identChars),text:rt},{type:V.AND,regex:/AND\b/iuy,text:rt},{type:V.OR,regex:/OR\b/iuy,text:rt},{type:V.XOR,regex:t.supportsXor?/XOR\b/iuy:void 0,text:rt},...t.operatorKeyword?[{type:V.OPERATOR,regex:/OPERATOR *\([^)]+\)/iuy}]:[],{type:V.RESERVED_FUNCTION_NAME,regex:iE(t.reservedFunctionNames,t.identChars),text:rt},{type:V.RESERVED_DATA_TYPE,regex:iE(t.reservedDataTypes,t.identChars),text:rt},{type:V.RESERVED_KEYWORD,regex:iE(t.reservedKeywords,t.identChars),text:rt}])}buildRulesAfterParams(t){var E,n;return this.validRules([{type:V.VARIABLE,regex:t.variableTypes?nL(t.variableTypes):void 0},{type:V.STRING,regex:nR(t.stringTypes)},{type:V.IDENTIFIER,regex:rL(t.identChars)},{type:V.DELIMITER,regex:/[;]/uy},{type:V.COMMA,regex:/[,]/y},{type:V.OPEN_PAREN,regex:eR("open",t.extraParens)},{type:V.CLOSE_PAREN,regex:eR("close",t.extraParens)},{type:V.OPERATOR,regex:tR(["+","-","/",">","<","=","<>","<=",">=","!=",...(E=t.operators)!==null&&E!==void 0?E:[]])},{type:V.ASTERISK,regex:/[*]/uy},{type:V.PROPERTY_ACCESS_OPERATOR,regex:tR([".",...(n=t.propertyAccessOperators)!==null&&n!==void 0?n:[]])}])}buildParamRules(t,E){var n,r,T,l,a;const i={named:E?.named||((n=t.paramTypes)===null||n===void 0?void 0:n.named)||[],quoted:E?.quoted||((r=t.paramTypes)===null||r===void 0?void 0:r.quoted)||[],numbered:E?.numbered||((T=t.paramTypes)===null||T===void 0?void 0:T.numbered)||[],positional:typeof E?.positional=="boolean"?E.positional:(l=t.paramTypes)===null||l===void 0?void 0:l.positional,custom:E?.custom||((a=t.paramTypes)===null||a===void 0?void 0:a.custom)||[]};return this.validRules([{type:V.NAMED_PARAMETER,regex:Ol(i.named,wS(t.paramChars||t.identChars)),key:o=>o.slice(1)},{type:V.QUOTED_PARAMETER,regex:Ol(i.quoted,YS(t.identTypes)),key:o=>(({tokenKey:S,quoteChar:N})=>S.replace(new RegExp(qt("\\"+N),"gu"),N))({tokenKey:o.slice(2,-1),quoteChar:o.slice(-1)})},{type:V.NUMBERED_PARAMETER,regex:Ol(i.numbered,"[0-9]+"),key:o=>o.slice(1)},{type:V.POSITIONAL_PARAMETER,regex:i.positional?/[?]/y:void 0},...i.custom.map(o=>{var S;return{type:V.CUSTOM_PARAMETER,regex:un(o.regex),key:(S=o.key)!==null&&S!==void 0?S:N=>N}})])}validRules(t){return t.filter(E=>!!E.regex)}}const rt=e=>Ps(e.toUpperCase()),sR=new Map,iL=e=>{let t=sR.get(e);return t||(t=RL(e),sR.set(e,t)),t},RL=e=>({tokenizer:new oL(e.tokenizerOptions,e.name),formatOptions:AL(e.formatOptions)}),AL=e=>{var t;return{alwaysDenseOperators:e.alwaysDenseOperators||[],onelineClauses:Object.fromEntries(e.onelineClauses.map(E=>[E,!0])),tabularOnelineClauses:Object.fromEntries(((t=e.tabularOnelineClauses)!==null&&t!==void 0?t:e.onelineClauses).map(E=>[E,!0]))}};function SL(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"?" ".repeat(10):e.useTabs?" ":" ".repeat(e.tabWidth)}function Cn(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"}class NL{constructor(t){this.params=t,this.index=0}get({key:t,text:E}){return this.params?t?this.params[t]:this.params[this.index++]:E}getPositionalParameterIndex(){return this.index}setPositionalParameterIndex(t){this.index=t}}var VS={exports:{}};(function(e){(function(t,E){e.exports?e.exports=E():t.nearley=E()})(qS,function(){function t(o,S,N){return this.id=++t.highestId,this.name=o,this.symbols=S,this.postprocess=N,this}t.highestId=0,t.prototype.toString=function(o){var S=typeof o>"u"?this.symbols.map(i).join(" "):this.symbols.slice(0,o).map(i).join(" ")+" ● "+this.symbols.slice(o).map(i).join(" ");return this.name+" → "+S};function E(o,S,N,R){this.rule=o,this.dot=S,this.reference=N,this.data=[],this.wantedBy=R,this.isComplete=this.dot===o.symbols.length}E.prototype.toString=function(){return"{"+this.rule.toString(this.dot)+"}, from: "+(this.reference||0)},E.prototype.nextState=function(o){var S=new E(this.rule,this.dot+1,this.reference,this.wantedBy);return S.left=this,S.right=o,S.isComplete&&(S.data=S.build(),S.right=void 0),S},E.prototype.build=function(){var o=[],S=this;do o.push(S.right.data),S=S.left;while(S.left);return o.reverse(),o},E.prototype.finish=function(){this.rule.postprocess&&(this.data=this.rule.postprocess(this.data,this.reference,l.fail))};function n(o,S){this.grammar=o,this.index=S,this.states=[],this.wants={},this.scannable=[],this.completed={}}n.prototype.process=function(o){for(var S=this.states,N=this.wants,R=this.completed,O=0;O0&&S.push(" ^ "+R+" more lines identical to this"),R=0,S.push(" "+_)),N=_}},l.prototype.getSymbolDisplay=function(o){return a(o)},l.prototype.buildFirstStateStack=function(o,S){if(S.indexOf(o)!==-1)return null;if(o.wantedBy.length===0)return[o];var N=o.wantedBy[0],R=[o].concat(S),O=this.buildFirstStateStack(N,R);return O===null?null:[o].concat(O)},l.prototype.save=function(){var o=this.table[this.current];return o.lexerState=this.lexerState,o},l.prototype.restore=function(o){var S=o.index;this.current=S,this.table[S]=o,this.table.splice(S+1),this.lexerState=o.lexerState,this.results=this.finish()},l.prototype.rewind=function(o){if(!this.options.keepHistory)throw new Error("set option `keepHistory` to enable rewinding");this.restore(this.table[o])},l.prototype.finish=function(){var o=[],S=this.grammar.start,N=this.table[this.table.length-1];return N.states.forEach(function(R){R.rule.name===S&&R.dot===R.rule.symbols.length&&R.reference===0&&R.data!==l.fail&&o.push(R)}),o.map(function(R){return R.data})};function a(o){var S=typeof o;if(S==="string")return o;if(S==="object"){if(o.literal)return JSON.stringify(o.literal);if(o instanceof RegExp)return"character matching "+o;if(o.type)return o.type+" token";if(o.test)return"token matching "+String(o.test);throw new Error("Unknown symbol type: "+o)}}function i(o){var S=typeof o;if(S==="string")return o;if(S==="object"){if(o.literal)return JSON.stringify(o.literal);if(o instanceof RegExp)return o.toString();if(o.type)return"%"+o.type;if(o.test)return"<"+String(o.test)+">";throw new Error("Unknown symbol type: "+o)}}return{Parser:l,Grammar:r,Rule:t}})})(VS);var IL=VS.exports;const uL=IR(IL);function OL(e){return e.map(cL).map(CL).map(dL).map(LL).map(_L)}const cL=(e,t,E)=>{if(HS(e.type)){const n=fL(E,t);if(n&&n.type===V.PROPERTY_ACCESS_OPERATOR)return Object.assign(Object.assign({},e),{type:V.IDENTIFIER,text:e.raw});const r=Qn(E,t);if(r&&r.type===V.PROPERTY_ACCESS_OPERATOR)return Object.assign(Object.assign({},e),{type:V.IDENTIFIER,text:e.raw})}return e},CL=(e,t,E)=>{if(e.type===V.RESERVED_FUNCTION_NAME){const n=Qn(E,t);if(!n||!WS(n))return Object.assign(Object.assign({},e),{type:V.IDENTIFIER,text:e.raw})}return e},dL=(e,t,E)=>{if(e.type===V.RESERVED_DATA_TYPE){const n=Qn(E,t);if(n&&WS(n))return Object.assign(Object.assign({},e),{type:V.RESERVED_PARAMETERIZED_DATA_TYPE})}return e},LL=(e,t,E)=>{if(e.type===V.IDENTIFIER){const n=Qn(E,t);if(n&&XS(n))return Object.assign(Object.assign({},e),{type:V.ARRAY_IDENTIFIER})}return e},_L=(e,t,E)=>{if(e.type===V.RESERVED_DATA_TYPE){const n=Qn(E,t);if(n&&XS(n))return Object.assign(Object.assign({},e),{type:V.ARRAY_KEYWORD})}return e},fL=(e,t)=>Qn(e,t,-1),Qn=(e,t,E=1)=>{let n=1;for(;e[t+n*E]&&pL(e[t+n*E]);)n++;return e[t+n*E]},WS=e=>e.type===V.OPEN_PAREN&&e.text==="(",XS=e=>e.type===V.OPEN_PAREN&&e.text==="[",pL=e=>e.type===V.BLOCK_COMMENT||e.type===V.LINE_COMMENT;class jS{constructor(t){this.tokenize=t,this.index=0,this.tokens=[],this.input=""}reset(t,E){this.input=t,this.index=0,this.tokens=this.tokenize(t)}next(){return this.tokens[this.index++]}save(){}formatError(t){const{line:E,col:n}=bS(this.input,t.start);return`Parse error at token: ${t.text} at line ${E} column ${n}`}has(t){return t in V}}var ae;(function(e){e.statement="statement",e.clause="clause",e.set_operation="set_operation",e.function_call="function_call",e.parameterized_data_type="parameterized_data_type",e.array_subscript="array_subscript",e.property_access="property_access",e.parenthesis="parenthesis",e.between_predicate="between_predicate",e.case_expression="case_expression",e.case_when="case_when",e.case_else="case_else",e.limit_clause="limit_clause",e.all_columns_asterisk="all_columns_asterisk",e.literal="literal",e.identifier="identifier",e.keyword="keyword",e.data_type="data_type",e.parameter="parameter",e.operator="operator",e.comma="comma",e.line_comment="line_comment",e.block_comment="block_comment",e.disable_comment="disable_comment"})(ae=ae||(ae={}));function cl(e){return e[0]}const ue=new jS(e=>[]),QE=([[e]])=>e,lt=e=>({type:ae.keyword,tokenType:e.type,text:e.text,raw:e.raw}),TR=e=>({type:ae.data_type,text:e.text,raw:e.raw}),at=(e,{leading:t,trailing:E})=>(t?.length&&(e=Object.assign(Object.assign({},e),{leadingComments:t})),E?.length&&(e=Object.assign(Object.assign({},e),{trailingComments:E})),e),mL=(e,{leading:t,trailing:E})=>{if(t?.length){const[n,...r]=e;e=[at(n,{leading:t}),...r]}if(E?.length){const n=e.slice(0,-1),r=e[e.length-1];e=[...n,at(r,{trailing:E})]}return e},DL={Lexer:ue,ParserRules:[{name:"main$ebnf$1",symbols:[]},{name:"main$ebnf$1",symbols:["main$ebnf$1","statement"],postprocess:e=>e[0].concat([e[1]])},{name:"main",symbols:["main$ebnf$1"],postprocess:([e])=>{const t=e[e.length-1];return t&&!t.hasSemicolon?t.children.length>0?e:e.slice(0,-1):e}},{name:"statement$subexpression$1",symbols:[ue.has("DELIMITER")?{type:"DELIMITER"}:DELIMITER]},{name:"statement$subexpression$1",symbols:[ue.has("EOF")?{type:"EOF"}:EOF]},{name:"statement",symbols:["expressions_or_clauses","statement$subexpression$1"],postprocess:([e,[t]])=>({type:ae.statement,children:e,hasSemicolon:t.type===V.DELIMITER})},{name:"expressions_or_clauses$ebnf$1",symbols:[]},{name:"expressions_or_clauses$ebnf$1",symbols:["expressions_or_clauses$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses$ebnf$2",symbols:[]},{name:"expressions_or_clauses$ebnf$2",symbols:["expressions_or_clauses$ebnf$2","clause"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses",symbols:["expressions_or_clauses$ebnf$1","expressions_or_clauses$ebnf$2"],postprocess:([e,t])=>[...e,...t]},{name:"clause$subexpression$1",symbols:["limit_clause"]},{name:"clause$subexpression$1",symbols:["select_clause"]},{name:"clause$subexpression$1",symbols:["other_clause"]},{name:"clause$subexpression$1",symbols:["set_operation"]},{name:"clause",symbols:["clause$subexpression$1"],postprocess:QE},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["free_form_sql"]},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"limit_clause$ebnf$1$subexpression$1",symbols:[ue.has("COMMA")?{type:"COMMA"}:COMMA,"limit_clause$ebnf$1$subexpression$1$ebnf$1"]},{name:"limit_clause$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1"],postprocess:cl},{name:"limit_clause$ebnf$1",symbols:[],postprocess:()=>null},{name:"limit_clause",symbols:[ue.has("LIMIT")?{type:"LIMIT"}:LIMIT,"_","expression_chain_","limit_clause$ebnf$1"],postprocess:([e,t,E,n])=>{if(n){const[r,T]=n;return{type:ae.limit_clause,limitKw:at(lt(e),{trailing:t}),offset:E,count:T}}else return{type:ae.limit_clause,limitKw:at(lt(e),{trailing:t}),count:E}}},{name:"select_clause$subexpression$1$ebnf$1",symbols:[]},{name:"select_clause$subexpression$1$ebnf$1",symbols:["select_clause$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["all_columns_asterisk","select_clause$subexpression$1$ebnf$1"]},{name:"select_clause$subexpression$1$ebnf$2",symbols:[]},{name:"select_clause$subexpression$1$ebnf$2",symbols:["select_clause$subexpression$1$ebnf$2","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["asteriskless_free_form_sql","select_clause$subexpression$1$ebnf$2"]},{name:"select_clause",symbols:[ue.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT,"select_clause$subexpression$1"],postprocess:([e,[t,E]])=>({type:ae.clause,nameKw:lt(e),children:[t,...E]})},{name:"select_clause",symbols:[ue.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT],postprocess:([e])=>({type:ae.clause,nameKw:lt(e),children:[]})},{name:"all_columns_asterisk",symbols:[ue.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK],postprocess:()=>({type:ae.all_columns_asterisk})},{name:"other_clause$ebnf$1",symbols:[]},{name:"other_clause$ebnf$1",symbols:["other_clause$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"other_clause",symbols:[ue.has("RESERVED_CLAUSE")?{type:"RESERVED_CLAUSE"}:RESERVED_CLAUSE,"other_clause$ebnf$1"],postprocess:([e,t])=>({type:ae.clause,nameKw:lt(e),children:t})},{name:"set_operation$ebnf$1",symbols:[]},{name:"set_operation$ebnf$1",symbols:["set_operation$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"set_operation",symbols:[ue.has("RESERVED_SET_OPERATION")?{type:"RESERVED_SET_OPERATION"}:RESERVED_SET_OPERATION,"set_operation$ebnf$1"],postprocess:([e,t])=>({type:ae.set_operation,nameKw:lt(e),children:t})},{name:"expression_chain_$ebnf$1",symbols:["expression_with_comments_"]},{name:"expression_chain_$ebnf$1",symbols:["expression_chain_$ebnf$1","expression_with_comments_"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain_",symbols:["expression_chain_$ebnf$1"],postprocess:cl},{name:"expression_chain$ebnf$1",symbols:[]},{name:"expression_chain$ebnf$1",symbols:["expression_chain$ebnf$1","_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain",symbols:["expression","expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"andless_expression_chain$ebnf$1",symbols:[]},{name:"andless_expression_chain$ebnf$1",symbols:["andless_expression_chain$ebnf$1","_andless_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"andless_expression_chain",symbols:["andless_expression","andless_expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"expression_with_comments_",symbols:["expression","_"],postprocess:([e,t])=>at(e,{trailing:t})},{name:"_expression_with_comments",symbols:["_","expression"],postprocess:([e,t])=>at(t,{leading:e})},{name:"_andless_expression_with_comments",symbols:["_","andless_expression"],postprocess:([e,t])=>at(t,{leading:e})},{name:"free_form_sql$subexpression$1",symbols:["asteriskless_free_form_sql"]},{name:"free_form_sql$subexpression$1",symbols:["asterisk"]},{name:"free_form_sql",symbols:["free_form_sql$subexpression$1"],postprocess:QE},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["logic_operator"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comma"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comment"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["other_keyword"]},{name:"asteriskless_free_form_sql",symbols:["asteriskless_free_form_sql$subexpression$1"],postprocess:QE},{name:"expression$subexpression$1",symbols:["andless_expression"]},{name:"expression$subexpression$1",symbols:["logic_operator"]},{name:"expression",symbols:["expression$subexpression$1"],postprocess:QE},{name:"andless_expression$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"andless_expression$subexpression$1",symbols:["asterisk"]},{name:"andless_expression",symbols:["andless_expression$subexpression$1"],postprocess:QE},{name:"asteriskless_andless_expression$subexpression$1",symbols:["atomic_expression"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["between_predicate"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["case_expression"]},{name:"asteriskless_andless_expression",symbols:["asteriskless_andless_expression$subexpression$1"],postprocess:QE},{name:"atomic_expression$subexpression$1",symbols:["array_subscript"]},{name:"atomic_expression$subexpression$1",symbols:["function_call"]},{name:"atomic_expression$subexpression$1",symbols:["property_access"]},{name:"atomic_expression$subexpression$1",symbols:["parenthesis"]},{name:"atomic_expression$subexpression$1",symbols:["curly_braces"]},{name:"atomic_expression$subexpression$1",symbols:["square_brackets"]},{name:"atomic_expression$subexpression$1",symbols:["operator"]},{name:"atomic_expression$subexpression$1",symbols:["identifier"]},{name:"atomic_expression$subexpression$1",symbols:["parameter"]},{name:"atomic_expression$subexpression$1",symbols:["literal"]},{name:"atomic_expression$subexpression$1",symbols:["data_type"]},{name:"atomic_expression$subexpression$1",symbols:["keyword"]},{name:"atomic_expression",symbols:["atomic_expression$subexpression$1"],postprocess:QE},{name:"array_subscript",symbols:[ue.has("ARRAY_IDENTIFIER")?{type:"ARRAY_IDENTIFIER"}:ARRAY_IDENTIFIER,"_","square_brackets"],postprocess:([e,t,E])=>({type:ae.array_subscript,array:at({type:ae.identifier,quoted:!1,text:e.text},{trailing:t}),parenthesis:E})},{name:"array_subscript",symbols:[ue.has("ARRAY_KEYWORD")?{type:"ARRAY_KEYWORD"}:ARRAY_KEYWORD,"_","square_brackets"],postprocess:([e,t,E])=>({type:ae.array_subscript,array:at(lt(e),{trailing:t}),parenthesis:E})},{name:"function_call",symbols:[ue.has("RESERVED_FUNCTION_NAME")?{type:"RESERVED_FUNCTION_NAME"}:RESERVED_FUNCTION_NAME,"_","parenthesis"],postprocess:([e,t,E])=>({type:ae.function_call,nameKw:at(lt(e),{trailing:t}),parenthesis:E})},{name:"parenthesis",symbols:[{literal:"("},"expressions_or_clauses",{literal:")"}],postprocess:([e,t,E])=>({type:ae.parenthesis,children:t,openParen:"(",closeParen:")"})},{name:"curly_braces$ebnf$1",symbols:[]},{name:"curly_braces$ebnf$1",symbols:["curly_braces$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"curly_braces",symbols:[{literal:"{"},"curly_braces$ebnf$1",{literal:"}"}],postprocess:([e,t,E])=>({type:ae.parenthesis,children:t,openParen:"{",closeParen:"}"})},{name:"square_brackets$ebnf$1",symbols:[]},{name:"square_brackets$ebnf$1",symbols:["square_brackets$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"square_brackets",symbols:[{literal:"["},"square_brackets$ebnf$1",{literal:"]"}],postprocess:([e,t,E])=>({type:ae.parenthesis,children:t,openParen:"[",closeParen:"]"})},{name:"property_access$subexpression$1",symbols:["identifier"]},{name:"property_access$subexpression$1",symbols:["array_subscript"]},{name:"property_access$subexpression$1",symbols:["all_columns_asterisk"]},{name:"property_access$subexpression$1",symbols:["parameter"]},{name:"property_access",symbols:["atomic_expression","_",ue.has("PROPERTY_ACCESS_OPERATOR")?{type:"PROPERTY_ACCESS_OPERATOR"}:PROPERTY_ACCESS_OPERATOR,"_","property_access$subexpression$1"],postprocess:([e,t,E,n,[r]])=>({type:ae.property_access,object:at(e,{trailing:t}),operator:E.text,property:at(r,{leading:n})})},{name:"between_predicate",symbols:[ue.has("BETWEEN")?{type:"BETWEEN"}:BETWEEN,"_","andless_expression_chain","_",ue.has("AND")?{type:"AND"}:AND,"_","andless_expression"],postprocess:([e,t,E,n,r,T,l])=>({type:ae.between_predicate,betweenKw:lt(e),expr1:mL(E,{leading:t,trailing:n}),andKw:lt(r),expr2:[at(l,{leading:T})]})},{name:"case_expression$ebnf$1",symbols:["expression_chain_"],postprocess:cl},{name:"case_expression$ebnf$1",symbols:[],postprocess:()=>null},{name:"case_expression$ebnf$2",symbols:[]},{name:"case_expression$ebnf$2",symbols:["case_expression$ebnf$2","case_clause"],postprocess:e=>e[0].concat([e[1]])},{name:"case_expression",symbols:[ue.has("CASE")?{type:"CASE"}:CASE,"_","case_expression$ebnf$1","case_expression$ebnf$2",ue.has("END")?{type:"END"}:END],postprocess:([e,t,E,n,r])=>({type:ae.case_expression,caseKw:at(lt(e),{trailing:t}),endKw:lt(r),expr:E||[],clauses:n})},{name:"case_clause",symbols:[ue.has("WHEN")?{type:"WHEN"}:WHEN,"_","expression_chain_",ue.has("THEN")?{type:"THEN"}:THEN,"_","expression_chain_"],postprocess:([e,t,E,n,r,T])=>({type:ae.case_when,whenKw:at(lt(e),{trailing:t}),thenKw:at(lt(n),{trailing:r}),condition:E,result:T})},{name:"case_clause",symbols:[ue.has("ELSE")?{type:"ELSE"}:ELSE,"_","expression_chain_"],postprocess:([e,t,E])=>({type:ae.case_else,elseKw:at(lt(e),{trailing:t}),result:E})},{name:"comma$subexpression$1",symbols:[ue.has("COMMA")?{type:"COMMA"}:COMMA]},{name:"comma",symbols:["comma$subexpression$1"],postprocess:([[e]])=>({type:ae.comma})},{name:"asterisk$subexpression$1",symbols:[ue.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK]},{name:"asterisk",symbols:["asterisk$subexpression$1"],postprocess:([[e]])=>({type:ae.operator,text:e.text})},{name:"operator$subexpression$1",symbols:[ue.has("OPERATOR")?{type:"OPERATOR"}:OPERATOR]},{name:"operator",symbols:["operator$subexpression$1"],postprocess:([[e]])=>({type:ae.operator,text:e.text})},{name:"identifier$subexpression$1",symbols:[ue.has("IDENTIFIER")?{type:"IDENTIFIER"}:IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[ue.has("QUOTED_IDENTIFIER")?{type:"QUOTED_IDENTIFIER"}:QUOTED_IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[ue.has("VARIABLE")?{type:"VARIABLE"}:VARIABLE]},{name:"identifier",symbols:["identifier$subexpression$1"],postprocess:([[e]])=>({type:ae.identifier,quoted:e.type!=="IDENTIFIER",text:e.text})},{name:"parameter$subexpression$1",symbols:[ue.has("NAMED_PARAMETER")?{type:"NAMED_PARAMETER"}:NAMED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[ue.has("QUOTED_PARAMETER")?{type:"QUOTED_PARAMETER"}:QUOTED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[ue.has("NUMBERED_PARAMETER")?{type:"NUMBERED_PARAMETER"}:NUMBERED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[ue.has("POSITIONAL_PARAMETER")?{type:"POSITIONAL_PARAMETER"}:POSITIONAL_PARAMETER]},{name:"parameter$subexpression$1",symbols:[ue.has("CUSTOM_PARAMETER")?{type:"CUSTOM_PARAMETER"}:CUSTOM_PARAMETER]},{name:"parameter",symbols:["parameter$subexpression$1"],postprocess:([[e]])=>({type:ae.parameter,key:e.key,text:e.text})},{name:"literal$subexpression$1",symbols:[ue.has("NUMBER")?{type:"NUMBER"}:NUMBER]},{name:"literal$subexpression$1",symbols:[ue.has("STRING")?{type:"STRING"}:STRING]},{name:"literal",symbols:["literal$subexpression$1"],postprocess:([[e]])=>({type:ae.literal,text:e.text})},{name:"keyword$subexpression$1",symbols:[ue.has("RESERVED_KEYWORD")?{type:"RESERVED_KEYWORD"}:RESERVED_KEYWORD]},{name:"keyword$subexpression$1",symbols:[ue.has("RESERVED_KEYWORD_PHRASE")?{type:"RESERVED_KEYWORD_PHRASE"}:RESERVED_KEYWORD_PHRASE]},{name:"keyword$subexpression$1",symbols:[ue.has("RESERVED_JOIN")?{type:"RESERVED_JOIN"}:RESERVED_JOIN]},{name:"keyword",symbols:["keyword$subexpression$1"],postprocess:([[e]])=>lt(e)},{name:"data_type$subexpression$1",symbols:[ue.has("RESERVED_DATA_TYPE")?{type:"RESERVED_DATA_TYPE"}:RESERVED_DATA_TYPE]},{name:"data_type$subexpression$1",symbols:[ue.has("RESERVED_DATA_TYPE_PHRASE")?{type:"RESERVED_DATA_TYPE_PHRASE"}:RESERVED_DATA_TYPE_PHRASE]},{name:"data_type",symbols:["data_type$subexpression$1"],postprocess:([[e]])=>TR(e)},{name:"data_type",symbols:[ue.has("RESERVED_PARAMETERIZED_DATA_TYPE")?{type:"RESERVED_PARAMETERIZED_DATA_TYPE"}:RESERVED_PARAMETERIZED_DATA_TYPE,"_","parenthesis"],postprocess:([e,t,E])=>({type:ae.parameterized_data_type,dataType:at(TR(e),{trailing:t}),parenthesis:E})},{name:"logic_operator$subexpression$1",symbols:[ue.has("AND")?{type:"AND"}:AND]},{name:"logic_operator$subexpression$1",symbols:[ue.has("OR")?{type:"OR"}:OR]},{name:"logic_operator$subexpression$1",symbols:[ue.has("XOR")?{type:"XOR"}:XOR]},{name:"logic_operator",symbols:["logic_operator$subexpression$1"],postprocess:([[e]])=>lt(e)},{name:"other_keyword$subexpression$1",symbols:[ue.has("WHEN")?{type:"WHEN"}:WHEN]},{name:"other_keyword$subexpression$1",symbols:[ue.has("THEN")?{type:"THEN"}:THEN]},{name:"other_keyword$subexpression$1",symbols:[ue.has("ELSE")?{type:"ELSE"}:ELSE]},{name:"other_keyword$subexpression$1",symbols:[ue.has("END")?{type:"END"}:END]},{name:"other_keyword",symbols:["other_keyword$subexpression$1"],postprocess:([[e]])=>lt(e)},{name:"_$ebnf$1",symbols:[]},{name:"_$ebnf$1",symbols:["_$ebnf$1","comment"],postprocess:e=>e[0].concat([e[1]])},{name:"_",symbols:["_$ebnf$1"],postprocess:([e])=>e},{name:"comment",symbols:[ue.has("LINE_COMMENT")?{type:"LINE_COMMENT"}:LINE_COMMENT],postprocess:([e])=>({type:ae.line_comment,text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[ue.has("BLOCK_COMMENT")?{type:"BLOCK_COMMENT"}:BLOCK_COMMENT],postprocess:([e])=>({type:ae.block_comment,text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[ue.has("DISABLE_COMMENT")?{type:"DISABLE_COMMENT"}:DISABLE_COMMENT],postprocess:([e])=>({type:ae.disable_comment,text:e.text,precedingWhitespace:e.precedingWhitespace})}],ParserStart:"main"},{Parser:PL,Grammar:hL}=uL;function ML(e){let t={};const E=new jS(r=>[...OL(e.tokenize(r,t)),vS(r.length)]),n=new PL(hL.fromCompiled(DL),{lexer:E});return{parse:(r,T)=>{t=T;const{results:l}=n.feed(r);if(l.length===1)return l[0];throw l.length===0?new Error("Parse error: Invalid SQL"):new Error(`Parse error: Ambiguous grammar +${JSON.stringify(l,void 0,2)}`)}}}var w;(function(e){e[e.SPACE=0]="SPACE",e[e.NO_SPACE=1]="NO_SPACE",e[e.NO_NEWLINE=2]="NO_NEWLINE",e[e.NEWLINE=3]="NEWLINE",e[e.MANDATORY_NEWLINE=4]="MANDATORY_NEWLINE",e[e.INDENT=5]="INDENT",e[e.SINGLE_INDENT=6]="SINGLE_INDENT"})(w=w||(w={}));class kS{constructor(t){this.indentation=t,this.items=[]}add(...t){for(const E of t)switch(E){case w.SPACE:this.items.push(w.SPACE);break;case w.NO_SPACE:this.trimHorizontalWhitespace();break;case w.NO_NEWLINE:this.trimWhitespace();break;case w.NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(w.NEWLINE);break;case w.MANDATORY_NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(w.MANDATORY_NEWLINE);break;case w.INDENT:this.addIndentation();break;case w.SINGLE_INDENT:this.items.push(w.SINGLE_INDENT);break;default:this.items.push(E)}}trimHorizontalWhitespace(){for(;UL(pr(this.items));)this.items.pop()}trimWhitespace(){for(;xL(pr(this.items));)this.items.pop()}addNewline(t){if(this.items.length>0)switch(pr(this.items)){case w.NEWLINE:this.items.pop(),this.items.push(t);break;case w.MANDATORY_NEWLINE:break;default:this.items.push(t);break}}addIndentation(){for(let t=0;tthis.itemToString(t)).join("")}getLayoutItems(){return this.items}itemToString(t){switch(t){case w.SPACE:return" ";case w.NEWLINE:case w.MANDATORY_NEWLINE:return` +`;case w.SINGLE_INDENT:return this.indentation.getSingleIndent();default:return t}}}const UL=e=>e===w.SPACE||e===w.SINGLE_INDENT,xL=e=>e===w.SPACE||e===w.SINGLE_INDENT||e===w.NEWLINE;function lR(e,t){if(t==="standard")return e;let E=[];return e.length>=10&&e.includes(" ")&&([e,...E]=e.split(" ")),t==="tabularLeft"?e=e.padEnd(9," "):e=e.padStart(9," "),e+["",...E].join(" ")}function aR(e){return IO(e)||e===V.RESERVED_CLAUSE||e===V.RESERVED_SELECT||e===V.RESERVED_SET_OPERATION||e===V.RESERVED_JOIN||e===V.LIMIT}const Cl="top-level",yL="block-level";class KS{constructor(t){this.indent=t,this.indentTypes=[]}getSingleIndent(){return this.indent}getLevel(){return this.indentTypes.length}increaseTopLevel(){this.indentTypes.push(Cl)}increaseBlockLevel(){this.indentTypes.push(yL)}decreaseTopLevel(){this.indentTypes.length>0&&pr(this.indentTypes)===Cl&&this.indentTypes.pop()}decreaseBlockLevel(){for(;this.indentTypes.length>0&&this.indentTypes.pop()===Cl;);}}class gL extends kS{constructor(t){super(new KS("")),this.expressionWidth=t,this.length=0,this.trailingSpace=!1}add(...t){if(t.forEach(E=>this.addToLength(E)),this.length>this.expressionWidth)throw new da;super.add(...t)}addToLength(t){if(typeof t=="string")this.length+=t.length,this.trailingSpace=!1;else{if(t===w.MANDATORY_NEWLINE||t===w.NEWLINE)throw new da;t===w.INDENT||t===w.SINGLE_INDENT||t===w.SPACE?this.trailingSpace||(this.length++,this.trailingSpace=!0):(t===w.NO_NEWLINE||t===w.NO_SPACE)&&this.trailingSpace&&(this.trailingSpace=!1,this.length--)}}}class da extends Error{}class eT{constructor({cfg:t,dialectCfg:E,params:n,layout:r,inline:T=!1}){this.inline=!1,this.nodes=[],this.index=-1,this.cfg=t,this.dialectCfg=E,this.inline=T,this.params=n,this.layout=r}format(t){for(this.nodes=t,this.index=0;this.index{this.layout.add(this.showFunctionKw(t.nameKw))}),this.formatNode(t.parenthesis)}formatParameterizedDataType(t){this.withComments(t.dataType,()=>{this.layout.add(this.showDataType(t.dataType))}),this.formatNode(t.parenthesis)}formatArraySubscript(t){let E;switch(t.array.type){case ae.data_type:E=this.showDataType(t.array);break;case ae.keyword:E=this.showKw(t.array);break;default:E=this.showIdentifier(t.array);break}this.withComments(t.array,()=>{this.layout.add(E)}),this.formatNode(t.parenthesis)}formatPropertyAccess(t){this.formatNode(t.object),this.layout.add(w.NO_SPACE,t.operator),this.formatNode(t.property)}formatParenthesis(t){const E=this.formatInlineExpression(t.children);E?(this.layout.add(t.openParen),this.layout.add(...E.getLayoutItems()),this.layout.add(w.NO_SPACE,t.closeParen,w.SPACE)):(this.layout.add(t.openParen,w.NEWLINE),Cn(this.cfg)?(this.layout.add(w.INDENT),this.layout=this.formatSubExpression(t.children)):(this.layout.indentation.increaseBlockLevel(),this.layout.add(w.INDENT),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseBlockLevel()),this.layout.add(w.NEWLINE,w.INDENT,t.closeParen,w.SPACE))}formatBetweenPredicate(t){this.layout.add(this.showKw(t.betweenKw),w.SPACE),this.layout=this.formatSubExpression(t.expr1),this.layout.add(w.NO_SPACE,w.SPACE,this.showNonTabularKw(t.andKw),w.SPACE),this.layout=this.formatSubExpression(t.expr2),this.layout.add(w.SPACE)}formatCaseExpression(t){this.formatNode(t.caseKw),this.layout.indentation.increaseBlockLevel(),this.layout=this.formatSubExpression(t.expr),this.layout=this.formatSubExpression(t.clauses),this.layout.indentation.decreaseBlockLevel(),this.layout.add(w.NEWLINE,w.INDENT),this.formatNode(t.endKw)}formatCaseWhen(t){this.layout.add(w.NEWLINE,w.INDENT),this.formatNode(t.whenKw),this.layout=this.formatSubExpression(t.condition),this.formatNode(t.thenKw),this.layout=this.formatSubExpression(t.result)}formatCaseElse(t){this.layout.add(w.NEWLINE,w.INDENT),this.formatNode(t.elseKw),this.layout=this.formatSubExpression(t.result)}formatClause(t){this.isOnelineClause(t)?this.formatClauseInOnelineStyle(t):Cn(this.cfg)?this.formatClauseInTabularStyle(t):this.formatClauseInIndentedStyle(t)}isOnelineClause(t){return Cn(this.cfg)?this.dialectCfg.tabularOnelineClauses[t.nameKw.text]:this.dialectCfg.onelineClauses[t.nameKw.text]}formatClauseInIndentedStyle(t){this.layout.add(w.NEWLINE,w.INDENT,this.showKw(t.nameKw),w.NEWLINE),this.layout.indentation.increaseTopLevel(),this.layout.add(w.INDENT),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatClauseInOnelineStyle(t){this.layout.add(w.NEWLINE,w.INDENT,this.showKw(t.nameKw),w.SPACE),this.layout=this.formatSubExpression(t.children)}formatClauseInTabularStyle(t){this.layout.add(w.NEWLINE,w.INDENT,this.showKw(t.nameKw),w.SPACE),this.layout.indentation.increaseTopLevel(),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatSetOperation(t){this.layout.add(w.NEWLINE,w.INDENT,this.showKw(t.nameKw),w.NEWLINE),this.layout.add(w.INDENT),this.layout=this.formatSubExpression(t.children)}formatLimitClause(t){this.withComments(t.limitKw,()=>{this.layout.add(w.NEWLINE,w.INDENT,this.showKw(t.limitKw))}),this.layout.indentation.increaseTopLevel(),Cn(this.cfg)?this.layout.add(w.SPACE):this.layout.add(w.NEWLINE,w.INDENT),t.offset?(this.layout=this.formatSubExpression(t.offset),this.layout.add(w.NO_SPACE,",",w.SPACE),this.layout=this.formatSubExpression(t.count)):this.layout=this.formatSubExpression(t.count),this.layout.indentation.decreaseTopLevel()}formatAllColumnsAsterisk(t){this.layout.add("*",w.SPACE)}formatLiteral(t){this.layout.add(t.text,w.SPACE)}formatIdentifier(t){this.layout.add(this.showIdentifier(t),w.SPACE)}formatParameter(t){this.layout.add(this.params.get(t),w.SPACE)}formatOperator({text:t}){this.cfg.denseOperators||this.dialectCfg.alwaysDenseOperators.includes(t)?this.layout.add(w.NO_SPACE,t):t===":"?this.layout.add(w.NO_SPACE,t,w.SPACE):this.layout.add(t,w.SPACE)}formatComma(t){this.inline?this.layout.add(w.NO_SPACE,",",w.SPACE):this.layout.add(w.NO_SPACE,",",w.NEWLINE,w.INDENT)}withComments(t,E){this.formatComments(t.leadingComments),E(),this.formatComments(t.trailingComments)}formatComments(t){t&&t.forEach(E=>{E.type===ae.line_comment?this.formatLineComment(E):this.formatBlockComment(E)})}formatLineComment(t){ul(t.precedingWhitespace||"")?this.layout.add(w.NEWLINE,w.INDENT,t.text,w.MANDATORY_NEWLINE,w.INDENT):this.layout.getLayoutItems().length>0?this.layout.add(w.NO_NEWLINE,w.SPACE,t.text,w.MANDATORY_NEWLINE,w.INDENT):this.layout.add(t.text,w.MANDATORY_NEWLINE,w.INDENT)}formatBlockComment(t){t.type===ae.block_comment&&this.isMultilineBlockComment(t)?(this.splitBlockComment(t.text).forEach(E=>{this.layout.add(w.NEWLINE,w.INDENT,E)}),this.layout.add(w.NEWLINE,w.INDENT)):this.layout.add(t.text,w.SPACE)}isMultilineBlockComment(t){return ul(t.text)||ul(t.precedingWhitespace||"")}isDocComment(t){const E=t.split(/\n/);return/^\/\*\*?$/.test(E[0])&&E.slice(1,E.length-1).every(n=>/^\s*\*/.test(n))&&/^\s*\*\/$/.test(pr(E))}splitBlockComment(t){return this.isDocComment(t)?t.split(/\n/).map(E=>/^\s*\*/.test(E)?" "+E.replace(/^\s*/,""):E):t.split(/\n/).map(E=>E.replace(/^\s*/,""))}formatSubExpression(t){return new eT({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:this.layout,inline:this.inline}).format(t)}formatInlineExpression(t){const E=this.params.getPositionalParameterIndex();try{return new eT({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:new gL(this.cfg.expressionWidth),inline:!0}).format(t)}catch(n){if(n instanceof da){this.params.setPositionalParameterIndex(E);return}else throw n}}formatKeywordNode(t){switch(t.tokenType){case V.RESERVED_JOIN:return this.formatJoin(t);case V.AND:case V.OR:case V.XOR:return this.formatLogicalOperator(t);default:return this.formatKeyword(t)}}formatJoin(t){Cn(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(w.NEWLINE,w.INDENT,this.showKw(t),w.SPACE),this.layout.indentation.increaseTopLevel()):this.layout.add(w.NEWLINE,w.INDENT,this.showKw(t),w.SPACE)}formatKeyword(t){this.layout.add(this.showKw(t),w.SPACE)}formatLogicalOperator(t){this.cfg.logicalOperatorNewline==="before"?Cn(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(w.NEWLINE,w.INDENT,this.showKw(t),w.SPACE),this.layout.indentation.increaseTopLevel()):this.layout.add(w.NEWLINE,w.INDENT,this.showKw(t),w.SPACE):this.layout.add(this.showKw(t),w.NEWLINE,w.INDENT)}formatDataType(t){this.layout.add(this.showDataType(t),w.SPACE)}showKw(t){return aR(t.tokenType)?lR(this.showNonTabularKw(t),this.cfg.indentStyle):this.showNonTabularKw(t)}showNonTabularKw(t){switch(this.cfg.keywordCase){case"preserve":return Ps(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showFunctionKw(t){return aR(t.tokenType)?lR(this.showNonTabularFunctionKw(t),this.cfg.indentStyle):this.showNonTabularFunctionKw(t)}showNonTabularFunctionKw(t){switch(this.cfg.functionCase){case"preserve":return Ps(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showIdentifier(t){if(t.quoted)return t.text;switch(this.cfg.identifierCase){case"preserve":return t.text;case"upper":return t.text.toUpperCase();case"lower":return t.text.toLowerCase()}}showDataType(t){switch(this.cfg.dataTypeCase){case"preserve":return Ps(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}}class GL{constructor(t,E){this.dialect=t,this.cfg=E,this.params=new NL(this.cfg.params)}format(t){const E=this.parse(t);return this.formatAst(E).trimEnd()}parse(t){return ML(this.dialect.tokenizer).parse(t,this.cfg.paramTypes||{})}formatAst(t){return t.map(E=>this.formatStatement(E)).join(` +`.repeat(this.cfg.linesBetweenQueries+1))}formatStatement(t){const E=new eT({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new kS(new KS(SL(this.cfg)))}).format(t.children);return t.hasSemicolon&&(this.cfg.newlineBeforeSemicolon?E.add(w.NEWLINE,";"):E.add(w.NO_NEWLINE,";")),E.toString()}}class hs extends Error{}function vL(e){const t=["multilineLists","newlineBeforeOpenParen","newlineBeforeCloseParen","aliasAs","commaPosition","tabulateAlias"];for(const E of t)if(E in e)throw new hs(`${E} config is no more supported.`);if(e.expressionWidth<=0)throw new hs(`expressionWidth config must be positive number. Received ${e.expressionWidth} instead.`);if(e.params&&!HL(e.params)&&console.warn('WARNING: All "params" option values should be strings.'),e.paramTypes&&!BL(e.paramTypes))throw new hs("Empty regex given in custom paramTypes. That would result in matching infinite amount of parameters.");return e}function HL(e){return(e instanceof Array?e:Object.values(e)).every(E=>typeof E=="string")}function BL(e){return e.custom&&Array.isArray(e.custom)?e.custom.every(t=>t.regex!==""):!0}var FL=function(e,t){var E={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(E[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r{if(typeof t.language=="string"&&!YL.includes(t.language))throw new hs(`Unsupported SQL dialect: ${t.language}`);const E=$S[t.language||"sql"];return VL(e,Object.assign(Object.assign({},t),{dialect:zd[E]}))},VL=(e,t)=>{var{dialect:E}=t,n=FL(t,["dialect"]);if(typeof e!="string")throw new Error("Invalid query argument. Expected string, instead got "+typeof e);const r=vL(Object.assign(Object.assign({},wL),n));return new GL(iL(E),r).format(e)},JS=e=>{const t=(e||"").toLowerCase();return t.includes("datetime")||t.includes("timestamp")},WL=e=>{const t=(e||"").toLowerCase();return t.includes("date")&&!JS(t)},XL=e=>{const t=(e||"").toLowerCase();return t==="time"||t.startsWith("time(")},en=e=>JS(e)?"datetime-local":WL(e)?"date":XL(e)?"time":"text",oR=(e,t)=>{if(e===""||e.trim()==="")return null;let E=e.trim();if(t==="datetime-local"){E=E.replace("T"," ").replace(/\//g,"-");const n=E.split(" ");return n.length===2&&n[1].split(":").length===2&&(E=`${n[0]} ${n[1]}:00`),E}return t==="date"?E.replace(/\//g,"-"):E},Ss=(e,t)=>{if(e==null)return"";const E=en(t),n=String(e);if(E==="datetime-local"){const r=n.match(/(\d{4})[-/](\d{2})[-/](\d{2})[T ](\d{2}):(\d{2}):?(\d{2})?/);if(r){const[,T,l,a,i,o,S="00"]=r;return`${T}/${l}/${a} ${i}:${o}:${S}`}}if(E==="date"){const r=n.match(/(\d{4})[-/](\d{2})[-/](\d{2})/);if(r){const[,T,l,a]=r;return`${T}/${l}/${a}`}}if(E==="time"){const r=n.match(/(\d{2}):(\d{2}):?(\d{2})?/);if(r){const[,T,l,a="00"]=r;return`${T}:${l}:${a}`}}return n},iR=(e,t)=>{if(!e||e.trim()==="")return"";const E=e.trim();if(t==="time"){const O=E.match(/^(\d{1,2}):(\d{1,2}):?(\d{1,2})?$/);if(O){const[,_,H,c="0"]=O;return`${_.padStart(2,"0")}:${H.padStart(2,"0")}:${c.padStart(2,"0")}`}const L=E.match(/^(\d{2})(\d{2})(\d{2})?$/);if(L){const[,_,H,c="00"]=L;return`${_}:${H}:${c}`}return E}let n="",r="";const T=E.match(/^(.+?)[T\s](\d{1,2}:\d{1,2}(?::\d{1,2})?)$/);T?(n=T[1],r=T[2]):(n=E,r="");let l="",a="",i="";const o=n.match(/^(\d{4})[-/.年](\d{1,2})[-/.月](\d{1,2})日?$/);o&&([,l,a,i]=o);const S=n.match(/^(\d{4})(\d{2})(\d{2})$/);S&&([,l,a,i]=S);const N=n.match(/^(\d{1,2})[-/.](\d{1,2})[-/.](\d{4})$/);if(N){const[,O,L,_]=N;l=_,parseInt(O)>12?(i=O,a=L):(a=O,i=L)}if(!l||!a||!i)return E;const R=`${l}/${a.padStart(2,"0")}/${i.padStart(2,"0")}`;if(t==="date")return R;if(r){const O=r.match(/^(\d{1,2}):(\d{1,2}):?(\d{1,2})?$/);if(O){const[,L,_,H="0"]=O;return`${R} ${L.padStart(2,"0")}:${_.padStart(2,"0")}:${H.padStart(2,"0")}`}}return t==="datetime-local"?`${R} 00:00:00`:R},RR=(e,t)=>{if(e==null)return"";const E=String(e),n=(t||"").toLowerCase(),r=n.includes("datetime")||n.includes("timestamp"),T=n.includes("date")&&!r,l=n==="time"||n.startsWith("time("),a=/^(\d{4})[-/](\d{2})[-/](\d{2})[T ](\d{2}):(\d{2}):?(\d{2})?/,i=/^(\d{4})[-/](\d{2})[-/](\d{2})$/,o=/^(\d{2}):(\d{2}):?(\d{2})?$/,S=E.match(a),N=E.match(i),R=E.match(o);if(l&&R){const[,O,L,_="00"]=R;return`${O}:${L}:${_}`}if((r||S)&&S){const[,O,L,_,H,c,A="00"]=S;return`${O}/${L}/${_} ${H}:${c}:${A}`}if((T||N)&&N){const[,O,L,_]=N;return`${O}/${L}/${_}`}return E},jL=["周一","周二","周三","周四","周五","周六","周日"];function kL({value:e,type:t,onChange:E,onClose:n,position:r}){const l=(()=>{const B=new Date;if(!e)return{year:B.getFullYear(),month:B.getMonth(),day:B.getDate(),hour:B.getHours(),minute:B.getMinutes(),second:B.getSeconds()};if(t==="time"){const j=e.match(/(\d{1,2}):(\d{1,2}):?(\d{1,2})?/);if(j)return{year:B.getFullYear(),month:B.getMonth(),day:B.getDate(),hour:parseInt(j[1]),minute:parseInt(j[2]),second:parseInt(j[3]||"0")}}else{const j=e.match(/(\d{4})[-/](\d{1,2})[-/](\d{1,2})(?:[T ](\d{1,2}):(\d{1,2}):?(\d{1,2})?)?/);if(j)return{year:parseInt(j[1]),month:parseInt(j[2])-1,day:parseInt(j[3]),hour:parseInt(j[4]||"0"),minute:parseInt(j[5]||"0"),second:parseInt(j[6]||"0")}}return{year:B.getFullYear(),month:B.getMonth(),day:B.getDate(),hour:0,minute:0,second:0}})(),[a,i]=u.useState(l.year),[o,S]=u.useState(l.month),[N,R]=u.useState({year:l.year,month:l.month,day:l.day}),[O,L]=u.useState({hour:l.hour,minute:l.minute,second:l.second}),_=u.useRef(null),H=(B,j)=>{const ee=b=>b.toString().padStart(2,"0");return t==="time"?`${ee(j.hour)}:${ee(j.minute)}:${ee(j.second)}`:t==="date"?`${B.year}/${ee(B.month+1)}/${ee(B.day)}`:`${B.year}/${ee(B.month+1)}/${ee(B.day)} ${ee(j.hour)}:${ee(j.minute)}:${ee(j.second)}`},c=(B,j)=>new Date(B,j+1,0).getDate(),A=(B,j)=>{const ee=new Date(B,j,1).getDay();return ee===0?6:ee-1},I=()=>{const B=c(a,o),j=A(a,o),ee=c(a,o-1),b=[];for(let Ee=j-1;Ee>=0;Ee--)b.push({day:ee-Ee,isCurrentMonth:!1,isToday:!1});const U=new Date;for(let Ee=1;Ee<=B;Ee++){const ce=a===U.getFullYear()&&o===U.getMonth()&&Ee===U.getDate();b.push({day:Ee,isCurrentMonth:!0,isToday:ce})}const J=42-b.length;for(let Ee=1;Ee<=J;Ee++)b.push({day:Ee,isCurrentMonth:!1,isToday:!1});return b},C=()=>{o===0?(i(a-1),S(11)):S(o-1)},M=()=>{o===11?(i(a+1),S(0)):S(o+1)},p=(B,j)=>{if(j){const ee={year:a,month:o,day:B};R(ee),E(H(ee,O))}},P=(B,j)=>{const b=Math.max(0,Math.min(B==="hour"?23:59,j)),U={...O,[B]:b};L(U),E(H(N,U))},D=()=>{const B=new Date,j={year:B.getFullYear(),month:B.getMonth(),day:B.getDate()},ee=t!=="date"?{hour:B.getHours(),minute:B.getMinutes(),second:B.getSeconds()}:O;i(B.getFullYear()),S(B.getMonth()),R(j),t!=="date"&&L(ee),E(H(j,ee))},Z=(B,j)=>j&&N.year===a&&N.month===o&&N.day===B,Y=I(),ne=({value:B,onChange:j,max:ee,label:b})=>{const[U,J]=u.useState(B.toString().padStart(2,"0"));u.useEffect(()=>{J(B.toString().padStart(2,"0"))},[B]);const Ee=De=>{De.preventDefault();const Ne=De.deltaY>0?-1:1,se=B+Ne;se>=0&&se<=ee?j(se):se<0?j(ee):j(0)},ce=De=>{const Ne=De.target.value.replace(/\D/g,"").slice(0,2);J(Ne)},ye=()=>{const De=parseInt(U)||0,Ne=Math.max(0,Math.min(ee,De));J(Ne.toString().padStart(2,"0")),j(Ne)},me=De=>{De.key==="ArrowUp"?(De.preventDefault(),j(B>=ee?0:B+1)):De.key==="ArrowDown"?(De.preventDefault(),j(B<=0?ee:B-1)):De.key==="Enter"&&ye()};return s.jsxs("div",{className:"flex flex-col items-center",children:[s.jsx("input",{type:"text",value:U,onChange:ce,onBlur:ye,onKeyDown:me,onWheel:Ee,className:`w-10 h-7 text-center text-sm font-medium bg-primary-500 text-white rounded \r + border-0 outline-none focus:ring-2 focus:ring-primary-300`}),s.jsx("span",{className:"text-[10px] text-text-tertiary mt-0.5",children:b})]})},Se=(()=>{const B=t==="time"?140:220,j=t==="time"?80:320;let ee=r.top,b=r.left;return r.top+j>window.innerHeight-20&&(ee=r.top-j-40),b+B>window.innerWidth-20&&(b=window.innerWidth-B-20),b<20&&(b=20),ee<20&&(ee=20),{top:ee,left:b}})(),he=B=>B.toString().padStart(2,"0");return s.jsxs("div",{ref:_,className:"fixed bg-white rounded-lg shadow-xl border border-primary-200 overflow-hidden",style:{top:Se.top,left:Se.left,zIndex:99999,animation:"fadeIn 0.1s ease-out"},onClick:B=>B.stopPropagation(),children:[t!=="date"&&t==="time"&&s.jsx("div",{className:"p-3 bg-primary-500",children:s.jsxs("div",{className:"flex items-center gap-1 justify-center",children:[s.jsx(ne,{value:O.hour,onChange:B=>P("hour",B),max:23,label:""}),s.jsx("span",{className:"text-white font-bold text-lg",children:":"}),s.jsx(ne,{value:O.minute,onChange:B=>P("minute",B),max:59,label:""}),s.jsx("span",{className:"text-white font-bold text-lg",children:":"}),s.jsx(ne,{value:O.second,onChange:B=>P("second",B),max:59,label:""})]})}),t!=="time"&&s.jsxs("div",{className:"p-2",style:{width:220},children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("button",{onClick:C,className:"w-6 h-6 flex items-center justify-center rounded hover:bg-light-hover text-text-tertiary hover:text-text-primary",children:s.jsx(Io,{size:14})}),s.jsxs("span",{className:"text-xs font-semibold text-text-primary",children:[a,"年",o+1,"月"]}),s.jsx("button",{onClick:M,className:"w-6 h-6 flex items-center justify-center rounded hover:bg-light-hover text-text-tertiary hover:text-text-primary",children:s.jsx(WE,{size:14})})]}),s.jsx("div",{className:"grid grid-cols-7 gap-0 mb-1",children:jL.map(B=>s.jsx("div",{className:"h-5 flex items-center justify-center text-[10px] font-medium text-primary-600",children:B},B))}),s.jsx("div",{className:"grid grid-cols-7 gap-0",children:Y.map((B,j)=>s.jsx("div",{onClick:()=>p(B.day,B.isCurrentMonth),className:`h-6 flex items-center justify-center text-xs cursor-pointer transition-all + ${B.isCurrentMonth?"text-text-primary":"text-text-muted"} + ${B.isToday&&!Z(B.day,B.isCurrentMonth)?"bg-gray-100 text-primary-600 font-medium":""} + ${Z(B.day,B.isCurrentMonth)?"bg-primary-500 text-white font-medium rounded":B.isCurrentMonth?"hover:bg-light-hover":""}`,children:B.day},j))}),t==="datetime-local"&&s.jsx("div",{className:"mt-2 pt-2 border-t border-border-light",children:s.jsxs("div",{className:"flex items-center justify-center gap-1 bg-primary-500 rounded p-1.5",children:[s.jsx(ne,{value:O.hour,onChange:B=>P("hour",B),max:23,label:""}),s.jsx("span",{className:"text-white font-bold",children:":"}),s.jsx(ne,{value:O.minute,onChange:B=>P("minute",B),max:59,label:""}),s.jsx("span",{className:"text-white font-bold",children:":"}),s.jsx(ne,{value:O.second,onChange:B=>P("second",B),max:59,label:""})]})})]}),s.jsxs("div",{className:"px-2 py-1.5 bg-light-surface border-t border-border-light flex items-center justify-between text-[10px]",children:[s.jsx("span",{className:"text-text-secondary font-mono",children:t==="time"?`${he(O.hour)}:${he(O.minute)}:${he(O.second)}`:`今天: ${new Date().getFullYear()}/${he(new Date().getMonth()+1)}/${he(new Date().getDate())}`}),s.jsx("div",{className:"flex gap-1",children:s.jsx("button",{onClick:D,className:"px-1.5 py-0.5 text-primary-600 hover:bg-primary-50 rounded",children:t==="time"?"现在":"今天"})})]})]})}const dl=e=>{if(!e)return 0;let t=0;for(let E=0;E255?14:8;return t},zS=u.memo(function({columns:t,data:E,showColumnInfo:n=!1,editable:r=!1,primaryKeyColumn:T,onCellChange:l,onDeleteRow:a,onDeleteRows:i,onRefresh:o,onSave:S,onAddRow:N,onBatchUpdate:R,modifiedCells:O,rowHeight:L=28,overscan:_=20}){const[H,c]=u.useState(new Set),A=u.useRef(null),I=u.useRef(0),C=u.useRef(0),[,M]=u.useState(0),[p,P]=u.useState(0),[D,Z]=u.useState(null),[Y,ne]=u.useState(""),[xe,Se]=u.useState(null),[he,B]=u.useState(null),j=u.useRef(null),[ee,b]=u.useState(""),[U,J]=u.useState(!1),[Ee,ce]=u.useState(0),ye=u.useRef(null),[me,De]=u.useState(!1),[Ne,se]=u.useState(new Set),[We,Xe]=u.useState(null),[W,Qe]=u.useState(!1),[Te,Ke]=u.useState(null),Ye=u.useMemo(()=>{const G=new Set;return Ne.forEach(g=>{const X=g.indexOf("-");X>0&&G.add(parseInt(g.substring(0,X)))}),G},[Ne]),Q=u.useMemo(()=>t.some(G=>G.comment),[t]),Oe=n?Q?58:44:28,pe=r?48:0,y=u.useMemo(()=>[...t].sort((G,g)=>{const X=H.has(G.name)?0:1,Ie=H.has(g.name)?0:1;return X-Ie}),[t,H]),[le,Ce]=u.useState({}),[ge,je]=u.useState(null),Be=u.useRef(0),Ze=u.useRef(0);u.useEffect(()=>{const G={};for(const f of y){if(le[f.name]){G[f.name]=le[f.name];continue}let d=dl(f.name)+24+20;n&&f.type&&(d=Math.max(d,dl(f.type)+24));let v=0;const h=Math.min(E.length,100);for(let K=0;KG.name).join(","),n]);const fe=u.useCallback((G,g)=>{g.preventDefault(),g.stopPropagation(),je(G),Be.current=g.clientX,Ze.current=le[G]||100},[le]);u.useEffect(()=>{if(!ge)return;document.body.style.cursor="col-resize",document.body.style.userSelect="none";const G=X=>{const Ie=X.clientX-Be.current,f=Math.max(50,Math.min(600,Ze.current+Ie));Ce(d=>({...d,[ge]:f}))},g=()=>{je(null),document.body.style.cursor="",document.body.style.userSelect=""};return document.addEventListener("mousemove",G),document.addEventListener("mouseup",g),()=>{document.removeEventListener("mousemove",G),document.removeEventListener("mouseup",g),document.body.style.cursor="",document.body.style.userSelect=""}},[ge]);const m=u.useMemo(()=>{const G={};let g=pe;for(const X of y)H.has(X.name)&&(G[X.name]=g,g+=le[X.name]||100);return G},[y,H,le,pe]),F=u.useMemo(()=>{if(!ee)return new Set;const G=new Set,g=ee.toLowerCase();for(let X=0;X[...F],[F]),_e=u.useMemo(()=>{const G=I.current,g=Math.max(0,Math.floor(G/L)-_),X=Math.ceil(p/L),Ie=Math.min(E.length-1,g+X+_*2);return{startIndex:g,endIndex:Ie,totalHeight:E.length*L,offsetY:g*L}},[E.length,I.current,p,L,_]),k=u.useMemo(()=>pe+y.reduce((G,g)=>G+(le[g.name]||100),0),[y,le,pe]);u.useEffect(()=>{const G=A.current;if(!G)return;const g=()=>P(G.clientHeight-Oe);let X=null;const Ie=()=>{X||(X=requestAnimationFrame(()=>{I.current=G.scrollTop,C.current=G.scrollLeft,M(d=>d+1),X=null}))};g(),G.addEventListener("scroll",Ie,{passive:!0});const f=new ResizeObserver(g);return f.observe(G),()=>{G.removeEventListener("scroll",Ie),f.disconnect(),X&&cancelAnimationFrame(X)}},[Oe]);const ie=u.useCallback(G=>{c(g=>{const X=new Set(g);return X.has(G)?X.delete(G):X.add(G),X})},[]),Re=u.useCallback(G=>y.findIndex(g=>g.name===G),[y]),Et=u.useCallback((G,g)=>{const X=new Set,Ie=Math.min(G.row,g.row),f=Math.max(G.row,g.row),d=Math.min(Re(G.col),Re(g.col)),v=Math.max(Re(G.col),Re(g.col));for(let h=Ie;h<=f;h++)for(let K=d;K<=v;K++)y[K]&&X.add(`${h}-${y[K].name}`);return X},[y,Re]),KE=u.useCallback((G,g,X)=>{if(X.button!==0)return;De(!0),A.current?.focus();const Ie=`${G}-${g}`;X.shiftKey&&Te?se(Et(Te,{row:G,col:g})):X.ctrlKey||X.metaKey?(se(f=>{const d=new Set(f);return d.has(Ie)?d.delete(Ie):d.add(Ie),d}),Ke({row:G,col:g})):(se(new Set([Ie])),Xe({row:G,col:g}),Ke({row:G,col:g}),Qe(!0))},[Te,Et]),fE=u.useCallback((G,g)=>{W&&We&&se(Et(We,{row:G,col:g}))},[W,We,Et]),oe=u.useRef(!1);u.useEffect(()=>{const G=()=>{W&&Ne.size>1&&(oe.current=!0,setTimeout(()=>{oe.current=!1},50)),Qe(!1)};return window.addEventListener("mouseup",G),()=>window.removeEventListener("mouseup",G)},[W,Ne.size]);const qe=u.useCallback(G=>{if(q.length===0)return;const g=q[G];if(!g)return;const X=g.indexOf("-"),Ie=parseInt(g.substring(0,X)),f=g.substring(X+1),d=A.current;d&&(d.scrollTop=Math.max(0,Ie*L-p/2)),se(new Set([g])),Ke({row:Ie,col:f})},[q,L,p]),Yt=u.useCallback(()=>{if(q.length===0)return;const G=(Ee+1)%q.length;ce(G),qe(G)},[Ee,q.length,qe]),$=u.useCallback(()=>{if(q.length===0)return;const G=(Ee-1+q.length)%q.length;ce(G),qe(G)},[Ee,q.length,qe]),we=u.useCallback((G,g,X="next")=>{const Ie=Re(g);let f=G,d=X==="next"?Ie+1:Ie-1;X==="next"?d>=y.length&&(d=0,f=G+1,f>=E.length&&(f=E.length-1,d=y.length-1)):d<0&&(d=y.length-1,f=G-1,f<0&&(f=0,d=0));const v=y[d]?.name;if(v){Ke({row:f,col:v}),se(new Set([`${f}-${v}`]));const h=A.current;if(h){const K=f*L,te=h.scrollTop,Ge=te+p;KGe&&(h.scrollTop=K-p+L)}}return{row:f,col:y[d]?.name}},[Re,y,E.length,L,p]),Ut=u.useCallback(async()=>{if(Ne.size===0)return;const G=[...Ne],g=new Set,X=new Set;G.forEach(h=>{const K=h.indexOf("-"),te=parseInt(h.substring(0,K)),Ge=h.substring(K+1);g.add(te),X.add(Re(Ge))});const Ie=[...g].sort((h,K)=>h-K),f=[...X].sort((h,K)=>h-K),d=[];for(const h of Ie){const K=E[h];if(!K)continue;const te=[];for(const Ge of f){const Me=y[Ge];if(!Me)continue;const Nt=`${h}-${Me.name}`;if(Ne.has(Nt)){const dt=K[Me.name];te.push(dt==null?"":String(dt))}else te.push("")}d.push(te.join(" "))}const v=d.join(` +`);try{if(navigator.clipboard&&navigator.clipboard.writeText)await navigator.clipboard.writeText(v);else{const h=document.createElement("textarea");h.value=v,h.style.position="fixed",h.style.left="-9999px",h.style.top="-9999px",document.body.appendChild(h),h.focus(),h.select(),document.execCommand("copy"),document.body.removeChild(h)}}catch{const K=document.createElement("textarea");K.value=v,K.style.position="fixed",K.style.left="-9999px",K.style.top="-9999px",document.body.appendChild(K),K.focus(),K.select();try{document.execCommand("copy")}catch(te){console.error("复制失败:",te)}document.body.removeChild(K)}return{rows:Ie.length,cols:f.length}},[Ne,E,y,Re]),$E=u.useCallback(async()=>{if(!Te||!r)return;let G="";try{navigator.clipboard&&navigator.clipboard.readText&&(G=await navigator.clipboard.readText())}catch(h){console.error("读取剪贴板失败:",h);return}if(!G)return;const g=G.split(` +`).map(h=>h.split(" "));if(g.length===0)return;const X=Te.row,Ie=Re(Te.col),f=[];let d=0;for(let h=0;h=E.length&&d++;for(let Ge=0;Ge=y.length)continue;const Nt=y[Me],dt=te[Ge];f.push({rowIndex:K,colName:Nt.name,value:dt===""?null:dt})}}for(let h=0;h0?setTimeout(()=>{R(f)},d>0?50:0):setTimeout(()=>{f.forEach(({rowIndex:h,colName:K,value:te})=>{l?.(h,K,te)})},d>0?50:0);const v=new Set;for(let h=0;h=y.length||v.add(`${X+h}-${y[te].name}`)}return se(v),{rows:g.length,cols:g[0]?.length||0,newRows:d}},[Te,r,E,y,Re,N,R,l]);u.useEffect(()=>{const G=g=>{if((g.ctrlKey||g.metaKey)&&g.key==="f"&&me&&(g.preventDefault(),J(!0),setTimeout(()=>ye.current?.focus(),50)),g.key==="Escape"&&U&&(J(!1),b("")),(g.ctrlKey||g.metaKey)&&g.key==="s"&&me&&r&&(g.preventDefault(),S?.()),(g.ctrlKey||g.metaKey)&&g.key==="c"&&me&&!D&&Ne.size>0&&(g.preventDefault(),Ut()),(g.ctrlKey||g.metaKey)&&g.key==="v"&&me&&!D&&r&&Te&&(g.preventDefault(),$E()),g.key==="F5"&&me&&(g.preventDefault(),o?.()),g.key==="Tab"&&me&&!D&&Te&&(g.preventDefault(),we(Te.row,Te.col,g.shiftKey?"prev":"next")),me&&!D&&Te){if(g.key==="ArrowRight")g.preventDefault(),we(Te.row,Te.col,"next");else if(g.key==="ArrowLeft")g.preventDefault(),we(Te.row,Te.col,"prev");else if(g.key==="ArrowDown"){g.preventDefault();const X=Math.min(Te.row+1,E.length-1);Ke({row:X,col:Te.col}),se(new Set([`${X}-${Te.col}`]))}else if(g.key==="ArrowUp"){g.preventDefault();const X=Math.max(Te.row-1,0);Ke({row:X,col:Te.col}),se(new Set([`${X}-${Te.col}`]))}}if(g.key==="Enter"&&me&&!D&&Te&&r){g.preventDefault();const X=E[Te.row]?.[Te.col],Ie=y.find(d=>d.name===Te.col),f=en(Ie?.type||"");if(Z({row:Te.row,col:Te.col}),ne(Ss(X,Ie?.type||"")),f!=="text"){const d=A.current?.querySelector(`[data-row="${Te.row}"][data-col="${Te.col}"]`);if(d){const v=d.getBoundingClientRect();B({top:v.bottom+4,left:v.left})}}setTimeout(()=>j.current?.focus(),0)}if((g.key==="Delete"||g.key==="Backspace")&&me&&!D&&Te&&r&&(g.preventDefault(),l?.(Te.row,Te.col,null)),me&&!D&&Te&&r&&g.key.length===1&&!g.ctrlKey&&!g.metaKey&&!g.altKey){const X=y.find(f=>f.name===Te.col),Ie=en(X?.type||"");if(g.preventDefault(),Z({row:Te.row,col:Te.col}),ne(g.key),Ie!=="text"){const f=A.current?.querySelector(`[data-row="${Te.row}"][data-col="${Te.col}"]`);if(f){const d=f.getBoundingClientRect();B({top:d.bottom+4,left:d.left})}}setTimeout(()=>{const f=j.current;f&&(f.focus(),f.setSelectionRange(f.value.length,f.value.length))},0)}};return window.addEventListener("keydown",G),()=>window.removeEventListener("keydown",G)},[me,U,r,S,o,D,Te,we,E,l,Ne,Ut,$E]);const dT=u.useCallback(()=>{if(Ne.size===E.length*y.length)se(new Set);else{const G=new Set;for(let g=0;g{se(new Set),Ke(null),Z(null)},[]),{startIndex:$r,endIndex:LT,totalHeight:_T,offsetY:fT}=_e,Jr=C.current;return s.jsxs("div",{className:"navi-table-container",tabIndex:0,onFocus:()=>De(!0),onBlur:G=>{G.currentTarget.contains(G.relatedTarget)||De(!1)},onMouseEnter:()=>De(!0),children:[U&&s.jsxs("div",{className:"navi-search-bar",children:[s.jsx(cT,{size:14,className:"text-gray-400"}),s.jsx("input",{ref:ye,type:"text",value:ee,onChange:G=>b(G.target.value),placeholder:"搜索数据... (Enter 下一个)",className:"navi-search-input",onKeyDown:G=>{G.key==="Enter"&&!G.shiftKey?(G.preventDefault(),Yt()):G.key==="Enter"&&G.shiftKey&&(G.preventDefault(),$())}}),ee&&s.jsx("span",{className:"text-xs text-gray-500",children:q.length>0?`${Ee+1}/${q.length}`:"0/0"}),s.jsx("button",{onClick:$,disabled:q.length===0,className:"navi-search-btn",children:s.jsx(Io,{size:16})}),s.jsx("button",{onClick:Yt,disabled:q.length===0,className:"navi-search-btn",children:s.jsx(WE,{size:16})}),s.jsx("button",{onClick:()=>{J(!1),b("")},className:"navi-search-btn",children:s.jsx(tE,{size:16})})]}),s.jsxs("div",{ref:A,className:"navi-scroll-container",onClick:G=>{oe.current||(G.target===G.currentTarget||G.target.classList.contains("navi-body"))&&Zn()},children:[s.jsxs("div",{className:"navi-header",style:{minWidth:k},children:[r&&s.jsx("div",{className:"navi-row-number-header",style:{width:pe},onClick:dT,children:"#"}),y.map(G=>{const g=H.has(G.name),X=le[G.name]||100;return s.jsxs("div",{className:`navi-header-cell ${g?"pinned":""} ${ge===G.name?"resizing":""}`,style:{width:X,minWidth:X,position:g?"sticky":"relative",left:g?m[G.name]:"auto",boxShadow:g&&Jr>0?"2px 0 4px rgba(0,0,0,0.05)":"none",height:Oe},title:g?`取消固定 ${G.name}`:`固定 ${G.name}`,children:[s.jsxs("div",{className:"navi-header-content",onClick:()=>ie(G.name),children:[s.jsxs("div",{className:"navi-header-row",children:[s.jsx("span",{className:"navi-col-name",children:G.name}),n&&G.key==="PRI"&&s.jsx(OT,{size:10,className:"text-amber-500"}),s.jsx("span",{className:`navi-pin-icon ${g?"active":""}`,children:g?s.jsx(ju,{size:10}):s.jsx(Xu,{size:10})})]}),n&&G.type&&s.jsx("div",{className:"navi-col-type",children:G.type}),n&&G.comment&&s.jsx("div",{className:"navi-col-comment",title:G.comment,children:G.comment})]}),s.jsx("div",{className:"navi-resize-handle",onMouseDown:Ie=>fe(G.name,Ie)})]},G.name)})]}),s.jsxs("div",{className:"navi-body",style:{height:Math.max(_T,p),minWidth:k},onClick:G=>{oe.current||G.target===G.currentTarget&&Zn()},children:[s.jsx("div",{className:"navi-rows-container",style:{transform:`translateY(${fT}px)`},children:Array.from({length:LT-$r+1},(G,g)=>{const X=$r+g,Ie=E[X];if(!Ie)return null;const f=Ye.has(X);return s.jsxs("div",{className:`navi-row ${f?"selected":""}`,style:{height:L},onContextMenu:d=>{if(r){if(d.preventDefault(),Ye.size===0){const v=y[0]?.name;v&&(se(new Set([`${X}-${v}`])),Ke({row:X,col:v}))}Se({x:d.clientX,y:d.clientY,row:X,col:""})}},children:[r&&s.jsx("div",{className:`navi-row-number ${f?"selected":""}`,style:{width:pe,height:L},onClick:d=>{const v=new Set;for(const h of y)v.add(`${X}-${h.name}`);d.ctrlKey||d.metaKey?se(h=>{const K=new Set(h);return v.forEach(te=>{K.has(te)?K.delete(te):K.add(te)}),K}):(se(v),Ke({row:X,col:y[0]?.name||""}))},children:X+1}),y.map(d=>{const v=H.has(d.name),h=le[d.name]||100,K=Ie[d.name],te=`${X}-${d.name}`,Ge=D?.row===X&&D?.col===d.name,Me=Ne.has(te),Nt=Te?.row===X&&Te?.col===d.name,dt=O?.has(te),pE=F.has(te),qn=q[Ee]===te;let er=null;K!=null&&(er=typeof K=="object"?JSON.stringify(K):RR(K,d.type||""));let JE="transparent";return qn?JE="#fef08a":pE?JE="rgba(250, 204, 21, 0.2)":Nt?JE="rgba(59, 130, 246, 0.15)":Me?JE="rgba(59, 130, 246, 0.1)":dt?JE="rgba(249, 115, 22, 0.1)":v&&(JE="#f8fafc"),s.jsx("div",{"data-row":X,"data-col":d.name,className:"navi-cell",style:{background:JE,position:v?"sticky":"relative",left:v?m[d.name]:"auto",width:h,minWidth:h,maxWidth:h,height:L,boxShadow:v&&Jr>0?"2px 0 4px rgba(0,0,0,0.05)":"none",outline:Nt&&!Ge?"2px solid #3b82f6":"none",outlineOffset:"-1px",zIndex:v?10:1},onMouseDown:It=>KE(X,d.name,It),onMouseEnter:()=>fE(X,d.name),onDoubleClick:It=>{if(r){const pT=en(d.type||"");if(Z({row:X,col:d.name}),ne(Ss(K,d.type||"")),pT!=="text"){const oE=It.currentTarget.getBoundingClientRect();B({top:oE.bottom+4,left:oE.left})}else B(null);setTimeout(()=>j.current?.focus(),0)}},onContextMenu:It=>{It.preventDefault(),It.stopPropagation(),Ne.has(te)||(se(new Set([te])),Ke({row:X,col:d.name})),Se({x:It.clientX,y:It.clientY,row:X,col:d.name})},title:er||"",children:Ge?(()=>{const It=en(d.type||""),pT=Ss(K,d.type||""),oE=()=>{const ve=oR(Y,It);Y!==pT&&l?.(X,d.name,ve)};return It!=="text"?s.jsxs("div",{className:"navi-date-cell-edit",children:[s.jsx(hi,{size:12,className:"navi-date-icon"}),s.jsx("input",{ref:j,type:"text",value:Y,onChange:ve=>ne(ve.target.value),onBlur:()=>{if(!he){const ve=iR(Y,It);ve!==Y&&ne(ve),oE(),Z(null)}},onKeyDown:ve=>{if(ve.key==="Enter"){const zE=iR(Y,It);ne(zE),oE(),Z(null),B(null);const xt=Math.min(X+1,E.length-1);Ke({row:xt,col:d.name}),se(new Set([`${xt}-${d.name}`]))}else ve.key==="Escape"&&(Z(null),B(null))},onClick:ve=>ve.stopPropagation(),onMouseDown:ve=>ve.stopPropagation(),placeholder:It==="date"?"YYYY/MM/DD":It==="time"?"HH:MM:SS":"YYYY/MM/DD HH:MM:SS",className:"navi-date-input-field",autoFocus:!0})]}):s.jsx("input",{ref:j,type:"text",value:Y,onChange:ve=>ne(ve.target.value),onBlur:()=>{oE(),Z(null)},onKeyDown:ve=>{if(ve.key==="Enter"){oE(),Z(null);const zE=Math.min(X+1,E.length-1);Ke({row:zE,col:d.name}),se(new Set([`${zE}-${d.name}`]))}else if(ve.key==="Tab"){ve.preventDefault(),oE();const zE=Re(d.name);let xt=X,mE=ve.shiftKey?zE-1:zE+1;ve.shiftKey?mE<0&&(mE=y.length-1,xt=X-1,xt<0&&(xt=0,mE=0)):mE>=y.length&&(mE=0,xt=X+1,xt>=E.length&&(xt=E.length-1,mE=y.length-1));const tr=y[mE]?.name;if(tr){const QS=y[mE],ZS=E[xt]?.[tr];Z({row:xt,col:tr}),ne(Ss(ZS,QS?.type||"")),Ke({row:xt,col:tr}),se(new Set([`${xt}-${tr}`])),setTimeout(()=>j.current?.focus(),0)}}else ve.key==="Escape"?Z(null):(ve.ctrlKey||ve.metaKey)&&ve.key==="s"&&(ve.preventDefault(),oE(),Z(null),S?.())},onClick:ve=>ve.stopPropagation(),onMouseDown:ve=>ve.stopPropagation(),className:"navi-cell-input",autoFocus:!0})})():K===null?s.jsx("span",{className:"navi-null",children:"NULL"}):K===""?s.jsx("span",{className:"navi-empty"}):typeof K=="object"?s.jsx("span",{className:"navi-json",children:er}):en(d.type||"")!=="text"?s.jsxs("span",{className:"navi-date-cell",children:[s.jsx(hi,{size:12,className:"navi-date-icon"}),s.jsx("span",{className:"navi-date-text",children:er})]}):s.jsx("span",{className:"navi-value",children:er})},d.name)})]},X)})}),(()=>{const G=E.length*L,g=Math.max(0,Math.ceil((p-G)/L));return g<=0?null:Array.from({length:g},(X,Ie)=>s.jsxs("div",{className:"navi-row empty-row",style:{height:L},onClick:()=>{oe.current||Zn()},children:[r&&s.jsx("div",{className:"navi-row-number empty",style:{width:pe,height:L}}),y.map(f=>{const d=H.has(f.name),v=le[f.name]||100;return s.jsx("div",{className:"navi-cell empty",style:{position:d?"sticky":"relative",left:d?m[f.name]:"auto",width:v,minWidth:v,maxWidth:v,height:L,zIndex:d?10:1}},f.name)})]},`empty-${Ie}`))})()]}),E.length===0&&s.jsx("div",{className:"navi-empty",children:"暂无数据"})]}),xe&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>{Se(null),se(new Set)}}),s.jsxs("div",{className:"navi-context-menu",style:{left:Math.min(xe.x,window.innerWidth-200),top:Math.min(xe.y,window.innerHeight-300)},children:[Ne.size>0&&s.jsxs("div",{className:"navi-context-info",children:["已选 ",Ne.size," 格 · ",Ye.size," 行"]}),s.jsxs("button",{className:"navi-context-item",onClick:async()=>{await Ut(),Se(null)},children:[s.jsx(US,{size:13}),s.jsx("span",{children:"复制"}),s.jsx("span",{className:"navi-shortcut",children:"Ctrl+C"})]}),r&&s.jsxs(s.Fragment,{children:[s.jsxs("button",{className:"navi-context-item",onClick:async()=>{await $E(),Se(null)},children:[s.jsx(Gu,{size:13}),s.jsx("span",{children:"粘贴"}),s.jsx("span",{className:"navi-shortcut",children:"Ctrl+V"})]}),s.jsx("div",{className:"navi-context-divider"}),s.jsxs("button",{className:"navi-context-item warning",onClick:()=>{Ne.forEach(G=>{const g=G.indexOf("-"),X=parseInt(G.substring(0,g)),Ie=G.substring(g+1);l?.(X,Ie,null)}),Se(null)},children:[s.jsx(Hu,{size:13}),s.jsxs("span",{children:["设为 ",s.jsx("span",{className:"font-mono",children:"NULL"})]}),Ne.size>1&&s.jsxs("span",{className:"navi-shortcut",children:[Ne.size,"格"]})]}),s.jsxs("button",{className:"navi-context-item",onClick:()=>{Ne.forEach(G=>{const g=G.indexOf("-"),X=parseInt(G.substring(0,g)),Ie=G.substring(g+1);l?.(X,Ie,"")}),Se(null)},children:[s.jsx(Ju,{size:13}),s.jsx("span",{children:"设为空字符串"}),Ne.size>1&&s.jsxs("span",{className:"navi-shortcut",children:[Ne.size,"格"]})]}),s.jsx("div",{className:"navi-context-divider"}),s.jsxs("button",{className:"navi-context-item danger",onClick:()=>{if(Ye.size>1){const G=[...Ye].sort((g,X)=>X-g);i?i(G):G.forEach(g=>a?.(g))}else a?.(xe.row);Se(null),se(new Set)},children:[s.jsx(IE,{size:13}),Ye.size>1?`删除 ${Ye.size} 行`:"删除此行"]})]}),s.jsx("div",{className:"navi-context-divider"}),s.jsxs("button",{className:"navi-context-item success",onClick:()=>{o?.(),Se(null),se(new Set)},children:[s.jsx(Vr,{size:13}),s.jsx("span",{children:"刷新数据"}),s.jsx("span",{className:"navi-shortcut",children:"F5"})]})]})]}),D&&he&&(()=>{const G=y.find(X=>X.name===D.col),g=en(G?.type||"");return g==="text"?null:s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0 z-[9998]",onClick:()=>{Z(null),B(null)}}),s.jsx(kL,{value:Y,type:g,position:he,onChange:X=>{ne(X);const Ie=oR(X,g);l&&D&&l(D.row,D.col,Ie)},onClose:()=>{Z(null),B(null)}})]})})()]})}),KL=u.lazy(()=>TO(()=>import("./SqlEditor-Da5-w0EM.js").then(e=>e.S),__vite__mapDeps([0,1]),import.meta.url)),$L=u.memo(()=>s.jsx("div",{className:"h-full flex items-center justify-center bg-light-surface",children:s.jsxs("div",{className:"flex flex-col items-center gap-3",children:[s.jsx(Fn,{className:"w-6 h-6 animate-spin text-primary-500"}),s.jsx("span",{className:"text-sm text-text-tertiary",children:"加载编辑器..."})]})})),JL=u.memo(function({tabs:t,activeTab:E,activeConnection:n,selectedDatabase:r,connections:T,connectedIds:l,databasesMap:a,databases:i,tables:o,columns:S,onTabChange:N,onCloseTab:R,onNewQuery:O,onRunQuery:L,onUpdateSql:_,onUpdateTabTitle:H,onLoadTablePage:c,onChangeTablePageSize:A,onNewConnectionWithType:I,onUpdateTableCell:C,onDeleteTableRow:M,onDeleteTableRows:p,onSaveTableChanges:P,onDiscardTableChanges:D,onRefreshTable:Z,onAddTableRow:Y,onUpdateNewRow:ne,onDeleteNewRow:xe,onSelectConnection:Se,onSelectDatabase:he,loadingTables:B}){u.useEffect(()=>{const U=J=>{if(J.ctrlKey&&J.key==="w"&&(J.preventDefault(),E!=="welcome"&&R(E)),J.ctrlKey&&J.key==="s"){const Ee=t.find(ce=>ce.id===E);Ee&&"tableName"in Ee&&Ee.pendingChanges?.size>0&&(J.preventDefault(),P?.(E))}};return window.addEventListener("keydown",U),()=>window.removeEventListener("keydown",U)},[E,t,R,P]);const j=t.find(U=>U.id===E),ee=U=>"tableName"in U?U.tableName:U.title,b=U=>"tableName"in U?s.jsx(zn,{size:13,className:"text-warning-500"}):null;return s.jsxs("div",{className:"flex-1 flex flex-col bg-white",children:[s.jsxs("div",{className:"h-10 bg-light-surface flex items-stretch px-1 border-b border-border-default overflow-x-auto scrollbar-thin",children:[s.jsxs("button",{onClick:()=>N("welcome"),className:`px-4 text-sm flex items-center gap-1.5 transition-all shrink-0 relative + ${E==="welcome"?"text-text-primary font-medium":"text-text-tertiary hover:text-text-secondary hover:bg-light-hover"}`,children:[s.jsx(Gt,{size:14,className:E==="welcome"?"text-primary-500":""}),"主页",E==="welcome"&&s.jsx("span",{className:"tab-indicator"})]}),s.jsx("div",{className:"w-px h-5 bg-border-light self-center mx-1"}),t.map(U=>s.jsxs("div",{className:`px-3 flex items-center gap-2 text-sm group transition-all shrink-0 relative cursor-pointer + ${E===U.id?"text-text-primary font-medium":"text-text-tertiary hover:text-text-secondary hover:bg-light-hover"}`,onClick:()=>N(U.id),children:[b(U),s.jsx("span",{className:"max-w-[120px] truncate",children:ee(U)}),s.jsx("button",{onClick:J=>{J.stopPropagation(),R(U.id)},className:"opacity-0 group-hover:opacity-100 hover:text-danger-500 p-0.5 rounded transition-all",children:s.jsx(tE,{size:13})}),E===U.id&&s.jsx("span",{className:"tab-indicator"})]},U.id)),s.jsx("button",{onClick:O,className:"w-9 flex items-center justify-center text-text-muted hover:text-primary-500 hover:bg-light-hover shrink-0 transition-colors rounded-lg mx-1 my-1",title:"新建查询",children:s.jsx(In,{size:16})})]}),s.jsx("div",{className:"flex-1 min-h-0",children:E==="welcome"?s.jsx(zL,{onNewQuery:O,onNewConnectionWithType:I}):j?"tableName"in j?s.jsx(QL,{tab:j,isLoading:B?.has(j.id),onLoadPage:U=>c(j.id,U),onChangePageSize:U=>A?.(j.id,U),onCellChange:(U,J,Ee)=>C?.(j.id,U,J,Ee),onDeleteRow:U=>M?.(j.id,U),onDeleteRows:U=>p?.(j.id,U),onSave:()=>P?.(j.id),onDiscard:()=>D?.(j.id),onRefresh:()=>Z?.(j.id),onAddRow:()=>Y?.(j.id),onUpdateNewRow:(U,J,Ee)=>ne?.(j.id,U,J,Ee),onDeleteNewRow:U=>xe?.(j.id,U)}):s.jsx(ZL,{tab:j,connectionId:n,selectedDatabase:r,connections:T,connectedIds:l,databasesMap:a,databases:i,tables:o,columns:S,onRun:U=>L(j.id,U),onUpdateSql:U=>_(j.id,U),onUpdateTitle:U=>H(j.id,U),onSelectConnection:Se,onSelectDatabase:he}):null})]})}),zL=u.memo(function({onNewQuery:t,onNewConnectionWithType:E}){return s.jsxs("div",{className:"h-full flex flex-col items-center justify-center bg-gradient-to-b from-white via-light-surface to-light-elevated",children:[s.jsx("div",{className:"flex items-center gap-4 mb-4",children:s.jsx("div",{className:"w-16 h-16 rounded-2xl bg-primary-500 flex items-center justify-center shadow-btn",children:s.jsx(Gt,{size:32,className:"text-white"})})}),s.jsx("h1",{className:"text-4xl font-bold text-text-primary mb-2",children:"EasySQL"}),s.jsx("p",{className:"text-text-tertiary text-lg mb-8",children:"简洁高效的数据库管理工具"}),s.jsxs("button",{onClick:t,className:`px-8 py-3 bg-primary-500 hover:bg-primary-600 text-white text-base font-medium \r + rounded-xl shadow-btn hover:shadow-btn-hover transition-all flex items-center gap-2`,children:[s.jsx(Zu,{size:18}),"开始查询"]}),s.jsxs("div",{className:"flex items-center gap-6 mt-6 text-xs text-text-muted",children:[s.jsxs("span",{className:"flex items-center gap-2",children:[s.jsx("kbd",{className:"px-2 py-1 bg-light-elevated rounded border border-border-default font-mono",children:"Ctrl+Q"}),"新建查询"]}),s.jsxs("span",{className:"flex items-center gap-2",children:[s.jsx("kbd",{className:"px-2 py-1 bg-light-elevated rounded border border-border-default font-mono",children:"Ctrl+Enter"}),"执行"]})]}),s.jsxs("div",{className:"mt-12",children:[s.jsx("p",{className:"text-center text-text-muted text-sm mb-4 font-medium",children:"支持的数据库"}),s.jsx("div",{className:"flex gap-3 justify-center mb-3",children:Object.entries(rE).slice(0,5).map(([n,r])=>s.jsxs("button",{onClick:()=>r.supported&&E?.(n),className:`db-tile w-20 h-20 flex flex-col items-center justify-center + ${r.supported?"":"cursor-not-allowed opacity-40"}`,style:{background:r.color},title:r.supported?`创建 ${r.name} 连接`:`${r.name} - 即将支持`,disabled:!r.supported,children:[s.jsx("span",{className:"text-3xl mb-1",children:r.icon}),s.jsx("span",{className:"text-[10px] font-medium text-white/90",children:r.name})]},n))}),s.jsx("div",{className:"flex gap-3 justify-center",children:Object.entries(rE).slice(5,9).map(([n,r])=>s.jsxs("button",{onClick:()=>r.supported&&E?.(n),className:`db-tile w-20 h-20 flex flex-col items-center justify-center + ${r.supported?"":"cursor-not-allowed opacity-40"}`,style:{background:r.color},title:r.supported?`创建 ${r.name} 连接`:`${r.name} - 即将支持`,disabled:!r.supported,children:[s.jsx("span",{className:"text-3xl mb-1",children:r.icon}),s.jsx("span",{className:"text-[10px] font-medium text-white/90",children:r.name})]},n))})]})]})}),QL=u.memo(function({tab:t,isLoading:E,onLoadPage:n,onChangePageSize:r,onCellChange:T,onDeleteRow:l,onDeleteRows:a,onSave:i,onDiscard:o,onRefresh:S,onAddRow:N,onUpdateNewRow:R,onDeleteNewRow:O}){const L=Math.ceil(t.total/t.pageSize),_=(t.pendingChanges?.size||0)>0||(t.deletedRows?.size||0)>0||(t.newRows?.length||0)>0,H=t.columns.find(D=>D.key==="PRI")?.name||t.columns[0]?.name,c=new Set;t.pendingChanges?.forEach((D,Z)=>{const Y=parseInt(Z);Object.keys(D).forEach(ne=>{c.add(`${Y}-${ne}`)})});const A=t.newRows?.length||0,I=t.data||[],C=I.filter((D,Z)=>!t.deletedRows?.has(Z)).length;if(A>0)for(let D=0;D{c.add(`${Z}-${Y.name}`)})}const M=[...I.filter((D,Z)=>!t.deletedRows?.has(Z)),...t.newRows||[]],p=I.map((D,Z)=>Z).filter(D=>!t.deletedRows?.has(D)),P=(t.pendingChanges?.size||0)+(t.deletedRows?.size||0)+(t.newRows?.length||0);return s.jsxs("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[s.jsxs("div",{className:"bg-light-surface border-b border-border-default flex items-center justify-between px-4 gap-3",style:{flexShrink:0,height:44},children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"flex items-center gap-2 px-3 py-1.5 bg-white rounded-lg border border-border-default",children:[s.jsx(zn,{size:15,className:"text-warning-500"}),s.jsx("span",{className:"font-medium text-text-primary text-sm",children:t.tableName})]}),s.jsxs("span",{className:"text-text-muted text-xs",children:[t.total.toLocaleString()," 行"]}),E&&s.jsxs("div",{className:"flex items-center gap-1.5 text-primary-500 text-xs",children:[s.jsx(Fn,{size:13,className:"animate-spin"}),"加载中..."]})]}),_&&s.jsxs("div",{className:"px-2.5 py-1 bg-warning-50 text-warning-600 text-xs font-medium rounded-md border border-warning-200",children:[P," 项待保存"]}),s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx("button",{onClick:()=>n(t.page-1),disabled:t.page<=1||E,className:"p-1 hover:bg-light-hover disabled:opacity-30 rounded transition-colors text-text-primary",children:s.jsx(Io,{size:16})}),s.jsxs("span",{className:"text-xs min-w-[70px] text-center text-text-primary",children:[s.jsx("span",{className:"text-primary-600 font-medium",children:t.page})," / ",L]}),s.jsx("button",{onClick:()=>n(t.page+1),disabled:t.page>=L||E,className:"p-1 hover:bg-light-hover disabled:opacity-30 rounded transition-colors text-text-primary",children:s.jsx(WE,{size:16})}),s.jsxs("select",{value:t.pageSize,onChange:D=>r?.(parseInt(D.target.value)),disabled:E,className:"h-7 px-2 text-xs bg-white border border-border-default rounded cursor-pointer text-text-primary",children:[s.jsx("option",{value:100,children:"100"}),s.jsx("option",{value:500,children:"500"}),s.jsx("option",{value:1e3,children:"1000"}),s.jsx("option",{value:2e3,children:"2000"})]})]})]}),s.jsx("div",{style:{flex:1,position:"relative",overflow:"hidden"},children:E&&t.columns.length===0?s.jsx("div",{className:"absolute inset-0 flex flex-col items-center justify-center bg-light-bg",children:s.jsxs("div",{className:"flex flex-col items-center gap-4",children:[s.jsx("div",{className:"w-12 h-12 rounded-full bg-primary-100 flex items-center justify-center",children:s.jsx(Fn,{size:24,className:"animate-spin text-primary-500"})}),s.jsxs("div",{className:"text-center",children:[s.jsx("div",{className:"text-sm font-medium text-text-primary mb-1",children:"正在加载表数据"}),s.jsx("div",{className:"text-xs text-text-muted",children:t.tableName})]})]})}):s.jsxs(s.Fragment,{children:[E&&s.jsx("div",{className:"loading-overlay",children:s.jsxs("div",{className:"flex flex-col items-center gap-3",children:[s.jsx(Fn,{size:28,className:"animate-spin text-primary-500"}),s.jsx("span",{className:"text-sm text-text-secondary",children:"加载数据中..."})]})}),s.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0},children:s.jsx(zS,{columns:t.columns,data:M,showColumnInfo:!0,editable:!0,primaryKeyColumn:H,modifiedCells:c,onCellChange:(D,Z,Y)=>{D>=C?R?.(D-C,Z,Y):T?.(p[D],Z,Y)},onDeleteRow:D=>{D>=C?O?.(D-C):l?.(p[D])},onDeleteRows:D=>{const Z=[],Y=[];D.forEach(ne=>{ne>=C?Y.push(ne-C):Z.push(p[ne])}),Z.length>0&&a?.(Z),Y.sort((ne,xe)=>xe-ne).forEach(ne=>O?.(ne))},onRefresh:S,onSave:i,onAddRow:N,onBatchUpdate:D=>{D.forEach(({rowIndex:Z,colName:Y,value:ne})=>{if(Z>=C)R?.(Z-C,Y,ne);else{const xe=p[Z];xe!==void 0&&T?.(xe,Y,ne)}})}})})]})}),s.jsxs("div",{className:"bg-light-surface border-t border-border-default flex items-center px-3 gap-1",style:{flexShrink:0,height:36},children:[s.jsxs("div",{className:"flex items-center gap-0.5",children:[s.jsx("button",{onClick:N,disabled:E,className:"w-7 h-7 flex items-center justify-center hover:bg-light-hover disabled:opacity-40 rounded text-text-tertiary hover:text-success-500",children:s.jsx(In,{size:15})}),s.jsx("button",{onClick:()=>A>0&&O?.(A-1),disabled:E||A===0,className:"w-7 h-7 flex items-center justify-center hover:bg-light-hover disabled:opacity-40 rounded text-text-tertiary hover:text-danger-500",children:s.jsx(gS,{size:15})}),s.jsx("div",{className:"w-px h-4 bg-border-default mx-1"}),s.jsx("button",{onClick:i,disabled:E||!_,className:`w-7 h-7 flex items-center justify-center rounded ${_?"hover:bg-success-50 text-success-500":"text-text-disabled"}`,children:s.jsx(aE,{size:15})}),s.jsx("button",{onClick:o,disabled:E||!_,className:`w-7 h-7 flex items-center justify-center rounded ${_?"hover:bg-danger-50 text-danger-500":"text-text-disabled"}`,children:s.jsx(tE,{size:15})}),s.jsx("button",{onClick:S,disabled:E,className:"w-7 h-7 flex items-center justify-center hover:bg-light-hover disabled:opacity-40 rounded text-text-tertiary",children:s.jsx(Vr,{size:13})})]}),s.jsx("div",{className:"flex-1 text-center text-xs text-text-muted",children:_?`${t.pendingChanges?.size||0} 修改 · ${t.deletedRows?.size||0} 删除 · ${A} 新增`:`共 ${M.length} 行`}),s.jsxs("div",{className:"text-xs text-text-disabled font-mono",children:["SELECT * FROM `",t.tableName,"` LIMIT ",t.pageSize]})]})]})}),ZL=u.memo(function({tab:t,connectionId:E,selectedDatabase:n,connections:r,connectedIds:T,databasesMap:l,databases:a,tables:i,columns:o,onRun:S,onUpdateSql:N,onUpdateTitle:R,onSelectConnection:O,onSelectDatabase:L}){const[_,H]=u.useState(!1),[c,A]=u.useState(!1),I=r.find(Q=>Q.id===E),C=E?l.get(E)||[]:[],[M,p]=u.useState(t.sql),[P,D]=u.useState(null),[Z,Y]=u.useState(!1),[ne,xe]=u.useState(!1),[Se,he]=u.useState([]),[B,j]=u.useState([]),[ee,b]=u.useState(new Set),[U,J]=u.useState(new Set);u.useEffect(()=>{if(t.results){const Q=t.results.rows.map(Oe=>{const pe={};return t.results?.columns.forEach((y,le)=>{pe[y]=Oe[le]}),pe});he(Q),j(JSON.parse(JSON.stringify(Q))),b(new Set),J(new Set)}else he([]),j([]),b(new Set),J(new Set)},[t.results]);const Ee=u.useCallback(Q=>{const Oe=Q.match(/\bFROM\s+[`"]?(\w+)[`"]?(?:\s*\.\s*[`"]?(\w+)[`"]?)?/i);return Oe?Oe[2]||Oe[1]:null},[]),ce=u.useCallback(Q=>{const Oe=Q.match(/\bFROM\s+[`"]?(\w+)[`"]?\s*\.\s*[`"]?(\w+)[`"]?/i);return Oe?Oe[1]:null},[]),ye=u.useCallback(async()=>{if(!E||ee.size===0&&U.size===0)return;const Q=Ee(M);if(!Q){alert("无法从SQL中解析表名,只支持简单的 SELECT ... FROM table_name 格式");return}const Oe=ce(M)||n;if(!Oe){alert("无法确定数据库,请先选择数据库");return}let y=(o.get(`${Oe}.${Q}`)||o.get(Q)||[]).find(le=>le.key==="PRI")?.name;if(!y&&t.results?.columns.length&&(y=t.results.columns[0]),!y){alert("无法确定主键列,无法保存修改");return}xe(!0);try{let le=0,Ce=0,ge=0,je=0;if(U.size>0)for(const Ze of U){const fe=B[Ze];if(!fe)continue;const m=fe[y];if(m==null){je++;continue}const F=await Le.deleteRow(E,Oe,Q,{column:y,value:m});F.success?ge++:(je++,console.error("删除失败:",F.error))}if(ee.size>0){const Ze=new Map;ee.forEach(fe=>{const m=fe.indexOf("-"),F=parseInt(fe.substring(0,m)),q=fe.substring(m+1);Ze.has(F)||Ze.set(F,{}),Ze.get(F)[q]=Se[F]?.[q]});for(const[fe,m]of Ze){let F=fe;const q=[...U].sort((Re,Et)=>Re-Et);for(const Re of q)Re<=F&&F++;const _e=B[F];if(!_e)continue;const k=_e[y];if(k==null){Ce++;continue}const ie=await Le.updateRow(E,Oe,Q,{column:y,value:k},m);ie.success?le++:(Ce++,console.error("更新失败:",ie.error))}}const Be=[];ge>0&&Be.push(`删除 ${ge} 行`),le>0&&Be.push(`更新 ${le} 行`),je>0&&Be.push(`删除失败 ${je} 行`),Ce>0&&Be.push(`更新失败 ${Ce} 行`),ge>0||le>0?(j(JSON.parse(JSON.stringify(Se))),b(new Set),J(new Set),alert(`操作完成:${Be.join(",")}`)):(je>0||Ce>0)&&alert(`操作失败:${Be.join(",")}`)}catch(le){alert("保存失败: "+le.message)}finally{xe(!1)}},[E,n,M,ee,U,Se,B,o,t.results,Ee,ce]),me=u.useCallback(()=>{S(M),N(M)},[M,S,N]),De=u.useCallback(async()=>{const Q=await Le.openFile();Q&&!Q.error&&(p(Q.content),D(Q.path),N(Q.content),R?.(Q.name))},[N,R]),Ne=u.useCallback(async()=>{const Q=await Le.saveFile(P,M);Q&&!Q.error&&(D(Q.path),R?.(Q.name))},[P,M,R]),se=u.useCallback(()=>{try{const Q=bL(M,{language:"mysql",tabWidth:2,keywordCase:"upper",linesBetweenQueries:2});p(Q),N(Q)}catch(Q){console.error("SQL 格式化失败:",Q)}},[M,N]),We=u.useCallback(Q=>{for(const[,Oe]of o){const pe=Oe.find(y=>y.name===Q||y.name.toLowerCase()===Q.toLowerCase());if(pe)return pe}},[o]),Xe=u.useCallback(async()=>{if(!t.results||Se.length===0)return;const Q=window.electronAPI;if(!Q)return;const Oe=await Q.saveDialog({filters:[{name:"CSV",extensions:["csv"]}],defaultPath:`query_${Date.now()}.csv`});if(!Oe)return;const pe=t.results.columns.join(","),y=Se.map(le=>t.results.columns.map(Ce=>{const ge=le[Ce];return ge===null?"":typeof ge=="string"?`"${ge.replace(/"/g,'""')}"`:String(ge)}).join(",")).join(` +`);await Q.writeFile(Oe,`${pe} +${y}`)},[t.results,Se]),W=u.useCallback(async()=>{if(!t.results||Se.length===0)return;const Q=window.electronAPI;if(!Q)return;const Oe=await Q.saveDialog({filters:[{name:"SQL",extensions:["sql"]}],defaultPath:`query_${Date.now()}.sql`});if(!Oe)return;let pe=`-- ${new Date().toLocaleString()} +-- ${Se.length} 条 + +`;Se.forEach(y=>{const le=t.results.columns.map(Ce=>{const ge=y[Ce];return ge===null?"NULL":typeof ge=="number"?ge:`'${String(ge).replace(/'/g,"''")}'`}).join(", ");pe+=`INSERT INTO table_name (\`${t.results.columns.join("`, `")}\`) VALUES (${le}); +`}),await Q.writeFile(Oe,pe)},[t.results,Se]),Qe=u.useCallback((Q,Oe,pe)=>{he(y=>{const le=[...y];return le[Q]&&(le[Q]={...le[Q],[Oe]:pe}),le}),b(y=>new Set(y).add(`${Q}-${Oe}`))},[]),Te=u.useCallback(Q=>{J(Oe=>new Set(Oe).add(Q)),he(Oe=>Oe.filter((pe,y)=>y!==Q)),b(Oe=>{const pe=new Set;return Oe.forEach(y=>{const le=y.indexOf("-"),Ce=parseInt(y.substring(0,le)),ge=y.substring(le+1);CeQ&&pe.add(`${Ce-1}-${ge}`)}),pe})},[]),Ke=u.useCallback(Q=>{const Oe=[...Q].sort((pe,y)=>y-pe);J(pe=>{const y=new Set(pe);return Oe.forEach(le=>y.add(le)),y}),he(pe=>pe.filter((y,le)=>!Q.includes(le))),b(pe=>{const y=new Set(Q),le=new Set;return pe.forEach(Ce=>{const ge=Ce.indexOf("-"),je=parseInt(Ce.substring(0,ge)),Be=Ce.substring(ge+1);if(!y.has(je)){let Ze=je;for(const fe of Oe)fe{const Oe=We(Q);return{name:Q,type:Oe?.type,key:Oe?.key,comment:Oe?.comment}})||[];return s.jsxs("div",{style:{height:"100%",display:"flex",flexDirection:"column"},children:[s.jsxs("div",{style:{height:"200px",flexShrink:0,display:"flex",flexDirection:"column",borderBottom:"1px solid #e2e8f0"},children:[s.jsxs("div",{className:"h-11 bg-light-surface flex items-center px-3 gap-2",style:{flexShrink:0},children:[s.jsxs("div",{className:"relative",children:[s.jsxs("button",{onClick:()=>H(!_),className:"h-8 px-3 bg-white hover:bg-light-hover border border-border-default flex items-center gap-2 text-sm text-text-primary rounded-lg transition-colors min-w-[140px]",children:[s.jsx(Ca,{size:14,className:"text-primary-500"}),s.jsx("span",{className:"truncate max-w-[100px]",children:I?.name||"选择连接"}),s.jsx(LE,{size:14,className:"text-text-muted ml-auto"})]}),_&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>H(!1)}),s.jsx("div",{className:"absolute top-full left-0 mt-1 bg-white border border-border-default rounded-lg shadow-lg z-50 min-w-[180px] py-1 max-h-[300px] overflow-auto",children:r.filter(Q=>T.has(Q.id)).length===0?s.jsx("div",{className:"px-3 py-2 text-sm text-text-muted",children:"暂无已连接的数据库"}):r.filter(Q=>T.has(Q.id)).map(Q=>s.jsxs("button",{onClick:()=>{O?.(Q.id),H(!1)},className:`w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-2 ${Q.id===E?"bg-primary-50 text-primary-600":"text-text-primary"}`,children:[s.jsx(Ca,{size:14,className:Q.id===E?"text-primary-500":"text-text-muted"}),s.jsx("span",{className:"truncate",children:Q.name}),Q.id===E&&s.jsx(aE,{size:14,className:"ml-auto text-primary-500"})]},Q.id))})]})]}),s.jsxs("div",{className:"relative",children:[s.jsxs("button",{onClick:()=>E&&A(!c),disabled:!E,className:"h-8 px-3 bg-white hover:bg-light-hover border border-border-default flex items-center gap-2 text-sm text-text-primary rounded-lg transition-colors min-w-[140px] disabled:opacity-50 disabled:cursor-not-allowed",children:[s.jsx(Gt,{size:14,className:"text-teal-500"}),s.jsx("span",{className:"truncate max-w-[100px]",children:n||"选择数据库"}),s.jsx(LE,{size:14,className:"text-text-muted ml-auto"})]}),c&&E&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0 z-40",onClick:()=>A(!1)}),s.jsx("div",{className:"absolute top-full left-0 mt-1 bg-white border border-border-default rounded-lg shadow-lg z-50 min-w-[180px] py-1 max-h-[300px] overflow-auto",children:C.length===0?s.jsx("div",{className:"px-3 py-2 text-sm text-text-muted",children:"暂无数据库"}):C.map(Q=>s.jsxs("button",{onClick:()=>{L?.(Q,E),A(!1)},className:`w-full px-3 py-2 text-left text-sm hover:bg-light-hover flex items-center gap-2 ${Q===n?"bg-primary-50 text-primary-600":"text-text-primary"}`,children:[s.jsx(Gt,{size:14,className:Q===n?"text-teal-500":"text-text-muted"}),s.jsx("span",{className:"truncate",children:Q}),Q===n&&s.jsx(aE,{size:14,className:"ml-auto text-primary-500"})]},Q))})]})]}),s.jsx("div",{className:"w-px h-5 bg-border-default mx-1"}),s.jsxs("button",{onClick:me,className:"h-8 px-4 bg-success-500 hover:bg-success-600 text-white flex items-center gap-1.5 text-sm font-medium rounded-lg shadow-sm transition-all",children:[s.jsx(ku,{size:13,fill:"currentColor"}),"执行"]}),s.jsx("div",{className:"w-px h-5 bg-border-default mx-1"}),s.jsxs("button",{onClick:De,className:"h-8 px-3 bg-white hover:bg-light-hover border border-border-default flex items-center gap-1.5 text-sm text-text-primary rounded-lg transition-colors",children:[s.jsx(Oa,{size:14}),"打开"]}),s.jsxs("button",{onClick:Ne,className:"h-8 px-3 bg-white hover:bg-light-hover border border-border-default flex items-center gap-1.5 text-sm text-text-primary rounded-lg transition-colors",children:[s.jsx(GS,{size:14}),"保存"]}),s.jsxs("button",{onClick:se,className:"h-8 px-3 bg-white hover:bg-light-hover border border-border-default flex items-center gap-1.5 text-sm text-text-primary rounded-lg transition-colors",children:[s.jsx(Mu,{size:14}),"格式化"]}),s.jsx("div",{className:"w-px h-5 bg-border-default mx-1"}),s.jsxs("div",{className:"relative",children:[s.jsxs("button",{onClick:()=>Y(!Z),disabled:!t.results||t.results.rows.length===0,className:"h-8 px-3 bg-white hover:bg-light-hover border border-border-default flex items-center gap-1.5 text-sm text-text-primary rounded-lg transition-colors disabled:opacity-40",children:[s.jsx(xS,{size:14}),"导出"]}),Z&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0",onClick:()=>Y(!1)}),s.jsxs("div",{className:"absolute top-full left-0 mt-1 bg-white border border-border-default rounded-lg shadow-lg z-50 min-w-[120px] py-1 menu",children:[s.jsxs("button",{onClick:()=>{Xe(),Y(!1)},className:"w-full px-3 py-2 text-left text-sm text-text-primary hover:bg-light-hover flex items-center gap-2",children:[s.jsx(yS,{size:14,className:"text-success-500"})," CSV"]}),s.jsxs("button",{onClick:()=>{W(),Y(!1)},className:"w-full px-3 py-2 text-left text-sm text-text-primary hover:bg-light-hover flex items-center gap-2",children:[s.jsx(qs,{size:14,className:"text-warning-500"})," SQL"]})]})]})]}),s.jsxs("span",{className:"text-xs text-text-muted ml-auto",children:[P&&s.jsx("span",{className:"mr-3 text-primary-500 font-mono",children:P.split(/[/\\]/).pop()}),s.jsx("kbd",{className:"px-1.5 py-0.5 bg-light-elevated rounded text-[10px] border border-border-light",children:"Ctrl+Enter"})," 执行"]})]}),s.jsx("div",{style:{flex:1,minHeight:0},children:s.jsx(u.Suspense,{fallback:s.jsx($L,{}),children:s.jsx(KL,{value:M,onChange:p,onRun:me,onSave:Ne,onOpen:De,onFormat:se,databases:a,tables:i,columns:o})})})]}),s.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:[s.jsx("div",{className:"h-9 bg-light-surface flex items-center px-4 border-b border-border-default",style:{flexShrink:0},children:s.jsxs("span",{className:"text-sm text-text-secondary flex items-center gap-2",children:[s.jsx(Gt,{size:14,className:"text-primary-500"}),"结果",t.results&&s.jsxs("span",{className:"text-text-muted text-xs ml-2",children:["(",Se.length.toLocaleString()," 行)",ee.size>0&&s.jsxs("span",{className:"text-warning-500 ml-2",children:["· ",ee.size," 已修改"]}),U.size>0&&s.jsxs("span",{className:"text-danger-500 ml-2",children:["· ",U.size," 待删除"]})]})]})}),s.jsxs("div",{style:{flex:1,position:"relative",overflow:"hidden"},children:[s.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:t.results?32:0},children:t.results?s.jsx(zS,{columns:Ye,data:Se,showColumnInfo:!0,editable:!0,onRefresh:()=>S(M),onCellChange:Qe,onDeleteRow:Te,onDeleteRows:Ke,modifiedCells:ee}):s.jsx("div",{className:"h-full flex items-center justify-center",children:s.jsxs("div",{className:"flex flex-col items-center gap-3",children:[s.jsx("div",{className:"w-12 h-12 rounded-xl bg-light-elevated flex items-center justify-center",children:s.jsx(Gt,{size:24,className:"text-text-disabled"})}),s.jsx("span",{className:"text-text-muted",children:"执行查询以查看结果"})]})})}),t.results&&s.jsxs("div",{className:"absolute bottom-0 left-0 right-0 h-8 bg-light-surface border-t border-border-default flex items-center px-3 gap-1",children:[s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx("button",{onClick:ye,disabled:ee.size===0&&U.size===0||ne||!E,className:`w-7 h-7 flex items-center justify-center rounded ${(ee.size>0||U.size>0)&&E?"hover:bg-success-50 text-success-500":"text-text-disabled"}`,title:E?"保存修改到数据库":"未连接数据库",children:ne?s.jsx(Fn,{size:15,className:"animate-spin"}):s.jsx(aE,{size:15})}),s.jsx("button",{onClick:()=>{he(JSON.parse(JSON.stringify(B))),b(new Set),J(new Set)},disabled:ee.size===0&&U.size===0||ne,className:`w-7 h-7 flex items-center justify-center rounded ${ee.size>0||U.size>0?"hover:bg-danger-50 text-danger-500":"text-text-disabled"}`,title:"放弃修改",children:s.jsx(tE,{size:15})}),s.jsx("button",{onClick:()=>S(M),disabled:ne,className:"w-7 h-7 flex items-center justify-center hover:bg-light-hover rounded text-text-tertiary disabled:opacity-40",title:"刷新数据 (重新执行查询)",children:s.jsx(Vr,{size:13})})]}),s.jsx("div",{className:"flex-1 text-center text-xs text-text-muted",children:ne?"保存中...":ee.size>0||U.size>0?`${ee.size>0?`${ee.size} 项修改`:""}${ee.size>0&&U.size>0?" · ":""}${U.size>0?`${U.size} 行删除`:""}`:`共 ${Se.length} 行`}),s.jsx("div",{className:"text-xs text-text-disabled font-mono truncate max-w-[300px]",title:M,children:M.length>50?M.substring(0,50)+"...":M})]})]})]})]})});function qL({isOpen:e,editingConnection:t,initialType:E,onClose:n,onSave:r}){const[T,l]=u.useState(t?.type||E||"mysql"),[a,i]=u.useState(t?.name||""),[o,S]=u.useState(t?.host||"localhost"),[N,R]=u.useState(t?.port||rE[T].defaultPort),[O,L]=u.useState(t?.username||""),[_,H]=u.useState(t?.password||""),[c,A]=u.useState(t?.database||""),[I,C]=u.useState(t?.file||""),[M,p]=u.useState(t?.ssh?.enabled||!1),[P,D]=u.useState(t?.ssh?.host||""),[Z,Y]=u.useState(t?.ssh?.port||22),[ne,xe]=u.useState(t?.ssh?.username||""),[Se,he]=u.useState(t?.ssh?.password||""),[B,j]=u.useState(t?.ssh?.privateKeyPath||""),[ee,b]=u.useState(!1),[U,J]=u.useState(null),Ee=u.useRef(null);u.useEffect(()=>{if(e){const W=setTimeout(()=>Ee.current?.focus(),100);return()=>clearTimeout(W)}},[e]),u.useEffect(()=>{if(t)l(t.type),i(t.name),S(t.host||"localhost"),R(t.port||rE[t.type].defaultPort),L(t.username||""),H(t.password||""),A(t.database||""),C(t.file||""),p(t.ssh?.enabled||!1),D(t.ssh?.host||""),Y(t.ssh?.port||22),xe(t.ssh?.username||""),he(t.ssh?.password||""),j(t.ssh?.privateKeyPath||"");else{const W=E||"mysql";l(W),i(""),S("localhost"),R(rE[W].defaultPort),L(""),H(""),A(""),C(""),p(!1),D(""),Y(22),xe(""),he(""),j("")}J(null)},[t,e,E]);const ce=W=>{l(W),R(rE[W].defaultPort),J(null)},ye=async()=>{try{const W=me(),Qe=await Le.testConnection(W);Qe.success?J({type:"success",text:"连接成功!"}):J({type:"error",text:Qe.error||"连接失败"})}catch(W){J({type:"error",text:"测试失败:"+W.message})}setTimeout(()=>J(null),3e3)},me=()=>{const W=rE[T];return{...t?.id?{id:t.id}:{},type:T,name:a||`${W.name} 连接`,host:W.needsHost?o:void 0,port:W.needsHost?N:void 0,username:W.needsAuth?O:void 0,password:W.needsAuth?_:void 0,database:c||void 0,file:W.needsFile?I:void 0,ssh:M&&W.needsHost?{enabled:!0,host:P,port:Z,username:ne,password:Se||void 0,privateKeyPath:B||void 0}:void 0}},De=()=>{if(!a.trim()){J({type:"error",text:"请输入连接名称"}),setTimeout(()=>J(null),3e3);return}r(me()),n()},Ne=async()=>{const W=await Le.selectFile([{name:"SQLite",extensions:["db","sqlite","sqlite3"]}]);W&&C(W)},se=async()=>{const W=await Le.selectFile([{name:"PEM",extensions:["pem","key","ppk"]}]);W&&j(W)};if(!e)return null;const We=rE[T],Xe=!!t;return s.jsx("div",{className:"fixed inset-0 bg-black/30 flex items-center justify-center z-50 animate-fade-in backdrop-blur-sm",children:s.jsxs("div",{className:"w-[520px] max-h-[90vh] bg-white flex flex-col overflow-hidden rounded-2xl shadow-modal animate-scale-in",onClick:W=>W.stopPropagation(),children:[s.jsxs("div",{className:"h-14 flex items-center justify-between px-5 border-b border-border-default",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"w-9 h-9 rounded-xl flex items-center justify-center",style:{backgroundColor:We.color+"15"},children:s.jsx("span",{className:"text-xl",children:We.icon})}),s.jsxs("div",{children:[s.jsx("h2",{className:"text-base font-semibold text-text-primary",children:Xe?"编辑连接":"新建连接"}),s.jsx("p",{className:"text-xs text-text-muted",children:We.name})]})]}),s.jsx("button",{onClick:n,className:"p-2 hover:bg-light-hover rounded-lg transition-colors",children:s.jsx(tE,{size:18,className:"text-text-tertiary"})})]}),s.jsx("div",{className:"flex-1 overflow-y-auto scrollbar-thin",children:s.jsxs("div",{className:"p-5 space-y-5",children:[s.jsxs("div",{children:[s.jsx("label",{className:"block text-xs font-medium text-text-secondary mb-2",children:"数据库类型"}),s.jsx("div",{className:"flex flex-wrap gap-2",children:Object.entries(rE).filter(([,W])=>W.supported).map(([W,Qe])=>s.jsxs("button",{onClick:()=>ce(W),className:`flex items-center gap-2 px-3 py-2 rounded-lg border text-sm transition-all + ${T===W?"border-primary-500 bg-primary-50 text-primary-700 shadow-focus":"border-border-default hover:border-border-strong text-text-primary hover:bg-light-hover"}`,children:[s.jsx("span",{className:"text-lg",children:Qe.icon}),s.jsx("span",{className:"font-medium",children:Qe.name})]},W))})]}),s.jsxs("div",{children:[s.jsxs("label",{className:"block text-xs font-medium text-text-secondary mb-2",children:[s.jsx(xi,{size:12,className:"inline mr-1"}),"连接名称"]}),s.jsx("input",{ref:Ee,type:"text",value:a,onChange:W=>i(W.target.value),placeholder:`我的${We.name}连接`,className:"w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg focus:border-primary-500 focus:shadow-focus transition-all"})]}),We.needsFile&&s.jsxs("div",{children:[s.jsxs("label",{className:"block text-xs font-medium text-text-secondary mb-2",children:[s.jsx(ua,{size:12,className:"inline mr-1"}),"数据库文件"]}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx("input",{type:"text",value:I,onChange:W=>C(W.target.value),placeholder:"选择或输入 .db 文件路径",className:"flex-1 h-10 px-3 bg-light-surface border border-border-default rounded-lg focus:border-primary-500 focus:shadow-focus transition-all"}),s.jsxs("button",{onClick:Ne,className:"h-10 px-4 bg-white hover:bg-light-hover border border-border-default rounded-lg text-sm text-text-primary transition-colors flex items-center gap-1.5",children:[s.jsx(ca,{size:14}),"浏览"]})]})]}),We.needsHost&&s.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[s.jsxs("div",{className:"col-span-2",children:[s.jsxs("label",{className:"block text-xs font-medium text-text-secondary mb-2",children:[s.jsx(Bu,{size:12,className:"inline mr-1"}),"主机"]}),s.jsx("input",{type:"text",value:o,onChange:W=>S(W.target.value),placeholder:"localhost",className:"w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg focus:border-primary-500 focus:shadow-focus transition-all"})]}),s.jsxs("div",{children:[s.jsxs("label",{className:"block text-xs font-medium text-text-secondary mb-2",children:[s.jsx(Ca,{size:12,className:"inline mr-1"}),"端口"]}),s.jsx("input",{type:"number",value:N,onChange:W=>R(parseInt(W.target.value)||0),className:"w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg focus:border-primary-500 focus:shadow-focus transition-all"})]})]}),We.needsAuth&&s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{children:[s.jsxs("label",{className:"block text-xs font-medium text-text-secondary mb-2",children:[s.jsx(xi,{size:12,className:"inline mr-1"}),"用户名"]}),s.jsx("input",{type:"text",value:O,onChange:W=>L(W.target.value),placeholder:"root",className:"w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg focus:border-primary-500 focus:shadow-focus transition-all"})]}),s.jsxs("div",{children:[s.jsxs("label",{className:"block text-xs font-medium text-text-secondary mb-2",children:[s.jsx(OT,{size:12,className:"inline mr-1"}),"密码"]}),s.jsx("input",{type:"password",value:_,onChange:W=>H(W.target.value),placeholder:"••••••••",className:"w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg focus:border-primary-500 focus:shadow-focus transition-all"})]})]}),We.needsHost&&s.jsxs("div",{children:[s.jsxs("label",{className:"block text-xs font-medium text-text-secondary mb-2",children:[s.jsx(Gt,{size:12,className:"inline mr-1"}),"默认数据库",s.jsx("span",{className:"text-text-muted font-normal ml-1",children:"(可选)"})]}),s.jsx("input",{type:"text",value:c,onChange:W=>A(W.target.value),placeholder:"连接后自动选择的数据库",className:"w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg focus:border-primary-500 focus:shadow-focus transition-all"})]}),We.needsHost&&s.jsxs("div",{className:"border border-border-default rounded-xl overflow-hidden",children:[s.jsxs("button",{onClick:()=>b(!ee),className:"w-full flex items-center justify-between px-4 py-3 hover:bg-light-hover transition-colors",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(Ku,{size:14,className:"text-teal-500"}),s.jsx("span",{className:"text-sm font-medium text-text-primary",children:"SSH 隧道"})]}),ee?s.jsx(LE,{size:16,className:"text-text-tertiary"}):s.jsx(WE,{size:16,className:"text-text-tertiary"})]}),ee&&s.jsxs("div",{className:"px-4 pb-4 pt-2 border-t border-border-light bg-light-surface space-y-3",children:[s.jsxs("label",{className:"flex items-center gap-3 cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:M,onChange:W=>p(W.target.checked),className:"w-4 h-4 rounded border-border-strong text-primary-500 focus:ring-primary-500"}),s.jsx("span",{className:"text-sm text-text-secondary",children:"启用 SSH 隧道"})]}),M&&s.jsxs("div",{className:"space-y-3 mt-3",children:[s.jsxs("div",{className:"grid grid-cols-3 gap-2",children:[s.jsxs("div",{className:"col-span-2",children:[s.jsx("label",{className:"block text-xs text-text-muted mb-1",children:"SSH 主机"}),s.jsx("input",{type:"text",value:P,onChange:W=>D(W.target.value),className:"w-full h-9 px-3 bg-white border border-border-default rounded-lg text-sm focus:border-primary-500 focus:shadow-focus"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"block text-xs text-text-muted mb-1",children:"端口"}),s.jsx("input",{type:"number",value:Z,onChange:W=>Y(parseInt(W.target.value)||22),className:"w-full h-9 px-3 bg-white border border-border-default rounded-lg text-sm focus:border-primary-500 focus:shadow-focus"})]})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[s.jsxs("div",{children:[s.jsx("label",{className:"block text-xs text-text-muted mb-1",children:"用户名"}),s.jsx("input",{type:"text",value:ne,onChange:W=>xe(W.target.value),className:"w-full h-9 px-3 bg-white border border-border-default rounded-lg text-sm focus:border-primary-500 focus:shadow-focus"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"block text-xs text-text-muted mb-1",children:"密码"}),s.jsx("input",{type:"password",value:Se,onChange:W=>he(W.target.value),className:"w-full h-9 px-3 bg-white border border-border-default rounded-lg text-sm focus:border-primary-500 focus:shadow-focus"})]})]}),s.jsxs("div",{children:[s.jsxs("label",{className:"block text-xs text-text-muted mb-1",children:["私钥文件 ",s.jsx("span",{className:"text-text-disabled",children:"(可选)"})]}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx("input",{type:"text",value:B,onChange:W=>j(W.target.value),placeholder:"~/.ssh/id_rsa",className:"flex-1 h-9 px-3 bg-white border border-border-default rounded-lg text-sm focus:border-primary-500 focus:shadow-focus"}),s.jsx("button",{onClick:se,className:"h-9 px-3 bg-white hover:bg-light-hover border border-border-default rounded-lg text-sm",children:"浏览"})]})]})]})]})]}),U&&s.jsxs("div",{className:`flex items-center gap-2 px-4 py-3 rounded-lg animate-slide-up + ${U.type==="success"?"bg-success-50 text-success-600 border border-success-200":"bg-danger-50 text-danger-600 border border-danger-200"}`,children:[U.type==="success"?s.jsx(aE,{size:16}):s.jsx(MS,{size:16}),s.jsx("span",{className:"text-sm",children:U.text})]})]})}),s.jsxs("div",{className:"h-16 flex items-center justify-end gap-3 px-5 border-t border-border-default bg-light-surface",children:[s.jsx("button",{onClick:ye,className:"h-9 px-4 bg-white hover:bg-light-hover border border-border-default rounded-lg text-sm font-medium text-text-primary transition-colors",children:"测试连接"}),s.jsx("button",{onClick:n,className:"h-9 px-4 bg-white hover:bg-light-hover border border-border-default rounded-lg text-sm font-medium text-text-primary transition-colors",children:"取消"}),s.jsx("button",{onClick:De,className:"h-9 px-5 bg-primary-500 hover:bg-primary-600 text-white rounded-lg text-sm font-medium shadow-btn hover:shadow-btn-hover transition-all",children:Xe?"保存":"创建"})]})]})})}const Ll=[{name:"utf8mb4",collations:["utf8mb4_general_ci","utf8mb4_unicode_ci","utf8mb4_bin","utf8mb4_0900_ai_ci"]},{name:"utf8",collations:["utf8_general_ci","utf8_unicode_ci","utf8_bin"]},{name:"latin1",collations:["latin1_swedish_ci","latin1_general_ci","latin1_bin"]},{name:"gbk",collations:["gbk_chinese_ci","gbk_bin"]},{name:"gb2312",collations:["gb2312_chinese_ci","gb2312_bin"]}];function e_({isOpen:e,connectionId:t,onClose:E,onCreated:n}){const[r,T]=u.useState(""),[l,a]=u.useState("utf8mb4"),[i,o]=u.useState("utf8mb4_general_ci"),[S,N]=u.useState(!1),[R,O]=u.useState("");if(u.useEffect(()=>{e&&(T(""),a("utf8mb4"),o("utf8mb4_general_ci"),O(""))},[e]),!e)return null;const _=Ll.find(A=>A.name===l)?.collations||[],H=A=>{a(A);const I=Ll.find(C=>C.name===A);I&&I.collations.length>0&&o(I.collations[0])},c=async A=>{if(A.preventDefault(),!(!r.trim()||!t)){N(!0),O("");try{await Le.createDatabase(t,r.trim(),l,i),n(),E()}catch(I){O(I.message)}finally{N(!1)}}};return s.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center animate-fade-in",children:[s.jsx("div",{className:"absolute inset-0 bg-black/20 backdrop-blur-sm",onClick:E}),s.jsxs("div",{className:"relative bg-white w-[420px] rounded-2xl shadow-modal animate-scale-in overflow-hidden",children:[s.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border-default",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"w-9 h-9 rounded-xl bg-teal-50 flex items-center justify-center",children:s.jsx(Gt,{size:18,className:"text-teal-500"})}),s.jsxs("div",{children:[s.jsx("h2",{className:"font-semibold text-text-primary",children:"新建数据库"}),s.jsx("p",{className:"text-xs text-text-muted",children:"创建新的数据库"})]})]}),s.jsx("button",{onClick:E,className:"p-1.5 hover:bg-light-hover rounded-lg transition-colors",children:s.jsx(tE,{size:16,className:"text-text-tertiary"})})]}),s.jsxs("form",{onSubmit:c,className:"p-5 space-y-4",children:[s.jsxs("div",{children:[s.jsxs("label",{className:"flex items-center gap-2 text-sm text-text-secondary mb-2 font-medium",children:[s.jsx(Gt,{size:14,className:"text-primary-500"}),"数据库名称 ",s.jsx("span",{className:"text-danger-500",children:"*"})]}),s.jsx("input",{type:"text",value:r,onChange:A=>T(A.target.value),placeholder:"输入数据库名称",className:`w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg\r + focus:border-primary-500 focus:shadow-focus text-sm transition-all`,autoFocus:!0})]}),s.jsxs("div",{children:[s.jsxs("label",{className:"flex items-center gap-2 text-sm text-text-secondary mb-2 font-medium",children:[s.jsx(uo,{size:14,className:"text-info-500"}),"字符集"]}),s.jsx("select",{value:l,onChange:A=>H(A.target.value),className:`w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg\r + focus:border-primary-500 text-sm transition-all cursor-pointer`,children:Ll.map(A=>s.jsx("option",{value:A.name,children:A.name},A.name))})]}),s.jsxs("div",{children:[s.jsx("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:"排序规则"}),s.jsx("select",{value:i,onChange:A=>o(A.target.value),className:`w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg\r + focus:border-primary-500 text-sm transition-all cursor-pointer`,children:_.map(A=>s.jsx("option",{value:A,children:A},A))})]}),R&&s.jsx("div",{className:"px-3 py-2 bg-danger-50 text-danger-600 text-sm rounded-lg border border-danger-200",children:R}),s.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[s.jsx("button",{type:"button",onClick:E,className:`px-4 py-2 text-sm bg-light-elevated hover:bg-light-muted border border-border-default\r + rounded-lg transition-colors text-text-secondary`,children:"取消"}),s.jsx("button",{type:"submit",disabled:!r.trim()||S,className:`px-4 py-2 text-sm bg-primary-500 hover:bg-primary-600 text-white\r + disabled:opacity-50 disabled:cursor-not-allowed \r + rounded-lg transition-all font-medium shadow-btn hover:shadow-btn-hover`,children:S?"创建中...":"创建数据库"})]})]})]})]})}const t_=[{group:"整数",types:["INT","TINYINT","SMALLINT","MEDIUMINT","BIGINT"]},{group:"小数",types:["DECIMAL","FLOAT","DOUBLE"]},{group:"字符串",types:["VARCHAR","CHAR","TEXT","MEDIUMTEXT","LONGTEXT"]},{group:"日期时间",types:["DATETIME","DATE","TIME","TIMESTAMP","YEAR"]},{group:"二进制",types:["BLOB","MEDIUMBLOB","LONGBLOB","BINARY","VARBINARY"]},{group:"其他",types:["JSON","ENUM","SET","BOOLEAN"]}],_l={name:"",type:"INT",length:"",nullable:!0,primaryKey:!1,autoIncrement:!1,defaultValue:"",comment:""};function E_({isOpen:e,connectionId:t,database:E,onClose:n,onCreated:r}){const[T,l]=u.useState(""),[a,i]=u.useState([{..._l,id:crypto.randomUUID(),name:"id",primaryKey:!0,autoIncrement:!0,nullable:!1}]),[o,S]=u.useState(!1),[N,R]=u.useState("");if(u.useEffect(()=>{e&&(l(""),i([{..._l,id:crypto.randomUUID(),name:"id",primaryKey:!0,autoIncrement:!0,nullable:!1}]),R(""))},[e]),!e)return null;const O=()=>{i([...a,{..._l,id:crypto.randomUUID()}])},L=I=>{a.length>1&&i(a.filter(C=>C.id!==I))},_=(I,C,M)=>{i(a.map(p=>{if(p.id!==I)return p;const P={...p,[C]:M};return C==="primaryKey"&&M&&(P.nullable=!1),C==="autoIncrement"&&M&&(P.primaryKey=!0,P.nullable=!1),P}))},H=(I,C)=>{const M=C==="up"?I-1:I+1;if(M<0||M>=a.length)return;const p=[...a],P=p[I];p[I]=p[M],p[M]=P,i(p)},c=async I=>{if(I.preventDefault(),!(!T.trim()||!a.some(C=>C.name.trim())||!t||!E)){S(!0),R("");try{await Le.createTable(t,E,T.trim(),a.filter(C=>C.name.trim())),r(),n()}catch(C){R(C.message)}finally{S(!1)}}},A=I=>["VARCHAR","CHAR","DECIMAL","FLOAT","DOUBLE","BINARY","VARBINARY"].includes(I);return s.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center animate-fade-in",children:[s.jsx("div",{className:"absolute inset-0 bg-black/20 backdrop-blur-sm",onClick:n}),s.jsxs("div",{className:"relative bg-white w-[850px] max-h-[85vh] flex flex-col rounded-2xl shadow-modal animate-scale-in overflow-hidden",children:[s.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border-default flex-shrink-0",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"w-9 h-9 rounded-xl bg-warning-50 flex items-center justify-center",children:s.jsx(zn,{size:18,className:"text-warning-500"})}),s.jsxs("div",{children:[s.jsx("h2",{className:"font-semibold text-text-primary",children:"新建表"}),s.jsxs("p",{className:"text-xs text-text-muted",children:["数据库: ",s.jsx("span",{className:"text-teal-600 font-mono",children:E})]})]})]}),s.jsx("button",{onClick:n,className:"p-1.5 hover:bg-light-hover rounded-lg transition-colors",children:s.jsx(tE,{size:16,className:"text-text-tertiary"})})]}),s.jsxs("form",{onSubmit:c,className:"flex-1 flex flex-col min-h-0",children:[s.jsxs("div",{className:"p-5 border-b border-border-default flex-shrink-0",children:[s.jsxs("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:["表名称 ",s.jsx("span",{className:"text-danger-500",children:"*"})]}),s.jsx("input",{type:"text",value:T,onChange:I=>l(I.target.value),placeholder:"输入表名称",className:`w-64 h-10 px-3 bg-light-surface border border-border-default rounded-lg\r + focus:border-primary-500 focus:shadow-focus text-sm transition-all`,autoFocus:!0})]}),s.jsxs("div",{className:"flex-1 overflow-auto p-5 scrollbar-thin",children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsx("span",{className:"text-sm text-text-secondary font-medium",children:"字段定义"}),s.jsxs("button",{type:"button",onClick:O,className:`flex items-center gap-1.5 px-3 py-1.5 text-xs bg-primary-500 hover:bg-primary-600 text-white\r + rounded-lg transition-colors font-medium`,children:[s.jsx(In,{size:14}),"添加字段"]})]}),s.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-light-surface text-xs text-text-muted border-b border-border-default rounded-t-lg font-medium",children:[s.jsx("div",{className:"w-8"}),s.jsx("div",{className:"w-28",children:"字段名"}),s.jsx("div",{className:"w-24",children:"类型"}),s.jsx("div",{className:"w-14",children:"长度"}),s.jsx("div",{className:"w-10 text-center",children:"主键"}),s.jsx("div",{className:"w-10 text-center",children:"自增"}),s.jsx("div",{className:"w-10 text-center",children:"可空"}),s.jsx("div",{className:"w-20",children:"默认值"}),s.jsx("div",{className:"flex-1",children:"备注"}),s.jsx("div",{className:"w-10"})]}),s.jsx("div",{className:"border border-t-0 border-border-default rounded-b-lg overflow-hidden",children:a.map((I,C)=>s.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 hover:bg-light-hover group transition-colors border-b border-border-light last:border-b-0",children:[s.jsxs("div",{className:"w-8 flex flex-col gap-0.5",children:[s.jsx("button",{type:"button",onClick:()=>H(C,"up"),disabled:C===0,className:"p-0.5 hover:bg-light-elevated disabled:opacity-30 rounded transition-colors",children:s.jsx(xu,{size:10,className:"text-text-muted"})}),s.jsx("button",{type:"button",onClick:()=>H(C,"down"),disabled:C===a.length-1,className:"p-0.5 hover:bg-light-elevated disabled:opacity-30 rounded transition-colors",children:s.jsx(Uu,{size:10,className:"text-text-muted"})})]}),s.jsx("input",{type:"text",value:I.name,onChange:M=>_(I.id,"name",M.target.value),placeholder:"字段名",className:`w-28 h-8 px-2 bg-white border border-border-default rounded text-xs\r + focus:border-primary-500 focus:outline-none transition-colors font-mono`}),s.jsx("select",{value:I.type,onChange:M=>_(I.id,"type",M.target.value),className:`w-24 h-8 px-2 bg-white border border-border-default rounded text-xs\r + focus:border-primary-500 focus:outline-none transition-colors cursor-pointer`,children:t_.map(M=>s.jsx("optgroup",{label:M.group,children:M.types.map(p=>s.jsx("option",{value:p,children:p},p))},M.group))}),s.jsx("input",{type:"text",value:I.length,onChange:M=>_(I.id,"length",M.target.value),placeholder:A(I.type)?"长度":"-",disabled:!A(I.type),className:`w-14 h-8 px-2 bg-white border border-border-default rounded text-xs text-center\r + focus:border-primary-500 focus:outline-none transition-colors\r + disabled:opacity-40 disabled:bg-light-surface disabled:cursor-not-allowed font-mono`}),s.jsx("div",{className:"w-10 flex justify-center",children:s.jsx("button",{type:"button",onClick:()=>_(I.id,"primaryKey",!I.primaryKey),className:`p-1.5 rounded transition-all ${I.primaryKey?"bg-warning-500 text-white":"hover:bg-light-elevated text-text-muted"}`,children:s.jsx(OT,{size:12})})}),s.jsx("div",{className:"w-10 flex justify-center",children:s.jsxs("label",{className:"cursor-pointer",children:[s.jsx("div",{className:`w-4 h-4 rounded border-2 flex items-center justify-center transition-all + ${I.autoIncrement?"bg-primary-500 border-primary-500":"border-border-strong hover:border-primary-300"}`,children:I.autoIncrement&&s.jsx(aE,{size:10,className:"text-white"})}),s.jsx("input",{type:"checkbox",checked:I.autoIncrement,onChange:M=>_(I.id,"autoIncrement",M.target.checked),className:"sr-only"})]})}),s.jsx("div",{className:"w-10 flex justify-center",children:s.jsxs("label",{className:`cursor-pointer ${I.primaryKey?"opacity-40 cursor-not-allowed":""}`,children:[s.jsx("div",{className:`w-4 h-4 rounded border-2 flex items-center justify-center transition-all + ${I.nullable?"bg-success-500 border-success-500":"border-border-strong hover:border-success-300"}`,children:I.nullable&&s.jsx(aE,{size:10,className:"text-white"})}),s.jsx("input",{type:"checkbox",checked:I.nullable,onChange:M=>_(I.id,"nullable",M.target.checked),disabled:I.primaryKey,className:"sr-only"})]})}),s.jsx("input",{type:"text",value:I.defaultValue,onChange:M=>_(I.id,"defaultValue",M.target.value),placeholder:"默认值",className:`w-20 h-8 px-2 bg-white border border-border-default rounded text-xs\r + focus:border-primary-500 focus:outline-none transition-colors`}),s.jsx("input",{type:"text",value:I.comment,onChange:M=>_(I.id,"comment",M.target.value),placeholder:"备注",className:`flex-1 h-8 px-2 bg-white border border-border-default rounded text-xs\r + focus:border-primary-500 focus:outline-none transition-colors`}),s.jsx("div",{className:"w-10 flex justify-center",children:s.jsx("button",{type:"button",onClick:()=>L(I.id),disabled:a.length===1,className:`p-1.5 text-text-muted hover:text-danger-500 hover:bg-danger-50 \r + rounded transition-all disabled:opacity-30 disabled:cursor-not-allowed`,children:s.jsx(IE,{size:14})})})]},I.id))})]}),N&&s.jsx("div",{className:"mx-5 mb-3 px-3 py-2 bg-danger-50 text-danger-600 text-sm rounded-lg border border-danger-200",children:N}),s.jsxs("div",{className:"flex justify-end gap-2 p-5 border-t border-border-default flex-shrink-0",children:[s.jsx("button",{type:"button",onClick:n,className:`px-4 py-2 text-sm bg-light-elevated hover:bg-light-muted border border-border-default\r + rounded-lg transition-colors text-text-secondary`,children:"取消"}),s.jsx("button",{type:"submit",disabled:!T.trim()||!a.some(I=>I.name.trim())||o,className:`px-4 py-2 text-sm bg-primary-500 hover:bg-primary-600 text-white\r + disabled:opacity-50 disabled:cursor-not-allowed \r + rounded-lg transition-all font-medium shadow-btn hover:shadow-btn-hover`,children:o?"创建中...":"创建表"})]})]})]})]})}const ir={mysql:[{group:"整数",types:["TINYINT","SMALLINT","MEDIUMINT","INT","BIGINT"]},{group:"小数",types:["DECIMAL","FLOAT","DOUBLE"]},{group:"字符串",types:["CHAR","VARCHAR","TINYTEXT","TEXT","MEDIUMTEXT","LONGTEXT"]},{group:"日期时间",types:["DATE","TIME","DATETIME","TIMESTAMP","YEAR"]},{group:"二进制",types:["BINARY","VARBINARY","TINYBLOB","BLOB","MEDIUMBLOB","LONGBLOB"]},{group:"其他",types:["JSON","ENUM","SET","BOOLEAN","BIT"]}],postgres:[{group:"整数",types:["SMALLINT","INTEGER","BIGINT","SERIAL","BIGSERIAL"]},{group:"小数",types:["DECIMAL","NUMERIC","REAL","DOUBLE PRECISION"]},{group:"字符串",types:["CHAR","VARCHAR","TEXT"]},{group:"日期时间",types:["DATE","TIME","TIMESTAMP","TIMESTAMPTZ","INTERVAL"]},{group:"布尔",types:["BOOLEAN"]},{group:"其他",types:["JSON","JSONB","UUID","BYTEA","ARRAY"]}],sqlserver:[{group:"整数",types:["TINYINT","SMALLINT","INT","BIGINT"]},{group:"小数",types:["DECIMAL","NUMERIC","FLOAT","REAL","MONEY"]},{group:"字符串",types:["CHAR","VARCHAR","NCHAR","NVARCHAR","TEXT","NTEXT"]},{group:"日期时间",types:["DATE","TIME","DATETIME","DATETIME2","DATETIMEOFFSET"]},{group:"二进制",types:["BINARY","VARBINARY","IMAGE"]},{group:"其他",types:["BIT","UNIQUEIDENTIFIER","XML"]}],sqlite:[{group:"基本",types:["INTEGER","REAL","TEXT","BLOB","NUMERIC"]}]},n_=["InnoDB","MyISAM","Memory","CSV","Archive","Blackhole","Federated","NDB"],r_=["utf8mb4","utf8mb3","utf8","latin1","gbk","gb2312","big5","ascii","binary"],AR={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"],gbk:["gbk_chinese_ci","gbk_bin"]},s_=["DEFAULT","DYNAMIC","FIXED","COMPRESSED","REDUNDANT","COMPACT"];function Vt({value:e,options:t,onChange:E,placeholder:n="选择...",className:r="",disabled:T=!1}){const[l,a]=u.useState(!1),[i,o]=u.useState(""),S=u.useRef(null),N=t.filter(O=>O.label.toLowerCase().includes(i.toLowerCase())||O.value.toLowerCase().includes(i.toLowerCase())),R=t.find(O=>O.value===e);return u.useEffect(()=>{const O=L=>{S.current&&!S.current.contains(L.target)&&(a(!1),o(""))};return document.addEventListener("mousedown",O),()=>document.removeEventListener("mousedown",O)},[]),s.jsxs("div",{ref:S,className:`relative flex items-center justify-between cursor-pointer rounded-lg transition-all duration-200 ${r} ${T?"opacity-50 cursor-not-allowed":"hover:bg-light-hover"}`,onClick:O=>{O.stopPropagation(),T||a(!l)},children:[s.jsx("span",{className:`text-sm font-medium ${R?"text-text-primary":"text-text-muted"}`,children:R?.label||n}),s.jsx(LE,{size:14,className:`text-text-tertiary ml-2 transition-transform duration-200 ${l?"rotate-180":""}`}),l&&s.jsxs("div",{className:`absolute z-50 top-full left-0 w-full min-w-[160px] mt-1.5 bg-white border border-border-default \r + shadow-xl rounded-xl overflow-hidden flex flex-col animate-in fade-in slide-in-from-top-2 duration-200`,style:{maxHeight:"280px"},children:[s.jsx("div",{className:"p-2.5 border-b border-border-light bg-gradient-to-b from-light-surface to-white",children:s.jsxs("div",{className:"relative",children:[s.jsx(cT,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-text-tertiary"}),s.jsx("input",{type:"text",value:i,onChange:O=>o(O.target.value),onClick:O=>O.stopPropagation(),placeholder:"搜索...",className:`w-full h-9 pl-9 pr-3 bg-white border border-border-default rounded-lg text-sm text-text-primary \r + focus:outline-none focus:border-primary-400 focus:ring-2 focus:ring-primary-100 transition-all`,autoFocus:!0})]})}),s.jsx("div",{className:"overflow-auto flex-1 py-1.5",style:{maxHeight:"220px"},children:N.length===0?s.jsxs("div",{className:"px-4 py-6 text-sm text-text-muted text-center",children:[s.jsx("div",{className:"text-2xl mb-2",children:"🔍"}),"无匹配项"]}):N.map(O=>s.jsxs("div",{onClick:L=>{L.stopPropagation(),E(O.value),a(!1),o("")},className:`px-3 py-2 text-sm cursor-pointer flex items-center gap-2.5 mx-1.5 rounded-lg transition-all duration-150 + ${O.value===e?"bg-primary-50 text-primary-700 font-medium":"text-text-primary hover:bg-light-hover"}`,children:[O.value===e&&s.jsx(aE,{size:14,className:"text-primary-500",strokeWidth:2.5}),s.jsx("span",{className:O.value===e?"":"ml-5",children:O.label})]},O.value))})]})]})}function T_({values:e,options:t,onChange:E,placeholder:n="选择...",className:r=""}){const[T,l]=u.useState(!1),[a,i]=u.useState(""),[o,S]=u.useState(e),N=u.useRef(null),R=t.filter(A=>A.label.toLowerCase().includes(a.toLowerCase()));u.useEffect(()=>{T&&S(e)},[T,e]),u.useEffect(()=>{const A=I=>{N.current&&!N.current.contains(I.target)&&(l(!1),i(""))};return document.addEventListener("mousedown",A),()=>document.removeEventListener("mousedown",A)},[]);const O=A=>{o.includes(A)?S(o.filter(I=>I!==A)):S([...o,A])},L=()=>{E(o),l(!1),i("")},_=()=>{S(e),l(!1),i("")},H=()=>{S(R.map(A=>A.value))},c=()=>{S([])};return s.jsxs("div",{ref:N,className:`relative ${r}`,children:[s.jsxs("div",{onClick:A=>{A.stopPropagation(),l(!T)},className:`w-full min-h-[36px] px-3 py-1.5 bg-white/50 border border-border-light hover:border-primary-300 rounded-lg\r + text-sm flex items-center gap-1.5 flex-wrap cursor-pointer transition-all duration-200\r + hover:shadow-sm hover:bg-white`,children:[e.length===0?s.jsx("span",{className:"text-text-muted",children:n}):e.map(A=>s.jsx("span",{className:`bg-gradient-to-r from-primary-100 to-primary-50 text-primary-700 px-2.5 py-1 rounded-md text-xs font-medium\r + border border-primary-200/50 shadow-sm`,children:A},A)),s.jsx(LE,{size:14,className:`ml-auto text-text-tertiary transition-transform duration-200 ${T?"rotate-180":""}`})]}),T&&s.jsxs("div",{className:`absolute z-50 top-full left-0 w-full min-w-[200px] mt-1.5 bg-white border border-border-default \r + shadow-xl rounded-xl overflow-hidden flex flex-col animate-in fade-in slide-in-from-top-2 duration-200`,style:{maxHeight:"320px"},children:[s.jsx("div",{className:"p-2.5 border-b border-border-light bg-gradient-to-b from-light-surface to-white",children:s.jsxs("div",{className:"relative",children:[s.jsx(cT,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-text-tertiary"}),s.jsx("input",{type:"text",value:a,onChange:A=>i(A.target.value),onClick:A=>A.stopPropagation(),placeholder:"搜索字段...",className:`w-full h-9 pl-9 pr-3 bg-white border border-border-default rounded-lg text-sm text-text-primary \r + focus:outline-none focus:border-primary-400 focus:ring-2 focus:ring-primary-100 transition-all`,autoFocus:!0})]})}),s.jsxs("div",{className:"px-2.5 py-2 border-b border-border-light flex items-center gap-2 bg-light-surface/50",children:[s.jsx("button",{onClick:A=>{A.stopPropagation(),H()},className:"text-xs text-primary-600 hover:text-primary-700 font-medium px-2 py-1 rounded hover:bg-primary-50 transition-colors",children:"全选"}),s.jsx("span",{className:"text-border-default",children:"|"}),s.jsx("button",{onClick:A=>{A.stopPropagation(),c()},className:"text-xs text-text-tertiary hover:text-text-secondary font-medium px-2 py-1 rounded hover:bg-light-hover transition-colors",children:"清空"}),s.jsxs("span",{className:"ml-auto text-xs text-text-muted",children:["已选 ",s.jsx("span",{className:"text-primary-600 font-medium",children:o.length})," 项"]})]}),s.jsx("div",{className:"overflow-auto flex-1 py-1.5",style:{maxHeight:"180px"},children:R.length===0?s.jsxs("div",{className:"px-4 py-6 text-sm text-text-muted text-center",children:[s.jsx("div",{className:"text-2xl mb-2",children:"🔍"}),"无匹配字段"]}):R.map(A=>s.jsxs("div",{onClick:I=>{I.stopPropagation(),O(A.value)},className:`px-3 py-2 text-sm cursor-pointer flex items-center gap-3 mx-1.5 rounded-lg transition-all duration-150 + ${o.includes(A.value)?"bg-primary-50 text-primary-700 hover:bg-primary-100":"text-text-primary hover:bg-light-hover"}`,children:[s.jsx("div",{className:`w-5 h-5 rounded-md border-2 flex items-center justify-center transition-all duration-150 + ${o.includes(A.value)?"bg-primary-500 border-primary-500":"border-border-default bg-white"}`,children:o.includes(A.value)&&s.jsx(aE,{size:12,className:"text-white",strokeWidth:3})}),s.jsx("span",{className:"font-medium",children:A.label})]},A.value))}),s.jsxs("div",{className:"px-3 py-2.5 border-t border-border-light bg-gradient-to-t from-light-surface to-white flex items-center justify-end gap-2",children:[s.jsx("button",{onClick:A=>{A.stopPropagation(),_()},className:`px-4 py-1.5 text-sm text-text-secondary hover:text-text-primary font-medium rounded-lg \r + hover:bg-light-hover transition-all duration-150`,children:"取消"}),s.jsx("button",{onClick:A=>{A.stopPropagation(),L()},className:`px-4 py-1.5 text-sm text-white font-medium rounded-lg bg-gradient-to-r from-primary-500 to-primary-600\r + hover:from-primary-600 hover:to-primary-700 shadow-sm hover:shadow-md transition-all duration-150`,children:"确认"})]})]})]})}const SR={name:"",type:"INT",length:"",decimals:"",nullable:!0,primaryKey:!1,autoIncrement:!1,unsigned:!1,zerofill:!1,defaultValue:"",comment:"",isVirtual:!1,virtualExpression:""},l_={name:"",columns:[],type:"NORMAL",method:"BTREE",comment:""},a_={name:"",columns:[],refSchema:"",refTable:"",refColumns:[],onDelete:"NO ACTION",onUpdate:"NO ACTION"},NR={engine:"InnoDB",charset:"utf8mb4",collation:"utf8mb4_general_ci",comment:"",autoIncrement:"",rowFormat:"DEFAULT"};function o_({isOpen:e,mode:t,database:E,tableName:n,connectionId:r,dbType:T,onClose:l,onSave:a,onGetTableInfo:i,onGetDatabases:o,onGetTables:S,onGetColumns:N}){const[R,O]=u.useState("columns"),[L,_]=u.useState(n||""),[H,c]=u.useState([]),[A,I]=u.useState([]),[C,M]=u.useState([]),[p,P]=u.useState(NR),[D,Z]=u.useState(null),[Y,ne]=u.useState(!1),[xe,Se]=u.useState(!1),[he,B]=u.useState(""),[j,ee]=u.useState(null),[b,U]=u.useState(null),[J,Ee]=u.useState(null);u.useEffect(()=>{e&&t==="edit"&&i?(_(n||""),B(""),ce()):e&&t==="create"&&(c([{...SR,id:crypto.randomUUID(),name:"id",primaryKey:!0,autoIncrement:!0,nullable:!1,_isNew:!0}]),I([]),M([]),P(NR),Z(null),_(""),B(""),ne(!1))},[e,t,n]);const ce=async()=>{if(!i){ne(!1);return}ne(!0);try{const m=await i();m&&m.columns?c(m.columns.map(F=>({...F,_original:{...F}}))):c([]),m&&m.indexes?I(m.indexes.map(F=>({...F,_original:{...F}}))):I([]),m&&m.foreignKeys?M(m.foreignKeys.map(F=>({...F,_original:{...F}}))):M([]),m&&m.options?(P(m.options),Z(m.options)):Z(null)}catch(m){console.error("Load table info error:",m),B(m.message||"加载表信息失败")}finally{ne(!1)}},ye=u.useMemo(()=>{const m=T.toLowerCase();return m==="mysql"||m==="mariadb"?ir.mysql:m==="postgres"||m==="postgresql"?ir.postgres:m==="sqlserver"?ir.sqlserver:m==="sqlite"?ir.sqlite:ir.mysql},[T]),me=m=>{const F=m.toUpperCase();return["VARCHAR","CHAR","DECIMAL","NUMERIC","FLOAT","DOUBLE","BINARY","VARBINARY","BIT"].includes(F)},De=m=>{const F=m.toUpperCase();return["DECIMAL","NUMERIC","FLOAT","DOUBLE"].includes(F)},Ne=m=>{const F=m.toUpperCase();return["TINYINT","SMALLINT","MEDIUMINT","INT","INTEGER","BIGINT","FLOAT","DOUBLE","DECIMAL"].includes(F)},se=()=>{const m={...SR,id:crypto.randomUUID(),_isNew:!0};c([...H,m]),ee(m.id)},We=m=>{const F=H.find(q=>q.id===m);F&&(F._isNew?c(H.filter(q=>q.id!==m)):c(H.map(q=>q.id===m?{...q,_isDeleted:!0}:q)))},Xe=(m,F,q)=>{c(H.map(_e=>{if(_e.id!==m)return _e;const k={..._e,[F]:q};return F==="primaryKey"&&q&&(k.nullable=!1),F==="autoIncrement"&&q&&(k.primaryKey=!0,k.nullable=!1),k}))},W=(m,F)=>{const q=H.filter(Re=>!Re._isDeleted),_e=F==="up"?m-1:m+1;if(_e<0||_e>=q.length)return;const k=[...q],ie=k[m];k[m]=k[_e],k[_e]=ie,c([...k,...H.filter(Re=>Re._isDeleted)])},Qe=()=>{const m={...l_,id:crypto.randomUUID(),_isNew:!0};I([...A,m]),U(m.id)},Te=m=>{const F=A.find(q=>q.id===m);F&&(F._isNew?I(A.filter(q=>q.id!==m)):I(A.map(q=>q.id===m?{...q,_isDeleted:!0}:q)))},Ke=(m,F)=>m.length===0||!m.some(k=>k)?"":`${F==="UNIQUE"?"uk":F==="FULLTEXT"?"ft":"idx"}_${L||"table"}_${m.filter(k=>k).join("_")}`,Ye=(m,F,q)=>{I(A.map(_e=>{if(_e.id!==m)return _e;const k={..._e,[F]:q};if(F==="columns"&&Array.isArray(q)&&q.length>0&&q.some(ie=>ie)){const ie=Ke(q,_e.type);(!_e.name||_e.name.startsWith("idx_")||_e.name.startsWith("uk_")||_e.name.startsWith("ft_"))&&(k.name=ie)}if(F==="type"&&_e.columns.length>0&&_e.columns.some(ie=>ie)){const ie=Ke(_e.columns,q);(!_e.name||_e.name.startsWith("idx_")||_e.name.startsWith("uk_")||_e.name.startsWith("ft_"))&&(k.name=ie)}return k}))},Q=m=>m.length===0||!m[0]?"":`fk_${L||"table"}_${m.filter(q=>q).join("_")}`,Oe=()=>{const m={...a_,id:crypto.randomUUID(),_isNew:!0};M([...C,m]),Ee(m.id)},pe=m=>{const F=C.find(q=>q.id===m);F&&(F._isNew?M(C.filter(q=>q.id!==m)):M(C.map(q=>q.id===m?{...q,_isDeleted:!0}:q)))},y=(m,F,q)=>{M(_e=>_e.map(k=>{if(k.id!==m)return k;if(typeof F=="object")return{...k,...F};const ie={...k,[F]:q};if(F==="columns"&&Array.isArray(q)&&q.length>0&&q[0]){const Re=Q(q);(!k.name||k.name.startsWith("fk_"))&&(ie.name=Re)}return ie}))},le=m=>{if(!m._original)return!1;const F=m._original;return m.name!==F.name||m.type!==F.type||m.length!==F.length||m.decimals!==F.decimals||m.nullable!==F.nullable||m.defaultValue!==F.defaultValue||m.comment!==F.comment||m.unsigned!==F.unsigned||m.autoIncrement!==F.autoIncrement},Ce=u.useMemo(()=>{const m=T.toLowerCase(),F=k=>m==="mysql"||m==="mariadb"?`\`${k}\``:m==="postgres"||m==="postgresql"?`"${k}"`:m==="sqlserver"?`[${k}]`:`"${k}"`,q=k=>{let ie=k.type.toUpperCase();return k.length&&(k.decimals&&De(k.type)?ie+=`(${k.length},${k.decimals})`:ie+=`(${k.length})`),ie},_e=(k,ie=!1)=>{let Re=`${F(k.name)} ${q(k)}`;if(Ne(k.type)&&k.unsigned&&(m==="mysql"||m==="mariadb")&&(Re+=" UNSIGNED"),k.zerofill&&(m==="mysql"||m==="mariadb")&&(Re+=" ZEROFILL"),k.nullable||(Re+=" NOT NULL"),k.autoIncrement&&(m==="mysql"||m==="mariadb"?Re+=" AUTO_INCREMENT":m==="sqlserver"&&(Re+=" IDENTITY(1,1)")),k.defaultValue!==void 0&&k.defaultValue!==""){const Et=k.defaultValue;Et.toUpperCase()==="NULL"?Re+=" DEFAULT NULL":Et.toUpperCase()==="CURRENT_TIMESTAMP"||Et.toUpperCase().startsWith("NOW")?Re+=` DEFAULT ${Et}`:Re+=` DEFAULT '${Et}'`}return k.comment&&(m==="mysql"||m==="mariadb")&&(Re+=` COMMENT '${k.comment.replace(/'/g,"''")}'`),Re};if(t==="create"){const k=H.filter(oe=>!oe._isDeleted&&oe.name);if(!L||k.length===0)return"-- 请填写表名和至少一个字段";const ie=k.map(oe=>" "+_e(oe,!0)),Re=k.filter(oe=>oe.primaryKey);Re.length>0&&ie.push(` PRIMARY KEY (${Re.map(oe=>F(oe.name)).join(", ")})`);const Et=A.filter(oe=>!oe._isDeleted&&oe.name&&oe.columns.length>0&&oe.columns.some(qe=>qe));for(const oe of Et){let qe=" ";oe.type==="UNIQUE"?qe+="UNIQUE ":oe.type==="FULLTEXT"?qe+="FULLTEXT ":oe.type==="SPATIAL"&&(qe+="SPATIAL "),qe+=`INDEX ${F(oe.name)} (${oe.columns.map(Yt=>F(Yt)).join(", ")})`,oe.method&&oe.method!=="BTREE"&&(m==="mysql"||m==="mariadb")&&(qe+=` USING ${oe.method}`),ie.push(qe)}const KE=C.filter(oe=>!oe._isDeleted&&oe.name&&oe.columns.length>0&&oe.columns[0]&&oe.refTable&&oe.refColumns.length>0&&oe.refColumns[0]);for(const oe of KE){let qe=` CONSTRAINT ${F(oe.name)} FOREIGN KEY (${oe.columns.map(Yt=>F(Yt)).join(", ")}) `;qe+=`REFERENCES ${oe.refSchema?F(oe.refSchema)+".":""}${F(oe.refTable)} (${oe.refColumns.map(Yt=>F(Yt)).join(", ")})`,oe.onDelete!=="NO ACTION"&&(qe+=` ON DELETE ${oe.onDelete}`),oe.onUpdate!=="NO ACTION"&&(qe+=` ON UPDATE ${oe.onUpdate}`),ie.push(qe)}let fE=`CREATE TABLE ${F(E)}.${F(L)} ( +${ie.join(`, +`)} +)`;if(m==="mysql"||m==="mariadb"){const oe=[];p.engine&&oe.push(`ENGINE=${p.engine}`),p.charset&&oe.push(`DEFAULT CHARSET=${p.charset}`),p.collation&&oe.push(`COLLATE=${p.collation}`),p.rowFormat&&p.rowFormat!=="DEFAULT"&&oe.push(`ROW_FORMAT=${p.rowFormat}`),p.comment&&oe.push(`COMMENT='${p.comment.replace(/'/g,"''")}'`),p.autoIncrement&&oe.push(`AUTO_INCREMENT=${p.autoIncrement}`),oe.length>0&&(fE+=` +`+oe.join(` +`))}return fE+";"}else{const k=[],ie=`${F(E)}.${F(L)}`,Re=H.filter($=>$._isDeleted&&$._original);for(const $ of Re)k.push(`ALTER TABLE ${ie} DROP COLUMN ${F($.name)};`);const Et=H.filter($=>$._isNew&&!$._isDeleted&&$.name);for(const $ of Et)k.push(`ALTER TABLE ${ie} ADD COLUMN ${_e($)};`);const KE=H.filter($=>!$._isNew&&!$._isDeleted&&$._original&&le($));for(const $ of KE)m==="mysql"||m==="mariadb"?k.push(`ALTER TABLE ${ie} +CHANGE COLUMN ${F($._original.name)} ${_e($)};`):m==="postgres"||m==="postgresql"?($._original.name!==$.name&&k.push(`ALTER TABLE ${ie} RENAME COLUMN ${F($._original.name)} TO ${F($.name)};`),k.push(`ALTER TABLE ${ie} ALTER COLUMN ${F($.name)} TYPE ${q($)};`),$.nullable!==$._original.nullable&&k.push(`ALTER TABLE ${ie} ALTER COLUMN ${F($.name)} ${$.nullable?"DROP":"SET"} NOT NULL;`)):m==="sqlserver"&&($._original.name!==$.name&&k.push(`EXEC sp_rename '${L}.${$._original.name}', '${$.name}', 'COLUMN';`),k.push(`ALTER TABLE ${ie} ALTER COLUMN ${F($.name)} ${q($)}${$.nullable?"":" NOT NULL"};`));const fE=A.filter($=>$._isDeleted&&$._original);for(const $ of fE)m==="mysql"||m==="mariadb"?k.push(`ALTER TABLE ${ie} DROP INDEX ${F($.name)};`):m==="postgres"||m==="postgresql"?k.push(`DROP INDEX ${F($.name)};`):m==="sqlserver"&&k.push(`DROP INDEX ${F($.name)} ON ${ie};`);const oe=A.filter($=>$._isNew&&!$._isDeleted&&$.name&&$.columns.length>0&&$.columns.some(we=>we));for(const $ of oe){let we="";m==="mysql"||m==="mariadb"?(we=`ALTER TABLE ${ie} ADD `,$.type==="UNIQUE"?we+="UNIQUE ":$.type==="FULLTEXT"?we+="FULLTEXT ":$.type==="SPATIAL"&&(we+="SPATIAL "),we+=`INDEX ${F($.name)} (${$.columns.map(Ut=>F(Ut)).join(", ")})`,$.method&&$.method!=="BTREE"&&(we+=` USING ${$.method}`)):we=`CREATE ${$.type==="UNIQUE"?"UNIQUE ":""}INDEX ${F($.name)} ON ${ie} (${$.columns.map(Ut=>F(Ut)).join(", ")})`,k.push(we+";")}const qe=C.filter($=>$._isDeleted&&$._original);for(const $ of qe)m==="mysql"||m==="mariadb"?k.push(`ALTER TABLE ${ie} DROP FOREIGN KEY ${F($.name)};`):k.push(`ALTER TABLE ${ie} DROP CONSTRAINT ${F($.name)};`);const Yt=C.filter($=>$._isNew&&!$._isDeleted&&$.name&&$.columns.length>0&&$.columns[0]&&$.refTable&&$.refColumns.length>0&&$.refColumns[0]);for(const $ of Yt){let we=`ALTER TABLE ${ie} ADD CONSTRAINT ${F($.name)} FOREIGN KEY (${$.columns.map(Ut=>F(Ut)).join(", ")}) `;we+=`REFERENCES ${$.refSchema?F($.refSchema)+".":""}${F($.refTable)} (${$.refColumns.map(Ut=>F(Ut)).join(", ")})`,$.onDelete!=="NO ACTION"&&(we+=` ON DELETE ${$.onDelete}`),$.onUpdate!=="NO ACTION"&&(we+=` ON UPDATE ${$.onUpdate}`),k.push(we+";")}if(m==="mysql"||m==="mariadb"){const $=D||{comment:"",engine:"",charset:""};if(p.comment!==$.comment&&(p.comment?k.push(`ALTER TABLE ${ie} COMMENT='${p.comment.replace(/'/g,"''")}';`):k.push(`ALTER TABLE ${ie} COMMENT='';`)),p.engine&&p.engine!==$.engine&&k.push(`ALTER TABLE ${ie} ENGINE=${p.engine};`),p.charset&&p.charset!==$.charset){let we=`ALTER TABLE ${ie} CONVERT TO CHARACTER SET ${p.charset}`;p.collation&&(we+=` COLLATE ${p.collation}`),k.push(we+";")}}return k.length>0?k.join(` + +`):"-- 没有需要执行的修改"}},[t,L,H,A,C,p,D,E,T]),ge=async()=>{if(!L){B("请输入表名");return}if(H.filter(F=>!F._isDeleted&&F.name).length===0){B("请至少添加一个字段");return}Se(!0),B("");try{const F=await a(Ce);if(!F.success)B(F.message);else if(t==="edit"&&i)try{const q=await i();if(q){const _e=q.columns.map(Re=>({...Re,id:crypto.randomUUID(),_original:{...Re,id:crypto.randomUUID()}})),k=q.indexes.map(Re=>({...Re,id:crypto.randomUUID(),_original:{...Re,id:crypto.randomUUID()}})),ie=q.foreignKeys.map(Re=>({...Re,id:crypto.randomUUID(),_original:{...Re,id:crypto.randomUUID()}}));c(_e),I(k),M(ie),q.options&&(P(q.options),Z(q.options))}}catch{}else l()}catch(F){B(F.message||"保存失败")}finally{Se(!1)}};if(!e)return null;const je=H.filter(m=>!m._isDeleted),Be=A.filter(m=>!m._isDeleted),Ze=C.filter(m=>!m._isDeleted),fe=[{id:"columns",label:"字段",icon:bu,count:je.length},{id:"indexes",label:"索引",icon:Gt,count:Be.length},{id:"foreignKeys",label:"外键",icon:wu,count:Ze.length},{id:"options",label:"选项",icon:uo},{id:"sql",label:"SQL 预览",icon:qs}];return s.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/40",children:s.jsxs("div",{className:"bg-white border border-border-default w-[1100px] h-[700px] flex flex-col shadow-modal rounded-xl animate-fade-in",children:[s.jsxs("div",{className:"flex items-center justify-between px-5 py-3.5 border-b border-border-default bg-white flex-shrink-0 rounded-t-xl",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"w-8 h-8 rounded-lg bg-teal-50 flex items-center justify-center",children:s.jsx(zn,{size:18,className:"text-teal-500"})}),s.jsxs("span",{className:"font-semibold text-text-primary",children:[t==="create"?"新建表":"编辑表"," - ",E]}),t==="edit"&&n&&s.jsxs("span",{className:"text-text-secondary font-normal",children:["(",n,")"]})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs("button",{onClick:ge,disabled:xe,className:`flex items-center gap-1.5 px-3 py-1.5 text-sm bg-primary-500 hover:bg-primary-600 text-white rounded-lg\r + disabled:opacity-50 transition-colors`,children:[s.jsx(GS,{size:14}),xe?"保存中...":"保存"]}),s.jsx("button",{onClick:l,className:"p-2 hover:bg-light-hover rounded-lg transition-colors text-text-secondary hover:text-text-primary",children:s.jsx(tE,{size:18})})]})]}),s.jsxs("div",{className:"border-b border-border-default bg-white/50 flex-shrink-0",children:[s.jsxs("div",{className:"flex items-center gap-6 px-4 py-2 border-b border-border-default/50",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"text-sm text-text-secondary w-12",children:"表名:"}),s.jsx("input",{type:"text",value:L,onChange:m=>_(m.target.value),placeholder:"输入表名",disabled:t==="edit",className:`w-48 h-8 px-3 bg-white border border-border-default text-sm rounded-lg text-text-primary\r + focus:border-primary-500 focus:outline-none transition-colors\r + disabled:opacity-60 disabled:cursor-not-allowed`})]}),s.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[s.jsx("span",{className:"text-sm text-text-secondary w-12",children:"注释:"}),s.jsx("input",{type:"text",value:p.comment,onChange:m=>P({...p,comment:m.target.value}),placeholder:"表注释",className:`flex-1 max-w-md h-8 px-3 bg-white border border-border-default text-sm rounded-lg text-text-primary\r + focus:border-primary-500 focus:outline-none transition-colors`})]})]}),s.jsx("div",{className:"flex px-5",children:fe.map(m=>s.jsxs("button",{onClick:()=>O(m.id),className:`flex items-center gap-2 px-4 py-2.5 text-sm border-b-2 transition-colors font-medium + ${R===m.id?"border-primary-500 text-primary-600":"border-transparent text-text-secondary hover:text-text-primary"}`,children:[s.jsx(m.icon,{size:15}),m.label,"count"in m&&m.count!==void 0&&s.jsx("span",{className:`ml-1 text-xs px-1.5 py-0.5 rounded-full ${R===m.id?"bg-primary-100 text-primary-600":"bg-light-muted text-text-secondary"}`,children:m.count})]},m.id))})]}),he&&s.jsx("div",{className:"px-4 py-2 bg-danger-500/20 border-b border-danger-500/30 text-sm text-danger-500 flex-shrink-0",children:he}),s.jsx("div",{className:"flex-1 overflow-hidden bg-light-bg",children:Y?s.jsx("div",{className:"flex items-center justify-center h-full text-text-secondary",children:"加载中..."}):s.jsxs(s.Fragment,{children:[R==="columns"&&s.jsx(i_,{columns:je,dataTypes:ye,dbType:T,selectedId:j,onSelect:ee,onAdd:se,onRemove:We,onUpdate:Xe,onMove:W,needsLength:me,needsDecimals:De,supportsUnsigned:Ne}),R==="indexes"&&s.jsx(A_,{indexes:Be,columns:je,selectedId:b,onSelect:U,onAdd:Qe,onRemove:Te,onUpdate:Ye,dbType:T}),R==="foreignKeys"&&s.jsx(S_,{foreignKeys:Ze,columns:je,selectedId:J,onSelect:Ee,onAdd:Oe,onRemove:pe,onUpdate:y,onGetDatabases:o,onGetTables:S,onGetColumns:N,currentDatabase:E}),R==="options"&&s.jsx(N_,{options:p,dbType:T,onChange:P}),R==="sql"&&s.jsx(I_,{sql:Ce})]})})]})})}function i_({columns:e,dataTypes:t,dbType:E,selectedId:n,onSelect:r,onAdd:T,onRemove:l,onUpdate:a,onMove:i,needsLength:o,needsDecimals:S,supportsUnsigned:N}){const R=E.toLowerCase()==="mysql"||E.toLowerCase()==="mariadb",[O,L]=u.useState(null),[_,H]=u.useState(null),c=(C,M)=>{L(M),C.dataTransfer.effectAllowed="move"},A=(C,M)=>{C.preventDefault(),O!==null&&O!==M&&H(M)},I=()=>{if(O!==null&&_!==null&&O!==_)if(__;C--)i(C,"up");else for(let C=O;C<_;C++)i(C,"down");L(null),H(null)};return s.jsxs("div",{className:"h-full flex flex-col",children:[s.jsx("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-border-default bg-white/30 flex-shrink-0",children:s.jsxs("button",{onClick:T,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-success-500 hover:bg-success-600 text-white rounded-lg transition-colors",children:[s.jsx(In,{size:14}),"添加字段"]})}),s.jsx("div",{className:"flex-1 overflow-auto",children:s.jsxs("table",{className:"w-full text-sm",children:[s.jsx("thead",{className:"bg-white sticky top-0",children:s.jsxs("tr",{className:"border-b border-border-default text-text-primary",children:[s.jsx("th",{className:"w-8 px-1 py-2"}),s.jsx("th",{className:"w-36 px-3 py-2 text-left font-medium",children:"名称"}),s.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"类型"}),s.jsx("th",{className:"w-16 px-3 py-2 text-left font-medium",children:"长度"}),s.jsx("th",{className:"w-16 px-3 py-2 text-left font-medium",children:"小数点"}),s.jsx("th",{className:"w-16 px-3 py-2 text-center font-medium",children:"不是 null"}),R&&s.jsx("th",{className:"w-16 px-3 py-2 text-center font-medium",children:"无符号"}),s.jsx("th",{className:"w-14 px-3 py-2 text-center font-medium",children:"键"}),s.jsx("th",{className:"w-36 px-3 py-2 text-left font-medium",children:"默认值"}),s.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"注释"}),s.jsx("th",{className:"w-12 px-2 py-2 text-center font-medium",children:"操作"})]})}),s.jsx("tbody",{children:e.map((C,M)=>s.jsxs("tr",{onDragOver:p=>A(p,M),onClick:()=>r(C.id),className:`border-b border-border-default/50 cursor-pointer transition-colors + ${n===C.id?"bg-primary-500/20":"hover:bg-light-hover/50"} + ${C._isNew?"bg-success-50":""} + ${_===M?"border-t-2 border-t-primary-500":""}`,children:[s.jsx("td",{draggable:!0,onDragStart:p=>c(p,M),onDragEnd:I,className:"px-1 py-1.5 text-center cursor-grab active:cursor-grabbing",children:s.jsx(Fu,{size:14,className:"text-text-secondary mx-auto"})}),s.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:s.jsx("input",{type:"text",value:C.name,onChange:p=>a(C.id,"name",p.target.value),onFocus:()=>r(C.id),placeholder:"字段名",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-border-default \r + focus:border-primary-500 focus:bg-white focus:outline-none text-xs text-text-primary\r + selection:bg-primary-500 selection:text-white`})}),s.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:s.jsx("select",{value:C.type,onChange:p=>a(C.id,"type",p.target.value),onFocus:()=>r(C.id),className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-border-default \r + focus:border-primary-500 focus:bg-white focus:outline-none text-xs text-text-primary`,children:t.map(p=>s.jsx("optgroup",{label:p.group,children:p.types.map(P=>s.jsx("option",{value:P,children:P},P))},p.group))})}),s.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:s.jsx("input",{type:"text",value:C.length,onChange:p=>a(C.id,"length",p.target.value),onFocus:()=>r(C.id),disabled:!o(C.type),placeholder:o(C.type)?"":"-",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-border-default \r + focus:border-primary-500 focus:bg-white focus:outline-none text-xs text-text-primary\r + disabled:opacity-40 disabled:cursor-not-allowed selection:bg-primary-500 selection:text-white`})}),s.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:s.jsx("input",{type:"text",value:C.decimals,onChange:p=>a(C.id,"decimals",p.target.value),onFocus:()=>r(C.id),disabled:!S(C.type),placeholder:S(C.type)?"":"-",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-border-default \r + focus:border-primary-500 focus:bg-white focus:outline-none text-xs text-text-primary\r + disabled:opacity-40 disabled:cursor-not-allowed selection:bg-primary-500 selection:text-white`})}),s.jsx("td",{className:"px-3 py-1.5 text-center",onClick:p=>p.stopPropagation(),children:s.jsx("input",{type:"checkbox",checked:!C.nullable,onChange:p=>{r(C.id),a(C.id,"nullable",!p.target.checked)},disabled:C.primaryKey,className:"w-4 h-4 accent-blue-500 disabled:opacity-50"})}),R&&s.jsx("td",{className:"px-3 py-1.5 text-center",onClick:p=>p.stopPropagation(),children:s.jsx("input",{type:"checkbox",checked:C.unsigned,onChange:p=>{r(C.id),a(C.id,"unsigned",p.target.checked)},disabled:!N(C.type),className:"w-4 h-4 accent-blue-500 disabled:opacity-50"})}),s.jsxs("td",{className:"px-3 py-1.5 text-center",onClick:p=>p.stopPropagation(),children:[s.jsx("button",{onClick:()=>{r(C.id),a(C.id,"primaryKey",!C.primaryKey)},className:`p-1.5 rounded transition-colors ${C.primaryKey?"bg-warning-500 text-white":"text-text-muted hover:bg-light-hover hover:text-warning-500"}`,title:C.primaryKey?"主键":"设为主键",children:s.jsx(OT,{size:14})}),C.autoIncrement&&s.jsx("span",{className:"ml-1 text-xs text-primary-500",title:"自增",children:"A"})]}),s.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:s.jsx("input",{type:"text",value:C.defaultValue,onChange:p=>a(C.id,"defaultValue",p.target.value),onFocus:()=>r(C.id),placeholder:"",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-border-default \r + focus:border-primary-500 focus:bg-white focus:outline-none text-xs text-text-primary\r + selection:bg-primary-500 selection:text-white`})}),s.jsx("td",{className:"px-3 py-1.5",onClick:p=>p.stopPropagation(),children:s.jsx("input",{type:"text",value:C.comment,onChange:p=>a(C.id,"comment",p.target.value),onFocus:()=>r(C.id),placeholder:"",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-border-default \r + focus:border-primary-500 focus:bg-white focus:outline-none text-xs text-text-primary\r + selection:bg-primary-500 selection:text-white`})}),s.jsx("td",{className:"px-2 py-1.5 text-center",onClick:p=>p.stopPropagation(),children:s.jsx("button",{onClick:()=>{r(C.id),e.length>1&&l(C.id)},disabled:e.length<=1,className:`p-1 text-text-secondary hover:text-danger-500 hover:bg-danger-500/10 rounded transition-colors\r + disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:text-text-secondary disabled:hover:bg-transparent`,title:"删除字段",children:s.jsx(IE,{size:14})})})]},C.id))})]})}),n&&s.jsx(R_,{column:e.find(C=>C.id===n),onUpdate:(C,M)=>a(n,C,M),isMysql:R})]})}function R_({column:e,onUpdate:t,isMysql:E}){return s.jsx("div",{className:"border-t border-border-default bg-white px-5 py-3.5 flex-shrink-0",children:s.jsxs("div",{className:"grid grid-cols-4 gap-4 text-sm",children:[s.jsxs("label",{className:"flex items-center gap-2 text-text-primary cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:e.autoIncrement,onChange:n=>t("autoIncrement",n.target.checked),className:"w-4 h-4 accent-blue-500 rounded"}),s.jsx("span",{children:"自动递增"})]}),E&&s.jsxs(s.Fragment,{children:[s.jsxs("label",{className:"flex items-center gap-2 text-text-primary cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:e.zerofill,onChange:n=>t("zerofill",n.target.checked),className:"w-4 h-4 accent-blue-500 rounded"}),s.jsx("span",{children:"填充零"})]}),s.jsxs("label",{className:"flex items-center gap-2 text-text-primary cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:e.isVirtual,onChange:n=>t("isVirtual",n.target.checked),className:"w-4 h-4 accent-blue-500 rounded"}),s.jsx("span",{children:"虚拟"})]})]})]})})}function A_({indexes:e,columns:t,selectedId:E,onSelect:n,onAdd:r,onRemove:T,onUpdate:l,dbType:a}){const i=a.toLowerCase()==="mysql"||a.toLowerCase()==="mariadb",o=t.filter(R=>R.name).map(R=>({label:R.name,value:R.name})),S=[{label:"NORMAL",value:"NORMAL"},{label:"UNIQUE",value:"UNIQUE"},...i?[{label:"FULLTEXT",value:"FULLTEXT"},{label:"SPATIAL",value:"SPATIAL"}]:[]],N=[{label:"BTREE",value:"BTREE"},{label:"HASH",value:"HASH"}];return s.jsxs("div",{className:"h-full flex flex-col",children:[s.jsx("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-border-default bg-white/30 flex-shrink-0",children:s.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-success-500 hover:bg-success-600 text-white rounded-lg transition-colors",children:[s.jsx(In,{size:14}),"添加索引"]})}),s.jsxs("div",{className:"flex-1 overflow-auto",children:[s.jsxs("table",{className:"w-full text-sm",children:[s.jsx("thead",{className:"bg-white sticky top-0",children:s.jsxs("tr",{className:"border-b border-border-default text-text-primary",children:[s.jsx("th",{className:"w-40 px-3 py-2 text-left font-medium",children:"名称"}),s.jsx("th",{className:"w-64 px-3 py-2 text-left font-medium",children:"字段"}),s.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"索引类型"}),i&&s.jsx("th",{className:"w-24 px-3 py-2 text-left font-medium",children:"索引方法"}),s.jsx("th",{className:"px-3 py-2 text-left font-medium",children:"注释"}),s.jsx("th",{className:"w-16 px-3 py-2 text-center font-medium",children:"操作"})]})}),s.jsx("tbody",{children:e.map(R=>s.jsxs("tr",{onClick:()=>n(R.id),className:`border-b border-border-default/50 cursor-pointer transition-colors + ${E===R.id?"bg-primary-500/20":"hover:bg-light-hover/50"} + ${R._isNew?"bg-success-50":""}`,children:[s.jsx("td",{className:"px-3 py-1.5",children:s.jsx("input",{type:"text",value:R.name,onChange:O=>l(R.id,"name",O.target.value),onClick:O=>O.stopPropagation(),placeholder:"索引名",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-border-default \r + focus:border-primary-500 focus:bg-white focus:outline-none text-xs text-text-primary`})}),s.jsx("td",{className:"px-3 py-1.5",onClick:O=>O.stopPropagation(),children:s.jsx(T_,{values:R.columns,options:o,onChange:O=>l(R.id,"columns",O),placeholder:"选择字段..."})}),s.jsx("td",{className:"px-3 py-1.5",onClick:O=>O.stopPropagation(),children:s.jsx(Vt,{value:R.type,options:S,onChange:O=>l(R.id,"type",O),placeholder:"索引类型"})}),i&&s.jsx("td",{className:"px-3 py-1.5",onClick:O=>O.stopPropagation(),children:s.jsx(Vt,{value:R.method,options:N,onChange:O=>l(R.id,"method",O),placeholder:"索引方法"})}),s.jsx("td",{className:"px-3 py-1.5",children:s.jsx("input",{type:"text",value:R.comment,onChange:O=>l(R.id,"comment",O.target.value),onClick:O=>O.stopPropagation(),placeholder:"",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-border-default \r + focus:border-primary-500 focus:bg-white focus:outline-none text-xs text-text-primary`})}),s.jsx("td",{className:"px-3 py-1.5 text-center",children:s.jsx("button",{onClick:O=>{O.stopPropagation(),T(R.id)},className:"p-1 text-text-secondary hover:text-danger-500 hover:bg-danger-500/10 rounded transition-colors",title:"删除索引",children:s.jsx(IE,{size:14})})})]},R.id))})]}),e.length===0&&s.jsx("div",{className:"text-center py-8 text-text-secondary text-sm",children:'暂无索引,点击"添加索引"创建'})]})]})}function S_({foreignKeys:e,columns:t,selectedId:E,onSelect:n,onAdd:r,onRemove:T,onUpdate:l,onGetDatabases:a,onGetTables:i,onGetColumns:o,currentDatabase:S}){const[N,R]=u.useState([S]),[O,L]=u.useState({}),[_,H]=u.useState({});u.useEffect(()=>{a&&a().then(P=>R(P))},[]),u.useEffect(()=>{e.forEach(P=>{if(!O[P.id]&&i){const D=P.refSchema||S;i(D).then(Z=>{L(Y=>({...Y,[P.id]:Z}))})}})},[e.length,S]);const c=async(P,D)=>{if(!i)return;const Z=await i(D);L(Y=>({...Y,[P]:Z}))},A=async(P,D,Z)=>{if(!o)return;const Y=await o(D,Z);H(ne=>({...ne,[P]:Y}))},I=["CASCADE","SET NULL","NO ACTION","RESTRICT","SET DEFAULT"],C=t.filter(P=>P.name).map(P=>({label:P.name,value:P.name})),M=N.map(P=>({label:P,value:P})),p=I.map(P=>({label:P,value:P}));return s.jsxs("div",{className:"h-full flex flex-col",children:[s.jsx("div",{className:"flex items-center gap-2 px-4 py-2 border-b border-border-default bg-white/30 flex-shrink-0",children:s.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs bg-success-500 hover:bg-success-600 text-white rounded-lg transition-colors",children:[s.jsx(In,{size:14}),"添加外键"]})}),s.jsxs("div",{className:"flex-1 overflow-auto",children:[s.jsxs("table",{className:"w-full text-sm",children:[s.jsx("thead",{className:"bg-white sticky top-0",children:s.jsxs("tr",{className:"border-b border-border-default text-text-primary",children:[s.jsx("th",{className:"w-36 px-3 py-2 text-left font-medium",children:"名称"}),s.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"字段"}),s.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"被引用的数据库"}),s.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"被引用的表"}),s.jsx("th",{className:"w-28 px-3 py-2 text-left font-medium",children:"被引用的字段"}),s.jsx("th",{className:"w-24 px-3 py-2 text-left font-medium",children:"删除时"}),s.jsx("th",{className:"w-24 px-3 py-2 text-left font-medium",children:"更新时"}),s.jsx("th",{className:"w-16 px-3 py-2 text-center font-medium",children:"操作"})]})}),s.jsx("tbody",{children:e.map(P=>s.jsxs("tr",{onClick:()=>n(P.id),className:`border-b border-border-default/50 cursor-pointer transition-colors + ${E===P.id?"bg-primary-500/20":"hover:bg-light-hover/50"} + ${P._isNew?"bg-success-50":""}`,children:[s.jsx("td",{className:"px-3 py-1.5",children:s.jsx("input",{type:"text",value:P.name,onChange:D=>l(P.id,"name",D.target.value),onClick:D=>D.stopPropagation(),placeholder:"外键名",className:`w-full h-7 px-2 bg-transparent border border-transparent hover:border-border-default \r + focus:border-primary-500 focus:bg-white focus:outline-none text-xs text-text-primary`})}),s.jsx("td",{className:"px-3 py-1.5",onClick:D=>D.stopPropagation(),children:s.jsx(Vt,{value:P.columns[0]||"",options:C,onChange:D=>l(P.id,"columns",[D]),placeholder:"选择字段"})}),s.jsx("td",{className:"px-3 py-1.5",onClick:D=>D.stopPropagation(),children:s.jsx(Vt,{value:P.refSchema||S,options:M,onChange:D=>{l(P.id,{refSchema:D,refTable:"",refColumns:[]}),c(P.id,D)},placeholder:"选择数据库"})}),s.jsx("td",{className:"px-3 py-1.5",onClick:D=>D.stopPropagation(),children:s.jsx(Vt,{value:P.refTable,options:(O[P.id]||[]).map(D=>({label:D,value:D})),onChange:D=>{l(P.id,"refTable",D),A(P.id,P.refSchema||S,D)},placeholder:O[P.id]?"选择表":"请先选择数据库",disabled:!O[P.id]})}),s.jsx("td",{className:"px-3 py-1.5",onClick:D=>D.stopPropagation(),children:s.jsx(Vt,{value:P.refColumns[0]||"",options:(_[P.id]||[]).map(D=>({label:D,value:D})),onChange:D=>l(P.id,"refColumns",[D]),placeholder:_[P.id]?"选择字段":"请先选择表",disabled:!P.refTable||!_[P.id]})}),s.jsx("td",{className:"px-3 py-1.5",onClick:D=>D.stopPropagation(),children:s.jsx(Vt,{value:P.onDelete,options:p,onChange:D=>l(P.id,"onDelete",D)})}),s.jsx("td",{className:"px-3 py-1.5",onClick:D=>D.stopPropagation(),children:s.jsx(Vt,{value:P.onUpdate,options:p,onChange:D=>l(P.id,"onUpdate",D)})}),s.jsx("td",{className:"px-3 py-1.5 text-center",children:s.jsx("button",{onClick:D=>{D.stopPropagation(),T(P.id)},className:"p-1 text-text-secondary hover:text-danger-500 hover:bg-danger-500/10 rounded transition-colors",title:"删除外键",children:s.jsx(IE,{size:14})})})]},P.id))})]}),e.length===0&&s.jsx("div",{className:"text-center py-8 text-text-secondary text-sm",children:'暂无外键,点击"添加外键"创建'})]})]})}function N_({options:e,dbType:t,onChange:E}){const n=t.toLowerCase()==="mysql"||t.toLowerCase()==="mariadb",r=n_.map(i=>({label:i,value:i})),T=s_.map(i=>({label:i,value:i})),l=r_.map(i=>({label:i,value:i})),a=(AR[e.charset]||[]).map(i=>({label:i,value:i}));return n?s.jsx("div",{className:"p-6 space-y-5",children:s.jsxs("div",{className:"grid grid-cols-2 gap-5",children:[s.jsxs("div",{children:[s.jsx("label",{className:"block text-sm text-text-primary font-medium mb-2",children:"数据库引擎"}),s.jsx(Vt,{value:e.engine,options:r,onChange:i=>E({...e,engine:i}),placeholder:"选择引擎",className:"h-10 bg-white border border-border-default rounded-lg px-3"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"block text-sm text-text-primary font-medium mb-2",children:"行格式"}),s.jsx(Vt,{value:e.rowFormat,options:T,onChange:i=>E({...e,rowFormat:i}),placeholder:"选择行格式",className:"h-10 bg-white border border-border-default rounded-lg px-3"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"block text-sm text-text-primary font-medium mb-2",children:"字符集"}),s.jsx(Vt,{value:e.charset,options:l,onChange:i=>{const o=AR[i]||[];E({...e,charset:i,collation:o[0]||""})},placeholder:"选择字符集",className:"h-10 bg-white border border-border-default rounded-lg px-3"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"block text-sm text-text-primary font-medium mb-2",children:"排序规则"}),s.jsx(Vt,{value:e.collation,options:a,onChange:i=>E({...e,collation:i}),placeholder:"选择排序规则",className:"h-10 bg-white border border-border-default rounded-lg px-3"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"block text-sm text-text-primary font-medium mb-2",children:"自增值"}),s.jsx("input",{type:"text",value:e.autoIncrement,onChange:i=>E({...e,autoIncrement:i.target.value}),placeholder:"默认",className:`w-full h-10 px-3 bg-white border border-border-default text-sm text-text-primary rounded-lg\r + focus:border-primary-500 focus:outline-none transition-colors`})]})]})}):s.jsx("div",{className:"p-4 text-text-secondary text-sm",children:"表选项仅适用于 MySQL / MariaDB"})}function I_({sql:e}){const[t,E]=u.useState(!1),n=async()=>{await navigator.clipboard.writeText(e),E(!0),setTimeout(()=>E(!1),2e3)};return s.jsxs("div",{className:"h-full flex flex-col",children:[s.jsxs("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border-default bg-white flex-shrink-0",children:[s.jsx("span",{className:"text-sm text-text-primary font-medium",children:"将要执行的 SQL 语句"}),s.jsx("button",{onClick:n,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs text-text-primary bg-white hover:bg-light-hover border border-border-default rounded-lg transition-colors",children:t?"✓ 已复制":"复制"})]}),s.jsx("div",{className:"flex-1 overflow-auto p-5 bg-slate-50",children:s.jsx("pre",{className:"text-sm font-mono text-primary-600 whitespace-pre-wrap break-all leading-relaxed",children:e})})]})}function u_({isOpen:e,title:t,label:E,placeholder:n,defaultValue:r="",confirmText:T="确定",onClose:l,onConfirm:a,icon:i,showDataOption:o,onConfirmWithData:S}){const[N,R]=u.useState(r),[O,L]=u.useState(!1);if(u.useEffect(()=>{R(r)},[r,e]),!e)return null;const _=H=>{H.preventDefault(),N.trim()&&(o&&S?S(N.trim(),O):a(N.trim()))};return s.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center animate-fade-in",children:[s.jsx("div",{className:"absolute inset-0 bg-black/20 backdrop-blur-sm",onClick:l}),s.jsxs("div",{className:"relative bg-white w-[380px] rounded-2xl shadow-modal animate-scale-in overflow-hidden",children:[s.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-border-default",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[i&&s.jsx("div",{className:"w-8 h-8 rounded-lg bg-light-elevated flex items-center justify-center",children:i}),s.jsx("span",{className:"font-semibold text-text-primary",children:t})]}),s.jsx("button",{onClick:l,className:"p-1.5 hover:bg-light-hover rounded-lg transition-colors",children:s.jsx(tE,{size:16,className:"text-text-tertiary"})})]}),s.jsxs("form",{onSubmit:_,className:"p-5 space-y-4",children:[s.jsxs("div",{children:[s.jsxs("label",{className:"block text-sm text-text-secondary mb-2 font-medium",children:[E," ",s.jsx("span",{className:"text-danger-500",children:"*"})]}),s.jsx("input",{type:"text",value:N,onChange:H=>R(H.target.value),placeholder:n,className:`w-full h-10 px-3 bg-light-surface border border-border-default rounded-lg\r + focus:border-primary-500 focus:shadow-focus text-sm transition-all`,autoFocus:!0})]}),o&&s.jsxs("label",{className:"flex items-center gap-3 cursor-pointer group",children:[s.jsx("div",{className:`w-5 h-5 rounded border-2 flex items-center justify-center transition-all + ${O?"bg-primary-500 border-primary-500":"border-border-strong group-hover:border-primary-300"}`,children:O&&s.jsx(aE,{size:12,className:"text-white"})}),s.jsx("input",{type:"checkbox",checked:O,onChange:H=>L(H.target.checked),className:"sr-only"}),s.jsx("span",{className:"text-sm text-text-secondary",children:"同时复制表数据"})]}),s.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[s.jsx("button",{type:"button",onClick:l,className:`px-4 py-2 text-sm bg-light-elevated hover:bg-light-muted border border-border-default\r + rounded-lg transition-colors text-text-secondary`,children:"取消"}),s.jsx("button",{type:"submit",disabled:!N.trim(),className:`px-4 py-2 text-sm bg-primary-500 hover:bg-primary-600 text-white\r + disabled:opacity-50 disabled:cursor-not-allowed \r + rounded-lg transition-all font-medium shadow-btn hover:shadow-btn-hover`,children:T})]})]})]})]})}function O_(){const[e,t]=u.useState([]),[E,n]=u.useState(new Set);u.useEffect(()=>{(async()=>{try{const i=await Le.loadConnections();i&&Array.isArray(i)&&t(i)}catch(i){console.error("加载连接失败:",i)}})()},[]);const r=u.useCallback(a=>{const i={...a,id:`conn-${Date.now()}`};t(o=>{const S=[...o,i];return Le.saveConnections(S),S})},[]),T=u.useCallback(a=>{t(i=>{const o=i.filter(S=>S.id!==a);return Le.saveConnections(o),o})},[]),l=u.useCallback(a=>{t(i=>{const o=i.map(S=>S.id===a.id?a:S);return Le.saveConnections(o),o})},[]);return{connections:e,setConnections:t,connectedIds:E,setConnectedIds:n,addConnection:r,deleteConnection:T,updateConnection:l}}function c_(e){const[t,E]=u.useState(new Map),[n,r]=u.useState(new Set),[T,l]=u.useState(new Set),a=u.useCallback(async i=>{l(o=>new Set(o).add(i));try{const o=await Le.getDatabases(i);console.log("获取到数据库列表:",i,o),E(S=>new Map(S).set(i,o||[])),(!o||o.length===0)&&e("info","未发现数据库或无权限访问")}catch(o){console.error("获取数据库列表失败:",o),e("error","获取数据库列表失败: "+o.message),E(S=>new Map(S).set(i,[]))}finally{l(o=>{const S=new Set(o);return S.delete(i),S})}},[e]);return{databasesMap:t,setDatabasesMap:E,loadingDbSet:n,setLoadingDbSet:r,loadingConnectionsSet:T,fetchDatabases:a}}function C_(e){const[t,E]=u.useState(new Map),[n,r]=u.useState(new Map),T=u.useCallback(async(a,i)=>{try{const o=await Le.getTables(a,i);E(S=>new Map(S).set(i,o))}catch{e("error","获取表列表失败")}},[e]),l=u.useCallback(async(a,i,o)=>{try{const S=await Le.getTableColumns(a,i,o);r(N=>new Map(N).set(o,S))}catch{}},[]);return{tablesMap:t,setTablesMap:E,columnsMap:n,setColumnsMap:r,fetchTables:T,fetchColumns:l}}function d_(){const[e,t]=u.useState([]),[E,n]=u.useState("welcome"),[r,T]=u.useState(new Set);return{tabs:e,setTabs:t,activeTab:E,setActiveTab:n,loadingTables:r,setLoadingTables:T}}function L_(e,t,E){return{runQuery:u.useCallback(async(r,T,l)=>{try{const a=await Le.executeQuery(T,l);t(i=>i.map(o=>o.id===r&&!("tableName"in o)?{...o,results:a}:o))}catch(a){E("error","查询失败:"+a.message)}},[t,E])}}function __(e,t,E){const n=u.useCallback(async()=>{try{const T=await Le.importConnections();if(T.cancelled)return;if(!T.success){E("error",T.error||"导入失败");return}T.connections&&T.connections.length>0?t(l=>{const a=new Map(l.map(R=>[R.name,R]));let i=0,o=0;for(const R of T.connections){const O=a.get(R.name);O?(a.set(R.name,{...R,id:O.id}),i++):(a.set(R.name,R),o++)}const S=Array.from(a.values());Le.saveConnections(S);const N=[];return o>0&&N.push(`新增 ${o} 个`),i>0&&N.push(`覆盖 ${i} 个`),E("success",`已从 ${T.source||"文件"} 导入连接:${N.join(",")}`),S}):E("info","文件中没有找到连接信息")}catch(T){E("error","导入失败:"+T.message)}},[t,E]),r=u.useCallback(async T=>{try{await Le.exportConnections(e,T),E("success","导出成功")}catch(l){E("error","导出失败:"+l.message)}},[e,E]);return{importConnections:n,exportConnections:r}}function f_(){const[e,t]=u.useState(null),[E,n]=u.useState(null),[r,T]=u.useState(!1),[l,a]=u.useState(null),[i,o]=u.useState(),[S,N]=u.useState(!1),[R,O]=u.useState(null),[L,_]=u.useState(!1),[H,c]=u.useState(null),[A,I]=u.useState(!1),[C,M]=u.useState(null),[p,P]=u.useState(null),[D,Z]=u.useState(null),Y=u.useCallback((f,d)=>{Z({type:f,message:d}),setTimeout(()=>Z(null),3e3)},[]),{connections:ne,setConnections:xe,connectedIds:Se,setConnectedIds:he,addConnection:B,deleteConnection:j,updateConnection:ee}=O_(),{databasesMap:b,setDatabasesMap:U,loadingDbSet:J,setLoadingDbSet:Ee,loadingConnectionsSet:ce,fetchDatabases:ye}=c_(Y),{tablesMap:me,setTablesMap:De,columnsMap:Ne,fetchTables:se,fetchColumns:We}=C_(Y),{tabs:Xe,setTabs:W,activeTab:Qe,setActiveTab:Te,loadingTables:Ke,setLoadingTables:Ye}=d_(),{runQuery:Q}=L_(Xe,W,Y),{importConnections:Oe,exportConnections:pe}=__(ne,xe,Y),y=u.useCallback(async f=>{if(!Se.has(f.id))try{const d=await Le.connect(f);if(!d.success){Y("error","连接失败:"+d.message);return}he(v=>new Set(v).add(f.id)),t(f.id),await ye(f.id),Y("success",`已连接到 ${f.name}`)}catch(d){Y("error","连接失败:"+d.message)}},[Se,he,ye,Y]),le=u.useCallback(async f=>{try{await Le.disconnect(f),he(d=>{const v=new Set(d);return v.delete(f),v}),U(d=>{const v=new Map(d);return v.delete(f),v}),W(d=>{const v=d.filter(h=>!("connectionId"in h&&h.connectionId===f));return Qe&&!v.find(h=>h.id===Qe)&&Te(v.length>0?v[0].id:"welcome"),v}),e===f&&t(null),Y("info","连接已断开")}catch(d){Y("error","断开失败:"+d.message)}},[e,Qe,he,U,W,Te,Y]),Ce=u.useCallback(async(f,d)=>{n(f),t(d),Ee(v=>new Set(v).add(f));try{await se(d,f);const v=me.get(f)||[];await Promise.all(v.map(h=>We(d,f,h.name)))}finally{Ee(v=>{const h=new Set(v);return h.delete(f),h})}},[se,We,me,Ee]),ge=u.useCallback(f=>{f!==e&&n(null),t(f)},[e]),je=u.useCallback(async(f,d,v)=>{const h=Xe.find(Me=>"tableName"in Me&&Me.tableName===v&&Me.database===d&&Me.connectionId===f);if(h){Te(h.id);return}const K=`table-${Date.now()}`,te=100,Ge={id:K,tableName:v,database:d,connectionId:f,columns:[],data:[],total:0,page:1,pageSize:te,pendingChanges:new Map,deletedRows:new Set,newRows:[]};W(Me=>[...Me,Ge]),Te(K),Ye(Me=>new Set(Me).add(K));try{const Me=await Le.getTableColumns(f,d,v),{data:Nt,total:dt}=await Le.getTableData(f,d,v,1,te);W(pE=>pE.map(qn=>qn.id===K?{...qn,columns:Me,data:Nt||[],total:dt}:qn))}catch(Me){Y("error","打开表失败:"+Me.message),W(Nt=>Nt.filter(dt=>dt.id!==K)),Te("welcome")}finally{Ye(Me=>{const Nt=new Set(Me);return Nt.delete(K),Nt})}},[Xe,W,Te,Ye,Y]),Be=u.useCallback(async(f,d)=>{const v=Xe.find(h=>h.id===f);if(!(!v||!("tableName"in v))){Ye(h=>new Set(h).add(f));try{const{data:h,total:K}=await Le.getTableData(v.connectionId,v.database,v.tableName,d,v.pageSize);W(te=>te.map(Ge=>Ge.id===f?{...Ge,data:h||[],total:K,page:d,pendingChanges:new Map,deletedRows:new Set,newRows:[]}:Ge))}catch{Y("error","加载数据失败")}finally{Ye(h=>{const K=new Set(h);return K.delete(f),K})}}},[Xe,W,Ye,Y]),Ze=u.useCallback((f,d,v,h)=>{W(K=>K.map(te=>{if(te.id!==f||!("tableName"in te))return te;const Ge=te,Me=new Map(Ge.pendingChanges),Nt=String(d),dt=Me.get(Nt)||{};dt[v]=h,Me.set(Nt,dt);const pE=[...Ge.data];return pE[d]&&(pE[d]={...pE[d],[v]:h}),{...te,data:pE,pendingChanges:Me}}))},[W]),fe=u.useCallback((f,d)=>{W(v=>v.map(h=>{if(h.id!==f||!("tableName"in h))return h;const K=h,te=new Set(K.deletedRows);return te.add(d),{...h,deletedRows:te}}))},[W]),m=u.useCallback((f,d)=>{W(v=>v.map(h=>{if(h.id!==f||!("tableName"in h))return h;const K=h,te=new Set(K.deletedRows);return d.forEach(Ge=>te.add(Ge)),{...h,deletedRows:te}}))},[W]),F=u.useCallback(async f=>{const d=Xe.find(h=>h.id===f);if(!d||!("tableName"in d))return;const v=d.columns.find(h=>h.key==="PRI")?.name||d.columns[0]?.name;if(!v){Y("error","无法确定主键");return}Ye(h=>new Set(h).add(f));try{for(const[h,K]of d.pendingChanges){const te=parseInt(h),Ge=d.data[te];if(!Ge)continue;const Me=Ge[v];await Le.updateTableRow(d.connectionId,d.database,d.tableName,v,Me,K)}for(const h of d.deletedRows){const K=d.data[h];if(!K)continue;const te=K[v];await Le.deleteTableRow(d.connectionId,d.database,d.tableName,v,te)}for(const h of d.newRows||[]){const K={};d.columns.forEach(te=>{h[te.name]!==void 0&&h[te.name]!==null&&h[te.name]!==""&&(K[te.name]=h[te.name])}),Object.keys(K).length>0&&await Le.insertTableRow(d.connectionId,d.database,d.tableName,K)}Y("success","保存成功"),await Be(f,d.page)}catch(h){Y("error","保存失败:"+h.message)}finally{Ye(h=>{const K=new Set(h);return K.delete(f),K})}},[Xe,Be,Ye,Y]),q=u.useCallback(f=>{W(d=>d.map(v=>v.id===f?{...v,pendingChanges:new Map,deletedRows:new Set,newRows:[]}:v))},[W]),_e=u.useCallback(async f=>{const d=Xe.find(v=>v.id===f);!d||!("tableName"in d)||await Be(f,d.page)},[Xe,Be]),k=u.useCallback(f=>{W(d=>d.map(v=>{if(v.id!==f||!("tableName"in v))return v;const h=v,K={};return h.columns.forEach(te=>{K[te.name]=null}),{...v,newRows:[...h.newRows||[],K]}}))},[W]),ie=u.useCallback((f,d,v,h)=>{W(K=>K.map(te=>{if(te.id!==f||!("tableName"in te))return te;const Me=[...te.newRows||[]];return Me[d]&&(Me[d]={...Me[d],[v]:h}),{...te,newRows:Me}}))},[W]),Re=u.useCallback((f,d)=>{W(v=>v.map(h=>{if(h.id!==f||!("tableName"in h))return h;const te=[...h.newRows||[]];return te.splice(d,1),{...h,newRows:te}}))},[W]),Et=u.useCallback(()=>{const f={id:`query-${Date.now()}`,title:`查询 ${Xe.filter(d=>!("tableName"in d)).length+1}`,sql:"",connectionId:e||void 0,results:null};W(d=>[...d,f]),Te(f.id)},[Xe,W,Te,e]),KE=u.useCallback(async(f,d)=>{if(!e){Y("error","请先连接数据库");return}await Q(f,e,d)},[e,Q,Y]),fE=u.useCallback((f,d)=>{W(v=>v.map(h=>h.id===f?{...h,sql:d}:h))},[W]),oe=u.useCallback((f,d)=>{W(v=>v.map(h=>h.id===f?{...h,title:d}:h))},[W]),qe=u.useCallback(f=>{W(d=>{const v=d.filter(h=>h.id!==f);return Qe===f&&Te(v.length>0?v[v.length-1].id:"welcome"),v})},[Qe,W,Te]),Yt=u.useCallback(f=>{Te(f)},[Te]),$=u.useCallback(async(f,d)=>{W(v=>v.map(h=>h.id===f?{...h,pageSize:d}:h)),await Be(f,1)},[W,Be]),we=u.useCallback(f=>{o(f),a(null),T(!0)},[]),Ut=u.useCallback(f=>{f.id?ee(f):B(f)},[B,ee]),$E=u.useCallback(async f=>{Se.has(f)&&await le(f),j(f)},[Se,le,j]),dT=u.useCallback(async f=>{for(const d of f)await $E(d)},[$E]),Zn=u.useCallback(f=>{a(f),o(void 0),T(!0)},[]),$r=u.useCallback(f=>{O(f),N(!0)},[]),LT=u.useCallback(async(f,d)=>{try{await Le.dropDatabase(f,d),Y("success",`数据库 ${d} 已删除`),await ye(f)}catch(v){Y("error","删除失败:"+v.message)}},[ye,Y]),_T=u.useCallback((f,d)=>{M({connectionId:f,database:d,mode:"create"}),I(!0)},[]),fT=u.useCallback(async(f,d,v)=>{try{await Le.dropTable(f,d,v),Y("success",`表 ${v} 已删除`),await se(f,d)}catch(h){Y("error","删除失败:"+h.message)}},[se,Y]),Jr=u.useCallback(async(f,d,v)=>{try{await Le.truncateTable(f,d,v),Y("success",`表 ${v} 已清空`)}catch(h){Y("error","清空失败:"+h.message)}},[Y]),G=u.useCallback((f,d,v)=>{P({isOpen:!0,title:"重命名表",label:"新表名",defaultValue:v,onConfirm:async h=>{if(h&&h!==v)try{await Le.renameTable(f,d,v,h),Y("success",`表已重命名为 ${h}`),await se(f,d)}catch(K){Y("error","重命名失败:"+K.message)}P(null)}})},[se,Y]),g=u.useCallback((f,d,v)=>{P({isOpen:!0,title:"复制表",label:"新表名",defaultValue:`${v}_copy`,onConfirm:async h=>{if(h)try{await Le.duplicateTable(f,d,v,h),Y("success",`表已复制为 ${h}`),await se(f,d)}catch(K){Y("error","复制失败:"+K.message)}P(null)}})},[se,Y]),X=u.useCallback(async(f,d)=>{await se(f,d),Y("success","已刷新")},[se,Y]),Ie=u.useCallback((f,d,v)=>{M({connectionId:f,database:d,tableName:v,mode:"edit"}),I(!0)},[]);return u.useEffect(()=>{const f=d=>{d.ctrlKey&&d.key==="q"&&(d.preventDefault(),Et())};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[Et]),s.jsxs("div",{className:"h-screen flex flex-col bg-white overflow-hidden font-sans",children:[s.jsx(tO,{}),s.jsxs("div",{className:"flex-1 flex min-h-0",children:[s.jsx(nO,{connections:ne,activeConnection:e,connectedIds:Se,databasesMap:b,tablesMap:me,selectedDatabase:E,loadingDbSet:J,loadingConnectionsSet:ce,onNewConnection:()=>{a(null),o(void 0),T(!0)},onSelectConnection:t,onConnect:y,onDisconnect:le,onEditConnection:Zn,onDeleteConnection:$E,onDeleteConnections:dT,onSelectDatabase:Ce,onOpenTable:je,onExportConnections:pe,onImportConnections:Oe,onCreateDatabase:$r,onDropDatabase:LT,onCreateTable:_T,onDropTable:fT,onTruncateTable:Jr,onRenameTable:G,onDuplicateTable:g,onRefreshTables:X,onDesignTable:Ie,onFetchDatabases:ye}),s.jsx(JL,{tabs:Xe,activeTab:Qe,activeConnection:e,selectedDatabase:E,connections:ne,connectedIds:Se,databasesMap:b,databases:b.get(e||"")||[],tables:me.get(E||"")||[],columns:Ne,onTabChange:Yt,onCloseTab:qe,onNewQuery:Et,onRunQuery:KE,onUpdateSql:fE,onUpdateTabTitle:oe,onLoadTablePage:Be,onChangeTablePageSize:$,onNewConnectionWithType:we,onUpdateTableCell:Ze,onDeleteTableRow:fe,onDeleteTableRows:m,onSaveTableChanges:F,onDiscardTableChanges:q,onRefreshTable:_e,onAddTableRow:k,onUpdateNewRow:ie,onDeleteNewRow:Re,onSelectConnection:ge,onSelectDatabase:Ce,loadingTables:Ke})]}),s.jsxs("div",{className:"h-6 bg-light-surface flex items-center px-3 text-xs border-t border-border-default text-text-tertiary",children:[s.jsx("span",{className:`w-2 h-2 rounded-full mr-2 ${Se.size>0?"bg-success-500":"bg-text-disabled"}`}),s.jsx("span",{children:Se.size>0?`${Se.size} 个连接`:"未连接"}),s.jsxs("span",{className:"ml-auto font-mono text-text-muted",children:["EasySQL v","2.0.1"]})]}),D&&s.jsxs("div",{className:`fixed bottom-12 right-4 px-4 py-3 rounded-xl shadow-lg flex items-center gap-2 animate-slide-up z-50 + ${D.type==="success"?"bg-white text-success-600 border border-success-200":D.type==="error"?"bg-white text-danger-600 border border-danger-200":"bg-white text-primary-600 border border-primary-200"}`,children:[D.type==="success"&&s.jsx(yu,{size:16}),D.type==="error"&&s.jsx(Qu,{size:16}),D.type==="info"&&s.jsx(MS,{size:16}),s.jsx("span",{className:"text-sm",children:D.message})]}),s.jsx(qL,{isOpen:r,editingConnection:l,initialType:i,onClose:()=>{T(!1),a(null),o(void 0)},onSave:Ut}),s.jsx(e_,{isOpen:S,connectionId:R,onClose:()=>{N(!1),O(null)},onCreated:async()=>{R&&await ye(R)}}),s.jsx(E_,{isOpen:L,connectionId:H?.connectionId||null,database:H?.database||null,onClose:()=>{_(!1),c(null)},onCreated:async()=>{H&&await se(H.connectionId,H.database)}}),A&&C&&s.jsx(o_,{isOpen:A,mode:C.mode,database:C.database,tableName:C.tableName,connectionId:C.connectionId,dbType:ne.find(f=>f.id===C.connectionId)?.type||"mysql",onClose:()=>{I(!1),M(null)},onSave:async f=>{try{return await Le.executeQuery(C.connectionId,f),await se(C.connectionId,C.database),Y("success",C.mode==="create"?"表创建成功":"表结构已更新"),{success:!0,message:""}}catch(d){return{success:!1,message:d.message||"操作失败"}}},onGetTableInfo:C.mode==="edit"?async()=>({columns:(await Le.getTableColumns(C.connectionId,C.database,C.tableName)).map((d,v)=>({id:`col-${v}`,name:d.name,type:d.type.split("(")[0].toUpperCase(),length:d.type.match(/\((\d+)/)?.[1]||"",decimals:d.type.match(/,(\d+)\)/)?.[1]||"",nullable:d.nullable,primaryKey:d.key==="PRI",autoIncrement:d.extra?.includes("auto_increment")||!1,unsigned:d.type.includes("unsigned"),zerofill:d.type.includes("zerofill"),defaultValue:d.default||"",comment:d.comment||"",isVirtual:!1,virtualExpression:""})),indexes:[],foreignKeys:[],options:{engine:"InnoDB",charset:"utf8mb4",collation:"utf8mb4_general_ci",comment:"",autoIncrement:"",rowFormat:""}}):void 0,onGetDatabases:async()=>b.get(C.connectionId)||[],onGetTables:async f=>{const d=me.get(f);if(d&&d.length>0)return d.map(v=>v.name);try{const v=await Le.getTables(C.connectionId,f);return De(h=>new Map(h).set(f,v)),v.map(h=>h.name||h)}catch(v){return console.error("Failed to load tables:",v),[]}},onGetColumns:async(f,d)=>(await Le.getTableColumns(C.connectionId,f,d)).map(h=>h.name)}),p&&s.jsx(u_,{isOpen:p.isOpen,title:p.title,label:p.label,defaultValue:p.defaultValue,onClose:()=>P(null),onConfirm:p.onConfirm})]})}fl.createRoot(document.getElementById("root")).render(s.jsx(IN.StrictMode,{children:s.jsx(f_,{})}));export{IN as W,TO as _,s as j,u as r}; diff --git a/dist/assets/index-aDAlVgxj.css b/dist/assets/index-aDAlVgxj.css deleted file mode 100644 index 22a68b3..0000000 --- a/dist/assets/index-aDAlVgxj.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Segoe UI,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Cascadia Code,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-1\/4{bottom:25%}.left-0{left:0}.left-1\/4{left:25%}.left-3{left:.75rem}.right-0{right:0}.right-1\/4{right:25%}.right-2{right:.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-full{top:100%}.-z-10{z-index:-10}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-span-3{grid-column:span 3 / span 3}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.block{display:block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-24{height:6rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[700px\]{height:700px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-48{max-height:12rem}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0px}.min-h-\[28px\]{min-height:28px}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-96{width:24rem}.w-\[1100px\]{width:1100px}.w-\[380px\]{width:380px}.w-\[420px\]{width:420px}.w-\[560px\]{width:560px}.w-\[800px\]{width:800px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[150px\]{min-width:150px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[70px\]{min-width:70px}.max-w-\[120px\]{max-width:120px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slideUp .25s cubic-bezier(.4,0,.2,1)}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-sm{border-radius:.125rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-accent-blue{--tw-border-opacity: 1;border-color:rgb(0 120 212 / var(--tw-border-opacity, 1))}.border-accent-green{--tw-border-opacity: 1;border-color:rgb(15 123 15 / var(--tw-border-opacity, 1))}.border-accent-red{--tw-border-opacity: 1;border-color:rgb(196 43 28 / var(--tw-border-opacity, 1))}.border-accent-red\/30{border-color:#c42b1c4d}.border-metro-border{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity, 1))}.border-metro-border\/30{border-color:#4040404d}.border-metro-border\/50{border-color:#40404080}.border-text-tertiary{border-color:#ffffff80}.border-transparent{border-color:transparent}.border-t-accent-blue{--tw-border-opacity: 1;border-top-color:rgb(0 120 212 / var(--tw-border-opacity, 1))}.bg-\[\#00ff00\]{--tw-bg-opacity: 1;background-color:rgb(0 255 0 / var(--tw-bg-opacity, 1))}.bg-accent-blue{--tw-bg-opacity: 1;background-color:rgb(0 120 212 / var(--tw-bg-opacity, 1))}.bg-accent-blue\/10{background-color:#0078d41a}.bg-accent-blue\/20{background-color:#0078d433}.bg-accent-blue\/5{background-color:#0078d40d}.bg-accent-green{--tw-bg-opacity: 1;background-color:rgb(15 123 15 / var(--tw-bg-opacity, 1))}.bg-accent-green\/10{background-color:#0f7b0f1a}.bg-accent-green\/20{background-color:#0f7b0f33}.bg-accent-orange{--tw-bg-opacity: 1;background-color:rgb(247 99 12 / var(--tw-bg-opacity, 1))}.bg-accent-orange\/10{background-color:#f7630c1a}.bg-accent-purple\/5{background-color:#886ce40d}.bg-accent-red\/20{background-color:#c42b1c33}.bg-black\/60{background-color:#0009}.bg-black\/70{background-color:#000000b3}.bg-current{background-color:currentColor}.bg-metro-bg{--tw-bg-opacity: 1;background-color:rgb(37 37 37 / var(--tw-bg-opacity, 1))}.bg-metro-card{--tw-bg-opacity: 1;background-color:rgb(50 50 50 / var(--tw-bg-opacity, 1))}.bg-metro-dark{--tw-bg-opacity: 1;background-color:rgb(26 26 26 / var(--tw-bg-opacity, 1))}.bg-metro-dark\/80{background-color:#1a1a1acc}.bg-metro-hover{--tw-bg-opacity: 1;background-color:rgb(58 58 58 / var(--tw-bg-opacity, 1))}.bg-metro-surface{--tw-bg-opacity: 1;background-color:rgb(45 45 45 / var(--tw-bg-opacity, 1))}.bg-metro-surface\/30{background-color:#2d2d2d4d}.bg-metro-surface\/50{background-color:#2d2d2d80}.bg-text-disabled\/40{background-color:#fff6}.bg-transparent{background-color:transparent}.bg-white\/20{background-color:#fff3}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-accent-blue\/20{--tw-gradient-from: rgb(0 120 212 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 120 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-metro-dark{--tw-gradient-from: #1a1a1a var(--tw-gradient-from-position);--tw-gradient-to: rgb(26 26 26 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-metro-dark{--tw-gradient-to: rgb(26 26 26 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1a1a1a var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/5{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .05) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-accent-blue\/5{--tw-gradient-to: rgb(0 120 212 / .05) var(--tw-gradient-to-position)}.to-metro-bg{--tw-gradient-to: #252525 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pl-9{padding-left:2.25rem}.pr-8{padding-right:2rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:Cascadia Code,Consolas,monospace}.font-sans{font-family:Segoe UI,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-\[10px\]{font-size:10px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-accent-blue{--tw-text-opacity: 1;color:rgb(0 120 212 / var(--tw-text-opacity, 1))}.text-accent-green{--tw-text-opacity: 1;color:rgb(15 123 15 / var(--tw-text-opacity, 1))}.text-accent-orange{--tw-text-opacity: 1;color:rgb(247 99 12 / var(--tw-text-opacity, 1))}.text-accent-purple{--tw-text-opacity: 1;color:rgb(136 108 228 / var(--tw-text-opacity, 1))}.text-accent-red{--tw-text-opacity: 1;color:rgb(196 43 28 / var(--tw-text-opacity, 1))}.text-accent-teal{--tw-text-opacity: 1;color:rgb(0 178 148 / var(--tw-text-opacity, 1))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-text-disabled{color:#ffffff4d}.text-text-primary{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-text-secondary{color:#ffffffb3}.text-text-tertiary{color:#ffffff80}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/20{color:#fff3}.text-white\/30{color:#ffffff4d}.text-white\/40{color:#fff6}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-white\/90{color:#ffffffe6}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-text-disabled::-moz-placeholder{color:#ffffff4d}.placeholder-text-disabled::placeholder{color:#ffffff4d}.accent-accent-blue{accent-color:#0078d4}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.shadow-\[0_0_8px_\#00ff00\,0_0_12px_\#00ff00\]{--tw-shadow: 0 0 8px #00ff00,0 0 12px #00ff00;--tw-shadow-colored: 0 0 8px var(--tw-shadow-color), 0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-metro{--tw-shadow: 0 2px 4px rgba(0, 0, 0, .2);--tw-shadow-colored: 0 2px 4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-metro-lg{--tw-shadow: 0 4px 12px rgba(0, 0, 0, .3);--tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-metro-xl{--tw-shadow: 0 8px 24px rgba(0, 0, 0, .4);--tw-shadow-colored: 0 8px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-text-tertiary{--tw-ring-color: rgba(255, 255, 255, .5)}.ring-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1))}.blur-3xl{--tw-blur: blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-md{--tw-blur: blur(12px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}*{margin:0;padding:0;box-sizing:border-box}::-moz-selection{background:#0078d4;color:#fff}::selection{background:#0078d4;color:#fff}input::-moz-selection,textarea::-moz-selection{background:#0078d4;color:#fff}input::selection,textarea::selection{background:#0078d4;color:#fff}:root{--accent-blue: #0078d4;--accent-green: #0f7b0f;--accent-red: #c42b1c;--accent-orange: #f7630c;--metro-bg: #252525;--metro-surface: #2d2d2d;--glass-blur: 12px;--transition-fast: .15s;--transition-normal: .2s}body{font-family:Segoe UI Variable,Segoe UI,system-ui,-apple-system,sans-serif;background:#1a1a1a;color:#fff;overflow:hidden;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"cv02","cv03","cv04","cv11"}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px;-webkit-transition:background .2s ease;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:#fff3}.drag{-webkit-app-region:drag}.no-drag{-webkit-app-region:no-drag}input,textarea,select{font-family:Segoe UI,system-ui,sans-serif}input:focus,textarea:focus{outline:none}.metro-btn{transition:all .15s cubic-bezier(.4,0,.2,1)}table td::selection,table td *::selection{background:transparent;color:inherit}table td::-moz-selection,table td *::-moz-selection{background:transparent;color:inherit}.metro-tile{transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),filter .2s ease;will-change:transform}.metro-tile:hover{transform:scale(1.03) translateY(-2px);box-shadow:0 8px 24px #0000004d}.metro-tile:active{transform:scale(.98)}.gradient-mask{mask-image:linear-gradient(to bottom,black 80%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 80%,transparent 100%)}.table-row{transition:background-color .1s ease}.glow-blue{box-shadow:0 0 20px #0078d44d}.card-shadow{box-shadow:0 2px 8px #0000004d}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.menu-animate{animation:menu-in .15s cubic-bezier(.4,0,.2,1)}.tab-active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:#0078d4}.focus-ring:focus{outline:2px solid #0078d4;outline-offset:-2px}.smooth{transition:all .2s cubic-bezier(.4,0,.2,1)}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px currentColor,0 0 8px currentColor}50%{box-shadow:0 0 8px currentColor,0 0 16px currentColor}}.pulse-glow{animation:pulse-glow 2s ease-in-out infinite}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .2s ease}@keyframes slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slide-up .25s cubic-bezier(.4,0,.2,1)}@keyframes expand{0%{opacity:0;max-height:0;transform:scaleY(.95)}to{opacity:1;max-height:1000px;transform:scaleY(1)}}.animate-expand{animation:expand .2s ease-out;transform-origin:top}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#fff3;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s ease,height .3s ease}.ripple:active:after{width:200%;height:200%}.highlight-gradient{background:linear-gradient(135deg,rgba(0,120,212,.1) 0%,transparent 50%)}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000040}input,textarea{transition:border-color .2s ease,box-shadow .2s ease}input:focus,textarea:focus{box-shadow:0 0 0 2px #0078d433}@keyframes skeleton-loading{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a,#ffffff0d 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite}.selected-row{background:#0078d426!important}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.contain-paint{contain:paint}.contain-layout{contain:layout}.glass{background:#2d2d2dcc;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur))}.gradient-border{position:relative}.gradient-border:before{content:"";position:absolute;inset:0;padding:1px;background:linear-gradient(135deg,#0078d480,#886ce480);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.text-gradient{background:linear-gradient(135deg,#60cdff,#886ce4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn-glow{position:relative;overflow:hidden}.btn-glow:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.btn-glow:hover:after{left:100%}.virtual-scroll-container{will-change:transform;contain:strict}.table-cell{contain:content;will-change:background-color}.navi-table-container{height:100%;display:flex;flex-direction:column;position:relative;background:#1e1e1e;outline:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.navi-scroll-container{flex:1;overflow:auto;position:relative}.navi-header{display:flex;position:sticky;top:0;z-index:20;background:#2d2d2d;border-bottom:1px solid #404040}.navi-row-number-header{position:sticky;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#2d2d2d;border-right:1px solid #404040;color:#888;font-size:11px;font-weight:500;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navi-row-number-header:hover{background:#383838}.navi-header-cell{display:flex;align-items:center;padding:0 8px;border-right:1px solid #404040;background:#2d2d2d;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .1s;flex-shrink:0}.navi-header-cell:hover{background:#383838}.navi-header-cell.pinned{background:#1e3a4a;z-index:25}.navi-header-content{display:flex;flex-direction:column;gap:2px;min-width:0}.navi-header-row{display:flex;align-items:center;gap:4px}.navi-pin-icon{color:#666;flex-shrink:0;display:flex;align-items:center}.navi-pin-icon.active{color:#4fc3f7}.navi-col-name{color:#4fc3f7;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navi-col-type{color:#888;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.navi-col-comment{color:#6a9955;font-size:10px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.navi-body{position:relative;cursor:default;contain:strict}.navi-rows-container{will-change:transform;contain:layout style}.navi-row{display:flex;border-bottom:1px solid #333;contain:layout style}.navi-row.selected{background:#264f7833}.navi-row-number{position:sticky;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#252525;border-right:1px solid #404040;color:#666;font-size:11px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0}.navi-row-number:hover{background:#2d2d2d;color:#999}.navi-row-number.selected{background:#264f78;color:#fff}.navi-cell{position:relative;display:flex;align-items:center;padding:0 8px;border-right:1px solid #333;font-family:Consolas,Monaco,Courier New,monospace;font-size:12px;overflow:hidden;flex-shrink:0;contain:strict;cursor:default}.navi-cell:hover{background:#ffffff08}.navi-value{color:#d4d4d4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.navi-null{color:#666;font-style:italic;font-size:11px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navi-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#555;font-size:13px}.navi-json{color:#ce9178;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.navi-cell-input{position:absolute;inset:0;width:100%;height:100%;padding:0 8px;margin:0;background:#1e1e1e;color:#fff;border:2px solid #007acc;outline:none;font-family:inherit;font-size:inherit;box-sizing:border-box;-moz-user-select:text;user-select:text;-webkit-user-select:text}.navi-search-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#252525;border-bottom:1px solid #404040;flex-shrink:0}.navi-search-input{flex:1;height:26px;padding:0 8px;background:#1e1e1e;color:#fff;border:1px solid #404040;border-radius:3px;font-size:12px;outline:none;transition:border-color .15s}.navi-search-input:focus{border-color:#007acc}.navi-search-input::-moz-placeholder{color:#666}.navi-search-input::placeholder{color:#666}.navi-search-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:3px;color:#999;cursor:pointer;transition:all .15s}.navi-search-btn:hover{background:#383838;color:#fff}.navi-search-btn:disabled{opacity:.3;cursor:not-allowed}.navi-context-menu{position:fixed;z-index:50;background:#252525;border:1px solid #404040;border-radius:4px;padding:4px 0;min-width:180px;box-shadow:0 4px 16px #0006;animation:menuFadeIn .15s ease}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.navi-context-info{padding:6px 12px;font-size:11px;color:#888;border-bottom:1px solid #333;margin-bottom:4px}.navi-context-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;background:transparent;border:none;color:#d4d4d4;font-size:12px;text-align:left;cursor:pointer;transition:background-color .1s}.navi-context-item:hover{background:#37373d}.navi-context-item.danger{color:#f14c4c}.navi-context-item.danger:hover{background:#f14c4c26}.navi-context-item.warning{color:#cca700}.navi-context-item.warning:hover{background:#cca70026}.navi-context-item.success{color:#4ec9b0}.navi-context-item.success:hover{background:#4ec9b026}.navi-shortcut{margin-left:auto;font-size:10px;color:#666}.navi-context-divider{height:1px;background:#333;margin:4px 0}@keyframes status-pulse{0%,to{box-shadow:0 0 4px currentColor;opacity:1}50%{box-shadow:0 0 12px currentColor;opacity:.8}}.status-indicator{animation:status-pulse 2s ease-in-out infinite}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-indeterminate:after{content:"";position:absolute;top:0;left:0;bottom:0;width:50%;background:linear-gradient(90deg,transparent,var(--accent-blue),transparent);animation:progress-indeterminate 1.5s ease-in-out infinite}.tooltip{position:relative}.tooltip:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-4px);padding:6px 12px;background:#1a1a1a;border:1px solid #404040;border-radius:4px;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s ease;z-index:100}.tooltip:hover:before{opacity:1;visibility:visible;transform:translate(-50%) translateY(-8px)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#0000001a;border-radius:5px}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:5px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#ffffff40;background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}::-moz-selection{background:#0078d466;color:#fff}::selection{background:#0078d466;color:#fff}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.loading-overlay{position:absolute;inset:0;background:#1a1a1acc;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px;text-align:center;color:#fff6}.empty-state svg{margin-bottom:16px;opacity:.3}.selection\:bg-accent-blue *::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(0 120 212 / var(--tw-bg-opacity, 1))}.selection\:bg-accent-blue *::selection{--tw-bg-opacity: 1;background-color:rgb(0 120 212 / var(--tw-bg-opacity, 1))}.selection\:text-white *::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white *::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:bg-accent-blue::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(0 120 212 / var(--tw-bg-opacity, 1))}.selection\:bg-accent-blue::selection{--tw-bg-opacity: 1;background-color:rgb(0 120 212 / var(--tw-bg-opacity, 1))}.selection\:text-white::-moz-selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.selection\:text-white::selection{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:translate-y-\[-2px\]:hover{--tw-translate-y: -2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-metro-border:hover{--tw-border-opacity: 1;border-color:rgb(64 64 64 / var(--tw-border-opacity, 1))}.hover\:border-text-tertiary:hover{border-color:#ffffff80}.hover\:border-white:hover{--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.hover\:bg-accent-blue-hover:hover{--tw-bg-opacity: 1;background-color:rgb(26 134 217 / var(--tw-bg-opacity, 1))}.hover\:bg-accent-blue\/20:hover{background-color:#0078d433}.hover\:bg-accent-green-hover:hover{--tw-bg-opacity: 1;background-color:rgb(28 154 28 / var(--tw-bg-opacity, 1))}.hover\:bg-accent-green\/80:hover{background-color:#0f7b0fcc}.hover\:bg-accent-green\/90:hover{background-color:#0f7b0fe6}.hover\:bg-accent-red:hover{--tw-bg-opacity: 1;background-color:rgb(196 43 28 / var(--tw-bg-opacity, 1))}.hover\:bg-accent-red\/10:hover{background-color:#c42b1c1a}.hover\:bg-accent-red\/30:hover{background-color:#c42b1c4d}.hover\:bg-metro-border:hover{--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity, 1))}.hover\:bg-metro-hover:hover{--tw-bg-opacity: 1;background-color:rgb(58 58 58 / var(--tw-bg-opacity, 1))}.hover\:bg-metro-hover\/50:hover{background-color:#3a3a3a80}.hover\:bg-metro-surface\/80:hover{background-color:#2d2d2dcc}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-red:hover{--tw-text-opacity: 1;color:rgb(196 43 28 / var(--tw-text-opacity, 1))}.hover\:text-text-primary:hover,.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-metro-lg:hover{--tw-shadow: 0 4px 12px rgba(0, 0, 0, .3);--tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-accent-blue:focus{--tw-border-opacity: 1;border-color:rgb(0 120 212 / var(--tw-border-opacity, 1))}.focus\:bg-metro-surface:focus{--tw-bg-opacity: 1;background-color:rgb(45 45 45 / var(--tw-bg-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-text-secondary:hover:disabled{color:#ffffffb3}.group:hover .group-hover\:visible{visibility:visible}.group:hover .group-hover\:text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-white\/90{color:#ffffffe6}.group:hover .group-hover\:opacity-100{opacity:1} diff --git a/dist/assets/javascript-BdR16FBJ.js b/dist/assets/javascript-BG95TsrZ.js similarity index 84% rename from dist/assets/javascript-BdR16FBJ.js rename to dist/assets/javascript-BG95TsrZ.js index 89f3a2f..8234601 100644 --- a/dist/assets/javascript-BdR16FBJ.js +++ b/dist/assets/javascript-BG95TsrZ.js @@ -1 +1 @@ -import{conf as t,language as e}from"./typescript-BXKot0Bh.js";import"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const r=t,n={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","static","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:e.operators,symbols:e.symbols,escapes:e.escapes,digits:e.digits,octaldigits:e.octaldigits,binarydigits:e.binarydigits,hexdigits:e.hexdigits,regexpctl:e.regexpctl,regexpesc:e.regexpesc,tokenizer:e.tokenizer};export{r as conf,n as language}; +import{conf as t,language as e}from"./typescript-DMKkacvn.js";import"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";const r=t,n={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","static","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:e.operators,symbols:e.symbols,escapes:e.escapes,digits:e.digits,octaldigits:e.octaldigits,binarydigits:e.binarydigits,hexdigits:e.hexdigits,regexpctl:e.regexpctl,regexpesc:e.regexpesc,tokenizer:e.tokenizer};export{r as conf,n as language}; diff --git a/dist/assets/jsonMode-LbyK3jmX.js b/dist/assets/jsonMode-CXTN0moy.js similarity index 98% rename from dist/assets/jsonMode-LbyK3jmX.js rename to dist/assets/jsonMode-CXTN0moy.js index 9538154..3cb1040 100644 --- a/dist/assets/jsonMode-LbyK3jmX.js +++ b/dist/assets/jsonMode-CXTN0moy.js @@ -1,4 +1,4 @@ -import{c as J,l as _,e as B}from"./SqlEditor-BZP69oik.js";import{f as P,g as Q,C as Y,H as y,b as G,d as X,F as Z,S as $,e as K}from"./lspLanguageFeatures-IVE1ZcxG.js";import{a as Oe,D as Ie,h as Le,R as Ne,c as Ee,i as Ue,j as De,t as Be,k as Re}from"./lspLanguageFeatures-IVE1ZcxG.js";import"./index-BVucCY0H.js";const x=2*60*1e3;class C{constructor(i){this._defaults=i,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>x&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=J({moduleId:"vs/language/json/jsonWorker",createWorker:()=>new Worker(new URL(""+new URL("json.worker-CUJs-dtA.js",import.meta.url).href,import.meta.url),{type:"module"}),label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...i){let t;return this._getClient().then(n=>{t=n}).then(n=>{if(this._worker)return this._worker.withSyncedResources(i)}).then(n=>t)}}function ee(e,i=!1){const t=e.length;let n=0,u="",p=0,l=16,o=0,m=0,w=0,v=0,c=0;function O(s,g){let a=0,r=0;for(;a=48&&f<=57)r=r*16+f-48;else if(f>=65&&f<=70)r=r*16+f-65+10;else if(f>=97&&f<=102)r=r*16+f-97+10;else break;n++,a++}return a=t){s+=e.substring(g,n),c=2;break}const a=e.charCodeAt(n);if(a===34){s+=e.substring(g,n),n++;break}if(a===92){if(s+=e.substring(g,n),n++,n>=t){c=2;break}switch(e.charCodeAt(n++)){case 34:s+='"';break;case 92:s+="\\";break;case 47:s+="/";break;case 98:s+="\b";break;case 102:s+="\f";break;case 110:s+=` +import{c as J,l as _,e as B}from"./SqlEditor-Da5-w0EM.js";import{f as P,g as Q,C as Y,H as y,b as G,d as X,F as Z,S as $,e as K}from"./lspLanguageFeatures-BdM92iMJ.js";import{a as Oe,D as Ie,h as Le,R as Ne,c as Ee,i as Ue,j as De,t as Be,k as Re}from"./lspLanguageFeatures-BdM92iMJ.js";import"./index-DvMrZv5L.js";const x=2*60*1e3;class C{constructor(i){this._defaults=i,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>x&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=J({moduleId:"vs/language/json/jsonWorker",createWorker:()=>new Worker(new URL(""+new URL("json.worker-CUJs-dtA.js",import.meta.url).href,import.meta.url),{type:"module"}),label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...i){let t;return this._getClient().then(n=>{t=n}).then(n=>{if(this._worker)return this._worker.withSyncedResources(i)}).then(n=>t)}}function ee(e,i=!1){const t=e.length;let n=0,u="",p=0,l=16,o=0,m=0,w=0,v=0,c=0;function O(s,g){let a=0,r=0;for(;a=48&&f<=57)r=r*16+f-48;else if(f>=65&&f<=70)r=r*16+f-65+10;else if(f>=97&&f<=102)r=r*16+f-97+10;else break;n++,a++}return a=t){s+=e.substring(g,n),c=2;break}const a=e.charCodeAt(n);if(a===34){s+=e.substring(g,n),n++;break}if(a===92){if(s+=e.substring(g,n),n++,n>=t){c=2;break}switch(e.charCodeAt(n++)){case 34:s+='"';break;case 92:s+="\\";break;case 47:s+="/";break;case 98:s+="\b";break;case 102:s+="\f";break;case 110:s+=` `;break;case 114:s+="\r";break;case 116:s+=" ";break;case 117:const f=O(4);f>=0?s+=String.fromCharCode(f):c=4;break;default:c=5}g=n;continue}if(a>=0&&a<=31)if(I(a)){s+=e.substring(g,n),c=2;break}else c=6;n++}return s}function D(){if(u="",c=0,p=n,m=o,v=w,n>=t)return p=t,l=17;let s=e.charCodeAt(n);if(E(s)){do n++,u+=String.fromCharCode(s),s=e.charCodeAt(n);while(E(s));return l=15}if(I(s))return n++,u+=String.fromCharCode(s),s===13&&e.charCodeAt(n)===10&&(n++,u+=` `),o++,w=n,l=14;switch(s){case 123:return n++,l=1;case 125:return n++,l=2;case 91:return n++,l=3;case 93:return n++,l=4;case 58:return n++,l=6;case 44:return n++,l=5;case 34:return n++,u=q(),l=10;case 47:const g=n-1;if(e.charCodeAt(n+1)===47){for(n+=2;n=12&&s<=15);return s}return{setPosition:U,getPosition:()=>n,scan:i?z:D,getToken:()=>l,getTokenValue:()=>u,getTokenOffset:()=>p,getTokenLength:()=>n-p,getTokenStartLine:()=>m,getTokenStartCharacter:()=>p-v,getTokenError:()=>c}}function E(e){return e===32||e===9}function I(e){return e===10||e===13}function T(e){return e>=48&&e<=57}var R;(function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab"})(R||(R={}));new Array(20).fill(0).map((e,i)=>" ".repeat(i));const A=200;new Array(A).fill(0).map((e,i)=>` `+" ".repeat(i)),new Array(A).fill(0).map((e,i)=>"\r"+" ".repeat(i)),new Array(A).fill(0).map((e,i)=>`\r diff --git a/dist/assets/liquid-BqWFNjzn.js b/dist/assets/liquid-DA8is1nL.js similarity index 96% rename from dist/assets/liquid-BqWFNjzn.js rename to dist/assets/liquid-DA8is1nL.js index 4667879..7e09e92 100644 --- a/dist/assets/liquid-BqWFNjzn.js +++ b/dist/assets/liquid-DA8is1nL.js @@ -1 +1 @@ -import{l as e}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[""],["<",">"],["{{","}}"],["{%","%}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"%",close:"%"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:"",tokenPostfix:"",builtinTags:["if","else","elseif","endif","render","assign","capture","endcapture","case","endcase","comment","endcomment","cycle","decrement","for","endfor","include","increment","layout","raw","endraw","render","tablerow","endtablerow","unless","endunless"],builtinFilters:["abs","append","at_least","at_most","capitalize","ceil","compact","date","default","divided_by","downcase","escape","escape_once","first","floor","join","json","last","lstrip","map","minus","modulo","newline_to_br","plus","prepend","remove","remove_first","replace","replace_first","reverse","round","rstrip","size","slice","sort","sort_natural","split","strip","strip_html","strip_newlines","times","truncate","truncatewords","uniq","upcase","url_decode","url_encode","where"],constants:["true","false"],operators:["==","!=",">","<",">=","<="],symbol:/[=>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[//,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,"delimiter.output.liquid"],[/\}\}/,{token:"delimiter.output.liquid",switchTo:"@$S2.$S3"}],[/\{\%/,"delimiter.tag.liquid"],[/raw\s*\%\}/,"delimiter.tag.liquid","@liquidRaw"],[/\%\}/,{token:"delimiter.tag.liquid",switchTo:"@$S2.$S3"}],{include:"liquidRoot"}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,"delimiter.tag.liquid"],[/@identifier/],[/\%\}/,{token:"delimiter.tag.liquid",next:"@root"}]],liquidRoot:[[/\d+(\.\d+)?/,"number.liquid"],[/"[^"]*"/,"string.liquid"],[/'[^']*'/,"string.liquid"],[/\s+/],[/@symbol/,{cases:{"@operators":"operator.liquid","@default":""}}],[/\./],[/@identifier/,{cases:{"@constants":"keyword.liquid","@builtinFilters":"predefined.liquid","@builtinTags":"predefined.liquid","@default":"variable.liquid"}}],[/[^}|%]/,"variable.liquid"]]}};export{o as conf,r as language}; +import{l as e}from"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";const t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[""],["<",">"],["{{","}}"],["{%","%}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"%",close:"%"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${t.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:"",tokenPostfix:"",builtinTags:["if","else","elseif","endif","render","assign","capture","endcapture","case","endcase","comment","endcomment","cycle","decrement","for","endfor","include","increment","layout","raw","endraw","render","tablerow","endtablerow","unless","endunless"],builtinFilters:["abs","append","at_least","at_most","capitalize","ceil","compact","date","default","divided_by","downcase","escape","escape_once","first","floor","join","json","last","lstrip","map","minus","modulo","newline_to_br","plus","prepend","remove","remove_first","replace","replace_first","reverse","round","rstrip","size","slice","sort","sort_natural","split","strip","strip_html","strip_newlines","times","truncate","truncatewords","uniq","upcase","url_decode","url_encode","where"],constants:["true","false"],operators:["==","!=",">","<",">=","<="],symbol:/[=>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[//,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,"delimiter.output.liquid"],[/\}\}/,{token:"delimiter.output.liquid",switchTo:"@$S2.$S3"}],[/\{\%/,"delimiter.tag.liquid"],[/raw\s*\%\}/,"delimiter.tag.liquid","@liquidRaw"],[/\%\}/,{token:"delimiter.tag.liquid",switchTo:"@$S2.$S3"}],{include:"liquidRoot"}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,"delimiter.tag.liquid"],[/@identifier/],[/\%\}/,{token:"delimiter.tag.liquid",next:"@root"}]],liquidRoot:[[/\d+(\.\d+)?/,"number.liquid"],[/"[^"]*"/,"string.liquid"],[/'[^']*'/,"string.liquid"],[/\s+/],[/@symbol/,{cases:{"@operators":"operator.liquid","@default":""}}],[/\./],[/@identifier/,{cases:{"@constants":"keyword.liquid","@builtinFilters":"predefined.liquid","@builtinTags":"predefined.liquid","@default":"variable.liquid"}}],[/[^}|%]/,"variable.liquid"]]}};export{o as conf,r as language}; diff --git a/dist/assets/lspLanguageFeatures-IVE1ZcxG.js b/dist/assets/lspLanguageFeatures-BdM92iMJ.js similarity index 99% rename from dist/assets/lspLanguageFeatures-IVE1ZcxG.js rename to dist/assets/lspLanguageFeatures-BdM92iMJ.js index 1d6514f..555a85d 100644 --- a/dist/assets/lspLanguageFeatures-IVE1ZcxG.js +++ b/dist/assets/lspLanguageFeatures-BdM92iMJ.js @@ -1,4 +1,4 @@ -import{R as Ge,l as x,e as w,U as Je,M as R}from"./SqlEditor-BZP69oik.js";var T;(function(e){function n(i){return typeof i=="string"}e.is=n})(T||(T={}));var O;(function(e){function n(i){return typeof i=="string"}e.is=n})(O||(O={}));var K;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(K||(K={}));var j;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(j||(j={}));var _;(function(e){function n(r,t){return r===Number.MAX_VALUE&&(r=j.MAX_VALUE),t===Number.MAX_VALUE&&(t=j.MAX_VALUE),{line:r,character:t}}e.create=n;function i(r){let t=r;return o.objectLiteral(t)&&o.uinteger(t.line)&&o.uinteger(t.character)}e.is=i})(_||(_={}));var h;(function(e){function n(r,t,a,u){if(o.uinteger(r)&&o.uinteger(t)&&o.uinteger(a)&&o.uinteger(u))return{start:_.create(r,t),end:_.create(a,u)};if(_.is(r)&&_.is(t))return{start:r,end:t};throw new Error(`Range#create called with invalid arguments[${r}, ${t}, ${a}, ${u}]`)}e.create=n;function i(r){let t=r;return o.objectLiteral(t)&&_.is(t.start)&&_.is(t.end)}e.is=i})(h||(h={}));var N;(function(e){function n(r,t){return{uri:r,range:t}}e.create=n;function i(r){let t=r;return o.objectLiteral(t)&&h.is(t.range)&&(o.string(t.uri)||o.undefined(t.uri))}e.is=i})(N||(N={}));var ee;(function(e){function n(r,t,a,u){return{targetUri:r,targetRange:t,targetSelectionRange:a,originSelectionRange:u}}e.create=n;function i(r){let t=r;return o.objectLiteral(t)&&h.is(t.targetRange)&&o.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||o.undefined(t.originSelectionRange))}e.is=i})(ee||(ee={}));var S;(function(e){function n(r,t,a,u){return{red:r,green:t,blue:a,alpha:u}}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&o.numberRange(t.red,0,1)&&o.numberRange(t.green,0,1)&&o.numberRange(t.blue,0,1)&&o.numberRange(t.alpha,0,1)}e.is=i})(S||(S={}));var te;(function(e){function n(r,t){return{range:r,color:t}}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&h.is(t.range)&&S.is(t.color)}e.is=i})(te||(te={}));var ne;(function(e){function n(r,t,a){return{label:r,textEdit:t,additionalTextEdits:a}}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&o.string(t.label)&&(o.undefined(t.textEdit)||L.is(t))&&(o.undefined(t.additionalTextEdits)||o.typedArray(t.additionalTextEdits,L.is))}e.is=i})(ne||(ne={}));var M;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(M||(M={}));var re;(function(e){function n(r,t,a,u,s,f){const l={startLine:r,endLine:t};return o.defined(a)&&(l.startCharacter=a),o.defined(u)&&(l.endCharacter=u),o.defined(s)&&(l.kind=s),o.defined(f)&&(l.collapsedText=f),l}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&o.uinteger(t.startLine)&&o.uinteger(t.startLine)&&(o.undefined(t.startCharacter)||o.uinteger(t.startCharacter))&&(o.undefined(t.endCharacter)||o.uinteger(t.endCharacter))&&(o.undefined(t.kind)||o.string(t.kind))}e.is=i})(re||(re={}));var H;(function(e){function n(r,t){return{location:r,message:t}}e.create=n;function i(r){let t=r;return o.defined(t)&&N.is(t.location)&&o.string(t.message)}e.is=i})(H||(H={}));var A;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(A||(A={}));var ie;(function(e){e.Unnecessary=1,e.Deprecated=2})(ie||(ie={}));var ae;(function(e){function n(i){const r=i;return o.objectLiteral(r)&&o.string(r.href)}e.is=n})(ae||(ae={}));var P;(function(e){function n(r,t,a,u,s,f){let l={range:r,message:t};return o.defined(a)&&(l.severity=a),o.defined(u)&&(l.code=u),o.defined(s)&&(l.source=s),o.defined(f)&&(l.relatedInformation=f),l}e.create=n;function i(r){var t;let a=r;return o.defined(a)&&h.is(a.range)&&o.string(a.message)&&(o.number(a.severity)||o.undefined(a.severity))&&(o.integer(a.code)||o.string(a.code)||o.undefined(a.code))&&(o.undefined(a.codeDescription)||o.string((t=a.codeDescription)===null||t===void 0?void 0:t.href))&&(o.string(a.source)||o.undefined(a.source))&&(o.undefined(a.relatedInformation)||o.typedArray(a.relatedInformation,H.is))}e.is=i})(P||(P={}));var E;(function(e){function n(r,t,...a){let u={title:r,command:t};return o.defined(a)&&a.length>0&&(u.arguments=a),u}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.title)&&o.string(t.command)}e.is=i})(E||(E={}));var L;(function(e){function n(a,u){return{range:a,newText:u}}e.replace=n;function i(a,u){return{range:{start:a,end:a},newText:u}}e.insert=i;function r(a){return{range:a,newText:""}}e.del=r;function t(a){const u=a;return o.objectLiteral(u)&&o.string(u.newText)&&h.is(u.range)}e.is=t})(L||(L={}));var W;(function(e){function n(r,t,a){const u={label:r};return t!==void 0&&(u.needsConfirmation=t),a!==void 0&&(u.description=a),u}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&o.string(t.label)&&(o.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(o.string(t.description)||t.description===void 0)}e.is=i})(W||(W={}));var I;(function(e){function n(i){const r=i;return o.string(r)}e.is=n})(I||(I={}));var oe;(function(e){function n(a,u,s){return{range:a,newText:u,annotationId:s}}e.replace=n;function i(a,u,s){return{range:{start:a,end:a},newText:u,annotationId:s}}e.insert=i;function r(a,u){return{range:a,newText:"",annotationId:u}}e.del=r;function t(a){const u=a;return L.is(u)&&(W.is(u.annotationId)||I.is(u.annotationId))}e.is=t})(oe||(oe={}));var X;(function(e){function n(r,t){return{textDocument:r,edits:t}}e.create=n;function i(r){let t=r;return o.defined(t)&&Q.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(X||(X={}));var $;(function(e){function n(r,t,a){let u={kind:"create",uri:r};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(u.options=t),a!==void 0&&(u.annotationId=a),u}e.create=n;function i(r){let t=r;return t&&t.kind==="create"&&o.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||o.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||o.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||I.is(t.annotationId))}e.is=i})($||($={}));var z;(function(e){function n(r,t,a,u){let s={kind:"rename",oldUri:r,newUri:t};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(s.options=a),u!==void 0&&(s.annotationId=u),s}e.create=n;function i(r){let t=r;return t&&t.kind==="rename"&&o.string(t.oldUri)&&o.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||o.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||o.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||I.is(t.annotationId))}e.is=i})(z||(z={}));var B;(function(e){function n(r,t,a){let u={kind:"delete",uri:r};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(u.options=t),a!==void 0&&(u.annotationId=a),u}e.create=n;function i(r){let t=r;return t&&t.kind==="delete"&&o.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||o.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||o.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||I.is(t.annotationId))}e.is=i})(B||(B={}));var q;(function(e){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(t=>o.string(t.kind)?$.is(t)||z.is(t)||B.is(t):X.is(t)))}e.is=n})(q||(q={}));var ue;(function(e){function n(r){return{uri:r}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.uri)}e.is=i})(ue||(ue={}));var se;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.uri)&&o.integer(t.version)}e.is=i})(se||(se={}));var Q;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.uri)&&(t.version===null||o.integer(t.version))}e.is=i})(Q||(Q={}));var ce;(function(e){function n(r,t,a,u){return{uri:r,languageId:t,version:a,text:u}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.uri)&&o.string(t.languageId)&&o.integer(t.version)&&o.string(t.text)}e.is=i})(ce||(ce={}));var G;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function n(i){const r=i;return r===e.PlainText||r===e.Markdown}e.is=n})(G||(G={}));var F;(function(e){function n(i){const r=i;return o.objectLiteral(i)&&G.is(r.kind)&&o.string(r.value)}e.is=n})(F||(F={}));var p;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(p||(p={}));var J;(function(e){e.PlainText=1,e.Snippet=2})(J||(J={}));var de;(function(e){e.Deprecated=1})(de||(de={}));var fe;(function(e){function n(r,t,a){return{newText:r,insert:t,replace:a}}e.create=n;function i(r){const t=r;return t&&o.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=i})(fe||(fe={}));var le;(function(e){e.asIs=1,e.adjustIndentation=2})(le||(le={}));var ge;(function(e){function n(i){const r=i;return r&&(o.string(r.detail)||r.detail===void 0)&&(o.string(r.description)||r.description===void 0)}e.is=n})(ge||(ge={}));var he;(function(e){function n(i){return{label:i}}e.create=n})(he||(he={}));var pe;(function(e){function n(i,r){return{items:i||[],isIncomplete:!!r}}e.create=n})(pe||(pe={}));var y;(function(e){function n(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=n;function i(r){const t=r;return o.string(t)||o.objectLiteral(t)&&o.string(t.language)&&o.string(t.value)}e.is=i})(y||(y={}));var me;(function(e){function n(i){let r=i;return!!r&&o.objectLiteral(r)&&(F.is(r.contents)||y.is(r.contents)||o.typedArray(r.contents,y.is))&&(i.range===void 0||h.is(i.range))}e.is=n})(me||(me={}));var ve;(function(e){function n(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=n})(ve||(ve={}));var be;(function(e){function n(i,r,...t){let a={label:i};return o.defined(r)&&(a.documentation=r),o.defined(t)?a.parameters=t:a.parameters=[],a}e.create=n})(be||(be={}));var D;(function(e){e.Text=1,e.Read=2,e.Write=3})(D||(D={}));var _e;(function(e){function n(i,r){let t={range:i};return o.number(r)&&(t.kind=r),t}e.create=n})(_e||(_e={}));var m;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(m||(m={}));var xe;(function(e){e.Deprecated=1})(xe||(xe={}));var we;(function(e){function n(i,r,t,a,u){let s={name:i,kind:r,location:{uri:a,range:t}};return u&&(s.containerName=u),s}e.create=n})(we||(we={}));var ke;(function(e){function n(i,r,t,a){return a!==void 0?{name:i,kind:r,location:{uri:t,range:a}}:{name:i,kind:r,location:{uri:t}}}e.create=n})(ke||(ke={}));var Ae;(function(e){function n(r,t,a,u,s,f){let l={name:r,detail:t,kind:a,range:u,selectionRange:s};return f!==void 0&&(l.children=f),l}e.create=n;function i(r){let t=r;return t&&o.string(t.name)&&o.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||o.string(t.detail))&&(t.deprecated===void 0||o.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(Ae||(Ae={}));var Ee;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(Ee||(Ee={}));var V;(function(e){e.Invoked=1,e.Automatic=2})(V||(V={}));var Le;(function(e){function n(r,t,a){let u={diagnostics:r};return t!=null&&(u.only=t),a!=null&&(u.triggerKind=a),u}e.create=n;function i(r){let t=r;return o.defined(t)&&o.typedArray(t.diagnostics,P.is)&&(t.only===void 0||o.typedArray(t.only,o.string))&&(t.triggerKind===void 0||t.triggerKind===V.Invoked||t.triggerKind===V.Automatic)}e.is=i})(Le||(Le={}));var Ie;(function(e){function n(r,t,a){let u={title:r},s=!0;return typeof t=="string"?(s=!1,u.kind=t):E.is(t)?u.command=t:u.edit=t,s&&a!==void 0&&(u.kind=a),u}e.create=n;function i(r){let t=r;return t&&o.string(t.title)&&(t.diagnostics===void 0||o.typedArray(t.diagnostics,P.is))&&(t.kind===void 0||o.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||E.is(t.command))&&(t.isPreferred===void 0||o.boolean(t.isPreferred))&&(t.edit===void 0||q.is(t.edit))}e.is=i})(Ie||(Ie={}));var Re;(function(e){function n(r,t){let a={range:r};return o.defined(t)&&(a.data=t),a}e.create=n;function i(r){let t=r;return o.defined(t)&&h.is(t.range)&&(o.undefined(t.command)||E.is(t.command))}e.is=i})(Re||(Re={}));var Me;(function(e){function n(r,t){return{tabSize:r,insertSpaces:t}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.uinteger(t.tabSize)&&o.boolean(t.insertSpaces)}e.is=i})(Me||(Me={}));var De;(function(e){function n(r,t,a){return{range:r,target:t,data:a}}e.create=n;function i(r){let t=r;return o.defined(t)&&h.is(t.range)&&(o.undefined(t.target)||o.string(t.target))}e.is=i})(De||(De={}));var Fe;(function(e){function n(r,t){return{range:r,parent:t}}e.create=n;function i(r){let t=r;return o.objectLiteral(t)&&h.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(Fe||(Fe={}));var Ce;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(Ce||(Ce={}));var je;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(je||(je={}));var Ne;(function(e){function n(i){const r=i;return o.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=n})(Ne||(Ne={}));var Pe;(function(e){function n(r,t){return{range:r,text:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&o.string(t.text)}e.is=i})(Pe||(Pe={}));var ye;(function(e){function n(r,t,a){return{range:r,variableName:t,caseSensitiveLookup:a}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&o.boolean(t.caseSensitiveLookup)&&(o.string(t.variableName)||t.variableName===void 0)}e.is=i})(ye||(ye={}));var Ve;(function(e){function n(r,t){return{range:r,expression:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&(o.string(t.expression)||t.expression===void 0)}e.is=i})(Ve||(Ve={}));var Ue;(function(e){function n(r,t){return{frameId:r,stoppedLocation:t}}e.create=n;function i(r){const t=r;return o.defined(t)&&h.is(r.stoppedLocation)}e.is=i})(Ue||(Ue={}));var Y;(function(e){e.Type=1,e.Parameter=2;function n(i){return i===1||i===2}e.is=n})(Y||(Y={}));var Z;(function(e){function n(r){return{value:r}}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&(t.tooltip===void 0||o.string(t.tooltip)||F.is(t.tooltip))&&(t.location===void 0||N.is(t.location))&&(t.command===void 0||E.is(t.command))}e.is=i})(Z||(Z={}));var Oe;(function(e){function n(r,t,a){const u={position:r,label:t};return a!==void 0&&(u.kind=a),u}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&_.is(t.position)&&(o.string(t.label)||o.typedArray(t.label,Z.is))&&(t.kind===void 0||Y.is(t.kind))&&t.textEdits===void 0||o.typedArray(t.textEdits,L.is)&&(t.tooltip===void 0||o.string(t.tooltip)||F.is(t.tooltip))&&(t.paddingLeft===void 0||o.boolean(t.paddingLeft))&&(t.paddingRight===void 0||o.boolean(t.paddingRight))}e.is=i})(Oe||(Oe={}));var Se;(function(e){function n(i){return{kind:"snippet",value:i}}e.createSnippet=n})(Se||(Se={}));var He;(function(e){function n(i,r,t,a){return{insertText:i,filterText:r,range:t,command:a}}e.create=n})(He||(He={}));var We;(function(e){function n(i){return{items:i}}e.create=n})(We||(We={}));var Xe;(function(e){e.Invoked=0,e.Automatic=1})(Xe||(Xe={}));var $e;(function(e){function n(i,r){return{range:i,text:r}}e.create=n})($e||($e={}));var ze;(function(e){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}e.create=n})(ze||(ze={}));var Be;(function(e){function n(i){const r=i;return o.objectLiteral(r)&&O.is(r.uri)&&o.string(r.name)}e.is=n})(Be||(Be={}));var qe;(function(e){function n(a,u,s,f){return new nt(a,u,s,f)}e.create=n;function i(a){let u=a;return!!(o.defined(u)&&o.string(u.uri)&&(o.undefined(u.languageId)||o.string(u.languageId))&&o.uinteger(u.lineCount)&&o.func(u.getText)&&o.func(u.positionAt)&&o.func(u.offsetAt))}e.is=i;function r(a,u){let s=a.getText(),f=t(u,(d,g)=>{let b=d.range.start.line-g.range.start.line;return b===0?d.range.start.character-g.range.start.character:b}),l=s.length;for(let d=f.length-1;d>=0;d--){let g=f[d],b=a.offsetAt(g.range.start),c=a.offsetAt(g.range.end);if(c<=l)s=s.substring(0,b)+g.newText+s.substring(c,s.length);else throw new Error("Overlapping edit");l=b}return s}e.applyEdits=r;function t(a,u){if(a.length<=1)return a;const s=a.length/2|0,f=a.slice(0,s),l=a.slice(s);t(f,u),t(l,u);let d=0,g=0,b=0;for(;d0&&(u.arguments=a),u}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.title)&&o.string(t.command)}e.is=i})(E||(E={}));var L;(function(e){function n(a,u){return{range:a,newText:u}}e.replace=n;function i(a,u){return{range:{start:a,end:a},newText:u}}e.insert=i;function r(a){return{range:a,newText:""}}e.del=r;function t(a){const u=a;return o.objectLiteral(u)&&o.string(u.newText)&&h.is(u.range)}e.is=t})(L||(L={}));var W;(function(e){function n(r,t,a){const u={label:r};return t!==void 0&&(u.needsConfirmation=t),a!==void 0&&(u.description=a),u}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&o.string(t.label)&&(o.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(o.string(t.description)||t.description===void 0)}e.is=i})(W||(W={}));var I;(function(e){function n(i){const r=i;return o.string(r)}e.is=n})(I||(I={}));var oe;(function(e){function n(a,u,s){return{range:a,newText:u,annotationId:s}}e.replace=n;function i(a,u,s){return{range:{start:a,end:a},newText:u,annotationId:s}}e.insert=i;function r(a,u){return{range:a,newText:"",annotationId:u}}e.del=r;function t(a){const u=a;return L.is(u)&&(W.is(u.annotationId)||I.is(u.annotationId))}e.is=t})(oe||(oe={}));var X;(function(e){function n(r,t){return{textDocument:r,edits:t}}e.create=n;function i(r){let t=r;return o.defined(t)&&Q.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(X||(X={}));var $;(function(e){function n(r,t,a){let u={kind:"create",uri:r};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(u.options=t),a!==void 0&&(u.annotationId=a),u}e.create=n;function i(r){let t=r;return t&&t.kind==="create"&&o.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||o.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||o.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||I.is(t.annotationId))}e.is=i})($||($={}));var z;(function(e){function n(r,t,a,u){let s={kind:"rename",oldUri:r,newUri:t};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(s.options=a),u!==void 0&&(s.annotationId=u),s}e.create=n;function i(r){let t=r;return t&&t.kind==="rename"&&o.string(t.oldUri)&&o.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||o.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||o.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||I.is(t.annotationId))}e.is=i})(z||(z={}));var B;(function(e){function n(r,t,a){let u={kind:"delete",uri:r};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(u.options=t),a!==void 0&&(u.annotationId=a),u}e.create=n;function i(r){let t=r;return t&&t.kind==="delete"&&o.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||o.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||o.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||I.is(t.annotationId))}e.is=i})(B||(B={}));var q;(function(e){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(t=>o.string(t.kind)?$.is(t)||z.is(t)||B.is(t):X.is(t)))}e.is=n})(q||(q={}));var ue;(function(e){function n(r){return{uri:r}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.uri)}e.is=i})(ue||(ue={}));var se;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.uri)&&o.integer(t.version)}e.is=i})(se||(se={}));var Q;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.uri)&&(t.version===null||o.integer(t.version))}e.is=i})(Q||(Q={}));var ce;(function(e){function n(r,t,a,u){return{uri:r,languageId:t,version:a,text:u}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.string(t.uri)&&o.string(t.languageId)&&o.integer(t.version)&&o.string(t.text)}e.is=i})(ce||(ce={}));var G;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function n(i){const r=i;return r===e.PlainText||r===e.Markdown}e.is=n})(G||(G={}));var F;(function(e){function n(i){const r=i;return o.objectLiteral(i)&&G.is(r.kind)&&o.string(r.value)}e.is=n})(F||(F={}));var p;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(p||(p={}));var J;(function(e){e.PlainText=1,e.Snippet=2})(J||(J={}));var de;(function(e){e.Deprecated=1})(de||(de={}));var fe;(function(e){function n(r,t,a){return{newText:r,insert:t,replace:a}}e.create=n;function i(r){const t=r;return t&&o.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=i})(fe||(fe={}));var le;(function(e){e.asIs=1,e.adjustIndentation=2})(le||(le={}));var ge;(function(e){function n(i){const r=i;return r&&(o.string(r.detail)||r.detail===void 0)&&(o.string(r.description)||r.description===void 0)}e.is=n})(ge||(ge={}));var he;(function(e){function n(i){return{label:i}}e.create=n})(he||(he={}));var pe;(function(e){function n(i,r){return{items:i||[],isIncomplete:!!r}}e.create=n})(pe||(pe={}));var y;(function(e){function n(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=n;function i(r){const t=r;return o.string(t)||o.objectLiteral(t)&&o.string(t.language)&&o.string(t.value)}e.is=i})(y||(y={}));var me;(function(e){function n(i){let r=i;return!!r&&o.objectLiteral(r)&&(F.is(r.contents)||y.is(r.contents)||o.typedArray(r.contents,y.is))&&(i.range===void 0||h.is(i.range))}e.is=n})(me||(me={}));var ve;(function(e){function n(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=n})(ve||(ve={}));var be;(function(e){function n(i,r,...t){let a={label:i};return o.defined(r)&&(a.documentation=r),o.defined(t)?a.parameters=t:a.parameters=[],a}e.create=n})(be||(be={}));var D;(function(e){e.Text=1,e.Read=2,e.Write=3})(D||(D={}));var _e;(function(e){function n(i,r){let t={range:i};return o.number(r)&&(t.kind=r),t}e.create=n})(_e||(_e={}));var m;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(m||(m={}));var xe;(function(e){e.Deprecated=1})(xe||(xe={}));var we;(function(e){function n(i,r,t,a,u){let s={name:i,kind:r,location:{uri:a,range:t}};return u&&(s.containerName=u),s}e.create=n})(we||(we={}));var ke;(function(e){function n(i,r,t,a){return a!==void 0?{name:i,kind:r,location:{uri:t,range:a}}:{name:i,kind:r,location:{uri:t}}}e.create=n})(ke||(ke={}));var Ae;(function(e){function n(r,t,a,u,s,f){let l={name:r,detail:t,kind:a,range:u,selectionRange:s};return f!==void 0&&(l.children=f),l}e.create=n;function i(r){let t=r;return t&&o.string(t.name)&&o.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||o.string(t.detail))&&(t.deprecated===void 0||o.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(Ae||(Ae={}));var Ee;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(Ee||(Ee={}));var V;(function(e){e.Invoked=1,e.Automatic=2})(V||(V={}));var Le;(function(e){function n(r,t,a){let u={diagnostics:r};return t!=null&&(u.only=t),a!=null&&(u.triggerKind=a),u}e.create=n;function i(r){let t=r;return o.defined(t)&&o.typedArray(t.diagnostics,P.is)&&(t.only===void 0||o.typedArray(t.only,o.string))&&(t.triggerKind===void 0||t.triggerKind===V.Invoked||t.triggerKind===V.Automatic)}e.is=i})(Le||(Le={}));var Ie;(function(e){function n(r,t,a){let u={title:r},s=!0;return typeof t=="string"?(s=!1,u.kind=t):E.is(t)?u.command=t:u.edit=t,s&&a!==void 0&&(u.kind=a),u}e.create=n;function i(r){let t=r;return t&&o.string(t.title)&&(t.diagnostics===void 0||o.typedArray(t.diagnostics,P.is))&&(t.kind===void 0||o.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||E.is(t.command))&&(t.isPreferred===void 0||o.boolean(t.isPreferred))&&(t.edit===void 0||q.is(t.edit))}e.is=i})(Ie||(Ie={}));var Re;(function(e){function n(r,t){let a={range:r};return o.defined(t)&&(a.data=t),a}e.create=n;function i(r){let t=r;return o.defined(t)&&h.is(t.range)&&(o.undefined(t.command)||E.is(t.command))}e.is=i})(Re||(Re={}));var Me;(function(e){function n(r,t){return{tabSize:r,insertSpaces:t}}e.create=n;function i(r){let t=r;return o.defined(t)&&o.uinteger(t.tabSize)&&o.boolean(t.insertSpaces)}e.is=i})(Me||(Me={}));var De;(function(e){function n(r,t,a){return{range:r,target:t,data:a}}e.create=n;function i(r){let t=r;return o.defined(t)&&h.is(t.range)&&(o.undefined(t.target)||o.string(t.target))}e.is=i})(De||(De={}));var Fe;(function(e){function n(r,t){return{range:r,parent:t}}e.create=n;function i(r){let t=r;return o.objectLiteral(t)&&h.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(Fe||(Fe={}));var Ce;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(Ce||(Ce={}));var je;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(je||(je={}));var Ne;(function(e){function n(i){const r=i;return o.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=n})(Ne||(Ne={}));var Pe;(function(e){function n(r,t){return{range:r,text:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&o.string(t.text)}e.is=i})(Pe||(Pe={}));var ye;(function(e){function n(r,t,a){return{range:r,variableName:t,caseSensitiveLookup:a}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&o.boolean(t.caseSensitiveLookup)&&(o.string(t.variableName)||t.variableName===void 0)}e.is=i})(ye||(ye={}));var Ve;(function(e){function n(r,t){return{range:r,expression:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&(o.string(t.expression)||t.expression===void 0)}e.is=i})(Ve||(Ve={}));var Ue;(function(e){function n(r,t){return{frameId:r,stoppedLocation:t}}e.create=n;function i(r){const t=r;return o.defined(t)&&h.is(r.stoppedLocation)}e.is=i})(Ue||(Ue={}));var Y;(function(e){e.Type=1,e.Parameter=2;function n(i){return i===1||i===2}e.is=n})(Y||(Y={}));var Z;(function(e){function n(r){return{value:r}}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&(t.tooltip===void 0||o.string(t.tooltip)||F.is(t.tooltip))&&(t.location===void 0||N.is(t.location))&&(t.command===void 0||E.is(t.command))}e.is=i})(Z||(Z={}));var Oe;(function(e){function n(r,t,a){const u={position:r,label:t};return a!==void 0&&(u.kind=a),u}e.create=n;function i(r){const t=r;return o.objectLiteral(t)&&_.is(t.position)&&(o.string(t.label)||o.typedArray(t.label,Z.is))&&(t.kind===void 0||Y.is(t.kind))&&t.textEdits===void 0||o.typedArray(t.textEdits,L.is)&&(t.tooltip===void 0||o.string(t.tooltip)||F.is(t.tooltip))&&(t.paddingLeft===void 0||o.boolean(t.paddingLeft))&&(t.paddingRight===void 0||o.boolean(t.paddingRight))}e.is=i})(Oe||(Oe={}));var Se;(function(e){function n(i){return{kind:"snippet",value:i}}e.createSnippet=n})(Se||(Se={}));var He;(function(e){function n(i,r,t,a){return{insertText:i,filterText:r,range:t,command:a}}e.create=n})(He||(He={}));var We;(function(e){function n(i){return{items:i}}e.create=n})(We||(We={}));var Xe;(function(e){e.Invoked=0,e.Automatic=1})(Xe||(Xe={}));var $e;(function(e){function n(i,r){return{range:i,text:r}}e.create=n})($e||($e={}));var ze;(function(e){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}e.create=n})(ze||(ze={}));var Be;(function(e){function n(i){const r=i;return o.objectLiteral(r)&&O.is(r.uri)&&o.string(r.name)}e.is=n})(Be||(Be={}));var qe;(function(e){function n(a,u,s,f){return new nt(a,u,s,f)}e.create=n;function i(a){let u=a;return!!(o.defined(u)&&o.string(u.uri)&&(o.undefined(u.languageId)||o.string(u.languageId))&&o.uinteger(u.lineCount)&&o.func(u.getText)&&o.func(u.positionAt)&&o.func(u.offsetAt))}e.is=i;function r(a,u){let s=a.getText(),f=t(u,(d,g)=>{let b=d.range.start.line-g.range.start.line;return b===0?d.range.start.character-g.range.start.character:b}),l=s.length;for(let d=f.length-1;d>=0;d--){let g=f[d],b=a.offsetAt(g.range.start),c=a.offsetAt(g.range.end);if(c<=l)s=s.substring(0,b)+g.newText+s.substring(c,s.length);else throw new Error("Overlapping edit");l=b}return s}e.applyEdits=r;function t(a,u){if(a.length<=1)return a;const s=a.length/2|0,f=a.slice(0,s),l=a.slice(s);t(f,u),t(l,u);let d=0,g=0,b=0;for(;d0&&n.push(i.length),this._lineOffsets=n}return this._lineOffsets}positionAt(n){n=Math.max(Math.min(n,this._content.length),0);let i=this.getLineOffsets(),r=0,t=i.length;if(t===0)return _.create(0,n);for(;rn?t=u:r=u+1}let a=r-1;return _.create(a,n-i[a])}offsetAt(n){let i=this.getLineOffsets();if(n.line>=i.length)return this._content.length;if(n.line<0)return 0;let r=i[n.line],t=n.line+1"u"}e.undefined=r;function t(c){return c===!0||c===!1}e.boolean=t;function a(c){return n.call(c)==="[object String]"}e.string=a;function u(c){return n.call(c)==="[object Number]"}e.number=u;function s(c,U,tt){return n.call(c)==="[object Number]"&&U<=c&&c<=tt}e.numberRange=s;function f(c){return n.call(c)==="[object Number]"&&-2147483648<=c&&c<=2147483647}e.integer=f;function l(c){return n.call(c)==="[object Number]"&&0<=c&&c<=2147483647}e.uinteger=l;function d(c){return n.call(c)==="[object Function]"}e.func=d;function g(c){return c!==null&&typeof c=="object"}e.objectLiteral=g;function b(c,U){return Array.isArray(c)&&c.every(U)}e.typedArray=b})(o||(o={}));class pt{constructor(n,i,r){this._languageId=n,this._worker=i,this._disposables=[],this._listener=Object.create(null);const t=u=>{let s=u.getLanguageId();if(s!==this._languageId)return;let f;this._listener[u.uri.toString()]=u.onDidChangeContent(()=>{window.clearTimeout(f),f=window.setTimeout(()=>this._doValidate(u.uri,s),500)}),this._doValidate(u.uri,s)},a=u=>{w.setModelMarkers(u,this._languageId,[]);let s=u.uri.toString(),f=this._listener[s];f&&(f.dispose(),delete this._listener[s])};this._disposables.push(w.onDidCreateModel(t)),this._disposables.push(w.onWillDisposeModel(a)),this._disposables.push(w.onDidChangeModelLanguage(u=>{a(u.model),t(u.model)})),this._disposables.push(r(u=>{w.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(a(s),t(s))})})),this._disposables.push({dispose:()=>{w.getModels().forEach(a);for(let u in this._listener)this._listener[u].dispose()}}),w.getModels().forEach(t)}dispose(){this._disposables.forEach(n=>n&&n.dispose()),this._disposables.length=0}_doValidate(n,i){this._worker(n).then(r=>r.doValidation(n.toString())).then(r=>{const t=r.map(u=>it(n,u));let a=w.getModel(n);a&&a.getLanguageId()===i&&w.setModelMarkers(a,i,t)}).then(void 0,r=>{console.error(r)})}}function rt(e){switch(e){case A.Error:return R.Error;case A.Warning:return R.Warning;case A.Information:return R.Info;case A.Hint:return R.Hint;default:return R.Info}}function it(e,n){let i=typeof n.code=="number"?String(n.code):n.code;return{severity:rt(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,code:i,source:n.source}}class mt{constructor(n,i){this._worker=n,this._triggerCharacters=i}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(n,i,r,t){const a=n.uri;return this._worker(a).then(u=>u.doComplete(a.toString(),k(i))).then(u=>{if(!u)return;const s=n.getWordUntilPosition(i),f=new Ge(i.lineNumber,s.startColumn,i.lineNumber,s.endColumn),l=u.items.map(d=>{const g={label:d.label,insertText:d.insertText||d.label,sortText:d.sortText,filterText:d.filterText,documentation:d.documentation,detail:d.detail,command:ut(d.command),range:f,kind:ot(d.kind)};return d.textEdit&&(at(d.textEdit)?g.range={insert:v(d.textEdit.insert),replace:v(d.textEdit.replace)}:g.range=v(d.textEdit.range),g.insertText=d.textEdit.newText),d.additionalTextEdits&&(g.additionalTextEdits=d.additionalTextEdits.map(C)),d.insertTextFormat===J.Snippet&&(g.insertTextRules=x.CompletionItemInsertTextRule.InsertAsSnippet),g});return{isIncomplete:u.isIncomplete,suggestions:l}})}}function k(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function Ye(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function v(e){if(e)return new Ge(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function at(e){return typeof e.insert<"u"&&typeof e.replace<"u"}function ot(e){const n=x.CompletionItemKind;switch(e){case p.Text:return n.Text;case p.Method:return n.Method;case p.Function:return n.Function;case p.Constructor:return n.Constructor;case p.Field:return n.Field;case p.Variable:return n.Variable;case p.Class:return n.Class;case p.Interface:return n.Interface;case p.Module:return n.Module;case p.Property:return n.Property;case p.Unit:return n.Unit;case p.Value:return n.Value;case p.Enum:return n.Enum;case p.Keyword:return n.Keyword;case p.Snippet:return n.Snippet;case p.Color:return n.Color;case p.File:return n.File;case p.Reference:return n.Reference}return n.Property}function C(e){if(e)return{range:v(e.range),text:e.newText}}function ut(e){return e&&e.command==="editor.action.triggerSuggest"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}class vt{constructor(n){this._worker=n}provideHover(n,i,r){let t=n.uri;return this._worker(t).then(a=>a.doHover(t.toString(),k(i))).then(a=>{if(a)return{range:v(a.range),contents:ct(a.contents)}})}}function st(e){return e&&typeof e=="object"&&typeof e.kind=="string"}function Qe(e){return typeof e=="string"?{value:e}:st(e)?e.kind==="plaintext"?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+` `+e.value+"\n```\n"}}function ct(e){if(e)return Array.isArray(e)?e.map(Qe):[Qe(e)]}class bt{constructor(n){this._worker=n}provideDocumentHighlights(n,i,r){const t=n.uri;return this._worker(t).then(a=>a.findDocumentHighlights(t.toString(),k(i))).then(a=>{if(a)return a.map(u=>({range:v(u.range),kind:dt(u.kind)}))})}}function dt(e){switch(e){case D.Read:return x.DocumentHighlightKind.Read;case D.Write:return x.DocumentHighlightKind.Write;case D.Text:return x.DocumentHighlightKind.Text}return x.DocumentHighlightKind.Text}class _t{constructor(n){this._worker=n}provideDefinition(n,i,r){const t=n.uri;return this._worker(t).then(a=>a.findDefinition(t.toString(),k(i))).then(a=>{if(a)return[Ze(a)]})}}function Ze(e){return{uri:Je.parse(e.uri),range:v(e.range)}}class xt{constructor(n){this._worker=n}provideReferences(n,i,r,t){const a=n.uri;return this._worker(a).then(u=>u.findReferences(a.toString(),k(i))).then(u=>{if(u)return u.map(Ze)})}}class wt{constructor(n){this._worker=n}provideRenameEdits(n,i,r,t){const a=n.uri;return this._worker(a).then(u=>u.doRename(a.toString(),k(i),r)).then(u=>ft(u))}}function ft(e){if(!e||!e.changes)return;let n=[];for(let i in e.changes){const r=Je.parse(i);for(let t of e.changes[i])n.push({resource:r,versionId:void 0,textEdit:{range:v(t.range),text:t.newText}})}return{edits:n}}class kt{constructor(n){this._worker=n}provideDocumentSymbols(n,i){const r=n.uri;return this._worker(r).then(t=>t.findDocumentSymbols(r.toString())).then(t=>{if(t)return t.map(a=>lt(a)?Te(a):{name:a.name,detail:"",containerName:a.containerName,kind:Ke(a.kind),range:v(a.location.range),selectionRange:v(a.location.range),tags:[]})})}}function lt(e){return"children"in e}function Te(e){return{name:e.name,detail:e.detail??"",kind:Ke(e.kind),range:v(e.range),selectionRange:v(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(n=>Te(n))}}function Ke(e){let n=x.SymbolKind;switch(e){case m.File:return n.File;case m.Module:return n.Module;case m.Namespace:return n.Namespace;case m.Package:return n.Package;case m.Class:return n.Class;case m.Method:return n.Method;case m.Property:return n.Property;case m.Field:return n.Field;case m.Constructor:return n.Constructor;case m.Enum:return n.Enum;case m.Interface:return n.Interface;case m.Function:return n.Function;case m.Variable:return n.Variable;case m.Constant:return n.Constant;case m.String:return n.String;case m.Number:return n.Number;case m.Boolean:return n.Boolean;case m.Array:return n.Array}return n.Function}class At{constructor(n){this._worker=n}provideLinks(n,i){const r=n.uri;return this._worker(r).then(t=>t.findDocumentLinks(r.toString())).then(t=>{if(t)return{links:t.map(a=>({range:v(a.range),url:a.target}))}})}}class Et{constructor(n){this._worker=n}provideDocumentFormattingEdits(n,i,r){const t=n.uri;return this._worker(t).then(a=>a.format(t.toString(),null,et(i)).then(u=>{if(!(!u||u.length===0))return u.map(C)}))}}class Lt{constructor(n){this._worker=n,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(n,i,r,t){const a=n.uri;return this._worker(a).then(u=>u.format(a.toString(),Ye(i),et(r)).then(s=>{if(!(!s||s.length===0))return s.map(C)}))}}function et(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}class It{constructor(n){this._worker=n}provideDocumentColors(n,i){const r=n.uri;return this._worker(r).then(t=>t.findDocumentColors(r.toString())).then(t=>{if(t)return t.map(a=>({color:a.color,range:v(a.range)}))})}provideColorPresentations(n,i,r){const t=n.uri;return this._worker(t).then(a=>a.getColorPresentations(t.toString(),i.color,Ye(i.range))).then(a=>{if(a)return a.map(u=>{let s={label:u.label};return u.textEdit&&(s.textEdit=C(u.textEdit)),u.additionalTextEdits&&(s.additionalTextEdits=u.additionalTextEdits.map(C)),s})})}}class Rt{constructor(n){this._worker=n}provideFoldingRanges(n,i,r){const t=n.uri;return this._worker(t).then(a=>a.getFoldingRanges(t.toString(),i)).then(a=>{if(a)return a.map(u=>{const s={start:u.startLine+1,end:u.endLine+1};return typeof u.kind<"u"&&(s.kind=gt(u.kind)),s})})}}function gt(e){switch(e){case M.Comment:return x.FoldingRangeKind.Comment;case M.Imports:return x.FoldingRangeKind.Imports;case M.Region:return x.FoldingRangeKind.Region}}class Mt{constructor(n){this._worker=n}provideSelectionRanges(n,i,r){const t=n.uri;return this._worker(t).then(a=>a.getSelectionRanges(t.toString(),i.map(k))).then(a=>{if(a)return a.map(u=>{const s=[];for(;u;)s.push({range:v(u.range)}),u=u.parent;return s})})}}export{mt as C,bt as D,Rt as F,vt as H,xt as R,Mt as S,_t as a,kt as b,wt as c,It as d,pt as e,Et as f,Lt as g,At as h,k as i,Ye as j,C as k,v as t}; diff --git a/dist/assets/mdx-BybN8OAJ.js b/dist/assets/mdx-BPT6hPF_.js similarity index 97% rename from dist/assets/mdx-BybN8OAJ.js rename to dist/assets/mdx-BPT6hPF_.js index 0bad702..1318dc8 100644 --- a/dist/assets/mdx-BybN8OAJ.js +++ b/dist/assets/mdx-BPT6hPF_.js @@ -1 +1 @@ -import{l as e}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const s={comments:{blockComment:["{/*","*/}"]},brackets:[["{","}"]],autoClosingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"“",close:"”"},{open:"‘",close:"’"},{open:"`",close:"`"},{open:"{",close:"}"},{open:"(",close:")"},{open:"_",close:"_"},{open:"**",close:"**"},{open:"<",close:">"}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:e.IndentAction.None,appendText:"- "}},{beforeText:/^\s*\+ .+/,action:{indentAction:e.IndentAction.None,appendText:"+ "}},{beforeText:/^\s*\* .+/,action:{indentAction:e.IndentAction.None,appendText:"* "}},{beforeText:/^> /,action:{indentAction:e.IndentAction.None,appendText:"> "}},{beforeText:/<\w+/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:e.IndentAction.Outdent}},...Array.from({length:100},(n,t)=>({beforeText:new RegExp(`^${t}\\. .+`),action:{indentAction:e.IndentAction.None,appendText:`${t+1}. `}}))]},r={defaultToken:"",tokenPostfix:".mdx",control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:"meta.content",next:"@frontmatter",nextEmbedded:"yaml"}],[/^\s*import/,{token:"keyword",next:"@import",nextEmbedded:"js"}],[/^\s*export/,{token:"keyword",next:"@export",nextEmbedded:"js"}],[/<\w+/,{token:"type.identifier",next:"@jsx"}],[/<\/?\w+>/,"type.identifier"],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:"white"},{token:"comment"},{token:"keyword",next:"@header"}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,["white","comment","keyword","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,["white","comment","keyword"]],[/`{3,}(\s.*)?$/,{token:"string",next:"@codeblock_backtick"}],[/~{3,}(\s.*)?$/,{token:"string",next:"@codeblock_tilde"}],[/`{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_backtick",nextEmbedded:"$1"}],[/~{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_tilde",nextEmbedded:"$1"}],[/^(\s*)(-{4,})$/,["white","comment"]],[/^(\s*)(>+)/,["white","comment"]],{include:"content"}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,["","string.link","","type.identifier","string.link",""]],[/(\[)(.+)(]\()(.+)(\))/,["","type.identifier","","string.link",""]],[/(\[)(.+)(]\[)(.+)(])/,["","type.identifier","","type.identifier",""]],[/(\[)(.+)(]:\s+)(\S*)/,["","type.identifier","","string.link"]],[/(\[)(.+)(])/,["","type.identifier",""]],[/`.*`/,"variable.source"],[/_/,{token:"emphasis",next:"@emphasis_underscore"}],[/\*(?!\*)/,{token:"emphasis",next:"@emphasis_asterisk"}],[/\*\*/,{token:"strong",next:"@strong"}],[/{/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}]],import:[[/'\s*(;|$)/,{token:"string",next:"@pop",nextEmbedded:"@pop"}]],expression:[[/{/,{token:"delimiter.bracket",next:"@expression"}],[/}/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],export:[[/^\s*$/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],jsx:[[/\s+/,""],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,["attribute.name","operator","string"]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,["attribute.name","operator","string"]],[/(\w+(?=\s|>|={|$))/,["attribute.name"]],[/={/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}],[/>/,{token:"type.identifier",next:"@pop"}]],header:[[/.$/,{token:"keyword",next:"@pop"}],{include:"content"},[/./,{token:"keyword"}]],strong:[[/\*\*/,{token:"strong",next:"@pop"}],{include:"content"},[/./,{token:"strong"}]],emphasis_underscore:[[/_/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],emphasis_asterisk:[[/\*(?!\*)/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],frontmatter:[[/^---$/,{token:"meta.content",nextEmbedded:"@pop",next:"@pop"}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]]}};export{s as conf,r as language}; +import{l as e}from"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";const s={comments:{blockComment:["{/*","*/}"]},brackets:[["{","}"]],autoClosingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"“",close:"”"},{open:"‘",close:"’"},{open:"`",close:"`"},{open:"{",close:"}"},{open:"(",close:")"},{open:"_",close:"_"},{open:"**",close:"**"},{open:"<",close:">"}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:e.IndentAction.None,appendText:"- "}},{beforeText:/^\s*\+ .+/,action:{indentAction:e.IndentAction.None,appendText:"+ "}},{beforeText:/^\s*\* .+/,action:{indentAction:e.IndentAction.None,appendText:"* "}},{beforeText:/^> /,action:{indentAction:e.IndentAction.None,appendText:"> "}},{beforeText:/<\w+/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:e.IndentAction.Outdent}},...Array.from({length:100},(n,t)=>({beforeText:new RegExp(`^${t}\\. .+`),action:{indentAction:e.IndentAction.None,appendText:`${t+1}. `}}))]},r={defaultToken:"",tokenPostfix:".mdx",control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:"meta.content",next:"@frontmatter",nextEmbedded:"yaml"}],[/^\s*import/,{token:"keyword",next:"@import",nextEmbedded:"js"}],[/^\s*export/,{token:"keyword",next:"@export",nextEmbedded:"js"}],[/<\w+/,{token:"type.identifier",next:"@jsx"}],[/<\/?\w+>/,"type.identifier"],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:"white"},{token:"comment"},{token:"keyword",next:"@header"}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,["white","comment","keyword","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,["white","comment","number","white"]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,["white","comment","keyword"]],[/`{3,}(\s.*)?$/,{token:"string",next:"@codeblock_backtick"}],[/~{3,}(\s.*)?$/,{token:"string",next:"@codeblock_tilde"}],[/`{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_backtick",nextEmbedded:"$1"}],[/~{3,}(\S+).*$/,{token:"string",next:"@codeblock_highlight_tilde",nextEmbedded:"$1"}],[/^(\s*)(-{4,})$/,["white","comment"]],[/^(\s*)(>+)/,["white","comment"]],{include:"content"}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,["","string.link","","type.identifier","string.link",""]],[/(\[)(.+)(]\()(.+)(\))/,["","type.identifier","","string.link",""]],[/(\[)(.+)(]\[)(.+)(])/,["","type.identifier","","type.identifier",""]],[/(\[)(.+)(]:\s+)(\S*)/,["","type.identifier","","string.link"]],[/(\[)(.+)(])/,["","type.identifier",""]],[/`.*`/,"variable.source"],[/_/,{token:"emphasis",next:"@emphasis_underscore"}],[/\*(?!\*)/,{token:"emphasis",next:"@emphasis_asterisk"}],[/\*\*/,{token:"strong",next:"@strong"}],[/{/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}]],import:[[/'\s*(;|$)/,{token:"string",next:"@pop",nextEmbedded:"@pop"}]],expression:[[/{/,{token:"delimiter.bracket",next:"@expression"}],[/}/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],export:[[/^\s*$/,{token:"delimiter.bracket",next:"@pop",nextEmbedded:"@pop"}]],jsx:[[/\s+/,""],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,["attribute.name","operator","string"]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,["attribute.name","operator","string"]],[/(\w+(?=\s|>|={|$))/,["attribute.name"]],[/={/,{token:"delimiter.bracket",next:"@expression",nextEmbedded:"js"}],[/>/,{token:"type.identifier",next:"@pop"}]],header:[[/.$/,{token:"keyword",next:"@pop"}],{include:"content"},[/./,{token:"keyword"}]],strong:[[/\*\*/,{token:"strong",next:"@pop"}],{include:"content"},[/./,{token:"strong"}]],emphasis_underscore:[[/_/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],emphasis_asterisk:[[/\*(?!\*)/,{token:"emphasis",next:"@pop"}],{include:"content"},[/./,{token:"emphasis"}]],frontmatter:[[/^---$/,{token:"meta.content",nextEmbedded:"@pop",next:"@pop"}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/.*$/,"variable.source"]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]]}};export{s as conf,r as language}; diff --git a/dist/assets/python-Btku80BI.js b/dist/assets/python-BM_a_F3Y.js similarity index 96% rename from dist/assets/python-Btku80BI.js rename to dist/assets/python-BM_a_F3Y.js index 4681c45..7a6b6d9 100644 --- a/dist/assets/python-Btku80BI.js +++ b/dist/assets/python-BM_a_F3Y.js @@ -1 +1 @@ -import{l as e}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const s={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$"),action:{indentAction:e.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},i={defaultToken:"",tokenPostfix:".python",keywords:["False","None","True","_","and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","exec","finally","for","from","global","if","import","in","is","lambda","match","nonlocal","not","or","pass","print","raise","return","try","type","while","with","yield","int","float","long","complex","hex","abs","all","any","apply","basestring","bin","bool","buffer","bytearray","callable","chr","classmethod","cmp","coerce","compile","complex","delattr","dict","dir","divmod","enumerate","eval","execfile","file","filter","format","frozenset","getattr","globals","hasattr","hash","help","id","input","intern","isinstance","issubclass","iter","len","locals","list","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","reversed","range","raw_input","reduce","reload","repr","reversed","round","self","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","unichr","unicode","vars","xrange","zip","__dict__","__methods__","__members__","__class__","__bases__","__name__","__mro__","__subclasses__","__init__","__import__"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()]/,"@brackets"],[/@[a-zA-Z_]\w*/,"tag"],[/[a-zA-Z_]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}]],whitespace:[[/\s+/,"white"],[/(^#.*$)/,"comment"],[/'''/,"string","@endDocString"],[/"""/,"string","@endDblDocString"]],endDocString:[[/[^']+/,"string"],[/\\'/,"string"],[/'''/,"string","@popall"],[/'/,"string"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string","@popall"],[/"/,"string"]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,"number"]],strings:[[/'$/,"string.escape","@popall"],[/f'{1,3}/,"string.escape","@fStringBody"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/f"{1,3}/,"string.escape","@fDblStringBody"],[/"/,"string.escape","@dblStringBody"]],fStringBody:[[/[^\\'\{\}]+$/,"string","@popall"],[/[^\\'\{\}]+/,"string"],[/\{[^\}':!=]+/,"identifier","@fStringDetail"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],fDblStringBody:[[/[^\\"\{\}]+$/,"string","@popall"],[/[^\\"\{\}]+/,"string"],[/\{[^\}':!=]+/,"identifier","@fStringDetail"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]],fStringDetail:[[/[:][^}]+/,"string"],[/[!][ars]/,"string"],[/=/,"string"],[/\}/,"identifier","@pop"]]}};export{s as conf,i as language}; +import{l as e}from"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";const s={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$"),action:{indentAction:e.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},i={defaultToken:"",tokenPostfix:".python",keywords:["False","None","True","_","and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","exec","finally","for","from","global","if","import","in","is","lambda","match","nonlocal","not","or","pass","print","raise","return","try","type","while","with","yield","int","float","long","complex","hex","abs","all","any","apply","basestring","bin","bool","buffer","bytearray","callable","chr","classmethod","cmp","coerce","compile","complex","delattr","dict","dir","divmod","enumerate","eval","execfile","file","filter","format","frozenset","getattr","globals","hasattr","hash","help","id","input","intern","isinstance","issubclass","iter","len","locals","list","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","reversed","range","raw_input","reduce","reload","repr","reversed","round","self","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","unichr","unicode","vars","xrange","zip","__dict__","__methods__","__members__","__class__","__bases__","__name__","__mro__","__subclasses__","__init__","__import__"],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],tokenizer:{root:[{include:"@whitespace"},{include:"@numbers"},{include:"@strings"},[/[,:;]/,"delimiter"],[/[{}\[\]()]/,"@brackets"],[/@[a-zA-Z_]\w*/,"tag"],[/[a-zA-Z_]\w*/,{cases:{"@keywords":"keyword","@default":"identifier"}}]],whitespace:[[/\s+/,"white"],[/(^#.*$)/,"comment"],[/'''/,"string","@endDocString"],[/"""/,"string","@endDblDocString"]],endDocString:[[/[^']+/,"string"],[/\\'/,"string"],[/'''/,"string","@popall"],[/'/,"string"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string","@popall"],[/"/,"string"]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,"number.hex"],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,"number"]],strings:[[/'$/,"string.escape","@popall"],[/f'{1,3}/,"string.escape","@fStringBody"],[/'/,"string.escape","@stringBody"],[/"$/,"string.escape","@popall"],[/f"{1,3}/,"string.escape","@fDblStringBody"],[/"/,"string.escape","@dblStringBody"]],fStringBody:[[/[^\\'\{\}]+$/,"string","@popall"],[/[^\\'\{\}]+/,"string"],[/\{[^\}':!=]+/,"identifier","@fStringDetail"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],stringBody:[[/[^\\']+$/,"string","@popall"],[/[^\\']+/,"string"],[/\\./,"string"],[/'/,"string.escape","@popall"],[/\\$/,"string"]],fDblStringBody:[[/[^\\"\{\}]+$/,"string","@popall"],[/[^\\"\{\}]+/,"string"],[/\{[^\}':!=]+/,"identifier","@fStringDetail"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]],dblStringBody:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string"],[/"/,"string.escape","@popall"],[/\\$/,"string"]],fStringDetail:[[/[:][^}]+/,"string"],[/[!][ars]/,"string"],[/=/,"string"],[/\}/,"identifier","@pop"]]}};export{s as conf,i as language}; diff --git a/dist/assets/razor-GdNETdnY.js b/dist/assets/razor-YRXx1Ltf.js similarity index 98% rename from dist/assets/razor-GdNETdnY.js rename to dist/assets/razor-YRXx1Ltf.js index 8dcb204..3d68e65 100644 --- a/dist/assets/razor-GdNETdnY.js +++ b/dist/assets/razor-YRXx1Ltf.js @@ -1 +1 @@ -import{l as t}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const e=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[""]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${e.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:t.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${e.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:t.IndentAction.Indent}}]},i={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)([\w\-]+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{m as conf,i as language}; +import{l as t}from"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";const e=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[""]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp(`<(?!(?:${e.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:t.IndentAction.IndentOutdent}},{beforeText:new RegExp(`<(?!(?:${e.join("|")}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,"i"),action:{indentAction:t.IndentAction.Indent}}]},i={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)([\w\-]+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{m as conf,i as language}; diff --git a/dist/assets/tsMode-CTE83alu.js b/dist/assets/tsMode-CmOjBlgw.js similarity index 99% rename from dist/assets/tsMode-CTE83alu.js rename to dist/assets/tsMode-CmOjBlgw.js index 744ff25..3854e05 100644 --- a/dist/assets/tsMode-CTE83alu.js +++ b/dist/assets/tsMode-CmOjBlgw.js @@ -1,4 +1,4 @@ -import{c as M,e as w,U as F,a as P,M as v,l as f,t as K,R as O}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";class E{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=M({moduleId:"vs/language/typescript/tsWorker",createWorker:()=>new Worker(new URL(""+new URL("ts.worker-Dy9lDQQT.js",import.meta.url).href,import.meta.url),{type:"module"}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(w.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}}const s={};s["lib.d.ts"]=!0;s["lib.decorators.d.ts"]=!0;s["lib.decorators.legacy.d.ts"]=!0;s["lib.dom.asynciterable.d.ts"]=!0;s["lib.dom.d.ts"]=!0;s["lib.dom.iterable.d.ts"]=!0;s["lib.es2015.collection.d.ts"]=!0;s["lib.es2015.core.d.ts"]=!0;s["lib.es2015.d.ts"]=!0;s["lib.es2015.generator.d.ts"]=!0;s["lib.es2015.iterable.d.ts"]=!0;s["lib.es2015.promise.d.ts"]=!0;s["lib.es2015.proxy.d.ts"]=!0;s["lib.es2015.reflect.d.ts"]=!0;s["lib.es2015.symbol.d.ts"]=!0;s["lib.es2015.symbol.wellknown.d.ts"]=!0;s["lib.es2016.array.include.d.ts"]=!0;s["lib.es2016.d.ts"]=!0;s["lib.es2016.full.d.ts"]=!0;s["lib.es2016.intl.d.ts"]=!0;s["lib.es2017.arraybuffer.d.ts"]=!0;s["lib.es2017.d.ts"]=!0;s["lib.es2017.date.d.ts"]=!0;s["lib.es2017.full.d.ts"]=!0;s["lib.es2017.intl.d.ts"]=!0;s["lib.es2017.object.d.ts"]=!0;s["lib.es2017.sharedmemory.d.ts"]=!0;s["lib.es2017.string.d.ts"]=!0;s["lib.es2017.typedarrays.d.ts"]=!0;s["lib.es2018.asyncgenerator.d.ts"]=!0;s["lib.es2018.asynciterable.d.ts"]=!0;s["lib.es2018.d.ts"]=!0;s["lib.es2018.full.d.ts"]=!0;s["lib.es2018.intl.d.ts"]=!0;s["lib.es2018.promise.d.ts"]=!0;s["lib.es2018.regexp.d.ts"]=!0;s["lib.es2019.array.d.ts"]=!0;s["lib.es2019.d.ts"]=!0;s["lib.es2019.full.d.ts"]=!0;s["lib.es2019.intl.d.ts"]=!0;s["lib.es2019.object.d.ts"]=!0;s["lib.es2019.string.d.ts"]=!0;s["lib.es2019.symbol.d.ts"]=!0;s["lib.es2020.bigint.d.ts"]=!0;s["lib.es2020.d.ts"]=!0;s["lib.es2020.date.d.ts"]=!0;s["lib.es2020.full.d.ts"]=!0;s["lib.es2020.intl.d.ts"]=!0;s["lib.es2020.number.d.ts"]=!0;s["lib.es2020.promise.d.ts"]=!0;s["lib.es2020.sharedmemory.d.ts"]=!0;s["lib.es2020.string.d.ts"]=!0;s["lib.es2020.symbol.wellknown.d.ts"]=!0;s["lib.es2021.d.ts"]=!0;s["lib.es2021.full.d.ts"]=!0;s["lib.es2021.intl.d.ts"]=!0;s["lib.es2021.promise.d.ts"]=!0;s["lib.es2021.string.d.ts"]=!0;s["lib.es2021.weakref.d.ts"]=!0;s["lib.es2022.array.d.ts"]=!0;s["lib.es2022.d.ts"]=!0;s["lib.es2022.error.d.ts"]=!0;s["lib.es2022.full.d.ts"]=!0;s["lib.es2022.intl.d.ts"]=!0;s["lib.es2022.object.d.ts"]=!0;s["lib.es2022.regexp.d.ts"]=!0;s["lib.es2022.string.d.ts"]=!0;s["lib.es2023.array.d.ts"]=!0;s["lib.es2023.collection.d.ts"]=!0;s["lib.es2023.d.ts"]=!0;s["lib.es2023.full.d.ts"]=!0;s["lib.es2023.intl.d.ts"]=!0;s["lib.es2024.arraybuffer.d.ts"]=!0;s["lib.es2024.collection.d.ts"]=!0;s["lib.es2024.d.ts"]=!0;s["lib.es2024.full.d.ts"]=!0;s["lib.es2024.object.d.ts"]=!0;s["lib.es2024.promise.d.ts"]=!0;s["lib.es2024.regexp.d.ts"]=!0;s["lib.es2024.sharedmemory.d.ts"]=!0;s["lib.es2024.string.d.ts"]=!0;s["lib.es5.d.ts"]=!0;s["lib.es6.d.ts"]=!0;s["lib.esnext.array.d.ts"]=!0;s["lib.esnext.collection.d.ts"]=!0;s["lib.esnext.d.ts"]=!0;s["lib.esnext.decorators.d.ts"]=!0;s["lib.esnext.disposable.d.ts"]=!0;s["lib.esnext.error.d.ts"]=!0;s["lib.esnext.float16.d.ts"]=!0;s["lib.esnext.full.d.ts"]=!0;s["lib.esnext.intl.d.ts"]=!0;s["lib.esnext.iterator.d.ts"]=!0;s["lib.esnext.promise.d.ts"]=!0;s["lib.esnext.sharedmemory.d.ts"]=!0;s["lib.scripthost.d.ts"]=!0;s["lib.webworker.asynciterable.d.ts"]=!0;s["lib.webworker.d.ts"]=!0;s["lib.webworker.importscripts.d.ts"]=!0;s["lib.webworker.iterable.d.ts"]=!0;function A(c,e,t=0){if(typeof c=="string")return c;if(c===void 0)return"";let o="";if(t){o+=e;for(let i=0;ie.text).join(""):""}class y{constructor(e){this._worker=e}_textSpanToRange(e,t){let o=e.getPositionAt(t.start),i=e.getPositionAt(t.start+t.length),{lineNumber:l,column:p}=o,{lineNumber:n,column:r}=i;return{startLineNumber:l,startColumn:p,endLineNumber:n,endColumn:r}}}class H{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf("/lib.")===0?!!s[e.path.slice(1)]:!1}getOrCreateModel(e){const t=F.parse(e),o=w.getModel(t);if(o)return o;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return w.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const i=K.getExtraLibs()[e];return i?w.createModel(i.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e})),this._fetchLibFilesPromise}}class W extends y{constructor(e,t,o,i){super(i),this._libFiles=e,this._defaults=t,this._selector=o,this._disposables=[],this._listener=Object.create(null);const l=r=>{if(r.getLanguageId()!==o)return;const u=()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h?r.isAttachedToEditor()&&this._doValidate(r):this._doValidate(r)};let d;const g=r.onDidChangeContent(()=>{clearTimeout(d),d=window.setTimeout(u,500)}),b=r.onDidChangeAttached(()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h&&(r.isAttachedToEditor()?u():w.setModelMarkers(r,this._selector,[]))});this._listener[r.uri.toString()]={dispose(){g.dispose(),b.dispose(),clearTimeout(d)}},u()},p=r=>{w.setModelMarkers(r,this._selector,[]);const u=r.uri.toString();this._listener[u]&&(this._listener[u].dispose(),delete this._listener[u])};this._disposables.push(w.onDidCreateModel(r=>l(r))),this._disposables.push(w.onWillDisposeModel(p)),this._disposables.push(w.onDidChangeModelLanguage(r=>{p(r.model),l(r.model)})),this._disposables.push({dispose(){for(const r of w.getModels())p(r)}});const n=()=>{for(const r of w.getModels())p(r),l(r)};this._disposables.push(this._defaults.onDidChange(n)),this._disposables.push(this._defaults.onDidExtraLibsChange(n)),w.getModels().forEach(r=>l(r))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const o=[],{noSyntaxValidation:i,noSemanticValidation:l,noSuggestionDiagnostics:p}=this._defaults.getDiagnosticsOptions();i||o.push(t.getSyntacticDiagnostics(e.uri.toString())),l||o.push(t.getSemanticDiagnostics(e.uri.toString())),p||o.push(t.getSuggestionDiagnostics(e.uri.toString()));const n=await Promise.all(o);if(!n||e.isDisposed())return;const r=n.reduce((d,g)=>g.concat(d),[]).filter(d=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(d.code)===-1),u=r.map(d=>d.relatedInformation||[]).reduce((d,g)=>g.concat(d),[]).map(d=>d.file?F.parse(d.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&w.setModelMarkers(e,this._selector,r.map(d=>this._convertDiagnostics(e,d)))}_convertDiagnostics(e,t){const o=t.start||0,i=t.length||1,{lineNumber:l,column:p}=e.getPositionAt(o),{lineNumber:n,column:r}=e.getPositionAt(o+i),u=[];return t.reportsUnnecessary&&u.push(P.Unnecessary),t.reportsDeprecated&&u.push(P.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:l,startColumn:p,endLineNumber:n,endColumn:r,message:A(t.messageText,` +import{c as M,e as w,U as F,a as P,M as v,l as f,t as K,R as O}from"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";class E{constructor(e,t){this._modeId=e,this._defaults=t,this._worker=null,this._client=null,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker()),this._updateExtraLibsToken=0,this._extraLibsChangeListener=this._defaults.onDidExtraLibsChange(()=>this._updateExtraLibs())}dispose(){this._configChangeListener.dispose(),this._extraLibsChangeListener.dispose(),this._stopWorker()}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}async _updateExtraLibs(){if(!this._worker)return;const e=++this._updateExtraLibsToken,t=await this._worker.getProxy();this._updateExtraLibsToken===e&&t.updateExtraLibs(this._defaults.getExtraLibs())}_getClient(){return this._client||(this._client=(async()=>(this._worker=M({moduleId:"vs/language/typescript/tsWorker",createWorker:()=>new Worker(new URL(""+new URL("ts.worker-Dy9lDQQT.js",import.meta.url).href,import.meta.url),{type:"module"}),label:this._modeId,keepIdleModels:!0,createData:{compilerOptions:this._defaults.getCompilerOptions(),extraLibs:this._defaults.getExtraLibs(),customWorkerPath:this._defaults.workerOptions.customWorkerPath,inlayHintsOptions:this._defaults.inlayHintsOptions}}),this._defaults.getEagerModelSync()?await this._worker.withSyncedResources(w.getModels().filter(e=>e.getLanguageId()===this._modeId).map(e=>e.uri)):await this._worker.getProxy()))()),this._client}async getLanguageServiceWorker(...e){const t=await this._getClient();return this._worker&&await this._worker.withSyncedResources(e),t}}const s={};s["lib.d.ts"]=!0;s["lib.decorators.d.ts"]=!0;s["lib.decorators.legacy.d.ts"]=!0;s["lib.dom.asynciterable.d.ts"]=!0;s["lib.dom.d.ts"]=!0;s["lib.dom.iterable.d.ts"]=!0;s["lib.es2015.collection.d.ts"]=!0;s["lib.es2015.core.d.ts"]=!0;s["lib.es2015.d.ts"]=!0;s["lib.es2015.generator.d.ts"]=!0;s["lib.es2015.iterable.d.ts"]=!0;s["lib.es2015.promise.d.ts"]=!0;s["lib.es2015.proxy.d.ts"]=!0;s["lib.es2015.reflect.d.ts"]=!0;s["lib.es2015.symbol.d.ts"]=!0;s["lib.es2015.symbol.wellknown.d.ts"]=!0;s["lib.es2016.array.include.d.ts"]=!0;s["lib.es2016.d.ts"]=!0;s["lib.es2016.full.d.ts"]=!0;s["lib.es2016.intl.d.ts"]=!0;s["lib.es2017.arraybuffer.d.ts"]=!0;s["lib.es2017.d.ts"]=!0;s["lib.es2017.date.d.ts"]=!0;s["lib.es2017.full.d.ts"]=!0;s["lib.es2017.intl.d.ts"]=!0;s["lib.es2017.object.d.ts"]=!0;s["lib.es2017.sharedmemory.d.ts"]=!0;s["lib.es2017.string.d.ts"]=!0;s["lib.es2017.typedarrays.d.ts"]=!0;s["lib.es2018.asyncgenerator.d.ts"]=!0;s["lib.es2018.asynciterable.d.ts"]=!0;s["lib.es2018.d.ts"]=!0;s["lib.es2018.full.d.ts"]=!0;s["lib.es2018.intl.d.ts"]=!0;s["lib.es2018.promise.d.ts"]=!0;s["lib.es2018.regexp.d.ts"]=!0;s["lib.es2019.array.d.ts"]=!0;s["lib.es2019.d.ts"]=!0;s["lib.es2019.full.d.ts"]=!0;s["lib.es2019.intl.d.ts"]=!0;s["lib.es2019.object.d.ts"]=!0;s["lib.es2019.string.d.ts"]=!0;s["lib.es2019.symbol.d.ts"]=!0;s["lib.es2020.bigint.d.ts"]=!0;s["lib.es2020.d.ts"]=!0;s["lib.es2020.date.d.ts"]=!0;s["lib.es2020.full.d.ts"]=!0;s["lib.es2020.intl.d.ts"]=!0;s["lib.es2020.number.d.ts"]=!0;s["lib.es2020.promise.d.ts"]=!0;s["lib.es2020.sharedmemory.d.ts"]=!0;s["lib.es2020.string.d.ts"]=!0;s["lib.es2020.symbol.wellknown.d.ts"]=!0;s["lib.es2021.d.ts"]=!0;s["lib.es2021.full.d.ts"]=!0;s["lib.es2021.intl.d.ts"]=!0;s["lib.es2021.promise.d.ts"]=!0;s["lib.es2021.string.d.ts"]=!0;s["lib.es2021.weakref.d.ts"]=!0;s["lib.es2022.array.d.ts"]=!0;s["lib.es2022.d.ts"]=!0;s["lib.es2022.error.d.ts"]=!0;s["lib.es2022.full.d.ts"]=!0;s["lib.es2022.intl.d.ts"]=!0;s["lib.es2022.object.d.ts"]=!0;s["lib.es2022.regexp.d.ts"]=!0;s["lib.es2022.string.d.ts"]=!0;s["lib.es2023.array.d.ts"]=!0;s["lib.es2023.collection.d.ts"]=!0;s["lib.es2023.d.ts"]=!0;s["lib.es2023.full.d.ts"]=!0;s["lib.es2023.intl.d.ts"]=!0;s["lib.es2024.arraybuffer.d.ts"]=!0;s["lib.es2024.collection.d.ts"]=!0;s["lib.es2024.d.ts"]=!0;s["lib.es2024.full.d.ts"]=!0;s["lib.es2024.object.d.ts"]=!0;s["lib.es2024.promise.d.ts"]=!0;s["lib.es2024.regexp.d.ts"]=!0;s["lib.es2024.sharedmemory.d.ts"]=!0;s["lib.es2024.string.d.ts"]=!0;s["lib.es5.d.ts"]=!0;s["lib.es6.d.ts"]=!0;s["lib.esnext.array.d.ts"]=!0;s["lib.esnext.collection.d.ts"]=!0;s["lib.esnext.d.ts"]=!0;s["lib.esnext.decorators.d.ts"]=!0;s["lib.esnext.disposable.d.ts"]=!0;s["lib.esnext.error.d.ts"]=!0;s["lib.esnext.float16.d.ts"]=!0;s["lib.esnext.full.d.ts"]=!0;s["lib.esnext.intl.d.ts"]=!0;s["lib.esnext.iterator.d.ts"]=!0;s["lib.esnext.promise.d.ts"]=!0;s["lib.esnext.sharedmemory.d.ts"]=!0;s["lib.scripthost.d.ts"]=!0;s["lib.webworker.asynciterable.d.ts"]=!0;s["lib.webworker.d.ts"]=!0;s["lib.webworker.importscripts.d.ts"]=!0;s["lib.webworker.iterable.d.ts"]=!0;function A(c,e,t=0){if(typeof c=="string")return c;if(c===void 0)return"";let o="";if(t){o+=e;for(let i=0;ie.text).join(""):""}class y{constructor(e){this._worker=e}_textSpanToRange(e,t){let o=e.getPositionAt(t.start),i=e.getPositionAt(t.start+t.length),{lineNumber:l,column:p}=o,{lineNumber:n,column:r}=i;return{startLineNumber:l,startColumn:p,endLineNumber:n,endColumn:r}}}class H{constructor(e){this._worker=e,this._libFiles={},this._hasFetchedLibFiles=!1,this._fetchLibFilesPromise=null}isLibFile(e){return e&&e.path.indexOf("/lib.")===0?!!s[e.path.slice(1)]:!1}getOrCreateModel(e){const t=F.parse(e),o=w.getModel(t);if(o)return o;if(this.isLibFile(t)&&this._hasFetchedLibFiles)return w.createModel(this._libFiles[t.path.slice(1)],"typescript",t);const i=K.getExtraLibs()[e];return i?w.createModel(i.content,"typescript",t):null}_containsLibFile(e){for(let t of e)if(this.isLibFile(t))return!0;return!1}async fetchLibFilesIfNecessary(e){this._containsLibFile(e)&&await this._fetchLibFiles()}_fetchLibFiles(){return this._fetchLibFilesPromise||(this._fetchLibFilesPromise=this._worker().then(e=>e.getLibFiles()).then(e=>{this._hasFetchedLibFiles=!0,this._libFiles=e})),this._fetchLibFilesPromise}}class W extends y{constructor(e,t,o,i){super(i),this._libFiles=e,this._defaults=t,this._selector=o,this._disposables=[],this._listener=Object.create(null);const l=r=>{if(r.getLanguageId()!==o)return;const u=()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h?r.isAttachedToEditor()&&this._doValidate(r):this._doValidate(r)};let d;const g=r.onDidChangeContent(()=>{clearTimeout(d),d=window.setTimeout(u,500)}),b=r.onDidChangeAttached(()=>{const{onlyVisible:h}=this._defaults.getDiagnosticsOptions();h&&(r.isAttachedToEditor()?u():w.setModelMarkers(r,this._selector,[]))});this._listener[r.uri.toString()]={dispose(){g.dispose(),b.dispose(),clearTimeout(d)}},u()},p=r=>{w.setModelMarkers(r,this._selector,[]);const u=r.uri.toString();this._listener[u]&&(this._listener[u].dispose(),delete this._listener[u])};this._disposables.push(w.onDidCreateModel(r=>l(r))),this._disposables.push(w.onWillDisposeModel(p)),this._disposables.push(w.onDidChangeModelLanguage(r=>{p(r.model),l(r.model)})),this._disposables.push({dispose(){for(const r of w.getModels())p(r)}});const n=()=>{for(const r of w.getModels())p(r),l(r)};this._disposables.push(this._defaults.onDidChange(n)),this._disposables.push(this._defaults.onDidExtraLibsChange(n)),w.getModels().forEach(r=>l(r))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){const t=await this._worker(e.uri);if(e.isDisposed())return;const o=[],{noSyntaxValidation:i,noSemanticValidation:l,noSuggestionDiagnostics:p}=this._defaults.getDiagnosticsOptions();i||o.push(t.getSyntacticDiagnostics(e.uri.toString())),l||o.push(t.getSemanticDiagnostics(e.uri.toString())),p||o.push(t.getSuggestionDiagnostics(e.uri.toString()));const n=await Promise.all(o);if(!n||e.isDisposed())return;const r=n.reduce((d,g)=>g.concat(d),[]).filter(d=>(this._defaults.getDiagnosticsOptions().diagnosticCodesToIgnore||[]).indexOf(d.code)===-1),u=r.map(d=>d.relatedInformation||[]).reduce((d,g)=>g.concat(d),[]).map(d=>d.file?F.parse(d.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&w.setModelMarkers(e,this._selector,r.map(d=>this._convertDiagnostics(e,d)))}_convertDiagnostics(e,t){const o=t.start||0,i=t.length||1,{lineNumber:l,column:p}=e.getPositionAt(o),{lineNumber:n,column:r}=e.getPositionAt(o+i),u=[];return t.reportsUnnecessary&&u.push(P.Unnecessary),t.reportsDeprecated&&u.push(P.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:l,startColumn:p,endLineNumber:n,endColumn:r,message:A(t.messageText,` `),code:t.code.toString(),tags:u,relatedInformation:this._convertRelatedInformation(e,t.relatedInformation)}}_convertRelatedInformation(e,t){if(!t)return[];const o=[];return t.forEach(i=>{let l=e;if(i.file&&(l=this._libFiles.getOrCreateModel(i.file.fileName)),!l)return;const p=i.start||0,n=i.length||1,{lineNumber:r,column:u}=l.getPositionAt(p),{lineNumber:d,column:g}=l.getPositionAt(p+n);o.push({resource:l.uri,startLineNumber:r,startColumn:u,endLineNumber:d,endColumn:g,message:A(i.messageText,` `)})}),o}_tsDiagnosticCategoryToMarkerSeverity(e){switch(e){case 1:return v.Error;case 3:return v.Info;case 0:return v.Warning;case 2:return v.Hint}return v.Info}}class C extends y{get triggerCharacters(){return["."]}async provideCompletionItems(e,t,o,i){const l=e.getWordUntilPosition(t),p=new O(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn),n=e.uri,r=e.getOffsetAt(t),u=await this._worker(n);if(e.isDisposed())return;const d=await u.getCompletionsAtPosition(n.toString(),r);return!d||e.isDisposed()?void 0:{suggestions:d.entries.map(b=>{let h=p;if(b.replacementSpan){const x=e.getPositionAt(b.replacementSpan.start),D=e.getPositionAt(b.replacementSpan.start+b.replacementSpan.length);h=new O(x.lineNumber,x.column,D.lineNumber,D.column)}const k=[];return b.kindModifiers!==void 0&&b.kindModifiers.indexOf("deprecated")!==-1&&k.push(f.CompletionItemTag.Deprecated),{uri:n,position:t,offset:r,range:h,label:b.name,insertText:b.name,sortText:b.sortText,kind:C.convertKind(b.kind),tags:k}})}}async resolveCompletionItem(e,t){const o=e,i=o.uri,l=o.position,p=o.offset,r=await(await this._worker(i)).getCompletionEntryDetails(i.toString(),p,o.label);return r?{uri:i,position:l,label:r.name,kind:C.convertKind(r.kind),detail:_(r.displayParts),documentation:{value:C.createDocumentationString(r)}}:o}static convertKind(e){switch(e){case a.primitiveType:case a.keyword:return f.CompletionItemKind.Keyword;case a.variable:case a.localVariable:return f.CompletionItemKind.Variable;case a.memberVariable:case a.memberGetAccessor:case a.memberSetAccessor:return f.CompletionItemKind.Field;case a.function:case a.memberFunction:case a.constructSignature:case a.callSignature:case a.indexSignature:return f.CompletionItemKind.Function;case a.enum:return f.CompletionItemKind.Enum;case a.module:return f.CompletionItemKind.Module;case a.class:return f.CompletionItemKind.Class;case a.interface:return f.CompletionItemKind.Interface;case a.warning:return f.CompletionItemKind.File}return f.CompletionItemKind.Property}static createDocumentationString(e){let t=_(e.documentation);if(e.tags)for(const o of e.tags)t+=` diff --git a/dist/assets/typescript-BXKot0Bh.js b/dist/assets/typescript-DMKkacvn.js similarity index 97% rename from dist/assets/typescript-BXKot0Bh.js rename to dist/assets/typescript-DMKkacvn.js index 1b0a811..2b9dfb5 100644 --- a/dist/assets/typescript-BXKot0Bh.js +++ b/dist/assets/typescript-DMKkacvn.js @@ -1 +1 @@ -import{l as e}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},r={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};export{o as conf,r as language}; +import{l as e}from"./SqlEditor-Da5-w0EM.js";import"./index-DvMrZv5L.js";const o={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.IndentAction.IndentOutdent,appendText:" * "}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.IndentAction.None,appendText:" * "}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.IndentAction.None,appendText:"* "}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"`",close:"`",notIn:["string","comment"]},{open:"/**",close:" */",notIn:["string"]}],folding:{markers:{start:new RegExp("^\\s*//\\s*#?region\\b"),end:new RegExp("^\\s*//\\s*#?endregion\\b")}}},r={defaultToken:"invalid",tokenPostfix:".ts",keywords:["abstract","any","as","asserts","bigint","boolean","break","case","catch","class","continue","const","constructor","debugger","declare","default","delete","do","else","enum","export","extends","false","finally","for","from","function","get","if","implements","import","in","infer","instanceof","interface","is","keyof","let","module","namespace","never","new","null","number","object","out","package","private","protected","public","override","readonly","require","global","return","satisfies","set","static","string","super","switch","symbol","this","throw","true","try","type","typeof","undefined","unique","unknown","var","void","while","with","yield","async","await","of"],operators:["<=",">=","==","!=","===","!==","=>","+","-","**","*","/","%","++","--","<<",">",">>>","&","|","^","!","~","&&","||","??","?",":","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=","@"],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],[/`/,"string","@string_backtick"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([dgimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],string_backtick:[[/\$\{/,{token:"delimiter.bracket",next:"@bracketCounting"}],[/[^\\`$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/`/,"string","@pop"]],bracketCounting:[[/\{/,"delimiter.bracket","@bracketCounting"],[/\}/,"delimiter.bracket","@pop"],{include:"common"}]}};export{o as conf,r as language}; diff --git a/dist/assets/xml-suHntPJ6.js b/dist/assets/xml-BM6Sd5qX.js similarity index 93% rename from dist/assets/xml-suHntPJ6.js rename to dist/assets/xml-BM6Sd5qX.js index 9f21801..8d31e48 100644 --- a/dist/assets/xml-suHntPJ6.js +++ b/dist/assets/xml-BM6Sd5qX.js @@ -1 +1 @@ -import{l as e}from"./SqlEditor-BZP69oik.js";import"./index-BVucCY0H.js";const o={comments:{blockComment:[""]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:e.IndentAction.Indent}}]},i={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/"]},brackets:[["<",">"]],autoClosingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],surroundingPairs:[{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],onEnterRules:[{beforeText:new RegExp("<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:e.IndentAction.Indent}}]},i={defaultToken:"",tokenPostfix:".xml",ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,""],{include:"@whitespace"},[/(<)(@qualifiedName)/,[{token:"delimiter"},{token:"tag",next:"@tag"}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:"delimiter"},{token:"tag"},"",{token:"delimiter"}]],[/(<\?)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/(<\!)(@qualifiedName)/,[{token:"delimiter"},{token:"metatag",next:"@tag"}]],[/<\!\[CDATA\[/,{token:"delimiter.cdata",next:"@cdata"}],[/&\w+;/,"string.escape"]],cdata:[[/[^\]]+/,""],[/\]\]>/,{token:"delimiter.cdata",next:"@pop"}],[/\]/,""]],tag:[[/[ \t\r\n]+/,""],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,["attribute.name","","attribute.value"]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,["attribute.name","","attribute.value"]],[/@qualifiedName/,"attribute.name"],[/\?>/,{token:"delimiter",next:"@pop"}],[/(\/)(>)/,[{token:"tag"},{token:"delimiter",next:"@pop"}]],[/>/,{token:"delimiter",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/