@vantran-se/openchamber-web 2.4.1 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/assets/{AboutDialog-BItSBkkK.js → AboutDialog-C8mAGhnz.js} +1 -1
  2. package/dist/assets/{ArchiveView-CEGi3y1V.js → ArchiveView-4-LVDLmf.js} +1 -1
  3. package/dist/assets/{ChangedPathLabel-CQNGnF-T.js → ChangedPathLabel-BCiU4QDF.js} +1 -1
  4. package/dist/assets/{CommandPalette-DWX1HV4m.js → CommandPalette-DEcmPHdC.js} +1 -1
  5. package/dist/assets/{DiffView-Be1Xoy_F.js → DiffView-CaDZ4gTk.js} +3 -3
  6. package/dist/assets/{FilesView-DONPk8-K.js → FilesView-Csrs_BGv.js} +1 -1
  7. package/dist/assets/{GitView-D10y-u46.js → GitView-DvxCZgCW.js} +3 -3
  8. package/dist/assets/{GuestSurfacePane-Cot0OO7x.js → GuestSurfacePane-DNg0xBTD.js} +1 -1
  9. package/dist/assets/{HelpDialog-Bw836_tH.js → HelpDialog-CLyz3_xd.js} +1 -1
  10. package/dist/assets/{InProgressOperationBanner-saAihIub.js → InProgressOperationBanner-BVDKUDqn.js} +2 -2
  11. package/dist/assets/{IntegrationsCatalogView-BtdMeTHf.js → IntegrationsCatalogView-u1gS0Vk8.js} +1 -1
  12. package/dist/assets/{JsonTreeView-BOQC0uTM.js → JsonTreeView-BpJU14WJ.js} +1 -1
  13. package/dist/assets/{MarkdownRendererImpl-CuZntPVf.js → MarkdownRendererImpl-t3OoYn_0.js} +1 -1
  14. package/dist/assets/{MemoryDebugPanel-BZgSuf-z.js → MemoryDebugPanel-9z1jGWze.js} +1 -1
  15. package/dist/assets/{OnboardingScreen-Bx2h2w69.js → OnboardingScreen-xzT7ckY0.js} +1 -1
  16. package/dist/assets/{OpenCodeStatusDialog-N9JgIC1p.js → OpenCodeStatusDialog-skpJZSjK.js} +1 -1
  17. package/dist/assets/{PatchDiff-Ca_Ci2CX.js → PatchDiff-BWW_8bob.js} +1 -1
  18. package/dist/assets/{PierreDiffViewer-Ck0P8Q2W.js → PierreDiffViewer-BZDNV4Uj.js} +1 -1
  19. package/dist/assets/{PlanView-dx70wKWR.js → PlanView-D7wshtfZ.js} +1 -1
  20. package/dist/assets/{ProjectActionsDialog-BS20dYCJ.js → ProjectActionsDialog-BPh74BCt.js} +1 -1
  21. package/dist/assets/{PullRequestComparisonSelector-DOW9_VlK.js → PullRequestComparisonSelector-BBdU2rL1.js} +3 -3
  22. package/dist/assets/{RunOverview-DtxjzGnX.js → RunOverview-Cngm2OOp.js} +2 -2
  23. package/dist/assets/{ScheduledTasksDialog-HcypGtky.js → ScheduledTasksDialog-DUjDdkw2.js} +1 -1
  24. package/dist/assets/{SettingsView-IBrGwDoM.js → SettingsView-CCZOw018.js} +2 -2
  25. package/dist/assets/{SettingsWindow-Bugr9Hmx.js → SettingsWindow-Cndsj5Vu.js} +1 -1
  26. package/dist/assets/{SourceBoardView-BD5rmib8.js → SourceBoardView-8Wp0oUvB.js} +1 -1
  27. package/dist/assets/{SpaceAccessDialog-BYhp5gfB.js → SpaceAccessDialog-CxfCzTpe.js} +1 -1
  28. package/dist/assets/{SpaceApplyDialog-CC0axZal.js → SpaceApplyDialog-CYp0A76N.js} +1 -1
  29. package/dist/assets/{SpaceRow-DDWTQgfP.js → SpaceRow-CQp4PkPJ.js} +1 -1
  30. package/dist/assets/{SpaceSetupOutput-BqurG7V4.js → SpaceSetupOutput-RNo0mWrR.js} +1 -1
  31. package/dist/assets/{SpacesView-Bcbb9aXY.js → SpacesView-BwcDCv3D.js} +1 -1
  32. package/dist/assets/{SubmoduleDiffSummary-BS1PSa4l.js → SubmoduleDiffSummary-BQduif5s.js} +1 -1
  33. package/dist/assets/{ToolOutputDialog-DXWQ17Fv.js → ToolOutputDialog-BVCvqYsK.js} +1 -1
  34. package/dist/assets/{ToolPartDiffPreview-DXRs6cSg.js → ToolPartDiffPreview-BXpCHBW9.js} +1 -1
  35. package/dist/assets/{UsageStatsView-DFVydqMY.js → UsageStatsView-CsC_RzAH.js} +1 -1
  36. package/dist/assets/{Virtualizer-B8rX50qD.js → Virtualizer-nenVQKi3.js} +1 -1
  37. package/dist/assets/{WalkthroughView-CECS5lDs.js → WalkthroughView-CdIYpttA.js} +1 -1
  38. package/dist/assets/{WorktreesView-FH0uzPQG.js → WorktreesView-D102xE1o.js} +1 -1
  39. package/dist/assets/{appThemeRegistry-CnS_OWEL.js → appThemeRegistry-BWap7OfW.js} +1 -1
  40. package/dist/assets/{ar-BlEU--PN.js → ar-9CiK5cuu.js} +3 -3
  41. package/dist/assets/{computeVirtualFileMetrics-rZJ-MSfY.js → computeVirtualFileMetrics-DDyA16hp.js} +1 -1
  42. package/dist/assets/{de-DWs4Mcjc.js → de-Drq6oIkP.js} +3 -3
  43. package/dist/assets/{decorate-Bbbyq0tX.js → decorate-CemSwkUs.js} +1 -1
  44. package/dist/assets/{es-k5T7CE97.js → es-0bkFr34F.js} +3 -3
  45. package/dist/assets/{flexokiTheme-DECIbITo.js → flexokiTheme-PoX6Vqyn.js} +1 -1
  46. package/dist/assets/{fr-CzmypgZ8.js → fr-CjgWVupK.js} +3 -3
  47. package/dist/assets/{he-DdkxJnUn.js → he-BrJa9oPB.js} +4 -4
  48. package/dist/assets/{index-DElZNtel.js → index-B2WHEal3.js} +1 -1
  49. package/dist/assets/{initializeSharedPreferences-C5qncsHs.js → initializeSharedPreferences-1Vo6G7CM.js} +1 -1
  50. package/dist/assets/{install-D-H6uk7D.js → install-FletzeYD.js} +1 -1
  51. package/dist/assets/{isDiffPlainText-DMFSMXcK.js → isDiffPlainText-yXcpftjI.js} +1 -1
  52. package/dist/assets/{isFilePlainText-BQGSJxcX.js → isFilePlainText-Dpm-_Qu8.js} +1 -1
  53. package/dist/assets/{ja-Qqkyglaf.js → ja-cfyrqWPa.js} +3 -3
  54. package/dist/assets/katex.min-F4TD1ekM.js +69 -0
  55. package/dist/assets/{ko-B8idPK2d.js → ko-herKAlGO.js} +3 -3
  56. package/dist/assets/{main-DMdUGpFx.js → main-CO7wKNtS.js} +2 -2
  57. package/dist/assets/{main-CcnDurk6.js → main-DN47yDMe.js} +19 -19
  58. package/dist/assets/markdownCore-BY21GJ_M.js +10 -0
  59. package/dist/assets/{miniChat-B8DW3cmv.js → miniChat-BmFJFQph.js} +2 -2
  60. package/dist/assets/{mobile-Caqsx1Op.js → mobile-DTi98S93.js} +2 -2
  61. package/dist/assets/{moveWorkspacePath-By4gjwmW.js → moveWorkspacePath-CENAo75W.js} +1 -1
  62. package/dist/assets/{nl-CFXZKHp7.js → nl-mZ4VCoiQ.js} +3 -3
  63. package/dist/assets/{parseDiffFromFile-C9ASoy7R.js → parseDiffFromFile-BSmRvd3V.js} +1 -1
  64. package/dist/assets/{pierreDiffTint-IfgQ6oty.js → pierreDiffTint-cyYFR1bm.js} +1 -1
  65. package/dist/assets/{pl-slLgZWDu.js → pl-C98lvkcZ.js} +4 -4
  66. package/dist/assets/{pt-BR-C319g_nn.js → pt-BR-CB63WPLS.js} +3 -3
  67. package/dist/assets/{relocateRestoredSession-DBWTClOj.js → relocateRestoredSession-D8Sf_FG_.js} +1 -1
  68. package/dist/assets/{renderElectronMiniChatApp-C5irgP-w.js → renderElectronMiniChatApp-DmQ8i5jp.js} +2 -2
  69. package/dist/assets/{renderMobileApp-DnyN_ARh.js → renderMobileApp-CND9CafV.js} +3 -3
  70. package/dist/assets/{restartOpenCode-VU-OEAvZ.js → restartOpenCode-D8ExMl55.js} +1 -1
  71. package/dist/assets/{runtimeEndpointReset-BJUtkqal.js → runtimeEndpointReset-lg1O2gVX.js} +3 -3
  72. package/dist/assets/{scheduledTasksApi-FZ9stPNl.js → scheduledTasksApi-CJBNpwgy.js} +1 -1
  73. package/dist/assets/{selectionMarkdown-DV_HvvmZ.js → selectionMarkdown-B_3WTOUr.js} +1 -1
  74. package/dist/assets/{shikiHighlight-BKmAuapa.js → shikiHighlight-DBj_a_TN.js} +1 -1
  75. package/dist/assets/{space-apply-Br_BRuH8.js → space-apply-COMscpEL.js} +1 -1
  76. package/dist/assets/{space-close-D_1iLJrX.js → space-close-DDLvYCUc.js} +1 -1
  77. package/dist/assets/{spaceNetwork-Dcj-qJy-.js → spaceNetwork-CNxs51y4.js} +1 -1
  78. package/dist/assets/{textMateThemeFromAppTheme-Bye_bpEL.js → textMateThemeFromAppTheme-tYpAceV3.js} +1 -1
  79. package/dist/assets/{tr-DNnJ5oqk.js → tr-C5KUa-8X.js} +3 -3
  80. package/dist/assets/{uk-Bw0BJwHw.js → uk-D44Grdmc.js} +3 -3
  81. package/dist/assets/{useAppFontEffects-d9vsRNKm.js → useAppFontEffects-Dm6zEvrf.js} +200 -199
  82. package/dist/assets/{useCallableModelProviders-8CrUkERW.js → useCallableModelProviders-BK3j8Sde.js} +1 -1
  83. package/dist/assets/{useDiffFindSurface-sw5jZ-9V.js → useDiffFindSurface-CaCh-qt2.js} +1 -1
  84. package/dist/assets/{useInlineCommentController-Cw5IRM5Y.js → useInlineCommentController-a2JepiF3.js} +1 -1
  85. package/dist/assets/{useMarkdownLocalAssets-D3a1j44d.js → useMarkdownLocalAssets-BEApAshz.js} +2 -2
  86. package/dist/assets/{useRootScrollLock-BWsNuapq.js → useRootScrollLock-mqVhK2HB.js} +2 -2
  87. package/dist/assets/{useWalkthroughReview-D7I1H6_J.js → useWalkthroughReview-BspAr9Aa.js} +1 -1
  88. package/dist/assets/{vendor-codemirror-language-data-DP_Bh3S8.js → vendor-codemirror-language-data-VzNDjH03.js} +2 -2
  89. package/dist/assets/{zh-CN-Brx5Btej.js → zh-CN-DwBC4Qtd.js} +3 -3
  90. package/dist/assets/{zh-TW-WokiutLA.js → zh-TW-DXEqDBAm.js} +3 -3
  91. package/dist/index.html +2 -2
  92. package/dist/mini-chat.html +2 -2
  93. package/dist/mobile.html +2 -2
  94. package/package.json +2 -2
  95. package/server/index.js +4 -2
  96. package/server/lib/git/service.test.js +1 -1
  97. package/server/lib/opencode/openchamber-routes.test.js +1 -0
  98. package/server/lib/opencode/settings-helpers.js +2 -2
  99. package/server/lib/opencode/settings-helpers.test.js +1 -1
  100. package/server/lib/opencode/settings-registry.json +1 -1
  101. package/server/lib/outbound-proxy.test.js +2 -2
  102. package/server/lib/spaces/tools.test.js +2 -2
  103. package/dist/assets/katex.min-u4DtE8E5.js +0 -69
  104. package/dist/assets/markdownCore-BwFkWhmZ.js +0 -10
@@ -1 +1 @@
1
- import{R as D,h as x,r as L,p as P,v as A,i as T,a as M,j as V,k as q,W as m,m as j,l as _,n as Q,o as R,q as N,s as $,t as U,g as w}from"./computeVirtualFileMetrics-rZJ-MSfY.js";import{u as di}from"./computeVirtualFileMetrics-rZJ-MSfY.js";import{et as I}from"./useAppFontEffects-d9vsRNKm.js";import{h as S,i as b,a as C,r as G}from"./isFilePlainText-BQGSJxcX.js";import{b as k,i as E,r as Z,c as J,a as X}from"./isDiffPlainText-DMFSMXcK.js";import{t as K}from"./themeResolver-yJ9XpNMI.js";import{L as B}from"./vendor-lru_map-Tstukz9J.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./vendor-pierre-theming-Dgp7B_O4.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./vendor-react-BUCujlKS.js";import"./vendor-scheduler-7OC5HNn7.js";import"./katex.min-u4DtE8E5.js";import"./vendor-zod-DDir2TeQ.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-h8RufjAw.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-DP_Bh3S8.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-diff-C3JhlQdm.js";function O(e){const t=[];for(const i of e){const s=D.get(i);if(s==null)throw new Error(`getResolvedLanguages: ${i} is not resolved. Please resolve languages before calling getResolvedLanguages`);t.push(s)}return t}function z(e){for(const t of Array.isArray(e)?e:[e])if(!D.has(t))return!1;return!0}async function F(e){const t=[],i=[];for(const s of e){if(s==="text"||s==="ansi")continue;const r=x(s)??L(s);"then"in r?i.push(r):t.push(r)}return i.length>0&&await Promise.all(i).then(s=>{for(const r of s){if(r==null)throw new Error("resolvedLanguages: unable to resolve language");t.push(r)}}),t}function H(e){return K.getResolvedThemes(e)}async function W(e){for(const i of e)P(i);const t=await K.resolveThemes(e);for(let i=0;i<e.length;i++)A(e[i],t[i]);return t}const y=Symbol("IGNORE_RESPONSE"),Y=1e4;var ee=class{options;highlighter;preferredHighlighter;renderOptions;renderOptionsRequestVersion=0;renderOptionsVersion=0;initialized=!1;workers=[];queuedTasks=[];queuedTaskByInstance=new Map;taskByHighlightKey=new Map;activeTaskById=new Map;activeRequestByInstance=new Map;nextRequestId=0;themeSubscribers=new Set;workersFailed=!1;statSubscribers=new Set;fileCache;diffCache;_queuedBroadcast;lifecycleGeneration=0;constructor(e,{langs:t,theme:i=I,useTokenTransformer:s=!1,lineDiffType:r="word-alt",maxLineDiffLength:n=1e3,tokenizeMaxLineLength:a=1e3,preferredHighlighter:o="shiki-js"}){this.options=e,this.preferredHighlighter=o,this.renderOptions={theme:i,useTokenTransformer:s,lineDiffType:r,maxLineDiffLength:n,tokenizeMaxLineLength:a},this.fileCache=new B.LRUMap(e.totalASTLRUCacheSize??100),this.diffCache=new B.LRUMap(e.totalASTLRUCacheSize??100),this.queueInitialization(t)}isWorkingPool(){return!this.workersFailed}getFileResultCache(e){return e.cacheKey!=null?this.fileCache.get(e.cacheKey):void 0}getDiffResultCache(e){return e.cacheKey!=null?this.diffCache.get(e.cacheKey):void 0}inspectCaches(){const{fileCache:e,diffCache:t}=this;return{fileCache:e,diffCache:t}}evictFileFromCache(e){try{return this.fileCache.delete(e)!==void 0}finally{this.queueBroadcastStateChanges()}}evictDiffFromCache(e){try{return this.diffCache.delete(e)!==void 0}finally{this.queueBroadcastStateChanges()}}async setRenderOptions({theme:e=this.renderOptions.theme??I,useTokenTransformer:t=this.renderOptions.useTokenTransformer??!1,lineDiffType:i=this.renderOptions.lineDiffType??"word-alt",maxLineDiffLength:s=this.renderOptions.maxLineDiffLength??1e3,tokenizeMaxLineLength:r=this.renderOptions.tokenizeMaxLineLength??1e3}){const{lifecycleGeneration:n}=this,a=++this.renderOptionsRequestVersion,o=()=>this.isCurrentLifecycle(n)&&this.renderOptionsRequestVersion===a;try{const h={theme:e,useTokenTransformer:t,lineDiffType:i,maxLineDiffLength:s,tokenizeMaxLineLength:r};if(this.isInitialized()||await this.initialize(),!o()||k(h,this.renderOptions))return;const l=T(e);let u=[];if(M(h.theme,this.renderOptions.theme)||(S(l)?u=H(l):u=await W(l)),!o())return;if(this.highlighter!=null)V(u,this.highlighter);else{const f=await q({themes:l,langs:["text"],preferredHighlighter:this.preferredHighlighter});if(!o())return;this.highlighter=f}const d=this.setRenderOptionsOnWorkers(h,u);this.renderOptions=h,this.renderOptionsVersion++,this.diffCache.clear(),this.fileCache.clear(),this.invalidateRenderTasks();for(const f of this.themeSubscribers)f.onThemeChange();await d}catch(h){if(h instanceof m||!o())return;throw h}}getPreferredHighlighter(){return this.preferredHighlighter}getFileRenderOptions(){const{tokenizeMaxLineLength:e,theme:t,useTokenTransformer:i}=this.renderOptions;return{theme:t,useTokenTransformer:i,tokenizeMaxLineLength:e}}getDiffRenderOptions(){return{...this.renderOptions}}async setRenderOptionsOnWorkers(e,t){if(this.workersFailed)return;this.isInitialized()||await this.initialize();const i=[];for(const s of this.workers){if(!s.initialized)throw console.log({managedWorker:s}),new Error("setRenderOptionsOnWorkers: Somehow we have an uninitialized worker");i.push(new Promise((r,n)=>{const a=this.generateRequestId(),o={type:"set-render-options",id:a,request:{type:"set-render-options",id:a,renderOptions:e,resolvedThemes:t},resolve:r,reject:n,requestStart:Date.now()};this.activeTaskById.set(a,o),s.pendingSetupRequestId=a,s.worker.postMessage(o.request)}))}await Promise.all(i)}subscribeToThemeChanges(e){return this.themeSubscribers.add(e),this.queueBroadcastStateChanges(),()=>{this.unsubscribeToThemeChanges(e),this.queueBroadcastStateChanges()}}unsubscribeToThemeChanges(e){this.themeSubscribers.delete(e),this.queueBroadcastStateChanges()}subscribeToStatChanges(e){return this.statSubscribers.add(e),e(this.getStats()),()=>{this.statSubscribers.delete(e)}}queueBroadcastStateChanges(){this._queuedBroadcast==null&&(this._queuedBroadcast=requestAnimationFrame(this._broadcastStateChanges))}_broadcastStateChanges=()=>{this._queuedBroadcast!=null&&(cancelAnimationFrame(this._queuedBroadcast),this._queuedBroadcast=void 0);const e=this.getStats();for(const t of this.statSubscribers)t(e)};cleanUpTasks(e){this.detachInstanceFromQueuedTasks(e);const t=this.activeRequestByInstance.get(e);if(t!=null){const i=this.activeTaskById.get(t);c(i)?(this.detachInstanceFromRenderTask(i,e),!i.primeCache&&i.instances.size===0&&this.removeActiveTask(i)):this.activeTaskById.delete(t)}this.activeRequestByInstance.delete(e),this.queueBroadcastStateChanges()}isInitialized(){return this.initialized===!0}async initialize(e=[]){if(this.initialized!==!0)if(this.initialized===!1){const{lifecycleGeneration:t}=this,i=new Promise((s,r)=>{(async()=>{try{const n=T(this.renderOptions.theme);let a=[];if(S(n)?a=H(n):a=await W(n),!this.isCurrentLifecycle(t)){s();return}let o=[];if(z(e)?o=O(e):o=await F(e),!this.isCurrentLifecycle(t)){s();return}const[h]=await Promise.all([q({themes:n,langs:["text",...e],preferredHighlighter:this.preferredHighlighter}),this.initializeWorkers(a,o)]);if(!this.isCurrentLifecycle(t)){this.terminateWorkers(),s();return}this.highlighter=h,this.initialized=!0,this.diffCache.clear(),this.fileCache.clear(),this.drainQueue(),this.queueBroadcastStateChanges(),s()}catch(n){if(n instanceof m||!this.isCurrentLifecycle(t)){s();return}this.initialized=!1,this.workersFailed=!0,this.cancelActiveWorkerTasks(),this.terminateWorkers(),this.activeTaskById.clear();for(const a of this.queuedTasks)this.rejectRenderTaskCallbacks(a,v(n));this.queueBroadcastStateChanges(),r(n)}})()});return this.initialized=i,this.queueBroadcastStateChanges(),i}else return this.initialized}async initializeWorkers(e,t){this.workersFailed=!1;const i=[],s=void 0;this.workers.length>0&&this.terminateWorkers();for(let a=0;a<(this.options.poolSize??8);a++){const o=this.options.workerFactory(),h={worker:o,requestId:void 0,pendingSetupRequestId:void 0,initialized:!1,langs:new Set(["text",...t.map(({name:l})=>l)]),customExtensionsVersion:0};o.addEventListener("message",l=>{this.handleWorkerMessage(h,l.data)}),o.addEventListener("error",l=>this.handleWorkerError(h,l)),this.workers.push(h),i.push(new Promise((l,u)=>{const d=this.generateRequestId(),f={type:"initialize",id:d,request:{type:"initialize",id:d,renderOptions:this.renderOptions,preferredHighlighter:this.preferredHighlighter,resolvedThemes:e,resolvedLanguages:t,customExtensionsVersion:void 0,customExtensionMap:s},resolve(){h.initialized=!0,l()},reject:u,requestStart:Date.now()};h.pendingSetupRequestId=d,this.activeTaskById.set(d,f),this.executeTask(h,f)}))}const r=this.options.workerInitializationTimeout??Y;let n;try{await Promise.race([Promise.all(i),new Promise((a,o)=>{n=setTimeout(()=>{o(new Error(`WorkerPoolManager: worker initialization timed out after ${r}ms`))},r)})])}finally{n!=null&&clearTimeout(n)}}handleWorkerError(e,t){const{onWorkerError:i}=this.options;if(i!=null)try{i(t,e.worker)}catch(a){console.error("WorkerPoolManager: onWorkerError threw:",a)}else console.error("Worker error:",t,e);const{pendingSetupRequestId:s}=e;if(s==null)return;const r=this.activeTaskById.get(s);if(r?.type!=="initialize")return;const n=se(t);i!=null&&j(n),r.reject(n),this.cleanWorkerAndTask(e,r)}drainQueue=()=>{if(this._queuedDrain=void 0,!(this.initialized!==!0||this.queuedTasks.length===0)){for(let e=0;e<this.queuedTasks.length;){const t=this.queuedTasks[e];if(this.hasActiveRequest(t)){e++;continue}const i=ie(t),s=this.getAvailableWorker(i);if(s==null)break;this.queuedTasks.splice(e,1),this.assignWorkerToTask(t,s),this.resolveLanguagesAndExecuteTask(s,t,i)}this.queueBroadcastStateChanges()}};highlightFileAST(e,t){const i=this.getFileResultCache(t);b(t)||i!=null&&C(i.options,this.getFileRenderOptions())||this.hasMatchingFileInstanceTask(e,t)||this.submitTask(e,{type:"file",file:t})}primeFileHighlightCache(e){if(!this.isWorkingPool())return Promise.reject(new Error("WorkerPoolManager.primeFileHighlightCache: worker pool is not working"));const t=this.getOrCreateFileHighlightCacheTask(e);return t!=null?this.createRenderTaskCallbacks(t):Promise.resolve()}getOrCreateFileHighlightCacheTask(e){if(e.cacheKey==null){console.warn(`WorkerPoolManager.primeFileHighlightCache: priming highlight cache requires file.cacheKey; skipping "${e.name}".`);return}const t=this.getFileResultCache(e),i=this.getFileHighlightKey(e);if(i==null||b(e)||t!=null&&C(t.options,this.getFileRenderOptions()))return;const s=this.getTaskByHighlightKey(i);if(s!=null)return s.primeCache=!0,s.type==="file"?s:void 0;{const r=this.submitCacheTask({type:"file",file:e},i);return r.type==="file"?r:void 0}}getPlainFileAST(e,t,i,s){if(this.highlighter==null){this.queueInitialization();return}return G(e,this.highlighter,this.renderOptions,{forcePlainText:!0,startingLine:t,totalLines:i,lines:s})}highlightDiffAST(e,t){const i=this.getDiffResultCache(t);E(t)||i!=null&&k(i.options,this.getDiffRenderOptions())||this.hasMatchingDiffInstanceTask(e,t)||this.submitTask(e,{type:"diff",diff:t})}primeDiffHighlightCache(e){if(!this.isWorkingPool())return Promise.reject(new Error("WorkerPoolManager.primeDiffHighlightCache: worker pool is not working"));const t=this.getOrCreateDiffHighlightCacheTask(e);return t!=null?this.createRenderTaskCallbacks(t):Promise.resolve()}getOrCreateDiffHighlightCacheTask(e){if(e.cacheKey==null){console.warn(`WorkerPoolManager.primeDiffHighlightCache: priming highlight cache requires diff.cacheKey; skipping "${e.prevName??e.name}" -> "${e.name}".`);return}const t=this.getDiffResultCache(e),i=this.getDiffHighlightKey(e);if(i==null||E(e)||t!=null&&k(t.options,this.getDiffRenderOptions()))return;const s=this.getTaskByHighlightKey(i);if(s!=null)return s.primeCache=!0,s.type==="diff"?s:void 0;{const r=this.submitCacheTask({type:"diff",diff:e},i);return r.type==="diff"?r:void 0}}getPlainDiffAST(e,t,i,s,r){return this.highlighter!=null?Z(e,this.highlighter,this.renderOptions,{forcePlainText:!0,startingLine:t,totalLines:i,expandedHunks:s,collapsedContextThreshold:r}):void 0}terminate(){this.lifecycleGeneration++,this.cancelActiveWorkerTasks(),this.terminateWorkers();const e=new m;for(const t of this.queuedTasks)this.rejectRenderTaskCallbacks(t,e);this.fileCache.clear(),this.diffCache.clear(),this.activeRequestByInstance.clear(),this.queuedTasks.length=0,this.queuedTaskByInstance.clear(),this.taskByHighlightKey.clear(),this.activeTaskById.clear(),this.highlighter=void 0,this.initialized=!1,this.workersFailed=!1,this.queueBroadcastStateChanges()}isCurrentLifecycle(e){return this.lifecycleGeneration===e}queueInitialization(e){this.initialize(e).catch(t=>{_(t)||console.error(t)})}cancelActiveWorkerTasks(){const e=new m;for(const t of this.activeTaskById.values())"reject"in t?t.reject(e):c(t)&&this.rejectRenderTaskCallbacks(t,e)}terminateWorkers(){for(const e of this.workers)e.worker.terminate();this.workers.length=0}getStats(){return{managerState:this.initialized===!1?"waiting":this.initialized!==!0?"initializing":"initialized",totalWorkers:this.workers.length,workersFailed:this.workersFailed,busyWorkers:this.workers.filter(e=>e.requestId!=null||e.pendingSetupRequestId!=null).length,queuedTasks:this.queuedTasks.length,activeTasks:this.activeTaskById.size,themeSubscribers:this.themeSubscribers.size,fileCacheSize:this.fileCache.size,diffCacheSize:this.diffCache.size}}submitTask(e,t){this.initialized===!1&&this.queueInitialization();const i=this.getHighlightKeyForRequest(t),s=i!=null?this.getTaskByHighlightKey(i):void 0;if(s!=null){this.detachInstanceFromQueuedTasks(e,s),this.addInstanceToTask(s,e),this.queueBroadcastStateChanges();return}this.detachInstanceFromQueuedTasks(e);const r=this.generateRequestId(),n=Date.now(),{renderOptionsVersion:a}=this,o=(()=>{switch(t.type){case"file":return{type:"file",id:r,request:{...t,id:r},instances:new Set([e]),primeCache:!1,highlightKey:i,callbacks:new Set,renderOptionsVersion:a,requestStart:n};case"diff":return{type:"diff",id:r,request:{...t,id:r},instances:new Set([e]),primeCache:!1,highlightKey:i,callbacks:new Set,renderOptionsVersion:a,requestStart:n}}})();this.enqueueRenderTask(o,e)}submitCacheTask(e,t){this.initialized===!1&&this.queueInitialization();const i=this.generateRequestId(),s=Date.now(),{renderOptionsVersion:r}=this,n=(()=>{switch(e.type){case"file":return{type:"file",id:i,request:{...e,id:i},instances:new Set,primeCache:!0,highlightKey:t,callbacks:new Set,renderOptionsVersion:r,requestStart:s};case"diff":return{type:"diff",id:i,request:{...e,id:i},instances:new Set,primeCache:!0,highlightKey:t,callbacks:new Set,renderOptionsVersion:r,requestStart:s}}})();return this.enqueueRenderTask(n),n}enqueueRenderTask(e,t){this.queuedTasks.push(e),t!=null&&this.queuedTaskByInstance.set(t,e),e.highlightKey!=null&&this.taskByHighlightKey.set(e.highlightKey,e),this.queueDrain()}async resolveLanguagesAndExecuteTask(e,t,i){try{const s=i.filter(n=>!Q(n));s.length>0&&q({themes:T(this.renderOptions.theme),langs:["text",...s],preferredHighlighter:this.preferredHighlighter}).catch(n=>{console.error(n)});const r=i.filter(n=>!e.langs.has(n));if(r.length>0&&(z(r)?t.request.resolvedLanguages=O(r):t.request.resolvedLanguages=await F(r)),!this.activeTaskById.has(t.id)){e.requestId===t.id&&(this.cleanWorkerAndTask(e,t),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain());return}this.executeTask(e,t)}catch(s){this.rejectRenderTaskCallbacks(t,v(s)),this.cleanWorkerAndTask(e,t),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain()}}handleWorkerMessage(e,t){const i=this.activeTaskById.get(t.id);try{if(i==null)throw y;if(t.type==="error"){const s=new Error(t.error);if(t.stack&&(s.stack=t.stack),"reject"in i)i.reject(s);else if(c(i))this.notifyHighlightError(i,s),this.rejectRenderTaskCallbacks(i,s);else throw new Error("handleWorkerMessage: unknown task type");throw s}else{if(c(i))for(const{name:s}of i.request.resolvedLanguages??[])e.langs.add(s);switch(t.requestType){case"initialize":if(i.type!=="initialize")throw new Error("handleWorkerMessage: task/response dont match");this.syncCustomExtensionVersion(e,i.request),i.resolve();break;case"set-render-options":if(i.type!=="set-render-options")throw new Error("handleWorkerMessage: task/response dont match");i.resolve();break;case"file":{if(i.type!=="file")throw new Error("handleWorkerMessage: task/response dont match");const{result:s,options:r}=t;if(!this.isCurrentRenderTask(i)||!C(r,this.getFileRenderOptions()))throw y;const{request:n}=i;this.syncCustomExtensionVersion(e,n),i.cacheKeyAtDispatch!=null&&this.fileCache.set(i.cacheKeyAtDispatch,{result:s,options:r}),this.resolveRenderTaskCallbacks(i),this.notifyFileInstances(i,s,r);break}case"diff":{if(i.type!=="diff")throw new Error("handleWorkerMessage: task/response dont match");const{result:s,options:r}=t;if(!this.isCurrentRenderTask(i)||!k(r,this.getDiffRenderOptions()))throw y;const{request:n}=i;this.syncCustomExtensionVersion(e,n),i.cacheKeyAtDispatch!=null&&this.diffCache.set(i.cacheKeyAtDispatch,{result:s,options:r}),this.resolveRenderTaskCallbacks(i),this.notifyDiffInstances(i,s,r);break}}}}catch(s){s!==y&&console.error(s,i,t)}this.cleanWorkerAndTask(e,i,t.id),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain()}_queuedDrain;queueDrain(){this._queuedDrain==null&&(this._queuedDrain=Promise.resolve().then(this.drainQueue),this.queueBroadcastStateChanges())}assignWorkerToTask(e,t){t.requestId=e.id,c(e)&&(this.clearQueuedInstanceRequests(e),this.trackInstanceRequests(e)),this.activeTaskById.set(e.id,e)}cleanWorkerAndTask(e,t,i=t?.id){e.requestId===i&&(e.requestId=void 0),e.pendingSetupRequestId===i&&(e.pendingSetupRequestId=void 0),t!=null&&(c(t)&&(this.rejectRenderTaskCallbacks(t,new R),this.clearInstanceRequests(t),this.clearHighlightKey(t)),this.activeTaskById.delete(t.id))}executeTask(e,t){te(t.request)&&this.maybeAttachCustomExtensions(e,t.request),this.activeTaskById.has(t.id)||this.assignWorkerToTask(t,e);try{t.type==="file"?t.cacheKeyAtDispatch=t.request.file.cacheKey:t.type==="diff"&&(t.cacheKeyAtDispatch=t.request.diff.cacheKey),e.worker.postMessage(t.request)}catch(i){console.error("Failed to post message to worker:",i),c(t)?(this.notifyHighlightError(t,i),this.rejectRenderTaskCallbacks(t,v(i))):"reject"in t&&t.reject(i),this.cleanWorkerAndTask(e,t),this.queuedTasks.length>0&&this.queueDrain()}this.queueBroadcastStateChanges()}maybeAttachCustomExtensions(e,t){if(t.customExtensionsVersion!=null)return;const i=$();e.customExtensionsVersion>=i||(t.customExtensionsVersion=i,t.customExtensionMap=N())}syncCustomExtensionVersion(e,t){t.customExtensionsVersion!=null&&(e.customExtensionsVersion=t.customExtensionsVersion)}getAvailableWorker(e){let t;for(const i of this.workers){if(i.requestId!=null||i.pendingSetupRequestId!=null||!i.initialized)continue;if(t=i,e.length===0)break;let s=!0;for(const r of e)if(!i.langs.has(r)){s=!1;break}if(s)break}return t}getFileHighlightKey(e){if(e.cacheKey!=null)return`file:${e.cacheKey}:${this.renderOptionsVersion}`}getDiffHighlightKey(e){if(e.cacheKey!=null)return`diff:${e.cacheKey}:${this.renderOptionsVersion}`}getHighlightKeyForRequest(e){switch(e.type){case"file":return this.getFileHighlightKey(e.file);case"diff":return this.getDiffHighlightKey(e.diff)}}hasActiveRequest(e){for(const t of g(e))if(this.activeRequestByInstance.has(t))return!0;return!1}addInstanceToTask(e,t){e.type,e.instances.add(t),this.activeTaskById.has(e.id)?this.activeRequestByInstance.set(t,e.id):this.queuedTaskByInstance.set(t,e)}detachInstanceFromQueuedTasks(e,t){const i=this.queuedTaskByInstance.get(e);i==null||i===t||(this.queuedTaskByInstance.delete(e),this.detachInstanceFromRenderTask(i,e),!i.primeCache&&i.instances.size===0&&this.removeQueuedTask(i))}detachInstanceFromRenderTask(e,t){e.type,e.instances.delete(t)}removeQueuedTask(e){const t=this.queuedTasks.indexOf(e);t!==-1&&this.queuedTasks.splice(t,1),this.rejectRenderTaskCallbacks(e,new R),this.clearQueuedInstanceRequests(e),this.clearHighlightKey(e)}removeActiveTask(e){this.rejectRenderTaskCallbacks(e,new R),this.clearInstanceRequests(e),this.clearHighlightKey(e),this.activeTaskById.delete(e.id)}createRenderTaskCallbacks(e){return new Promise((t,i)=>{e.callbacks.add({resolve:t,reject:i})})}resolveRenderTaskCallbacks(e){for(const t of e.callbacks)t.resolve();e.callbacks.clear()}rejectRenderTaskCallbacks(e,t){for(const i of e.callbacks)i.reject(t);e.callbacks.clear()}invalidateRenderTasks(){for(let e=this.queuedTasks.length-1;e>=0;e--){const t=this.queuedTasks[e];t.renderOptionsVersion!==this.renderOptionsVersion&&this.removeQueuedTask(t)}for(const e of Array.from(this.activeTaskById.values()))c(e)&&e.renderOptionsVersion!==this.renderOptionsVersion&&this.removeActiveTask(e)}clearQueuedInstanceRequests(e){for(const t of g(e))this.queuedTaskByInstance.get(t)===e&&this.queuedTaskByInstance.delete(t)}clearHighlightKey(e){e.highlightKey!=null&&this.taskByHighlightKey.get(e.highlightKey)===e&&this.taskByHighlightKey.delete(e.highlightKey)}trackInstanceRequests(e){for(const t of g(e))this.activeRequestByInstance.set(t,e.id)}clearInstanceRequests(e){for(const t of g(e))this.activeRequestByInstance.get(t)===e.id&&this.activeRequestByInstance.delete(t)}notifyFileInstances(e,t,i){for(const s of e.instances)this.activeRequestByInstance.get(s)===e.id&&s.onHighlightSuccess(e.request.file,t,i)}notifyDiffInstances(e,t,i){for(const s of e.instances)this.activeRequestByInstance.get(s)===e.id&&s.onHighlightSuccess(e.request.diff,t,i)}notifyHighlightError(e,t){for(const i of g(e))this.activeRequestByInstance.get(i)===e.id&&i.onHighlightError(t)}hasMatchingFileInstanceTask(e,t){for(const i of this.iterateRenderTasks())if(i.type==="file"&&this.isCurrentRenderTask(i)&&i.instances.has(e)&&J(t,i.request.file))return!0;return!1}hasMatchingDiffInstanceTask(e,t){for(const i of this.iterateRenderTasks())if(i.type==="diff"&&this.isCurrentRenderTask(i)&&i.instances.has(e)&&X(i.request.diff,t))return!0;return!1}getTaskByHighlightKey(e){const t=this.taskByHighlightKey.get(e);return t!=null&&this.isCurrentRenderTask(t)?t:void 0}isCurrentRenderTask(e){return e.renderOptionsVersion===this.renderOptionsVersion}*iterateRenderTasks(){for(const e of this.queuedTasks)yield e;for(const e of this.activeTaskById.values())c(e)&&(yield e)}generateRequestId(){return`req_${++this.nextRequestId}`}};function te(e){return e.type==="initialize"||e.type==="file"||e.type==="diff"}function ie(e){const t=new Set;if(e.type==="initialize"||e.type==="set-render-options")return[];switch(e.type){case"file":t.add(e.request.file.lang??w(e.request.file.name));break;case"diff":t.add(e.request.diff.lang??w(e.request.diff.name)),t.add(e.request.diff.lang??w(e.request.diff.prevName??"-"))}return t.delete("text"),Array.from(t)}function c(e){return e?.type==="file"||e?.type==="diff"}function g(e){return e.instances}function v(e){if(e instanceof Error)return e;if(e!=null&&typeof e=="object"){if("error"in e&&e.error instanceof Error)return e.error;if("message"in e&&typeof e.message=="string")return new Error(e.message)}return new Error(String(e))}function se(e){const t="error"in e?e.error:void 0,i="message"in e&&typeof e.message=="string"&&e.message!==""?e.message:t instanceof Error?t.message:"the worker script failed to load (the error event carries no message)";return new U(`WorkerPoolManager: worker failed: ${i}`,t instanceof Error?{cause:t}:void 0)}let p;function hi({poolOptions:e,highlighterOptions:t}){return p??=new ee(e,t),p}function li(){p!=null&&(p.terminate(),p=void 0)}export{ee as WorkerPoolManager,R as WorkerPoolTaskCanceledError,m as WorkerPoolTerminatedError,U as WorkerPoolWorkerError,hi as getOrCreateWorkerPoolSingleton,_ as isHandledWorkerPoolError,di as isWorkerPoolCancellation,li as terminateWorkerPoolSingleton};
1
+ import{R as D,h as x,r as L,p as P,v as A,i as T,a as M,j as V,k as q,W as m,m as j,l as _,n as Q,o as R,q as N,s as $,t as U,g as w}from"./computeVirtualFileMetrics-DDyA16hp.js";import{u as di}from"./computeVirtualFileMetrics-DDyA16hp.js";import{eu as I}from"./useAppFontEffects-Dm6zEvrf.js";import{h as S,i as b,a as C,r as G}from"./isFilePlainText-Dpm-_Qu8.js";import{b as k,i as E,r as Z,c as J,a as X}from"./isDiffPlainText-yXcpftjI.js";import{t as K}from"./themeResolver-yJ9XpNMI.js";import{L as B}from"./vendor-lru_map-Tstukz9J.js";import"./vendor-vite-runtime-DD1OZmLC.js";import"./vendor-shiki-Bbf2GEcE.js";import"./vendor-shikijs-core-CGM_jqPK.js";import"./vendor-shikijs-types-CPSbSeK6.js";import"./vendor-shikijs-vscode-textmate-BgLrS_2D.js";import"./vendor-hast-util-to-html-BKBhbTDb.js";import"./vendor-html-void-elements-CkdplsNl.js";import"./vendor-property-information-rJCbAzvX.js";import"./vendor-zwitch-C2o2j-tx.js";import"./vendor-stringify-entities-CsH1VEn9.js";import"./vendor-character-entities-legacy-BpoLgcEt.js";import"./vendor-character-entities-html4-D7taRCQ7.js";import"./vendor-ccount-c2V3InAJ.js";import"./vendor-comma-separated-tokens-D8TqSuIK.js";import"./vendor-space-separated-tokens-DD3iYX1K.js";import"./vendor-hast-util-whitespace-D4Wp6AEg.js";import"./vendor-shikijs-engine-oniguruma-DPWuIF1G.js";import"./vendor-pierre-theming-Dgp7B_O4.js";import"./vendor-shikijs-engine-javascript-Cme4830A.js";import"./vendor-oniguruma-to-es-DLBnFDCE.js";import"./vendor-oniguruma-parser-C0D4_9rT.js";import"./vendor-regex-BBWcyTkg.js";import"./vendor-regex-utilities-2BQyy0xI.js";import"./vendor-regex-recursion-JU4mF-dD.js";import"./vendor-shikijs-transformers-CZWsLLKm.js";import"./vendor-react-BUCujlKS.js";import"./vendor-scheduler-7OC5HNn7.js";import"./katex.min-F4TD1ekM.js";import"./vendor-zod-DDir2TeQ.js";import"./vendor-zustand-BAGL70zf.js";import"./vendor-opencode-client-h8RufjAw.js";import"./vendor-base-ui-CPKyhvxM.js";import"./vendor-floating-ui-utils-D6FqdtJt.js";import"./vendor-floating-ui-dom-BTvzWks8.js";import"./vendor-floating-ui-core-PuGzNPnN.js";import"./vendor-floating-ui-react-dom-DxYCWdHj.js";import"./vendor-use-sync-external-store-D6wYuSt-.js";import"./vendor-simplewebauthn-browser-VDA66rT_.js";import"./vendor-class-variance-authority-5VPnzWs2.js";import"./vendor-clsx-B-dksMZM.js";import"./vendor-dnd-kit-core-BZknOX2w.js";import"./vendor-dnd-kit-utilities-B_MdXhJC.js";import"./vendor-dnd-kit-accessibility-BHxJPORy.js";import"./vendor-dnd-kit-sortable-CsEagZ81.js";import"./vendor-tanstack-react-virtual-Bmi0tTrf.js";import"./vendor-tanstack-virtual-core-CdGDGrnp.js";import"./vendor-framer-motion-DxDVhOLc.js";import"./vendor-motion-dom-HXPOMxb7.js";import"./vendor-motion-utils-BGh8QBgx.js";import"./vendor-codemirror-commands-dar6chwA.js";import"./vendor-codemirror-state-Dek9sMtw.js";import"./vendor-marijn-find-cluster-break-DXwl3gUT.js";import"./vendor-codemirror-view-B66jUSmE.js";import"./vendor-style-mod-NZ5MEPvj.js";import"./vendor-w3c-keyname-Vcq4gwWv.js";import"./vendor-crelt-C8TCjufn.js";import"./vendor-codemirror-language-DyL0aCoH.js";import"./vendor-lezer-common-B3-cUCR_.js";import"./vendor-lezer-highlight-CDMHUZ74.js";import"./vendor-codemirror-streamparser-CmlTsbN2.js";import"./vendor-codemirror-lang-javascript-Cem6LjJ8.js";import"./vendor-lezer-javascript-D7Tj24ot.js";import"./vendor-lezer-lr-bhwg1HMg.js";import"./vendor-codemirror-autocomplete-CIqXJolH.js";import"./vendor-codemirror-lang-json-C9rLLO0q.js";import"./vendor-lezer-json-Iaex0UN-.js";import"./vendor-codemirror-lang-css-9qjxcVkg.js";import"./vendor-lezer-css-C5xB6jxd.js";import"./vendor-codemirror-lang-html-D7VQUxeE.js";import"./vendor-lezer-html-C0I1p52t.js";import"./vendor-codemirror-lang-markdown-Cikh4w2I.js";import"./vendor-lezer-markdown-C6g-d6P3.js";import"./vendor-codemirror-language-data-VzNDjH03.js";import"./vendor-codemirror-lang-python-DVl8-2Op.js";import"./vendor-lezer-python-CvuFxeZl.js";import"./vendor-sonner-DFyL3AvE.js";import"./vendor-capacitor-core-B4EWRrHz.js";import"./vendor-cmdk-DgLInKvT.js";import"./vendor-radix-ui-react-dialog-B94Bt2qq.js";import"./vendor-radix-ui-primitive-Dc_FVRD7.js";import"./vendor-radix-ui-react-compose-refs-DcAh5WdT.js";import"./vendor-radix-ui-react-context-Czxm7Z62.js";import"./vendor-radix-ui-react-id-f5BLKEVw.js";import"./vendor-radix-ui-react-use-layout-effect-D_3IhJdJ.js";import"./vendor-radix-ui-react-use-controllable-state-BFT5YmkA.js";import"./vendor-radix-ui-react-dismissable-layer-D7kXcwgJ.js";import"./vendor-radix-ui-react-primitive-DhVoX9SD.js";import"./vendor-radix-ui-react-slot-BQgQOasS.js";import"./vendor-radix-ui-react-use-callback-ref-BZPnuXAC.js";import"./vendor-radix-ui-react-use-escape-keydown-oph88g-F.js";import"./vendor-radix-ui-react-focus-scope-CiaxW4dD.js";import"./vendor-radix-ui-react-portal-BMJYHWck.js";import"./vendor-radix-ui-react-presence-CNxf-uq4.js";import"./vendor-radix-ui-react-focus-guards-B6qJXYua.js";import"./vendor-react-remove-scroll-DO7dCTnK.js";import"./vendor-tslib-De9GV7Vy.js";import"./vendor-react-remove-scroll-bar-BcFYyj3E.js";import"./vendor-react-style-singleton-q6EMHnwf.js";import"./vendor-get-nonce-C-Z93AgS.js";import"./vendor-use-sidecar-zDC0RhA3.js";import"./vendor-use-callback-ref-D3RC8gqK.js";import"./vendor-aria-hidden-DvXkyWUv.js";import"./vendor-legendapp-list-D2O6oUGf.js";import"./vendor-tailwind-merge-CPcsbTWB.js";import"./vendor-fuse.js-Dw8P0qyA.js";import"./vendor-diff-C3JhlQdm.js";function O(e){const t=[];for(const i of e){const s=D.get(i);if(s==null)throw new Error(`getResolvedLanguages: ${i} is not resolved. Please resolve languages before calling getResolvedLanguages`);t.push(s)}return t}function z(e){for(const t of Array.isArray(e)?e:[e])if(!D.has(t))return!1;return!0}async function F(e){const t=[],i=[];for(const s of e){if(s==="text"||s==="ansi")continue;const r=x(s)??L(s);"then"in r?i.push(r):t.push(r)}return i.length>0&&await Promise.all(i).then(s=>{for(const r of s){if(r==null)throw new Error("resolvedLanguages: unable to resolve language");t.push(r)}}),t}function H(e){return K.getResolvedThemes(e)}async function W(e){for(const i of e)P(i);const t=await K.resolveThemes(e);for(let i=0;i<e.length;i++)A(e[i],t[i]);return t}const y=Symbol("IGNORE_RESPONSE"),Y=1e4;var ee=class{options;highlighter;preferredHighlighter;renderOptions;renderOptionsRequestVersion=0;renderOptionsVersion=0;initialized=!1;workers=[];queuedTasks=[];queuedTaskByInstance=new Map;taskByHighlightKey=new Map;activeTaskById=new Map;activeRequestByInstance=new Map;nextRequestId=0;themeSubscribers=new Set;workersFailed=!1;statSubscribers=new Set;fileCache;diffCache;_queuedBroadcast;lifecycleGeneration=0;constructor(e,{langs:t,theme:i=I,useTokenTransformer:s=!1,lineDiffType:r="word-alt",maxLineDiffLength:n=1e3,tokenizeMaxLineLength:a=1e3,preferredHighlighter:o="shiki-js"}){this.options=e,this.preferredHighlighter=o,this.renderOptions={theme:i,useTokenTransformer:s,lineDiffType:r,maxLineDiffLength:n,tokenizeMaxLineLength:a},this.fileCache=new B.LRUMap(e.totalASTLRUCacheSize??100),this.diffCache=new B.LRUMap(e.totalASTLRUCacheSize??100),this.queueInitialization(t)}isWorkingPool(){return!this.workersFailed}getFileResultCache(e){return e.cacheKey!=null?this.fileCache.get(e.cacheKey):void 0}getDiffResultCache(e){return e.cacheKey!=null?this.diffCache.get(e.cacheKey):void 0}inspectCaches(){const{fileCache:e,diffCache:t}=this;return{fileCache:e,diffCache:t}}evictFileFromCache(e){try{return this.fileCache.delete(e)!==void 0}finally{this.queueBroadcastStateChanges()}}evictDiffFromCache(e){try{return this.diffCache.delete(e)!==void 0}finally{this.queueBroadcastStateChanges()}}async setRenderOptions({theme:e=this.renderOptions.theme??I,useTokenTransformer:t=this.renderOptions.useTokenTransformer??!1,lineDiffType:i=this.renderOptions.lineDiffType??"word-alt",maxLineDiffLength:s=this.renderOptions.maxLineDiffLength??1e3,tokenizeMaxLineLength:r=this.renderOptions.tokenizeMaxLineLength??1e3}){const{lifecycleGeneration:n}=this,a=++this.renderOptionsRequestVersion,o=()=>this.isCurrentLifecycle(n)&&this.renderOptionsRequestVersion===a;try{const h={theme:e,useTokenTransformer:t,lineDiffType:i,maxLineDiffLength:s,tokenizeMaxLineLength:r};if(this.isInitialized()||await this.initialize(),!o()||k(h,this.renderOptions))return;const l=T(e);let u=[];if(M(h.theme,this.renderOptions.theme)||(S(l)?u=H(l):u=await W(l)),!o())return;if(this.highlighter!=null)V(u,this.highlighter);else{const f=await q({themes:l,langs:["text"],preferredHighlighter:this.preferredHighlighter});if(!o())return;this.highlighter=f}const d=this.setRenderOptionsOnWorkers(h,u);this.renderOptions=h,this.renderOptionsVersion++,this.diffCache.clear(),this.fileCache.clear(),this.invalidateRenderTasks();for(const f of this.themeSubscribers)f.onThemeChange();await d}catch(h){if(h instanceof m||!o())return;throw h}}getPreferredHighlighter(){return this.preferredHighlighter}getFileRenderOptions(){const{tokenizeMaxLineLength:e,theme:t,useTokenTransformer:i}=this.renderOptions;return{theme:t,useTokenTransformer:i,tokenizeMaxLineLength:e}}getDiffRenderOptions(){return{...this.renderOptions}}async setRenderOptionsOnWorkers(e,t){if(this.workersFailed)return;this.isInitialized()||await this.initialize();const i=[];for(const s of this.workers){if(!s.initialized)throw console.log({managedWorker:s}),new Error("setRenderOptionsOnWorkers: Somehow we have an uninitialized worker");i.push(new Promise((r,n)=>{const a=this.generateRequestId(),o={type:"set-render-options",id:a,request:{type:"set-render-options",id:a,renderOptions:e,resolvedThemes:t},resolve:r,reject:n,requestStart:Date.now()};this.activeTaskById.set(a,o),s.pendingSetupRequestId=a,s.worker.postMessage(o.request)}))}await Promise.all(i)}subscribeToThemeChanges(e){return this.themeSubscribers.add(e),this.queueBroadcastStateChanges(),()=>{this.unsubscribeToThemeChanges(e),this.queueBroadcastStateChanges()}}unsubscribeToThemeChanges(e){this.themeSubscribers.delete(e),this.queueBroadcastStateChanges()}subscribeToStatChanges(e){return this.statSubscribers.add(e),e(this.getStats()),()=>{this.statSubscribers.delete(e)}}queueBroadcastStateChanges(){this._queuedBroadcast==null&&(this._queuedBroadcast=requestAnimationFrame(this._broadcastStateChanges))}_broadcastStateChanges=()=>{this._queuedBroadcast!=null&&(cancelAnimationFrame(this._queuedBroadcast),this._queuedBroadcast=void 0);const e=this.getStats();for(const t of this.statSubscribers)t(e)};cleanUpTasks(e){this.detachInstanceFromQueuedTasks(e);const t=this.activeRequestByInstance.get(e);if(t!=null){const i=this.activeTaskById.get(t);c(i)?(this.detachInstanceFromRenderTask(i,e),!i.primeCache&&i.instances.size===0&&this.removeActiveTask(i)):this.activeTaskById.delete(t)}this.activeRequestByInstance.delete(e),this.queueBroadcastStateChanges()}isInitialized(){return this.initialized===!0}async initialize(e=[]){if(this.initialized!==!0)if(this.initialized===!1){const{lifecycleGeneration:t}=this,i=new Promise((s,r)=>{(async()=>{try{const n=T(this.renderOptions.theme);let a=[];if(S(n)?a=H(n):a=await W(n),!this.isCurrentLifecycle(t)){s();return}let o=[];if(z(e)?o=O(e):o=await F(e),!this.isCurrentLifecycle(t)){s();return}const[h]=await Promise.all([q({themes:n,langs:["text",...e],preferredHighlighter:this.preferredHighlighter}),this.initializeWorkers(a,o)]);if(!this.isCurrentLifecycle(t)){this.terminateWorkers(),s();return}this.highlighter=h,this.initialized=!0,this.diffCache.clear(),this.fileCache.clear(),this.drainQueue(),this.queueBroadcastStateChanges(),s()}catch(n){if(n instanceof m||!this.isCurrentLifecycle(t)){s();return}this.initialized=!1,this.workersFailed=!0,this.cancelActiveWorkerTasks(),this.terminateWorkers(),this.activeTaskById.clear();for(const a of this.queuedTasks)this.rejectRenderTaskCallbacks(a,v(n));this.queueBroadcastStateChanges(),r(n)}})()});return this.initialized=i,this.queueBroadcastStateChanges(),i}else return this.initialized}async initializeWorkers(e,t){this.workersFailed=!1;const i=[],s=void 0;this.workers.length>0&&this.terminateWorkers();for(let a=0;a<(this.options.poolSize??8);a++){const o=this.options.workerFactory(),h={worker:o,requestId:void 0,pendingSetupRequestId:void 0,initialized:!1,langs:new Set(["text",...t.map(({name:l})=>l)]),customExtensionsVersion:0};o.addEventListener("message",l=>{this.handleWorkerMessage(h,l.data)}),o.addEventListener("error",l=>this.handleWorkerError(h,l)),this.workers.push(h),i.push(new Promise((l,u)=>{const d=this.generateRequestId(),f={type:"initialize",id:d,request:{type:"initialize",id:d,renderOptions:this.renderOptions,preferredHighlighter:this.preferredHighlighter,resolvedThemes:e,resolvedLanguages:t,customExtensionsVersion:void 0,customExtensionMap:s},resolve(){h.initialized=!0,l()},reject:u,requestStart:Date.now()};h.pendingSetupRequestId=d,this.activeTaskById.set(d,f),this.executeTask(h,f)}))}const r=this.options.workerInitializationTimeout??Y;let n;try{await Promise.race([Promise.all(i),new Promise((a,o)=>{n=setTimeout(()=>{o(new Error(`WorkerPoolManager: worker initialization timed out after ${r}ms`))},r)})])}finally{n!=null&&clearTimeout(n)}}handleWorkerError(e,t){const{onWorkerError:i}=this.options;if(i!=null)try{i(t,e.worker)}catch(a){console.error("WorkerPoolManager: onWorkerError threw:",a)}else console.error("Worker error:",t,e);const{pendingSetupRequestId:s}=e;if(s==null)return;const r=this.activeTaskById.get(s);if(r?.type!=="initialize")return;const n=se(t);i!=null&&j(n),r.reject(n),this.cleanWorkerAndTask(e,r)}drainQueue=()=>{if(this._queuedDrain=void 0,!(this.initialized!==!0||this.queuedTasks.length===0)){for(let e=0;e<this.queuedTasks.length;){const t=this.queuedTasks[e];if(this.hasActiveRequest(t)){e++;continue}const i=ie(t),s=this.getAvailableWorker(i);if(s==null)break;this.queuedTasks.splice(e,1),this.assignWorkerToTask(t,s),this.resolveLanguagesAndExecuteTask(s,t,i)}this.queueBroadcastStateChanges()}};highlightFileAST(e,t){const i=this.getFileResultCache(t);b(t)||i!=null&&C(i.options,this.getFileRenderOptions())||this.hasMatchingFileInstanceTask(e,t)||this.submitTask(e,{type:"file",file:t})}primeFileHighlightCache(e){if(!this.isWorkingPool())return Promise.reject(new Error("WorkerPoolManager.primeFileHighlightCache: worker pool is not working"));const t=this.getOrCreateFileHighlightCacheTask(e);return t!=null?this.createRenderTaskCallbacks(t):Promise.resolve()}getOrCreateFileHighlightCacheTask(e){if(e.cacheKey==null){console.warn(`WorkerPoolManager.primeFileHighlightCache: priming highlight cache requires file.cacheKey; skipping "${e.name}".`);return}const t=this.getFileResultCache(e),i=this.getFileHighlightKey(e);if(i==null||b(e)||t!=null&&C(t.options,this.getFileRenderOptions()))return;const s=this.getTaskByHighlightKey(i);if(s!=null)return s.primeCache=!0,s.type==="file"?s:void 0;{const r=this.submitCacheTask({type:"file",file:e},i);return r.type==="file"?r:void 0}}getPlainFileAST(e,t,i,s){if(this.highlighter==null){this.queueInitialization();return}return G(e,this.highlighter,this.renderOptions,{forcePlainText:!0,startingLine:t,totalLines:i,lines:s})}highlightDiffAST(e,t){const i=this.getDiffResultCache(t);E(t)||i!=null&&k(i.options,this.getDiffRenderOptions())||this.hasMatchingDiffInstanceTask(e,t)||this.submitTask(e,{type:"diff",diff:t})}primeDiffHighlightCache(e){if(!this.isWorkingPool())return Promise.reject(new Error("WorkerPoolManager.primeDiffHighlightCache: worker pool is not working"));const t=this.getOrCreateDiffHighlightCacheTask(e);return t!=null?this.createRenderTaskCallbacks(t):Promise.resolve()}getOrCreateDiffHighlightCacheTask(e){if(e.cacheKey==null){console.warn(`WorkerPoolManager.primeDiffHighlightCache: priming highlight cache requires diff.cacheKey; skipping "${e.prevName??e.name}" -> "${e.name}".`);return}const t=this.getDiffResultCache(e),i=this.getDiffHighlightKey(e);if(i==null||E(e)||t!=null&&k(t.options,this.getDiffRenderOptions()))return;const s=this.getTaskByHighlightKey(i);if(s!=null)return s.primeCache=!0,s.type==="diff"?s:void 0;{const r=this.submitCacheTask({type:"diff",diff:e},i);return r.type==="diff"?r:void 0}}getPlainDiffAST(e,t,i,s,r){return this.highlighter!=null?Z(e,this.highlighter,this.renderOptions,{forcePlainText:!0,startingLine:t,totalLines:i,expandedHunks:s,collapsedContextThreshold:r}):void 0}terminate(){this.lifecycleGeneration++,this.cancelActiveWorkerTasks(),this.terminateWorkers();const e=new m;for(const t of this.queuedTasks)this.rejectRenderTaskCallbacks(t,e);this.fileCache.clear(),this.diffCache.clear(),this.activeRequestByInstance.clear(),this.queuedTasks.length=0,this.queuedTaskByInstance.clear(),this.taskByHighlightKey.clear(),this.activeTaskById.clear(),this.highlighter=void 0,this.initialized=!1,this.workersFailed=!1,this.queueBroadcastStateChanges()}isCurrentLifecycle(e){return this.lifecycleGeneration===e}queueInitialization(e){this.initialize(e).catch(t=>{_(t)||console.error(t)})}cancelActiveWorkerTasks(){const e=new m;for(const t of this.activeTaskById.values())"reject"in t?t.reject(e):c(t)&&this.rejectRenderTaskCallbacks(t,e)}terminateWorkers(){for(const e of this.workers)e.worker.terminate();this.workers.length=0}getStats(){return{managerState:this.initialized===!1?"waiting":this.initialized!==!0?"initializing":"initialized",totalWorkers:this.workers.length,workersFailed:this.workersFailed,busyWorkers:this.workers.filter(e=>e.requestId!=null||e.pendingSetupRequestId!=null).length,queuedTasks:this.queuedTasks.length,activeTasks:this.activeTaskById.size,themeSubscribers:this.themeSubscribers.size,fileCacheSize:this.fileCache.size,diffCacheSize:this.diffCache.size}}submitTask(e,t){this.initialized===!1&&this.queueInitialization();const i=this.getHighlightKeyForRequest(t),s=i!=null?this.getTaskByHighlightKey(i):void 0;if(s!=null){this.detachInstanceFromQueuedTasks(e,s),this.addInstanceToTask(s,e),this.queueBroadcastStateChanges();return}this.detachInstanceFromQueuedTasks(e);const r=this.generateRequestId(),n=Date.now(),{renderOptionsVersion:a}=this,o=(()=>{switch(t.type){case"file":return{type:"file",id:r,request:{...t,id:r},instances:new Set([e]),primeCache:!1,highlightKey:i,callbacks:new Set,renderOptionsVersion:a,requestStart:n};case"diff":return{type:"diff",id:r,request:{...t,id:r},instances:new Set([e]),primeCache:!1,highlightKey:i,callbacks:new Set,renderOptionsVersion:a,requestStart:n}}})();this.enqueueRenderTask(o,e)}submitCacheTask(e,t){this.initialized===!1&&this.queueInitialization();const i=this.generateRequestId(),s=Date.now(),{renderOptionsVersion:r}=this,n=(()=>{switch(e.type){case"file":return{type:"file",id:i,request:{...e,id:i},instances:new Set,primeCache:!0,highlightKey:t,callbacks:new Set,renderOptionsVersion:r,requestStart:s};case"diff":return{type:"diff",id:i,request:{...e,id:i},instances:new Set,primeCache:!0,highlightKey:t,callbacks:new Set,renderOptionsVersion:r,requestStart:s}}})();return this.enqueueRenderTask(n),n}enqueueRenderTask(e,t){this.queuedTasks.push(e),t!=null&&this.queuedTaskByInstance.set(t,e),e.highlightKey!=null&&this.taskByHighlightKey.set(e.highlightKey,e),this.queueDrain()}async resolveLanguagesAndExecuteTask(e,t,i){try{const s=i.filter(n=>!Q(n));s.length>0&&q({themes:T(this.renderOptions.theme),langs:["text",...s],preferredHighlighter:this.preferredHighlighter}).catch(n=>{console.error(n)});const r=i.filter(n=>!e.langs.has(n));if(r.length>0&&(z(r)?t.request.resolvedLanguages=O(r):t.request.resolvedLanguages=await F(r)),!this.activeTaskById.has(t.id)){e.requestId===t.id&&(this.cleanWorkerAndTask(e,t),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain());return}this.executeTask(e,t)}catch(s){this.rejectRenderTaskCallbacks(t,v(s)),this.cleanWorkerAndTask(e,t),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain()}}handleWorkerMessage(e,t){const i=this.activeTaskById.get(t.id);try{if(i==null)throw y;if(t.type==="error"){const s=new Error(t.error);if(t.stack&&(s.stack=t.stack),"reject"in i)i.reject(s);else if(c(i))this.notifyHighlightError(i,s),this.rejectRenderTaskCallbacks(i,s);else throw new Error("handleWorkerMessage: unknown task type");throw s}else{if(c(i))for(const{name:s}of i.request.resolvedLanguages??[])e.langs.add(s);switch(t.requestType){case"initialize":if(i.type!=="initialize")throw new Error("handleWorkerMessage: task/response dont match");this.syncCustomExtensionVersion(e,i.request),i.resolve();break;case"set-render-options":if(i.type!=="set-render-options")throw new Error("handleWorkerMessage: task/response dont match");i.resolve();break;case"file":{if(i.type!=="file")throw new Error("handleWorkerMessage: task/response dont match");const{result:s,options:r}=t;if(!this.isCurrentRenderTask(i)||!C(r,this.getFileRenderOptions()))throw y;const{request:n}=i;this.syncCustomExtensionVersion(e,n),i.cacheKeyAtDispatch!=null&&this.fileCache.set(i.cacheKeyAtDispatch,{result:s,options:r}),this.resolveRenderTaskCallbacks(i),this.notifyFileInstances(i,s,r);break}case"diff":{if(i.type!=="diff")throw new Error("handleWorkerMessage: task/response dont match");const{result:s,options:r}=t;if(!this.isCurrentRenderTask(i)||!k(r,this.getDiffRenderOptions()))throw y;const{request:n}=i;this.syncCustomExtensionVersion(e,n),i.cacheKeyAtDispatch!=null&&this.diffCache.set(i.cacheKeyAtDispatch,{result:s,options:r}),this.resolveRenderTaskCallbacks(i),this.notifyDiffInstances(i,s,r);break}}}}catch(s){s!==y&&console.error(s,i,t)}this.cleanWorkerAndTask(e,i,t.id),this.queueBroadcastStateChanges(),this.queuedTasks.length>0&&this.queueDrain()}_queuedDrain;queueDrain(){this._queuedDrain==null&&(this._queuedDrain=Promise.resolve().then(this.drainQueue),this.queueBroadcastStateChanges())}assignWorkerToTask(e,t){t.requestId=e.id,c(e)&&(this.clearQueuedInstanceRequests(e),this.trackInstanceRequests(e)),this.activeTaskById.set(e.id,e)}cleanWorkerAndTask(e,t,i=t?.id){e.requestId===i&&(e.requestId=void 0),e.pendingSetupRequestId===i&&(e.pendingSetupRequestId=void 0),t!=null&&(c(t)&&(this.rejectRenderTaskCallbacks(t,new R),this.clearInstanceRequests(t),this.clearHighlightKey(t)),this.activeTaskById.delete(t.id))}executeTask(e,t){te(t.request)&&this.maybeAttachCustomExtensions(e,t.request),this.activeTaskById.has(t.id)||this.assignWorkerToTask(t,e);try{t.type==="file"?t.cacheKeyAtDispatch=t.request.file.cacheKey:t.type==="diff"&&(t.cacheKeyAtDispatch=t.request.diff.cacheKey),e.worker.postMessage(t.request)}catch(i){console.error("Failed to post message to worker:",i),c(t)?(this.notifyHighlightError(t,i),this.rejectRenderTaskCallbacks(t,v(i))):"reject"in t&&t.reject(i),this.cleanWorkerAndTask(e,t),this.queuedTasks.length>0&&this.queueDrain()}this.queueBroadcastStateChanges()}maybeAttachCustomExtensions(e,t){if(t.customExtensionsVersion!=null)return;const i=$();e.customExtensionsVersion>=i||(t.customExtensionsVersion=i,t.customExtensionMap=N())}syncCustomExtensionVersion(e,t){t.customExtensionsVersion!=null&&(e.customExtensionsVersion=t.customExtensionsVersion)}getAvailableWorker(e){let t;for(const i of this.workers){if(i.requestId!=null||i.pendingSetupRequestId!=null||!i.initialized)continue;if(t=i,e.length===0)break;let s=!0;for(const r of e)if(!i.langs.has(r)){s=!1;break}if(s)break}return t}getFileHighlightKey(e){if(e.cacheKey!=null)return`file:${e.cacheKey}:${this.renderOptionsVersion}`}getDiffHighlightKey(e){if(e.cacheKey!=null)return`diff:${e.cacheKey}:${this.renderOptionsVersion}`}getHighlightKeyForRequest(e){switch(e.type){case"file":return this.getFileHighlightKey(e.file);case"diff":return this.getDiffHighlightKey(e.diff)}}hasActiveRequest(e){for(const t of g(e))if(this.activeRequestByInstance.has(t))return!0;return!1}addInstanceToTask(e,t){e.type,e.instances.add(t),this.activeTaskById.has(e.id)?this.activeRequestByInstance.set(t,e.id):this.queuedTaskByInstance.set(t,e)}detachInstanceFromQueuedTasks(e,t){const i=this.queuedTaskByInstance.get(e);i==null||i===t||(this.queuedTaskByInstance.delete(e),this.detachInstanceFromRenderTask(i,e),!i.primeCache&&i.instances.size===0&&this.removeQueuedTask(i))}detachInstanceFromRenderTask(e,t){e.type,e.instances.delete(t)}removeQueuedTask(e){const t=this.queuedTasks.indexOf(e);t!==-1&&this.queuedTasks.splice(t,1),this.rejectRenderTaskCallbacks(e,new R),this.clearQueuedInstanceRequests(e),this.clearHighlightKey(e)}removeActiveTask(e){this.rejectRenderTaskCallbacks(e,new R),this.clearInstanceRequests(e),this.clearHighlightKey(e),this.activeTaskById.delete(e.id)}createRenderTaskCallbacks(e){return new Promise((t,i)=>{e.callbacks.add({resolve:t,reject:i})})}resolveRenderTaskCallbacks(e){for(const t of e.callbacks)t.resolve();e.callbacks.clear()}rejectRenderTaskCallbacks(e,t){for(const i of e.callbacks)i.reject(t);e.callbacks.clear()}invalidateRenderTasks(){for(let e=this.queuedTasks.length-1;e>=0;e--){const t=this.queuedTasks[e];t.renderOptionsVersion!==this.renderOptionsVersion&&this.removeQueuedTask(t)}for(const e of Array.from(this.activeTaskById.values()))c(e)&&e.renderOptionsVersion!==this.renderOptionsVersion&&this.removeActiveTask(e)}clearQueuedInstanceRequests(e){for(const t of g(e))this.queuedTaskByInstance.get(t)===e&&this.queuedTaskByInstance.delete(t)}clearHighlightKey(e){e.highlightKey!=null&&this.taskByHighlightKey.get(e.highlightKey)===e&&this.taskByHighlightKey.delete(e.highlightKey)}trackInstanceRequests(e){for(const t of g(e))this.activeRequestByInstance.set(t,e.id)}clearInstanceRequests(e){for(const t of g(e))this.activeRequestByInstance.get(t)===e.id&&this.activeRequestByInstance.delete(t)}notifyFileInstances(e,t,i){for(const s of e.instances)this.activeRequestByInstance.get(s)===e.id&&s.onHighlightSuccess(e.request.file,t,i)}notifyDiffInstances(e,t,i){for(const s of e.instances)this.activeRequestByInstance.get(s)===e.id&&s.onHighlightSuccess(e.request.diff,t,i)}notifyHighlightError(e,t){for(const i of g(e))this.activeRequestByInstance.get(i)===e.id&&i.onHighlightError(t)}hasMatchingFileInstanceTask(e,t){for(const i of this.iterateRenderTasks())if(i.type==="file"&&this.isCurrentRenderTask(i)&&i.instances.has(e)&&J(t,i.request.file))return!0;return!1}hasMatchingDiffInstanceTask(e,t){for(const i of this.iterateRenderTasks())if(i.type==="diff"&&this.isCurrentRenderTask(i)&&i.instances.has(e)&&X(i.request.diff,t))return!0;return!1}getTaskByHighlightKey(e){const t=this.taskByHighlightKey.get(e);return t!=null&&this.isCurrentRenderTask(t)?t:void 0}isCurrentRenderTask(e){return e.renderOptionsVersion===this.renderOptionsVersion}*iterateRenderTasks(){for(const e of this.queuedTasks)yield e;for(const e of this.activeTaskById.values())c(e)&&(yield e)}generateRequestId(){return`req_${++this.nextRequestId}`}};function te(e){return e.type==="initialize"||e.type==="file"||e.type==="diff"}function ie(e){const t=new Set;if(e.type==="initialize"||e.type==="set-render-options")return[];switch(e.type){case"file":t.add(e.request.file.lang??w(e.request.file.name));break;case"diff":t.add(e.request.diff.lang??w(e.request.diff.name)),t.add(e.request.diff.lang??w(e.request.diff.prevName??"-"))}return t.delete("text"),Array.from(t)}function c(e){return e?.type==="file"||e?.type==="diff"}function g(e){return e.instances}function v(e){if(e instanceof Error)return e;if(e!=null&&typeof e=="object"){if("error"in e&&e.error instanceof Error)return e.error;if("message"in e&&typeof e.message=="string")return new Error(e.message)}return new Error(String(e))}function se(e){const t="error"in e?e.error:void 0,i="message"in e&&typeof e.message=="string"&&e.message!==""?e.message:t instanceof Error?t.message:"the worker script failed to load (the error event carries no message)";return new U(`WorkerPoolManager: worker failed: ${i}`,t instanceof Error?{cause:t}:void 0)}let p;function hi({poolOptions:e,highlighterOptions:t}){return p??=new ee(e,t),p}function li(){p!=null&&(p.terminate(),p=void 0)}export{ee as WorkerPoolManager,R as WorkerPoolTaskCanceledError,m as WorkerPoolTerminatedError,U as WorkerPoolWorkerError,hi as getOrCreateWorkerPoolSingleton,_ as isHandledWorkerPoolError,di as isWorkerPoolCancellation,li as terminateWorkerPoolSingleton};
@@ -1 +1 @@
1
- import{a as i,s as t,b as s,c as o}from"./useAppFontEffects-d9vsRNKm.js";import"./vendor-react-BUCujlKS.js";import{i as n,a as c,s as p}from"./katex.min-u4DtE8E5.js";const h=({logLabel:a,onAppearanceSettled:r})=>{n(),c().then(()=>{Promise.all([p(),i()]).catch(e=>{console.error(`${a} settings init failed:`,e)}),t(),s(),o()}).catch(e=>{console.error(`${a} appearance init failed:`,e)}).finally(()=>{r?.()})};export{h as i};
1
+ import{a as i,s as t,b as s,c as o}from"./useAppFontEffects-Dm6zEvrf.js";import"./vendor-react-BUCujlKS.js";import{i as n,a as c,s as p}from"./katex.min-F4TD1ekM.js";const h=({logLabel:a,onAppearanceSettled:r})=>{n(),c().then(()=>{Promise.all([p(),i()]).catch(e=>{console.error(`${a} settings init failed:`,e)}),t(),s(),o()}).catch(e=>{console.error(`${a} appearance init failed:`,e)}).finally(()=>{r?.()})};export{h as i};
@@ -1 +1 @@
1
- import{f as re,R as k,j as s}from"./vendor-react-BUCujlKS.js";import{t as D,a5 as ne,k as z}from"./katex.min-u4DtE8E5.js";import{u as H,B as C,cx as U,cc as ie,ca as oe,eu as ce,c9 as le,cb as de,c3 as Y,y as O,z as $,N as ue,aA as pe,A as L,bl as ge,ev as he,ew as me}from"./useAppFontEffects-d9vsRNKm.js";import{o as fe,s as B,_ as ye}from"./vendor-zod-DDir2TeQ.js";const ve=t=>t.toLowerCase().replace(/[^a-z0-9_-]/g,"-"),Me=t=>ve(t.trim()).replace(/^[-_]+|[-_]+$/g,""),J={oauthEnabled:!0,oauthClientId:"",oauthClientSecret:"",oauthScope:"",oauthRedirectUri:"",oauthCallbackPort:""},Ue=t=>t===!1?{...J,oauthEnabled:!1}:t?{oauthEnabled:!0,oauthClientId:t.client_id??"",oauthClientSecret:t.client_secret??"",oauthScope:t.scope??"",oauthRedirectUri:t.redirect_uri??"",oauthCallbackPort:t.callback_port===void 0?"":String(t.callback_port)}:J,xe=(t,e)=>!!e&&t!=="claude-code",ke=/[A-Z0-9]{4}-[A-Z0-9]{4,5}/,be=t=>ke.exec(t)?.[0]??void 0,P=t=>t.type!=="external",A=t=>t.title??t.key,Ce=(t,e)=>{if(e===void 0)return!1;const a=String(e),n=String(t.value);return t.op==="eq"?a===n:a!==n},je=(t,e)=>P(t)?(t.when??[]).every(a=>Ce(a,e[a.key])):!0,V=(t,e)=>{const a={},n=[];for(const c of t){if(!je(c,a))continue;n.push(c);const m=e[c.key];P(c)&&m!==void 0&&(a[c.key]=m)}return n},we=t=>{const e={};for(const a of t)switch(a.type){case"external":break;case"boolean":e[a.key]=a.default??!1;break;case"number":case"integer":typeof a.default=="number"&&(e[a.key]=a.default);break;case"multiselect":e[a.key]=a.default??[];break;case"string":e[a.key]=a.default??a.options?.[0]?.value??"";break}return e},Q=t=>t===void 0?!0:typeof t=="string"?t.trim().length===0:Array.isArray(t)?t.length===0:!1,Ne=(t,e)=>V(t,e).find(a=>P(a)&&a.required===!0&&Q(e[a.key]))??null,Se=(t,e)=>{const a={};for(const n of V(t,e)){if(!P(n))continue;const c=e[n.key];Q(c)||c===void 0||(a[n.key]=typeof c=="string"?c.trim():c)}return a},K=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),W=t=>typeof t=="string"&&t.length>0?t:void 0,Ie=(t,e,a)=>{const n=K(t)?t:{},c=K(n.data)?n.data:{};switch(n.name){case"IntegrationOauthAttemptMissing":return e("settings.providers.page.auth.oauth.error.sessionExpired");case"IntegrationOauthCodeMissing":return e("settings.providers.page.auth.oauth.error.codeRequired");case"IntegrationOauthFailed":return e("settings.providers.page.auth.oauth.error.declined");case"IntegrationValidationFailed":return W(c.message)??e("settings.providers.page.auth.oauth.error.invalidInput");default:return W(n.message)??e(a)}},_="\0typed",Ae=t=>{const e=re.c(12),{fields:a,values:n,onChange:c}=t,{t:m}=H();let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=new Set,e[0]=l):l=e[0];const[f,o]=k.useState(l);let g;e[1]!==c||e[2]!==m||e[3]!==f||e[4]!==n?(g=d=>{if(d.type==="external")return s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{className:"typography-ui-label text-foreground",children:A(d)}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal",onClick:()=>{U(d.url)},children:m("settings.providers.page.actions.open")})]},d.key);const y=n[d.key],j=typeof y=="string"?y:"",w=h=>c(d.key,h),T=d.type==="string"||d.type==="multiselect"?d.options??[]:[],E=d.type==="string"&&d.custom===!0,S=E&&f.has(d.key),N=h=>o(F=>{const I=new Set(F);return h?I.add(d.key):I.delete(d.key),I});return s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{className:"typography-ui-label text-foreground",children:A(d)}),d.description&&s.jsx("p",{className:"typography-meta text-muted-foreground",children:d.description}),T.length>0?s.jsxs(s.Fragment,{children:[s.jsxs(ie,{value:S?_:j,onValueChange:h=>{if(h===_){N(!0),w("");return}N(!1),w(h)},children:[s.jsx(oe,{className:ce,children:s.jsx(le,{children:h=>h===_?m("settings.providers.page.auth.field.other"):T.find(F=>F.value===h)?.label??null})}),s.jsxs(de,{children:[T.map(Te),E?s.jsx(Y,{value:_,children:m("settings.providers.page.auth.field.other")}):null]})]}),S?s.jsx(O,{value:j,onChange:h=>w(h.target.value),placeholder:d.placeholder??m("settings.providers.page.auth.field.otherPlaceholder"),"aria-label":A(d),className:"max-w-[24rem] text-xs",autoFocus:!0}):null]}):d.type==="boolean"?s.jsx("input",{type:"checkbox",checked:y===!0,onChange:h=>w(h.target.checked),"aria-label":A(d)}):s.jsx(O,{value:j,onChange:h=>w(h.target.value),placeholder:d.type==="string"?d.placeholder:void 0,"aria-label":A(d),className:"max-w-[24rem] text-xs"})]},d.key)},e[1]=c,e[2]=m,e[3]=f,e[4]=n,e[5]=g):g=e[5];const x=g;let v;e[6]!==a||e[7]!==x||e[8]!==n?(v=V(a,n).map(x),e[6]=a,e[7]=x,e[8]=n,e[9]=v):v=e[9];let b;return e[10]!==v?(b=s.jsx(s.Fragment,{children:v}),e[10]=v,e[11]=b):b=e[11],b};function Te(t){return s.jsx(Y,{value:t.value,children:t.description?`${t.label} · ${t.description}`:t.label},t.value)}const M={phase:"idle"},Ee=1500,Fe=({integrationId:t,methods:e,onConnected:a,directory:n,className:c,autoStart:m=!1})=>{const{t:l}=H(),f=k.useCallback(()=>n?D.getScopedSdkClient(n):D.getSdkClient(),[n]),[o,g]=k.useState(M),[x,v]=k.useState({}),[b,d]=k.useState(""),y=k.useRef(null),j=k.useCallback(r=>{y.current=null,f().integration.oauth.cancel({integrationID:t,attemptID:r}).catch(()=>{})},[t,f]);k.useEffect(()=>()=>{const r=y.current;r&&j(r)},[j]);const w=o.phase==="idle"?null:o.methodID,T=o.phase==="connecting"||o.phase==="waiting"||o.phase==="awaitingCode"&&o.submitting,E=async(r,i,u)=>{const p=await pe(r);if(p.ok){L.success(l(i));return}console.error("Failed to copy OAuth value:",p.error),L.error(l(u))},S=async(r="settings.providers.page.toast.oauthCompleted")=>{y.current=null,g(M),L.success(l(r)),await a()},N=(r,i,u)=>{y.current=null,console.error("OAuth flow failed:",i),g({phase:"failed",methodID:r,message:Ie(i,l,u)})},h=async(r,i)=>{const u=f();for(;y.current===i;){if(await new Promise(p=>setTimeout(p,Ee)),y.current!==i)return;try{const{data:p}=await u.integration.oauth.status({integrationID:t,attemptID:i});if(y.current!==i)return;if(p.status==="complete"){await S();return}if(p.status==="failed"){g({phase:"failed",methodID:r,message:p.message}),y.current=null;return}}catch(p){if(y.current!==i)return;N(r,p,"settings.providers.page.toast.oauthCompleteFailed");return}}},F=async(r,i)=>{g({phase:"connecting",methodID:r});try{await f().integration.connect.external({integrationID:t,methodID:r,answer:Object.keys(i).length>0?i:void 0})}catch(u){N(r,u,"settings.providers.page.toast.externalConnectFailed");return}await S("settings.providers.page.toast.externalConnected")},I=async(r,i)=>{if(r.type==="external"){await F(r.id,i);return}g({phase:"connecting",methodID:r.id});let u;try{const{data:p}=await f().integration.oauth.connect({integrationID:t,methodID:r.id,...Object.keys(i).length>0?{answer:i}:{}});u={attemptID:p.attemptID,mode:p.mode,url:p.url,instructions:p.instructions}}catch(p){N(r.id,p,"settings.providers.page.toast.oauthStartFailed");return}if(y.current=u.attemptID,xe(t,u.url)&&U(u.url),u.mode==="code"){d(""),g({phase:"awaitingCode",methodID:r.id,attempt:u,submitting:!1});return}g({phase:"waiting",methodID:r.id,attempt:u}),await h(r.id,u.attemptID)},R=r=>{const i=(r.form??[]).filter(P);if(i.length===0){I(r,{});return}v(we(i)),g({phase:"prompting",methodID:r.id,fields:i,error:null})},G=k.useRef(!1);k.useEffect(()=>{!m||G.current||e.length!==1||(G.current=!0,R(e[0]))},[m,e]);const te=r=>{if(o.phase!=="prompting")return;const i=Ne(o.fields,x);if(i){g({...o,error:l("settings.providers.page.auth.oauth.promptRequired",{field:A(i)})});return}I(r,Se(o.fields,x))},se=async()=>{if(o.phase!=="awaitingCode")return;const r=b.trim();if(!r)return;const{methodID:i,attempt:u}=o;g({...o,submitting:!0});try{await f().integration.oauth.complete({integrationID:t,attemptID:u.attemptID,code:r}),await S()}catch(p){N(i,p,"settings.providers.page.toast.oauthCompleteFailed")}},q=()=>{(o.phase==="waiting"||o.phase==="awaitingCode")&&j(o.attempt.attemptID),g(M)},Z=r=>{const i=be(r.instructions);return s.jsxs(s.Fragment,{children:[r.instructions&&s.jsx("p",{className:"typography-meta text-[var(--status-info-text)] bg-[var(--status-info-background)] px-2 py-1.5 rounded",children:r.instructions}),i&&s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(O,{value:i,readOnly:!0,"aria-label":l("settings.providers.page.auth.oauth.deviceCodeLabel"),className:"font-mono text-center tracking-widest"}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal shrink-0",onClick:()=>{E(i,"settings.providers.page.toast.deviceCodeCopied","settings.providers.page.toast.deviceCodeCopyFailed")},children:l("settings.providers.page.actions.copyCode")})]}),r.url&&s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(O,{value:r.url,readOnly:!0,"aria-label":l("settings.providers.page.auth.oauth.linkLabel"),className:"text-xs text-muted-foreground"}),s.jsxs("div",{className:"flex gap-1 shrink-0",children:[s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal",onClick:()=>{U(r.url)},children:l("settings.providers.page.actions.open")}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal",onClick:()=>{E(r.url,"settings.providers.page.toast.oauthLinkCopied","settings.providers.page.toast.oauthLinkCopyFailed")},children:l("settings.providers.page.actions.copy")})]})]})]})};return s.jsx("div",{className:ue("space-y-4",c),children:e.map(r=>{const i=w===r.id;return s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsx("div",{className:"typography-ui-label text-foreground",children:r.label}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal shrink-0",onClick:()=>R(r),disabled:T,children:l("settings.providers.page.actions.connect")})]}),i&&o.phase==="prompting"&&s.jsxs("div",{className:"space-y-3",children:[s.jsx(Ae,{fields:o.fields,values:x,onChange:(u,p)=>v(ae=>({...ae,[u]:p}))}),o.error&&s.jsx("p",{className:"typography-meta text-[var(--status-error)]",children:o.error}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(C,{size:"xs",className:"!font-normal",onClick:()=>te(r),children:l("settings.providers.page.actions.continue")}),s.jsx(C,{variant:"ghost",size:"xs",className:"!font-normal",onClick:q,children:l("settings.providers.page.actions.cancel")})]})]}),i&&o.phase==="connecting"&&s.jsxs("p",{className:"typography-meta text-muted-foreground flex items-center gap-2",children:[s.jsx($,{className:"h-3.5 w-3.5"}),r.type==="external"?l("settings.providers.page.auth.external.connecting"):l("settings.providers.page.auth.oauth.starting")]}),i&&o.phase==="waiting"&&s.jsxs("div",{className:"space-y-3",children:[Z(o.attempt),s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsxs("p",{className:"typography-meta text-muted-foreground flex items-center gap-2",children:[s.jsx($,{className:"h-3.5 w-3.5"}),l("settings.providers.page.auth.oauth.waiting")]}),s.jsx(C,{variant:"ghost",size:"xs",className:"!font-normal shrink-0",onClick:q,children:l("settings.providers.page.actions.cancel")})]}),s.jsx("p",{className:"typography-meta text-muted-foreground",children:l("settings.providers.page.auth.oauth.waitingHint")})]}),i&&o.phase==="awaitingCode"&&s.jsxs("div",{className:"space-y-3",children:[Z(o.attempt),s.jsx("p",{className:"typography-meta text-muted-foreground",children:l("settings.providers.page.auth.oauth.codeHint")}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(O,{value:b,onChange:u=>d(u.target.value),placeholder:l("settings.providers.page.auth.pasteAuthorizationCodePlaceholder"),className:"font-mono text-xs",disabled:o.submitting}),s.jsx(C,{size:"xs",className:"!font-normal shrink-0",onClick:()=>{se()},disabled:o.submitting||b.trim().length===0,children:o.submitting?l("settings.providers.page.actions.saving"):l("settings.providers.page.actions.complete")}),s.jsx(C,{variant:"ghost",size:"xs",className:"!font-normal shrink-0",onClick:q,disabled:o.submitting,children:l("settings.providers.page.actions.cancel")})]})]}),i&&o.phase==="failed"&&s.jsxs("div",{className:"space-y-2",children:[s.jsx("p",{className:"typography-meta text-[var(--status-error)]",children:o.message}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal",onClick:()=>R(r),children:l("settings.providers.page.actions.tryAgain")})]})]},r.id)})})},Oe=(t,e)=>t.find(a=>a.id.startsWith("mcp_")&&a.metadata?.source==="mcp"&&a.name===e),ze=t=>(t?.methods??[]).filter(e=>e.type==="oauth"),Ve=({serverName:t,directory:e,onConnected:a,autoStart:n})=>{const[c,m]=k.useState(null);k.useEffect(()=>{let f=!1;m(null);const o=e?D.getScopedSdkClient(e):D.getSdkClient(),g=async(x=0)=>{try{const{data:v}=await o.integration.list();if(f)return;const b=Oe(v,t)??null;if(b){m(b);return}x<8&&setTimeout(()=>{g(x+1)},750)}catch(v){if(f)return;console.error("Failed to load MCP integrations:",v),x<8&&setTimeout(()=>{g(x+1)},750)}};return g(),()=>{f=!0}},[e,t]);const l=ze(c??void 0);return!c||l.length===0?null:s.jsx(Fe,{integrationId:c.id,methods:l,directory:e,onConnected:a,autoStart:n},c.id)},Pe=fe({error:ye(["invalid-path","invalid-url","not-found","invalid-manifest","id-taken","already-installed","missing-build","host-too-old","bundled","reserved-id","clone-failed","clone-auth-failed","extract-failed","too-large","enterprise-mode"]),required:B().trim().min(1).max(64).optional(),id:B().trim().min(1).max(128).optional()}),_e=t=>{const e=t.trim();if(!e)return{ok:!1,code:"invalid-path"};if(e.slice(0,8).toLowerCase()==="https://")return{ok:!0,request:{url:e}};if(e.slice(0,6).toLowerCase()==="ssh://"||/^(?:[A-Za-z0-9_][A-Za-z0-9_.-]*@)?[A-Za-z0-9][A-Za-z0-9.-]*\.[A-Za-z0-9.-]+:[^\s]+$/.test(e))return{ok:!0,request:{url:e}};const a=/^[a-zA-Z]:[\\/]/.test(e);return/^[a-z][a-z0-9+.-]*:/i.test(e)&&!a?{ok:!1,code:"invalid-url"}:e.startsWith("/")||a||e.startsWith("\\\\")?{ok:!0,request:{path:e}}:{ok:!1,code:"invalid-path"}},X=async t=>{try{const e=Pe.safeParse(JSON.parse(await t.text()));return e.success?e.data.error==="host-too-old"&&e.data.required&&e.data.id?{code:"host-too-old",required:e.data.required,id:e.data.id}:e.data.error==="host-too-old"&&e.data.required?{code:"host-too-old",required:e.data.required}:e.data.id?{code:e.data.error,id:e.data.id}:{code:e.data.error}:{code:"failed"}}catch{return{code:"failed"}}},ee=async(t,e)=>{if(!t.ok)return{ok:!1,...await X(t),diagnostic:{method:"POST",path:e,kind:"http",status:t.status}};const a=await t.text().catch(()=>null),n=a===null?null:me(a);return n==="unreadable"?{ok:!1,code:"unreadable"}:n?{ok:!0,guest:n,replaced:t.status===200}:{ok:!1,code:"failed",diagnostic:{method:"POST",path:e,kind:"invalid-response",status:t.status}}},Ge=async(t,e={})=>{const a=_e(t);if(!a.ok)return a;const n={...a.request};e.replace&&(n.replace=!0),"url"in n&&e.gitIdentityId&&(n.gitIdentityId=e.gitIdentityId);try{const c=await z("/api/guests",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(n)});return await ee(c,"/api/guests")}catch{return{ok:!1,code:"failed",diagnostic:{method:"POST",path:"/api/guests",kind:"network"}}}},Ze=async(t,e={})=>{try{const a=await z("/api/guests/upload",{method:"POST",query:{replace:e.replace?"true":void 0,name:t.name||void 0},headers:{"Content-Type":"application/octet-stream",Accept:"application/json"},body:t});return await ee(a,"/api/guests/upload")}catch{return{ok:!1,code:"failed",diagnostic:{method:"POST",path:"/api/guests/upload",kind:"network"}}}},$e=async t=>{const e=ge.getState(),a=ne(),n=e.runtimeKey===a?e.guests.find(c=>c.id===t)?.storageId:void 0;try{const c=await z(`/api/guests/${t}`,{method:"DELETE"});return c.status===204?(n&&globalThis.indexedDB&&await he({runtimeKey:a,guestId:t,storageId:n}).catch(()=>{console.warn("Could not clear local extension preferences.")}),{ok:!0}):{ok:!1,code:(await X(c)).code}}catch{return{ok:!1,code:"failed"}}},Be=async(t,e)=>{try{return(await z(`/api/guests/${t}/enabled`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})})).ok}catch{return!1}},Je=async(t,e)=>{try{return(await z(`/api/guests/${t}/capabilities`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({granted:e})})).ok}catch{return!1}};export{J as M,Ae as P,Ve as a,ve as b,P as c,we as d,A as e,Ne as f,Se as g,Fe as h,Ge as i,Ze as j,Je as k,Me as n,Ue as r,Be as s,$e as u};
1
+ import{f as re,R as k,j as s}from"./vendor-react-BUCujlKS.js";import{t as D,a5 as ne,k as z}from"./katex.min-F4TD1ekM.js";import{u as H,B as C,cy as U,cd as ie,cb as oe,ev as ce,ca as le,cc as de,c4 as Y,y as O,z as $,N as ue,aA as pe,A as L,bl as ge,ew as he,ex as me}from"./useAppFontEffects-Dm6zEvrf.js";import{o as fe,s as B,_ as ye}from"./vendor-zod-DDir2TeQ.js";const ve=t=>t.toLowerCase().replace(/[^a-z0-9_-]/g,"-"),Me=t=>ve(t.trim()).replace(/^[-_]+|[-_]+$/g,""),J={oauthEnabled:!0,oauthClientId:"",oauthClientSecret:"",oauthScope:"",oauthRedirectUri:"",oauthCallbackPort:""},Ue=t=>t===!1?{...J,oauthEnabled:!1}:t?{oauthEnabled:!0,oauthClientId:t.client_id??"",oauthClientSecret:t.client_secret??"",oauthScope:t.scope??"",oauthRedirectUri:t.redirect_uri??"",oauthCallbackPort:t.callback_port===void 0?"":String(t.callback_port)}:J,xe=(t,e)=>!!e&&t!=="claude-code",ke=/[A-Z0-9]{4}-[A-Z0-9]{4,5}/,be=t=>ke.exec(t)?.[0]??void 0,P=t=>t.type!=="external",A=t=>t.title??t.key,Ce=(t,e)=>{if(e===void 0)return!1;const a=String(e),n=String(t.value);return t.op==="eq"?a===n:a!==n},je=(t,e)=>P(t)?(t.when??[]).every(a=>Ce(a,e[a.key])):!0,V=(t,e)=>{const a={},n=[];for(const c of t){if(!je(c,a))continue;n.push(c);const m=e[c.key];P(c)&&m!==void 0&&(a[c.key]=m)}return n},we=t=>{const e={};for(const a of t)switch(a.type){case"external":break;case"boolean":e[a.key]=a.default??!1;break;case"number":case"integer":typeof a.default=="number"&&(e[a.key]=a.default);break;case"multiselect":e[a.key]=a.default??[];break;case"string":e[a.key]=a.default??a.options?.[0]?.value??"";break}return e},Q=t=>t===void 0?!0:typeof t=="string"?t.trim().length===0:Array.isArray(t)?t.length===0:!1,Ne=(t,e)=>V(t,e).find(a=>P(a)&&a.required===!0&&Q(e[a.key]))??null,Se=(t,e)=>{const a={};for(const n of V(t,e)){if(!P(n))continue;const c=e[n.key];Q(c)||c===void 0||(a[n.key]=typeof c=="string"?c.trim():c)}return a},K=t=>typeof t=="object"&&t!==null&&!Array.isArray(t),W=t=>typeof t=="string"&&t.length>0?t:void 0,Ie=(t,e,a)=>{const n=K(t)?t:{},c=K(n.data)?n.data:{};switch(n.name){case"IntegrationOauthAttemptMissing":return e("settings.providers.page.auth.oauth.error.sessionExpired");case"IntegrationOauthCodeMissing":return e("settings.providers.page.auth.oauth.error.codeRequired");case"IntegrationOauthFailed":return e("settings.providers.page.auth.oauth.error.declined");case"IntegrationValidationFailed":return W(c.message)??e("settings.providers.page.auth.oauth.error.invalidInput");default:return W(n.message)??e(a)}},_="\0typed",Ae=t=>{const e=re.c(12),{fields:a,values:n,onChange:c}=t,{t:m}=H();let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=new Set,e[0]=l):l=e[0];const[f,o]=k.useState(l);let g;e[1]!==c||e[2]!==m||e[3]!==f||e[4]!==n?(g=d=>{if(d.type==="external")return s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{className:"typography-ui-label text-foreground",children:A(d)}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal",onClick:()=>{U(d.url)},children:m("settings.providers.page.actions.open")})]},d.key);const y=n[d.key],j=typeof y=="string"?y:"",w=h=>c(d.key,h),T=d.type==="string"||d.type==="multiselect"?d.options??[]:[],E=d.type==="string"&&d.custom===!0,S=E&&f.has(d.key),N=h=>o(F=>{const I=new Set(F);return h?I.add(d.key):I.delete(d.key),I});return s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{className:"typography-ui-label text-foreground",children:A(d)}),d.description&&s.jsx("p",{className:"typography-meta text-muted-foreground",children:d.description}),T.length>0?s.jsxs(s.Fragment,{children:[s.jsxs(ie,{value:S?_:j,onValueChange:h=>{if(h===_){N(!0),w("");return}N(!1),w(h)},children:[s.jsx(oe,{className:ce,children:s.jsx(le,{children:h=>h===_?m("settings.providers.page.auth.field.other"):T.find(F=>F.value===h)?.label??null})}),s.jsxs(de,{children:[T.map(Te),E?s.jsx(Y,{value:_,children:m("settings.providers.page.auth.field.other")}):null]})]}),S?s.jsx(O,{value:j,onChange:h=>w(h.target.value),placeholder:d.placeholder??m("settings.providers.page.auth.field.otherPlaceholder"),"aria-label":A(d),className:"max-w-[24rem] text-xs",autoFocus:!0}):null]}):d.type==="boolean"?s.jsx("input",{type:"checkbox",checked:y===!0,onChange:h=>w(h.target.checked),"aria-label":A(d)}):s.jsx(O,{value:j,onChange:h=>w(h.target.value),placeholder:d.type==="string"?d.placeholder:void 0,"aria-label":A(d),className:"max-w-[24rem] text-xs"})]},d.key)},e[1]=c,e[2]=m,e[3]=f,e[4]=n,e[5]=g):g=e[5];const x=g;let v;e[6]!==a||e[7]!==x||e[8]!==n?(v=V(a,n).map(x),e[6]=a,e[7]=x,e[8]=n,e[9]=v):v=e[9];let b;return e[10]!==v?(b=s.jsx(s.Fragment,{children:v}),e[10]=v,e[11]=b):b=e[11],b};function Te(t){return s.jsx(Y,{value:t.value,children:t.description?`${t.label} · ${t.description}`:t.label},t.value)}const M={phase:"idle"},Ee=1500,Fe=({integrationId:t,methods:e,onConnected:a,directory:n,className:c,autoStart:m=!1})=>{const{t:l}=H(),f=k.useCallback(()=>n?D.getScopedSdkClient(n):D.getSdkClient(),[n]),[o,g]=k.useState(M),[x,v]=k.useState({}),[b,d]=k.useState(""),y=k.useRef(null),j=k.useCallback(r=>{y.current=null,f().integration.oauth.cancel({integrationID:t,attemptID:r}).catch(()=>{})},[t,f]);k.useEffect(()=>()=>{const r=y.current;r&&j(r)},[j]);const w=o.phase==="idle"?null:o.methodID,T=o.phase==="connecting"||o.phase==="waiting"||o.phase==="awaitingCode"&&o.submitting,E=async(r,i,u)=>{const p=await pe(r);if(p.ok){L.success(l(i));return}console.error("Failed to copy OAuth value:",p.error),L.error(l(u))},S=async(r="settings.providers.page.toast.oauthCompleted")=>{y.current=null,g(M),L.success(l(r)),await a()},N=(r,i,u)=>{y.current=null,console.error("OAuth flow failed:",i),g({phase:"failed",methodID:r,message:Ie(i,l,u)})},h=async(r,i)=>{const u=f();for(;y.current===i;){if(await new Promise(p=>setTimeout(p,Ee)),y.current!==i)return;try{const{data:p}=await u.integration.oauth.status({integrationID:t,attemptID:i});if(y.current!==i)return;if(p.status==="complete"){await S();return}if(p.status==="failed"){g({phase:"failed",methodID:r,message:p.message}),y.current=null;return}}catch(p){if(y.current!==i)return;N(r,p,"settings.providers.page.toast.oauthCompleteFailed");return}}},F=async(r,i)=>{g({phase:"connecting",methodID:r});try{await f().integration.connect.external({integrationID:t,methodID:r,answer:Object.keys(i).length>0?i:void 0})}catch(u){N(r,u,"settings.providers.page.toast.externalConnectFailed");return}await S("settings.providers.page.toast.externalConnected")},I=async(r,i)=>{if(r.type==="external"){await F(r.id,i);return}g({phase:"connecting",methodID:r.id});let u;try{const{data:p}=await f().integration.oauth.connect({integrationID:t,methodID:r.id,...Object.keys(i).length>0?{answer:i}:{}});u={attemptID:p.attemptID,mode:p.mode,url:p.url,instructions:p.instructions}}catch(p){N(r.id,p,"settings.providers.page.toast.oauthStartFailed");return}if(y.current=u.attemptID,xe(t,u.url)&&U(u.url),u.mode==="code"){d(""),g({phase:"awaitingCode",methodID:r.id,attempt:u,submitting:!1});return}g({phase:"waiting",methodID:r.id,attempt:u}),await h(r.id,u.attemptID)},R=r=>{const i=(r.form??[]).filter(P);if(i.length===0){I(r,{});return}v(we(i)),g({phase:"prompting",methodID:r.id,fields:i,error:null})},G=k.useRef(!1);k.useEffect(()=>{!m||G.current||e.length!==1||(G.current=!0,R(e[0]))},[m,e]);const te=r=>{if(o.phase!=="prompting")return;const i=Ne(o.fields,x);if(i){g({...o,error:l("settings.providers.page.auth.oauth.promptRequired",{field:A(i)})});return}I(r,Se(o.fields,x))},se=async()=>{if(o.phase!=="awaitingCode")return;const r=b.trim();if(!r)return;const{methodID:i,attempt:u}=o;g({...o,submitting:!0});try{await f().integration.oauth.complete({integrationID:t,attemptID:u.attemptID,code:r}),await S()}catch(p){N(i,p,"settings.providers.page.toast.oauthCompleteFailed")}},q=()=>{(o.phase==="waiting"||o.phase==="awaitingCode")&&j(o.attempt.attemptID),g(M)},Z=r=>{const i=be(r.instructions);return s.jsxs(s.Fragment,{children:[r.instructions&&s.jsx("p",{className:"typography-meta text-[var(--status-info-text)] bg-[var(--status-info-background)] px-2 py-1.5 rounded",children:r.instructions}),i&&s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(O,{value:i,readOnly:!0,"aria-label":l("settings.providers.page.auth.oauth.deviceCodeLabel"),className:"font-mono text-center tracking-widest"}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal shrink-0",onClick:()=>{E(i,"settings.providers.page.toast.deviceCodeCopied","settings.providers.page.toast.deviceCodeCopyFailed")},children:l("settings.providers.page.actions.copyCode")})]}),r.url&&s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(O,{value:r.url,readOnly:!0,"aria-label":l("settings.providers.page.auth.oauth.linkLabel"),className:"text-xs text-muted-foreground"}),s.jsxs("div",{className:"flex gap-1 shrink-0",children:[s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal",onClick:()=>{U(r.url)},children:l("settings.providers.page.actions.open")}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal",onClick:()=>{E(r.url,"settings.providers.page.toast.oauthLinkCopied","settings.providers.page.toast.oauthLinkCopyFailed")},children:l("settings.providers.page.actions.copy")})]})]})]})};return s.jsx("div",{className:ue("space-y-4",c),children:e.map(r=>{const i=w===r.id;return s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsx("div",{className:"typography-ui-label text-foreground",children:r.label}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal shrink-0",onClick:()=>R(r),disabled:T,children:l("settings.providers.page.actions.connect")})]}),i&&o.phase==="prompting"&&s.jsxs("div",{className:"space-y-3",children:[s.jsx(Ae,{fields:o.fields,values:x,onChange:(u,p)=>v(ae=>({...ae,[u]:p}))}),o.error&&s.jsx("p",{className:"typography-meta text-[var(--status-error)]",children:o.error}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(C,{size:"xs",className:"!font-normal",onClick:()=>te(r),children:l("settings.providers.page.actions.continue")}),s.jsx(C,{variant:"ghost",size:"xs",className:"!font-normal",onClick:q,children:l("settings.providers.page.actions.cancel")})]})]}),i&&o.phase==="connecting"&&s.jsxs("p",{className:"typography-meta text-muted-foreground flex items-center gap-2",children:[s.jsx($,{className:"h-3.5 w-3.5"}),r.type==="external"?l("settings.providers.page.auth.external.connecting"):l("settings.providers.page.auth.oauth.starting")]}),i&&o.phase==="waiting"&&s.jsxs("div",{className:"space-y-3",children:[Z(o.attempt),s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsxs("p",{className:"typography-meta text-muted-foreground flex items-center gap-2",children:[s.jsx($,{className:"h-3.5 w-3.5"}),l("settings.providers.page.auth.oauth.waiting")]}),s.jsx(C,{variant:"ghost",size:"xs",className:"!font-normal shrink-0",onClick:q,children:l("settings.providers.page.actions.cancel")})]}),s.jsx("p",{className:"typography-meta text-muted-foreground",children:l("settings.providers.page.auth.oauth.waitingHint")})]}),i&&o.phase==="awaitingCode"&&s.jsxs("div",{className:"space-y-3",children:[Z(o.attempt),s.jsx("p",{className:"typography-meta text-muted-foreground",children:l("settings.providers.page.auth.oauth.codeHint")}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(O,{value:b,onChange:u=>d(u.target.value),placeholder:l("settings.providers.page.auth.pasteAuthorizationCodePlaceholder"),className:"font-mono text-xs",disabled:o.submitting}),s.jsx(C,{size:"xs",className:"!font-normal shrink-0",onClick:()=>{se()},disabled:o.submitting||b.trim().length===0,children:o.submitting?l("settings.providers.page.actions.saving"):l("settings.providers.page.actions.complete")}),s.jsx(C,{variant:"ghost",size:"xs",className:"!font-normal shrink-0",onClick:q,disabled:o.submitting,children:l("settings.providers.page.actions.cancel")})]})]}),i&&o.phase==="failed"&&s.jsxs("div",{className:"space-y-2",children:[s.jsx("p",{className:"typography-meta text-[var(--status-error)]",children:o.message}),s.jsx(C,{variant:"outline",size:"xs",className:"!font-normal",onClick:()=>R(r),children:l("settings.providers.page.actions.tryAgain")})]})]},r.id)})})},Oe=(t,e)=>t.find(a=>a.id.startsWith("mcp_")&&a.metadata?.source==="mcp"&&a.name===e),ze=t=>(t?.methods??[]).filter(e=>e.type==="oauth"),Ve=({serverName:t,directory:e,onConnected:a,autoStart:n})=>{const[c,m]=k.useState(null);k.useEffect(()=>{let f=!1;m(null);const o=e?D.getScopedSdkClient(e):D.getSdkClient(),g=async(x=0)=>{try{const{data:v}=await o.integration.list();if(f)return;const b=Oe(v,t)??null;if(b){m(b);return}x<8&&setTimeout(()=>{g(x+1)},750)}catch(v){if(f)return;console.error("Failed to load MCP integrations:",v),x<8&&setTimeout(()=>{g(x+1)},750)}};return g(),()=>{f=!0}},[e,t]);const l=ze(c??void 0);return!c||l.length===0?null:s.jsx(Fe,{integrationId:c.id,methods:l,directory:e,onConnected:a,autoStart:n},c.id)},Pe=fe({error:ye(["invalid-path","invalid-url","not-found","invalid-manifest","id-taken","already-installed","missing-build","host-too-old","bundled","reserved-id","clone-failed","clone-auth-failed","extract-failed","too-large","enterprise-mode"]),required:B().trim().min(1).max(64).optional(),id:B().trim().min(1).max(128).optional()}),_e=t=>{const e=t.trim();if(!e)return{ok:!1,code:"invalid-path"};if(e.slice(0,8).toLowerCase()==="https://")return{ok:!0,request:{url:e}};if(e.slice(0,6).toLowerCase()==="ssh://"||/^(?:[A-Za-z0-9_][A-Za-z0-9_.-]*@)?[A-Za-z0-9][A-Za-z0-9.-]*\.[A-Za-z0-9.-]+:[^\s]+$/.test(e))return{ok:!0,request:{url:e}};const a=/^[a-zA-Z]:[\\/]/.test(e);return/^[a-z][a-z0-9+.-]*:/i.test(e)&&!a?{ok:!1,code:"invalid-url"}:e.startsWith("/")||a||e.startsWith("\\\\")?{ok:!0,request:{path:e}}:{ok:!1,code:"invalid-path"}},X=async t=>{try{const e=Pe.safeParse(JSON.parse(await t.text()));return e.success?e.data.error==="host-too-old"&&e.data.required&&e.data.id?{code:"host-too-old",required:e.data.required,id:e.data.id}:e.data.error==="host-too-old"&&e.data.required?{code:"host-too-old",required:e.data.required}:e.data.id?{code:e.data.error,id:e.data.id}:{code:e.data.error}:{code:"failed"}}catch{return{code:"failed"}}},ee=async(t,e)=>{if(!t.ok)return{ok:!1,...await X(t),diagnostic:{method:"POST",path:e,kind:"http",status:t.status}};const a=await t.text().catch(()=>null),n=a===null?null:me(a);return n==="unreadable"?{ok:!1,code:"unreadable"}:n?{ok:!0,guest:n,replaced:t.status===200}:{ok:!1,code:"failed",diagnostic:{method:"POST",path:e,kind:"invalid-response",status:t.status}}},Ge=async(t,e={})=>{const a=_e(t);if(!a.ok)return a;const n={...a.request};e.replace&&(n.replace=!0),"url"in n&&e.gitIdentityId&&(n.gitIdentityId=e.gitIdentityId);try{const c=await z("/api/guests",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(n)});return await ee(c,"/api/guests")}catch{return{ok:!1,code:"failed",diagnostic:{method:"POST",path:"/api/guests",kind:"network"}}}},Ze=async(t,e={})=>{try{const a=await z("/api/guests/upload",{method:"POST",query:{replace:e.replace?"true":void 0,name:t.name||void 0},headers:{"Content-Type":"application/octet-stream",Accept:"application/json"},body:t});return await ee(a,"/api/guests/upload")}catch{return{ok:!1,code:"failed",diagnostic:{method:"POST",path:"/api/guests/upload",kind:"network"}}}},$e=async t=>{const e=ge.getState(),a=ne(),n=e.runtimeKey===a?e.guests.find(c=>c.id===t)?.storageId:void 0;try{const c=await z(`/api/guests/${t}`,{method:"DELETE"});return c.status===204?(n&&globalThis.indexedDB&&await he({runtimeKey:a,guestId:t,storageId:n}).catch(()=>{console.warn("Could not clear local extension preferences.")}),{ok:!0}):{ok:!1,code:(await X(c)).code}}catch{return{ok:!1,code:"failed"}}},Be=async(t,e)=>{try{return(await z(`/api/guests/${t}/enabled`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})})).ok}catch{return!1}},Je=async(t,e)=>{try{return(await z(`/api/guests/${t}/capabilities`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({granted:e})})).ok}catch{return!1}};export{J as M,Ae as P,Ve as a,ve as b,P as c,we as d,A as e,Ne as f,Se as g,Fe as h,Ge as i,Ze as j,Je as k,Me as n,Ue as r,Be as s,$e as u};
@@ -1 +1 @@
1
- import{a as Z,w as y,b as nn,e as _,g as D,c as en,f as G,d as J}from"./computeVirtualFileMetrics-rZJ-MSfY.js";import{eR as T,eS as U,eT as B}from"./useAppFontEffects-d9vsRNKm.js";import{d as tn,a as on}from"./vendor-diff-C3JhlQdm.js";function xn(n,e){return n?.cacheKey!=null||e?.cacheKey!=null?n?.cacheKey===e?.cacheKey:n===e}function vn(n,e){return n?.cacheKey===e?.cacheKey&&n?.contents===e?.contents&&n?.name===e?.name&&n?.lang===e?.lang}function En(n,e){return Z(n.theme,e.theme)&&n.useTokenTransformer===e.useTokenTransformer&&n.tokenizeMaxLineLength===e.tokenizeMaxLineLength&&n.lineDiffType===e.lineDiffType&&n.maxLineDiffLength===e.maxLineDiffLength}function V({line:n,spanStart:e,spanLength:r}){return{start:{line:n,character:e},end:{line:n,character:e+r},properties:{"data-diff-span":""},alwaysWrap:!0}}function W({item:n,arr:e,enableJoin:r,isNeutral:a=!1,isLastItem:h=!1}){const i=e[e.length-1];if(i==null||h||!r){e.push([a?0:1,n.value]);return}const d=i[0]===0;if(a===d||a&&n.value.length===1&&!d){i[1]+=n.value;return}e.push([a?0:1,n.value])}function q(n){return[U(n.additionStart,n.additionCount)+1,T(n.additionStart,n.additionCount)+1]}function $({isPartial:n,rangeSize:e,expandedHunks:r,hunkIndex:a,collapsedContextThreshold:h}){const i=Math.max(e,0);if(i===0||n)return{fromStart:0,fromEnd:0,rangeSize:i,collapsedLines:i,renderAll:!1};if(r===!0||i<=h)return{fromStart:i,fromEnd:0,rangeSize:i,collapsedLines:0,renderAll:!0};const d=r?.get(a),u=Math.min(Math.max(d?.fromStart??0,0),i),t=Math.min(Math.max(d?.fromEnd??0,0),i),s=u+t,o=s>=i;return{fromStart:o?i:u,fromEnd:o?0:t,rangeSize:i,collapsedLines:Math.max(i-s,0),renderAll:o}}function wn(n){const e=n.hunks[n.hunks.length-1];if(e==null||n.isPartial||n.additionLines.length===0||n.deletionLines.length===0)return!1;const r=n.additionLines.length-T(e.additionStart,e.additionCount),a=n.deletionLines.length-T(e.deletionStart,e.deletionCount);return r<=0&&a<=0?!1:r!==a}function rn({fileDiff:n,errorPrefix:e}){const r=n.hunks[n.hunks.length-1];if(r==null||n.isPartial||n.additionLines.length===0||n.deletionLines.length===0)return 0;const a=n.additionLines.length-T(r.additionStart,r.additionCount),h=n.deletionLines.length-T(r.deletionStart,r.deletionCount);if(a<=0&&h<=0)return 0;if(a!==h)throw new Error(`${e}: trailing context mismatch (additions=${a}, deletions=${h}) for ${n.name}`);return Math.min(a,h)}function K({fileDiff:n,hunkIndex:e,expandedHunks:r,collapsedContextThreshold:a,errorPrefix:h}){if(e!==n.hunks.length-1)return;const i=rn({fileDiff:n,errorPrefix:h});if(i<=0)return;if(r===!0||i<=a)return{fromStart:i,fromEnd:0,rangeSize:i,collapsedLines:0,renderAll:!0};const d=r?.get(n.hunks.length),u=Math.min(Math.max(d?.fromStart??0,0),i);return{fromStart:u,fromEnd:0,rangeSize:i,collapsedLines:i-u,renderAll:u>=i}}function Rn({fileDiff:n,lineNumber:e,expandedHunks:r,collapsedContextThreshold:a}){if(r===!0||n.isPartial)return!0;for(const[u,t]of n.hunks.entries()){const[s,o]=q(t);if(e<s){const c=$({isPartial:n.isPartial,rangeSize:t.collapsedBefore,expandedHunks:r,hunkIndex:u,collapsedContextThreshold:a}),l=s-c.rangeSize;return c.renderAll||e<l+c.fromStart||e>=s-c.fromEnd}if(e<o)return!0}const h=K({fileDiff:n,hunkIndex:n.hunks.length-1,expandedHunks:r,collapsedContextThreshold:a,errorPrefix:"isAdditionLineRenderable"});if(h==null||h.renderAll)return!0;const i=n.hunks[n.hunks.length-1],[,d]=q(i);return e<d+h.fromStart||e>=d+h.rangeSize}function bn({fileDiff:n,lineNumber:e,direction:r,expandedHunks:a,collapsedContextThreshold:h}){if(a===!0||n.isPartial)return e;const i=[];let d=1;for(const[t,s]of n.hunks.entries()){const[o,c]=q(s),l=$({isPartial:n.isPartial,rangeSize:s.collapsedBefore,expandedHunks:a,hunkIndex:t,collapsedContextThreshold:h}),m=o-l.rangeSize;l.renderAll?i.push([m,o]):(l.fromStart>0&&i.push([m,m+l.fromStart]),l.fromEnd>0&&i.push([o-l.fromEnd,o])),i.push([o,c]),d=c}const u=K({fileDiff:n,hunkIndex:n.hunks.length-1,expandedHunks:a,collapsedContextThreshold:h,errorPrefix:"getNearestRenderableAdditionLine"});if(u!=null){const t=d;d=t+u.rangeSize,u.renderAll?i.push([t,d]):u.fromStart>0&&i.push([t,t+u.fromStart])}if(e>=d)return e;if(r==="down"){for(const[t,s]of i)if(s>e)return Math.max(t,e);return}for(let t=i.length-1;t>=0;t--){const[s,o]=i[t];if(s<=e)return Math.min(o-1,e)}}function j({type:n,metrics:e}){return e.hunkSeparatorHeight??y(n)}function X({type:n,metrics:e}){return n==="simple"||n==="metadata"||n==="line-info-basic"?0:e.spacing}function sn({type:n,hunkIndex:e,hunkSpecs:r}){switch(n){case"simple":return e>0;case"metadata":return r!=null;case"line-info":case"line-info-basic":case"custom":return!0}}function an(n){return n!=="simple"&&n!=="metadata"}function On({type:n,metrics:e,hunkIndex:r,hunkSpecs:a}){if(!sn({type:n,hunkIndex:r,hunkSpecs:a}))return;const h=j({type:n,metrics:e}),i=X({type:n,metrics:e}),d=r>0?i:0,u=i;return{height:h,gapBefore:d,gapAfter:u,totalHeight:d+h+u}}function Hn({type:n,metrics:e}){if(!an(n))return;const r=j({type:n,metrics:e}),a=X({type:n,metrics:e});return{height:r,gapBefore:a,gapAfter:0,totalHeight:a+r}}function ln({diff:n,diffStyle:e,startingLine:r=0,totalLines:a=1/0,expandedHunks:h,collapsedContextThreshold:i=1,callback:d}){const u=un({diff:n,diffStyle:e,startingLine:r,expandedHunks:h,collapsedContextThreshold:i}),t={viewportStart:r,viewportEnd:r+a,isWindowedHighlight:r>0||a<1/0,splitCount:u.splitCount,unifiedCount:u.unifiedCount,finalHunkIndex:n.hunks.length-1,shouldBreak(){if(!t.isWindowedHighlight)return!1;const s=t.unifiedCount>=r+a,o=t.splitCount>=r+a;return e==="unified"?s:(e==="split"||s)&&o},shouldSkip(s,o){if(!t.isWindowedHighlight)return!1;const c=s>0&&t.unifiedCount+s<=r,l=o>0&&t.splitCount+o<=r;return e==="unified"?c:(e==="split"||c)&&l},incrementCounts(s,o){(e==="unified"||e==="both")&&(t.unifiedCount+=s),(e==="split"||e==="both")&&(t.splitCount+=o)},isInWindow(s,o){if(!t.isWindowedHighlight)return!0;const c=t.isInUnifiedWindow(s),l=t.isInSplitWindow(o);return e==="unified"?c:e==="split"?l:c||l},isInUnifiedWindow(s){return!t.isWindowedHighlight||t.unifiedCount>=r-s&&t.unifiedCount<r+a},isInSplitWindow(s){return!t.isWindowedHighlight||t.splitCount>=r-s&&t.splitCount<r+a},emit(s,o=!1){return o||(e==="unified"?t.incrementCounts(1,0):e==="split"?t.incrementCounts(0,1):t.incrementCounts(1,1)),d(s)??!1}};n:for(let s=u.hunkIndex;s<n.hunks.length;s++){let M=function(g,H){return b==null||b.collapsedLines<=0||b.fromStart+b.fromEnd>0?0:e==="unified"?g===o.unifiedLineStart+o.unifiedLineCount-1?b.collapsedLines:0:H===o.splitLineStart+o.splitLineCount-1?b.collapsedLines:0},p=function(){return k?0:(k=!0,C.collapsedLines)};const o=n.hunks[s];if(o==null)throw new Error("iterateOverDiff: invalid hunk index");if(t.shouldBreak())break;const c=U(o.deletionStart,o.deletionCount),l=U(o.additionStart,o.additionCount),m=!n.isPartial&&o.deletionCount===0?c:o.deletionLineIndex,f=!n.isPartial&&o.additionCount===0?l:o.additionLineIndex,C=$({isPartial:n.isPartial,rangeSize:o.collapsedBefore,expandedHunks:h,hunkIndex:s,collapsedContextThreshold:i}),b=s===t.finalHunkIndex?K({fileDiff:n,hunkIndex:s,expandedHunks:h,collapsedContextThreshold:i,errorPrefix:"iterateOverDiff"}):void 0,F=C.fromStart+C.fromEnd;let k=C.collapsedLines===0;if(t.shouldSkip(F,F))t.incrementCounts(F,F),p();else{let g=o.unifiedLineStart-C.rangeSize,H=o.splitLineStart-C.rangeSize,R=m-C.rangeSize,O=f-C.rangeSize,v=c+1-C.rangeSize,P=l+1-C.rangeSize;if(A(t,C.fromStart,e,E=>t.emit({hunkIndex:s,hunk:o,collapsedBefore:0,collapsedAfter:0,type:"context-expanded",deletionLine:{lineNumber:v+E,lineIndex:R+E,noEOFCR:!1,unifiedLineIndex:g+E,splitLineIndex:H+E},additionLine:{unifiedLineIndex:g+E,splitLineIndex:H+E,lineIndex:O+E,lineNumber:P+E,noEOFCR:!1}}))||(g=o.unifiedLineStart-C.fromEnd,H=o.splitLineStart-C.fromEnd,R=m-C.fromEnd,O=f-C.fromEnd,v=c+1-C.fromEnd,P=l+1-C.fromEnd,A(t,C.fromEnd,e,E=>t.emit({hunkIndex:s,hunk:o,collapsedBefore:p(),collapsedAfter:0,type:"context-expanded",deletionLine:{lineNumber:v+E,lineIndex:R+E,noEOFCR:!1,unifiedLineIndex:g+E,splitLineIndex:H+E},additionLine:{unifiedLineIndex:g+E,splitLineIndex:H+E,lineIndex:O+E,lineNumber:P+E,noEOFCR:!1}}),()=>{p()})))break n}let L=o.unifiedLineStart,S=o.splitLineStart,I=m,w=f,x=c+1,z=l+1;const Q=o.hunkContent.at(-1);for(const g of o.hunkContent){if(t.shouldBreak())break n;const H=g===Q;if(g.type==="context"){if(t.shouldSkip(g.lines,g.lines))t.incrementCounts(g.lines,g.lines),p();else if(A(t,g.lines,e,R=>{const O=H&&R===g.lines-1,v=L+R,P=S+R;return t.emit({hunkIndex:s,hunk:o,collapsedBefore:p(),collapsedAfter:M(v,P),type:"context",deletionLine:{lineNumber:x+R,lineIndex:I+R,noEOFCR:O&&o.noEOFCRDeletions,unifiedLineIndex:v,splitLineIndex:P},additionLine:{unifiedLineIndex:v,splitLineIndex:P,lineIndex:w+R,lineNumber:z+R,noEOFCR:O&&o.noEOFCRAdditions}})},()=>{p()}))break n;L+=g.lines,S+=g.lines,I+=g.lines,w+=g.lines,x+=g.lines,z+=g.lines}else{const R=Math.max(g.deletions,g.additions),O=g.deletions+g.additions;if(!t.shouldSkip(O,R)){const v=hn(t,g,e);(v[0]?.[0]??0)>0&&p();for(const[P,E]of v)for(let N=P;N<E;N++){const Y=M(L+N,e==="unified"?S+(N<g.deletions?N:N-g.deletions):S+N);if(t.emit(fn({hunkIndex:s,hunk:o,collapsedBefore:p(),collapsedAfter:Y,diffStyle:e,index:N,unifiedLineIndex:L,splitLineIndex:S,additionLineIndex:w,deletionLineIndex:I,additionLineNumber:z,deletionLineNumber:x,content:g,isLastContent:H,unifiedCount:O,splitCount:R}),!0))break n}}p(),t.incrementCounts(O,R),L+=O,S+=R,I+=g.deletions,w+=g.additions,x+=g.deletions,z+=g.additions}}if(b!=null){const{collapsedLines:g,fromStart:H,fromEnd:R}=b,O=H+R;if(A(t,O,e,v=>{const P=v===O-1;return t.emit({hunkIndex:n.hunks.length,hunk:void 0,collapsedBefore:0,collapsedAfter:P?g:0,type:"context-expanded",deletionLine:{lineNumber:x+v,lineIndex:I+v,noEOFCR:!1,unifiedLineIndex:L+v,splitLineIndex:S+v},additionLine:{unifiedLineIndex:L+v,splitLineIndex:S+v,lineIndex:w+v,lineNumber:z+v,noEOFCR:!1}})},void 0,()=>t.shouldBreak()))break n}}}function un({diff:n,diffStyle:e,startingLine:r,expandedHunks:a,collapsedContextThreshold:h}){if(r<=0||e==="both")return{hunkIndex:0,splitCount:0,unifiedCount:0};const i=dn({diff:n,expandedHunks:a,collapsedContextThreshold:h});let d=0,u=n.hunks.length-1,t=n.hunks.length;for(;d<=u;){const o=d+u>>1,c=i[o+1];if(c==null)throw new Error("iterateOverDiff: invalid hunk prefix index");(e==="unified"?c.unifiedCount:c.splitCount)>r?(t=o,u=o-1):d=o+1}if(t>=n.hunks.length){const o=i[n.hunks.length];if(o==null)throw new Error("iterateOverDiff: invalid terminal hunk prefix index");return{hunkIndex:n.hunks.length,splitCount:o.splitCount,unifiedCount:o.unifiedCount}}const s=i[t];if(s==null)throw new Error("iterateOverDiff: invalid selected hunk prefix index");return{hunkIndex:t,splitCount:s.splitCount,unifiedCount:s.unifiedCount}}function dn({diff:n,expandedHunks:e,collapsedContextThreshold:r}){let a=0,h=0;const i=n.hunks.length-1,d=[{splitCount:0,unifiedCount:0}];for(let u=0;u<n.hunks.length;u++){const t=n.hunks[u];if(t==null)throw new Error("iterateOverDiff: invalid hunk summary index");const s=$({isPartial:n.isPartial,rangeSize:t.collapsedBefore,expandedHunks:e,hunkIndex:u,collapsedContextThreshold:r}),o=s.fromStart+s.fromEnd;a+=o+t.splitLineCount,h+=o+t.unifiedLineCount;const c=u===i?K({fileDiff:n,hunkIndex:u,expandedHunks:e,collapsedContextThreshold:r,errorPrefix:"iterateOverDiff"}):void 0;if(c!=null){const l=c.fromStart+c.fromEnd;a+=l,h+=l}d.push({splitCount:a,unifiedCount:h})}return d}function cn(n,e,r){if(!n.isWindowedHighlight||e<=0)return[0,e];const a=[];function h(u){const t=Math.max(0,n.viewportStart-u),s=Math.min(e,n.viewportEnd-u);s>t&&a.push([t,s])}if(r!=="split"&&h(n.unifiedCount),r!=="unified"&&h(n.splitCount),a.length===0)return[0,0];let i=a[0][0],d=a[0][1];for(let u=1;u<a.length;u++){const t=a[u];i=Math.min(i,t[0]),d=Math.max(d,t[1])}return[i,d]}function A(n,e,r,a,h,i){const[d,u]=cn(n,e,r);d>0&&(n.incrementCounts(d,d),h?.());let t=d;for(;t<e;){if(i?.()===!0)return!0;if(t>=u){n.incrementCounts(e-t,e-t);break}if(n.isInWindow(0,0)){if(a(t)===!0)return!0}else n.incrementCounts(1,1);t++}return!1}function hn(n,e,r){if(!n.isWindowedHighlight)return[[0,r==="unified"?e.deletions+e.additions:Math.max(e.deletions,e.additions)]];const a=r!=="split",h=r!=="unified",i=r==="unified"?"unified":"split",d=[];function u(c,l){if(c+l<=n.viewportStart||c>=n.viewportEnd)return;const m=Math.max(0,n.viewportStart-c),f=Math.min(l,n.viewportEnd-c);return f>m?[m,f]:void 0}function t(c,l){return i==="split"?c:l==="additions"?[c[0]+e.deletions,c[1]+e.deletions]:c}function s(c,l){if(c==null)return;const[m,f]=t(c,l);f>m&&d.push([m,f])}if(a&&(s(u(n.unifiedCount,e.deletions),"deletions"),s(u(n.unifiedCount+e.deletions,e.additions),"additions")),h&&(s(u(n.splitCount,e.deletions),"deletions"),s(u(n.splitCount,e.additions),"additions")),d.length===0)return d;d.sort((c,l)=>c[0]-l[0]);const o=[d[0]];for(const[c,l]of d.slice(1)){const m=o[o.length-1];c<=m[1]?m[1]=Math.max(m[1],l):o.push([c,l])}return o}function fn({hunkIndex:n,hunk:e,collapsedAfter:r,collapsedBefore:a,diffStyle:h,index:i,unifiedLineIndex:d,splitLineIndex:u,additionLineIndex:t,deletionLineIndex:s,additionLineNumber:o,deletionLineNumber:c,content:l,isLastContent:m,unifiedCount:f,splitCount:C}){const b=i<l.deletions?d+i:void 0,F=h==="unified"?i>=l.deletions?d+i:void 0:i<l.additions?d+l.deletions+i:void 0,M=h==="unified"?u+(i<l.deletions?i:i-l.deletions):u+i,k=i<l.deletions?s+i:void 0,p=i<l.deletions?c+i:void 0,L=h==="unified"?i>=l.deletions?t+(i-l.deletions):void 0:i<l.additions?t+i:void 0,S=h==="unified"?i>=l.deletions?o+(i-l.deletions):void 0:i<l.additions?o+i:void 0,I=h==="unified"?m&&i===l.deletions-1&&e.noEOFCRDeletions:m&&i===C-1&&e.noEOFCRDeletions,w=h==="unified"?m&&i===f-1&&e.noEOFCRAdditions:m&&i===C-1&&e.noEOFCRAdditions,x=k!=null&&p!=null&&b!=null?{lineNumber:p,lineIndex:k,noEOFCR:I,unifiedLineIndex:b,splitLineIndex:M}:void 0,z=L!=null&&S!=null&&F!=null?{unifiedLineIndex:F,splitLineIndex:M,lineIndex:L,lineNumber:S,noEOFCR:w}:void 0;if(x==null&&z!=null)return{type:"change",hunkIndex:n,hunk:e,collapsedAfter:r,collapsedBefore:a,deletionLine:void 0,additionLine:z};if(x!=null&&z==null)return{type:"change",hunkIndex:n,hunk:e,collapsedAfter:r,collapsedBefore:a,deletionLine:x,additionLine:void 0};if(x==null||z==null)throw new Error("iterateOverDiff: missing change line data");return{type:"change",hunkIndex:n,hunk:e,collapsedAfter:r,collapsedBefore:a,deletionLine:x,additionLine:z}}const gn={forcePlainText:!1};function zn(n,e,r,{forcePlainText:a,startingLine:h,totalLines:i,expandedHunks:d,collapsedContextThreshold:u=1}=gn){a?(h??=0,i??=1/0):(h=0,i=1/0);const t=h>0||i<1/0,s=typeof r.theme=="string"?e.getTheme(r.theme).type:void 0,o=nn({theme:r.theme,highlighter:e}),c=a&&!t&&(n.unifiedLineCount>1e3||n.splitLineCount>1e3)?"none":r.lineDiffType,l={deletionLines:[],additionLines:[]},{maxLineDiffLength:m}=r,f=!a&&!n.isPartial,C=a?d:void 0,b=new Map;function F(k){const p=f?0:k,L=b.get(p)??In();return b.set(p,L),L}function M(k,p,L,S){if(t){let I=L.at(-1);(I==null||I.targetIndex+I.count!==p)&&(I={targetIndex:p,originalOffset:S.length,count:0},L.push(I)),I.count++}S.push(k)}ln({diff:n,diffStyle:"both",startingLine:h,totalLines:i,expandedHunks:t?C:!0,collapsedContextThreshold:u,callback:({hunkIndex:k,additionLine:p,deletionLine:L,type:S})=>{const I=F(k),w=p!=null?p.splitLineIndex:L.splitLineIndex;S==="change"&&p!=null&&L!=null&&pn({additionLine:n.additionLines[p.lineIndex],deletionLine:n.deletionLines[L.lineIndex],deletionLineIndex:I.deletionContent.length,additionLineIndex:I.additionContent.length,deletionDecorations:I.deletionDecorations,additionDecorations:I.additionDecorations,lineDiffType:c,maxLineDiffLength:m}),L!=null&&(M(n.deletionLines[L.lineIndex],L.lineIndex,I.deletionSegments,I.deletionContent),I.deletionInfo.push({type:S==="change"?"change-deletion":S,lineNumber:L.lineNumber,altLineNumber:S==="change"?void 0:p.lineNumber??void 0,lineIndex:`${L.unifiedLineIndex},${w}`})),p!=null&&(M(n.additionLines[p.lineIndex],p.lineIndex,I.additionSegments,I.additionContent),I.additionInfo.push({type:S==="change"?"change-addition":S,lineNumber:p.lineNumber,altLineNumber:S==="change"?void 0:L.lineNumber??void 0,lineIndex:`${p.unifiedLineIndex},${w}`}))}});for(const k of b.values()){if(k.deletionContent.length===0&&k.additionContent.length===0)continue;const p={name:n.prevName??n.name,contents:k.deletionContent.value},L={name:n.name,contents:k.additionContent.value},{deletionLines:S,additionLines:I}=Cn({deletionFile:p,deletionInfo:k.deletionInfo,deletionDecorations:k.deletionDecorations,additionFile:L,additionInfo:k.additionInfo,additionDecorations:k.additionDecorations,highlighter:e,options:r,languageOverride:a?"text":n.lang});if(f){l.deletionLines=S,l.additionLines=I;continue}if(k.deletionSegments.length>0)for(const w of k.deletionSegments)for(let x=0;x<w.count;x++)l.deletionLines[w.targetIndex+x]=S[w.originalOffset+x];else _(l.deletionLines,S);if(k.additionSegments.length>0)for(const w of k.additionSegments)for(let x=0;x<w.count;x++)l.additionLines[w.targetIndex+x]=I[w.originalOffset+x];else _(l.additionLines,I)}return{code:l,themeStyles:o,baseThemeType:s}}function mn(n,{deletionLineIndex:e,additionLineIndex:r,deletionDecorations:a,additionDecorations:h}){let i=0,d=0,u=-1,t=0,s=-1,o=0;for(const{value:c,added:l,removed:m}of n)m?(u===-1&&(u=i),i+=c.length,t=i):l?(s===-1&&(s=d),d+=c.length,o=d):(i+=c.length,d+=c.length);u!==-1&&a.push(V({line:e,spanStart:u,spanLength:t-u})),s!==-1&&h.push(V({line:r,spanStart:s,spanLength:o-s}))}function pn({deletionLine:n,additionLine:e,deletionLineIndex:r,additionLineIndex:a,deletionDecorations:h,additionDecorations:i,lineDiffType:d,maxLineDiffLength:u}){if(n==null||e==null||d==="none"||(n=B(n),e=B(e),n.length>u||e.length>u))return;const t=d==="char"?tn(n,e):on(n,e);if(d==="word-line"){mn(t,{deletionLineIndex:r,additionLineIndex:a,deletionDecorations:h,additionDecorations:i});return}const s=[],o=[],c=d==="word-alt",l=t.at(-1);for(const f of t){const C=f===l;!f.added&&!f.removed?(W({item:f,arr:s,enableJoin:c,isNeutral:!0,isLastItem:C}),W({item:f,arr:o,enableJoin:c,isNeutral:!0,isLastItem:C})):f.removed?W({item:f,arr:s,enableJoin:c,isLastItem:C}):W({item:f,arr:o,enableJoin:c,isLastItem:C})}let m=0;for(const f of s)f[0]===1&&h.push(V({line:r,spanStart:m,spanLength:f[1].length})),m+=f[1].length;m=0;for(const f of o)f[0]===1&&i.push(V({line:a,spanStart:m,spanLength:f[1].length})),m+=f[1].length}function In(){return{deletionContent:{push(n){this.value+=n,this.length++},value:"",length:0},additionContent:{push(n){this.value+=n,this.length++},value:"",length:0},deletionInfo:[],additionInfo:[],deletionDecorations:[],additionDecorations:[],deletionSegments:[],additionSegments:[]}}function Cn({deletionFile:n,additionFile:e,deletionInfo:r,additionInfo:a,highlighter:h,deletionDecorations:i,additionDecorations:d,languageOverride:u,options:{theme:t,...s}}){const o=u??D(n.name),c=u??D(e.name),{state:l,transformers:m}=en(s.useTokenTransformer),f=typeof t=="string"?{...s,lang:"text",theme:t,transformers:m,decorations:void 0,defaultColor:!1,cssVariablePrefix:G("token"),tokenizeTimeLimit:0}:{...s,lang:"text",themes:t,transformers:m,decorations:void 0,defaultColor:!1,cssVariablePrefix:G("token"),tokenizeTimeLimit:0};return{deletionLines:n.contents===""?[]:(f.lang=o,l.lineInfo=r,f.decorations=i,J(h.codeToHast(B(n.contents),f))),additionLines:e.contents===""?[]:(f.lang=c,f.decorations=d,l.lineInfo=a,J(h.codeToHast(B(e.contents),f)))}}function Pn(n){const e=n.lang??D(n.name),r=n.lang??(n.prevName!=null?D(n.prevName):"text");return e==="text"&&r==="text"}export{xn as a,En as b,vn as c,K as d,ln as e,rn as f,$ as g,wn as h,Pn as i,Rn as j,bn as k,q as l,On as m,Hn as n,zn as r};
1
+ import{a as Z,w as y,b as nn,e as _,g as D,c as en,f as G,d as J}from"./computeVirtualFileMetrics-DDyA16hp.js";import{eS as T,eT as K,eU as B}from"./useAppFontEffects-Dm6zEvrf.js";import{d as tn,a as on}from"./vendor-diff-C3JhlQdm.js";function xn(n,e){return n?.cacheKey!=null||e?.cacheKey!=null?n?.cacheKey===e?.cacheKey:n===e}function vn(n,e){return n?.cacheKey===e?.cacheKey&&n?.contents===e?.contents&&n?.name===e?.name&&n?.lang===e?.lang}function En(n,e){return Z(n.theme,e.theme)&&n.useTokenTransformer===e.useTokenTransformer&&n.tokenizeMaxLineLength===e.tokenizeMaxLineLength&&n.lineDiffType===e.lineDiffType&&n.maxLineDiffLength===e.maxLineDiffLength}function V({line:n,spanStart:e,spanLength:r}){return{start:{line:n,character:e},end:{line:n,character:e+r},properties:{"data-diff-span":""},alwaysWrap:!0}}function W({item:n,arr:e,enableJoin:r,isNeutral:a=!1,isLastItem:h=!1}){const i=e[e.length-1];if(i==null||h||!r){e.push([a?0:1,n.value]);return}const d=i[0]===0;if(a===d||a&&n.value.length===1&&!d){i[1]+=n.value;return}e.push([a?0:1,n.value])}function q(n){return[K(n.additionStart,n.additionCount)+1,T(n.additionStart,n.additionCount)+1]}function $({isPartial:n,rangeSize:e,expandedHunks:r,hunkIndex:a,collapsedContextThreshold:h}){const i=Math.max(e,0);if(i===0||n)return{fromStart:0,fromEnd:0,rangeSize:i,collapsedLines:i,renderAll:!1};if(r===!0||i<=h)return{fromStart:i,fromEnd:0,rangeSize:i,collapsedLines:0,renderAll:!0};const d=r?.get(a),u=Math.min(Math.max(d?.fromStart??0,0),i),t=Math.min(Math.max(d?.fromEnd??0,0),i),s=u+t,o=s>=i;return{fromStart:o?i:u,fromEnd:o?0:t,rangeSize:i,collapsedLines:Math.max(i-s,0),renderAll:o}}function wn(n){const e=n.hunks[n.hunks.length-1];if(e==null||n.isPartial||n.additionLines.length===0||n.deletionLines.length===0)return!1;const r=n.additionLines.length-T(e.additionStart,e.additionCount),a=n.deletionLines.length-T(e.deletionStart,e.deletionCount);return r<=0&&a<=0?!1:r!==a}function rn({fileDiff:n,errorPrefix:e}){const r=n.hunks[n.hunks.length-1];if(r==null||n.isPartial||n.additionLines.length===0||n.deletionLines.length===0)return 0;const a=n.additionLines.length-T(r.additionStart,r.additionCount),h=n.deletionLines.length-T(r.deletionStart,r.deletionCount);if(a<=0&&h<=0)return 0;if(a!==h)throw new Error(`${e}: trailing context mismatch (additions=${a}, deletions=${h}) for ${n.name}`);return Math.min(a,h)}function U({fileDiff:n,hunkIndex:e,expandedHunks:r,collapsedContextThreshold:a,errorPrefix:h}){if(e!==n.hunks.length-1)return;const i=rn({fileDiff:n,errorPrefix:h});if(i<=0)return;if(r===!0||i<=a)return{fromStart:i,fromEnd:0,rangeSize:i,collapsedLines:0,renderAll:!0};const d=r?.get(n.hunks.length),u=Math.min(Math.max(d?.fromStart??0,0),i);return{fromStart:u,fromEnd:0,rangeSize:i,collapsedLines:i-u,renderAll:u>=i}}function Rn({fileDiff:n,lineNumber:e,expandedHunks:r,collapsedContextThreshold:a}){if(r===!0||n.isPartial)return!0;for(const[u,t]of n.hunks.entries()){const[s,o]=q(t);if(e<s){const c=$({isPartial:n.isPartial,rangeSize:t.collapsedBefore,expandedHunks:r,hunkIndex:u,collapsedContextThreshold:a}),l=s-c.rangeSize;return c.renderAll||e<l+c.fromStart||e>=s-c.fromEnd}if(e<o)return!0}const h=U({fileDiff:n,hunkIndex:n.hunks.length-1,expandedHunks:r,collapsedContextThreshold:a,errorPrefix:"isAdditionLineRenderable"});if(h==null||h.renderAll)return!0;const i=n.hunks[n.hunks.length-1],[,d]=q(i);return e<d+h.fromStart||e>=d+h.rangeSize}function bn({fileDiff:n,lineNumber:e,direction:r,expandedHunks:a,collapsedContextThreshold:h}){if(a===!0||n.isPartial)return e;const i=[];let d=1;for(const[t,s]of n.hunks.entries()){const[o,c]=q(s),l=$({isPartial:n.isPartial,rangeSize:s.collapsedBefore,expandedHunks:a,hunkIndex:t,collapsedContextThreshold:h}),m=o-l.rangeSize;l.renderAll?i.push([m,o]):(l.fromStart>0&&i.push([m,m+l.fromStart]),l.fromEnd>0&&i.push([o-l.fromEnd,o])),i.push([o,c]),d=c}const u=U({fileDiff:n,hunkIndex:n.hunks.length-1,expandedHunks:a,collapsedContextThreshold:h,errorPrefix:"getNearestRenderableAdditionLine"});if(u!=null){const t=d;d=t+u.rangeSize,u.renderAll?i.push([t,d]):u.fromStart>0&&i.push([t,t+u.fromStart])}if(e>=d)return e;if(r==="down"){for(const[t,s]of i)if(s>e)return Math.max(t,e);return}for(let t=i.length-1;t>=0;t--){const[s,o]=i[t];if(s<=e)return Math.min(o-1,e)}}function j({type:n,metrics:e}){return e.hunkSeparatorHeight??y(n)}function X({type:n,metrics:e}){return n==="simple"||n==="metadata"||n==="line-info-basic"?0:e.spacing}function sn({type:n,hunkIndex:e,hunkSpecs:r}){switch(n){case"simple":return e>0;case"metadata":return r!=null;case"line-info":case"line-info-basic":case"custom":return!0}}function an(n){return n!=="simple"&&n!=="metadata"}function On({type:n,metrics:e,hunkIndex:r,hunkSpecs:a}){if(!sn({type:n,hunkIndex:r,hunkSpecs:a}))return;const h=j({type:n,metrics:e}),i=X({type:n,metrics:e}),d=r>0?i:0,u=i;return{height:h,gapBefore:d,gapAfter:u,totalHeight:d+h+u}}function Hn({type:n,metrics:e}){if(!an(n))return;const r=j({type:n,metrics:e}),a=X({type:n,metrics:e});return{height:r,gapBefore:a,gapAfter:0,totalHeight:a+r}}function ln({diff:n,diffStyle:e,startingLine:r=0,totalLines:a=1/0,expandedHunks:h,collapsedContextThreshold:i=1,callback:d}){const u=un({diff:n,diffStyle:e,startingLine:r,expandedHunks:h,collapsedContextThreshold:i}),t={viewportStart:r,viewportEnd:r+a,isWindowedHighlight:r>0||a<1/0,splitCount:u.splitCount,unifiedCount:u.unifiedCount,finalHunkIndex:n.hunks.length-1,shouldBreak(){if(!t.isWindowedHighlight)return!1;const s=t.unifiedCount>=r+a,o=t.splitCount>=r+a;return e==="unified"?s:(e==="split"||s)&&o},shouldSkip(s,o){if(!t.isWindowedHighlight)return!1;const c=s>0&&t.unifiedCount+s<=r,l=o>0&&t.splitCount+o<=r;return e==="unified"?c:(e==="split"||c)&&l},incrementCounts(s,o){(e==="unified"||e==="both")&&(t.unifiedCount+=s),(e==="split"||e==="both")&&(t.splitCount+=o)},isInWindow(s,o){if(!t.isWindowedHighlight)return!0;const c=t.isInUnifiedWindow(s),l=t.isInSplitWindow(o);return e==="unified"?c:e==="split"?l:c||l},isInUnifiedWindow(s){return!t.isWindowedHighlight||t.unifiedCount>=r-s&&t.unifiedCount<r+a},isInSplitWindow(s){return!t.isWindowedHighlight||t.splitCount>=r-s&&t.splitCount<r+a},emit(s,o=!1){return o||(e==="unified"?t.incrementCounts(1,0):e==="split"?t.incrementCounts(0,1):t.incrementCounts(1,1)),d(s)??!1}};n:for(let s=u.hunkIndex;s<n.hunks.length;s++){let M=function(g,H){return b==null||b.collapsedLines<=0||b.fromStart+b.fromEnd>0?0:e==="unified"?g===o.unifiedLineStart+o.unifiedLineCount-1?b.collapsedLines:0:H===o.splitLineStart+o.splitLineCount-1?b.collapsedLines:0},p=function(){return k?0:(k=!0,C.collapsedLines)};const o=n.hunks[s];if(o==null)throw new Error("iterateOverDiff: invalid hunk index");if(t.shouldBreak())break;const c=K(o.deletionStart,o.deletionCount),l=K(o.additionStart,o.additionCount),m=!n.isPartial&&o.deletionCount===0?c:o.deletionLineIndex,f=!n.isPartial&&o.additionCount===0?l:o.additionLineIndex,C=$({isPartial:n.isPartial,rangeSize:o.collapsedBefore,expandedHunks:h,hunkIndex:s,collapsedContextThreshold:i}),b=s===t.finalHunkIndex?U({fileDiff:n,hunkIndex:s,expandedHunks:h,collapsedContextThreshold:i,errorPrefix:"iterateOverDiff"}):void 0,F=C.fromStart+C.fromEnd;let k=C.collapsedLines===0;if(t.shouldSkip(F,F))t.incrementCounts(F,F),p();else{let g=o.unifiedLineStart-C.rangeSize,H=o.splitLineStart-C.rangeSize,R=m-C.rangeSize,O=f-C.rangeSize,v=c+1-C.rangeSize,P=l+1-C.rangeSize;if(A(t,C.fromStart,e,E=>t.emit({hunkIndex:s,hunk:o,collapsedBefore:0,collapsedAfter:0,type:"context-expanded",deletionLine:{lineNumber:v+E,lineIndex:R+E,noEOFCR:!1,unifiedLineIndex:g+E,splitLineIndex:H+E},additionLine:{unifiedLineIndex:g+E,splitLineIndex:H+E,lineIndex:O+E,lineNumber:P+E,noEOFCR:!1}}))||(g=o.unifiedLineStart-C.fromEnd,H=o.splitLineStart-C.fromEnd,R=m-C.fromEnd,O=f-C.fromEnd,v=c+1-C.fromEnd,P=l+1-C.fromEnd,A(t,C.fromEnd,e,E=>t.emit({hunkIndex:s,hunk:o,collapsedBefore:p(),collapsedAfter:0,type:"context-expanded",deletionLine:{lineNumber:v+E,lineIndex:R+E,noEOFCR:!1,unifiedLineIndex:g+E,splitLineIndex:H+E},additionLine:{unifiedLineIndex:g+E,splitLineIndex:H+E,lineIndex:O+E,lineNumber:P+E,noEOFCR:!1}}),()=>{p()})))break n}let L=o.unifiedLineStart,S=o.splitLineStart,I=m,w=f,x=c+1,z=l+1;const Q=o.hunkContent.at(-1);for(const g of o.hunkContent){if(t.shouldBreak())break n;const H=g===Q;if(g.type==="context"){if(t.shouldSkip(g.lines,g.lines))t.incrementCounts(g.lines,g.lines),p();else if(A(t,g.lines,e,R=>{const O=H&&R===g.lines-1,v=L+R,P=S+R;return t.emit({hunkIndex:s,hunk:o,collapsedBefore:p(),collapsedAfter:M(v,P),type:"context",deletionLine:{lineNumber:x+R,lineIndex:I+R,noEOFCR:O&&o.noEOFCRDeletions,unifiedLineIndex:v,splitLineIndex:P},additionLine:{unifiedLineIndex:v,splitLineIndex:P,lineIndex:w+R,lineNumber:z+R,noEOFCR:O&&o.noEOFCRAdditions}})},()=>{p()}))break n;L+=g.lines,S+=g.lines,I+=g.lines,w+=g.lines,x+=g.lines,z+=g.lines}else{const R=Math.max(g.deletions,g.additions),O=g.deletions+g.additions;if(!t.shouldSkip(O,R)){const v=hn(t,g,e);(v[0]?.[0]??0)>0&&p();for(const[P,E]of v)for(let N=P;N<E;N++){const Y=M(L+N,e==="unified"?S+(N<g.deletions?N:N-g.deletions):S+N);if(t.emit(fn({hunkIndex:s,hunk:o,collapsedBefore:p(),collapsedAfter:Y,diffStyle:e,index:N,unifiedLineIndex:L,splitLineIndex:S,additionLineIndex:w,deletionLineIndex:I,additionLineNumber:z,deletionLineNumber:x,content:g,isLastContent:H,unifiedCount:O,splitCount:R}),!0))break n}}p(),t.incrementCounts(O,R),L+=O,S+=R,I+=g.deletions,w+=g.additions,x+=g.deletions,z+=g.additions}}if(b!=null){const{collapsedLines:g,fromStart:H,fromEnd:R}=b,O=H+R;if(A(t,O,e,v=>{const P=v===O-1;return t.emit({hunkIndex:n.hunks.length,hunk:void 0,collapsedBefore:0,collapsedAfter:P?g:0,type:"context-expanded",deletionLine:{lineNumber:x+v,lineIndex:I+v,noEOFCR:!1,unifiedLineIndex:L+v,splitLineIndex:S+v},additionLine:{unifiedLineIndex:L+v,splitLineIndex:S+v,lineIndex:w+v,lineNumber:z+v,noEOFCR:!1}})},void 0,()=>t.shouldBreak()))break n}}}function un({diff:n,diffStyle:e,startingLine:r,expandedHunks:a,collapsedContextThreshold:h}){if(r<=0||e==="both")return{hunkIndex:0,splitCount:0,unifiedCount:0};const i=dn({diff:n,expandedHunks:a,collapsedContextThreshold:h});let d=0,u=n.hunks.length-1,t=n.hunks.length;for(;d<=u;){const o=d+u>>1,c=i[o+1];if(c==null)throw new Error("iterateOverDiff: invalid hunk prefix index");(e==="unified"?c.unifiedCount:c.splitCount)>r?(t=o,u=o-1):d=o+1}if(t>=n.hunks.length){const o=i[n.hunks.length];if(o==null)throw new Error("iterateOverDiff: invalid terminal hunk prefix index");return{hunkIndex:n.hunks.length,splitCount:o.splitCount,unifiedCount:o.unifiedCount}}const s=i[t];if(s==null)throw new Error("iterateOverDiff: invalid selected hunk prefix index");return{hunkIndex:t,splitCount:s.splitCount,unifiedCount:s.unifiedCount}}function dn({diff:n,expandedHunks:e,collapsedContextThreshold:r}){let a=0,h=0;const i=n.hunks.length-1,d=[{splitCount:0,unifiedCount:0}];for(let u=0;u<n.hunks.length;u++){const t=n.hunks[u];if(t==null)throw new Error("iterateOverDiff: invalid hunk summary index");const s=$({isPartial:n.isPartial,rangeSize:t.collapsedBefore,expandedHunks:e,hunkIndex:u,collapsedContextThreshold:r}),o=s.fromStart+s.fromEnd;a+=o+t.splitLineCount,h+=o+t.unifiedLineCount;const c=u===i?U({fileDiff:n,hunkIndex:u,expandedHunks:e,collapsedContextThreshold:r,errorPrefix:"iterateOverDiff"}):void 0;if(c!=null){const l=c.fromStart+c.fromEnd;a+=l,h+=l}d.push({splitCount:a,unifiedCount:h})}return d}function cn(n,e,r){if(!n.isWindowedHighlight||e<=0)return[0,e];const a=[];function h(u){const t=Math.max(0,n.viewportStart-u),s=Math.min(e,n.viewportEnd-u);s>t&&a.push([t,s])}if(r!=="split"&&h(n.unifiedCount),r!=="unified"&&h(n.splitCount),a.length===0)return[0,0];let i=a[0][0],d=a[0][1];for(let u=1;u<a.length;u++){const t=a[u];i=Math.min(i,t[0]),d=Math.max(d,t[1])}return[i,d]}function A(n,e,r,a,h,i){const[d,u]=cn(n,e,r);d>0&&(n.incrementCounts(d,d),h?.());let t=d;for(;t<e;){if(i?.()===!0)return!0;if(t>=u){n.incrementCounts(e-t,e-t);break}if(n.isInWindow(0,0)){if(a(t)===!0)return!0}else n.incrementCounts(1,1);t++}return!1}function hn(n,e,r){if(!n.isWindowedHighlight)return[[0,r==="unified"?e.deletions+e.additions:Math.max(e.deletions,e.additions)]];const a=r!=="split",h=r!=="unified",i=r==="unified"?"unified":"split",d=[];function u(c,l){if(c+l<=n.viewportStart||c>=n.viewportEnd)return;const m=Math.max(0,n.viewportStart-c),f=Math.min(l,n.viewportEnd-c);return f>m?[m,f]:void 0}function t(c,l){return i==="split"?c:l==="additions"?[c[0]+e.deletions,c[1]+e.deletions]:c}function s(c,l){if(c==null)return;const[m,f]=t(c,l);f>m&&d.push([m,f])}if(a&&(s(u(n.unifiedCount,e.deletions),"deletions"),s(u(n.unifiedCount+e.deletions,e.additions),"additions")),h&&(s(u(n.splitCount,e.deletions),"deletions"),s(u(n.splitCount,e.additions),"additions")),d.length===0)return d;d.sort((c,l)=>c[0]-l[0]);const o=[d[0]];for(const[c,l]of d.slice(1)){const m=o[o.length-1];c<=m[1]?m[1]=Math.max(m[1],l):o.push([c,l])}return o}function fn({hunkIndex:n,hunk:e,collapsedAfter:r,collapsedBefore:a,diffStyle:h,index:i,unifiedLineIndex:d,splitLineIndex:u,additionLineIndex:t,deletionLineIndex:s,additionLineNumber:o,deletionLineNumber:c,content:l,isLastContent:m,unifiedCount:f,splitCount:C}){const b=i<l.deletions?d+i:void 0,F=h==="unified"?i>=l.deletions?d+i:void 0:i<l.additions?d+l.deletions+i:void 0,M=h==="unified"?u+(i<l.deletions?i:i-l.deletions):u+i,k=i<l.deletions?s+i:void 0,p=i<l.deletions?c+i:void 0,L=h==="unified"?i>=l.deletions?t+(i-l.deletions):void 0:i<l.additions?t+i:void 0,S=h==="unified"?i>=l.deletions?o+(i-l.deletions):void 0:i<l.additions?o+i:void 0,I=h==="unified"?m&&i===l.deletions-1&&e.noEOFCRDeletions:m&&i===C-1&&e.noEOFCRDeletions,w=h==="unified"?m&&i===f-1&&e.noEOFCRAdditions:m&&i===C-1&&e.noEOFCRAdditions,x=k!=null&&p!=null&&b!=null?{lineNumber:p,lineIndex:k,noEOFCR:I,unifiedLineIndex:b,splitLineIndex:M}:void 0,z=L!=null&&S!=null&&F!=null?{unifiedLineIndex:F,splitLineIndex:M,lineIndex:L,lineNumber:S,noEOFCR:w}:void 0;if(x==null&&z!=null)return{type:"change",hunkIndex:n,hunk:e,collapsedAfter:r,collapsedBefore:a,deletionLine:void 0,additionLine:z};if(x!=null&&z==null)return{type:"change",hunkIndex:n,hunk:e,collapsedAfter:r,collapsedBefore:a,deletionLine:x,additionLine:void 0};if(x==null||z==null)throw new Error("iterateOverDiff: missing change line data");return{type:"change",hunkIndex:n,hunk:e,collapsedAfter:r,collapsedBefore:a,deletionLine:x,additionLine:z}}const gn={forcePlainText:!1};function zn(n,e,r,{forcePlainText:a,startingLine:h,totalLines:i,expandedHunks:d,collapsedContextThreshold:u=1}=gn){a?(h??=0,i??=1/0):(h=0,i=1/0);const t=h>0||i<1/0,s=typeof r.theme=="string"?e.getTheme(r.theme).type:void 0,o=nn({theme:r.theme,highlighter:e}),c=a&&!t&&(n.unifiedLineCount>1e3||n.splitLineCount>1e3)?"none":r.lineDiffType,l={deletionLines:[],additionLines:[]},{maxLineDiffLength:m}=r,f=!a&&!n.isPartial,C=a?d:void 0,b=new Map;function F(k){const p=f?0:k,L=b.get(p)??In();return b.set(p,L),L}function M(k,p,L,S){if(t){let I=L.at(-1);(I==null||I.targetIndex+I.count!==p)&&(I={targetIndex:p,originalOffset:S.length,count:0},L.push(I)),I.count++}S.push(k)}ln({diff:n,diffStyle:"both",startingLine:h,totalLines:i,expandedHunks:t?C:!0,collapsedContextThreshold:u,callback:({hunkIndex:k,additionLine:p,deletionLine:L,type:S})=>{const I=F(k),w=p!=null?p.splitLineIndex:L.splitLineIndex;S==="change"&&p!=null&&L!=null&&pn({additionLine:n.additionLines[p.lineIndex],deletionLine:n.deletionLines[L.lineIndex],deletionLineIndex:I.deletionContent.length,additionLineIndex:I.additionContent.length,deletionDecorations:I.deletionDecorations,additionDecorations:I.additionDecorations,lineDiffType:c,maxLineDiffLength:m}),L!=null&&(M(n.deletionLines[L.lineIndex],L.lineIndex,I.deletionSegments,I.deletionContent),I.deletionInfo.push({type:S==="change"?"change-deletion":S,lineNumber:L.lineNumber,altLineNumber:S==="change"?void 0:p.lineNumber??void 0,lineIndex:`${L.unifiedLineIndex},${w}`})),p!=null&&(M(n.additionLines[p.lineIndex],p.lineIndex,I.additionSegments,I.additionContent),I.additionInfo.push({type:S==="change"?"change-addition":S,lineNumber:p.lineNumber,altLineNumber:S==="change"?void 0:L.lineNumber??void 0,lineIndex:`${p.unifiedLineIndex},${w}`}))}});for(const k of b.values()){if(k.deletionContent.length===0&&k.additionContent.length===0)continue;const p={name:n.prevName??n.name,contents:k.deletionContent.value},L={name:n.name,contents:k.additionContent.value},{deletionLines:S,additionLines:I}=Cn({deletionFile:p,deletionInfo:k.deletionInfo,deletionDecorations:k.deletionDecorations,additionFile:L,additionInfo:k.additionInfo,additionDecorations:k.additionDecorations,highlighter:e,options:r,languageOverride:a?"text":n.lang});if(f){l.deletionLines=S,l.additionLines=I;continue}if(k.deletionSegments.length>0)for(const w of k.deletionSegments)for(let x=0;x<w.count;x++)l.deletionLines[w.targetIndex+x]=S[w.originalOffset+x];else _(l.deletionLines,S);if(k.additionSegments.length>0)for(const w of k.additionSegments)for(let x=0;x<w.count;x++)l.additionLines[w.targetIndex+x]=I[w.originalOffset+x];else _(l.additionLines,I)}return{code:l,themeStyles:o,baseThemeType:s}}function mn(n,{deletionLineIndex:e,additionLineIndex:r,deletionDecorations:a,additionDecorations:h}){let i=0,d=0,u=-1,t=0,s=-1,o=0;for(const{value:c,added:l,removed:m}of n)m?(u===-1&&(u=i),i+=c.length,t=i):l?(s===-1&&(s=d),d+=c.length,o=d):(i+=c.length,d+=c.length);u!==-1&&a.push(V({line:e,spanStart:u,spanLength:t-u})),s!==-1&&h.push(V({line:r,spanStart:s,spanLength:o-s}))}function pn({deletionLine:n,additionLine:e,deletionLineIndex:r,additionLineIndex:a,deletionDecorations:h,additionDecorations:i,lineDiffType:d,maxLineDiffLength:u}){if(n==null||e==null||d==="none"||(n=B(n),e=B(e),n.length>u||e.length>u))return;const t=d==="char"?tn(n,e):on(n,e);if(d==="word-line"){mn(t,{deletionLineIndex:r,additionLineIndex:a,deletionDecorations:h,additionDecorations:i});return}const s=[],o=[],c=d==="word-alt",l=t.at(-1);for(const f of t){const C=f===l;!f.added&&!f.removed?(W({item:f,arr:s,enableJoin:c,isNeutral:!0,isLastItem:C}),W({item:f,arr:o,enableJoin:c,isNeutral:!0,isLastItem:C})):f.removed?W({item:f,arr:s,enableJoin:c,isLastItem:C}):W({item:f,arr:o,enableJoin:c,isLastItem:C})}let m=0;for(const f of s)f[0]===1&&h.push(V({line:r,spanStart:m,spanLength:f[1].length})),m+=f[1].length;m=0;for(const f of o)f[0]===1&&i.push(V({line:a,spanStart:m,spanLength:f[1].length})),m+=f[1].length}function In(){return{deletionContent:{push(n){this.value+=n,this.length++},value:"",length:0},additionContent:{push(n){this.value+=n,this.length++},value:"",length:0},deletionInfo:[],additionInfo:[],deletionDecorations:[],additionDecorations:[],deletionSegments:[],additionSegments:[]}}function Cn({deletionFile:n,additionFile:e,deletionInfo:r,additionInfo:a,highlighter:h,deletionDecorations:i,additionDecorations:d,languageOverride:u,options:{theme:t,...s}}){const o=u??D(n.name),c=u??D(e.name),{state:l,transformers:m}=en(s.useTokenTransformer),f=typeof t=="string"?{...s,lang:"text",theme:t,transformers:m,decorations:void 0,defaultColor:!1,cssVariablePrefix:G("token"),tokenizeTimeLimit:0}:{...s,lang:"text",themes:t,transformers:m,decorations:void 0,defaultColor:!1,cssVariablePrefix:G("token"),tokenizeTimeLimit:0};return{deletionLines:n.contents===""?[]:(f.lang=o,l.lineInfo=r,f.decorations=i,J(h.codeToHast(B(n.contents),f))),additionLines:e.contents===""?[]:(f.lang=c,f.decorations=d,l.lineInfo=a,J(h.codeToHast(B(e.contents),f)))}}function Pn(n){const e=n.lang??D(n.name),r=n.lang??(n.prevName!=null?D(n.prevName):"text");return e==="text"&&r==="text"}export{xn as a,En as b,vn as c,U as d,ln as e,rn as f,$ as g,wn as h,Pn as i,Rn as j,bn as k,q as l,On as m,Hn as n,zn as r};
@@ -1,4 +1,4 @@
1
- import{t as p}from"./themeResolver-yJ9XpNMI.js";import{a as F,c as C,g as x,b as N,d as R,e as S,f as g}from"./computeVirtualFileMetrics-rZJ-MSfY.js";function D(e){return p.hasResolvedThemes(e)}function K(e,n){return F(e.theme,n.theme)&&e.useTokenTransformer===n.useTokenTransformer&&e.tokenizeMaxLineLength===n.tokenizeMaxLineLength}const T=10,E=13,k=4,A=40;function b(e){const n=[0];let r=e.indexOf("\r"),i=e.indexOf(`
1
+ import{t as p}from"./themeResolver-yJ9XpNMI.js";import{a as F,c as C,g as x,b as N,d as R,e as S,f as g}from"./computeVirtualFileMetrics-DDyA16hp.js";function D(e){return p.hasResolvedThemes(e)}function K(e,n){return F(e.theme,n.theme)&&e.useTokenTransformer===n.useTokenTransformer&&e.tokenizeMaxLineLength===n.tokenizeMaxLineLength}const T=10,E=13,k=4,A=40;function b(e){const n=[0];let r=e.indexOf("\r"),i=e.indexOf(`
2
2
  `),a=0,o=0;for(;r!==-1||i!==-1;){let t;if(r!==-1&&(i===-1||r<i)?i===r+1?(t=i+1,r=e.indexOf("\r",t),i=e.indexOf(`
3
3
  `,t)):(t=r+1,r=e.indexOf("\r",t)):(t=i+1,i=e.indexOf(`
4
4
  `,t)),n.push(t),++o===k){if(t-a<=A){for(let s=t;s<e.length;s++){const f=e.charCodeAt(s);(f===T||f===E)&&(f===E&&s+1<e.length&&e.charCodeAt(s+1)===T&&s++,n.push(s+1))}return n}a=t,o=0}}return n}function P(e){const n=b(e);return Array.from({length:n.length},(r,i)=>{const a=n[i],o=n[i+1]??e.length;return e.slice(a,o)})}const H={forcePlainText:!1};function W(e,n,{theme:r,tokenizeMaxLineLength:i,useTokenTransformer:a},{forcePlainText:o,startingLine:t,totalLines:s,lines:f}=H){o?(t??=0,s??=1/0):(t=0,s=1/0);const l=t>0||s<1/0,{state:_,transformers:c}=C(a),h=o?"text":e.lang??x(e.name),y=typeof r=="string"?n.getTheme(r).type:void 0,I=N({theme:r,highlighter:n});_.lineInfo=m=>({type:"context",lineIndex:m-1+t,lineNumber:m+t});const O=typeof r=="string"?{lang:h,theme:r,transformers:c,defaultColor:!1,cssVariablePrefix:g("token"),tokenizeMaxLineLength:i,tokenizeTimeLimit:0}:{lang:h,themes:r,transformers:c,defaultColor:!1,cssVariablePrefix:g("token"),tokenizeMaxLineLength:i,tokenizeTimeLimit:0},u=R(n.codeToHast(L(l?v(f??P(e.contents),t,s):e.contents),O)),d=l?new Array(t):u;return l&&S(d,u),{code:d,themeStyles:I,baseThemeType:y}}function L(e){return e.replace(/\r(?!\n)/g,`