@lvce-editor/static-server 0.74.0 → 0.74.2

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 (1960) hide show
  1. package/config.json +1979 -1979
  2. package/package.json +1 -1
  3. package/static/{6e21d18 → 1b54f05}/css/App.css +127 -88
  4. package/static/{6e21d18 → 1b54f05}/css/parts/ViewletTerminal.css +5 -0
  5. package/static/{6e21d18 → 1b54f05}/manifest.json +2 -2
  6. package/static/{6e21d18 → 1b54f05}/packages/about-view-worker/dist/aboutWorkerMain.js +3 -3
  7. package/static/{6e21d18 → 1b54f05}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +3 -3
  8. package/static/{6e21d18 → 1b54f05}/packages/file-search-worker/dist/fileSearchWorkerMain.js +2503 -2477
  9. package/static/{6e21d18 → 1b54f05}/packages/main-area-worker/dist/mainAreaWorkerMain.js +1617 -1301
  10. package/static/{6e21d18 → 1b54f05}/packages/panel-worker/dist/panelWorkerMain.js +2 -3
  11. package/static/{6e21d18 → 1b54f05}/packages/renderer-process/dist/rendererProcessMain.js +1 -1
  12. package/static/{6e21d18 → 1b54f05}/packages/renderer-worker/dist/rendererWorkerMain.js +187 -171
  13. package/static/index.html +4 -4
  14. /package/static/{6e21d18 → 1b54f05}/config/colorTheme.json +0 -0
  15. /package/static/{6e21d18 → 1b54f05}/config/defaultSettings.json +0 -0
  16. /package/static/{6e21d18 → 1b54f05}/config/fileMap.json +0 -0
  17. /package/static/{6e21d18 → 1b54f05}/config/webExtensions.json +0 -0
  18. /package/static/{6e21d18 → 1b54f05}/css/parts/AdditionalDetails.css +0 -0
  19. /package/static/{6e21d18 → 1b54f05}/css/parts/Animation.css +0 -0
  20. /package/static/{6e21d18 → 1b54f05}/css/parts/BrowserScrollBar.css +0 -0
  21. /package/static/{6e21d18 → 1b54f05}/css/parts/Category.css +0 -0
  22. /package/static/{6e21d18 → 1b54f05}/css/parts/DebugButtons.css +0 -0
  23. /package/static/{6e21d18 → 1b54f05}/css/parts/DebugValue.css +0 -0
  24. /package/static/{6e21d18 → 1b54f05}/css/parts/E2eTest.css +0 -0
  25. /package/static/{6e21d18 → 1b54f05}/css/parts/E2eTests.css +0 -0
  26. /package/static/{6e21d18 → 1b54f05}/css/parts/EditorHover.css +0 -0
  27. /package/static/{6e21d18 → 1b54f05}/css/parts/EditorMessage.css +0 -0
  28. /package/static/{6e21d18 → 1b54f05}/css/parts/FeatureContent.css +0 -0
  29. /package/static/{6e21d18 → 1b54f05}/css/parts/Features.css +0 -0
  30. /package/static/{6e21d18 → 1b54f05}/css/parts/ImagePreview.css +0 -0
  31. /package/static/{6e21d18 → 1b54f05}/css/parts/InlineDiffEditor.css +0 -0
  32. /package/static/{6e21d18 → 1b54f05}/css/parts/InputBadge.css +0 -0
  33. /package/static/{6e21d18 → 1b54f05}/css/parts/Key.css +0 -0
  34. /package/static/{6e21d18 → 1b54f05}/css/parts/KeyBindingsHeader.css +0 -0
  35. /package/static/{6e21d18 → 1b54f05}/css/parts/KeyBindingsTable.css +0 -0
  36. /package/static/{6e21d18 → 1b54f05}/css/parts/LegacyDialog.css +0 -0
  37. /package/static/{6e21d18 → 1b54f05}/css/parts/Markdown.css +0 -0
  38. /package/static/{6e21d18 → 1b54f05}/css/parts/Message.css +0 -0
  39. /package/static/{6e21d18 → 1b54f05}/css/parts/Preview.css +0 -0
  40. /package/static/{6e21d18 → 1b54f05}/css/parts/ScrollToTop.css +0 -0
  41. /package/static/{6e21d18 → 1b54f05}/css/parts/SearchToggleButton.css +0 -0
  42. /package/static/{6e21d18 → 1b54f05}/css/parts/Select.css +0 -0
  43. /package/static/{6e21d18 → 1b54f05}/css/parts/SettingsHeader.css +0 -0
  44. /package/static/{6e21d18 → 1b54f05}/css/parts/SettingsItems.css +0 -0
  45. /package/static/{6e21d18 → 1b54f05}/css/parts/SettingsSideBar.css +0 -0
  46. /package/static/{6e21d18 → 1b54f05}/css/parts/Table.css +0 -0
  47. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletAbout.css +0 -0
  48. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletBrowserViewOverview.css +0 -0
  49. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletDebugConsole.css +0 -0
  50. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletDefineKeyBinding.css +0 -0
  51. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletDialog.css +0 -0
  52. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletDiffEditor.css +0 -0
  53. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletEditorWidgetError.css +0 -0
  54. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletExtensionDetail.css +0 -0
  55. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletExtensionDetailHeader.css +0 -0
  56. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletExtensionDetailTabs.css +0 -0
  57. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletExtensions.css +0 -0
  58. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletIframeInspector.css +0 -0
  59. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletKeyBindings.css +0 -0
  60. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletLanguageModels.css +0 -0
  61. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletMedia.css +0 -0
  62. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletOutput.css +0 -0
  63. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletPanel.css +0 -0
  64. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletPanelTabs.css +0 -0
  65. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletPdf.css +0 -0
  66. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletProblems.css +0 -0
  67. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletReferences.css +0 -0
  68. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletRunAndDebug.css +0 -0
  69. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletScreenCapture.css +0 -0
  70. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletSearch.css +0 -0
  71. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletSettings.css +0 -0
  72. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletSimpleBrowser.css +0 -0
  73. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletSourceControl.css +0 -0
  74. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletStorage.css +0 -0
  75. /package/static/{6e21d18 → 1b54f05}/css/parts/ViewletTerminalTabs.css +0 -0
  76. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-bat/README.md +0 -0
  77. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-bat/extension.json +0 -0
  78. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
  79. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
  80. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-c/README.md +0 -0
  81. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-c/extension.json +0 -0
  82. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
  83. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
  84. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
  85. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
  86. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-cpp/README.md +0 -0
  87. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-cpp/extension.json +0 -0
  88. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
  89. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
  90. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-cson/README.md +0 -0
  91. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-cson/extension.json +0 -0
  92. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
  93. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
  94. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-css/README.md +0 -0
  95. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-css/extension.json +0 -0
  96. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
  97. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
  98. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-dart/README.md +0 -0
  99. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-dart/extension.json +0 -0
  100. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
  101. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-desktop/README.md +0 -0
  102. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-desktop/extension.json +0 -0
  103. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
  104. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-docker/README.md +0 -0
  105. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-docker/extension.json +0 -0
  106. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
  107. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-dotenv/README.md +0 -0
  108. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
  109. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
  110. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
  111. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
  112. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
  113. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-elixir/README.md +0 -0
  114. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-elixir/extension.json +0 -0
  115. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
  116. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-elm/README.md +0 -0
  117. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-elm/extension.json +0 -0
  118. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
  119. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
  120. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
  121. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
  122. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-gn/README.md +0 -0
  123. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-gn/extension.json +0 -0
  124. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
  125. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-go/README.md +0 -0
  126. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-go/extension.json +0 -0
  127. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
  128. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-graphql/README.md +0 -0
  129. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-graphql/extension.json +0 -0
  130. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
  131. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-html/README.md +0 -0
  132. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-html/extension.json +0 -0
  133. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
  134. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
  135. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-java/README.md +0 -0
  136. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-java/extension.json +0 -0
  137. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
  138. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
  139. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-javascript/README.md +0 -0
  140. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-javascript/extension.json +0 -0
  141. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
  142. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
  143. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-json/README.md +0 -0
  144. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-json/extension.json +0 -0
  145. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
  146. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-json5/README.md +0 -0
  147. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-json5/extension.json +0 -0
  148. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
  149. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-jsx/README.md +0 -0
  150. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-jsx/extension.json +0 -0
  151. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
  152. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-julia/README.md +0 -0
  153. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-julia/extension.json +0 -0
  154. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
  155. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-kotlin/README.md +0 -0
  156. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
  157. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
  158. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-less/LICENSE +0 -0
  159. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-less/README.md +0 -0
  160. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-less/extension.json +0 -0
  161. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
  162. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
  163. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-markdown/README.md +0 -0
  164. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-markdown/extension.json +0 -0
  165. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
  166. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-mdx/README.md +0 -0
  167. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-mdx/extension.json +0 -0
  168. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
  169. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-nix/README.md +0 -0
  170. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-nix/extension.json +0 -0
  171. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
  172. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
  173. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
  174. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
  175. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
  176. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-perl/README.md +0 -0
  177. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-perl/extension.json +0 -0
  178. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
  179. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-plaintext/README.md +0 -0
  180. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
  181. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
  182. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-powershell/README.md +0 -0
  183. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-powershell/extension.json +0 -0
  184. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
  185. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-python/README.md +0 -0
  186. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-python/extension.json +0 -0
  187. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
  188. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
  189. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-r/README.md +0 -0
  190. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-r/extension.json +0 -0
  191. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
  192. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-ruby/README.md +0 -0
  193. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-ruby/extension.json +0 -0
  194. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
  195. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-rust/LICENSE +0 -0
  196. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-rust/README.md +0 -0
  197. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-rust/extension.json +0 -0
  198. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
  199. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
  200. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-scss/README.md +0 -0
  201. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-scss/extension.json +0 -0
  202. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
  203. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
  204. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-shellscript/README.md +0 -0
  205. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
  206. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
  207. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-svelte/README.md +0 -0
  208. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-svelte/extension.json +0 -0
  209. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
  210. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-terraform/README.md +0 -0
  211. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-terraform/extension.json +0 -0
  212. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
  213. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-toml/README.md +0 -0
  214. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-toml/extension.json +0 -0
  215. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
  216. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-typescript/README.md +0 -0
  217. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-typescript/extension.json +0 -0
  218. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-typescript/languageConfiguration.json +0 -0
  219. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
  220. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-vue/README.md +0 -0
  221. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-vue/extension.json +0 -0
  222. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
  223. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-wgsl/README.md +0 -0
  224. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
  225. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
  226. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
  227. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-xml/README.md +0 -0
  228. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-xml/extension.json +0 -0
  229. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
  230. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-yaml/README.md +0 -0
  231. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-yaml/extension.json +0 -0
  232. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
  233. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
  234. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
  235. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
  236. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
  237. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-ayu/README.md +0 -0
  238. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-ayu/color-theme.json +0 -0
  239. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-ayu/extension.json +0 -0
  240. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-ayu/images/demo.png +0 -0
  241. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-cobalt2/README.md +0 -0
  242. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
  243. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-cobalt2/extension.json +0 -0
  244. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
  245. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
  246. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-gruvbox/README.md +0 -0
  247. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
  248. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-gruvbox/extension.json +0 -0
  249. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-gruvbox/images/demo.png +0 -0
  250. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-high-contrast/README.md +0 -0
  251. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
  252. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-high-contrast/extension.json +0 -0
  253. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-material/README.md +0 -0
  254. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-material/color-theme.json +0 -0
  255. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-material/extension.json +0 -0
  256. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-monokai/README.md +0 -0
  257. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-monokai/color-theme.json +0 -0
  258. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-monokai/extension.json +0 -0
  259. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-noctis-uva/README.md +0 -0
  260. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
  261. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
  262. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
  263. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-palenight/README.md +0 -0
  264. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-palenight/color-theme.json +0 -0
  265. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-palenight/extension.json +0 -0
  266. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-palenight/images/demo.png +0 -0
  267. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-slime/README.md +0 -0
  268. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-slime/color-theme.json +0 -0
  269. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-slime/extension.json +0 -0
  270. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.theme-slime/icon.png +0 -0
  271. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/README.md +0 -0
  272. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/extension.json +0 -0
  273. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
  274. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icon.png +0 -0
  275. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
  276. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
  277. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
  278. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
  279. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
  280. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
  281. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
  282. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
  283. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
  284. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
  285. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
  286. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
  287. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_affinity.svg +0 -0
  288. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
  289. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
  290. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
  291. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
  292. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_agents.svg +0 -0
  293. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
  294. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
  295. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
  296. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
  297. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_alchemy.svg +0 -0
  298. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
  299. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_alloy.svg +0 -0
  300. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_allure.svg +0 -0
  301. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
  302. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
  303. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
  304. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
  305. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
  306. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
  307. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
  308. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
  309. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
  310. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
  311. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
  312. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
  313. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
  314. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
  315. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
  316. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
  317. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
  318. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_aseprite.svg +0 -0
  319. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
  320. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
  321. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
  322. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_assembly_script.svg +0 -0
  323. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
  324. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
  325. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
  326. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
  327. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
  328. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
  329. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
  330. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
  331. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
  332. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
  333. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
  334. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
  335. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
  336. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
  337. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
  338. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
  339. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
  340. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
  341. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
  342. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
  343. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
  344. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
  345. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
  346. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
  347. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
  348. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
  349. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
  350. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
  351. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
  352. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
  353. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
  354. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
  355. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
  356. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
  357. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
  358. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
  359. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
  360. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
  361. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
  362. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
  363. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
  364. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
  365. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
  366. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
  367. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
  368. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
  369. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
  370. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
  371. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
  372. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
  373. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
  374. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
  375. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
  376. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
  377. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
  378. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
  379. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
  380. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
  381. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
  382. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
  383. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
  384. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
  385. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
  386. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
  387. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
  388. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
  389. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
  390. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
  391. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
  392. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
  393. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
  394. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
  395. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
  396. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_circom.svg +0 -0
  397. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
  398. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
  399. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
  400. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
  401. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cloudflare.svg +0 -0
  402. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
  403. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
  404. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
  405. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
  406. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
  407. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
  408. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
  409. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
  410. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
  411. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
  412. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
  413. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
  414. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
  415. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
  416. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
  417. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
  418. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
  419. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
  420. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
  421. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
  422. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
  423. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
  424. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
  425. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
  426. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
  427. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
  428. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
  429. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
  430. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
  431. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
  432. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
  433. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
  434. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
  435. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
  436. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
  437. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
  438. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
  439. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
  440. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
  441. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
  442. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
  443. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
  444. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
  445. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
  446. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
  447. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
  448. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
  449. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
  450. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
  451. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
  452. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
  453. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
  454. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
  455. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
  456. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
  457. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
  458. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
  459. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
  460. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
  461. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
  462. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
  463. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_design_tokens.svg +0 -0
  464. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
  465. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_devvit.svg +0 -0
  466. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
  467. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
  468. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
  469. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
  470. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
  471. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
  472. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
  473. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
  474. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
  475. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
  476. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
  477. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
  478. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
  479. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
  480. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
  481. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
  482. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
  483. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
  484. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
  485. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
  486. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
  487. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
  488. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
  489. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
  490. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
  491. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
  492. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
  493. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
  494. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
  495. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
  496. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
  497. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
  498. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
  499. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_electron.svg +0 -0
  500. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
  501. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
  502. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
  503. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
  504. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
  505. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
  506. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
  507. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
  508. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
  509. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
  510. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
  511. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
  512. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
  513. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
  514. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
  515. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
  516. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
  517. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
  518. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
  519. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
  520. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
  521. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
  522. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
  523. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
  524. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
  525. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
  526. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
  527. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
  528. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
  529. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_firebasestorage.svg +0 -0
  530. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
  531. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
  532. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
  533. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
  534. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
  535. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
  536. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
  537. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
  538. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
  539. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
  540. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
  541. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
  542. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
  543. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
  544. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
  545. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
  546. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
  547. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
  548. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
  549. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
  550. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
  551. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
  552. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
  553. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
  554. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
  555. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
  556. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
  557. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
  558. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
  559. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
  560. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
  561. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
  562. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gduid.svg +0 -0
  563. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gemini.svg +0 -0
  564. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
  565. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_geojson.svg +0 -0
  566. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gimp.svg +0 -0
  567. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
  568. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
  569. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
  570. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
  571. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
  572. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
  573. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
  574. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_glimmer.svg +0 -0
  575. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
  576. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
  577. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
  578. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
  579. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
  580. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
  581. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
  582. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
  583. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
  584. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
  585. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
  586. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
  587. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
  588. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
  589. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
  590. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
  591. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
  592. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
  593. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
  594. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
  595. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
  596. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
  597. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
  598. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
  599. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
  600. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
  601. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
  602. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_grit.svg +0 -0
  603. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
  604. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
  605. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
  606. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
  607. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
  608. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
  609. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
  610. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
  611. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
  612. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
  613. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
  614. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
  615. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
  616. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
  617. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
  618. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
  619. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
  620. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
  621. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
  622. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
  623. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
  624. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
  625. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
  626. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
  627. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
  628. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
  629. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
  630. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
  631. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
  632. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
  633. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
  634. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
  635. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
  636. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
  637. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
  638. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
  639. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
  640. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
  641. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
  642. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
  643. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
  644. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
  645. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
  646. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
  647. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
  648. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
  649. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
  650. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
  651. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
  652. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
  653. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
  654. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
  655. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
  656. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
  657. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
  658. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
  659. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
  660. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
  661. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
  662. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jetbrains.svg +0 -0
  663. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
  664. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
  665. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
  666. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
  667. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
  668. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
  669. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
  670. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
  671. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
  672. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
  673. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
  674. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
  675. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
  676. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
  677. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
  678. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
  679. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
  680. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
  681. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
  682. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
  683. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
  684. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
  685. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
  686. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
  687. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
  688. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
  689. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
  690. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
  691. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
  692. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
  693. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
  694. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
  695. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
  696. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
  697. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
  698. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
  699. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
  700. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
  701. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lean.svg +0 -0
  702. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_leanconfig.svg +0 -0
  703. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
  704. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
  705. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
  706. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
  707. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
  708. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
  709. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
  710. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
  711. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
  712. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
  713. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
  714. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
  715. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
  716. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
  717. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
  718. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
  719. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_agents.svg +0 -0
  720. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
  721. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
  722. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
  723. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
  724. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
  725. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
  726. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
  727. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
  728. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
  729. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
  730. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
  731. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
  732. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
  733. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
  734. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
  735. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
  736. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
  737. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
  738. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
  739. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
  740. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
  741. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
  742. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
  743. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
  744. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
  745. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
  746. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
  747. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
  748. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
  749. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
  750. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
  751. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
  752. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
  753. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
  754. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
  755. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
  756. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
  757. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
  758. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
  759. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
  760. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
  761. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
  762. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
  763. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
  764. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_lean.svg +0 -0
  765. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_leanconfig.svg +0 -0
  766. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
  767. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
  768. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
  769. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_mcp.svg +0 -0
  770. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
  771. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
  772. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
  773. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
  774. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
  775. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
  776. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
  777. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
  778. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
  779. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
  780. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
  781. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
  782. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_packship.svg +0 -0
  783. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
  784. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
  785. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
  786. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
  787. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
  788. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
  789. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
  790. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
  791. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
  792. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
  793. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
  794. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
  795. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
  796. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
  797. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
  798. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
  799. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
  800. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
  801. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_shadcn.svg +0 -0
  802. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
  803. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
  804. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
  805. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
  806. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
  807. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
  808. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
  809. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
  810. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
  811. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
  812. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
  813. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
  814. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
  815. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
  816. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
  817. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
  818. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_toon.svg +0 -0
  819. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
  820. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
  821. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
  822. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
  823. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
  824. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
  825. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
  826. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
  827. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
  828. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
  829. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
  830. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
  831. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
  832. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
  833. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
  834. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
  835. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
  836. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
  837. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
  838. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
  839. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
  840. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
  841. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
  842. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
  843. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
  844. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
  845. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
  846. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
  847. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
  848. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
  849. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
  850. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
  851. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
  852. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
  853. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
  854. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
  855. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
  856. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
  857. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
  858. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
  859. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
  860. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
  861. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
  862. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
  863. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
  864. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mcp.svg +0 -0
  865. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
  866. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
  867. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mdxlint.svg +0 -0
  868. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
  869. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
  870. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
  871. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
  872. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
  873. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
  874. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
  875. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
  876. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
  877. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
  878. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
  879. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
  880. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
  881. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
  882. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
  883. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
  884. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
  885. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
  886. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
  887. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
  888. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
  889. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
  890. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
  891. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
  892. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
  893. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
  894. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nanostaged.svg +0 -0
  895. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
  896. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
  897. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
  898. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
  899. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
  900. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
  901. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
  902. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
  903. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
  904. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
  905. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
  906. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
  907. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
  908. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
  909. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
  910. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
  911. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
  912. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
  913. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
  914. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
  915. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
  916. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
  917. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
  918. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
  919. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
  920. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
  921. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
  922. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
  923. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
  924. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
  925. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
  926. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
  927. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
  928. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
  929. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
  930. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
  931. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
  932. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
  933. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
  934. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
  935. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
  936. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
  937. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
  938. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
  939. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
  940. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
  941. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
  942. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
  943. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
  944. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
  945. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
  946. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
  947. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
  948. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
  949. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
  950. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
  951. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
  952. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
  953. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
  954. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
  955. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
  956. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
  957. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
  958. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
  959. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
  960. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
  961. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
  962. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
  963. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
  964. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
  965. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
  966. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
  967. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
  968. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
  969. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
  970. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
  971. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
  972. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
  973. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
  974. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
  975. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
  976. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
  977. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
  978. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
  979. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
  980. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
  981. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
  982. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
  983. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
  984. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
  985. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
  986. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
  987. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
  988. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
  989. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
  990. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
  991. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nushell.svg +0 -0
  992. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
  993. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
  994. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
  995. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
  996. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
  997. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
  998. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
  999. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
  1000. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
  1001. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
  1002. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
  1003. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
  1004. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
  1005. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
  1006. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
  1007. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
  1008. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
  1009. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
  1010. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_oxc.svg +0 -0
  1011. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
  1012. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
  1013. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_packship.svg +0 -0
  1014. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
  1015. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
  1016. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
  1017. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
  1018. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
  1019. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
  1020. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
  1021. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
  1022. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
  1023. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
  1024. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
  1025. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
  1026. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
  1027. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
  1028. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
  1029. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
  1030. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
  1031. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
  1032. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
  1033. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
  1034. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
  1035. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
  1036. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
  1037. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
  1038. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
  1039. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
  1040. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
  1041. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
  1042. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
  1043. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
  1044. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
  1045. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
  1046. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
  1047. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
  1048. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
  1049. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
  1050. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
  1051. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
  1052. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
  1053. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_polyglot.svg +0 -0
  1054. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
  1055. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
  1056. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
  1057. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
  1058. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
  1059. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
  1060. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
  1061. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
  1062. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
  1063. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
  1064. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
  1065. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
  1066. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
  1067. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
  1068. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
  1069. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
  1070. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
  1071. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
  1072. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
  1073. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_prismaconfig.svg +0 -0
  1074. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
  1075. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
  1076. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
  1077. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
  1078. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
  1079. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
  1080. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
  1081. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
  1082. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
  1083. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
  1084. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
  1085. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
  1086. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
  1087. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
  1088. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
  1089. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
  1090. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
  1091. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
  1092. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
  1093. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
  1094. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
  1095. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
  1096. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
  1097. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
  1098. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
  1099. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
  1100. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
  1101. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
  1102. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
  1103. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
  1104. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
  1105. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
  1106. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
  1107. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
  1108. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
  1109. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
  1110. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
  1111. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
  1112. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
  1113. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
  1114. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
  1115. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
  1116. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
  1117. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
  1118. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
  1119. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
  1120. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
  1121. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
  1122. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
  1123. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
  1124. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
  1125. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
  1126. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
  1127. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
  1128. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
  1129. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ripple.svg +0 -0
  1130. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
  1131. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
  1132. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
  1133. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
  1134. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
  1135. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
  1136. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
  1137. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
  1138. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
  1139. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
  1140. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
  1141. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
  1142. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
  1143. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
  1144. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
  1145. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
  1146. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
  1147. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
  1148. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
  1149. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
  1150. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
  1151. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
  1152. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
  1153. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
  1154. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
  1155. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
  1156. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
  1157. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
  1158. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
  1159. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
  1160. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
  1161. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
  1162. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
  1163. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
  1164. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
  1165. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_shadcn.svg +0 -0
  1166. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
  1167. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
  1168. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
  1169. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
  1170. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
  1171. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
  1172. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sitemap.svg +0 -0
  1173. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
  1174. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
  1175. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
  1176. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
  1177. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
  1178. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
  1179. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
  1180. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
  1181. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
  1182. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
  1183. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
  1184. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_smithery.svg +0 -0
  1185. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
  1186. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
  1187. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
  1188. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
  1189. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
  1190. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
  1191. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
  1192. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
  1193. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
  1194. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
  1195. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
  1196. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
  1197. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
  1198. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
  1199. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
  1200. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
  1201. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
  1202. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
  1203. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
  1204. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
  1205. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
  1206. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
  1207. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
  1208. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
  1209. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
  1210. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
  1211. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
  1212. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
  1213. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
  1214. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
  1215. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
  1216. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
  1217. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
  1218. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
  1219. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
  1220. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
  1221. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
  1222. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
  1223. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
  1224. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
  1225. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
  1226. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
  1227. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
  1228. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
  1229. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
  1230. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
  1231. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
  1232. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
  1233. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
  1234. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
  1235. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
  1236. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
  1237. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
  1238. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
  1239. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
  1240. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
  1241. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
  1242. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
  1243. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
  1244. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
  1245. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
  1246. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
  1247. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
  1248. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
  1249. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
  1250. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
  1251. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
  1252. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
  1253. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
  1254. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
  1255. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_toon.svg +0 -0
  1256. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
  1257. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
  1258. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
  1259. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
  1260. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
  1261. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
  1262. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
  1263. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
  1264. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
  1265. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
  1266. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
  1267. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tsdown.svg +0 -0
  1268. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
  1269. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
  1270. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
  1271. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
  1272. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
  1273. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
  1274. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
  1275. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
  1276. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
  1277. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
  1278. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
  1279. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
  1280. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
  1281. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
  1282. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
  1283. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
  1284. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
  1285. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_uv.svg +0 -0
  1286. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
  1287. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
  1288. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
  1289. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
  1290. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
  1291. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
  1292. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
  1293. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
  1294. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
  1295. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
  1296. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
  1297. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
  1298. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
  1299. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
  1300. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
  1301. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
  1302. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
  1303. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
  1304. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
  1305. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
  1306. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
  1307. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
  1308. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
  1309. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vroom.svg +0 -0
  1310. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
  1311. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
  1312. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
  1313. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
  1314. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
  1315. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
  1316. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
  1317. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
  1318. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
  1319. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vvvvvv.svg +0 -0
  1320. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
  1321. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
  1322. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
  1323. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
  1324. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
  1325. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
  1326. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
  1327. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
  1328. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
  1329. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
  1330. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
  1331. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
  1332. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
  1333. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
  1334. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
  1335. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
  1336. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
  1337. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
  1338. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
  1339. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
  1340. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
  1341. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
  1342. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xaml.svg +0 -0
  1343. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
  1344. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
  1345. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
  1346. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
  1347. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
  1348. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
  1349. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
  1350. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
  1351. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
  1352. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
  1353. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
  1354. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
  1355. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
  1356. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
  1357. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
  1358. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
  1359. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
  1360. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
  1361. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
  1362. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
  1363. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
  1364. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
  1365. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
  1366. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
  1367. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_angular.svg +0 -0
  1368. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_angular_opened.svg +0 -0
  1369. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_apache.svg +0 -0
  1370. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_apache_opened.svg +0 -0
  1371. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
  1372. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
  1373. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
  1374. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
  1375. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
  1376. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
  1377. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
  1378. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
  1379. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_astro.svg +0 -0
  1380. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_astro_opened.svg +0 -0
  1381. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
  1382. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
  1383. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
  1384. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
  1385. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
  1386. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
  1387. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
  1388. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
  1389. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
  1390. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
  1391. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
  1392. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
  1393. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
  1394. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
  1395. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
  1396. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
  1397. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
  1398. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
  1399. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
  1400. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
  1401. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
  1402. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
  1403. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
  1404. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
  1405. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cargo.svg +0 -0
  1406. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cargo_opened.svg +0 -0
  1407. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
  1408. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
  1409. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
  1410. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
  1411. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
  1412. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
  1413. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
  1414. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
  1415. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_claude.svg +0 -0
  1416. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_claude_opened.svg +0 -0
  1417. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
  1418. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
  1419. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
  1420. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
  1421. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare.svg +0 -0
  1422. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare_opened.svg +0 -0
  1423. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
  1424. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
  1425. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
  1426. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
  1427. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
  1428. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
  1429. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
  1430. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
  1431. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
  1432. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
  1433. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
  1434. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
  1435. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
  1436. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
  1437. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
  1438. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
  1439. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
  1440. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
  1441. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
  1442. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
  1443. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cursor.svg +0 -0
  1444. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cursor_opened.svg +0 -0
  1445. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
  1446. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
  1447. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
  1448. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
  1449. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_dart.svg +0 -0
  1450. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_dart_opened.svg +0 -0
  1451. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
  1452. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
  1453. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
  1454. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
  1455. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
  1456. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
  1457. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
  1458. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
  1459. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
  1460. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
  1461. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
  1462. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
  1463. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
  1464. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
  1465. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
  1466. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
  1467. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
  1468. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
  1469. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
  1470. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
  1471. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
  1472. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
  1473. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
  1474. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
  1475. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
  1476. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
  1477. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
  1478. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
  1479. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_flutter.svg +0 -0
  1480. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_flutter_opened.svg +0 -0
  1481. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
  1482. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
  1483. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
  1484. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
  1485. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
  1486. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
  1487. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
  1488. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
  1489. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
  1490. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
  1491. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
  1492. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
  1493. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_godot.svg +0 -0
  1494. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_godot_opened.svg +0 -0
  1495. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
  1496. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
  1497. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
  1498. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
  1499. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
  1500. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
  1501. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
  1502. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
  1503. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
  1504. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
  1505. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
  1506. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
  1507. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_histoire.svg +0 -0
  1508. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_histoire_opened.svg +0 -0
  1509. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
  1510. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
  1511. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
  1512. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
  1513. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
  1514. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
  1515. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
  1516. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
  1517. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
  1518. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
  1519. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
  1520. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
  1521. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
  1522. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
  1523. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
  1524. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
  1525. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
  1526. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
  1527. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
  1528. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
  1529. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_junie.svg +0 -0
  1530. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_junie_opened.svg +0 -0
  1531. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_kotlin.svg +0 -0
  1532. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_kotlin_opened.svg +0 -0
  1533. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
  1534. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
  1535. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
  1536. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
  1537. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
  1538. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
  1539. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor.svg +0 -0
  1540. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor_opened.svg +0 -0
  1541. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
  1542. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
  1543. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
  1544. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
  1545. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
  1546. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
  1547. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
  1548. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
  1549. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
  1550. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
  1551. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
  1552. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
  1553. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
  1554. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
  1555. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
  1556. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
  1557. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
  1558. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
  1559. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
  1560. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
  1561. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
  1562. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
  1563. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_zed.svg +0 -0
  1564. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_light_zed_opened.svg +0 -0
  1565. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
  1566. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
  1567. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
  1568. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
  1569. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
  1570. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
  1571. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
  1572. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
  1573. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
  1574. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
  1575. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
  1576. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
  1577. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
  1578. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
  1579. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
  1580. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
  1581. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
  1582. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
  1583. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
  1584. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
  1585. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
  1586. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
  1587. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
  1588. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
  1589. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
  1590. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
  1591. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
  1592. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
  1593. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
  1594. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
  1595. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
  1596. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
  1597. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
  1598. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
  1599. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
  1600. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
  1601. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
  1602. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
  1603. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
  1604. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
  1605. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
  1606. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
  1607. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
  1608. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
  1609. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
  1610. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
  1611. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
  1612. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
  1613. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
  1614. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
  1615. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
  1616. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
  1617. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
  1618. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
  1619. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
  1620. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
  1621. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
  1622. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
  1623. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
  1624. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
  1625. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
  1626. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
  1627. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
  1628. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
  1629. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
  1630. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
  1631. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
  1632. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
  1633. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
  1634. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
  1635. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
  1636. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
  1637. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
  1638. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
  1639. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
  1640. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
  1641. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
  1642. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
  1643. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
  1644. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
  1645. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
  1646. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
  1647. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
  1648. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
  1649. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
  1650. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
  1651. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
  1652. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
  1653. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
  1654. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
  1655. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
  1656. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
  1657. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
  1658. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
  1659. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
  1660. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
  1661. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
  1662. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
  1663. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
  1664. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
  1665. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
  1666. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
  1667. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
  1668. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
  1669. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
  1670. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
  1671. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
  1672. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
  1673. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
  1674. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
  1675. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
  1676. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
  1677. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
  1678. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
  1679. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
  1680. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
  1681. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
  1682. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
  1683. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
  1684. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
  1685. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
  1686. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
  1687. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
  1688. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
  1689. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
  1690. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
  1691. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
  1692. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
  1693. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
  1694. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
  1695. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
  1696. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
  1697. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
  1698. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
  1699. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
  1700. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
  1701. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
  1702. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
  1703. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
  1704. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
  1705. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
  1706. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
  1707. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
  1708. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
  1709. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
  1710. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
  1711. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vitepress.svg +0 -0
  1712. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vitepress_opened.svg +0 -0
  1713. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
  1714. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
  1715. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
  1716. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
  1717. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
  1718. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
  1719. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
  1720. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
  1721. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
  1722. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
  1723. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
  1724. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
  1725. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
  1726. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
  1727. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
  1728. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
  1729. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_wasm.svg +0 -0
  1730. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_wasm_opened.svg +0 -0
  1731. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
  1732. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
  1733. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
  1734. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
  1735. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_windsurf.svg +0 -0
  1736. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_windsurf_opened.svg +0 -0
  1737. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
  1738. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
  1739. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
  1740. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
  1741. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
  1742. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
  1743. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_zed.svg +0 -0
  1744. /package/static/{6e21d18 → 1b54f05}/extensions/builtin.vscode-icons/icons/folder_type_zed_opened.svg +0 -0
  1745. /package/static/{6e21d18 → 1b54f05}/fonts/FiraCode-VariableFont.ttf +0 -0
  1746. /package/static/{6e21d18 → 1b54f05}/icons/add.svg +0 -0
  1747. /package/static/{6e21d18 → 1b54f05}/icons/arrow-down.svg +0 -0
  1748. /package/static/{6e21d18 → 1b54f05}/icons/arrow-left.svg +0 -0
  1749. /package/static/{6e21d18 → 1b54f05}/icons/arrow-right.svg +0 -0
  1750. /package/static/{6e21d18 → 1b54f05}/icons/arrow-up.svg +0 -0
  1751. /package/static/{6e21d18 → 1b54f05}/icons/blank.svg +0 -0
  1752. /package/static/{6e21d18 → 1b54f05}/icons/book.svg +0 -0
  1753. /package/static/{6e21d18 → 1b54f05}/icons/case-sensitive.svg +0 -0
  1754. /package/static/{6e21d18 → 1b54f05}/icons/check.svg +0 -0
  1755. /package/static/{6e21d18 → 1b54f05}/icons/chevron-down.svg +0 -0
  1756. /package/static/{6e21d18 → 1b54f05}/icons/chevron-left.svg +0 -0
  1757. /package/static/{6e21d18 → 1b54f05}/icons/chevron-right.svg +0 -0
  1758. /package/static/{6e21d18 → 1b54f05}/icons/chevron-up.svg +0 -0
  1759. /package/static/{6e21d18 → 1b54f05}/icons/chrome-close.svg +0 -0
  1760. /package/static/{6e21d18 → 1b54f05}/icons/chrome-maximize.svg +0 -0
  1761. /package/static/{6e21d18 → 1b54f05}/icons/chrome-minimize.svg +0 -0
  1762. /package/static/{6e21d18 → 1b54f05}/icons/chrome-restore.svg +0 -0
  1763. /package/static/{6e21d18 → 1b54f05}/icons/circle-filled.svg +0 -0
  1764. /package/static/{6e21d18 → 1b54f05}/icons/clear-all.svg +0 -0
  1765. /package/static/{6e21d18 → 1b54f05}/icons/close.svg +0 -0
  1766. /package/static/{6e21d18 → 1b54f05}/icons/cloud.svg +0 -0
  1767. /package/static/{6e21d18 → 1b54f05}/icons/collapse-all.svg +0 -0
  1768. /package/static/{6e21d18 → 1b54f05}/icons/debug-all.svg +0 -0
  1769. /package/static/{6e21d18 → 1b54f05}/icons/debug-alt-2.svg +0 -0
  1770. /package/static/{6e21d18 → 1b54f05}/icons/debug-alt-small.svg +0 -0
  1771. /package/static/{6e21d18 → 1b54f05}/icons/debug-alt.svg +0 -0
  1772. /package/static/{6e21d18 → 1b54f05}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
  1773. /package/static/{6e21d18 → 1b54f05}/icons/debug-breakpoint-conditional.svg +0 -0
  1774. /package/static/{6e21d18 → 1b54f05}/icons/debug-breakpoint-data-unverified.svg +0 -0
  1775. /package/static/{6e21d18 → 1b54f05}/icons/debug-breakpoint-data.svg +0 -0
  1776. /package/static/{6e21d18 → 1b54f05}/icons/debug-breakpoint-function-unverified.svg +0 -0
  1777. /package/static/{6e21d18 → 1b54f05}/icons/debug-breakpoint-function.svg +0 -0
  1778. /package/static/{6e21d18 → 1b54f05}/icons/debug-breakpoint-log-unverified.svg +0 -0
  1779. /package/static/{6e21d18 → 1b54f05}/icons/debug-breakpoint-log.svg +0 -0
  1780. /package/static/{6e21d18 → 1b54f05}/icons/debug-breakpoint-unsupported.svg +0 -0
  1781. /package/static/{6e21d18 → 1b54f05}/icons/debug-console.svg +0 -0
  1782. /package/static/{6e21d18 → 1b54f05}/icons/debug-continue-small.svg +0 -0
  1783. /package/static/{6e21d18 → 1b54f05}/icons/debug-continue.svg +0 -0
  1784. /package/static/{6e21d18 → 1b54f05}/icons/debug-coverage.svg +0 -0
  1785. /package/static/{6e21d18 → 1b54f05}/icons/debug-disconnect.svg +0 -0
  1786. /package/static/{6e21d18 → 1b54f05}/icons/debug-line-by-line.svg +0 -0
  1787. /package/static/{6e21d18 → 1b54f05}/icons/debug-pause.svg +0 -0
  1788. /package/static/{6e21d18 → 1b54f05}/icons/debug-rerun.svg +0 -0
  1789. /package/static/{6e21d18 → 1b54f05}/icons/debug-restart-frame.svg +0 -0
  1790. /package/static/{6e21d18 → 1b54f05}/icons/debug-restart.svg +0 -0
  1791. /package/static/{6e21d18 → 1b54f05}/icons/debug-reverse-continue.svg +0 -0
  1792. /package/static/{6e21d18 → 1b54f05}/icons/debug-stackframe-active.svg +0 -0
  1793. /package/static/{6e21d18 → 1b54f05}/icons/debug-stackframe.svg +0 -0
  1794. /package/static/{6e21d18 → 1b54f05}/icons/debug-start.svg +0 -0
  1795. /package/static/{6e21d18 → 1b54f05}/icons/debug-step-back.svg +0 -0
  1796. /package/static/{6e21d18 → 1b54f05}/icons/debug-step-into.svg +0 -0
  1797. /package/static/{6e21d18 → 1b54f05}/icons/debug-step-out.svg +0 -0
  1798. /package/static/{6e21d18 → 1b54f05}/icons/debug-step-over.svg +0 -0
  1799. /package/static/{6e21d18 → 1b54f05}/icons/debug-stop.svg +0 -0
  1800. /package/static/{6e21d18 → 1b54f05}/icons/debug.svg +0 -0
  1801. /package/static/{6e21d18 → 1b54f05}/icons/discard.svg +0 -0
  1802. /package/static/{6e21d18 → 1b54f05}/icons/edit.svg +0 -0
  1803. /package/static/{6e21d18 → 1b54f05}/icons/ellipsis.svg +0 -0
  1804. /package/static/{6e21d18 → 1b54f05}/icons/error.svg +0 -0
  1805. /package/static/{6e21d18 → 1b54f05}/icons/exclude.svg +0 -0
  1806. /package/static/{6e21d18 → 1b54f05}/icons/extensionDefaultIcon.png +0 -0
  1807. /package/static/{6e21d18 → 1b54f05}/icons/extensions.svg +0 -0
  1808. /package/static/{6e21d18 → 1b54f05}/icons/files.svg +0 -0
  1809. /package/static/{6e21d18 → 1b54f05}/icons/filter.svg +0 -0
  1810. /package/static/{6e21d18 → 1b54f05}/icons/go-to-file.svg +0 -0
  1811. /package/static/{6e21d18 → 1b54f05}/icons/icon-close.svg +0 -0
  1812. /package/static/{6e21d18 → 1b54f05}/icons/icon-source-control.svg +0 -0
  1813. /package/static/{6e21d18 → 1b54f05}/icons/icon-sync.svg +0 -0
  1814. /package/static/{6e21d18 → 1b54f05}/icons/icon.png +0 -0
  1815. /package/static/{6e21d18 → 1b54f05}/icons/icon.svg +0 -0
  1816. /package/static/{6e21d18 → 1b54f05}/icons/info.svg +0 -0
  1817. /package/static/{6e21d18 → 1b54f05}/icons/language-icon.svg +0 -0
  1818. /package/static/{6e21d18 → 1b54f05}/icons/link-external.svg +0 -0
  1819. /package/static/{6e21d18 → 1b54f05}/icons/list-flat.svg +0 -0
  1820. /package/static/{6e21d18 → 1b54f05}/icons/list-tree.svg +0 -0
  1821. /package/static/{6e21d18 → 1b54f05}/icons/new-file.svg +0 -0
  1822. /package/static/{6e21d18 → 1b54f05}/icons/new-folder.svg +0 -0
  1823. /package/static/{6e21d18 → 1b54f05}/icons/newline.svg +0 -0
  1824. /package/static/{6e21d18 → 1b54f05}/icons/open-preview.svg +0 -0
  1825. /package/static/{6e21d18 → 1b54f05}/icons/play.svg +0 -0
  1826. /package/static/{6e21d18 → 1b54f05}/icons/preserve-case.svg +0 -0
  1827. /package/static/{6e21d18 → 1b54f05}/icons/progress.svg +0 -0
  1828. /package/static/{6e21d18 → 1b54f05}/icons/pwa-icon-192.png +0 -0
  1829. /package/static/{6e21d18 → 1b54f05}/icons/pwa-icon-512.png +0 -0
  1830. /package/static/{6e21d18 → 1b54f05}/icons/record-keys.svg +0 -0
  1831. /package/static/{6e21d18 → 1b54f05}/icons/refresh.svg +0 -0
  1832. /package/static/{6e21d18 → 1b54f05}/icons/regex.svg +0 -0
  1833. /package/static/{6e21d18 → 1b54f05}/icons/remove.svg +0 -0
  1834. /package/static/{6e21d18 → 1b54f05}/icons/replace-all.svg +0 -0
  1835. /package/static/{6e21d18 → 1b54f05}/icons/replace.svg +0 -0
  1836. /package/static/{6e21d18 → 1b54f05}/icons/repo.svg +0 -0
  1837. /package/static/{6e21d18 → 1b54f05}/icons/run-all.svg +0 -0
  1838. /package/static/{6e21d18 → 1b54f05}/icons/search.svg +0 -0
  1839. /package/static/{6e21d18 → 1b54f05}/icons/settings-gear.svg +0 -0
  1840. /package/static/{6e21d18 → 1b54f05}/icons/sort-precedence.svg +0 -0
  1841. /package/static/{6e21d18 → 1b54f05}/icons/source-control.svg +0 -0
  1842. /package/static/{6e21d18 → 1b54f05}/icons/split-horizontal.svg +0 -0
  1843. /package/static/{6e21d18 → 1b54f05}/icons/squiggly-error.svg +0 -0
  1844. /package/static/{6e21d18 → 1b54f05}/icons/squiggly-warning.svg +0 -0
  1845. /package/static/{6e21d18 → 1b54f05}/icons/symbol-array.svg +0 -0
  1846. /package/static/{6e21d18 → 1b54f05}/icons/symbol-boolean.svg +0 -0
  1847. /package/static/{6e21d18 → 1b54f05}/icons/symbol-class.svg +0 -0
  1848. /package/static/{6e21d18 → 1b54f05}/icons/symbol-color.svg +0 -0
  1849. /package/static/{6e21d18 → 1b54f05}/icons/symbol-constant.svg +0 -0
  1850. /package/static/{6e21d18 → 1b54f05}/icons/symbol-enum-member.svg +0 -0
  1851. /package/static/{6e21d18 → 1b54f05}/icons/symbol-enum.svg +0 -0
  1852. /package/static/{6e21d18 → 1b54f05}/icons/symbol-event.svg +0 -0
  1853. /package/static/{6e21d18 → 1b54f05}/icons/symbol-field.svg +0 -0
  1854. /package/static/{6e21d18 → 1b54f05}/icons/symbol-file.svg +0 -0
  1855. /package/static/{6e21d18 → 1b54f05}/icons/symbol-interface.svg +0 -0
  1856. /package/static/{6e21d18 → 1b54f05}/icons/symbol-key.svg +0 -0
  1857. /package/static/{6e21d18 → 1b54f05}/icons/symbol-keyword.svg +0 -0
  1858. /package/static/{6e21d18 → 1b54f05}/icons/symbol-method.svg +0 -0
  1859. /package/static/{6e21d18 → 1b54f05}/icons/symbol-misc.svg +0 -0
  1860. /package/static/{6e21d18 → 1b54f05}/icons/symbol-namespace.svg +0 -0
  1861. /package/static/{6e21d18 → 1b54f05}/icons/symbol-numeric.svg +0 -0
  1862. /package/static/{6e21d18 → 1b54f05}/icons/symbol-operator.svg +0 -0
  1863. /package/static/{6e21d18 → 1b54f05}/icons/symbol-parameter.svg +0 -0
  1864. /package/static/{6e21d18 → 1b54f05}/icons/symbol-property.svg +0 -0
  1865. /package/static/{6e21d18 → 1b54f05}/icons/symbol-ruler.svg +0 -0
  1866. /package/static/{6e21d18 → 1b54f05}/icons/symbol-snippet.svg +0 -0
  1867. /package/static/{6e21d18 → 1b54f05}/icons/symbol-string.svg +0 -0
  1868. /package/static/{6e21d18 → 1b54f05}/icons/symbol-structure.svg +0 -0
  1869. /package/static/{6e21d18 → 1b54f05}/icons/symbol-variable.svg +0 -0
  1870. /package/static/{6e21d18 → 1b54f05}/icons/tag.svg +0 -0
  1871. /package/static/{6e21d18 → 1b54f05}/icons/terminal-bash.svg +0 -0
  1872. /package/static/{6e21d18 → 1b54f05}/icons/terminal.svg +0 -0
  1873. /package/static/{6e21d18 → 1b54f05}/icons/theme-icon.png +0 -0
  1874. /package/static/{6e21d18 → 1b54f05}/icons/trash.svg +0 -0
  1875. /package/static/{6e21d18 → 1b54f05}/icons/triangle-down.svg +0 -0
  1876. /package/static/{6e21d18 → 1b54f05}/icons/triangle-left.svg +0 -0
  1877. /package/static/{6e21d18 → 1b54f05}/icons/triangle-right.svg +0 -0
  1878. /package/static/{6e21d18 → 1b54f05}/icons/triangle-up.svg +0 -0
  1879. /package/static/{6e21d18 → 1b54f05}/icons/warning.svg +0 -0
  1880. /package/static/{6e21d18 → 1b54f05}/icons/whole-word.svg +0 -0
  1881. /package/static/{6e21d18 → 1b54f05}/icons/zoom-in.svg +0 -0
  1882. /package/static/{6e21d18 → 1b54f05}/icons/zoom-out.svg +0 -0
  1883. /package/static/{6e21d18 → 1b54f05}/js/babel-parser.js +0 -0
  1884. /package/static/{6e21d18 → 1b54f05}/js/ky.js +0 -0
  1885. /package/static/{6e21d18 → 1b54f05}/js/lvce-editor-import-script.js +0 -0
  1886. /package/static/{6e21d18 → 1b54f05}/js/lvce-editor-ipc.js +0 -0
  1887. /package/static/{6e21d18 → 1b54f05}/js/lvce-editor-json-rpc.js +0 -0
  1888. /package/static/{6e21d18 → 1b54f05}/js/lvce-editor-rpc.js +0 -0
  1889. /package/static/{6e21d18 → 1b54f05}/js/lvce-editor-verror.js +0 -0
  1890. /package/static/{6e21d18 → 1b54f05}/js/p-min-delay.js +0 -0
  1891. /package/static/{6e21d18 → 1b54f05}/js/pretty-bytes.js +0 -0
  1892. /package/static/{6e21d18 → 1b54f05}/js/preview-injected.js +0 -0
  1893. /package/static/{6e21d18 → 1b54f05}/js/yoctodelay.js +0 -0
  1894. /package/static/{6e21d18 → 1b54f05}/lib-css/termterm.css +0 -0
  1895. /package/static/{6e21d18 → 1b54f05}/packages/activity-bar-worker/dist/activityBarWorkerMain.js +0 -0
  1896. /package/static/{6e21d18 → 1b54f05}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
  1897. /package/static/{6e21d18 → 1b54f05}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
  1898. /package/static/{6e21d18 → 1b54f05}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
  1899. /package/static/{6e21d18 → 1b54f05}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
  1900. /package/static/{6e21d18 → 1b54f05}/packages/diff-worker/dist/diffWorkerMain.js +0 -0
  1901. /package/static/{6e21d18 → 1b54f05}/packages/editor-worker/dist/editorWorkerMain.js +0 -0
  1902. /package/static/{6e21d18 → 1b54f05}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
  1903. /package/static/{6e21d18 → 1b54f05}/packages/error-worker/dist/errorWorkerMain.js +0 -0
  1904. /package/static/{6e21d18 → 1b54f05}/packages/explorer-worker/dist/explorerViewWorkerMain.js +0 -0
  1905. /package/static/{6e21d18 → 1b54f05}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
  1906. /package/static/{6e21d18 → 1b54f05}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
  1907. /package/static/{6e21d18 → 1b54f05}/packages/extension-management-worker/dist/extensionManagementWorkerMain.js +0 -0
  1908. /package/static/{6e21d18 → 1b54f05}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
  1909. /package/static/{6e21d18 → 1b54f05}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
  1910. /package/static/{6e21d18 → 1b54f05}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
  1911. /package/static/{6e21d18 → 1b54f05}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
  1912. /package/static/{6e21d18 → 1b54f05}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
  1913. /package/static/{6e21d18 → 1b54f05}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
  1914. /package/static/{6e21d18 → 1b54f05}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
  1915. /package/static/{6e21d18 → 1b54f05}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
  1916. /package/static/{6e21d18 → 1b54f05}/packages/language-models-view/dist/languageModelsViewMain.js +0 -0
  1917. /package/static/{6e21d18 → 1b54f05}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
  1918. /package/static/{6e21d18 → 1b54f05}/packages/menu-worker/dist/menuWorkerMain.js +0 -0
  1919. /package/static/{6e21d18 → 1b54f05}/packages/opener-worker/dist/openerWorkerMain.js +0 -0
  1920. /package/static/{6e21d18 → 1b54f05}/packages/output-view/dist/outputViewWorkerMain.js +0 -0
  1921. /package/static/{6e21d18 → 1b54f05}/packages/preload/dist/index.js +0 -0
  1922. /package/static/{6e21d18 → 1b54f05}/packages/preview-sandbox-worker/dist/previewSandBoxWorkerMain.js +0 -0
  1923. /package/static/{6e21d18 → 1b54f05}/packages/preview-worker/dist/previewWorkerMain.js +0 -0
  1924. /package/static/{6e21d18 → 1b54f05}/packages/problems-view/dist/problemsViewWorkerMain.js +0 -0
  1925. /package/static/{6e21d18 → 1b54f05}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
  1926. /package/static/{6e21d18 → 1b54f05}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
  1927. /package/static/{6e21d18 → 1b54f05}/packages/renderer-process/LICENSE +0 -0
  1928. /package/static/{6e21d18 → 1b54f05}/packages/renderer-process/README.md +0 -0
  1929. /package/static/{6e21d18 → 1b54f05}/packages/renderer-process/package.json +0 -0
  1930. /package/static/{6e21d18 → 1b54f05}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
  1931. /package/static/{6e21d18 → 1b54f05}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
  1932. /package/static/{6e21d18 → 1b54f05}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
  1933. /package/static/{6e21d18 → 1b54f05}/packages/status-bar-worker/dist/statusBarWorkerMain.js +0 -0
  1934. /package/static/{6e21d18 → 1b54f05}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
  1935. /package/static/{6e21d18 → 1b54f05}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
  1936. /package/static/{6e21d18 → 1b54f05}/packages/test-worker/dist/testWorkerMain.js +0 -0
  1937. /package/static/{6e21d18 → 1b54f05}/packages/text-measurement-worker/dist/textMeasurementWorkerMain.js +0 -0
  1938. /package/static/{6e21d18 → 1b54f05}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
  1939. /package/static/{6e21d18 → 1b54f05}/packages/title-bar-worker/dist/titleBarWorkerMain.js +0 -0
  1940. /package/static/{6e21d18 → 1b54f05}/packages/update-worker/dist/updateWorkerMain.js +0 -0
  1941. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.cpp +0 -0
  1942. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.css +0 -0
  1943. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.csv +0 -0
  1944. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.dart +0 -0
  1945. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.env +0 -0
  1946. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.ex +0 -0
  1947. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.html +0 -0
  1948. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.java +0 -0
  1949. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.jl +0 -0
  1950. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.js +0 -0
  1951. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.json +0 -0
  1952. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.kt +0 -0
  1953. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.pl +0 -0
  1954. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.py +0 -0
  1955. /package/static/{6e21d18 → 1b54f05}/playground/languages/index.ts +0 -0
  1956. /package/static/{6e21d18 → 1b54f05}/playground/languages/scrolling.txt +0 -0
  1957. /package/static/{6e21d18 → 1b54f05}/playground/languages/tsconfig.json +0 -0
  1958. /package/static/{6e21d18 → 1b54f05}/playground/sample-folder/a.txt +0 -0
  1959. /package/static/{6e21d18 → 1b54f05}/playground/sample-folder/b.txt +0 -0
  1960. /package/static/{6e21d18 → 1b54f05}/playground/sample-folder/c.txt +0 -0
@@ -87,7 +87,231 @@ const terminate = () => {
87
87
  globalThis.close();
88
88
  };
89
89
 
90
- const Button$1 = 1;
90
+ const closeTab = (state, groupId, tabId) => {
91
+ const {
92
+ layout
93
+ } = state;
94
+ const {
95
+ activeGroupId,
96
+ groups
97
+ } = layout;
98
+
99
+ // Find the group to close the tab from
100
+ const groupIndex = groups.findIndex(g => g.id === groupId);
101
+ if (groupIndex === -1) {
102
+ return state;
103
+ }
104
+ const group = groups[groupIndex];
105
+ // Check if the tab exists in the group
106
+ const tabWasRemoved = group.tabs.some(tab => tab.id === tabId);
107
+ if (!tabWasRemoved) {
108
+ return state;
109
+ }
110
+ const newGroups = groups.map(grp => {
111
+ if (grp.id === groupId) {
112
+ const newTabs = grp.tabs.filter(tab => tab.id !== tabId);
113
+ let newActiveTabId = grp.activeTabId;
114
+ if (grp.activeTabId === tabId) {
115
+ const tabIndex = grp.tabs.findIndex(tab => tab.id === tabId);
116
+ if (newTabs.length > 0) {
117
+ newActiveTabId = newTabs[Math.min(tabIndex, newTabs.length - 1)].id;
118
+ } else {
119
+ newActiveTabId = undefined;
120
+ }
121
+ }
122
+ return {
123
+ ...grp,
124
+ activeTabId: newActiveTabId,
125
+ isEmpty: newTabs.length === 0,
126
+ tabs: newTabs
127
+ };
128
+ }
129
+ return grp;
130
+ });
131
+
132
+ // If the group has no tabs left after closing, remove the group
133
+ const groupIsNowEmpty = newGroups[groupIndex].tabs.length === 0;
134
+ if (groupIsNowEmpty) {
135
+ const remainingGroups = newGroups.filter(group => group.id !== groupId);
136
+
137
+ // If there are remaining groups, redistribute sizes
138
+ if (remainingGroups.length > 0) {
139
+ const redistributedGroups = remainingGroups.map(grp => ({
140
+ ...grp,
141
+ size: Math.round(100 / remainingGroups.length)
142
+ }));
143
+ const newActiveGroupId = activeGroupId === groupId ? remainingGroups[0]?.id : activeGroupId;
144
+ return {
145
+ ...state,
146
+ layout: {
147
+ ...layout,
148
+ activeGroupId: newActiveGroupId,
149
+ groups: redistributedGroups
150
+ }
151
+ };
152
+ }
153
+
154
+ // If no remaining groups, return empty layout
155
+ return {
156
+ ...state,
157
+ layout: {
158
+ ...layout,
159
+ activeGroupId: undefined,
160
+ groups: []
161
+ }
162
+ };
163
+ }
164
+ return {
165
+ ...state,
166
+ layout: {
167
+ ...layout,
168
+ groups: newGroups
169
+ }
170
+ };
171
+ };
172
+
173
+ const closeActiveEditor = state => {
174
+ const {
175
+ layout
176
+ } = state;
177
+ const {
178
+ groups
179
+ } = layout;
180
+ const focusedGroup = groups.find(group => group.focused);
181
+ if (!focusedGroup) {
182
+ return state;
183
+ }
184
+ const {
185
+ activeTabId
186
+ } = focusedGroup;
187
+ if (activeTabId === undefined) {
188
+ return state;
189
+ }
190
+ return closeTab(state, focusedGroup.id, activeTabId);
191
+ };
192
+
193
+ const closeAll$1 = state => {
194
+ return {
195
+ ...state,
196
+ layout: {
197
+ ...state.layout,
198
+ activeGroupId: undefined,
199
+ groups: []
200
+ }
201
+ };
202
+ };
203
+
204
+ const closeFocusedTab = state => {
205
+ const {
206
+ layout
207
+ } = state;
208
+ const {
209
+ groups
210
+ } = layout;
211
+ const focusedGroup = groups.find(group => group.focused);
212
+ if (!focusedGroup) {
213
+ return state;
214
+ }
215
+ const {
216
+ activeTabId
217
+ } = focusedGroup;
218
+ if (activeTabId === undefined) {
219
+ return state;
220
+ }
221
+ return closeTab(state, focusedGroup.id, activeTabId);
222
+ };
223
+
224
+ const closeOtherTabs = (state, groupId) => {
225
+ const {
226
+ layout
227
+ } = state;
228
+ const {
229
+ activeGroupId,
230
+ groups
231
+ } = layout;
232
+ const targetGroupId = groupId ?? activeGroupId;
233
+ if (targetGroupId === undefined) {
234
+ return state;
235
+ }
236
+ const group = groups.find(g => g.id === targetGroupId);
237
+ if (!group) {
238
+ return state;
239
+ }
240
+ const {
241
+ activeTabId
242
+ } = group;
243
+ if (activeTabId === undefined) {
244
+ return state;
245
+ }
246
+ const newGroups = groups.map(g => {
247
+ if (g.id === targetGroupId) {
248
+ const newTabs = g.tabs.filter(tab => tab.id === activeTabId);
249
+ return {
250
+ ...g,
251
+ activeTabId,
252
+ isEmpty: newTabs.length === 0,
253
+ tabs: newTabs
254
+ };
255
+ }
256
+ return g;
257
+ });
258
+ return {
259
+ ...state,
260
+ layout: {
261
+ ...layout,
262
+ groups: newGroups
263
+ }
264
+ };
265
+ };
266
+
267
+ const closeTabsRight = (state, groupId) => {
268
+ const {
269
+ layout
270
+ } = state;
271
+ const {
272
+ groups
273
+ } = layout;
274
+ const group = groups.find(g => g.id === groupId);
275
+ if (!group) {
276
+ return state;
277
+ }
278
+ const {
279
+ activeTabId,
280
+ tabs
281
+ } = group;
282
+ if (activeTabId === undefined) {
283
+ return state;
284
+ }
285
+ const activeTabIndex = tabs.findIndex(tab => tab.id === activeTabId);
286
+ if (activeTabIndex === -1) {
287
+ return state;
288
+ }
289
+ const newTabs = tabs.slice(0, activeTabIndex + 1);
290
+ if (newTabs.length === tabs.length) {
291
+ return state;
292
+ }
293
+ const newGroups = groups.map(g => {
294
+ if (g.id === groupId) {
295
+ return {
296
+ ...g,
297
+ isEmpty: newTabs.length === 0,
298
+ tabs: newTabs
299
+ };
300
+ }
301
+ return g;
302
+ });
303
+ return {
304
+ ...state,
305
+ layout: {
306
+ ...layout,
307
+ groups: newGroups
308
+ }
309
+ };
310
+ };
311
+
312
+ const None$1 = 'none';
313
+
314
+ const Button$2 = 1;
91
315
  const Div = 4;
92
316
  const Span = 8;
93
317
  const Text = 12;
@@ -95,9 +319,10 @@ const Img = 17;
95
319
  const Pre = 51;
96
320
  const Reference = 100;
97
321
 
98
- const Button = 'event.button';
322
+ const Button$1 = 'event.button';
99
323
  const ClientX = 'event.clientX';
100
324
  const ClientY = 'event.clientY';
325
+ const EventTargetClassName = 'event.target.className';
101
326
  const TargetName = 'event.target.name';
102
327
 
103
328
  const Tab = 13;
@@ -110,6 +335,7 @@ const ExtensionHostWorker = 44;
110
335
  const IconThemeWorker = 7009;
111
336
  const RendererWorker = 1;
112
337
 
338
+ const SetCss = 'Viewlet.setCss';
113
339
  const SetDom2 = 'Viewlet.setDom2';
114
340
  const SetPatches = 'Viewlet.setPatches';
115
341
 
@@ -1261,7 +1487,7 @@ const create$j = async ({
1261
1487
  send
1262
1488
  }) => {
1263
1489
  return createSharedLazyRpc(() => {
1264
- return create$3({
1490
+ return create$3$1({
1265
1491
  commandMap,
1266
1492
  isMessagePortOpen,
1267
1493
  send
@@ -1289,7 +1515,7 @@ const create$5 = async ({
1289
1515
  messagePort.start();
1290
1516
  return rpc;
1291
1517
  };
1292
- const create$3 = async ({
1518
+ const create$3$1 = async ({
1293
1519
  commandMap,
1294
1520
  isMessagePortOpen,
1295
1521
  send
@@ -1307,7 +1533,7 @@ const create$3 = async ({
1307
1533
  };
1308
1534
  const TransferMessagePortRpcParent = {
1309
1535
  __proto__: null,
1310
- create: create$3
1536
+ create: create$3$1
1311
1537
  };
1312
1538
  const create$2$1 = async ({
1313
1539
  commandMap
@@ -1355,7 +1581,7 @@ const remove = id => {
1355
1581
  };
1356
1582
 
1357
1583
  /* eslint-disable @typescript-eslint/explicit-function-return-type */
1358
- const create$2 = rpcId => {
1584
+ const create$3 = rpcId => {
1359
1585
  return {
1360
1586
  async dispose() {
1361
1587
  const rpc = get$1(rpcId);
@@ -1393,16 +1619,16 @@ const create$2 = rpcId => {
1393
1619
 
1394
1620
  const {
1395
1621
  set: set$4
1396
- } = create$2(ClipBoardWorker);
1622
+ } = create$3(ClipBoardWorker);
1397
1623
 
1398
1624
  const {
1399
1625
  set: set$3
1400
- } = create$2(ExtensionHostWorker);
1626
+ } = create$3(ExtensionHostWorker);
1401
1627
 
1402
1628
  const {
1403
1629
  invoke: invoke$1,
1404
1630
  set: set$2
1405
- } = create$2(IconThemeWorker);
1631
+ } = create$3(IconThemeWorker);
1406
1632
  const getIcons = async iconRequests => {
1407
1633
  // @ts-ignore
1408
1634
  return invoke$1('IconTheme.getIcons', iconRequests);
@@ -1412,7 +1638,7 @@ const {
1412
1638
  invoke,
1413
1639
  invokeAndTransfer,
1414
1640
  set: set$1
1415
- } = create$2(RendererWorker);
1641
+ } = create$3(RendererWorker);
1416
1642
  const showContextMenu2 = async (uid, menuId, x, y, args) => {
1417
1643
  number(uid);
1418
1644
  number(menuId);
@@ -1433,10 +1659,17 @@ const sendMessagePortToExtensionHostWorker$1 = async (port, rpcId = 0) => {
1433
1659
  await invokeAndTransfer('SendMessagePortToExtensionHostWorker.sendMessagePortToExtensionHostWorker', port, command, rpcId);
1434
1660
  };
1435
1661
 
1436
- const handleAttach = async command => {
1437
- // TODO find a better way to append editors
1438
- const parentNodeSelector = '.editor-groups-container';
1439
- await invoke('Layout.attachViewlet', parentNodeSelector, command.instanceId);
1662
+ const copyPath$1 = async (state, path) => {
1663
+ string(path);
1664
+ await invoke('ClipBoard.writeText', path);
1665
+ return state;
1666
+ };
1667
+
1668
+ const copyRelativePath$1 = async (state, path) => {
1669
+ string(path);
1670
+ const relativePath = await invoke('Workspace.pathBaseName', path);
1671
+ await invoke('ClipBoard.writeText', relativePath);
1672
+ return state;
1440
1673
  };
1441
1674
 
1442
1675
  const {
@@ -1448,25 +1681,94 @@ const {
1448
1681
  wrapGetter
1449
1682
  } = create$6();
1450
1683
 
1451
- const create$1 = () => {
1452
- return Math.random();
1453
- };
1454
-
1455
- const updateTab = (state, tabId, updates) => {
1456
- const {
1457
- layout
1458
- } = state;
1459
- const {
1460
- groups
1461
- } = layout;
1462
- const updatedGroups = groups.map(group => {
1463
- const tabIndex = group.tabs.findIndex(t => t.id === tabId);
1464
- if (tabIndex === -1) {
1465
- return group;
1466
- }
1467
- const updatedTabs = group.tabs.map((tab, index) => {
1468
- if (index === tabIndex) {
1469
- return {
1684
+ const create$2 = (uid, uri, x, y, width, height, platform, assetDir, tabHeight = 35) => {
1685
+ const state = {
1686
+ assetDir,
1687
+ fileIconCache: {},
1688
+ height,
1689
+ iframes: [],
1690
+ initial: true,
1691
+ layout: {
1692
+ activeGroupId: undefined,
1693
+ direction: 'horizontal',
1694
+ groups: []
1695
+ },
1696
+ platform,
1697
+ splitButtonEnabled: false,
1698
+ tabHeight,
1699
+ uid,
1700
+ width,
1701
+ workspaceuri: uri,
1702
+ x,
1703
+ y
1704
+ };
1705
+ set(uid, state, state);
1706
+ };
1707
+
1708
+ const isEqual$1 = (oldState, newState) => {
1709
+ return oldState.width === newState.width && oldState.height === newState.height;
1710
+ };
1711
+
1712
+ const isEqual = (oldState, newState) => {
1713
+ return oldState.layout === newState.layout;
1714
+ };
1715
+
1716
+ const RenderItems = 4;
1717
+ const RenderCss = 10;
1718
+ const RenderIncremental = 11;
1719
+
1720
+ const modules = [isEqual, isEqual$1];
1721
+ const numbers = [RenderIncremental, RenderCss];
1722
+
1723
+ const diff = (oldState, newState) => {
1724
+ const diffResult = [];
1725
+ for (let i = 0; i < modules.length; i++) {
1726
+ const fn = modules[i];
1727
+ if (!fn(oldState, newState)) {
1728
+ diffResult.push(numbers[i]);
1729
+ }
1730
+ }
1731
+ return diffResult;
1732
+ };
1733
+
1734
+ const diff2 = uid => {
1735
+ const {
1736
+ newState,
1737
+ oldState
1738
+ } = get(uid);
1739
+ const result = diff(oldState, newState);
1740
+ return result;
1741
+ };
1742
+
1743
+ const createViewlet = async (viewletModuleId, editorUid, tabId, bounds, uri) => {
1744
+ await invoke('Layout.createViewlet', viewletModuleId, editorUid, tabId, bounds, uri);
1745
+ };
1746
+
1747
+ const handleAttach = async command => {
1748
+ // TODO find a better way to append editors
1749
+ const parentNodeSelector = '.editor-groups-container, .EditorGroup';
1750
+ await invoke('Layout.attachViewlet', parentNodeSelector, command.instanceId);
1751
+ };
1752
+
1753
+ const create$1 = () => {
1754
+ return Math.random();
1755
+ };
1756
+
1757
+ const updateTab = (state, tabId, updates) => {
1758
+ const {
1759
+ layout
1760
+ } = state;
1761
+ const {
1762
+ groups
1763
+ } = layout;
1764
+ const updatedGroups = groups.map(group => {
1765
+ const tabIndex = group.tabs.findIndex(t => t.id === tabId);
1766
+ if (tabIndex === -1) {
1767
+ return group;
1768
+ }
1769
+ const updatedTabs = group.tabs.map((tab, index) => {
1770
+ if (index === tabIndex) {
1771
+ return {
1470
1772
  ...tab,
1471
1773
  ...updates
1472
1774
  };
@@ -1689,387 +1991,94 @@ const executeViewletCommands = async commands => {
1689
1991
  }
1690
1992
  };
1691
1993
 
1692
- const closeTab = (state, groupId, tabId) => {
1994
+ const findTabById = (state, tabId) => {
1693
1995
  const {
1694
1996
  layout
1695
1997
  } = state;
1696
1998
  const {
1697
- activeGroupId,
1698
1999
  groups
1699
2000
  } = layout;
1700
-
1701
- // Find the group to close the tab from
1702
- const groupIndex = groups.findIndex(g => g.id === groupId);
1703
- if (groupIndex === -1) {
1704
- return state;
1705
- }
1706
- const group = groups[groupIndex];
1707
- // Check if the tab exists in the group
1708
- const tabWasRemoved = group.tabs.some(tab => tab.id === tabId);
1709
- if (!tabWasRemoved) {
1710
- return state;
1711
- }
1712
- const newGroups = groups.map(grp => {
1713
- if (grp.id === groupId) {
1714
- const newTabs = grp.tabs.filter(tab => tab.id !== tabId);
1715
- let newActiveTabId = grp.activeTabId;
1716
- if (grp.activeTabId === tabId) {
1717
- const tabIndex = grp.tabs.findIndex(tab => tab.id === tabId);
1718
- if (newTabs.length > 0) {
1719
- newActiveTabId = newTabs[Math.min(tabIndex, newTabs.length - 1)].id;
1720
- } else {
1721
- newActiveTabId = undefined;
1722
- }
1723
- }
2001
+ for (const group of groups) {
2002
+ const tab = group.tabs.find(t => t.id === tabId);
2003
+ if (tab) {
1724
2004
  return {
1725
- ...grp,
1726
- activeTabId: newActiveTabId,
1727
- isEmpty: newTabs.length === 0,
1728
- tabs: newTabs
2005
+ groupId: group.id,
2006
+ tab
1729
2007
  };
1730
2008
  }
1731
- return grp;
1732
- });
1733
-
1734
- // If the group has no tabs left after closing, remove the group
1735
- const groupIsNowEmpty = newGroups[groupIndex].tabs.length === 0;
1736
- if (groupIsNowEmpty) {
1737
- const remainingGroups = newGroups.filter(group => group.id !== groupId);
2009
+ }
2010
+ return undefined;
2011
+ };
1738
2012
 
1739
- // If there are remaining groups, redistribute sizes
1740
- if (remainingGroups.length > 0) {
1741
- const redistributedGroups = remainingGroups.map(grp => ({
1742
- ...grp,
1743
- size: Math.round(100 / remainingGroups.length)
1744
- }));
1745
- const newActiveGroupId = activeGroupId === groupId ? remainingGroups[0]?.id : activeGroupId;
1746
- return {
1747
- ...state,
1748
- layout: {
1749
- ...layout,
1750
- activeGroupId: newActiveGroupId,
1751
- groups: redistributedGroups
1752
- }
1753
- };
1754
- }
2013
+ // Counter for request IDs to handle race conditions
2014
+ let requestIdCounter = 0;
2015
+ const getNextRequestId = () => {
2016
+ return ++requestIdCounter;
2017
+ };
1755
2018
 
1756
- // If no remaining groups, return empty layout
1757
- return {
1758
- ...state,
1759
- layout: {
1760
- ...layout,
1761
- activeGroupId: undefined,
1762
- groups: []
1763
- }
2019
+ const startContentLoading = async (oldState, state, tabId, path, requestId) => {
2020
+ try {
2021
+ const getLatestState = () => {
2022
+ return get(state.uid).newState;
1764
2023
  };
2024
+ set(state.uid, oldState, state);
2025
+ const newState = await loadTabContentAsync(tabId, path, requestId, getLatestState);
2026
+ return newState;
2027
+ } catch {
2028
+ // Silently ignore errors - the tab may have been closed or the component unmounted
1765
2029
  }
1766
- return {
1767
- ...state,
1768
- layout: {
1769
- ...layout,
1770
- groups: newGroups
1771
- }
1772
- };
2030
+ return state;
1773
2031
  };
1774
2032
 
1775
- const closeActiveEditor = state => {
1776
- const {
1777
- layout
1778
- } = state;
1779
- const {
1780
- groups
1781
- } = layout;
1782
- const focusedGroup = groups.find(group => group.focused);
1783
- if (!focusedGroup) {
1784
- return state;
2033
+ const shouldLoadContent = tab => {
2034
+ // Load if:
2035
+ // - Has a path (file-based tab)
2036
+ // - Not already loaded or currently loading
2037
+ if (!tab.uri) {
2038
+ return false;
1785
2039
  }
1786
- const {
1787
- activeTabId
1788
- } = focusedGroup;
1789
- if (activeTabId === undefined) {
1790
- return state;
2040
+ if (tab.loadingState === 'loading') {
2041
+ return false;
1791
2042
  }
1792
- return closeTab(state, focusedGroup.id, activeTabId);
1793
- };
1794
-
1795
- const closeAll$1 = state => {
1796
- return {
1797
- ...state,
1798
- layout: {
1799
- ...state.layout,
1800
- activeGroupId: undefined,
1801
- groups: []
1802
- }
1803
- };
2043
+ if (tab.loadingState === 'loaded') {
2044
+ return false;
2045
+ }
2046
+ return true;
1804
2047
  };
1805
-
1806
- const closeFocusedTab = state => {
2048
+ const getActiveTabId$1 = state => {
1807
2049
  const {
1808
2050
  layout
1809
2051
  } = state;
1810
2052
  const {
2053
+ activeGroupId,
1811
2054
  groups
1812
2055
  } = layout;
1813
- const focusedGroup = groups.find(group => group.focused);
1814
- if (!focusedGroup) {
1815
- return state;
1816
- }
1817
- const {
1818
- activeTabId
1819
- } = focusedGroup;
1820
- if (activeTabId === undefined) {
1821
- return state;
1822
- }
1823
- return closeTab(state, focusedGroup.id, activeTabId);
2056
+ const activeGroup = groups.find(g => g.id === activeGroupId);
2057
+ return activeGroup?.activeTabId;
1824
2058
  };
1825
-
1826
- const closeOtherTabs = (state, groupId) => {
2059
+ const selectTab = async (state, groupIndex, index) => {
1827
2060
  const {
1828
- layout
2061
+ layout,
2062
+ uid
1829
2063
  } = state;
1830
2064
  const {
1831
- activeGroupId,
1832
2065
  groups
1833
2066
  } = layout;
1834
- const targetGroupId = groupId ?? activeGroupId;
1835
- if (targetGroupId === undefined) {
2067
+
2068
+ // Validate indexes
2069
+ if (groupIndex < 0 || groupIndex >= groups.length) {
1836
2070
  return state;
1837
2071
  }
1838
- const group = groups.find(g => g.id === targetGroupId);
1839
- if (!group) {
2072
+ const group = groups[groupIndex];
2073
+ if (index < 0 || index >= group.tabs.length) {
1840
2074
  return state;
1841
2075
  }
1842
- const {
1843
- activeTabId
1844
- } = group;
1845
- if (activeTabId === undefined) {
1846
- return state;
1847
- }
1848
- const newGroups = groups.map(g => {
1849
- if (g.id === targetGroupId) {
1850
- const newTabs = g.tabs.filter(tab => tab.id === activeTabId);
1851
- return {
1852
- ...g,
1853
- activeTabId,
1854
- isEmpty: newTabs.length === 0,
1855
- tabs: newTabs
1856
- };
1857
- }
1858
- return g;
1859
- });
1860
- return {
1861
- ...state,
1862
- layout: {
1863
- ...layout,
1864
- groups: newGroups
1865
- }
1866
- };
1867
- };
1868
-
1869
- const closeTabsRight = (state, groupId) => {
1870
- const {
1871
- layout
1872
- } = state;
1873
- const {
1874
- groups
1875
- } = layout;
1876
- const group = groups.find(g => g.id === groupId);
1877
- if (!group) {
1878
- return state;
1879
- }
1880
- const {
1881
- activeTabId,
1882
- tabs
1883
- } = group;
1884
- if (activeTabId === undefined) {
1885
- return state;
1886
- }
1887
- const activeTabIndex = tabs.findIndex(tab => tab.id === activeTabId);
1888
- if (activeTabIndex === -1) {
1889
- return state;
1890
- }
1891
- const newTabs = tabs.slice(0, activeTabIndex + 1);
1892
- if (newTabs.length === tabs.length) {
1893
- return state;
1894
- }
1895
- const newGroups = groups.map(g => {
1896
- if (g.id === groupId) {
1897
- return {
1898
- ...g,
1899
- isEmpty: newTabs.length === 0,
1900
- tabs: newTabs
1901
- };
1902
- }
1903
- return g;
1904
- });
1905
- return {
1906
- ...state,
1907
- layout: {
1908
- ...layout,
1909
- groups: newGroups
1910
- }
1911
- };
1912
- };
1913
-
1914
- const copyPath$1 = async (state, path) => {
1915
- string(path);
1916
- await invoke('ClipBoard.writeText', path);
1917
- return state;
1918
- };
1919
-
1920
- const copyRelativePath$1 = async (state, path) => {
1921
- string(path);
1922
- const relativePath = await invoke('Workspace.pathBaseName', path);
1923
- await invoke('ClipBoard.writeText', relativePath);
1924
- return state;
1925
- };
1926
-
1927
- const create = (uid, uri, x, y, width, height, platform, assetDir, tabHeight = 35) => {
1928
- const state = {
1929
- assetDir,
1930
- fileIconCache: {},
1931
- height,
1932
- iframes: [],
1933
- initial: true,
1934
- layout: {
1935
- activeGroupId: undefined,
1936
- direction: 'horizontal',
1937
- groups: []
1938
- },
1939
- platform,
1940
- splitButtonEnabled: false,
1941
- tabHeight,
1942
- uid,
1943
- width,
1944
- workspaceuri: uri,
1945
- x,
1946
- y
1947
- };
1948
- set(uid, state, state);
1949
- };
1950
-
1951
- const isEqual = (oldState, newState) => {
1952
- return oldState.layout === newState.layout;
1953
- };
1954
-
1955
- const RenderItems = 4;
1956
- const RenderIncremental = 11;
1957
-
1958
- const modules = [isEqual];
1959
- const numbers = [RenderIncremental];
1960
-
1961
- const diff = (oldState, newState) => {
1962
- const diffResult = [];
1963
- for (let i = 0; i < modules.length; i++) {
1964
- const fn = modules[i];
1965
- if (!fn(oldState, newState)) {
1966
- diffResult.push(numbers[i]);
1967
- }
1968
- }
1969
- return diffResult;
1970
- };
1971
-
1972
- const diff2 = uid => {
1973
- const {
1974
- newState,
1975
- oldState
1976
- } = get(uid);
1977
- const result = diff(oldState, newState);
1978
- return result;
1979
- };
1980
-
1981
- const createViewlet = async (viewletModuleId, editorUid, tabId, bounds, uri) => {
1982
- await invoke('Layout.createViewlet', viewletModuleId, editorUid, tabId, bounds, uri);
1983
- };
1984
-
1985
- const findTabById = (state, tabId) => {
1986
- const {
1987
- layout
1988
- } = state;
1989
- const {
1990
- groups
1991
- } = layout;
1992
- for (const group of groups) {
1993
- const tab = group.tabs.find(t => t.id === tabId);
1994
- if (tab) {
1995
- return {
1996
- groupId: group.id,
1997
- tab
1998
- };
1999
- }
2000
- }
2001
- return undefined;
2002
- };
2003
-
2004
- // Counter for request IDs to handle race conditions
2005
- let requestIdCounter = 0;
2006
- const getNextRequestId = () => {
2007
- return ++requestIdCounter;
2008
- };
2009
-
2010
- const startContentLoading = async (oldState, state, tabId, path, requestId) => {
2011
- try {
2012
- const getLatestState = () => {
2013
- return get(state.uid).newState;
2014
- };
2015
- set(state.uid, oldState, state);
2016
- const newState = await loadTabContentAsync(tabId, path, requestId, getLatestState);
2017
- return newState;
2018
- } catch {
2019
- // Silently ignore errors - the tab may have been closed or the component unmounted
2020
- }
2021
- return state;
2022
- };
2023
-
2024
- const shouldLoadContent = tab => {
2025
- // Load if:
2026
- // - Has a path (file-based tab)
2027
- // - Not already loaded or currently loading
2028
- if (!tab.uri) {
2029
- return false;
2030
- }
2031
- if (tab.loadingState === 'loading') {
2032
- return false;
2033
- }
2034
- if (tab.loadingState === 'loaded') {
2035
- return false;
2036
- }
2037
- return true;
2038
- };
2039
- const getActiveTabId$1 = state => {
2040
- const {
2041
- layout
2042
- } = state;
2043
- const {
2044
- activeGroupId,
2045
- groups
2046
- } = layout;
2047
- const activeGroup = groups.find(g => g.id === activeGroupId);
2048
- return activeGroup?.activeTabId;
2049
- };
2050
- const selectTab = async (state, groupIndex, index) => {
2051
- const {
2052
- layout,
2053
- uid
2054
- } = state;
2055
- const {
2056
- groups
2057
- } = layout;
2058
-
2059
- // Validate indexes
2060
- if (groupIndex < 0 || groupIndex >= groups.length) {
2061
- return state;
2062
- }
2063
- const group = groups[groupIndex];
2064
- if (index < 0 || index >= group.tabs.length) {
2065
- return state;
2066
- }
2067
- const tab = group.tabs[index];
2068
- const groupId = group.id;
2069
- const tabId = tab.id;
2070
-
2071
- // Return same state if this group and tab are already active
2072
- if (layout.activeGroupId === groupId && group.activeTabId === tabId) {
2076
+ const tab = group.tabs[index];
2077
+ const groupId = group.id;
2078
+ const tabId = tab.id;
2079
+
2080
+ // Return same state if this group and tab are already active
2081
+ if (layout.activeGroupId === groupId && group.activeTabId === tabId) {
2073
2082
  return state;
2074
2083
  }
2075
2084
 
@@ -2264,7 +2273,7 @@ const handleClick = async (state, name) => {
2264
2273
  return state;
2265
2274
  };
2266
2275
 
2267
- const closeEditorGroup = (state, groupId) => {
2276
+ const closeEditorGroup$1 = (state, groupId) => {
2268
2277
  const {
2269
2278
  layout
2270
2279
  } = state;
@@ -2331,148 +2340,27 @@ const handleClickTogglePreview = async state => {
2331
2340
  return state;
2332
2341
  };
2333
2342
 
2334
- const splitEditorGroup$1 = (state, groupId, direction) => {
2335
- const {
2336
- layout
2337
- } = state;
2338
- const {
2339
- groups
2340
- } = layout;
2341
- const sourceGroup = groups.find(group => group.id === groupId);
2342
- if (!sourceGroup) {
2343
- return state;
2344
- }
2345
- const newGroupId = create$1();
2346
- const isHorizontalSplit = direction === Left || direction === Right;
2347
- const newLayoutDirection = isHorizontalSplit ? 'horizontal' : 'vertical';
2348
- const updatedGroups = groups.map(group => {
2349
- if (group.id === groupId) {
2350
- return {
2351
- ...group,
2352
- focused: false,
2353
- size: 50
2354
- };
2355
- }
2356
- return group;
2357
- });
2358
- const newGroup = {
2359
- activeTabId: undefined,
2360
- focused: true,
2361
- id: newGroupId,
2362
- isEmpty: true,
2363
- size: 50,
2364
- tabs: []
2365
- };
2366
- let reorderedGroups;
2367
- if (direction === Right || direction === 'down') {
2368
- reorderedGroups = [...updatedGroups, newGroup];
2369
- } else {
2370
- const sourceIndex = updatedGroups.findIndex(group => group.id === groupId);
2371
- reorderedGroups = [...updatedGroups.slice(0, sourceIndex), newGroup, ...updatedGroups.slice(sourceIndex)];
2372
- }
2373
- return {
2374
- ...state,
2375
- layout: {
2376
- activeGroupId: newGroupId,
2377
- direction: newLayoutDirection,
2378
- groups: reorderedGroups
2379
- }
2380
- };
2381
- };
2382
-
2383
- const handleClickAction = async (state, action, rawGroupId) => {
2384
- if (!action) {
2385
- return state;
2386
- }
2387
- if (state.layout.activeGroupId === undefined) {
2388
- return state;
2389
- }
2390
- const activeGroup = getActiveGroup(state.layout.groups, state.layout.activeGroupId);
2391
- if (!activeGroup) {
2392
- return state;
2393
- }
2394
- switch (action) {
2395
- case 'close-group':
2396
- if (rawGroupId) {
2397
- const groupId = Number.parseInt(rawGroupId, 10);
2398
- if (!Number.isNaN(groupId)) {
2399
- return closeEditorGroup(state, groupId);
2400
- }
2401
- }
2402
- return state;
2403
- case 'split-right':
2404
- return splitEditorGroup$1(state, activeGroup.id, Right);
2405
- case 'toggle-preview':
2406
- return handleClickTogglePreview(state);
2407
- default:
2408
- return state;
2409
- }
2410
- };
2411
-
2412
- const handleClickCloseTab = (state, rawGroupIndex, rawIndex) => {
2413
- if (!rawGroupIndex || !rawIndex) {
2414
- return state;
2415
- }
2416
- const groupIndex = Number.parseInt(rawGroupIndex);
2417
- const index = Number.parseInt(rawIndex);
2418
- const {
2419
- layout
2420
- } = state;
2421
- const {
2422
- groups
2423
- } = layout;
2424
-
2425
- // Validate indexes
2426
- if (groupIndex < 0 || groupIndex >= groups.length) {
2427
- return state;
2428
- }
2429
- const group = groups[groupIndex];
2430
- if (index < 0 || index >= group.tabs.length) {
2431
- return state;
2432
- }
2433
- const tab = group.tabs[index];
2434
- const groupId = group.id;
2435
- const tabId = tab.id;
2436
- return closeTab(state, groupId, tabId);
2437
- };
2438
-
2439
- const handleClickTab = async (state, groupIndexRaw, indexRaw) => {
2440
- if (!groupIndexRaw || !indexRaw) {
2441
- return state;
2442
- }
2443
- const groupIndex = Number.parseInt(groupIndexRaw);
2444
- const index = Number.parseInt(indexRaw);
2445
- return selectTab(state, groupIndex, index);
2446
- };
2447
-
2448
- const handleDoubleClick = async state => {
2449
- // TODO: implement handleDoubleClick
2450
- return state;
2451
- };
2452
-
2453
- const MainTabs = 'MainTabs';
2454
-
2455
- const getBasename$1 = uri => {
2456
- const lastSlashIndex = uri.lastIndexOf('/');
2457
- if (lastSlashIndex === -1) {
2458
- return uri;
2459
- }
2460
- return uri.slice(lastSlashIndex + 1);
2461
- };
2462
- const getLabel = uri => {
2463
- if (uri.startsWith('settings://')) {
2464
- return 'Settings';
2465
- }
2466
- if (uri.startsWith('simple-browser://')) {
2467
- return 'Simple Browser';
2468
- }
2469
- if (uri.startsWith('language-models://')) {
2470
- return 'Language Models';
2471
- }
2472
- return getBasename$1(uri);
2473
- };
2474
-
2475
- const createEmptyGroup = (state, uri, requestId) => {
2343
+ const getBasename$1 = uri => {
2344
+ const lastSlashIndex = uri.lastIndexOf('/');
2345
+ if (lastSlashIndex === -1) {
2346
+ return uri;
2347
+ }
2348
+ return uri.slice(lastSlashIndex + 1);
2349
+ };
2350
+ const getLabel = uri => {
2351
+ if (uri.startsWith('settings://')) {
2352
+ return 'Settings';
2353
+ }
2354
+ if (uri.startsWith('simple-browser://')) {
2355
+ return 'Simple Browser';
2356
+ }
2357
+ if (uri.startsWith('language-models://')) {
2358
+ return 'Language Models';
2359
+ }
2360
+ return getBasename$1(uri);
2361
+ };
2362
+
2363
+ const createEmptyGroup = (state, uri, requestId) => {
2476
2364
  const {
2477
2365
  layout
2478
2366
  } = state;
@@ -2513,18 +2401,6 @@ const createEmptyGroup = (state, uri, requestId) => {
2513
2401
  };
2514
2402
  };
2515
2403
 
2516
- const getActiveTabId = state => {
2517
- const {
2518
- layout
2519
- } = state;
2520
- const {
2521
- activeGroupId,
2522
- groups
2523
- } = layout;
2524
- const activeGroup = groups.find(g => g.id === activeGroupId);
2525
- return activeGroup?.activeTabId;
2526
- };
2527
-
2528
2404
  const openTab = (state, groupId, tab) => {
2529
2405
  const newTab = 'id' in tab && tab.id !== undefined ? tab : {
2530
2406
  ...tab,
@@ -2557,202 +2433,96 @@ const openTab = (state, groupId, tab) => {
2557
2433
  };
2558
2434
  };
2559
2435
 
2560
- const newFile = async state => {
2561
- object(state);
2436
+ const ensureActiveGroup = (state, uri) => {
2437
+ // Find the active group (by activeGroupId or focused flag)
2562
2438
  const {
2563
- layout,
2564
- uid
2439
+ layout
2565
2440
  } = state;
2566
2441
  const {
2567
2442
  activeGroupId,
2568
2443
  groups
2569
2444
  } = layout;
2570
-
2571
- // Find the active group
2572
2445
  const activeGroup = activeGroupId === undefined ? groups.find(group => group.focused) : groups.find(group => group.id === activeGroupId);
2573
2446
 
2574
- // Prepare initial state
2575
- let newState = state;
2576
- let targetGroupId;
2577
- if (activeGroup) {
2578
- targetGroupId = activeGroup.id;
2579
- } else {
2580
- // No active group, create an empty one
2581
- newState = createEmptyGroup(state, '');
2582
- const updatedActiveGroupId = newState.layout.activeGroupId;
2583
- if (!updatedActiveGroupId) {
2584
- return state;
2585
- }
2586
- targetGroupId = updatedActiveGroupId;
2447
+ // Generate a request ID for content loading
2448
+ getNextRequestId();
2587
2449
 
2588
- // Remove the tab that createEmptyGroup created, we'll add our own
2589
- newState = {
2590
- ...newState,
2591
- layout: {
2592
- ...newState.layout,
2593
- groups: newState.layout.groups.map(group => {
2594
- if (group.id === targetGroupId) {
2595
- return {
2596
- ...group,
2597
- activeTabId: undefined,
2598
- tabs: []
2599
- };
2600
- }
2601
- return group;
2602
- })
2603
- }
2450
+ // If no active group exists, create one
2451
+ let newState;
2452
+ if (activeGroup) {
2453
+ // Create a new tab with the URI in the active group
2454
+ const title = getLabel(uri);
2455
+ const tabId = create$1();
2456
+ const editorUid = create$1();
2457
+ const newTab = {
2458
+ editorType: 'text',
2459
+ editorUid,
2460
+ errorMessage: '',
2461
+ icon: '',
2462
+ id: tabId,
2463
+ isDirty: false,
2464
+ language: '',
2465
+ loadingState: 'loading',
2466
+ title,
2467
+ uri: uri
2604
2468
  };
2469
+ newState = openTab(state, activeGroup.id, newTab);
2470
+ } else {
2471
+ newState = createEmptyGroup(state, uri);
2605
2472
  }
2473
+ return newState;
2474
+ };
2606
2475
 
2607
- // Get previous active tab ID for viewlet switching
2608
- getActiveTabId(newState);
2609
-
2610
- // Create a new empty tab
2611
- const tabId = create$1();
2612
- const editorUid = create$1();
2613
- const newTab = {
2614
- editorType: 'text',
2615
- editorUid,
2616
- errorMessage: '',
2617
- icon: '',
2618
- id: tabId,
2619
- isDirty: false,
2620
- language: 'plaintext',
2621
- loadingState: 'loading',
2622
- title: 'Untitled',
2623
- uri: 'untitled:///1'
2624
- };
2625
- const stateWithNewTab = openTab(newState, targetGroupId, newTab);
2626
-
2627
- // Calculate bounds: use main area bounds minus tab height
2628
- const bounds = {
2629
- height: stateWithNewTab.height - stateWithNewTab.tabHeight,
2630
- width: stateWithNewTab.width,
2631
- x: stateWithNewTab.x,
2632
- y: stateWithNewTab.y + stateWithNewTab.tabHeight
2633
- };
2634
- const stateWithViewlet = createViewletForTab(stateWithNewTab, tabId);
2635
- let intermediateState = stateWithViewlet;
2636
-
2637
- // Switch viewlet (detach old, attach new if ready)
2476
+ const findTabByUri = (state, uri) => {
2638
2477
  const {
2639
- newState: switchedState
2640
- } = switchViewlet(intermediateState);
2641
- intermediateState = switchedState;
2642
- set(uid, state, intermediateState);
2643
-
2644
- // Get the tab to extract editorUid
2645
- const tabWithViewlet = findTabById(intermediateState, tabId);
2646
- if (!tabWithViewlet) {
2647
- return intermediateState;
2648
- }
2478
+ layout
2479
+ } = state;
2649
2480
  const {
2650
- editorUid: actualEditorUid
2651
- } = tabWithViewlet.tab;
2652
- if (actualEditorUid === -1) {
2653
- throw new Error(`invalid editorUid`);
2654
- }
2655
- await createViewlet('Editor', actualEditorUid, tabId, bounds, newTab.uri || '');
2656
-
2657
- // After viewlet is created, get the latest state and mark it as ready
2658
- const {
2659
- newState: latestState
2660
- } = get(uid);
2661
- const readyState = handleViewletReady(latestState, actualEditorUid);
2662
- return readyState;
2663
- };
2664
-
2665
- const handleHeaderDoubleClick = async (state, className, groupIndexRaw) => {
2666
- if (className !== MainTabs) {
2667
- return state;
2481
+ groups
2482
+ } = layout;
2483
+ for (const group of groups) {
2484
+ const tab = group.tabs.find(t => t.uri === uri);
2485
+ if (tab) {
2486
+ return {
2487
+ groupId: group.id,
2488
+ tab
2489
+ };
2490
+ }
2668
2491
  }
2669
- return newFile(state);
2492
+ return undefined;
2670
2493
  };
2671
2494
 
2672
- const handleModifiedStatusChange = (state, uri, newStatus) => {
2495
+ const focusEditorGroup = (state, groupId) => {
2673
2496
  const {
2674
2497
  layout
2675
2498
  } = state;
2676
2499
  const {
2677
2500
  groups
2678
2501
  } = layout;
2679
- const updatedGroups = groups.map(group => {
2680
- return {
2681
- ...group,
2682
- tabs: group.tabs.map(tab => {
2683
- if (tab.uri === uri) {
2684
- return {
2685
- ...tab,
2686
- isDirty: newStatus
2687
- };
2688
- }
2689
- return tab;
2690
- })
2691
- };
2692
- });
2502
+ const updatedGroups = groups.map(group => ({
2503
+ ...group,
2504
+ focused: group.id === groupId
2505
+ }));
2693
2506
  return {
2694
2507
  ...state,
2695
2508
  layout: {
2696
2509
  ...layout,
2510
+ activeGroupId: groupId,
2697
2511
  groups: updatedGroups
2698
2512
  }
2699
2513
  };
2700
2514
  };
2701
2515
 
2702
- const handleResize = async (state, dimensions) => {
2703
- const {
2704
- height,
2705
- width,
2706
- x,
2707
- y
2708
- } = dimensions;
2709
-
2710
- // Resize all editor children to their new bounds
2516
+ const getActiveTabId = state => {
2711
2517
  const {
2712
- layout,
2713
- tabHeight,
2714
- uid
2518
+ layout
2715
2519
  } = state;
2716
2520
  const {
2521
+ activeGroupId,
2717
2522
  groups
2718
2523
  } = layout;
2719
- const contentHeight = height - tabHeight;
2720
- const allResizeCommands = [];
2721
- for (const group of groups) {
2722
- for (const tab of group.tabs) {
2723
- if (tab.editorUid !== -1) {
2724
- try {
2725
- const resizeCommands = await invoke('Viewlet.resize', tab.editorUid, {
2726
- height: contentHeight,
2727
- width,
2728
- x,
2729
- y: y + tabHeight
2730
- });
2731
- allResizeCommands.push(...resizeCommands);
2732
- } catch {
2733
- // ignore
2734
- }
2735
- }
2736
- }
2737
- }
2738
- allResizeCommands.push(['Viewlet.setBounds', uid, x, y, width, height]);
2739
- return allResizeCommands;
2740
- };
2741
-
2742
- const show2 = async (uid, menuId, x, y, args) => {
2743
- await showContextMenu2(uid, menuId, x, y, args);
2744
- };
2745
-
2746
- const handleTabContextMenu = async (state, button, x, y) => {
2747
- number(x);
2748
- number(y);
2749
- const {
2750
- uid
2751
- } = state;
2752
- await show2(uid, Tab, x, y, {
2753
- menuId: Tab
2754
- });
2755
- return state;
2524
+ const activeGroup = groups.find(g => g.id === activeGroupId);
2525
+ return activeGroup?.activeTabId;
2756
2526
  };
2757
2527
 
2758
2528
  const getIconsCached = (dirents, fileIconCache) => {
@@ -2842,223 +2612,523 @@ const getFileIconsForTabs = async (tabs, fileIconCache) => {
2842
2612
  };
2843
2613
  };
2844
2614
 
2845
- const getAllTabs = layout => {
2846
- const allTabs = [];
2847
- for (const group of layout.groups) {
2848
- allTabs.push(...group.tabs);
2615
+ const getOptionUriOptions = options => {
2616
+ let uri = '';
2617
+ if (typeof options === 'string') {
2618
+ uri = options;
2619
+ } else {
2620
+ const {
2621
+ uri: optionsUri
2622
+ } = options;
2623
+ uri = optionsUri;
2849
2624
  }
2850
- return allTabs;
2625
+ return uri;
2851
2626
  };
2852
2627
 
2853
- const loadFileIcons = async state => {
2628
+ const getViewletModuleId = async uri => {
2629
+ // Query RendererWorker for viewlet module ID (optional, may fail in tests)
2630
+ let viewletModuleId;
2854
2631
  try {
2855
- const allTabs = getAllTabs(state.layout);
2856
- const {
2857
- newFileIconCache
2858
- } = await getFileIconsForTabs(allTabs, state.fileIconCache);
2859
-
2860
- // Update tabs with their icons
2861
- const updatedLayout = {
2862
- ...state.layout,
2863
- groups: state.layout.groups.map(group => ({
2864
- ...group,
2865
- tabs: group.tabs.map(tab => ({
2866
- ...tab,
2867
- icon: newFileIconCache[tab.uri || '']
2868
- }))
2869
- }))
2870
- };
2871
- return {
2872
- fileIconCache: newFileIconCache,
2873
- updatedLayout
2874
- };
2632
+ viewletModuleId = await invoke('Layout.getModuleId', uri);
2875
2633
  } catch {
2876
- // If icon request fails, continue without icons
2877
- return {
2878
- fileIconCache: state.fileIconCache,
2879
- updatedLayout: state.layout
2880
- };
2634
+ // Viewlet creation is optional - silently ignore if RendererWorker isn't available
2881
2635
  }
2636
+ return viewletModuleId;
2882
2637
  };
2883
2638
 
2884
- const handleUriChange = async (state, oldUri, newUri) => {
2639
+ const switchTab = (state, groupId, tabId) => {
2885
2640
  const {
2886
2641
  layout
2887
2642
  } = state;
2888
2643
  const {
2889
2644
  groups
2890
2645
  } = layout;
2891
- const newTitle = getLabel(newUri);
2892
2646
  const updatedGroups = groups.map(group => {
2893
- return {
2894
- ...group,
2895
- tabs: group.tabs.map(tab => {
2896
- if (tab.uri === oldUri) {
2897
- return {
2898
- ...tab,
2899
- title: newTitle,
2900
- uri: newUri
2901
- };
2902
- }
2903
- return tab;
2904
- })
2905
- };
2647
+ if (group.id === groupId) {
2648
+ const tabExists = group.tabs.some(tab => tab.id === tabId);
2649
+ if (tabExists) {
2650
+ return {
2651
+ ...group,
2652
+ activeTabId: tabId
2653
+ };
2654
+ }
2655
+ }
2656
+ return group;
2906
2657
  });
2907
- const stateWithUpdatedUri = {
2658
+ return {
2908
2659
  ...state,
2909
2660
  layout: {
2910
2661
  ...layout,
2911
2662
  groups: updatedGroups
2912
2663
  }
2913
2664
  };
2914
-
2915
- // Load icons for the new URI
2916
- const result = await loadFileIcons(stateWithUpdatedUri);
2917
- return {
2918
- ...stateWithUpdatedUri,
2919
- fileIconCache: result.fileIconCache,
2920
- layout: result.updatedLayout
2921
- };
2922
2665
  };
2923
2666
 
2924
- const handleWorkspaceChange = state => {
2925
- return {
2926
- ...state,
2927
- layout: {
2928
- ...state.layout,
2929
- activeGroupId: undefined,
2930
- groups: []
2931
- }
2932
- };
2933
- };
2667
+ const openUri = async (state, options) => {
2668
+ object(state);
2669
+ const {
2670
+ uid
2671
+ } = state;
2672
+ const uri = getOptionUriOptions(options);
2934
2673
 
2935
- const id = 7201;
2936
- const sendMessagePortToExtensionHostWorker = async port => {
2937
- await sendMessagePortToExtensionHostWorker$1(port, id);
2938
- };
2674
+ // Check if a tab with this URI already exists in the passed-in state
2675
+ const existingTab = findTabByUri(state, uri);
2676
+ const shouldRetryExistingTab = existingTab && existingTab.tab.loadingState === 'error';
2677
+ if (existingTab && !shouldRetryExistingTab) {
2678
+ // Tab exists, switch to it and focus its group
2679
+ const focusedState = focusEditorGroup(state, existingTab.groupId);
2680
+ return switchTab(focusedState, existingTab.groupId, existingTab.tab.id);
2681
+ }
2939
2682
 
2940
- const createExtensionHostRpc = async () => {
2941
- try {
2942
- const rpc = await TransferMessagePortRpcParent.create({
2943
- commandMap: {},
2944
- send: sendMessagePortToExtensionHostWorker
2683
+ // Get previous active tab ID for viewlet switching
2684
+ const previousTabId = getActiveTabId(state);
2685
+
2686
+ // Check if there's existing state in the global store
2687
+ const stateFromStore = get(uid);
2688
+ let currentState;
2689
+ if (stateFromStore) {
2690
+ const storedState = stateFromStore.newState;
2691
+ // Use the stored state if it has more tabs than the passed-in state
2692
+ // (indicating concurrent calls have already added tabs)
2693
+ // Otherwise use the passed-in state (test setup with initial data)
2694
+ const storedTabCount = storedState.layout.groups.reduce((sum, g) => sum + g.tabs.length, 0);
2695
+ const passedTabCount = state.layout.groups.reduce((sum, g) => sum + g.tabs.length, 0);
2696
+ if (storedTabCount > passedTabCount) {
2697
+ // Stored state has more tabs - concurrent calls have added tabs
2698
+ currentState = storedState;
2699
+ } else {
2700
+ // Passed-in state has same or more tabs, use it (likely fresh test setup)
2701
+ currentState = state;
2702
+ set(uid, state, state);
2703
+ }
2704
+ } else {
2705
+ // No state in store yet, register the passed-in state
2706
+ currentState = state;
2707
+ set(uid, state, state);
2708
+ }
2709
+ let tabId;
2710
+ let stateWithTab;
2711
+ if (shouldRetryExistingTab && existingTab) {
2712
+ const focusedState = focusEditorGroup(currentState, existingTab.groupId);
2713
+ stateWithTab = updateTab(focusedState, existingTab.tab.id, {
2714
+ errorMessage: '',
2715
+ loadingState: 'loading'
2945
2716
  });
2946
- return rpc;
2947
- } catch (error) {
2948
- throw new VError(error, `Failed to create extension host rpc`);
2717
+ tabId = existingTab.tab.id;
2718
+ } else {
2719
+ // Add tab to state BEFORE any async calls to prevent race conditions
2720
+ stateWithTab = ensureActiveGroup(currentState, uri);
2721
+ tabId = getActiveTabId(stateWithTab);
2949
2722
  }
2950
- };
2951
2723
 
2952
- const initialize = async () => {
2953
- const rpc = await createExtensionHostRpc();
2954
- set$3(rpc);
2955
- };
2724
+ // Save state immediately after adding tab or retrying
2725
+ set(uid, state, stateWithTab);
2726
+ try {
2727
+ const viewletModuleId = await getViewletModuleId(uri);
2956
2728
 
2957
- const isValidTab = tab => {
2958
- return tab && typeof tab.id === 'number' && typeof tab.title === 'string' && typeof tab.isDirty === 'boolean' && typeof tab.editorUid === 'number' && typeof tab.icon === 'string' && (tab.editorType === 'text' || tab.editorType === 'custom');
2959
- };
2729
+ // After async call, get the latest state to account for any concurrent changes
2730
+ const {
2731
+ newState: stateAfterModuleId
2732
+ } = get(uid);
2733
+ if (!viewletModuleId) {
2734
+ return updateTab(stateAfterModuleId, tabId, {
2735
+ errorMessage: 'Could not determine editor type for this URI',
2736
+ loadingState: 'error'
2737
+ });
2738
+ }
2960
2739
 
2961
- const isValidEditorGroup = group => {
2962
- return group && typeof group.id === 'number' && Array.isArray(group.tabs) && group.tabs.every(isValidTab) && (group.activeTabId === undefined || typeof group.activeTabId === 'number') && typeof group.focused === 'boolean' && typeof group.size === 'number' && group.size > 0 && typeof group.isEmpty === 'boolean';
2963
- };
2740
+ // Calculate bounds: use main area bounds minus tab height
2741
+ const bounds = {
2742
+ height: stateAfterModuleId.height - stateAfterModuleId.tabHeight,
2743
+ width: stateAfterModuleId.width,
2744
+ x: stateAfterModuleId.x,
2745
+ y: stateAfterModuleId.y + stateAfterModuleId.tabHeight
2746
+ };
2747
+ const stateWithViewlet = createViewletForTab(stateAfterModuleId, tabId, viewletModuleId, bounds);
2748
+ let intermediateState1 = stateWithViewlet;
2964
2749
 
2965
- const isValidMainAreaLayout = layout => {
2966
- if (!layout || typeof layout !== 'object') {
2967
- return false;
2750
+ // Switch viewlet (detach old, attach new if ready)
2751
+ const {
2752
+ newState: switchedState
2753
+ } = switchViewlet(intermediateState1, previousTabId, tabId);
2754
+ intermediateState1 = switchedState;
2755
+ set(uid, state, intermediateState1);
2756
+
2757
+ // Get the tab to extract editorUid
2758
+ const tabWithViewlet = findTabById(intermediateState1, tabId);
2759
+ if (!tabWithViewlet) {
2760
+ return intermediateState1;
2761
+ }
2762
+ const {
2763
+ editorUid
2764
+ } = tabWithViewlet.tab;
2765
+ if (editorUid === -1) {
2766
+ throw new Error(`invalid editorUid`);
2767
+ }
2768
+ await createViewlet(viewletModuleId, editorUid, tabId, bounds, uri);
2769
+
2770
+ // After viewlet is created, get the latest state and mark it as ready
2771
+ // This ensures we have any state updates that occurred during viewlet creation
2772
+ const {
2773
+ newState: latestState
2774
+ } = get(uid);
2775
+
2776
+ // Attachment is handled automatically by virtual DOM reference nodes
2777
+ const readyState = handleViewletReady(latestState, editorUid);
2778
+
2779
+ // Save state before async icon request
2780
+ set(uid, state, readyState);
2781
+
2782
+ // Request file icon for the newly opened tab
2783
+ try {
2784
+ const newTab = findTabById(readyState, tabId);
2785
+ if (newTab && newTab.tab.uri) {
2786
+ const {
2787
+ newFileIconCache
2788
+ } = await getFileIconsForTabs([newTab.tab], readyState.fileIconCache);
2789
+
2790
+ // After async call, get the latest state again
2791
+ const {
2792
+ newState: stateBeforeIconUpdate
2793
+ } = get(uid);
2794
+ const icon = newFileIconCache[newTab.tab.uri] || '';
2795
+
2796
+ // Update the tab with the icon in the latest state
2797
+ const stateWithIcon = {
2798
+ ...stateBeforeIconUpdate,
2799
+ fileIconCache: newFileIconCache,
2800
+ layout: {
2801
+ ...stateBeforeIconUpdate.layout,
2802
+ groups: stateBeforeIconUpdate.layout.groups.map(group => ({
2803
+ ...group,
2804
+ tabs: group.tabs.map(tab => tab.id === tabId ? {
2805
+ ...tab,
2806
+ icon
2807
+ } : tab)
2808
+ }))
2809
+ }
2810
+ };
2811
+
2812
+ // Save the state with icon update so concurrent calls can see it
2813
+ set(uid, state, stateWithIcon);
2814
+ return stateWithIcon;
2815
+ }
2816
+ } catch {
2817
+ // If icon request fails, continue without icon
2818
+ }
2819
+
2820
+ // Get final latest state
2821
+ const {
2822
+ newState: finalState
2823
+ } = get(uid);
2824
+ return finalState;
2825
+ } catch (error) {
2826
+ const {
2827
+ newState: latestState
2828
+ } = get(uid);
2829
+ const errorMessage = error instanceof Error ? error.message : 'Failed to open URI';
2830
+ const errorState = updateTab(latestState, tabId, {
2831
+ errorMessage,
2832
+ loadingState: 'error'
2833
+ });
2834
+ set(uid, state, errorState);
2835
+ return errorState;
2968
2836
  }
2969
- const layoutObj = layout;
2970
- if (layoutObj.activeGroupId !== undefined && typeof layoutObj.activeGroupId !== 'number') {
2971
- return false;
2837
+ };
2838
+
2839
+ const retryOpen = async state => {
2840
+ const activeTabData = getActiveTab(state);
2841
+ if (!activeTabData) {
2842
+ return state;
2972
2843
  }
2973
- if (layoutObj.direction !== 'horizontal' && layoutObj.direction !== 'vertical') {
2974
- return false;
2844
+ const {
2845
+ tab
2846
+ } = activeTabData;
2847
+ if (!tab.uri) {
2848
+ return state;
2975
2849
  }
2976
- if (!Array.isArray(layoutObj.groups)) {
2977
- return false;
2850
+ return openUri(state, tab.uri);
2851
+ };
2852
+
2853
+ const splitEditorGroup$1 = (state, groupId, direction) => {
2854
+ const {
2855
+ layout
2856
+ } = state;
2857
+ const {
2858
+ groups
2859
+ } = layout;
2860
+ const sourceGroup = groups.find(group => group.id === groupId);
2861
+ if (!sourceGroup) {
2862
+ return state;
2978
2863
  }
2979
- if (!layoutObj.groups.every(isValidEditorGroup)) {
2980
- return false;
2864
+ const newGroupId = create$1();
2865
+ const isHorizontalSplit = direction === Left || direction === Right;
2866
+ const newLayoutDirection = isHorizontalSplit ? 'horizontal' : 'vertical';
2867
+ const updatedGroups = groups.map(group => {
2868
+ if (group.id === groupId) {
2869
+ return {
2870
+ ...group,
2871
+ focused: false,
2872
+ size: 50
2873
+ };
2874
+ }
2875
+ return group;
2876
+ });
2877
+ const newGroup = {
2878
+ activeTabId: undefined,
2879
+ focused: true,
2880
+ id: newGroupId,
2881
+ isEmpty: true,
2882
+ size: 50,
2883
+ tabs: []
2884
+ };
2885
+ let reorderedGroups;
2886
+ if (direction === Right || direction === 'down') {
2887
+ reorderedGroups = [...updatedGroups, newGroup];
2888
+ } else {
2889
+ const sourceIndex = updatedGroups.findIndex(group => group.id === groupId);
2890
+ reorderedGroups = [...updatedGroups.slice(0, sourceIndex), newGroup, ...updatedGroups.slice(sourceIndex)];
2981
2891
  }
2982
- return true;
2892
+ return {
2893
+ ...state,
2894
+ layout: {
2895
+ activeGroupId: newGroupId,
2896
+ direction: newLayoutDirection,
2897
+ groups: reorderedGroups
2898
+ }
2899
+ };
2983
2900
  };
2984
2901
 
2985
- const tryRestoreLayout = savedState => {
2986
- if (savedState === undefined || savedState === null) {
2987
- return undefined;
2902
+ const handleClickAction = async (state, action, rawGroupId) => {
2903
+ if (!action) {
2904
+ return state;
2988
2905
  }
2989
- if (typeof savedState !== 'object') {
2990
- return undefined;
2906
+ if (state.layout.activeGroupId === undefined) {
2907
+ return state;
2991
2908
  }
2909
+ const activeGroup = getActiveGroup(state.layout.groups, state.layout.activeGroupId);
2910
+ if (!activeGroup) {
2911
+ return state;
2912
+ }
2913
+ switch (action) {
2914
+ case 'close-group':
2915
+ if (rawGroupId) {
2916
+ const groupId = Number.parseInt(rawGroupId, 10);
2917
+ if (!Number.isNaN(groupId)) {
2918
+ return closeEditorGroup$1(state, groupId);
2919
+ }
2920
+ }
2921
+ return state;
2922
+ case 'retry-open':
2923
+ return retryOpen(state);
2924
+ case 'split-right':
2925
+ return splitEditorGroup$1(state, activeGroup.id, Right);
2926
+ case 'toggle-preview':
2927
+ return handleClickTogglePreview(state);
2928
+ default:
2929
+ return state;
2930
+ }
2931
+ };
2932
+
2933
+ const handleClickCloseTab = (state, rawGroupIndex, rawIndex) => {
2934
+ if (!rawGroupIndex || !rawIndex) {
2935
+ return state;
2936
+ }
2937
+ const groupIndex = Number.parseInt(rawGroupIndex);
2938
+ const index = Number.parseInt(rawIndex);
2992
2939
  const {
2993
2940
  layout
2994
- } = savedState;
2995
- if (!isValidMainAreaLayout(layout)) {
2996
- return undefined;
2941
+ } = state;
2942
+ const {
2943
+ groups
2944
+ } = layout;
2945
+
2946
+ // Validate indexes
2947
+ if (groupIndex < 0 || groupIndex >= groups.length) {
2948
+ return state;
2949
+ }
2950
+ const group = groups[groupIndex];
2951
+ if (index < 0 || index >= group.tabs.length) {
2952
+ return state;
2997
2953
  }
2954
+ const tab = group.tabs[index];
2955
+ const groupId = group.id;
2956
+ const tabId = tab.id;
2957
+ return closeTab(state, groupId, tabId);
2958
+ };
2998
2959
 
2999
- // Normalize all tabs to have editorUid: -1 so SelectTab will create viewlets
3000
- // Mark all restored tabs as not dirty
3001
- const normalizedLayout = {
3002
- ...layout,
3003
- groups: layout.groups.map(group => ({
3004
- ...group,
3005
- tabs: group.tabs.map(tab => ({
3006
- ...tab,
3007
- editorUid: -1,
3008
- isDirty: false
3009
- }))
3010
- }))
3011
- };
3012
- return normalizedLayout;
2960
+ const handleClickTab = async (state, groupIndexRaw, indexRaw) => {
2961
+ if (!groupIndexRaw || !indexRaw) {
2962
+ return state;
2963
+ }
2964
+ const groupIndex = Number.parseInt(groupIndexRaw);
2965
+ const index = Number.parseInt(indexRaw);
2966
+ return selectTab(state, groupIndex, index);
3013
2967
  };
3014
2968
 
3015
- const createViewlets = async (layout, viewletModuleIds, bounds) => {
3016
- const editorUids = {};
3017
- for (const group of layout.groups) {
3018
- const activeTab = group.tabs.find(tab => tab.id === group.activeTabId);
3019
- if (activeTab && viewletModuleIds[activeTab.id]) {
3020
- const editorUid = activeTab.editorUid === -1 ? create$1() : activeTab.editorUid;
3021
- editorUids[activeTab.id] = editorUid;
3022
- await createViewlet(viewletModuleIds[activeTab.id], editorUid, activeTab.id, bounds, activeTab.uri);
2969
+ const handleDoubleClick = async state => {
2970
+ // TODO: implement handleDoubleClick
2971
+ return state;
2972
+ };
2973
+
2974
+ const EditorGroupHeader = 'EditorGroupHeader';
2975
+ const EmptyGroupCloseButton = 'EmptyGroupCloseButton';
2976
+ const EditorGroup = 'EditorGroup';
2977
+ const EditorGroupsHorizontal = 'EditorGroupsHorizontal';
2978
+ const EditorGroupsVertical = 'EditorGroupsVertical';
2979
+ const EditorContainer = 'EditorContainer';
2980
+ const EditorGroupActions = 'EditorGroupActions';
2981
+ const EditorGroupActionButton = 'EditorGroupActionButton';
2982
+ const SplitEditorGroupButton = 'SplitEditorGroupButton';
2983
+ const MaskIconPreview = 'MaskIcon MaskIconPreview';
2984
+ const MaskIconCircleFilled = 'MaskIcon MaskIconCircleFilled';
2985
+ const MaskIconClose = 'MaskIcon MaskIconClose';
2986
+ const TextEditor = 'TextEditor';
2987
+ const TextEditorLoading = 'TextEditor TextEditor--loading';
2988
+ const EditorContentLoading = 'EditorContent EditorContent--loading';
2989
+ const TextEditorError = 'TextEditor TextEditor--error';
2990
+ const EditorContentError = 'EditorContent EditorContent--error';
2991
+ const Main = 'Main';
2992
+ const EDITOR_GROUPS_CONTAINER = 'editor-groups-container';
2993
+ const TabIcon = 'TabIcon';
2994
+ const TabTitle = 'TabTitle';
2995
+ const Button = 'Button';
2996
+ const ButtonSecondary = 'ButtonSecondary';
2997
+ const EditorContent = 'EditorContent';
2998
+ const EditorTabCloseButton = 'EditorTabCloseButton';
2999
+ const IconButton = 'IconButton';
3000
+ const MainTab = 'MainTab';
3001
+ const MainTabs = 'MainTabs';
3002
+ const MainTabModified = 'MainTabModified';
3003
+ const MainTabSelected = 'MainTabSelected';
3004
+
3005
+ const newFile = async state => {
3006
+ object(state);
3007
+ const {
3008
+ layout,
3009
+ uid
3010
+ } = state;
3011
+ const {
3012
+ activeGroupId,
3013
+ groups
3014
+ } = layout;
3015
+
3016
+ // Find the active group
3017
+ const activeGroup = activeGroupId === undefined ? groups.find(group => group.focused) : groups.find(group => group.id === activeGroupId);
3018
+
3019
+ // Prepare initial state
3020
+ let newState = state;
3021
+ let targetGroupId;
3022
+ if (activeGroup) {
3023
+ targetGroupId = activeGroup.id;
3024
+ } else {
3025
+ // No active group, create an empty one
3026
+ newState = createEmptyGroup(state, '');
3027
+ const updatedActiveGroupId = newState.layout.activeGroupId;
3028
+ if (!updatedActiveGroupId) {
3029
+ return state;
3023
3030
  }
3031
+ targetGroupId = updatedActiveGroupId;
3032
+
3033
+ // Remove the tab that createEmptyGroup created, we'll add our own
3034
+ newState = {
3035
+ ...newState,
3036
+ layout: {
3037
+ ...newState.layout,
3038
+ groups: newState.layout.groups.map(group => {
3039
+ if (group.id === targetGroupId) {
3040
+ return {
3041
+ ...group,
3042
+ activeTabId: undefined,
3043
+ tabs: []
3044
+ };
3045
+ }
3046
+ return group;
3047
+ })
3048
+ }
3049
+ };
3024
3050
  }
3025
- return editorUids;
3026
- };
3027
3051
 
3028
- const getViewletModuleId = async uri => {
3029
- // Query RendererWorker for viewlet module ID (optional, may fail in tests)
3030
- let viewletModuleId;
3031
- try {
3032
- viewletModuleId = await invoke('Layout.getModuleId', uri);
3033
- } catch {
3034
- // Viewlet creation is optional - silently ignore if RendererWorker isn't available
3052
+ // Get previous active tab ID for viewlet switching
3053
+ getActiveTabId(newState);
3054
+
3055
+ // Create a new empty tab
3056
+ const tabId = create$1();
3057
+ const editorUid = create$1();
3058
+ const newTab = {
3059
+ editorType: 'text',
3060
+ editorUid,
3061
+ errorMessage: '',
3062
+ icon: '',
3063
+ id: tabId,
3064
+ isDirty: false,
3065
+ language: 'plaintext',
3066
+ loadingState: 'loading',
3067
+ title: 'Untitled',
3068
+ uri: 'untitled:///1'
3069
+ };
3070
+ const stateWithNewTab = openTab(newState, targetGroupId, newTab);
3071
+
3072
+ // Calculate bounds: use main area bounds minus tab height
3073
+ const bounds = {
3074
+ height: stateWithNewTab.height - stateWithNewTab.tabHeight,
3075
+ width: stateWithNewTab.width,
3076
+ x: stateWithNewTab.x,
3077
+ y: stateWithNewTab.y + stateWithNewTab.tabHeight
3078
+ };
3079
+ const stateWithViewlet = createViewletForTab(stateWithNewTab, tabId);
3080
+ let intermediateState = stateWithViewlet;
3081
+
3082
+ // Switch viewlet (detach old, attach new if ready)
3083
+ const {
3084
+ newState: switchedState
3085
+ } = switchViewlet(intermediateState);
3086
+ intermediateState = switchedState;
3087
+ set(uid, state, intermediateState);
3088
+
3089
+ // Get the tab to extract editorUid
3090
+ const tabWithViewlet = findTabById(intermediateState, tabId);
3091
+ if (!tabWithViewlet) {
3092
+ return intermediateState;
3035
3093
  }
3036
- return viewletModuleId;
3094
+ const {
3095
+ editorUid: actualEditorUid
3096
+ } = tabWithViewlet.tab;
3097
+ if (actualEditorUid === -1) {
3098
+ throw new Error(`invalid editorUid`);
3099
+ }
3100
+ await createViewlet('Editor', actualEditorUid, tabId, bounds, newTab.uri || '');
3101
+
3102
+ // After viewlet is created, get the latest state and mark it as ready
3103
+ const {
3104
+ newState: latestState
3105
+ } = get(uid);
3106
+ const readyState = handleViewletReady(latestState, actualEditorUid);
3107
+ return readyState;
3037
3108
  };
3038
3109
 
3039
- const getViewletModuleIds = async layout => {
3040
- const viewletModuleIds = {};
3041
- for (const group of layout.groups) {
3042
- const activeTab = group.tabs.find(tab => tab.id === group.activeTabId);
3043
- if (activeTab && activeTab.uri) {
3044
- const viewletModuleId = await getViewletModuleId(activeTab.uri);
3045
- if (viewletModuleId) {
3046
- viewletModuleIds[activeTab.id] = viewletModuleId;
3047
- }
3048
- }
3110
+ const handleHeaderDoubleClick = async (state, className, groupIndexRaw) => {
3111
+ if (className !== MainTabs) {
3112
+ return state;
3049
3113
  }
3050
- return viewletModuleIds;
3114
+ return newFile(state);
3051
3115
  };
3052
3116
 
3053
- const updateTabs = (state, editorUids) => {
3054
- const updatedGroups = state.layout.groups.map(group => {
3117
+ const handleModifiedStatusChange = (state, uri, newStatus) => {
3118
+ const {
3119
+ layout
3120
+ } = state;
3121
+ const {
3122
+ groups
3123
+ } = layout;
3124
+ const updatedGroups = groups.map(group => {
3055
3125
  return {
3056
3126
  ...group,
3057
3127
  tabs: group.tabs.map(tab => {
3058
- if (editorUids[tab.id]) {
3128
+ if (tab.uri === uri) {
3059
3129
  return {
3060
3130
  ...tab,
3061
- editorUid: editorUids[tab.id]
3131
+ isDirty: newStatus
3062
3132
  };
3063
3133
  }
3064
3134
  return tab;
@@ -3068,492 +3138,619 @@ const updateTabs = (state, editorUids) => {
3068
3138
  return {
3069
3139
  ...state,
3070
3140
  layout: {
3071
- ...state.layout,
3141
+ ...layout,
3072
3142
  groups: updatedGroups
3073
3143
  }
3074
3144
  };
3075
3145
  };
3076
3146
 
3077
- const restoreAndCreateEditors = async (state, restoredLayout) => {
3078
- let newState = {
3079
- ...state,
3080
- layout: restoredLayout
3081
- };
3082
- const bounds = {
3083
- height: newState.height - state.tabHeight,
3084
- width: newState.width,
3085
- x: newState.x,
3086
- y: newState.y + state.tabHeight
3087
- };
3088
-
3089
- // Get viewlet module IDs for all active tabs
3090
- const viewletModuleIds = await getViewletModuleIds(newState.layout);
3091
-
3092
- // Create viewlets and get editor UIDs
3093
- const editorUids = await createViewlets(newState.layout, viewletModuleIds, bounds);
3094
-
3095
- // Update tabs with editor UIDs
3096
- newState = updateTabs(newState, editorUids);
3147
+ const handleResize = async (state, dimensions) => {
3148
+ const {
3149
+ height,
3150
+ width,
3151
+ x,
3152
+ y
3153
+ } = dimensions;
3097
3154
 
3098
- // Create viewlets in the lifecycle and mark them as ready
3099
- for (const group of newState.layout.groups) {
3100
- const activeTab = group.tabs.find(tab => tab.id === group.activeTabId);
3101
- if (activeTab && viewletModuleIds[activeTab.id]) {
3102
- const editorUid = editorUids[activeTab.id];
3103
- newState = createViewletForTab(newState, activeTab.id);
3104
- newState = handleViewletReady(newState, editorUid);
3155
+ // Resize all editor children to their new bounds
3156
+ const {
3157
+ layout,
3158
+ tabHeight,
3159
+ uid
3160
+ } = state;
3161
+ const {
3162
+ groups
3163
+ } = layout;
3164
+ const contentHeight = height - tabHeight;
3165
+ const allResizeCommands = [];
3166
+ for (const group of groups) {
3167
+ for (const tab of group.tabs) {
3168
+ if (tab.editorUid !== -1) {
3169
+ try {
3170
+ const resizeCommands = await invoke('Viewlet.resize', tab.editorUid, {
3171
+ height: contentHeight,
3172
+ width,
3173
+ x,
3174
+ y: y + tabHeight
3175
+ });
3176
+ allResizeCommands.push(...resizeCommands);
3177
+ } catch {
3178
+ // ignore
3179
+ }
3180
+ }
3105
3181
  }
3106
3182
  }
3107
- return newState;
3183
+ allResizeCommands.push(['Viewlet.setBounds', uid, x, y, width, height]);
3184
+ return allResizeCommands;
3108
3185
  };
3109
3186
 
3110
- const loadContent = async (state, savedState) => {
3111
- const restoredLayout = tryRestoreLayout(savedState);
3112
- if (restoredLayout) {
3113
- // Restore and create editors
3114
- const editorState = await restoreAndCreateEditors(state, restoredLayout);
3115
-
3116
- // Load file icons with the updated editor state
3117
- const {
3118
- fileIconCache,
3119
- updatedLayout
3120
- } = await loadFileIcons(editorState);
3121
-
3122
- // Merge the results
3123
- const finalState = {
3124
- ...editorState,
3125
- fileIconCache,
3126
- initial: false,
3127
- layout: updatedLayout
3128
- };
3129
- return finalState;
3187
+ const create = (beforeGroupId, afterGroupId) => {
3188
+ return `${beforeGroupId}:${afterGroupId}`;
3189
+ };
3190
+ const parse = sashId => {
3191
+ if (!sashId) {
3192
+ return undefined;
3193
+ }
3194
+ const [beforeRaw, afterRaw] = sashId.split(':');
3195
+ if (!beforeRaw || !afterRaw) {
3196
+ return undefined;
3197
+ }
3198
+ const beforeGroupId = Number.parseInt(beforeRaw, 10);
3199
+ const afterGroupId = Number.parseInt(afterRaw, 10);
3200
+ if (!Number.isFinite(beforeGroupId) || !Number.isFinite(afterGroupId)) {
3201
+ return undefined;
3202
+ }
3203
+ return {
3204
+ afterGroupId,
3205
+ beforeGroupId
3206
+ };
3207
+ };
3208
+
3209
+ const handleSashPointerDown = async (state, sashId, clientXRaw, clientYRaw) => {
3210
+ const parsed = parse(sashId);
3211
+ if (!parsed) {
3212
+ return state;
3213
+ }
3214
+ const beforeGroup = state.layout.groups.find(group => group.id === parsed.beforeGroupId);
3215
+ const afterGroup = state.layout.groups.find(group => group.id === parsed.afterGroupId);
3216
+ if (!beforeGroup || !afterGroup) {
3217
+ return state;
3218
+ }
3219
+ const clientX = Number.parseFloat(clientXRaw);
3220
+ const clientY = Number.parseFloat(clientYRaw);
3221
+ if (!Number.isFinite(clientX) || !Number.isFinite(clientY)) {
3222
+ return state;
3130
3223
  }
3131
3224
  return {
3132
3225
  ...state,
3133
- initial: false,
3134
- layout: {
3135
- activeGroupId: undefined,
3136
- direction: 'horizontal',
3137
- groups: []
3226
+ sashDrag: {
3227
+ afterGroupId: parsed.afterGroupId,
3228
+ afterSize: afterGroup.size,
3229
+ beforeGroupId: parsed.beforeGroupId,
3230
+ beforeSize: beforeGroup.size,
3231
+ sashId,
3232
+ startClientX: clientX,
3233
+ startClientY: clientY
3138
3234
  }
3139
3235
  };
3140
3236
  };
3141
3237
 
3142
- const findGroupById = (state, groupId) => {
3238
+ const MIN_GROUP_SIZE = 10;
3239
+ const clamp = (value, min, max) => {
3240
+ return Math.min(max, Math.max(min, value));
3241
+ };
3242
+ const round = value => {
3243
+ return Math.round(value * 100) / 100;
3244
+ };
3245
+ const handleSashPointerMove = async (state, clientXRaw, clientYRaw) => {
3143
3246
  const {
3144
- layout
3247
+ sashDrag
3145
3248
  } = state;
3146
- const {
3147
- groups
3148
- } = layout;
3149
- return groups.find(group => group.id === groupId);
3150
- };
3151
-
3152
- const emptyObject = {};
3153
- const RE_PLACEHOLDER = /\{(PH\d+)\}/g;
3154
- const i18nString = (key, placeholders = emptyObject) => {
3155
- if (placeholders === emptyObject) {
3156
- return key;
3249
+ if (!sashDrag) {
3250
+ return state;
3157
3251
  }
3158
- const replacer = (match, rest) => {
3159
- return placeholders[rest];
3252
+ const clientX = Number.parseFloat(clientXRaw);
3253
+ const clientY = Number.parseFloat(clientYRaw);
3254
+ if (!Number.isFinite(clientX) || !Number.isFinite(clientY)) {
3255
+ return state;
3256
+ }
3257
+ const axisSize = state.layout.direction === 'horizontal' ? state.width : state.height;
3258
+ if (!axisSize) {
3259
+ return state;
3260
+ }
3261
+ const deltaPx = state.layout.direction === 'horizontal' ? clientX - sashDrag.startClientX : clientY - sashDrag.startClientY;
3262
+ const deltaPercent = deltaPx / axisSize * 100;
3263
+ const totalResizableSize = sashDrag.beforeSize + sashDrag.afterSize;
3264
+ const beforeSize = clamp(sashDrag.beforeSize + deltaPercent, MIN_GROUP_SIZE, totalResizableSize - MIN_GROUP_SIZE);
3265
+ const afterSize = totalResizableSize - beforeSize;
3266
+ const groups = state.layout.groups.map(group => {
3267
+ if (group.id === sashDrag.beforeGroupId) {
3268
+ return {
3269
+ ...group,
3270
+ size: round(beforeSize)
3271
+ };
3272
+ }
3273
+ if (group.id === sashDrag.afterGroupId) {
3274
+ return {
3275
+ ...group,
3276
+ size: round(afterSize)
3277
+ };
3278
+ }
3279
+ return group;
3280
+ });
3281
+ return {
3282
+ ...state,
3283
+ layout: {
3284
+ ...state.layout,
3285
+ groups
3286
+ }
3160
3287
  };
3161
- return key.replaceAll(RE_PLACEHOLDER, replacer);
3162
3288
  };
3163
3289
 
3164
- const Close = 'Close';
3165
- const CloseAll = 'Close All';
3166
- const CloseOthers = 'Close Others';
3167
- const CloseToTheRight = 'Close To The Right';
3168
- const CopyPath = 'Copy Path';
3169
- const CopyRelativePath = 'Copy Relative Path';
3170
- const FindFileReferences = 'Find File References';
3171
- const RevealInExplorer = 'Reveal in Explorer';
3172
- const SplitEditorGroup = 'Split Editor Group';
3173
- const TogglePreview = 'Toggle Preview';
3174
-
3175
- const splitEditorGroup = () => {
3176
- return i18nString(SplitEditorGroup);
3177
- };
3178
- const close = () => {
3179
- return i18nString(Close);
3180
- };
3181
- const closeOthers = () => {
3182
- return i18nString(CloseOthers);
3183
- };
3184
- const closeAll = () => {
3185
- return i18nString(CloseAll);
3186
- };
3187
- const revealInExplorer = () => {
3188
- return i18nString(RevealInExplorer);
3189
- };
3190
- const closeToTheRight = () => {
3191
- return i18nString(CloseToTheRight);
3192
- };
3193
- const findFileReferences = () => {
3194
- return i18nString(FindFileReferences);
3195
- };
3196
- const copyPath = () => {
3197
- return i18nString(CopyPath);
3198
- };
3199
- const copyRelativePath = () => {
3200
- return i18nString(CopyRelativePath);
3201
- };
3202
- const togglePreview = () => {
3203
- return i18nString(TogglePreview);
3290
+ const handleSashPointerUp = async state => {
3291
+ if (!state.sashDrag) {
3292
+ return state;
3293
+ }
3294
+ return {
3295
+ ...state,
3296
+ sashDrag: undefined
3297
+ };
3204
3298
  };
3205
3299
 
3206
- const menuEntrySeparator = {
3207
- command: '',
3208
- flags: Separator,
3209
- id: 'separator',
3210
- label: ''
3300
+ const show2 = async (uid, menuId, x, y, args) => {
3301
+ await showContextMenu2(uid, menuId, x, y, args);
3211
3302
  };
3212
3303
 
3213
- // TODO should pass tab uri as argument or tab index
3214
- const getMenuEntries$1 = state => {
3304
+ const handleTabContextMenu = async (state, button, x, y) => {
3305
+ number(x);
3306
+ number(y);
3215
3307
  const {
3216
- layout
3308
+ uid
3217
3309
  } = state;
3218
- const {
3219
- activeGroupId
3220
- } = layout;
3221
- const group = findGroupById(state, activeGroupId || 0);
3222
- if (!group) {
3223
- return [];
3224
- }
3225
- const {
3226
- activeTabId,
3227
- tabs
3228
- } = group;
3229
- const tab = tabs.find(t => t.id === activeTabId);
3230
- if (!tab) {
3231
- return [];
3232
- }
3233
- const {
3234
- uri: path
3235
- } = tab;
3236
- return [{
3237
- command: 'Main.closeFocusedTab',
3238
- flags: None,
3239
- id: 'tabClose',
3240
- label: close()
3241
- }, {
3242
- command: 'Main.closeOthers',
3243
- flags: None,
3244
- id: 'tabCloseOthers',
3245
- label: closeOthers()
3246
- }, {
3247
- command: 'Main.closeTabsRight',
3248
- flags: None,
3249
- id: 'tabCloseToTheRight',
3250
- label: closeToTheRight()
3251
- }, {
3252
- command: 'Main.closeAll',
3253
- flags: None,
3254
- id: 'tabCloseAll',
3255
- label: closeAll()
3256
- }, menuEntrySeparator, {
3257
- args: [path],
3258
- command: 'Explorer.revealItem',
3259
- flags: None,
3260
- id: 'revealInExplorer',
3261
- label: revealInExplorer()
3262
- }, {
3263
- args: [path],
3264
- command: 'Main.copyPath',
3265
- flags: None,
3266
- id: 'copyPath',
3267
- label: copyPath()
3268
- }, {
3269
- args: [path],
3270
- command: 'Main.copyRelativePath',
3271
- flags: None,
3272
- id: 'copyRelativePath',
3273
- label: copyRelativePath()
3274
- }, menuEntrySeparator, {
3275
- args: [/* id */'References', /* focus */true, path],
3276
- command: 'SideBar.show',
3277
- flags: None,
3278
- id: 'findFileReferences',
3279
- label: findFileReferences()
3280
- }];
3310
+ await show2(uid, Tab, x, y, {
3311
+ menuId: Tab
3312
+ });
3313
+ return state;
3281
3314
  };
3282
3315
 
3283
- const getMenuEntries = async (state, props) => {
3284
- switch (props.menuId) {
3285
- case Tab:
3286
- return getMenuEntries$1(state);
3287
- default:
3288
- return [];
3316
+ const getAllTabs = layout => {
3317
+ const allTabs = [];
3318
+ for (const group of layout.groups) {
3319
+ allTabs.push(...group.tabs);
3289
3320
  }
3321
+ return allTabs;
3290
3322
  };
3291
3323
 
3292
- const ensureActiveGroup = (state, uri) => {
3293
- // Find the active group (by activeGroupId or focused flag)
3294
- const {
3295
- layout
3296
- } = state;
3297
- const {
3298
- activeGroupId,
3299
- groups
3300
- } = layout;
3301
- const activeGroup = activeGroupId === undefined ? groups.find(group => group.focused) : groups.find(group => group.id === activeGroupId);
3302
-
3303
- // Generate a request ID for content loading
3304
- getNextRequestId();
3324
+ const loadFileIcons = async state => {
3325
+ try {
3326
+ const allTabs = getAllTabs(state.layout);
3327
+ const {
3328
+ newFileIconCache
3329
+ } = await getFileIconsForTabs(allTabs, state.fileIconCache);
3305
3330
 
3306
- // If no active group exists, create one
3307
- let newState;
3308
- if (activeGroup) {
3309
- // Create a new tab with the URI in the active group
3310
- const title = getLabel(uri);
3311
- const tabId = create$1();
3312
- const editorUid = create$1();
3313
- const newTab = {
3314
- editorType: 'text',
3315
- editorUid,
3316
- errorMessage: '',
3317
- icon: '',
3318
- id: tabId,
3319
- isDirty: false,
3320
- language: '',
3321
- loadingState: 'loading',
3322
- title,
3323
- uri: uri
3331
+ // Update tabs with their icons
3332
+ const updatedLayout = {
3333
+ ...state.layout,
3334
+ groups: state.layout.groups.map(group => ({
3335
+ ...group,
3336
+ tabs: group.tabs.map(tab => ({
3337
+ ...tab,
3338
+ icon: newFileIconCache[tab.uri || '']
3339
+ }))
3340
+ }))
3341
+ };
3342
+ return {
3343
+ fileIconCache: newFileIconCache,
3344
+ updatedLayout
3345
+ };
3346
+ } catch {
3347
+ // If icon request fails, continue without icons
3348
+ return {
3349
+ fileIconCache: state.fileIconCache,
3350
+ updatedLayout: state.layout
3324
3351
  };
3325
- newState = openTab(state, activeGroup.id, newTab);
3326
- } else {
3327
- newState = createEmptyGroup(state, uri);
3328
- }
3329
- return newState;
3330
- };
3331
-
3332
- const findTabByUri = (state, uri) => {
3333
- const {
3334
- layout
3335
- } = state;
3336
- const {
3337
- groups
3338
- } = layout;
3339
- for (const group of groups) {
3340
- const tab = group.tabs.find(t => t.uri === uri);
3341
- if (tab) {
3342
- return {
3343
- groupId: group.id,
3344
- tab
3345
- };
3346
- }
3347
3352
  }
3348
- return undefined;
3349
3353
  };
3350
3354
 
3351
- const focusEditorGroup = (state, groupId) => {
3355
+ const handleUriChange = async (state, oldUri, newUri) => {
3352
3356
  const {
3353
3357
  layout
3354
3358
  } = state;
3355
3359
  const {
3356
3360
  groups
3357
3361
  } = layout;
3358
- const updatedGroups = groups.map(group => ({
3359
- ...group,
3360
- focused: group.id === groupId
3361
- }));
3362
- return {
3362
+ const newTitle = getLabel(newUri);
3363
+ const updatedGroups = groups.map(group => {
3364
+ return {
3365
+ ...group,
3366
+ tabs: group.tabs.map(tab => {
3367
+ if (tab.uri === oldUri) {
3368
+ return {
3369
+ ...tab,
3370
+ title: newTitle,
3371
+ uri: newUri
3372
+ };
3373
+ }
3374
+ return tab;
3375
+ })
3376
+ };
3377
+ });
3378
+ const stateWithUpdatedUri = {
3363
3379
  ...state,
3364
3380
  layout: {
3365
3381
  ...layout,
3366
- activeGroupId: groupId,
3367
3382
  groups: updatedGroups
3368
3383
  }
3369
3384
  };
3385
+
3386
+ // Load icons for the new URI
3387
+ const result = await loadFileIcons(stateWithUpdatedUri);
3388
+ return {
3389
+ ...stateWithUpdatedUri,
3390
+ fileIconCache: result.fileIconCache,
3391
+ layout: result.updatedLayout
3392
+ };
3370
3393
  };
3371
3394
 
3372
- const getOptionUriOptions = options => {
3373
- let uri = '';
3374
- if (typeof options === 'string') {
3375
- uri = options;
3376
- } else {
3377
- const {
3378
- uri: optionsUri
3379
- } = options;
3380
- uri = optionsUri;
3395
+ const handleWorkspaceChange = state => {
3396
+ return {
3397
+ ...state,
3398
+ layout: {
3399
+ ...state.layout,
3400
+ activeGroupId: undefined,
3401
+ groups: []
3402
+ }
3403
+ };
3404
+ };
3405
+
3406
+ const id = 7201;
3407
+ const sendMessagePortToExtensionHostWorker = async port => {
3408
+ await sendMessagePortToExtensionHostWorker$1(port, id);
3409
+ };
3410
+
3411
+ const createExtensionHostRpc = async () => {
3412
+ try {
3413
+ const rpc = await TransferMessagePortRpcParent.create({
3414
+ commandMap: {},
3415
+ send: sendMessagePortToExtensionHostWorker
3416
+ });
3417
+ return rpc;
3418
+ } catch (error) {
3419
+ throw new VError(error, `Failed to create extension host rpc`);
3381
3420
  }
3382
- return uri;
3383
3421
  };
3384
3422
 
3385
- const switchTab = (state, groupId, tabId) => {
3423
+ const initialize = async () => {
3424
+ const rpc = await createExtensionHostRpc();
3425
+ set$3(rpc);
3426
+ };
3427
+
3428
+ const isValidTab = tab => {
3429
+ return tab && typeof tab.id === 'number' && typeof tab.title === 'string' && typeof tab.isDirty === 'boolean' && typeof tab.editorUid === 'number' && typeof tab.icon === 'string' && (tab.editorType === 'text' || tab.editorType === 'custom');
3430
+ };
3431
+
3432
+ const isValidEditorGroup = group => {
3433
+ return group && typeof group.id === 'number' && Array.isArray(group.tabs) && group.tabs.every(isValidTab) && (group.activeTabId === undefined || typeof group.activeTabId === 'number') && typeof group.focused === 'boolean' && typeof group.size === 'number' && group.size > 0 && typeof group.isEmpty === 'boolean';
3434
+ };
3435
+
3436
+ const isValidMainAreaLayout = layout => {
3437
+ if (!layout || typeof layout !== 'object') {
3438
+ return false;
3439
+ }
3440
+ const layoutObj = layout;
3441
+ if (layoutObj.activeGroupId !== undefined && typeof layoutObj.activeGroupId !== 'number') {
3442
+ return false;
3443
+ }
3444
+ if (layoutObj.direction !== 'horizontal' && layoutObj.direction !== 'vertical') {
3445
+ return false;
3446
+ }
3447
+ if (!Array.isArray(layoutObj.groups)) {
3448
+ return false;
3449
+ }
3450
+ if (!layoutObj.groups.every(isValidEditorGroup)) {
3451
+ return false;
3452
+ }
3453
+ return true;
3454
+ };
3455
+
3456
+ const tryRestoreLayout = savedState => {
3457
+ if (savedState === undefined || savedState === null) {
3458
+ return undefined;
3459
+ }
3460
+ if (typeof savedState !== 'object') {
3461
+ return undefined;
3462
+ }
3386
3463
  const {
3387
3464
  layout
3388
- } = state;
3389
- const {
3390
- groups
3391
- } = layout;
3392
- const updatedGroups = groups.map(group => {
3393
- if (group.id === groupId) {
3394
- const tabExists = group.tabs.some(tab => tab.id === tabId);
3395
- if (tabExists) {
3396
- return {
3397
- ...group,
3398
- activeTabId: tabId
3399
- };
3465
+ } = savedState;
3466
+ if (!isValidMainAreaLayout(layout)) {
3467
+ return undefined;
3468
+ }
3469
+
3470
+ // Normalize all tabs to have editorUid: -1 so SelectTab will create viewlets
3471
+ // Mark all restored tabs as not dirty
3472
+ const normalizedLayout = {
3473
+ ...layout,
3474
+ groups: layout.groups.map(group => ({
3475
+ ...group,
3476
+ tabs: group.tabs.map(tab => ({
3477
+ ...tab,
3478
+ editorUid: -1,
3479
+ isDirty: false
3480
+ }))
3481
+ }))
3482
+ };
3483
+ return normalizedLayout;
3484
+ };
3485
+
3486
+ const createViewlets = async (layout, viewletModuleIds, bounds) => {
3487
+ const editorUids = {};
3488
+ for (const group of layout.groups) {
3489
+ const activeTab = group.tabs.find(tab => tab.id === group.activeTabId);
3490
+ if (activeTab && viewletModuleIds[activeTab.id]) {
3491
+ const editorUid = activeTab.editorUid === -1 ? create$1() : activeTab.editorUid;
3492
+ editorUids[activeTab.id] = editorUid;
3493
+ await createViewlet(viewletModuleIds[activeTab.id], editorUid, activeTab.id, bounds, activeTab.uri);
3494
+ }
3495
+ }
3496
+ return editorUids;
3497
+ };
3498
+
3499
+ const getViewletModuleIds = async layout => {
3500
+ const viewletModuleIds = {};
3501
+ for (const group of layout.groups) {
3502
+ const activeTab = group.tabs.find(tab => tab.id === group.activeTabId);
3503
+ if (activeTab && activeTab.uri) {
3504
+ const viewletModuleId = await getViewletModuleId(activeTab.uri);
3505
+ if (viewletModuleId) {
3506
+ viewletModuleIds[activeTab.id] = viewletModuleId;
3400
3507
  }
3401
3508
  }
3402
- return group;
3509
+ }
3510
+ return viewletModuleIds;
3511
+ };
3512
+
3513
+ const updateTabs = (state, editorUids) => {
3514
+ const updatedGroups = state.layout.groups.map(group => {
3515
+ return {
3516
+ ...group,
3517
+ tabs: group.tabs.map(tab => {
3518
+ if (editorUids[tab.id]) {
3519
+ return {
3520
+ ...tab,
3521
+ editorUid: editorUids[tab.id]
3522
+ };
3523
+ }
3524
+ return tab;
3525
+ })
3526
+ };
3403
3527
  });
3404
3528
  return {
3405
3529
  ...state,
3406
3530
  layout: {
3407
- ...layout,
3531
+ ...state.layout,
3408
3532
  groups: updatedGroups
3409
3533
  }
3410
3534
  };
3411
3535
  };
3412
3536
 
3413
- const openUri = async (state, options) => {
3414
- object(state);
3537
+ const restoreAndCreateEditors = async (state, restoredLayout) => {
3538
+ let newState = {
3539
+ ...state,
3540
+ layout: restoredLayout
3541
+ };
3542
+ const bounds = {
3543
+ height: newState.height - state.tabHeight,
3544
+ width: newState.width,
3545
+ x: newState.x,
3546
+ y: newState.y + state.tabHeight
3547
+ };
3548
+
3549
+ // Get viewlet module IDs for all active tabs
3550
+ const viewletModuleIds = await getViewletModuleIds(newState.layout);
3551
+
3552
+ // Create viewlets and get editor UIDs
3553
+ const editorUids = await createViewlets(newState.layout, viewletModuleIds, bounds);
3554
+
3555
+ // Update tabs with editor UIDs
3556
+ newState = updateTabs(newState, editorUids);
3557
+
3558
+ // Create viewlets in the lifecycle and mark them as ready
3559
+ for (const group of newState.layout.groups) {
3560
+ const activeTab = group.tabs.find(tab => tab.id === group.activeTabId);
3561
+ if (activeTab && viewletModuleIds[activeTab.id]) {
3562
+ const editorUid = editorUids[activeTab.id];
3563
+ newState = createViewletForTab(newState, activeTab.id);
3564
+ newState = handleViewletReady(newState, editorUid);
3565
+ }
3566
+ }
3567
+ return newState;
3568
+ };
3569
+
3570
+ const loadContent = async (state, savedState) => {
3571
+ const restoredLayout = tryRestoreLayout(savedState);
3572
+ if (restoredLayout) {
3573
+ // Restore and create editors
3574
+ const editorState = await restoreAndCreateEditors(state, restoredLayout);
3575
+
3576
+ // Load file icons with the updated editor state
3577
+ const {
3578
+ fileIconCache,
3579
+ updatedLayout
3580
+ } = await loadFileIcons(editorState);
3581
+
3582
+ // Merge the results
3583
+ const finalState = {
3584
+ ...editorState,
3585
+ fileIconCache,
3586
+ initial: false,
3587
+ layout: updatedLayout
3588
+ };
3589
+ return finalState;
3590
+ }
3591
+ return {
3592
+ ...state,
3593
+ initial: false,
3594
+ layout: {
3595
+ activeGroupId: undefined,
3596
+ direction: 'horizontal',
3597
+ groups: []
3598
+ }
3599
+ };
3600
+ };
3601
+
3602
+ const findGroupById = (state, groupId) => {
3415
3603
  const {
3416
- uid
3604
+ layout
3417
3605
  } = state;
3418
- const uri = getOptionUriOptions(options);
3606
+ const {
3607
+ groups
3608
+ } = layout;
3609
+ return groups.find(group => group.id === groupId);
3610
+ };
3419
3611
 
3420
- // Check if a tab with this URI already exists in the passed-in state
3421
- const existingTab = findTabByUri(state, uri);
3422
- if (existingTab) {
3423
- // Tab exists, switch to it and focus its group
3424
- const focusedState = focusEditorGroup(state, existingTab.groupId);
3425
- return switchTab(focusedState, existingTab.groupId, existingTab.tab.id);
3612
+ const emptyObject = {};
3613
+ const RE_PLACEHOLDER = /\{(PH\d+)\}/g;
3614
+ const i18nString = (key, placeholders = emptyObject) => {
3615
+ if (placeholders === emptyObject) {
3616
+ return key;
3426
3617
  }
3618
+ const replacer = (match, rest) => {
3619
+ return placeholders[rest];
3620
+ };
3621
+ return key.replaceAll(RE_PLACEHOLDER, replacer);
3622
+ };
3427
3623
 
3428
- // Get previous active tab ID for viewlet switching
3429
- getActiveTabId(state);
3430
-
3431
- // Check if there's existing state in the global store
3432
- const stateFromStore = get(uid);
3433
- let currentState;
3434
- if (stateFromStore) {
3435
- const storedState = stateFromStore.newState;
3436
- // Use the stored state if it has more tabs than the passed-in state
3437
- // (indicating concurrent calls have already added tabs)
3438
- // Otherwise use the passed-in state (test setup with initial data)
3439
- const storedTabCount = storedState.layout.groups.reduce((sum, g) => sum + g.tabs.length, 0);
3440
- const passedTabCount = state.layout.groups.reduce((sum, g) => sum + g.tabs.length, 0);
3441
- if (storedTabCount > passedTabCount) {
3442
- // Stored state has more tabs - concurrent calls have added tabs
3443
- currentState = storedState;
3444
- } else {
3445
- // Passed-in state has same or more tabs, use it (likely fresh test setup)
3446
- currentState = state;
3447
- set(uid, state, state);
3448
- }
3449
- } else {
3450
- // No state in store yet, register the passed-in state
3451
- currentState = state;
3452
- set(uid, state, state);
3453
- }
3624
+ const Close = 'Close';
3625
+ const CloseEditorGroup = 'Close Editor Group';
3626
+ const CloseAll = 'Close All';
3627
+ const CloseOthers = 'Close Others';
3628
+ const CloseToTheRight = 'Close To The Right';
3629
+ const CopyPath = 'Copy Path';
3630
+ const CopyRelativePath = 'Copy Relative Path';
3631
+ const FindFileReferences = 'Find File References';
3632
+ const RevealInExplorer = 'Reveal in Explorer';
3633
+ const SplitEditorGroup = 'Split Editor Group';
3634
+ const TogglePreview = 'Toggle Preview';
3454
3635
 
3455
- // Add tab to state BEFORE any async calls to prevent race conditions
3456
- const newState = ensureActiveGroup(currentState, uri);
3457
- const tabId = getActiveTabId(newState);
3636
+ const splitEditorGroup = () => {
3637
+ return i18nString(SplitEditorGroup);
3638
+ };
3639
+ const close = () => {
3640
+ return i18nString(Close);
3641
+ };
3642
+ const closeEditorGroup = () => {
3643
+ return i18nString(CloseEditorGroup);
3644
+ };
3645
+ const closeOthers = () => {
3646
+ return i18nString(CloseOthers);
3647
+ };
3648
+ const closeAll = () => {
3649
+ return i18nString(CloseAll);
3650
+ };
3651
+ const revealInExplorer = () => {
3652
+ return i18nString(RevealInExplorer);
3653
+ };
3654
+ const closeToTheRight = () => {
3655
+ return i18nString(CloseToTheRight);
3656
+ };
3657
+ const findFileReferences = () => {
3658
+ return i18nString(FindFileReferences);
3659
+ };
3660
+ const copyPath = () => {
3661
+ return i18nString(CopyPath);
3662
+ };
3663
+ const copyRelativePath = () => {
3664
+ return i18nString(CopyRelativePath);
3665
+ };
3666
+ const togglePreview = () => {
3667
+ return i18nString(TogglePreview);
3668
+ };
3458
3669
 
3459
- // Save state immediately after adding tab
3460
- set(uid, state, newState);
3461
- const viewletModuleId = await getViewletModuleId(uri);
3670
+ const menuEntrySeparator = {
3671
+ command: '',
3672
+ flags: Separator,
3673
+ id: 'separator',
3674
+ label: ''
3675
+ };
3462
3676
 
3463
- // After async call, get the latest state to account for any concurrent changes
3677
+ // TODO should pass tab uri as argument or tab index
3678
+ const getMenuEntries$1 = state => {
3464
3679
  const {
3465
- newState: stateAfterModuleId
3466
- } = get(uid);
3467
- if (!viewletModuleId) {
3468
- // TODO display some kind of errro that editor couldn't be opened
3469
- return stateAfterModuleId;
3470
- }
3471
-
3472
- // Calculate bounds: use main area bounds minus tab height
3473
- const bounds = {
3474
- height: stateAfterModuleId.height - stateAfterModuleId.tabHeight,
3475
- width: stateAfterModuleId.width,
3476
- x: stateAfterModuleId.x,
3477
- y: stateAfterModuleId.y + stateAfterModuleId.tabHeight
3478
- };
3479
- const stateWithViewlet = createViewletForTab(stateAfterModuleId, tabId);
3480
- let intermediateState1 = stateWithViewlet;
3481
-
3482
- // Switch viewlet (detach old, attach new if ready)
3680
+ layout
3681
+ } = state;
3483
3682
  const {
3484
- newState: switchedState
3485
- } = switchViewlet(intermediateState1);
3486
- intermediateState1 = switchedState;
3487
- set(uid, state, intermediateState1);
3488
-
3489
- // Get the tab to extract editorUid
3490
- const tabWithViewlet = findTabById(intermediateState1, tabId);
3491
- if (!tabWithViewlet) {
3492
- return intermediateState1;
3683
+ activeGroupId
3684
+ } = layout;
3685
+ const group = findGroupById(state, activeGroupId || 0);
3686
+ if (!group) {
3687
+ return [];
3493
3688
  }
3494
3689
  const {
3495
- editorUid
3496
- } = tabWithViewlet.tab;
3497
- if (editorUid === -1) {
3498
- throw new Error(`invalid editorUid`);
3690
+ activeTabId,
3691
+ tabs
3692
+ } = group;
3693
+ const tab = tabs.find(t => t.id === activeTabId);
3694
+ if (!tab) {
3695
+ return [];
3499
3696
  }
3500
- await createViewlet(viewletModuleId, editorUid, tabId, bounds, uri);
3501
-
3502
- // After viewlet is created, get the latest state and mark it as ready
3503
- // This ensures we have any state updates that occurred during viewlet creation
3504
3697
  const {
3505
- newState: latestState
3506
- } = get(uid);
3507
-
3508
- // Attachment is handled automatically by virtual DOM reference nodes
3509
- const readyState = handleViewletReady(latestState, editorUid);
3510
-
3511
- // Save state before async icon request
3512
- set(uid, state, readyState);
3513
-
3514
- // Request file icon for the newly opened tab
3515
- try {
3516
- const newTab = findTabById(readyState, tabId);
3517
- if (newTab && newTab.tab.uri) {
3518
- const {
3519
- newFileIconCache
3520
- } = await getFileIconsForTabs([newTab.tab], readyState.fileIconCache);
3521
-
3522
- // After async call, get the latest state again
3523
- const {
3524
- newState: stateBeforeIconUpdate
3525
- } = get(uid);
3526
- const icon = newFileIconCache[newTab.tab.uri] || '';
3527
-
3528
- // Update the tab with the icon in the latest state
3529
- const stateWithIcon = {
3530
- ...stateBeforeIconUpdate,
3531
- fileIconCache: newFileIconCache,
3532
- layout: {
3533
- ...stateBeforeIconUpdate.layout,
3534
- groups: stateBeforeIconUpdate.layout.groups.map(group => ({
3535
- ...group,
3536
- tabs: group.tabs.map(tab => tab.id === tabId ? {
3537
- ...tab,
3538
- icon
3539
- } : tab)
3540
- }))
3541
- }
3542
- };
3698
+ uri: path
3699
+ } = tab;
3700
+ return [{
3701
+ command: 'Main.closeFocusedTab',
3702
+ flags: None,
3703
+ id: 'tabClose',
3704
+ label: close()
3705
+ }, {
3706
+ command: 'Main.closeOthers',
3707
+ flags: None,
3708
+ id: 'tabCloseOthers',
3709
+ label: closeOthers()
3710
+ }, {
3711
+ command: 'Main.closeTabsRight',
3712
+ flags: None,
3713
+ id: 'tabCloseToTheRight',
3714
+ label: closeToTheRight()
3715
+ }, {
3716
+ command: 'Main.closeAll',
3717
+ flags: None,
3718
+ id: 'tabCloseAll',
3719
+ label: closeAll()
3720
+ }, menuEntrySeparator, {
3721
+ args: [path],
3722
+ command: 'Explorer.revealItem',
3723
+ flags: None,
3724
+ id: 'revealInExplorer',
3725
+ label: revealInExplorer()
3726
+ }, {
3727
+ args: [path],
3728
+ command: 'Main.copyPath',
3729
+ flags: None,
3730
+ id: 'copyPath',
3731
+ label: copyPath()
3732
+ }, {
3733
+ args: [path],
3734
+ command: 'Main.copyRelativePath',
3735
+ flags: None,
3736
+ id: 'copyRelativePath',
3737
+ label: copyRelativePath()
3738
+ }, menuEntrySeparator, {
3739
+ args: [/* id */'References', /* focus */true, path],
3740
+ command: 'SideBar.show',
3741
+ flags: None,
3742
+ id: 'findFileReferences',
3743
+ label: findFileReferences()
3744
+ }];
3745
+ };
3543
3746
 
3544
- // Save the state with icon update so concurrent calls can see it
3545
- set(uid, state, stateWithIcon);
3546
- return stateWithIcon;
3547
- }
3548
- } catch {
3549
- // If icon request fails, continue without icon
3747
+ const getMenuEntries = async (state, props) => {
3748
+ switch (props.menuId) {
3749
+ case Tab:
3750
+ return getMenuEntries$1(state);
3751
+ default:
3752
+ return [];
3550
3753
  }
3551
-
3552
- // Get final latest state
3553
- const {
3554
- newState: finalState
3555
- } = get(uid);
3556
- return finalState;
3557
3754
  };
3558
3755
 
3559
3756
  const refresh = state => {
@@ -3562,6 +3759,39 @@ const refresh = state => {
3562
3759
  };
3563
3760
  };
3564
3761
 
3762
+ const getCss = () => {
3763
+ const rules = [`.MainArea {
3764
+ }`, `.editor-groups-container {
3765
+ position: relative;
3766
+ }`, `.Sash {
3767
+ position: absolute;
3768
+ z-index: 1;
3769
+ }`, `.SashVertical {
3770
+ top: 0;
3771
+ bottom: 0;
3772
+ width: 0;
3773
+ cursor: col-resize;
3774
+ }`, `.SashVertical:hover {
3775
+ width: 4px;
3776
+ margin-left: -2px;
3777
+ }`, `.SashHorizontal {
3778
+ left: 0;
3779
+ right: 0;
3780
+ height: 0;
3781
+ cursor: row-resize;
3782
+ }`, `.SashHorizontal:hover {
3783
+ height: 4px;
3784
+ margin-top: -2px;
3785
+ }`];
3786
+ const css = rules.join('\n');
3787
+ return css;
3788
+ };
3789
+
3790
+ const renderCss = (oldState, newState) => {
3791
+ const css = getCss();
3792
+ return [SetCss, newState.uid, css];
3793
+ };
3794
+
3565
3795
  const text = data => {
3566
3796
  return {
3567
3797
  childCount: 0,
@@ -3858,41 +4088,54 @@ const diffTree = (oldNodes, newNodes) => {
3858
4088
  return removeTrailingNavigationPatches(patches);
3859
4089
  };
3860
4090
 
3861
- const CSS_CLASSES = {
3862
- EDITOR_GROUPS_CONTAINER: 'editor-groups-container'};
3863
-
3864
4091
  const renderContent = content => {
3865
4092
  return [{
3866
4093
  childCount: 1,
3867
- className: 'TextEditor',
4094
+ className: TextEditor,
3868
4095
  type: Div
3869
4096
  }, {
3870
4097
  childCount: 1,
3871
- className: 'EditorContent',
4098
+ className: EditorContent,
3872
4099
  type: Pre
3873
4100
  }, text(content)];
3874
4101
  };
3875
4102
 
4103
+ const HandleClickAction = 10;
4104
+ const HandleClick = 11;
4105
+ const HandleClickClose = 12;
4106
+ const HandleClickTab = 13;
4107
+ const HandleTabContextMenu = 14;
4108
+ const HandleHeaderDoubleClick = 15;
4109
+ const HandleSashPointerDown = 16;
4110
+ const HandleSashPointerMove = 17;
4111
+ const HandleSashPointerUp = 18;
4112
+
3876
4113
  const renderError = errorMessage => {
3877
4114
  return [{
3878
- childCount: 1,
3879
- className: 'TextEditor TextEditor--error',
4115
+ childCount: 2,
4116
+ className: TextEditorError,
3880
4117
  type: Div
3881
4118
  }, {
3882
- childCount: 1,
3883
- className: 'EditorContent EditorContent--error',
4119
+ childCount: 2,
4120
+ className: EditorContentError,
3884
4121
  type: Div
3885
- }, text(`Error: ${errorMessage}`)];
4122
+ }, text(`Error: ${errorMessage}`), {
4123
+ childCount: 1,
4124
+ className: `${Button} ${ButtonSecondary}`,
4125
+ 'data-action': 'retry-open',
4126
+ onClick: HandleClickAction,
4127
+ type: Button$2
4128
+ }, text('Retry')];
3886
4129
  };
3887
4130
 
3888
4131
  const renderLoading = () => {
3889
4132
  return [{
3890
4133
  childCount: 1,
3891
- className: 'TextEditor TextEditor--loading',
4134
+ className: TextEditorLoading,
3892
4135
  type: Div
3893
4136
  }, {
3894
4137
  childCount: 1,
3895
- className: 'EditorContent EditorContent--loading',
4138
+ className: EditorContentLoading,
3896
4139
  type: Div
3897
4140
  }, text('Loading...')];
3898
4141
  };
@@ -3933,50 +4176,43 @@ const renderEditor = tab => {
3933
4176
  return renderContent('');
3934
4177
  };
3935
4178
 
3936
- const HandleClickAction = 10;
3937
- const HandleClick = 11;
3938
- const HandleClickClose = 12;
3939
- const HandleClickTab = 13;
3940
- const HandleTabContextMenu = 14;
3941
- const HandleHeaderDoubleClick = 15;
3942
-
3943
4179
  const renderTabActions = (isDirty, tabIndex, groupIndex) => {
3944
4180
  if (isDirty) {
3945
4181
  return [{
3946
4182
  childCount: 1,
3947
- className: 'EditorTabCloseButton',
4183
+ className: EditorTabCloseButton,
3948
4184
  'data-groupIndex': groupIndex,
3949
4185
  'data-index': tabIndex,
3950
4186
  type: Div
3951
4187
  }, {
3952
4188
  childCount: 0,
3953
- className: 'MaskIcon MaskIconCircleFilled',
4189
+ className: MaskIconCircleFilled,
3954
4190
  type: Div
3955
4191
  }];
3956
4192
  }
3957
4193
  return [{
3958
4194
  'aria-label': 'Close',
3959
4195
  childCount: 1,
3960
- className: 'EditorTabCloseButton',
4196
+ className: EditorTabCloseButton,
3961
4197
  'data-groupIndex': groupIndex,
3962
4198
  'data-index': tabIndex,
3963
4199
  onClick: HandleClickClose,
3964
- type: Button$1
4200
+ type: Button$2
3965
4201
  }, {
3966
4202
  childCount: 0,
3967
- className: 'MaskIcon MaskIconClose',
4203
+ className: MaskIconClose,
3968
4204
  type: Div
3969
4205
  }];
3970
4206
  };
3971
4207
 
3972
4208
  const renderTab = (tab, isActive, tabIndex, groupIndex) => {
3973
4209
  const closeButtonNodes = renderTabActions(tab.isDirty, tabIndex, groupIndex);
3974
- let className = 'MainTab';
4210
+ let className = MainTab;
3975
4211
  if (isActive) {
3976
- className += ' MainTabSelected';
4212
+ className += ' ' + MainTabSelected;
3977
4213
  }
3978
4214
  if (tab.isDirty) {
3979
- className += ' MainTabModified';
4215
+ className += ' ' + MainTabModified;
3980
4216
  }
3981
4217
  return [{
3982
4218
  'aria-selected': isActive,
@@ -3991,13 +4227,13 @@ const renderTab = (tab, isActive, tabIndex, groupIndex) => {
3991
4227
  type: Div
3992
4228
  }, {
3993
4229
  childCount: 0,
3994
- className: 'TabIcon',
3995
- role: 'none',
4230
+ className: TabIcon,
4231
+ role: None$1,
3996
4232
  src: tab.icon,
3997
4233
  type: Img
3998
4234
  }, {
3999
4235
  childCount: 1,
4000
- className: 'TabTitle',
4236
+ className: TabTitle,
4001
4237
  type: Span
4002
4238
  }, text(tab.title), ...closeButtonNodes];
4003
4239
  };
@@ -4005,7 +4241,7 @@ const renderTab = (tab, isActive, tabIndex, groupIndex) => {
4005
4241
  const getTabsVirtualDom = (group, groupIndex, tabsChildCount) => {
4006
4242
  return [{
4007
4243
  childCount: tabsChildCount,
4008
- className: 'MainTabs',
4244
+ className: MainTabs,
4009
4245
  role: 'tablist',
4010
4246
  type: Div
4011
4247
  }, ...group.tabs.flatMap((tab, tabIndex) => renderTab(tab, tab.id === group.activeTabId, tabIndex, groupIndex))];
@@ -4029,34 +4265,34 @@ const renderEditorGroupActions = (group, groupIndex, splitButtonEnabled) => {
4029
4265
  buttons.push({
4030
4266
  ariaLabel: 'Preview',
4031
4267
  childCount: 1,
4032
- className: 'IconButton',
4268
+ className: IconButton,
4033
4269
  'data-action': 'toggle-preview',
4034
4270
  'data-groupId': String(group.id),
4035
4271
  name: 'toggle-preview',
4036
4272
  onClick: HandleClickAction,
4037
4273
  title: togglePreview(),
4038
- type: Button$1
4274
+ type: Button$2
4039
4275
  }, {
4040
4276
  childCount: 0,
4041
- className: 'MaskIcon MaskIconPreview',
4277
+ className: MaskIconPreview,
4042
4278
  type: Div
4043
4279
  });
4044
4280
  }
4045
4281
  if (splitButtonEnabled) {
4046
4282
  buttons.push({
4047
4283
  childCount: 1,
4048
- className: 'EditorGroupActionButton SplitEditorGroupButton',
4284
+ className: EditorGroupActionButton + ' ' + SplitEditorGroupButton,
4049
4285
  'data-action': 'split-right',
4050
4286
  'data-groupId': String(group.id),
4051
4287
  onClick: HandleClickAction,
4052
4288
  title: splitEditorGroup(),
4053
- type: Button$1
4289
+ type: Button$2
4054
4290
  }, text('split'));
4055
4291
  }
4056
4292
  return [{
4057
4293
  childCount: buttons.length / 2,
4058
4294
  // Each button has 2 nodes (button + text)
4059
- className: 'EditorGroupActions',
4295
+ className: EditorGroupActions,
4060
4296
  role: 'toolbar',
4061
4297
  type: Div
4062
4298
  }, ...buttons];
@@ -4068,37 +4304,103 @@ const renderEditorGroupHeader = (group, groupIndex, splitButtonEnabled) => {
4068
4304
  const hasActions = actions.length > 0;
4069
4305
  return [{
4070
4306
  childCount: hasActions ? 2 : 1,
4071
- className: 'EditorGroupHeader',
4307
+ className: EditorGroupHeader,
4072
4308
  onDblClick: HandleHeaderDoubleClick,
4073
- role: 'none',
4309
+ role: None$1,
4074
4310
  type: Div
4075
4311
  }, ...getTabsVirtualDom(group, groupIndex, tabsChildCount), ...actions];
4076
4312
  };
4077
4313
 
4078
- const renderEditorGroup = (group, groupIndex, splitButtonEnabled = false) => {
4314
+ const renderEmptyGroupCloseButton = (group, groupIndex) => {
4315
+ return [{
4316
+ childCount: 1,
4317
+ className: EmptyGroupCloseButton,
4318
+ 'data-groupId': String(group.id),
4319
+ name: 'close-group',
4320
+ onClick: HandleClickAction,
4321
+ title: closeEditorGroup(),
4322
+ type: Button$2
4323
+ }, text('✕')];
4324
+ };
4325
+
4326
+ const renderEmptyEditorGroup = (group, groupIndex, style) => {
4327
+ return [{
4328
+ childCount: 1,
4329
+ className: EditorGroup,
4330
+ style,
4331
+ type: Div
4332
+ }, ...renderEmptyGroupCloseButton(group)];
4333
+ };
4334
+
4335
+ const renderEditorGroup = (group, groupIndex, splitButtonEnabled = false, sizeProperty = 'width') => {
4079
4336
  const activeTab = group.tabs.find(tab => tab.id === group.activeTabId);
4337
+ const style = `${sizeProperty}:${group.size}%;`;
4338
+ const hasTabs = group.tabs.length > 0;
4339
+ const hasEmptyGroupCloseButton = !hasTabs;
4340
+ if (hasEmptyGroupCloseButton) {
4341
+ return renderEmptyEditorGroup(group, groupIndex, style);
4342
+ }
4080
4343
  return [{
4081
4344
  childCount: 2,
4082
- className: 'EditorGroup',
4345
+ className: EditorGroup,
4346
+ style,
4083
4347
  type: Div
4084
4348
  }, ...renderEditorGroupHeader(group, groupIndex, splitButtonEnabled), {
4085
4349
  childCount: 1,
4086
- className: 'EditorContainer',
4350
+ className: EditorContainer,
4087
4351
  type: Div
4088
4352
  }, ...renderEditor(activeTab)];
4089
4353
  };
4090
4354
 
4355
+ const renderSash = (direction, sashId, style) => {
4356
+ return {
4357
+ childCount: 0,
4358
+ className: direction === 'horizontal' ? 'Sash SashVertical' : 'Sash SashHorizontal',
4359
+ 'data-sashId': sashId,
4360
+ onPointerDown: HandleSashPointerDown,
4361
+ onPointerMove: HandleSashPointerMove,
4362
+ onPointerUp: HandleSashPointerUp,
4363
+ style,
4364
+ type: Div
4365
+ };
4366
+ };
4367
+
4091
4368
  const getMainAreaVirtualDom = (layout, splitButtonEnabled = false) => {
4369
+ const sizeProperty = layout.direction === 'vertical' ? 'height' : 'width';
4370
+ if (layout.groups.length === 1) {
4371
+ return [{
4372
+ childCount: 1,
4373
+ className: Main,
4374
+ type: Div
4375
+ }, ...renderEditorGroup(layout.groups[0], 0, splitButtonEnabled, sizeProperty)];
4376
+ }
4377
+ const children = [];
4378
+ const isSplit = layout.groups.length > 1;
4379
+ const directionClassName = isSplit ? layout.direction === 'horizontal' ? EditorGroupsVertical : EditorGroupsHorizontal : '';
4380
+ const editorGroupsContainerClassName = directionClassName ? `${EDITOR_GROUPS_CONTAINER} ${directionClassName}` : EDITOR_GROUPS_CONTAINER;
4381
+ let sashOffset = 0;
4382
+ for (let i = 0; i < layout.groups.length; i++) {
4383
+ sashOffset += layout.groups[i].size;
4384
+ if (i > 0) {
4385
+ // Insert sash between groups
4386
+ const beforeGroupId = layout.groups[i - 1].id;
4387
+ const afterGroupId = layout.groups[i].id;
4388
+ const sashId = create(beforeGroupId, afterGroupId);
4389
+ const style = layout.direction === 'horizontal' ? `left:${sashOffset - layout.groups[i].size}%;` : `top:${sashOffset - layout.groups[i].size}%;`;
4390
+ children.push(renderSash(layout.direction, sashId, style));
4391
+ }
4392
+ children.push(...renderEditorGroup(layout.groups[i], i, splitButtonEnabled, sizeProperty));
4393
+ }
4092
4394
  return [{
4093
4395
  childCount: 1,
4094
- className: 'Main',
4396
+ className: Main,
4095
4397
  type: Div
4096
4398
  }, {
4097
- childCount: layout.groups.length,
4098
- className: CSS_CLASSES.EDITOR_GROUPS_CONTAINER,
4099
- role: 'none',
4399
+ childCount: children.length,
4400
+ className: editorGroupsContainerClassName,
4401
+ role: None$1,
4100
4402
  type: Div
4101
- }, ...layout.groups.flatMap((group, groupIndex) => renderEditorGroup(group, groupIndex, splitButtonEnabled))];
4403
+ }, ...children];
4102
4404
  };
4103
4405
 
4104
4406
  const renderItems = (oldState, newState) => {
@@ -4124,6 +4426,8 @@ const renderIncremental = (oldState, newState) => {
4124
4426
 
4125
4427
  const getRenderer = diffType => {
4126
4428
  switch (diffType) {
4429
+ case RenderCss:
4430
+ return renderCss;
4127
4431
  case RenderIncremental:
4128
4432
  return renderIncremental;
4129
4433
  case RenderItems:
@@ -4167,14 +4471,23 @@ const renderEventListeners = () => {
4167
4471
  params: ['handleClickTab', 'event.target.dataset.groupIndex', 'event.target.dataset.index']
4168
4472
  }, {
4169
4473
  name: HandleTabContextMenu,
4170
- params: ['handleTabContextMenu', Button, ClientX, ClientY],
4474
+ params: ['handleTabContextMenu', Button$1, ClientX, ClientY],
4171
4475
  preventDefault: true
4172
4476
  }, {
4173
4477
  name: HandleClickAction,
4174
4478
  params: ['handleClickAction', TargetName, 'event.target.dataset.groupId']
4175
4479
  }, {
4176
4480
  name: HandleHeaderDoubleClick,
4177
- params: ['handleHeaderDoubleClick', 'event.target.className', 'event.target.dataset.groupId']
4481
+ params: ['handleHeaderDoubleClick', EventTargetClassName, 'event.target.dataset.groupId']
4482
+ }, {
4483
+ name: HandleSashPointerDown,
4484
+ params: ['handleSashPointerDown', 'event.target.dataset.sashId', ClientX, ClientY]
4485
+ }, {
4486
+ name: HandleSashPointerMove,
4487
+ params: ['handleSashPointerMove', ClientX, ClientY]
4488
+ }, {
4489
+ name: HandleSashPointerUp,
4490
+ params: ['handleSashPointerUp', ClientX, ClientY]
4178
4491
  }];
4179
4492
  };
4180
4493
 
@@ -4308,7 +4621,7 @@ const commandMap = {
4308
4621
  'MainArea.closeTabsRight': wrapCommand(closeTabsRight),
4309
4622
  'MainArea.copyPath': wrapCommand(copyPath$1),
4310
4623
  'MainArea.copyRelativePath': wrapCommand(copyRelativePath$1),
4311
- 'MainArea.create': create,
4624
+ 'MainArea.create': create$2,
4312
4625
  'MainArea.diff2': diff2,
4313
4626
  'MainArea.focusNext': wrapCommand(focusNextTab),
4314
4627
  'MainArea.focusNextTab': wrapCommand(focusNextTab),
@@ -4327,6 +4640,9 @@ const commandMap = {
4327
4640
  'MainArea.handleModifiedStatusChange': wrapCommand(handleModifiedStatusChange),
4328
4641
  'MainArea.handleResize': wrapGetter(handleResize),
4329
4642
  // TODO would need to have a function that returns newstate as well as commands
4643
+ 'MainArea.handleSashPointerDown': wrapCommand(handleSashPointerDown),
4644
+ 'MainArea.handleSashPointerMove': wrapCommand(handleSashPointerMove),
4645
+ 'MainArea.handleSashPointerUp': wrapCommand(handleSashPointerUp),
4330
4646
  'MainArea.handleTabContextMenu': wrapCommand(handleTabContextMenu),
4331
4647
  'MainArea.handleUriChange': wrapCommand(handleUriChange),
4332
4648
  'MainArea.handleWorkspaceChange': wrapCommand(handleWorkspaceChange),