@lvce-editor/static-server 0.113.11 → 0.113.12

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 (2557) hide show
  1. package/config.json +2587 -2587
  2. package/dist/static-server.js +1 -1
  3. package/package.json +1 -1
  4. package/static/{55af9e7 → 9b7102a}/css/App.css +105 -105
  5. package/static/{55af9e7 → 9b7102a}/css/parts/ViewletExtensions.css +1 -1
  6. package/static/{55af9e7 → 9b7102a}/css/parts/ViewletRunningExtensions.css +1 -1
  7. package/static/{55af9e7 → 9b7102a}/css/parts/ViewletSearch.css +2 -1
  8. package/static/{55af9e7 → 9b7102a}/css/parts/ViewletTerminalTabs.css +1 -1
  9. package/static/{55af9e7 → 9b7102a}/manifest.json +2 -2
  10. package/static/{55af9e7 → 9b7102a}/packages/about-view-worker/dist/aboutWorkerMain.js +0 -166
  11. package/static/{55af9e7 → 9b7102a}/packages/auth-worker/dist/authWorkerMain.js +1 -1
  12. package/static/{55af9e7 → 9b7102a}/packages/component-state-worker/dist/componentStateWorkerMain.js +104 -8
  13. package/static/{55af9e7 → 9b7102a}/packages/editor-worker/dist/editorWorkerMain.js +64 -32
  14. package/static/{55af9e7 → 9b7102a}/packages/explorer-worker/dist/explorerViewWorkerMain.js +2024 -2009
  15. package/static/{55af9e7 → 9b7102a}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +2767 -2761
  16. package/static/{55af9e7 → 9b7102a}/packages/extension-management-worker/dist/extensionManagementWorkerMain.js +443 -128
  17. package/static/{55af9e7 → 9b7102a}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +1765 -1759
  18. package/static/{55af9e7 → 9b7102a}/packages/main-area-worker/dist/mainAreaWorkerMain.js +33 -1
  19. package/static/{55af9e7 → 9b7102a}/packages/output-view/dist/outputViewWorkerMain.js +108 -73
  20. package/static/{55af9e7 → 9b7102a}/packages/problems-view/dist/problemsViewWorkerMain.js +23 -0
  21. package/static/{55af9e7 → 9b7102a}/packages/process-explorer-worker/index.js +705 -516
  22. package/static/{55af9e7 → 9b7102a}/packages/renderer-process/dist/rendererProcessMain.js +14 -1
  23. package/static/{55af9e7 → 9b7102a}/packages/renderer-process/package.json +1 -1
  24. package/static/{55af9e7 → 9b7102a}/packages/renderer-worker/dist/rendererWorkerMain.js +1274 -678
  25. package/static/{55af9e7 → 9b7102a}/packages/status-bar-worker/dist/statusBarWorkerMain.js +716 -652
  26. package/static/{55af9e7 → 9b7102a}/packages/terminal-worker/dist/terminalWorkerMain.js +485 -220
  27. package/static/{55af9e7 → 9b7102a}/packages/text-search-view/dist/textSearchViewMain.js +3000 -2995
  28. package/static/{55af9e7 → 9b7102a}/packages/title-bar-worker/dist/titleBarWorkerMain.js +317 -311
  29. package/static/index.html +4 -4
  30. /package/static/{55af9e7 → 9b7102a}/LICENSE +0 -0
  31. /package/static/{55af9e7 → 9b7102a}/builtin-settings/activity-bar-worker.json +0 -0
  32. /package/static/{55af9e7 → 9b7102a}/builtin-settings/chat-view.json +0 -0
  33. /package/static/{55af9e7 → 9b7102a}/builtin-settings/component-state-worker.json +0 -0
  34. /package/static/{55af9e7 → 9b7102a}/builtin-settings/editor-worker.json +0 -0
  35. /package/static/{55af9e7 → 9b7102a}/builtin-settings/explorer-worker.json +0 -0
  36. /package/static/{55af9e7 → 9b7102a}/builtin-settings/index.json +0 -0
  37. /package/static/{55af9e7 → 9b7102a}/builtin-settings/renderer-worker.json +0 -0
  38. /package/static/{55af9e7 → 9b7102a}/builtin-settings/source-control-worker.json +0 -0
  39. /package/static/{55af9e7 → 9b7102a}/builtin-settings/status-bar-worker.json +0 -0
  40. /package/static/{55af9e7 → 9b7102a}/builtin-settings/text-search-view.json +0 -0
  41. /package/static/{55af9e7 → 9b7102a}/builtin-settings/title-bar-worker.json +0 -0
  42. /package/static/{55af9e7 → 9b7102a}/config/colorTheme.json +0 -0
  43. /package/static/{55af9e7 → 9b7102a}/config/defaultSettings.json +0 -0
  44. /package/static/{55af9e7 → 9b7102a}/config/fileMap.json +0 -0
  45. /package/static/{55af9e7 → 9b7102a}/config/webExtensions.json +0 -0
  46. /package/static/{55af9e7 → 9b7102a}/css/parts/AdditionalDetails.css +0 -0
  47. /package/static/{55af9e7 → 9b7102a}/css/parts/Animation.css +0 -0
  48. /package/static/{55af9e7 → 9b7102a}/css/parts/BrowserScrollBar.css +0 -0
  49. /package/static/{55af9e7 → 9b7102a}/css/parts/Category.css +0 -0
  50. /package/static/{55af9e7 → 9b7102a}/css/parts/Changelog.css +0 -0
  51. /package/static/{55af9e7 → 9b7102a}/css/parts/DebugButtons.css +0 -0
  52. /package/static/{55af9e7 → 9b7102a}/css/parts/DebugChatDetails.css +0 -0
  53. /package/static/{55af9e7 → 9b7102a}/css/parts/DebugChatDetailsClose.css +0 -0
  54. /package/static/{55af9e7 → 9b7102a}/css/parts/DebugChatImagePreview.css +0 -0
  55. /package/static/{55af9e7 → 9b7102a}/css/parts/DebugChatTable.css +0 -0
  56. /package/static/{55af9e7 → 9b7102a}/css/parts/DebugChatTimeline.css +0 -0
  57. /package/static/{55af9e7 → 9b7102a}/css/parts/DebugChatTop.css +0 -0
  58. /package/static/{55af9e7 → 9b7102a}/css/parts/DebugValue.css +0 -0
  59. /package/static/{55af9e7 → 9b7102a}/css/parts/E2eTest.css +0 -0
  60. /package/static/{55af9e7 → 9b7102a}/css/parts/E2eTests.css +0 -0
  61. /package/static/{55af9e7 → 9b7102a}/css/parts/EditorHover.css +0 -0
  62. /package/static/{55af9e7 → 9b7102a}/css/parts/EditorMessage.css +0 -0
  63. /package/static/{55af9e7 → 9b7102a}/css/parts/FeatureContent.css +0 -0
  64. /package/static/{55af9e7 → 9b7102a}/css/parts/Features.css +0 -0
  65. /package/static/{55af9e7 → 9b7102a}/css/parts/ImagePreview.css +0 -0
  66. /package/static/{55af9e7 → 9b7102a}/css/parts/InlineDiffEditor.css +0 -0
  67. /package/static/{55af9e7 → 9b7102a}/css/parts/InputBadge.css +0 -0
  68. /package/static/{55af9e7 → 9b7102a}/css/parts/Key.css +0 -0
  69. /package/static/{55af9e7 → 9b7102a}/css/parts/KeyBindingsHeader.css +0 -0
  70. /package/static/{55af9e7 → 9b7102a}/css/parts/KeyBindingsTable.css +0 -0
  71. /package/static/{55af9e7 → 9b7102a}/css/parts/LegacyDialog.css +0 -0
  72. /package/static/{55af9e7 → 9b7102a}/css/parts/Markdown.css +0 -0
  73. /package/static/{55af9e7 → 9b7102a}/css/parts/Message.css +0 -0
  74. /package/static/{55af9e7 → 9b7102a}/css/parts/NotificationCenter.css +0 -0
  75. /package/static/{55af9e7 → 9b7102a}/css/parts/Preview.css +0 -0
  76. /package/static/{55af9e7 → 9b7102a}/css/parts/ScrollToTop.css +0 -0
  77. /package/static/{55af9e7 → 9b7102a}/css/parts/SettingsHeader.css +0 -0
  78. /package/static/{55af9e7 → 9b7102a}/css/parts/SettingsItems.css +0 -0
  79. /package/static/{55af9e7 → 9b7102a}/css/parts/SettingsSideBar.css +0 -0
  80. /package/static/{55af9e7 → 9b7102a}/css/parts/SourceControlListItem.css +0 -0
  81. /package/static/{55af9e7 → 9b7102a}/css/parts/Table.css +0 -0
  82. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletAbout.css +0 -0
  83. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletBrowserViewOverview.css +0 -0
  84. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletComponentState.css +0 -0
  85. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletCookieImport.css +0 -0
  86. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletDebugConsole.css +0 -0
  87. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletDefineKeyBinding.css +0 -0
  88. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletDiffEditor.css +0 -0
  89. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletEditorWidgetError.css +0 -0
  90. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletExtensionDetail.css +0 -0
  91. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletExtensionDetailHeader.css +0 -0
  92. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletExtensionDetailTabs.css +0 -0
  93. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletFileWatcherExplorer.css +0 -0
  94. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletIframeInspector.css +0 -0
  95. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletKeyBindings.css +0 -0
  96. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletLanguageModels.css +0 -0
  97. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletMedia.css +0 -0
  98. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletOutput.css +0 -0
  99. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletPanel.css +0 -0
  100. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletPanelTabs.css +0 -0
  101. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletPdf.css +0 -0
  102. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletProblems.css +0 -0
  103. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletProcessExplorer.css +0 -0
  104. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletReferences.css +0 -0
  105. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletRunAndDebug.css +0 -0
  106. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletScreenCapture.css +0 -0
  107. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletSecrets.css +0 -0
  108. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletSettings.css +0 -0
  109. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletSimpleBrowser.css +0 -0
  110. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletSimpleBrowserHistory.css +0 -0
  111. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletSourceControl.css +0 -0
  112. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletStorage.css +0 -0
  113. /package/static/{55af9e7 → 9b7102a}/css/parts/ViewletTerminal.css +0 -0
  114. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-bat/README.md +0 -0
  115. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-bat/extension.json +0 -0
  116. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
  117. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
  118. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-c/README.md +0 -0
  119. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-c/extension.json +0 -0
  120. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
  121. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cobol/README.md +0 -0
  122. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cobol/extension.json +0 -0
  123. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cobol/src/tokenizeCobol.js +0 -0
  124. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
  125. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
  126. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
  127. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cpp/README.md +0 -0
  128. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cpp/extension.json +0 -0
  129. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
  130. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
  131. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cson/README.md +0 -0
  132. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cson/extension.json +0 -0
  133. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
  134. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
  135. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-css/README.md +0 -0
  136. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-css/extension.json +0 -0
  137. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
  138. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
  139. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-dart/README.md +0 -0
  140. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-dart/extension.json +0 -0
  141. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
  142. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-desktop/README.md +0 -0
  143. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-desktop/extension.json +0 -0
  144. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
  145. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-docker/README.md +0 -0
  146. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-docker/extension.json +0 -0
  147. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
  148. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-dotenv/README.md +0 -0
  149. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
  150. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
  151. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
  152. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
  153. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
  154. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-elixir/README.md +0 -0
  155. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-elixir/extension.json +0 -0
  156. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
  157. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-elm/README.md +0 -0
  158. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-elm/extension.json +0 -0
  159. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
  160. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-erlang/README.md +0 -0
  161. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-erlang/extension.json +0 -0
  162. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-erlang/languageConfiguration.json +0 -0
  163. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-erlang/src/tokenizeErlang.js +0 -0
  164. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
  165. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
  166. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
  167. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gleam/LICENSE +0 -0
  168. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gleam/README.md +0 -0
  169. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gleam/extension.json +0 -0
  170. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gleam/languageConfiguration.json +0 -0
  171. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gleam/src/tokenizeGleam.js +0 -0
  172. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gn/README.md +0 -0
  173. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gn/extension.json +0 -0
  174. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
  175. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-go/README.md +0 -0
  176. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-go/extension.json +0 -0
  177. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
  178. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-graphql/README.md +0 -0
  179. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-graphql/extension.json +0 -0
  180. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
  181. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-html/README.md +0 -0
  182. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-html/extension.json +0 -0
  183. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
  184. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
  185. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-java/README.md +0 -0
  186. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-java/extension.json +0 -0
  187. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
  188. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
  189. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-javascript/README.md +0 -0
  190. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-javascript/extension.json +0 -0
  191. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
  192. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
  193. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-json/README.md +0 -0
  194. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-json/extension.json +0 -0
  195. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-json/languageConfiguration.json +0 -0
  196. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
  197. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-json5/README.md +0 -0
  198. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-json5/extension.json +0 -0
  199. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
  200. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-jsx/README.md +0 -0
  201. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-jsx/extension.json +0 -0
  202. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
  203. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-julia/README.md +0 -0
  204. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-julia/extension.json +0 -0
  205. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
  206. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-kotlin/README.md +0 -0
  207. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
  208. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
  209. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-less/LICENSE +0 -0
  210. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-less/README.md +0 -0
  211. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-less/extension.json +0 -0
  212. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
  213. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
  214. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-markdown/README.md +0 -0
  215. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-markdown/extension.json +0 -0
  216. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
  217. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-mdx/README.md +0 -0
  218. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-mdx/extension.json +0 -0
  219. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
  220. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-nix/README.md +0 -0
  221. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-nix/extension.json +0 -0
  222. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
  223. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
  224. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
  225. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
  226. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
  227. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-perl/README.md +0 -0
  228. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-perl/extension.json +0 -0
  229. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
  230. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-plaintext/README.md +0 -0
  231. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
  232. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
  233. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-powershell/README.md +0 -0
  234. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-powershell/extension.json +0 -0
  235. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
  236. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-python/README.md +0 -0
  237. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-python/extension.json +0 -0
  238. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
  239. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
  240. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-r/README.md +0 -0
  241. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-r/extension.json +0 -0
  242. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
  243. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-roc/LICENSE +0 -0
  244. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-roc/README.md +0 -0
  245. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-roc/extension.json +0 -0
  246. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-roc/languageConfiguration.json +0 -0
  247. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-roc/src/tokenizeRoc.js +0 -0
  248. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-ruby/README.md +0 -0
  249. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-ruby/extension.json +0 -0
  250. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
  251. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-rust/LICENSE +0 -0
  252. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-rust/README.md +0 -0
  253. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-rust/extension.json +0 -0
  254. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
  255. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
  256. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-scss/README.md +0 -0
  257. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-scss/extension.json +0 -0
  258. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
  259. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
  260. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-shellscript/README.md +0 -0
  261. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
  262. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
  263. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-svelte/README.md +0 -0
  264. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-svelte/extension.json +0 -0
  265. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
  266. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-terraform/README.md +0 -0
  267. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-terraform/extension.json +0 -0
  268. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
  269. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-toml/README.md +0 -0
  270. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-toml/extension.json +0 -0
  271. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
  272. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-typescript/README.md +0 -0
  273. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-typescript/extension.json +0 -0
  274. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-typescript/languageConfiguration.json +0 -0
  275. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
  276. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScriptReact.js +0 -0
  277. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-vue/README.md +0 -0
  278. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-vue/extension.json +0 -0
  279. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
  280. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-wgsl/README.md +0 -0
  281. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
  282. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
  283. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
  284. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-xml/README.md +0 -0
  285. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-xml/extension.json +0 -0
  286. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
  287. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-yaml/README.md +0 -0
  288. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-yaml/extension.json +0 -0
  289. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
  290. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-zig/LICENSE +0 -0
  291. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-zig/README.md +0 -0
  292. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-zig/extension.json +0 -0
  293. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-zig/languageConfiguration.json +0 -0
  294. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.language-basics-zig/src/tokenizeZig.js +0 -0
  295. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.media-preview/LICENSE +0 -0
  296. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.media-preview/README.md +0 -0
  297. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.media-preview/dist/imageConversionWorkerMain.js +0 -0
  298. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.media-preview/dist/mediaPreviewMain.js +0 -0
  299. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.media-preview/extension.json +0 -0
  300. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.media-preview/media/index.css +0 -0
  301. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.media-preview/package.json +0 -0
  302. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
  303. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
  304. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
  305. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
  306. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-ayu/README.md +0 -0
  307. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-ayu/color-theme.json +0 -0
  308. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-ayu/extension.json +0 -0
  309. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-ayu/images/demo.png +0 -0
  310. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-cobalt2/README.md +0 -0
  311. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
  312. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-cobalt2/extension.json +0 -0
  313. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
  314. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
  315. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-gruvbox/README.md +0 -0
  316. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
  317. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-gruvbox/extension.json +0 -0
  318. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-gruvbox/images/demo.png +0 -0
  319. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-high-contrast/README.md +0 -0
  320. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
  321. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-high-contrast/extension.json +0 -0
  322. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-material/README.md +0 -0
  323. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-material/color-theme.json +0 -0
  324. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-material/extension.json +0 -0
  325. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-monokai/README.md +0 -0
  326. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-monokai/color-theme.json +0 -0
  327. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-monokai/extension.json +0 -0
  328. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-noctis-uva/README.md +0 -0
  329. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
  330. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
  331. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
  332. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-palenight/README.md +0 -0
  333. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-palenight/color-theme.json +0 -0
  334. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-palenight/extension.json +0 -0
  335. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-palenight/images/demo.png +0 -0
  336. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-slime/README.md +0 -0
  337. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-slime/color-theme.json +0 -0
  338. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-slime/extension.json +0 -0
  339. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.theme-slime/icon.png +0 -0
  340. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.video-preview/LICENSE +0 -0
  341. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.video-preview/README.md +0 -0
  342. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.video-preview/dist/videoPreviewMain.js +0 -0
  343. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.video-preview/extension.json +0 -0
  344. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.video-preview/media/index.css +0 -0
  345. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.video-preview/package.json +0 -0
  346. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/README.md +0 -0
  347. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/extension.json +0 -0
  348. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icon-theme.json +0 -0
  349. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icon.png +0 -0
  350. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/default_file.svg +0 -0
  351. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/default_folder.svg +0 -0
  352. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/default_folder_opened.svg +0 -0
  353. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/default_root_folder.svg +0 -0
  354. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/default_root_folder_opened.svg +0 -0
  355. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_access.svg +0 -0
  356. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_access2.svg +0 -0
  357. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_actionscript.svg +0 -0
  358. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_actionscript2.svg +0 -0
  359. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ada.svg +0 -0
  360. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_advpl.svg +0 -0
  361. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_affectscript.svg +0 -0
  362. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_affinity.svg +0 -0
  363. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_affinitydesigner.svg +0 -0
  364. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_affinityphoto.svg +0 -0
  365. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_affinitypublisher.svg +0 -0
  366. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_agda.svg +0 -0
  367. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_agents.svg +0 -0
  368. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ai.svg +0 -0
  369. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ai2.svg +0 -0
  370. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_al.svg +0 -0
  371. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_al_dal.svg +0 -0
  372. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_alchemy.svg +0 -0
  373. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_allcontributors.svg +0 -0
  374. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_alloy.svg +0 -0
  375. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_allure.svg +0 -0
  376. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_angular.svg +0 -0
  377. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ansible.svg +0 -0
  378. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_antlers_html.svg +0 -0
  379. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_antlr.svg +0 -0
  380. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_anyscript.svg +0 -0
  381. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_apache.svg +0 -0
  382. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_apex.svg +0 -0
  383. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_api_extractor.svg +0 -0
  384. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_apib.svg +0 -0
  385. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_apib2.svg +0 -0
  386. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_apl.svg +0 -0
  387. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_applescript.svg +0 -0
  388. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_appscript.svg +0 -0
  389. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_appsemble.svg +0 -0
  390. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_appveyor.svg +0 -0
  391. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_arduino.svg +0 -0
  392. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_asciidoc.svg +0 -0
  393. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_aseprite.svg +0 -0
  394. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_asp.svg +0 -0
  395. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_aspx.svg +0 -0
  396. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_assembly.svg +0 -0
  397. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_assembly_script.svg +0 -0
  398. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_astro.svg +0 -0
  399. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_astroconfig.svg +0 -0
  400. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_atom.svg +0 -0
  401. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ats.svg +0 -0
  402. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_attw.svg +0 -0
  403. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_audio.svg +0 -0
  404. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_aurelia.svg +0 -0
  405. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_autohotkey.svg +0 -0
  406. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_autoit.svg +0 -0
  407. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_avif.svg +0 -0
  408. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_avro.svg +0 -0
  409. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_awk.svg +0 -0
  410. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_aws.svg +0 -0
  411. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_azure.svg +0 -0
  412. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_azurepipelines.svg +0 -0
  413. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_azurestreamanalytics.svg +0 -0
  414. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_babel.svg +0 -0
  415. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_babel2.svg +0 -0
  416. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bak.svg +0 -0
  417. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ballerina.svg +0 -0
  418. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bat.svg +0 -0
  419. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bats.svg +0 -0
  420. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bazaar.svg +0 -0
  421. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bazel.svg +0 -0
  422. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bazel_ignore.svg +0 -0
  423. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bazel_version.svg +0 -0
  424. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_befunge.svg +0 -0
  425. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bicep.svg +0 -0
  426. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_biml.svg +0 -0
  427. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_binary.svg +0 -0
  428. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_biome.svg +0 -0
  429. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bitbucketpipeline.svg +0 -0
  430. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bithound.svg +0 -0
  431. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_blade.svg +0 -0
  432. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_blender.svg +0 -0
  433. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_blitzbasic.svg +0 -0
  434. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bolt.svg +0 -0
  435. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bosque.svg +0 -0
  436. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bower.svg +0 -0
  437. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bower2.svg +0 -0
  438. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_brew.svg +0 -0
  439. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_browserslist.svg +0 -0
  440. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bruno.svg +0 -0
  441. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_buckbuild.svg +0 -0
  442. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_buf.svg +0 -0
  443. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bun.svg +0 -0
  444. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bundlemon.svg +0 -0
  445. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bundler.svg +0 -0
  446. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_bunfig.svg +0 -0
  447. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_c.svg +0 -0
  448. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_c2.svg +0 -0
  449. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_c3.svg +0 -0
  450. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_c_al.svg +0 -0
  451. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cabal.svg +0 -0
  452. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_caddy.svg +0 -0
  453. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cake.svg +0 -0
  454. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cakephp.svg +0 -0
  455. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cangjie.svg +0 -0
  456. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_capacitor.svg +0 -0
  457. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_capnp.svg +0 -0
  458. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cargo.svg +0 -0
  459. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_casc.svg +0 -0
  460. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cddl.svg +0 -0
  461. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cert.svg +0 -0
  462. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ceylon.svg +0 -0
  463. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cf.svg +0 -0
  464. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cf2.svg +0 -0
  465. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cfc.svg +0 -0
  466. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cfc2.svg +0 -0
  467. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cfm.svg +0 -0
  468. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cfm2.svg +0 -0
  469. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_changie.svg +0 -0
  470. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cheader.svg +0 -0
  471. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_chef.svg +0 -0
  472. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_chef_cookbook.svg +0 -0
  473. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_circleci.svg +0 -0
  474. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_circom.svg +0 -0
  475. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_clangd.svg +0 -0
  476. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_class.svg +0 -0
  477. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_claude.svg +0 -0
  478. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_clojure.svg +0 -0
  479. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_clojurescript.svg +0 -0
  480. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cloudflare.svg +0 -0
  481. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cloudfoundry.svg +0 -0
  482. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cmake.svg +0 -0
  483. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cobol.svg +0 -0
  484. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_codacy.svg +0 -0
  485. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_codeclimate.svg +0 -0
  486. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_codecov.svg +0 -0
  487. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_codekit.svg +0 -0
  488. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_codemagic.svg +0 -0
  489. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_codeowners.svg +0 -0
  490. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_codeql.svg +0 -0
  491. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_coderabbit.svg +0 -0
  492. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_coffeelint.svg +0 -0
  493. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_coffeescript.svg +0 -0
  494. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_commitizen.svg +0 -0
  495. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_commitlint.svg +0 -0
  496. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_compass.svg +0 -0
  497. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_composer.svg +0 -0
  498. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_conan.svg +0 -0
  499. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_conda.svg +0 -0
  500. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_config.svg +0 -0
  501. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_confluence.svg +0 -0
  502. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_context7.svg +0 -0
  503. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_copilot.svg +0 -0
  504. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_coverage.svg +0 -0
  505. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_coveralls.svg +0 -0
  506. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cpp.svg +0 -0
  507. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cpp2.svg +0 -0
  508. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cpp3.svg +0 -0
  509. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cppheader.svg +0 -0
  510. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_craco.svg +0 -0
  511. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_crowdin.svg +0 -0
  512. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_crystal.svg +0 -0
  513. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_csharp.svg +0 -0
  514. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_csharp2.svg +0 -0
  515. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cspell.svg +0 -0
  516. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_csproj.svg +0 -0
  517. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_css.svg +0 -0
  518. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_css2.svg +0 -0
  519. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_css2map.svg +0 -0
  520. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_csscomb.svg +0 -0
  521. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_csslint.svg +0 -0
  522. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cssmap.svg +0 -0
  523. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cucumber.svg +0 -0
  524. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cuda.svg +0 -0
  525. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cue.svg +0 -0
  526. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cursorrules.svg +0 -0
  527. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cvs.svg +0 -0
  528. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cypress.svg +0 -0
  529. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cypress_spec.svg +0 -0
  530. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_cython.svg +0 -0
  531. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dal.svg +0 -0
  532. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_darcs.svg +0 -0
  533. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dartlang.svg +0 -0
  534. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dartlang_generated.svg +0 -0
  535. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dartlang_ignore.svg +0 -0
  536. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_databricks.svg +0 -0
  537. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_datadog.svg +0 -0
  538. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_db.svg +0 -0
  539. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dbt.svg +0 -0
  540. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_debian.svg +0 -0
  541. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_delphi.svg +0 -0
  542. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_deno.svg +0 -0
  543. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_denoify.svg +0 -0
  544. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dependabot.svg +0 -0
  545. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dependencies.svg +0 -0
  546. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_design_tokens.svg +0 -0
  547. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_devcontainer.svg +0 -0
  548. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_devenv.svg +0 -0
  549. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_devvit.svg +0 -0
  550. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dhall.svg +0 -0
  551. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_diff.svg +0 -0
  552. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_django.svg +0 -0
  553. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dlang.svg +0 -0
  554. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_docker.svg +0 -0
  555. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_docker2.svg +0 -0
  556. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dockertest.svg +0 -0
  557. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dockertest2.svg +0 -0
  558. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_docpad.svg +0 -0
  559. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_docusaurus.svg +0 -0
  560. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_docz.svg +0 -0
  561. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dojo.svg +0 -0
  562. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_doppler.svg +0 -0
  563. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dotenv.svg +0 -0
  564. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dotjs.svg +0 -0
  565. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_doxyfile.svg +0 -0
  566. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_doxygen.svg +0 -0
  567. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_drawio.svg +0 -0
  568. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_drizzle_orm.svg +0 -0
  569. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_drone.svg +0 -0
  570. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_drools.svg +0 -0
  571. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dtd.svg +0 -0
  572. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_duckdb.svg +0 -0
  573. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dune.svg +0 -0
  574. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dustjs.svg +0 -0
  575. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dvc.svg +0 -0
  576. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_dylan.svg +0 -0
  577. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_earthly.svg +0 -0
  578. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_eas-metadata.svg +0 -0
  579. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_edge.svg +0 -0
  580. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_edge2.svg +0 -0
  581. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_editorconfig.svg +0 -0
  582. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_eex.svg +0 -0
  583. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ejs.svg +0 -0
  584. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_elastic.svg +0 -0
  585. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_elasticbeanstalk.svg +0 -0
  586. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_electron.svg +0 -0
  587. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_eleventy.svg +0 -0
  588. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_eleventy2.svg +0 -0
  589. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_elixir.svg +0 -0
  590. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_elm.svg +0 -0
  591. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_elm2.svg +0 -0
  592. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_emacs.svg +0 -0
  593. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ember.svg +0 -0
  594. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ensime.svg +0 -0
  595. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_eps.svg +0 -0
  596. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_epub.svg +0 -0
  597. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_erb.svg +0 -0
  598. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_erlang.svg +0 -0
  599. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_erlang2.svg +0 -0
  600. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_esbuild.svg +0 -0
  601. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_eslint.svg +0 -0
  602. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_eslint2.svg +0 -0
  603. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_esphome.svg +0 -0
  604. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_excalidraw.svg +0 -0
  605. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_excel.svg +0 -0
  606. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_excel2.svg +0 -0
  607. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_expo.svg +0 -0
  608. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_falcon.svg +0 -0
  609. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fantasticon.svg +0 -0
  610. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fastly.svg +0 -0
  611. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fauna.svg +0 -0
  612. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_favicon.svg +0 -0
  613. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fbx.svg +0 -0
  614. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_firebase.svg +0 -0
  615. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_firebasehosting.svg +0 -0
  616. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_firebasestorage.svg +0 -0
  617. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_firestore.svg +0 -0
  618. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fitbit.svg +0 -0
  619. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fla.svg +0 -0
  620. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_flareact.svg +0 -0
  621. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_flash.svg +0 -0
  622. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_flatbuffers.svg +0 -0
  623. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fleet.svg +0 -0
  624. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_floobits.svg +0 -0
  625. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_flow.svg +0 -0
  626. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_flowgorithm.svg +0 -0
  627. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_flutter.svg +0 -0
  628. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_flutter_package.svg +0 -0
  629. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_flyio.svg +0 -0
  630. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_font.svg +0 -0
  631. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_formkit.svg +0 -0
  632. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fortran.svg +0 -0
  633. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fossa.svg +0 -0
  634. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fossil.svg +0 -0
  635. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_freemarker.svg +0 -0
  636. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fritzing.svg +0 -0
  637. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_frontcommerce.svg +0 -0
  638. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fsharp.svg +0 -0
  639. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fsharp2.svg +0 -0
  640. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fsproj.svg +0 -0
  641. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fthtml.svg +0 -0
  642. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_funding.svg +0 -0
  643. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_fusebox.svg +0 -0
  644. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_galen.svg +0 -0
  645. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_galen2.svg +0 -0
  646. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gamemaker.svg +0 -0
  647. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gamemaker2.svg +0 -0
  648. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gamemaker81.svg +0 -0
  649. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gatsby.svg +0 -0
  650. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gcloud.svg +0 -0
  651. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gcode.svg +0 -0
  652. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gdscript.svg +0 -0
  653. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gduid.svg +0 -0
  654. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gemini.svg +0 -0
  655. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_genstat.svg +0 -0
  656. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_geojson.svg +0 -0
  657. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gimp.svg +0 -0
  658. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_git.svg +0 -0
  659. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_git2.svg +0 -0
  660. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gitlab.svg +0 -0
  661. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gitpod.svg +0 -0
  662. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gleam.svg +0 -0
  663. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gleamconfig.svg +0 -0
  664. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_glide.svg +0 -0
  665. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_glimmer.svg +0 -0
  666. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_glitter.svg +0 -0
  667. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_glsl.svg +0 -0
  668. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gltf.svg +0 -0
  669. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_glyphs.svg +0 -0
  670. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gnu.svg +0 -0
  671. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gnuplot.svg +0 -0
  672. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go.svg +0 -0
  673. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go_aqua.svg +0 -0
  674. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go_black.svg +0 -0
  675. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go_fuchsia.svg +0 -0
  676. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go_gopher.svg +0 -0
  677. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go_lightblue.svg +0 -0
  678. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go_package.svg +0 -0
  679. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go_white.svg +0 -0
  680. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go_work.svg +0 -0
  681. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_go_yellow.svg +0 -0
  682. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_goctl.svg +0 -0
  683. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_godot.svg +0 -0
  684. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gpg.svg +0 -0
  685. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gradle.svg +0 -0
  686. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gradle2.svg +0 -0
  687. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_grain.svg +0 -0
  688. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_graphql.svg +0 -0
  689. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_graphql_config.svg +0 -0
  690. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_graphviz.svg +0 -0
  691. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_greenkeeper.svg +0 -0
  692. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gridsome.svg +0 -0
  693. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_grit.svg +0 -0
  694. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_groovy.svg +0 -0
  695. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_groovy2.svg +0 -0
  696. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_grunt.svg +0 -0
  697. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_gulp.svg +0 -0
  698. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_haml.svg +0 -0
  699. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_handlebars.svg +0 -0
  700. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_handlebars2.svg +0 -0
  701. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_harbour.svg +0 -0
  702. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hardhat.svg +0 -0
  703. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hashicorp.svg +0 -0
  704. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_haskell.svg +0 -0
  705. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_haskell2.svg +0 -0
  706. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_haxe.svg +0 -0
  707. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_haxecheckstyle.svg +0 -0
  708. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_haxedevelop.svg +0 -0
  709. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_helix.svg +0 -0
  710. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_helm.svg +0 -0
  711. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_histoire.svg +0 -0
  712. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hjson.svg +0 -0
  713. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hlsl.svg +0 -0
  714. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_homeassistant.svg +0 -0
  715. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_horusec.svg +0 -0
  716. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_host.svg +0 -0
  717. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_html.svg +0 -0
  718. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_htmlhint.svg +0 -0
  719. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_htmlvalidate.svg +0 -0
  720. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_http.svg +0 -0
  721. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_huff.svg +0 -0
  722. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hugo.svg +0 -0
  723. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_humanstxt.svg +0 -0
  724. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hunspell.svg +0 -0
  725. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hurl.svg +0 -0
  726. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_husky.svg +0 -0
  727. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hy.svg +0 -0
  728. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hygen.svg +0 -0
  729. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_hypr.svg +0 -0
  730. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_icl.svg +0 -0
  731. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_idris.svg +0 -0
  732. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_idrisbin.svg +0 -0
  733. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_idrispkg.svg +0 -0
  734. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_image.svg +0 -0
  735. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_imba.svg +0 -0
  736. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_inc.svg +0 -0
  737. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_infopath.svg +0 -0
  738. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_informix.svg +0 -0
  739. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ini.svg +0 -0
  740. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ink.svg +0 -0
  741. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_innosetup.svg +0 -0
  742. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_io.svg +0 -0
  743. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_iodine.svg +0 -0
  744. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ionic.svg +0 -0
  745. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jake.svg +0 -0
  746. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_janet.svg +0 -0
  747. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jar.svg +0 -0
  748. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jasmine.svg +0 -0
  749. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_java.svg +0 -0
  750. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jbuilder.svg +0 -0
  751. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jekyll.svg +0 -0
  752. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jenkins.svg +0 -0
  753. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jest.svg +0 -0
  754. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jest_snapshot.svg +0 -0
  755. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jetbrains.svg +0 -0
  756. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jinja.svg +0 -0
  757. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jpm.svg +0 -0
  758. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_js.svg +0 -0
  759. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_js_official.svg +0 -0
  760. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jsbeautify.svg +0 -0
  761. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jsconfig.svg +0 -0
  762. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jscpd.svg +0 -0
  763. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jshint.svg +0 -0
  764. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jsmap.svg +0 -0
  765. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_json.svg +0 -0
  766. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_json2.svg +0 -0
  767. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_json5.svg +0 -0
  768. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_json_official.svg +0 -0
  769. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_json_schema.svg +0 -0
  770. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jsonld.svg +0 -0
  771. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jsonnet.svg +0 -0
  772. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jsp.svg +0 -0
  773. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jsr.svg +0 -0
  774. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jss.svg +0 -0
  775. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_juice.svg +0 -0
  776. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_julia.svg +0 -0
  777. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_julia2.svg +0 -0
  778. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_jupyter.svg +0 -0
  779. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_just.svg +0 -0
  780. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_k.svg +0 -0
  781. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_karma.svg +0 -0
  782. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_key.svg +0 -0
  783. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_kitchenci.svg +0 -0
  784. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_kite.svg +0 -0
  785. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_kivy.svg +0 -0
  786. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_knex.svg +0 -0
  787. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_knip.svg +0 -0
  788. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_kos.svg +0 -0
  789. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_kotlin.svg +0 -0
  790. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_kusto.svg +0 -0
  791. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_language_configuration.svg +0 -0
  792. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lark.svg +0 -0
  793. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_latino.svg +0 -0
  794. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_layout.svg +0 -0
  795. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lean.svg +0 -0
  796. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_leanconfig.svg +0 -0
  797. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lefthook.svg +0 -0
  798. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lemon.svg +0 -0
  799. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lerna.svg +0 -0
  800. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_less.svg +0 -0
  801. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lex.svg +0 -0
  802. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_liara.svg +0 -0
  803. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_base.svg +0 -0
  804. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_calc.svg +0 -0
  805. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_draw.svg +0 -0
  806. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_impress.svg +0 -0
  807. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_math.svg +0 -0
  808. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_libreoffice_writer.svg +0 -0
  809. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_license.svg +0 -0
  810. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_licensebat.svg +0 -0
  811. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_actionscript2.svg +0 -0
  812. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_ada.svg +0 -0
  813. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_agda.svg +0 -0
  814. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_agents.svg +0 -0
  815. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_apl.svg +0 -0
  816. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_astro.svg +0 -0
  817. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_astroconfig.svg +0 -0
  818. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_babel.svg +0 -0
  819. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_babel2.svg +0 -0
  820. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_cabal.svg +0 -0
  821. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_circleci.svg +0 -0
  822. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_cloudfoundry.svg +0 -0
  823. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_codacy.svg +0 -0
  824. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_codeclimate.svg +0 -0
  825. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_codeowners.svg +0 -0
  826. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_config.svg +0 -0
  827. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_copilot.svg +0 -0
  828. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_crystal.svg +0 -0
  829. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_cue.svg +0 -0
  830. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_cypress.svg +0 -0
  831. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_cypress_spec.svg +0 -0
  832. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_db.svg +0 -0
  833. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_deno.svg +0 -0
  834. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_devenv.svg +0 -0
  835. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_dhall.svg +0 -0
  836. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_docpad.svg +0 -0
  837. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_drizzle_orm.svg +0 -0
  838. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_drone.svg +0 -0
  839. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_duckdb.svg +0 -0
  840. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_eas-metadata.svg +0 -0
  841. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy.svg +0 -0
  842. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_eleventy2.svg +0 -0
  843. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_esphome.svg +0 -0
  844. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_expo.svg +0 -0
  845. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_firebasehosting.svg +0 -0
  846. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_fla.svg +0 -0
  847. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_font.svg +0 -0
  848. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_gamemaker2.svg +0 -0
  849. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_gradle.svg +0 -0
  850. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_hashicorp.svg +0 -0
  851. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_hjson.svg +0 -0
  852. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_huff.svg +0 -0
  853. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_ini.svg +0 -0
  854. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_io.svg +0 -0
  855. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_js.svg +0 -0
  856. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_jsconfig.svg +0 -0
  857. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_jsmap.svg +0 -0
  858. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_json.svg +0 -0
  859. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_json5.svg +0 -0
  860. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_json_schema.svg +0 -0
  861. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_jsonld.svg +0 -0
  862. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_kite.svg +0 -0
  863. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_lark.svg +0 -0
  864. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_lean.svg +0 -0
  865. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_leanconfig.svg +0 -0
  866. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_lerna.svg +0 -0
  867. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_mailing.svg +0 -0
  868. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_markuplint.svg +0 -0
  869. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_mcp.svg +0 -0
  870. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_mdx-components.svg +0 -0
  871. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_mdx.svg +0 -0
  872. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_mikro_orm.svg +0 -0
  873. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_mlang.svg +0 -0
  874. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_mustache.svg +0 -0
  875. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_mypy.svg +0 -0
  876. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_neo4j.svg +0 -0
  877. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_netlify.svg +0 -0
  878. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_next.svg +0 -0
  879. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_nim.svg +0 -0
  880. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_nx.svg +0 -0
  881. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_objidconfig.svg +0 -0
  882. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_openHAB.svg +0 -0
  883. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_opencode.svg +0 -0
  884. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_oxc.svg +0 -0
  885. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_packship.svg +0 -0
  886. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_pcl.svg +0 -0
  887. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_pnpm.svg +0 -0
  888. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_prettier.svg +0 -0
  889. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_prisma.svg +0 -0
  890. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_purescript.svg +0 -0
  891. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_quasar.svg +0 -0
  892. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_railway.svg +0 -0
  893. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_raku.svg +0 -0
  894. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_razzle.svg +0 -0
  895. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_reactrouter.svg +0 -0
  896. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_readthedocs.svg +0 -0
  897. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_rehype.svg +0 -0
  898. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_remark.svg +0 -0
  899. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_render.svg +0 -0
  900. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_replit.svg +0 -0
  901. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_retext.svg +0 -0
  902. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_rolldown.svg +0 -0
  903. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_rome.svg +0 -0
  904. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_rubocop.svg +0 -0
  905. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_rust.svg +0 -0
  906. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_rust_toolchain.svg +0 -0
  907. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_safetensors.svg +0 -0
  908. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_shadcn.svg +0 -0
  909. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_shaderlab.svg +0 -0
  910. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_skill.svg +0 -0
  911. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_solidity.svg +0 -0
  912. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_spin.svg +0 -0
  913. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_stylelint.svg +0 -0
  914. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_stylus.svg +0 -0
  915. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_symfony.svg +0 -0
  916. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_systemd.svg +0 -0
  917. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_systemverilog.svg +0 -0
  918. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_testcafe.svg +0 -0
  919. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_testjs.svg +0 -0
  920. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_tex.svg +0 -0
  921. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_tm.svg +0 -0
  922. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_tmux.svg +0 -0
  923. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_todo.svg +0 -0
  924. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_toit.svg +0 -0
  925. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_toml.svg +0 -0
  926. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_toon.svg +0 -0
  927. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_tree.svg +0 -0
  928. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_trivy.svg +0 -0
  929. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_turbo.svg +0 -0
  930. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_unibeautify.svg +0 -0
  931. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_vash.svg +0 -0
  932. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_vercel.svg +0 -0
  933. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_vite.svg +0 -0
  934. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_vitest.svg +0 -0
  935. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_vsix.svg +0 -0
  936. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_vsixmanifest.svg +0 -0
  937. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_warp.svg +0 -0
  938. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_wesl.svg +0 -0
  939. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_xfl.svg +0 -0
  940. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_xorg.svg +0 -0
  941. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_yaml.svg +0 -0
  942. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_yaml_official.svg +0 -0
  943. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_light_zeit.svg +0 -0
  944. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lighthouse.svg +0 -0
  945. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lilypond.svg +0 -0
  946. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lime.svg +0 -0
  947. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lintstagedrc.svg +0 -0
  948. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_liquid.svg +0 -0
  949. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lisp.svg +0 -0
  950. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_livescript.svg +0 -0
  951. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lnk.svg +0 -0
  952. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_locale.svg +0 -0
  953. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_log.svg +0 -0
  954. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lolcode.svg +0 -0
  955. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lsl.svg +0 -0
  956. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lua.svg +0 -0
  957. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_luau.svg +0 -0
  958. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lychee.svg +0 -0
  959. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_lync.svg +0 -0
  960. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mailing.svg +0 -0
  961. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_makefile.svg +0 -0
  962. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_manifest.svg +0 -0
  963. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_manifest_bak.svg +0 -0
  964. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_manifest_skip.svg +0 -0
  965. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_map.svg +0 -0
  966. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mariadb.svg +0 -0
  967. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_markdown.svg +0 -0
  968. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_markdownlint.svg +0 -0
  969. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_markdownlint_ignore.svg +0 -0
  970. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_marko.svg +0 -0
  971. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_markojs.svg +0 -0
  972. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_markuplint.svg +0 -0
  973. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_master-co.svg +0 -0
  974. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_matlab.svg +0 -0
  975. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_maven.svg +0 -0
  976. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_maxscript.svg +0 -0
  977. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_maya.svg +0 -0
  978. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mcp.svg +0 -0
  979. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mdx-components.svg +0 -0
  980. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mdx.svg +0 -0
  981. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mdxlint.svg +0 -0
  982. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mediawiki.svg +0 -0
  983. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mercurial.svg +0 -0
  984. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mermaid.svg +0 -0
  985. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_meson.svg +0 -0
  986. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_metal.svg +0 -0
  987. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_meteor.svg +0 -0
  988. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_metro.svg +0 -0
  989. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mikro_orm.svg +0 -0
  990. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_minecraft.svg +0 -0
  991. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mise.svg +0 -0
  992. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mivascript.svg +0 -0
  993. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mjml.svg +0 -0
  994. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mlang.svg +0 -0
  995. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mocha.svg +0 -0
  996. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_modernizr.svg +0 -0
  997. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_modernjs.svg +0 -0
  998. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mojo.svg +0 -0
  999. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mojolicious.svg +0 -0
  1000. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_moleculer.svg +0 -0
  1001. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mondoo.svg +0 -0
  1002. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mongo.svg +0 -0
  1003. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_monotone.svg +0 -0
  1004. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_motif.svg +0 -0
  1005. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mson.svg +0 -0
  1006. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_msw.svg +0 -0
  1007. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mustache.svg +0 -0
  1008. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mvt.svg +0 -0
  1009. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mvtcss.svg +0 -0
  1010. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mvtjs.svg +0 -0
  1011. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mypy.svg +0 -0
  1012. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_mysql.svg +0 -0
  1013. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_n64.svg +0 -0
  1014. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nanostaged.svg +0 -0
  1015. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ndst.svg +0 -0
  1016. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nearly.svg +0 -0
  1017. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_neo4j.svg +0 -0
  1018. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_js.svg +0 -0
  1019. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_adapter_ts.svg +0 -0
  1020. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_js.svg +0 -0
  1021. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_controller_ts.svg +0 -0
  1022. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_js.svg +0 -0
  1023. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_decorator_ts.svg +0 -0
  1024. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_js.svg +0 -0
  1025. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_filter_ts.svg +0 -0
  1026. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_js.svg +0 -0
  1027. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_gateway_ts.svg +0 -0
  1028. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_js.svg +0 -0
  1029. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_guard_ts.svg +0 -0
  1030. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_js.svg +0 -0
  1031. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_interceptor_ts.svg +0 -0
  1032. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_js.svg +0 -0
  1033. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_middleware_ts.svg +0 -0
  1034. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_module_js.svg +0 -0
  1035. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_module_ts.svg +0 -0
  1036. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_js.svg +0 -0
  1037. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_pipe_ts.svg +0 -0
  1038. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_service_js.svg +0 -0
  1039. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nest_service_ts.svg +0 -0
  1040. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nestjs.svg +0 -0
  1041. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_netlify.svg +0 -0
  1042. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_next.svg +0 -0
  1043. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nextflow.svg +0 -0
  1044. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_css.svg +0 -0
  1045. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_dart.svg +0 -0
  1046. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_html.svg +0 -0
  1047. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js.svg +0 -0
  1048. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_js2.svg +0 -0
  1049. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_less.svg +0 -0
  1050. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_sass.svg +0 -0
  1051. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_scss.svg +0 -0
  1052. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts.svg +0 -0
  1053. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_component_ts2.svg +0 -0
  1054. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_js.svg +0 -0
  1055. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_controller_ts.svg +0 -0
  1056. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_dart.svg +0 -0
  1057. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js.svg +0 -0
  1058. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_js2.svg +0 -0
  1059. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts.svg +0 -0
  1060. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_directive_ts2.svg +0 -0
  1061. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_dart.svg +0 -0
  1062. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_js.svg +0 -0
  1063. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_guard_ts.svg +0 -0
  1064. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_dart.svg +0 -0
  1065. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_js.svg +0 -0
  1066. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_interceptor_ts.svg +0 -0
  1067. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_module_dart.svg +0 -0
  1068. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js.svg +0 -0
  1069. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_module_js2.svg +0 -0
  1070. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts.svg +0 -0
  1071. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_module_ts2.svg +0 -0
  1072. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_dart.svg +0 -0
  1073. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js.svg +0 -0
  1074. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_js2.svg +0 -0
  1075. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts.svg +0 -0
  1076. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_pipe_ts2.svg +0 -0
  1077. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_dart.svg +0 -0
  1078. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js.svg +0 -0
  1079. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_js2.svg +0 -0
  1080. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts.svg +0 -0
  1081. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_routing_ts2.svg +0 -0
  1082. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_service_dart.svg +0 -0
  1083. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js.svg +0 -0
  1084. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_service_js2.svg +0 -0
  1085. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts.svg +0 -0
  1086. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_service_ts2.svg +0 -0
  1087. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_dart.svg +0 -0
  1088. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js.svg +0 -0
  1089. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_js2.svg +0 -0
  1090. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts.svg +0 -0
  1091. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_smart_component_ts2.svg +0 -0
  1092. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ng_tailwind.svg +0 -0
  1093. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nginx.svg +0 -0
  1094. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nim.svg +0 -0
  1095. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nimble.svg +0 -0
  1096. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ninja.svg +0 -0
  1097. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nix.svg +0 -0
  1098. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_njsproj.svg +0 -0
  1099. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_noc.svg +0 -0
  1100. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_node.svg +0 -0
  1101. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_node2.svg +0 -0
  1102. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nodemon.svg +0 -0
  1103. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_npm.svg +0 -0
  1104. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_npmpackagejsonlint.svg +0 -0
  1105. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nsi.svg +0 -0
  1106. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nsri-integrity.svg +0 -0
  1107. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nsri.svg +0 -0
  1108. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nuget.svg +0 -0
  1109. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_numpy.svg +0 -0
  1110. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nunjucks.svg +0 -0
  1111. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nushell.svg +0 -0
  1112. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nuxt.svg +0 -0
  1113. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nx.svg +0 -0
  1114. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_nyc.svg +0 -0
  1115. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_objectivec.svg +0 -0
  1116. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_objectivecpp.svg +0 -0
  1117. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_objidconfig.svg +0 -0
  1118. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ocaml.svg +0 -0
  1119. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ocaml_intf.svg +0 -0
  1120. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ogone.svg +0 -0
  1121. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_onenote.svg +0 -0
  1122. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_opam.svg +0 -0
  1123. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_openHAB.svg +0 -0
  1124. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_opencl.svg +0 -0
  1125. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_opencode.svg +0 -0
  1126. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_openscad.svg +0 -0
  1127. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_opentofu.svg +0 -0
  1128. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_org.svg +0 -0
  1129. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_orval.svg +0 -0
  1130. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_outlook.svg +0 -0
  1131. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ovpn.svg +0 -0
  1132. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_oxc.svg +0 -0
  1133. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_oxlint.svg +0 -0
  1134. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_package.svg +0 -0
  1135. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_packship.svg +0 -0
  1136. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_paket.svg +0 -0
  1137. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pandacss.svg +0 -0
  1138. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_parcel.svg +0 -0
  1139. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_parquet.svg +0 -0
  1140. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_patch.svg +0 -0
  1141. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pawn.svg +0 -0
  1142. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pcl.svg +0 -0
  1143. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pddl.svg +0 -0
  1144. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pddl_happenings.svg +0 -0
  1145. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pddl_plan.svg +0 -0
  1146. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pdf.svg +0 -0
  1147. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pdf2.svg +0 -0
  1148. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pdm.svg +0 -0
  1149. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_peeky.svg +0 -0
  1150. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_perl.svg +0 -0
  1151. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_perl2.svg +0 -0
  1152. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_perl6.svg +0 -0
  1153. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pgsql.svg +0 -0
  1154. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_photoshop.svg +0 -0
  1155. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_photoshop2.svg +0 -0
  1156. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_php.svg +0 -0
  1157. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_php2.svg +0 -0
  1158. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_php3.svg +0 -0
  1159. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_phpcsfixer.svg +0 -0
  1160. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_phpstan.svg +0 -0
  1161. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_phpunit.svg +0 -0
  1162. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_phraseapp.svg +0 -0
  1163. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pine.svg +0 -0
  1164. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pip.svg +0 -0
  1165. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pipeline.svg +0 -0
  1166. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pixi.svg +0 -0
  1167. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_plantuml.svg +0 -0
  1168. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_platformio.svg +0 -0
  1169. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_playwright.svg +0 -0
  1170. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_plsql.svg +0 -0
  1171. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_plsql_package.svg +0 -0
  1172. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_body.svg +0 -0
  1173. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_header.svg +0 -0
  1174. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_plsql_package_spec.svg +0 -0
  1175. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pm2.svg +0 -0
  1176. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pnpm.svg +0 -0
  1177. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_poedit.svg +0 -0
  1178. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_poetry.svg +0 -0
  1179. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_polyglot.svg +0 -0
  1180. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_polymer.svg +0 -0
  1181. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pony.svg +0 -0
  1182. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_postcss.svg +0 -0
  1183. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_postcssconfig.svg +0 -0
  1184. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_postman.svg +0 -0
  1185. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_postscript.svg +0 -0
  1186. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powerbi.svg +0 -0
  1187. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powerpoint.svg +0 -0
  1188. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powerpoint2.svg +0 -0
  1189. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powershell.svg +0 -0
  1190. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powershell2.svg +0 -0
  1191. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powershell_format.svg +0 -0
  1192. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd.svg +0 -0
  1193. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powershell_psd2.svg +0 -0
  1194. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm.svg +0 -0
  1195. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powershell_psm2.svg +0 -0
  1196. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_powershell_types.svg +0 -0
  1197. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_preact.svg +0 -0
  1198. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_precommit.svg +0 -0
  1199. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_prettier.svg +0 -0
  1200. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_prisma.svg +0 -0
  1201. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_prismaconfig.svg +0 -0
  1202. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_processinglang.svg +0 -0
  1203. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_procfile.svg +0 -0
  1204. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_progress.svg +0 -0
  1205. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_prolog.svg +0 -0
  1206. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_prometheus.svg +0 -0
  1207. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_protobuf.svg +0 -0
  1208. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_protractor.svg +0 -0
  1209. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_publiccode.svg +0 -0
  1210. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_publisher.svg +0 -0
  1211. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pug.svg +0 -0
  1212. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pulumi.svg +0 -0
  1213. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_puppet.svg +0 -0
  1214. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_purescript.svg +0 -0
  1215. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_purgecss.svg +0 -0
  1216. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pyenv.svg +0 -0
  1217. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pypi.svg +0 -0
  1218. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pyret.svg +0 -0
  1219. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pyscript.svg +0 -0
  1220. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pytest.svg +0 -0
  1221. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_python.svg +0 -0
  1222. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pythonconfig.svg +0 -0
  1223. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pythowo.svg +0 -0
  1224. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pytyped.svg +0 -0
  1225. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_pyup.svg +0 -0
  1226. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_q.svg +0 -0
  1227. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_qbs.svg +0 -0
  1228. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_qlikview.svg +0 -0
  1229. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_qml.svg +0 -0
  1230. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_qmldir.svg +0 -0
  1231. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_qrc.svg +0 -0
  1232. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_qsharp.svg +0 -0
  1233. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_quasar.svg +0 -0
  1234. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_quokka.svg +0 -0
  1235. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_r.svg +0 -0
  1236. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ra_syntax_tree.svg +0 -0
  1237. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_racket.svg +0 -0
  1238. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rails.svg +0 -0
  1239. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_railway.svg +0 -0
  1240. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rake.svg +0 -0
  1241. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_raku.svg +0 -0
  1242. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_raml.svg +0 -0
  1243. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_razor.svg +0 -0
  1244. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_razzle.svg +0 -0
  1245. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_reactjs.svg +0 -0
  1246. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_reactrouter.svg +0 -0
  1247. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_reacttemplate.svg +0 -0
  1248. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_reactts.svg +0 -0
  1249. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_readthedocs.svg +0 -0
  1250. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_reason.svg +0 -0
  1251. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_red.svg +0 -0
  1252. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_registry.svg +0 -0
  1253. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rego.svg +0 -0
  1254. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rehype.svg +0 -0
  1255. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_remark.svg +0 -0
  1256. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_render.svg +0 -0
  1257. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_renovate.svg +0 -0
  1258. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_replit.svg +0 -0
  1259. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rescript.svg +0 -0
  1260. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rest.svg +0 -0
  1261. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_retext.svg +0 -0
  1262. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rexx.svg +0 -0
  1263. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_riot.svg +0 -0
  1264. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ripple.svg +0 -0
  1265. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rmd.svg +0 -0
  1266. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rnc.svg +0 -0
  1267. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_robotframework.svg +0 -0
  1268. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_robots.svg +0 -0
  1269. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rolldown.svg +0 -0
  1270. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rollup.svg +0 -0
  1271. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rome.svg +0 -0
  1272. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ron.svg +0 -0
  1273. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rproj.svg +0 -0
  1274. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rspec.svg +0 -0
  1275. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rss.svg +0 -0
  1276. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rubocop.svg +0 -0
  1277. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ruby.svg +0 -0
  1278. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ruff.svg +0 -0
  1279. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rust.svg +0 -0
  1280. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_rust_toolchain.svg +0 -0
  1281. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_s-lang.svg +0 -0
  1282. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_safetensors.svg +0 -0
  1283. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sails.svg +0 -0
  1284. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_saltstack.svg +0 -0
  1285. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_san.svg +0 -0
  1286. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sapphire_framework_cli.svg +0 -0
  1287. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sas.svg +0 -0
  1288. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sass.svg +0 -0
  1289. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sbt.svg +0 -0
  1290. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_scala.svg +0 -0
  1291. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_scilab.svg +0 -0
  1292. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_script.svg +0 -0
  1293. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_scss.svg +0 -0
  1294. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_scss2.svg +0 -0
  1295. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sdlang.svg +0 -0
  1296. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_search_result.svg +0 -0
  1297. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_seedkit.svg +0 -0
  1298. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sentry.svg +0 -0
  1299. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sequelize.svg +0 -0
  1300. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_serverless.svg +0 -0
  1301. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_shadcn.svg +0 -0
  1302. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_shaderlab.svg +0 -0
  1303. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_shell.svg +0 -0
  1304. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_shellcheck.svg +0 -0
  1305. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_shuttle.svg +0 -0
  1306. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_silverstripe.svg +0 -0
  1307. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sino.svg +0 -0
  1308. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sitemap.svg +0 -0
  1309. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_siyuan.svg +0 -0
  1310. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sketch.svg +0 -0
  1311. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_skill.svg +0 -0
  1312. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_skipper.svg +0 -0
  1313. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_slang.svg +0 -0
  1314. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_slashup.svg +0 -0
  1315. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_slice.svg +0 -0
  1316. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_slim.svg +0 -0
  1317. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_slint.svg +0 -0
  1318. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sln.svg +0 -0
  1319. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sln2.svg +0 -0
  1320. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_smarty.svg +0 -0
  1321. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_smithery.svg +0 -0
  1322. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_snakemake.svg +0 -0
  1323. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_snapcraft.svg +0 -0
  1324. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_snaplet.svg +0 -0
  1325. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_snort.svg +0 -0
  1326. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_snyk.svg +0 -0
  1327. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_solidarity.svg +0 -0
  1328. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_solidity.svg +0 -0
  1329. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_source.svg +0 -0
  1330. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_spacengine.svg +0 -0
  1331. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sparql.svg +0 -0
  1332. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_spin.svg +0 -0
  1333. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sqf.svg +0 -0
  1334. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sql.svg +0 -0
  1335. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sqlite.svg +0 -0
  1336. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_squirrel.svg +0 -0
  1337. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sss.svg +0 -0
  1338. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sst.svg +0 -0
  1339. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_stackblitz.svg +0 -0
  1340. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_stan.svg +0 -0
  1341. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_stata.svg +0 -0
  1342. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_stencil.svg +0 -0
  1343. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_storyboard.svg +0 -0
  1344. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_storybook.svg +0 -0
  1345. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_stryker.svg +0 -0
  1346. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_stylable.svg +0 -0
  1347. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_style.svg +0 -0
  1348. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_styled.svg +0 -0
  1349. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_stylelint.svg +0 -0
  1350. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_stylish_haskell.svg +0 -0
  1351. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_stylus.svg +0 -0
  1352. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_sublime.svg +0 -0
  1353. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_subversion.svg +0 -0
  1354. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_svelte.svg +0 -0
  1355. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_svelteconfig.svg +0 -0
  1356. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_svg.svg +0 -0
  1357. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_svgo.svg +0 -0
  1358. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_swagger.svg +0 -0
  1359. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_swc.svg +0 -0
  1360. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_swift.svg +0 -0
  1361. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_swig.svg +0 -0
  1362. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_symfony.svg +0 -0
  1363. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_syncpack.svg +0 -0
  1364. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_systemd.svg +0 -0
  1365. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_systemverilog.svg +0 -0
  1366. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_t4tt.svg +0 -0
  1367. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tailwind.svg +0 -0
  1368. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tamagui.svg +0 -0
  1369. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_taplo.svg +0 -0
  1370. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_taskfile.svg +0 -0
  1371. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tauri.svg +0 -0
  1372. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tcl.svg +0 -0
  1373. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_teal.svg +0 -0
  1374. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_templ.svg +0 -0
  1375. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tera.svg +0 -0
  1376. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_terraform.svg +0 -0
  1377. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_test.svg +0 -0
  1378. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_testcafe.svg +0 -0
  1379. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_testjs.svg +0 -0
  1380. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_testplane.svg +0 -0
  1381. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_testts.svg +0 -0
  1382. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tex.svg +0 -0
  1383. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_text.svg +0 -0
  1384. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_textile.svg +0 -0
  1385. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_textlint.svg +0 -0
  1386. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tfs.svg +0 -0
  1387. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_thinkscript.svg +0 -0
  1388. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tiltfile.svg +0 -0
  1389. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tm.svg +0 -0
  1390. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tmux.svg +0 -0
  1391. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_todo.svg +0 -0
  1392. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_toit.svg +0 -0
  1393. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_toml.svg +0 -0
  1394. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_toon.svg +0 -0
  1395. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tox.svg +0 -0
  1396. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_travis.svg +0 -0
  1397. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tree.svg +0 -0
  1398. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tres.svg +0 -0
  1399. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_trivy.svg +0 -0
  1400. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_truffle.svg +0 -0
  1401. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_trunk.svg +0 -0
  1402. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tsbuildinfo.svg +0 -0
  1403. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tscn.svg +0 -0
  1404. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tsconfig.svg +0 -0
  1405. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tsconfig_official.svg +0 -0
  1406. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tsdoc.svg +0 -0
  1407. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tsdown.svg +0 -0
  1408. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tslint.svg +0 -0
  1409. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tt.svg +0 -0
  1410. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_ttcn.svg +0 -0
  1411. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_tuc.svg +0 -0
  1412. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_turbo.svg +0 -0
  1413. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_twig.svg +0 -0
  1414. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_typedoc.svg +0 -0
  1415. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_typescript.svg +0 -0
  1416. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_typescript_official.svg +0 -0
  1417. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef.svg +0 -0
  1418. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_typescriptdef_official.svg +0 -0
  1419. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_typo3.svg +0 -0
  1420. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_uiua.svg +0 -0
  1421. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_unibeautify.svg +0 -0
  1422. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_unison.svg +0 -0
  1423. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_unlicense.svg +0 -0
  1424. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_unocss.svg +0 -0
  1425. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_uv.svg +0 -0
  1426. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vagrant.svg +0 -0
  1427. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vala.svg +0 -0
  1428. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vale.svg +0 -0
  1429. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vanilla_extract.svg +0 -0
  1430. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vapi.svg +0 -0
  1431. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vapor.svg +0 -0
  1432. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vash.svg +0 -0
  1433. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vb.svg +0 -0
  1434. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vba.svg +0 -0
  1435. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vbhtml.svg +0 -0
  1436. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vbproj.svg +0 -0
  1437. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vcxproj.svg +0 -0
  1438. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_velocity.svg +0 -0
  1439. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vento.svg +0 -0
  1440. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vercel.svg +0 -0
  1441. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_verilog.svg +0 -0
  1442. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vhdl.svg +0 -0
  1443. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_video.svg +0 -0
  1444. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_view.svg +0 -0
  1445. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vim.svg +0 -0
  1446. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vite.svg +0 -0
  1447. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vitest.svg +0 -0
  1448. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vlang.svg +0 -0
  1449. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_volt.svg +0 -0
  1450. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vroom.svg +0 -0
  1451. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vscode-insiders.svg +0 -0
  1452. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vscode.svg +0 -0
  1453. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vscode2.svg +0 -0
  1454. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vscode3.svg +0 -0
  1455. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vscode_test.svg +0 -0
  1456. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vsix.svg +0 -0
  1457. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vsixmanifest.svg +0 -0
  1458. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vue.svg +0 -0
  1459. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vueconfig.svg +0 -0
  1460. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vvvvvv.svg +0 -0
  1461. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_vyper.svg +0 -0
  1462. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wallaby.svg +0 -0
  1463. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wally.svg +0 -0
  1464. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_warp.svg +0 -0
  1465. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wasm.svg +0 -0
  1466. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wasp.svg +0 -0
  1467. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_watchmanconfig.svg +0 -0
  1468. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wdio.svg +0 -0
  1469. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_weblate.svg +0 -0
  1470. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_webpack.svg +0 -0
  1471. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wenyan.svg +0 -0
  1472. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wercker.svg +0 -0
  1473. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wesl.svg +0 -0
  1474. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wgsl.svg +0 -0
  1475. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wikitext.svg +0 -0
  1476. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_windi.svg +0 -0
  1477. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wit.svg +0 -0
  1478. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wolfram.svg +0 -0
  1479. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_word.svg +0 -0
  1480. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_word2.svg +0 -0
  1481. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wpml.svg +0 -0
  1482. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wurst.svg +0 -0
  1483. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wxml.svg +0 -0
  1484. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wxss.svg +0 -0
  1485. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_wxt.svg +0 -0
  1486. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xaml.svg +0 -0
  1487. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xcode.svg +0 -0
  1488. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xfl.svg +0 -0
  1489. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xib.svg +0 -0
  1490. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xliff.svg +0 -0
  1491. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xmake.svg +0 -0
  1492. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xml.svg +0 -0
  1493. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xo.svg +0 -0
  1494. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xorg.svg +0 -0
  1495. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xquery.svg +0 -0
  1496. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_xsl.svg +0 -0
  1497. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_yacc.svg +0 -0
  1498. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_yaml.svg +0 -0
  1499. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_yaml_official.svg +0 -0
  1500. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_yamllint.svg +0 -0
  1501. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_yandex.svg +0 -0
  1502. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_yang.svg +0 -0
  1503. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_yarn.svg +0 -0
  1504. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_yeoman.svg +0 -0
  1505. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_zeit.svg +0 -0
  1506. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_zig.svg +0 -0
  1507. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_zip.svg +0 -0
  1508. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_zip2.svg +0 -0
  1509. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/file_type_zizmor.svg +0 -0
  1510. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_android.svg +0 -0
  1511. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_android_opened.svg +0 -0
  1512. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_angular.svg +0 -0
  1513. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_angular_opened.svg +0 -0
  1514. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_apache.svg +0 -0
  1515. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_apache_opened.svg +0 -0
  1516. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_api.svg +0 -0
  1517. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_api_opened.svg +0 -0
  1518. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_app.svg +0 -0
  1519. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_app_opened.svg +0 -0
  1520. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_arangodb.svg +0 -0
  1521. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_arangodb_opened.svg +0 -0
  1522. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_asset.svg +0 -0
  1523. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_asset_opened.svg +0 -0
  1524. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_astro.svg +0 -0
  1525. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_astro_opened.svg +0 -0
  1526. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_audio.svg +0 -0
  1527. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_audio_opened.svg +0 -0
  1528. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_aurelia.svg +0 -0
  1529. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_aurelia_opened.svg +0 -0
  1530. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_aws.svg +0 -0
  1531. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_aws_opened.svg +0 -0
  1532. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_azure.svg +0 -0
  1533. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_azure_opened.svg +0 -0
  1534. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines.svg +0 -0
  1535. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_azurepipelines_opened.svg +0 -0
  1536. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_binary.svg +0 -0
  1537. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_binary_opened.svg +0 -0
  1538. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_bloc.svg +0 -0
  1539. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_bloc_opened.svg +0 -0
  1540. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_blueprint.svg +0 -0
  1541. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_blueprint_opened.svg +0 -0
  1542. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_bot.svg +0 -0
  1543. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_bot_opened.svg +0 -0
  1544. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_bower.svg +0 -0
  1545. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_bower_opened.svg +0 -0
  1546. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_buildkite.svg +0 -0
  1547. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_buildkite_opened.svg +0 -0
  1548. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cake.svg +0 -0
  1549. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cake_opened.svg +0 -0
  1550. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cargo.svg +0 -0
  1551. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cargo_opened.svg +0 -0
  1552. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_certificate.svg +0 -0
  1553. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_certificate_opened.svg +0 -0
  1554. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_changesets.svg +0 -0
  1555. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_changesets_opened.svg +0 -0
  1556. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_chef.svg +0 -0
  1557. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_chef_opened.svg +0 -0
  1558. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_circleci.svg +0 -0
  1559. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_circleci_opened.svg +0 -0
  1560. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_claude.svg +0 -0
  1561. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_claude_opened.svg +0 -0
  1562. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cli.svg +0 -0
  1563. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cli_opened.svg +0 -0
  1564. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_client.svg +0 -0
  1565. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_client_opened.svg +0 -0
  1566. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare.svg +0 -0
  1567. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cloudflare_opened.svg +0 -0
  1568. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cmake.svg +0 -0
  1569. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cmake_opened.svg +0 -0
  1570. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_common.svg +0 -0
  1571. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_common_opened.svg +0 -0
  1572. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_component.svg +0 -0
  1573. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_component_opened.svg +0 -0
  1574. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_composer.svg +0 -0
  1575. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_composer_opened.svg +0 -0
  1576. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_config.svg +0 -0
  1577. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_config_opened.svg +0 -0
  1578. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_controller.svg +0 -0
  1579. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_controller_opened.svg +0 -0
  1580. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_coverage.svg +0 -0
  1581. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_coverage_opened.svg +0 -0
  1582. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_css.svg +0 -0
  1583. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_css2.svg +0 -0
  1584. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_css2_opened.svg +0 -0
  1585. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_css_opened.svg +0 -0
  1586. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cubit.svg +0 -0
  1587. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cubit_opened.svg +0 -0
  1588. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cursor.svg +0 -0
  1589. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cursor_opened.svg +0 -0
  1590. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cypress.svg +0 -0
  1591. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_cypress_opened.svg +0 -0
  1592. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_dapr.svg +0 -0
  1593. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_dapr_opened.svg +0 -0
  1594. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_dart.svg +0 -0
  1595. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_dart_opened.svg +0 -0
  1596. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_databricks.svg +0 -0
  1597. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_databricks_opened.svg +0 -0
  1598. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_datadog.svg +0 -0
  1599. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_datadog_opened.svg +0 -0
  1600. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_db.svg +0 -0
  1601. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_db_opened.svg +0 -0
  1602. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_debian.svg +0 -0
  1603. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_debian_opened.svg +0 -0
  1604. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_dependabot.svg +0 -0
  1605. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_dependabot_opened.svg +0 -0
  1606. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer.svg +0 -0
  1607. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_devcontainer_opened.svg +0 -0
  1608. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_devenv.svg +0 -0
  1609. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_devenv_opened.svg +0 -0
  1610. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_dist.svg +0 -0
  1611. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_dist_opened.svg +0 -0
  1612. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_docker.svg +0 -0
  1613. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_docker_opened.svg +0 -0
  1614. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_docs.svg +0 -0
  1615. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_docs_opened.svg +0 -0
  1616. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_e2e.svg +0 -0
  1617. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_e2e_opened.svg +0 -0
  1618. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk.svg +0 -0
  1619. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_elasticbeanstalk_opened.svg +0 -0
  1620. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_electron.svg +0 -0
  1621. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_electron_opened.svg +0 -0
  1622. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_environments.svg +0 -0
  1623. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_environments_opened.svg +0 -0
  1624. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_expo.svg +0 -0
  1625. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_expo_opened.svg +0 -0
  1626. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_favicon.svg +0 -0
  1627. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_favicon_opened.svg +0 -0
  1628. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_flow.svg +0 -0
  1629. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_flow_opened.svg +0 -0
  1630. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_flutter.svg +0 -0
  1631. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_flutter_opened.svg +0 -0
  1632. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_fonts.svg +0 -0
  1633. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_fonts_opened.svg +0 -0
  1634. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce.svg +0 -0
  1635. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_frontcommerce_opened.svg +0 -0
  1636. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gcp.svg +0 -0
  1637. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gcp_opened.svg +0 -0
  1638. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gemini.svg +0 -0
  1639. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gemini_opened.svg +0 -0
  1640. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_git.svg +0 -0
  1641. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_git_opened.svg +0 -0
  1642. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_github.svg +0 -0
  1643. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_github_opened.svg +0 -0
  1644. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gitlab.svg +0 -0
  1645. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gitlab_opened.svg +0 -0
  1646. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_godot.svg +0 -0
  1647. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_godot_opened.svg +0 -0
  1648. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gradle.svg +0 -0
  1649. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gradle_opened.svg +0 -0
  1650. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_graphql.svg +0 -0
  1651. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_graphql_opened.svg +0 -0
  1652. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_grunt.svg +0 -0
  1653. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_grunt_opened.svg +0 -0
  1654. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gulp.svg +0 -0
  1655. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_gulp_opened.svg +0 -0
  1656. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_haxelib.svg +0 -0
  1657. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_haxelib_opened.svg +0 -0
  1658. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_helper.svg +0 -0
  1659. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_helper_opened.svg +0 -0
  1660. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_histoire.svg +0 -0
  1661. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_histoire_opened.svg +0 -0
  1662. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_hook.svg +0 -0
  1663. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_hook_opened.svg +0 -0
  1664. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_husky.svg +0 -0
  1665. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_husky_opened.svg +0 -0
  1666. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_idea.svg +0 -0
  1667. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_idea_opened.svg +0 -0
  1668. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_images.svg +0 -0
  1669. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_images_opened.svg +0 -0
  1670. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_include.svg +0 -0
  1671. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_include_opened.svg +0 -0
  1672. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_interfaces.svg +0 -0
  1673. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_interfaces_opened.svg +0 -0
  1674. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_ios.svg +0 -0
  1675. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_ios_opened.svg +0 -0
  1676. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_js.svg +0 -0
  1677. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_js_opened.svg +0 -0
  1678. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_json.svg +0 -0
  1679. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_json_official.svg +0 -0
  1680. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_json_official_opened.svg +0 -0
  1681. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_json_opened.svg +0 -0
  1682. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_junie.svg +0 -0
  1683. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_junie_opened.svg +0 -0
  1684. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_kiro.svg +0 -0
  1685. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_kiro_opened.svg +0 -0
  1686. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_kotlin.svg +0 -0
  1687. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_kotlin_opened.svg +0 -0
  1688. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes.svg +0 -0
  1689. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_kubernetes_opened.svg +0 -0
  1690. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_less.svg +0 -0
  1691. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_less_opened.svg +0 -0
  1692. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_library.svg +0 -0
  1693. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_library_opened.svg +0 -0
  1694. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor.svg +0 -0
  1695. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_cursor_opened.svg +0 -0
  1696. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress.svg +0 -0
  1697. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_cypress_opened.svg +0 -0
  1698. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_devenv.svg +0 -0
  1699. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_devenv_opened.svg +0 -0
  1700. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_electron.svg +0 -0
  1701. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_electron_opened.svg +0 -0
  1702. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_expo.svg +0 -0
  1703. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_expo_opened.svg +0 -0
  1704. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts.svg +0 -0
  1705. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_fonts_opened.svg +0 -0
  1706. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle.svg +0 -0
  1707. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_gradle_opened.svg +0 -0
  1708. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor.svg +0 -0
  1709. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_meteor_opened.svg +0 -0
  1710. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy.svg +0 -0
  1711. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_mypy_opened.svg +0 -0
  1712. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql.svg +0 -0
  1713. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_mysql_opened.svg +0 -0
  1714. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_node.svg +0 -0
  1715. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_node_opened.svg +0 -0
  1716. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_redux.svg +0 -0
  1717. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_redux_opened.svg +0 -0
  1718. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_sass.svg +0 -0
  1719. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_sass_opened.svg +0 -0
  1720. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_zed.svg +0 -0
  1721. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_light_zed_opened.svg +0 -0
  1722. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_linux.svg +0 -0
  1723. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_linux_opened.svg +0 -0
  1724. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_locale.svg +0 -0
  1725. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_locale_opened.svg +0 -0
  1726. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_log.svg +0 -0
  1727. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_log_opened.svg +0 -0
  1728. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_macos.svg +0 -0
  1729. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_macos_opened.svg +0 -0
  1730. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mariadb.svg +0 -0
  1731. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mariadb_opened.svg +0 -0
  1732. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_maven.svg +0 -0
  1733. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_maven_opened.svg +0 -0
  1734. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki.svg +0 -0
  1735. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mediawiki_opened.svg +0 -0
  1736. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_memcached.svg +0 -0
  1737. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_memcached_opened.svg +0 -0
  1738. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_meteor.svg +0 -0
  1739. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_meteor_opened.svg +0 -0
  1740. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_middleware.svg +0 -0
  1741. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_middleware_opened.svg +0 -0
  1742. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_minecraft.svg +0 -0
  1743. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_minecraft_opened.svg +0 -0
  1744. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_minikube.svg +0 -0
  1745. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_minikube_opened.svg +0 -0
  1746. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mjml.svg +0 -0
  1747. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mjml_opened.svg +0 -0
  1748. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mobile.svg +0 -0
  1749. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mobile_opened.svg +0 -0
  1750. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mock.svg +0 -0
  1751. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mock_opened.svg +0 -0
  1752. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_model.svg +0 -0
  1753. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_model_opened.svg +0 -0
  1754. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_module.svg +0 -0
  1755. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_module_opened.svg +0 -0
  1756. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mojo.svg +0 -0
  1757. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mojo_opened.svg +0 -0
  1758. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mongodb.svg +0 -0
  1759. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mongodb_opened.svg +0 -0
  1760. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mypy.svg +0 -0
  1761. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mypy_opened.svg +0 -0
  1762. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mysql.svg +0 -0
  1763. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_mysql_opened.svg +0 -0
  1764. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_netlify.svg +0 -0
  1765. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_netlify_opened.svg +0 -0
  1766. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_next.svg +0 -0
  1767. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_next_opened.svg +0 -0
  1768. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_nginx.svg +0 -0
  1769. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_nginx_opened.svg +0 -0
  1770. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_nix.svg +0 -0
  1771. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_nix_opened.svg +0 -0
  1772. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_node.svg +0 -0
  1773. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_node_opened.svg +0 -0
  1774. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_notebooks.svg +0 -0
  1775. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_notebooks_opened.svg +0 -0
  1776. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_notification.svg +0 -0
  1777. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_notification_opened.svg +0 -0
  1778. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_nuget.svg +0 -0
  1779. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_nuget_opened.svg +0 -0
  1780. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_nuxt.svg +0 -0
  1781. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_nuxt_opened.svg +0 -0
  1782. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_package.svg +0 -0
  1783. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_package_opened.svg +0 -0
  1784. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_paket.svg +0 -0
  1785. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_paket_opened.svg +0 -0
  1786. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_php.svg +0 -0
  1787. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_php_opened.svg +0 -0
  1788. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_platformio.svg +0 -0
  1789. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_platformio_opened.svg +0 -0
  1790. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_plugin.svg +0 -0
  1791. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_plugin_opened.svg +0 -0
  1792. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_prisma.svg +0 -0
  1793. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_prisma_opened.svg +0 -0
  1794. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_private.svg +0 -0
  1795. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_private_opened.svg +0 -0
  1796. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_public.svg +0 -0
  1797. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_public_opened.svg +0 -0
  1798. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_pytest.svg +0 -0
  1799. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_pytest_opened.svg +0 -0
  1800. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_python.svg +0 -0
  1801. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_python_opened.svg +0 -0
  1802. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_ravendb.svg +0 -0
  1803. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_ravendb_opened.svg +0 -0
  1804. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_redis.svg +0 -0
  1805. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_redis_opened.svg +0 -0
  1806. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_redux.svg +0 -0
  1807. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_redux_opened.svg +0 -0
  1808. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_route.svg +0 -0
  1809. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_route_opened.svg +0 -0
  1810. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_sass.svg +0 -0
  1811. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_sass_opened.svg +0 -0
  1812. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_script.svg +0 -0
  1813. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_script_opened.svg +0 -0
  1814. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_seedkit.svg +0 -0
  1815. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_seedkit_opened.svg +0 -0
  1816. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_server.svg +0 -0
  1817. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_server_opened.svg +0 -0
  1818. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_services.svg +0 -0
  1819. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_services_opened.svg +0 -0
  1820. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_shared.svg +0 -0
  1821. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_shared_opened.svg +0 -0
  1822. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_snaplet.svg +0 -0
  1823. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_snaplet_opened.svg +0 -0
  1824. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_spin.svg +0 -0
  1825. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_spin_opened.svg +0 -0
  1826. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_src.svg +0 -0
  1827. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_src_opened.svg +0 -0
  1828. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_sso.svg +0 -0
  1829. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_sso_opened.svg +0 -0
  1830. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_story.svg +0 -0
  1831. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_story_opened.svg +0 -0
  1832. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_style.svg +0 -0
  1833. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_style_opened.svg +0 -0
  1834. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_supabase.svg +0 -0
  1835. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_supabase_opened.svg +0 -0
  1836. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_svelte.svg +0 -0
  1837. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_svelte_opened.svg +0 -0
  1838. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_swagger.svg +0 -0
  1839. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_swagger_opened.svg +0 -0
  1840. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_tauri.svg +0 -0
  1841. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_tauri_opened.svg +0 -0
  1842. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_temp.svg +0 -0
  1843. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_temp_opened.svg +0 -0
  1844. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_template.svg +0 -0
  1845. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_template_opened.svg +0 -0
  1846. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_test.svg +0 -0
  1847. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_test_opened.svg +0 -0
  1848. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_theme.svg +0 -0
  1849. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_theme_opened.svg +0 -0
  1850. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_tools.svg +0 -0
  1851. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_tools_opened.svg +0 -0
  1852. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_travis.svg +0 -0
  1853. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_travis_opened.svg +0 -0
  1854. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_trunk.svg +0 -0
  1855. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_trunk_opened.svg +0 -0
  1856. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_turbo.svg +0 -0
  1857. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_turbo_opened.svg +0 -0
  1858. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_typescript.svg +0 -0
  1859. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_typescript_opened.svg +0 -0
  1860. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_typings.svg +0 -0
  1861. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_typings2.svg +0 -0
  1862. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_typings2_opened.svg +0 -0
  1863. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_typings_opened.svg +0 -0
  1864. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vagrant.svg +0 -0
  1865. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vagrant_opened.svg +0 -0
  1866. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vercel.svg +0 -0
  1867. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vercel_opened.svg +0 -0
  1868. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_video.svg +0 -0
  1869. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_video_opened.svg +0 -0
  1870. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_view.svg +0 -0
  1871. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_view_opened.svg +0 -0
  1872. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vitepress.svg +0 -0
  1873. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vitepress_opened.svg +0 -0
  1874. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vs.svg +0 -0
  1875. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vs2.svg +0 -0
  1876. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vs2_opened.svg +0 -0
  1877. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vs_opened.svg +0 -0
  1878. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode.svg +0 -0
  1879. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode2.svg +0 -0
  1880. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode2_opened.svg +0 -0
  1881. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode3.svg +0 -0
  1882. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode3_opened.svg +0 -0
  1883. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode_opened.svg +0 -0
  1884. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test.svg +0 -0
  1885. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2.svg +0 -0
  1886. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test2_opened.svg +0 -0
  1887. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3.svg +0 -0
  1888. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test3_opened.svg +0 -0
  1889. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_vscode_test_opened.svg +0 -0
  1890. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_wasm.svg +0 -0
  1891. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_wasm_opened.svg +0 -0
  1892. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_wasp.svg +0 -0
  1893. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_wasp_opened.svg +0 -0
  1894. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_webpack.svg +0 -0
  1895. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_webpack_opened.svg +0 -0
  1896. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_windows.svg +0 -0
  1897. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_windows_opened.svg +0 -0
  1898. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_windsurf.svg +0 -0
  1899. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_windsurf_opened.svg +0 -0
  1900. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_wit.svg +0 -0
  1901. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_wit_opened.svg +0 -0
  1902. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_www.svg +0 -0
  1903. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_www_opened.svg +0 -0
  1904. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_yarn.svg +0 -0
  1905. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_yarn_opened.svg +0 -0
  1906. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_zed.svg +0 -0
  1907. /package/static/{55af9e7 → 9b7102a}/extensions/builtin.vscode-icons/icons/folder_type_zed_opened.svg +0 -0
  1908. /package/static/{55af9e7 → 9b7102a}/fonts/FiraCode-VariableFont.ttf +0 -0
  1909. /package/static/{55af9e7 → 9b7102a}/icons/account.svg +0 -0
  1910. /package/static/{55af9e7 → 9b7102a}/icons/activate-breakpoints.svg +0 -0
  1911. /package/static/{55af9e7 → 9b7102a}/icons/add-small.svg +0 -0
  1912. /package/static/{55af9e7 → 9b7102a}/icons/add.svg +0 -0
  1913. /package/static/{55af9e7 → 9b7102a}/icons/agent.svg +0 -0
  1914. /package/static/{55af9e7 → 9b7102a}/icons/archive.svg +0 -0
  1915. /package/static/{55af9e7 → 9b7102a}/icons/arrow-both.svg +0 -0
  1916. /package/static/{55af9e7 → 9b7102a}/icons/arrow-circle-down.svg +0 -0
  1917. /package/static/{55af9e7 → 9b7102a}/icons/arrow-circle-left.svg +0 -0
  1918. /package/static/{55af9e7 → 9b7102a}/icons/arrow-circle-right.svg +0 -0
  1919. /package/static/{55af9e7 → 9b7102a}/icons/arrow-circle-up.svg +0 -0
  1920. /package/static/{55af9e7 → 9b7102a}/icons/arrow-down.svg +0 -0
  1921. /package/static/{55af9e7 → 9b7102a}/icons/arrow-left.svg +0 -0
  1922. /package/static/{55af9e7 → 9b7102a}/icons/arrow-right.svg +0 -0
  1923. /package/static/{55af9e7 → 9b7102a}/icons/arrow-small-down.svg +0 -0
  1924. /package/static/{55af9e7 → 9b7102a}/icons/arrow-small-left.svg +0 -0
  1925. /package/static/{55af9e7 → 9b7102a}/icons/arrow-small-right.svg +0 -0
  1926. /package/static/{55af9e7 → 9b7102a}/icons/arrow-small-up.svg +0 -0
  1927. /package/static/{55af9e7 → 9b7102a}/icons/arrow-swap.svg +0 -0
  1928. /package/static/{55af9e7 → 9b7102a}/icons/arrow-up.svg +0 -0
  1929. /package/static/{55af9e7 → 9b7102a}/icons/ask.svg +0 -0
  1930. /package/static/{55af9e7 → 9b7102a}/icons/attach.svg +0 -0
  1931. /package/static/{55af9e7 → 9b7102a}/icons/azure-devops.svg +0 -0
  1932. /package/static/{55af9e7 → 9b7102a}/icons/azure.svg +0 -0
  1933. /package/static/{55af9e7 → 9b7102a}/icons/beaker-stop.svg +0 -0
  1934. /package/static/{55af9e7 → 9b7102a}/icons/beaker.svg +0 -0
  1935. /package/static/{55af9e7 → 9b7102a}/icons/bell-dot.svg +0 -0
  1936. /package/static/{55af9e7 → 9b7102a}/icons/bell-slash-dot.svg +0 -0
  1937. /package/static/{55af9e7 → 9b7102a}/icons/bell-slash.svg +0 -0
  1938. /package/static/{55af9e7 → 9b7102a}/icons/bell.svg +0 -0
  1939. /package/static/{55af9e7 → 9b7102a}/icons/blank.svg +0 -0
  1940. /package/static/{55af9e7 → 9b7102a}/icons/bold.svg +0 -0
  1941. /package/static/{55af9e7 → 9b7102a}/icons/book.svg +0 -0
  1942. /package/static/{55af9e7 → 9b7102a}/icons/bookmark.svg +0 -0
  1943. /package/static/{55af9e7 → 9b7102a}/icons/bracket-dot.svg +0 -0
  1944. /package/static/{55af9e7 → 9b7102a}/icons/bracket-error.svg +0 -0
  1945. /package/static/{55af9e7 → 9b7102a}/icons/briefcase.svg +0 -0
  1946. /package/static/{55af9e7 → 9b7102a}/icons/broadcast.svg +0 -0
  1947. /package/static/{55af9e7 → 9b7102a}/icons/browser.svg +0 -0
  1948. /package/static/{55af9e7 → 9b7102a}/icons/bug.svg +0 -0
  1949. /package/static/{55af9e7 → 9b7102a}/icons/build.svg +0 -0
  1950. /package/static/{55af9e7 → 9b7102a}/icons/calendar.svg +0 -0
  1951. /package/static/{55af9e7 → 9b7102a}/icons/call-incoming.svg +0 -0
  1952. /package/static/{55af9e7 → 9b7102a}/icons/call-outgoing.svg +0 -0
  1953. /package/static/{55af9e7 → 9b7102a}/icons/case-sensitive.svg +0 -0
  1954. /package/static/{55af9e7 → 9b7102a}/icons/chat-sparkle-error.svg +0 -0
  1955. /package/static/{55af9e7 → 9b7102a}/icons/chat-sparkle-warning.svg +0 -0
  1956. /package/static/{55af9e7 → 9b7102a}/icons/chat-sparkle.svg +0 -0
  1957. /package/static/{55af9e7 → 9b7102a}/icons/check-all.svg +0 -0
  1958. /package/static/{55af9e7 → 9b7102a}/icons/check.svg +0 -0
  1959. /package/static/{55af9e7 → 9b7102a}/icons/checklist.svg +0 -0
  1960. /package/static/{55af9e7 → 9b7102a}/icons/chevron-down.svg +0 -0
  1961. /package/static/{55af9e7 → 9b7102a}/icons/chevron-left.svg +0 -0
  1962. /package/static/{55af9e7 → 9b7102a}/icons/chevron-right.svg +0 -0
  1963. /package/static/{55af9e7 → 9b7102a}/icons/chevron-up.svg +0 -0
  1964. /package/static/{55af9e7 → 9b7102a}/icons/chip.svg +0 -0
  1965. /package/static/{55af9e7 → 9b7102a}/icons/chrome-close.svg +0 -0
  1966. /package/static/{55af9e7 → 9b7102a}/icons/chrome-maximize.svg +0 -0
  1967. /package/static/{55af9e7 → 9b7102a}/icons/chrome-minimize.svg +0 -0
  1968. /package/static/{55af9e7 → 9b7102a}/icons/chrome-restore.svg +0 -0
  1969. /package/static/{55af9e7 → 9b7102a}/icons/circle-filled.svg +0 -0
  1970. /package/static/{55af9e7 → 9b7102a}/icons/circle-large-filled.svg +0 -0
  1971. /package/static/{55af9e7 → 9b7102a}/icons/circle-large.svg +0 -0
  1972. /package/static/{55af9e7 → 9b7102a}/icons/circle-slash.svg +0 -0
  1973. /package/static/{55af9e7 → 9b7102a}/icons/circle-small-filled.svg +0 -0
  1974. /package/static/{55af9e7 → 9b7102a}/icons/circle-small.svg +0 -0
  1975. /package/static/{55af9e7 → 9b7102a}/icons/circle.svg +0 -0
  1976. /package/static/{55af9e7 → 9b7102a}/icons/circuit-board.svg +0 -0
  1977. /package/static/{55af9e7 → 9b7102a}/icons/claude.svg +0 -0
  1978. /package/static/{55af9e7 → 9b7102a}/icons/clear-all.svg +0 -0
  1979. /package/static/{55af9e7 → 9b7102a}/icons/clippy.svg +0 -0
  1980. /package/static/{55af9e7 → 9b7102a}/icons/clockface.svg +0 -0
  1981. /package/static/{55af9e7 → 9b7102a}/icons/close-all.svg +0 -0
  1982. /package/static/{55af9e7 → 9b7102a}/icons/close.svg +0 -0
  1983. /package/static/{55af9e7 → 9b7102a}/icons/cloud-download.svg +0 -0
  1984. /package/static/{55af9e7 → 9b7102a}/icons/cloud-small.svg +0 -0
  1985. /package/static/{55af9e7 → 9b7102a}/icons/cloud-upload.svg +0 -0
  1986. /package/static/{55af9e7 → 9b7102a}/icons/cloud.svg +0 -0
  1987. /package/static/{55af9e7 → 9b7102a}/icons/code-oss.svg +0 -0
  1988. /package/static/{55af9e7 → 9b7102a}/icons/code-review.svg +0 -0
  1989. /package/static/{55af9e7 → 9b7102a}/icons/code.svg +0 -0
  1990. /package/static/{55af9e7 → 9b7102a}/icons/coffee.svg +0 -0
  1991. /package/static/{55af9e7 → 9b7102a}/icons/collapse-all.svg +0 -0
  1992. /package/static/{55af9e7 → 9b7102a}/icons/collection-small.svg +0 -0
  1993. /package/static/{55af9e7 → 9b7102a}/icons/collection.svg +0 -0
  1994. /package/static/{55af9e7 → 9b7102a}/icons/color-mode.svg +0 -0
  1995. /package/static/{55af9e7 → 9b7102a}/icons/combine.svg +0 -0
  1996. /package/static/{55af9e7 → 9b7102a}/icons/comment-discussion-quote.svg +0 -0
  1997. /package/static/{55af9e7 → 9b7102a}/icons/comment-discussion-sparkle.svg +0 -0
  1998. /package/static/{55af9e7 → 9b7102a}/icons/comment-discussion.svg +0 -0
  1999. /package/static/{55af9e7 → 9b7102a}/icons/comment-draft.svg +0 -0
  2000. /package/static/{55af9e7 → 9b7102a}/icons/comment-unresolved.svg +0 -0
  2001. /package/static/{55af9e7 → 9b7102a}/icons/comment.svg +0 -0
  2002. /package/static/{55af9e7 → 9b7102a}/icons/compass-active.svg +0 -0
  2003. /package/static/{55af9e7 → 9b7102a}/icons/compass-dot.svg +0 -0
  2004. /package/static/{55af9e7 → 9b7102a}/icons/compass.svg +0 -0
  2005. /package/static/{55af9e7 → 9b7102a}/icons/copilot-blocked.svg +0 -0
  2006. /package/static/{55af9e7 → 9b7102a}/icons/copilot-error.svg +0 -0
  2007. /package/static/{55af9e7 → 9b7102a}/icons/copilot-in-progress.svg +0 -0
  2008. /package/static/{55af9e7 → 9b7102a}/icons/copilot-large.svg +0 -0
  2009. /package/static/{55af9e7 → 9b7102a}/icons/copilot-not-connected.svg +0 -0
  2010. /package/static/{55af9e7 → 9b7102a}/icons/copilot-snooze.svg +0 -0
  2011. /package/static/{55af9e7 → 9b7102a}/icons/copilot-success.svg +0 -0
  2012. /package/static/{55af9e7 → 9b7102a}/icons/copilot-unavailable.svg +0 -0
  2013. /package/static/{55af9e7 → 9b7102a}/icons/copilot-warning-large.svg +0 -0
  2014. /package/static/{55af9e7 → 9b7102a}/icons/copilot-warning.svg +0 -0
  2015. /package/static/{55af9e7 → 9b7102a}/icons/copilot.svg +0 -0
  2016. /package/static/{55af9e7 → 9b7102a}/icons/copy.svg +0 -0
  2017. /package/static/{55af9e7 → 9b7102a}/icons/coverage.svg +0 -0
  2018. /package/static/{55af9e7 → 9b7102a}/icons/credit-card.svg +0 -0
  2019. /package/static/{55af9e7 → 9b7102a}/icons/cursor.svg +0 -0
  2020. /package/static/{55af9e7 → 9b7102a}/icons/dash.svg +0 -0
  2021. /package/static/{55af9e7 → 9b7102a}/icons/dashboard.svg +0 -0
  2022. /package/static/{55af9e7 → 9b7102a}/icons/database.svg +0 -0
  2023. /package/static/{55af9e7 → 9b7102a}/icons/debug-all.svg +0 -0
  2024. /package/static/{55af9e7 → 9b7102a}/icons/debug-alt-2.svg +0 -0
  2025. /package/static/{55af9e7 → 9b7102a}/icons/debug-alt-small.svg +0 -0
  2026. /package/static/{55af9e7 → 9b7102a}/icons/debug-alt.svg +0 -0
  2027. /package/static/{55af9e7 → 9b7102a}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
  2028. /package/static/{55af9e7 → 9b7102a}/icons/debug-breakpoint-conditional.svg +0 -0
  2029. /package/static/{55af9e7 → 9b7102a}/icons/debug-breakpoint-data-unverified.svg +0 -0
  2030. /package/static/{55af9e7 → 9b7102a}/icons/debug-breakpoint-data.svg +0 -0
  2031. /package/static/{55af9e7 → 9b7102a}/icons/debug-breakpoint-function-unverified.svg +0 -0
  2032. /package/static/{55af9e7 → 9b7102a}/icons/debug-breakpoint-function.svg +0 -0
  2033. /package/static/{55af9e7 → 9b7102a}/icons/debug-breakpoint-log-unverified.svg +0 -0
  2034. /package/static/{55af9e7 → 9b7102a}/icons/debug-breakpoint-log.svg +0 -0
  2035. /package/static/{55af9e7 → 9b7102a}/icons/debug-breakpoint-unsupported.svg +0 -0
  2036. /package/static/{55af9e7 → 9b7102a}/icons/debug-connected.svg +0 -0
  2037. /package/static/{55af9e7 → 9b7102a}/icons/debug-console.svg +0 -0
  2038. /package/static/{55af9e7 → 9b7102a}/icons/debug-continue-small.svg +0 -0
  2039. /package/static/{55af9e7 → 9b7102a}/icons/debug-continue.svg +0 -0
  2040. /package/static/{55af9e7 → 9b7102a}/icons/debug-coverage.svg +0 -0
  2041. /package/static/{55af9e7 → 9b7102a}/icons/debug-disconnect.svg +0 -0
  2042. /package/static/{55af9e7 → 9b7102a}/icons/debug-line-by-line.svg +0 -0
  2043. /package/static/{55af9e7 → 9b7102a}/icons/debug-pause.svg +0 -0
  2044. /package/static/{55af9e7 → 9b7102a}/icons/debug-rerun.svg +0 -0
  2045. /package/static/{55af9e7 → 9b7102a}/icons/debug-restart-frame.svg +0 -0
  2046. /package/static/{55af9e7 → 9b7102a}/icons/debug-restart.svg +0 -0
  2047. /package/static/{55af9e7 → 9b7102a}/icons/debug-reverse-continue.svg +0 -0
  2048. /package/static/{55af9e7 → 9b7102a}/icons/debug-stackframe-active.svg +0 -0
  2049. /package/static/{55af9e7 → 9b7102a}/icons/debug-stackframe.svg +0 -0
  2050. /package/static/{55af9e7 → 9b7102a}/icons/debug-start.svg +0 -0
  2051. /package/static/{55af9e7 → 9b7102a}/icons/debug-step-back.svg +0 -0
  2052. /package/static/{55af9e7 → 9b7102a}/icons/debug-step-into.svg +0 -0
  2053. /package/static/{55af9e7 → 9b7102a}/icons/debug-step-out.svg +0 -0
  2054. /package/static/{55af9e7 → 9b7102a}/icons/debug-step-over.svg +0 -0
  2055. /package/static/{55af9e7 → 9b7102a}/icons/debug-stop.svg +0 -0
  2056. /package/static/{55af9e7 → 9b7102a}/icons/debug.svg +0 -0
  2057. /package/static/{55af9e7 → 9b7102a}/icons/desktop-download.svg +0 -0
  2058. /package/static/{55af9e7 → 9b7102a}/icons/device-camera-video.svg +0 -0
  2059. /package/static/{55af9e7 → 9b7102a}/icons/device-camera.svg +0 -0
  2060. /package/static/{55af9e7 → 9b7102a}/icons/device-mobile.svg +0 -0
  2061. /package/static/{55af9e7 → 9b7102a}/icons/diff-added.svg +0 -0
  2062. /package/static/{55af9e7 → 9b7102a}/icons/diff-ignored.svg +0 -0
  2063. /package/static/{55af9e7 → 9b7102a}/icons/diff-modified.svg +0 -0
  2064. /package/static/{55af9e7 → 9b7102a}/icons/diff-multiple.svg +0 -0
  2065. /package/static/{55af9e7 → 9b7102a}/icons/diff-removed.svg +0 -0
  2066. /package/static/{55af9e7 → 9b7102a}/icons/diff-renamed.svg +0 -0
  2067. /package/static/{55af9e7 → 9b7102a}/icons/diff-single.svg +0 -0
  2068. /package/static/{55af9e7 → 9b7102a}/icons/diff.svg +0 -0
  2069. /package/static/{55af9e7 → 9b7102a}/icons/discard.svg +0 -0
  2070. /package/static/{55af9e7 → 9b7102a}/icons/download.svg +0 -0
  2071. /package/static/{55af9e7 → 9b7102a}/icons/edit-code.svg +0 -0
  2072. /package/static/{55af9e7 → 9b7102a}/icons/edit-session.svg +0 -0
  2073. /package/static/{55af9e7 → 9b7102a}/icons/edit-sparkle.svg +0 -0
  2074. /package/static/{55af9e7 → 9b7102a}/icons/edit.svg +0 -0
  2075. /package/static/{55af9e7 → 9b7102a}/icons/editor-layout.svg +0 -0
  2076. /package/static/{55af9e7 → 9b7102a}/icons/ellipsis.svg +0 -0
  2077. /package/static/{55af9e7 → 9b7102a}/icons/empty-window.svg +0 -0
  2078. /package/static/{55af9e7 → 9b7102a}/icons/eraser.svg +0 -0
  2079. /package/static/{55af9e7 → 9b7102a}/icons/error-small.svg +0 -0
  2080. /package/static/{55af9e7 → 9b7102a}/icons/error.svg +0 -0
  2081. /package/static/{55af9e7 → 9b7102a}/icons/exclude.svg +0 -0
  2082. /package/static/{55af9e7 → 9b7102a}/icons/expand-all.svg +0 -0
  2083. /package/static/{55af9e7 → 9b7102a}/icons/export.svg +0 -0
  2084. /package/static/{55af9e7 → 9b7102a}/icons/extensionDefaultIcon.png +0 -0
  2085. /package/static/{55af9e7 → 9b7102a}/icons/extensions-large.svg +0 -0
  2086. /package/static/{55af9e7 → 9b7102a}/icons/extensions.svg +0 -0
  2087. /package/static/{55af9e7 → 9b7102a}/icons/eye-closed.svg +0 -0
  2088. /package/static/{55af9e7 → 9b7102a}/icons/eye.svg +0 -0
  2089. /package/static/{55af9e7 → 9b7102a}/icons/feedback.svg +0 -0
  2090. /package/static/{55af9e7 → 9b7102a}/icons/file-binary.svg +0 -0
  2091. /package/static/{55af9e7 → 9b7102a}/icons/file-code.svg +0 -0
  2092. /package/static/{55af9e7 → 9b7102a}/icons/file-media.svg +0 -0
  2093. /package/static/{55af9e7 → 9b7102a}/icons/file-pdf.svg +0 -0
  2094. /package/static/{55af9e7 → 9b7102a}/icons/file-submodule.svg +0 -0
  2095. /package/static/{55af9e7 → 9b7102a}/icons/file-symlink-directory.svg +0 -0
  2096. /package/static/{55af9e7 → 9b7102a}/icons/file-symlink-file.svg +0 -0
  2097. /package/static/{55af9e7 → 9b7102a}/icons/file-text.svg +0 -0
  2098. /package/static/{55af9e7 → 9b7102a}/icons/file-zip.svg +0 -0
  2099. /package/static/{55af9e7 → 9b7102a}/icons/file.svg +0 -0
  2100. /package/static/{55af9e7 → 9b7102a}/icons/files.svg +0 -0
  2101. /package/static/{55af9e7 → 9b7102a}/icons/filter-filled.svg +0 -0
  2102. /package/static/{55af9e7 → 9b7102a}/icons/filter.svg +0 -0
  2103. /package/static/{55af9e7 → 9b7102a}/icons/flag.svg +0 -0
  2104. /package/static/{55af9e7 → 9b7102a}/icons/flame.svg +0 -0
  2105. /package/static/{55af9e7 → 9b7102a}/icons/fold-down.svg +0 -0
  2106. /package/static/{55af9e7 → 9b7102a}/icons/fold-up.svg +0 -0
  2107. /package/static/{55af9e7 → 9b7102a}/icons/fold.svg +0 -0
  2108. /package/static/{55af9e7 → 9b7102a}/icons/folder-active.svg +0 -0
  2109. /package/static/{55af9e7 → 9b7102a}/icons/folder-library.svg +0 -0
  2110. /package/static/{55af9e7 → 9b7102a}/icons/folder-opened.svg +0 -0
  2111. /package/static/{55af9e7 → 9b7102a}/icons/folder.svg +0 -0
  2112. /package/static/{55af9e7 → 9b7102a}/icons/forward.svg +0 -0
  2113. /package/static/{55af9e7 → 9b7102a}/icons/game.svg +0 -0
  2114. /package/static/{55af9e7 → 9b7102a}/icons/gear.svg +0 -0
  2115. /package/static/{55af9e7 → 9b7102a}/icons/gift.svg +0 -0
  2116. /package/static/{55af9e7 → 9b7102a}/icons/gist-secret.svg +0 -0
  2117. /package/static/{55af9e7 → 9b7102a}/icons/gist.svg +0 -0
  2118. /package/static/{55af9e7 → 9b7102a}/icons/git-branch-changes.svg +0 -0
  2119. /package/static/{55af9e7 → 9b7102a}/icons/git-branch-conflicts.svg +0 -0
  2120. /package/static/{55af9e7 → 9b7102a}/icons/git-branch-staged-changes.svg +0 -0
  2121. /package/static/{55af9e7 → 9b7102a}/icons/git-branch.svg +0 -0
  2122. /package/static/{55af9e7 → 9b7102a}/icons/git-commit.svg +0 -0
  2123. /package/static/{55af9e7 → 9b7102a}/icons/git-compare.svg +0 -0
  2124. /package/static/{55af9e7 → 9b7102a}/icons/git-fetch.svg +0 -0
  2125. /package/static/{55af9e7 → 9b7102a}/icons/git-merge.svg +0 -0
  2126. /package/static/{55af9e7 → 9b7102a}/icons/git-pull-request-closed.svg +0 -0
  2127. /package/static/{55af9e7 → 9b7102a}/icons/git-pull-request-create.svg +0 -0
  2128. /package/static/{55af9e7 → 9b7102a}/icons/git-pull-request-done.svg +0 -0
  2129. /package/static/{55af9e7 → 9b7102a}/icons/git-pull-request-draft.svg +0 -0
  2130. /package/static/{55af9e7 → 9b7102a}/icons/git-pull-request-go-to-changes.svg +0 -0
  2131. /package/static/{55af9e7 → 9b7102a}/icons/git-pull-request-new-changes.svg +0 -0
  2132. /package/static/{55af9e7 → 9b7102a}/icons/git-pull-request.svg +0 -0
  2133. /package/static/{55af9e7 → 9b7102a}/icons/git-stash-apply.svg +0 -0
  2134. /package/static/{55af9e7 → 9b7102a}/icons/git-stash-pop.svg +0 -0
  2135. /package/static/{55af9e7 → 9b7102a}/icons/git-stash.svg +0 -0
  2136. /package/static/{55af9e7 → 9b7102a}/icons/github-action.svg +0 -0
  2137. /package/static/{55af9e7 → 9b7102a}/icons/github-alt.svg +0 -0
  2138. /package/static/{55af9e7 → 9b7102a}/icons/github-inverted.svg +0 -0
  2139. /package/static/{55af9e7 → 9b7102a}/icons/github-project.svg +0 -0
  2140. /package/static/{55af9e7 → 9b7102a}/icons/github.svg +0 -0
  2141. /package/static/{55af9e7 → 9b7102a}/icons/globe.svg +0 -0
  2142. /package/static/{55af9e7 → 9b7102a}/icons/go-to-editing-session.svg +0 -0
  2143. /package/static/{55af9e7 → 9b7102a}/icons/go-to-file.svg +0 -0
  2144. /package/static/{55af9e7 → 9b7102a}/icons/go-to-search.svg +0 -0
  2145. /package/static/{55af9e7 → 9b7102a}/icons/grabber.svg +0 -0
  2146. /package/static/{55af9e7 → 9b7102a}/icons/graph-left.svg +0 -0
  2147. /package/static/{55af9e7 → 9b7102a}/icons/graph-line.svg +0 -0
  2148. /package/static/{55af9e7 → 9b7102a}/icons/graph-scatter.svg +0 -0
  2149. /package/static/{55af9e7 → 9b7102a}/icons/graph.svg +0 -0
  2150. /package/static/{55af9e7 → 9b7102a}/icons/gripper.svg +0 -0
  2151. /package/static/{55af9e7 → 9b7102a}/icons/group-by-ref-type.svg +0 -0
  2152. /package/static/{55af9e7 → 9b7102a}/icons/heart-filled.svg +0 -0
  2153. /package/static/{55af9e7 → 9b7102a}/icons/heart.svg +0 -0
  2154. /package/static/{55af9e7 → 9b7102a}/icons/history.svg +0 -0
  2155. /package/static/{55af9e7 → 9b7102a}/icons/home.svg +0 -0
  2156. /package/static/{55af9e7 → 9b7102a}/icons/horizontal-rule.svg +0 -0
  2157. /package/static/{55af9e7 → 9b7102a}/icons/hubot.svg +0 -0
  2158. /package/static/{55af9e7 → 9b7102a}/icons/icon-close.svg +0 -0
  2159. /package/static/{55af9e7 → 9b7102a}/icons/icon-source-control.svg +0 -0
  2160. /package/static/{55af9e7 → 9b7102a}/icons/icon-sync.svg +0 -0
  2161. /package/static/{55af9e7 → 9b7102a}/icons/icon.png +0 -0
  2162. /package/static/{55af9e7 → 9b7102a}/icons/icon.svg +0 -0
  2163. /package/static/{55af9e7 → 9b7102a}/icons/inbox.svg +0 -0
  2164. /package/static/{55af9e7 → 9b7102a}/icons/indent.svg +0 -0
  2165. /package/static/{55af9e7 → 9b7102a}/icons/index-zero.svg +0 -0
  2166. /package/static/{55af9e7 → 9b7102a}/icons/info.svg +0 -0
  2167. /package/static/{55af9e7 → 9b7102a}/icons/insert.svg +0 -0
  2168. /package/static/{55af9e7 → 9b7102a}/icons/inspect.svg +0 -0
  2169. /package/static/{55af9e7 → 9b7102a}/icons/issue-draft.svg +0 -0
  2170. /package/static/{55af9e7 → 9b7102a}/icons/issue-reopened.svg +0 -0
  2171. /package/static/{55af9e7 → 9b7102a}/icons/issues.svg +0 -0
  2172. /package/static/{55af9e7 → 9b7102a}/icons/italic.svg +0 -0
  2173. /package/static/{55af9e7 → 9b7102a}/icons/jersey.svg +0 -0
  2174. /package/static/{55af9e7 → 9b7102a}/icons/json.svg +0 -0
  2175. /package/static/{55af9e7 → 9b7102a}/icons/kebab-vertical.svg +0 -0
  2176. /package/static/{55af9e7 → 9b7102a}/icons/key.svg +0 -0
  2177. /package/static/{55af9e7 → 9b7102a}/icons/keyboard-tab-above.svg +0 -0
  2178. /package/static/{55af9e7 → 9b7102a}/icons/keyboard-tab-below.svg +0 -0
  2179. /package/static/{55af9e7 → 9b7102a}/icons/keyboard-tab.svg +0 -0
  2180. /package/static/{55af9e7 → 9b7102a}/icons/language-icon.svg +0 -0
  2181. /package/static/{55af9e7 → 9b7102a}/icons/law.svg +0 -0
  2182. /package/static/{55af9e7 → 9b7102a}/icons/layers-active.svg +0 -0
  2183. /package/static/{55af9e7 → 9b7102a}/icons/layers-dot.svg +0 -0
  2184. /package/static/{55af9e7 → 9b7102a}/icons/layers.svg +0 -0
  2185. /package/static/{55af9e7 → 9b7102a}/icons/layout-activitybar-left.svg +0 -0
  2186. /package/static/{55af9e7 → 9b7102a}/icons/layout-activitybar-right.svg +0 -0
  2187. /package/static/{55af9e7 → 9b7102a}/icons/layout-centered.svg +0 -0
  2188. /package/static/{55af9e7 → 9b7102a}/icons/layout-menubar.svg +0 -0
  2189. /package/static/{55af9e7 → 9b7102a}/icons/layout-panel-center.svg +0 -0
  2190. /package/static/{55af9e7 → 9b7102a}/icons/layout-panel-dock.svg +0 -0
  2191. /package/static/{55af9e7 → 9b7102a}/icons/layout-panel-justify.svg +0 -0
  2192. /package/static/{55af9e7 → 9b7102a}/icons/layout-panel-left.svg +0 -0
  2193. /package/static/{55af9e7 → 9b7102a}/icons/layout-panel-off.svg +0 -0
  2194. /package/static/{55af9e7 → 9b7102a}/icons/layout-panel-right.svg +0 -0
  2195. /package/static/{55af9e7 → 9b7102a}/icons/layout-panel.svg +0 -0
  2196. /package/static/{55af9e7 → 9b7102a}/icons/layout-sidebar-left-dock.svg +0 -0
  2197. /package/static/{55af9e7 → 9b7102a}/icons/layout-sidebar-left-off.svg +0 -0
  2198. /package/static/{55af9e7 → 9b7102a}/icons/layout-sidebar-left.svg +0 -0
  2199. /package/static/{55af9e7 → 9b7102a}/icons/layout-sidebar-right-dock.svg +0 -0
  2200. /package/static/{55af9e7 → 9b7102a}/icons/layout-sidebar-right-off.svg +0 -0
  2201. /package/static/{55af9e7 → 9b7102a}/icons/layout-sidebar-right.svg +0 -0
  2202. /package/static/{55af9e7 → 9b7102a}/icons/layout-statusbar.svg +0 -0
  2203. /package/static/{55af9e7 → 9b7102a}/icons/layout.svg +0 -0
  2204. /package/static/{55af9e7 → 9b7102a}/icons/library.svg +0 -0
  2205. /package/static/{55af9e7 → 9b7102a}/icons/lightbulb-autofix.svg +0 -0
  2206. /package/static/{55af9e7 → 9b7102a}/icons/lightbulb-empty.svg +0 -0
  2207. /package/static/{55af9e7 → 9b7102a}/icons/lightbulb-sparkle.svg +0 -0
  2208. /package/static/{55af9e7 → 9b7102a}/icons/lightbulb.svg +0 -0
  2209. /package/static/{55af9e7 → 9b7102a}/icons/link-external.svg +0 -0
  2210. /package/static/{55af9e7 → 9b7102a}/icons/link.svg +0 -0
  2211. /package/static/{55af9e7 → 9b7102a}/icons/list-filter.svg +0 -0
  2212. /package/static/{55af9e7 → 9b7102a}/icons/list-flat.svg +0 -0
  2213. /package/static/{55af9e7 → 9b7102a}/icons/list-ordered.svg +0 -0
  2214. /package/static/{55af9e7 → 9b7102a}/icons/list-selection.svg +0 -0
  2215. /package/static/{55af9e7 → 9b7102a}/icons/list-tree.svg +0 -0
  2216. /package/static/{55af9e7 → 9b7102a}/icons/list-unordered.svg +0 -0
  2217. /package/static/{55af9e7 → 9b7102a}/icons/live-share.svg +0 -0
  2218. /package/static/{55af9e7 → 9b7102a}/icons/loading.svg +0 -0
  2219. /package/static/{55af9e7 → 9b7102a}/icons/location.svg +0 -0
  2220. /package/static/{55af9e7 → 9b7102a}/icons/lock-small.svg +0 -0
  2221. /package/static/{55af9e7 → 9b7102a}/icons/lock.svg +0 -0
  2222. /package/static/{55af9e7 → 9b7102a}/icons/magnet.svg +0 -0
  2223. /package/static/{55af9e7 → 9b7102a}/icons/mail-read.svg +0 -0
  2224. /package/static/{55af9e7 → 9b7102a}/icons/mail.svg +0 -0
  2225. /package/static/{55af9e7 → 9b7102a}/icons/map-filled.svg +0 -0
  2226. /package/static/{55af9e7 → 9b7102a}/icons/map-vertical-filled.svg +0 -0
  2227. /package/static/{55af9e7 → 9b7102a}/icons/map-vertical.svg +0 -0
  2228. /package/static/{55af9e7 → 9b7102a}/icons/map.svg +0 -0
  2229. /package/static/{55af9e7 → 9b7102a}/icons/markdown.svg +0 -0
  2230. /package/static/{55af9e7 → 9b7102a}/icons/mcp.svg +0 -0
  2231. /package/static/{55af9e7 → 9b7102a}/icons/megaphone.svg +0 -0
  2232. /package/static/{55af9e7 → 9b7102a}/icons/mention.svg +0 -0
  2233. /package/static/{55af9e7 → 9b7102a}/icons/menu.svg +0 -0
  2234. /package/static/{55af9e7 → 9b7102a}/icons/merge-into.svg +0 -0
  2235. /package/static/{55af9e7 → 9b7102a}/icons/merge.svg +0 -0
  2236. /package/static/{55af9e7 → 9b7102a}/icons/mic-filled.svg +0 -0
  2237. /package/static/{55af9e7 → 9b7102a}/icons/mic.svg +0 -0
  2238. /package/static/{55af9e7 → 9b7102a}/icons/milestone.svg +0 -0
  2239. /package/static/{55af9e7 → 9b7102a}/icons/mirror.svg +0 -0
  2240. /package/static/{55af9e7 → 9b7102a}/icons/mortar-board.svg +0 -0
  2241. /package/static/{55af9e7 → 9b7102a}/icons/move.svg +0 -0
  2242. /package/static/{55af9e7 → 9b7102a}/icons/multiple-windows.svg +0 -0
  2243. /package/static/{55af9e7 → 9b7102a}/icons/music.svg +0 -0
  2244. /package/static/{55af9e7 → 9b7102a}/icons/mute.svg +0 -0
  2245. /package/static/{55af9e7 → 9b7102a}/icons/new-collection.svg +0 -0
  2246. /package/static/{55af9e7 → 9b7102a}/icons/new-file.svg +0 -0
  2247. /package/static/{55af9e7 → 9b7102a}/icons/new-folder.svg +0 -0
  2248. /package/static/{55af9e7 → 9b7102a}/icons/new-session.svg +0 -0
  2249. /package/static/{55af9e7 → 9b7102a}/icons/newline.svg +0 -0
  2250. /package/static/{55af9e7 → 9b7102a}/icons/no-newline.svg +0 -0
  2251. /package/static/{55af9e7 → 9b7102a}/icons/note.svg +0 -0
  2252. /package/static/{55af9e7 → 9b7102a}/icons/notebook-template.svg +0 -0
  2253. /package/static/{55af9e7 → 9b7102a}/icons/notebook.svg +0 -0
  2254. /package/static/{55af9e7 → 9b7102a}/icons/octoface.svg +0 -0
  2255. /package/static/{55af9e7 → 9b7102a}/icons/open-in-product.svg +0 -0
  2256. /package/static/{55af9e7 → 9b7102a}/icons/open-in-window.svg +0 -0
  2257. /package/static/{55af9e7 → 9b7102a}/icons/open-preview.svg +0 -0
  2258. /package/static/{55af9e7 → 9b7102a}/icons/openai.svg +0 -0
  2259. /package/static/{55af9e7 → 9b7102a}/icons/organization.svg +0 -0
  2260. /package/static/{55af9e7 → 9b7102a}/icons/output.svg +0 -0
  2261. /package/static/{55af9e7 → 9b7102a}/icons/package.svg +0 -0
  2262. /package/static/{55af9e7 → 9b7102a}/icons/paintcan.svg +0 -0
  2263. /package/static/{55af9e7 → 9b7102a}/icons/pass-filled.svg +0 -0
  2264. /package/static/{55af9e7 → 9b7102a}/icons/pass.svg +0 -0
  2265. /package/static/{55af9e7 → 9b7102a}/icons/percentage.svg +0 -0
  2266. /package/static/{55af9e7 → 9b7102a}/icons/person-add.svg +0 -0
  2267. /package/static/{55af9e7 → 9b7102a}/icons/person.svg +0 -0
  2268. /package/static/{55af9e7 → 9b7102a}/icons/piano.svg +0 -0
  2269. /package/static/{55af9e7 → 9b7102a}/icons/pie-chart.svg +0 -0
  2270. /package/static/{55af9e7 → 9b7102a}/icons/pin.svg +0 -0
  2271. /package/static/{55af9e7 → 9b7102a}/icons/pinned-dirty.svg +0 -0
  2272. /package/static/{55af9e7 → 9b7102a}/icons/pinned.svg +0 -0
  2273. /package/static/{55af9e7 → 9b7102a}/icons/play-circle.svg +0 -0
  2274. /package/static/{55af9e7 → 9b7102a}/icons/play.svg +0 -0
  2275. /package/static/{55af9e7 → 9b7102a}/icons/plug.svg +0 -0
  2276. /package/static/{55af9e7 → 9b7102a}/icons/preserve-case.svg +0 -0
  2277. /package/static/{55af9e7 → 9b7102a}/icons/preview.svg +0 -0
  2278. /package/static/{55af9e7 → 9b7102a}/icons/primitive-square.svg +0 -0
  2279. /package/static/{55af9e7 → 9b7102a}/icons/progress.svg +0 -0
  2280. /package/static/{55af9e7 → 9b7102a}/icons/project.svg +0 -0
  2281. /package/static/{55af9e7 → 9b7102a}/icons/pulse.svg +0 -0
  2282. /package/static/{55af9e7 → 9b7102a}/icons/pwa-icon-192.png +0 -0
  2283. /package/static/{55af9e7 → 9b7102a}/icons/pwa-icon-512.png +0 -0
  2284. /package/static/{55af9e7 → 9b7102a}/icons/python.svg +0 -0
  2285. /package/static/{55af9e7 → 9b7102a}/icons/question.svg +0 -0
  2286. /package/static/{55af9e7 → 9b7102a}/icons/quote.svg +0 -0
  2287. /package/static/{55af9e7 → 9b7102a}/icons/quotes.svg +0 -0
  2288. /package/static/{55af9e7 → 9b7102a}/icons/radio-tower.svg +0 -0
  2289. /package/static/{55af9e7 → 9b7102a}/icons/reactions.svg +0 -0
  2290. /package/static/{55af9e7 → 9b7102a}/icons/record-keys.svg +0 -0
  2291. /package/static/{55af9e7 → 9b7102a}/icons/record-small.svg +0 -0
  2292. /package/static/{55af9e7 → 9b7102a}/icons/record.svg +0 -0
  2293. /package/static/{55af9e7 → 9b7102a}/icons/redo.svg +0 -0
  2294. /package/static/{55af9e7 → 9b7102a}/icons/references.svg +0 -0
  2295. /package/static/{55af9e7 → 9b7102a}/icons/refresh.svg +0 -0
  2296. /package/static/{55af9e7 → 9b7102a}/icons/regex.svg +0 -0
  2297. /package/static/{55af9e7 → 9b7102a}/icons/remote-explorer.svg +0 -0
  2298. /package/static/{55af9e7 → 9b7102a}/icons/remote.svg +0 -0
  2299. /package/static/{55af9e7 → 9b7102a}/icons/remove-small.svg +0 -0
  2300. /package/static/{55af9e7 → 9b7102a}/icons/remove.svg +0 -0
  2301. /package/static/{55af9e7 → 9b7102a}/icons/rename.svg +0 -0
  2302. /package/static/{55af9e7 → 9b7102a}/icons/replace-all.svg +0 -0
  2303. /package/static/{55af9e7 → 9b7102a}/icons/replace.svg +0 -0
  2304. /package/static/{55af9e7 → 9b7102a}/icons/reply.svg +0 -0
  2305. /package/static/{55af9e7 → 9b7102a}/icons/repo-clone.svg +0 -0
  2306. /package/static/{55af9e7 → 9b7102a}/icons/repo-fetch.svg +0 -0
  2307. /package/static/{55af9e7 → 9b7102a}/icons/repo-force-push.svg +0 -0
  2308. /package/static/{55af9e7 → 9b7102a}/icons/repo-forked.svg +0 -0
  2309. /package/static/{55af9e7 → 9b7102a}/icons/repo-pinned.svg +0 -0
  2310. /package/static/{55af9e7 → 9b7102a}/icons/repo-pull.svg +0 -0
  2311. /package/static/{55af9e7 → 9b7102a}/icons/repo-push.svg +0 -0
  2312. /package/static/{55af9e7 → 9b7102a}/icons/repo-selected.svg +0 -0
  2313. /package/static/{55af9e7 → 9b7102a}/icons/repo.svg +0 -0
  2314. /package/static/{55af9e7 → 9b7102a}/icons/report.svg +0 -0
  2315. /package/static/{55af9e7 → 9b7102a}/icons/request-changes.svg +0 -0
  2316. /package/static/{55af9e7 → 9b7102a}/icons/robot.svg +0 -0
  2317. /package/static/{55af9e7 → 9b7102a}/icons/rocket.svg +0 -0
  2318. /package/static/{55af9e7 → 9b7102a}/icons/root-folder-opened.svg +0 -0
  2319. /package/static/{55af9e7 → 9b7102a}/icons/root-folder.svg +0 -0
  2320. /package/static/{55af9e7 → 9b7102a}/icons/rss.svg +0 -0
  2321. /package/static/{55af9e7 → 9b7102a}/icons/ruby.svg +0 -0
  2322. /package/static/{55af9e7 → 9b7102a}/icons/run-above.svg +0 -0
  2323. /package/static/{55af9e7 → 9b7102a}/icons/run-all-coverage.svg +0 -0
  2324. /package/static/{55af9e7 → 9b7102a}/icons/run-all.svg +0 -0
  2325. /package/static/{55af9e7 → 9b7102a}/icons/run-below.svg +0 -0
  2326. /package/static/{55af9e7 → 9b7102a}/icons/run-coverage.svg +0 -0
  2327. /package/static/{55af9e7 → 9b7102a}/icons/run-errors.svg +0 -0
  2328. /package/static/{55af9e7 → 9b7102a}/icons/run-with-deps.svg +0 -0
  2329. /package/static/{55af9e7 → 9b7102a}/icons/save-all.svg +0 -0
  2330. /package/static/{55af9e7 → 9b7102a}/icons/save-as.svg +0 -0
  2331. /package/static/{55af9e7 → 9b7102a}/icons/save.svg +0 -0
  2332. /package/static/{55af9e7 → 9b7102a}/icons/screen-cut.svg +0 -0
  2333. /package/static/{55af9e7 → 9b7102a}/icons/screen-full.svg +0 -0
  2334. /package/static/{55af9e7 → 9b7102a}/icons/screen-normal.svg +0 -0
  2335. /package/static/{55af9e7 → 9b7102a}/icons/search-fuzzy.svg +0 -0
  2336. /package/static/{55af9e7 → 9b7102a}/icons/search-large.svg +0 -0
  2337. /package/static/{55af9e7 → 9b7102a}/icons/search-sparkle.svg +0 -0
  2338. /package/static/{55af9e7 → 9b7102a}/icons/search-stop.svg +0 -0
  2339. /package/static/{55af9e7 → 9b7102a}/icons/search.svg +0 -0
  2340. /package/static/{55af9e7 → 9b7102a}/icons/send-to-remote-agent.svg +0 -0
  2341. /package/static/{55af9e7 → 9b7102a}/icons/send.svg +0 -0
  2342. /package/static/{55af9e7 → 9b7102a}/icons/server-environment.svg +0 -0
  2343. /package/static/{55af9e7 → 9b7102a}/icons/server-process.svg +0 -0
  2344. /package/static/{55af9e7 → 9b7102a}/icons/server.svg +0 -0
  2345. /package/static/{55af9e7 → 9b7102a}/icons/session-in-progress.svg +0 -0
  2346. /package/static/{55af9e7 → 9b7102a}/icons/settings-gear.svg +0 -0
  2347. /package/static/{55af9e7 → 9b7102a}/icons/settings.svg +0 -0
  2348. /package/static/{55af9e7 → 9b7102a}/icons/share.svg +0 -0
  2349. /package/static/{55af9e7 → 9b7102a}/icons/shield.svg +0 -0
  2350. /package/static/{55af9e7 → 9b7102a}/icons/sign-in.svg +0 -0
  2351. /package/static/{55af9e7 → 9b7102a}/icons/sign-out.svg +0 -0
  2352. /package/static/{55af9e7 → 9b7102a}/icons/skip.svg +0 -0
  2353. /package/static/{55af9e7 → 9b7102a}/icons/smiley.svg +0 -0
  2354. /package/static/{55af9e7 → 9b7102a}/icons/snake.svg +0 -0
  2355. /package/static/{55af9e7 → 9b7102a}/icons/sort-precedence.svg +0 -0
  2356. /package/static/{55af9e7 → 9b7102a}/icons/source-control.svg +0 -0
  2357. /package/static/{55af9e7 → 9b7102a}/icons/sparkle-filled.svg +0 -0
  2358. /package/static/{55af9e7 → 9b7102a}/icons/sparkle.svg +0 -0
  2359. /package/static/{55af9e7 → 9b7102a}/icons/split-horizontal.svg +0 -0
  2360. /package/static/{55af9e7 → 9b7102a}/icons/split-vertical.svg +0 -0
  2361. /package/static/{55af9e7 → 9b7102a}/icons/squiggly-error.svg +0 -0
  2362. /package/static/{55af9e7 → 9b7102a}/icons/squiggly-warning.svg +0 -0
  2363. /package/static/{55af9e7 → 9b7102a}/icons/squirrel.svg +0 -0
  2364. /package/static/{55af9e7 → 9b7102a}/icons/star-empty.svg +0 -0
  2365. /package/static/{55af9e7 → 9b7102a}/icons/star-full.svg +0 -0
  2366. /package/static/{55af9e7 → 9b7102a}/icons/star-half.svg +0 -0
  2367. /package/static/{55af9e7 → 9b7102a}/icons/stop-circle.svg +0 -0
  2368. /package/static/{55af9e7 → 9b7102a}/icons/strikethrough.svg +0 -0
  2369. /package/static/{55af9e7 → 9b7102a}/icons/surround-with.svg +0 -0
  2370. /package/static/{55af9e7 → 9b7102a}/icons/symbol-array.svg +0 -0
  2371. /package/static/{55af9e7 → 9b7102a}/icons/symbol-boolean.svg +0 -0
  2372. /package/static/{55af9e7 → 9b7102a}/icons/symbol-class.svg +0 -0
  2373. /package/static/{55af9e7 → 9b7102a}/icons/symbol-color.svg +0 -0
  2374. /package/static/{55af9e7 → 9b7102a}/icons/symbol-constant.svg +0 -0
  2375. /package/static/{55af9e7 → 9b7102a}/icons/symbol-enum-member.svg +0 -0
  2376. /package/static/{55af9e7 → 9b7102a}/icons/symbol-enum.svg +0 -0
  2377. /package/static/{55af9e7 → 9b7102a}/icons/symbol-event.svg +0 -0
  2378. /package/static/{55af9e7 → 9b7102a}/icons/symbol-field.svg +0 -0
  2379. /package/static/{55af9e7 → 9b7102a}/icons/symbol-file.svg +0 -0
  2380. /package/static/{55af9e7 → 9b7102a}/icons/symbol-interface.svg +0 -0
  2381. /package/static/{55af9e7 → 9b7102a}/icons/symbol-key.svg +0 -0
  2382. /package/static/{55af9e7 → 9b7102a}/icons/symbol-keyword.svg +0 -0
  2383. /package/static/{55af9e7 → 9b7102a}/icons/symbol-method-arrow.svg +0 -0
  2384. /package/static/{55af9e7 → 9b7102a}/icons/symbol-method.svg +0 -0
  2385. /package/static/{55af9e7 → 9b7102a}/icons/symbol-misc.svg +0 -0
  2386. /package/static/{55af9e7 → 9b7102a}/icons/symbol-namespace.svg +0 -0
  2387. /package/static/{55af9e7 → 9b7102a}/icons/symbol-numeric.svg +0 -0
  2388. /package/static/{55af9e7 → 9b7102a}/icons/symbol-operator.svg +0 -0
  2389. /package/static/{55af9e7 → 9b7102a}/icons/symbol-parameter.svg +0 -0
  2390. /package/static/{55af9e7 → 9b7102a}/icons/symbol-property.svg +0 -0
  2391. /package/static/{55af9e7 → 9b7102a}/icons/symbol-ruler.svg +0 -0
  2392. /package/static/{55af9e7 → 9b7102a}/icons/symbol-snippet.svg +0 -0
  2393. /package/static/{55af9e7 → 9b7102a}/icons/symbol-string.svg +0 -0
  2394. /package/static/{55af9e7 → 9b7102a}/icons/symbol-structure.svg +0 -0
  2395. /package/static/{55af9e7 → 9b7102a}/icons/symbol-variable.svg +0 -0
  2396. /package/static/{55af9e7 → 9b7102a}/icons/sync-ignored.svg +0 -0
  2397. /package/static/{55af9e7 → 9b7102a}/icons/sync.svg +0 -0
  2398. /package/static/{55af9e7 → 9b7102a}/icons/table.svg +0 -0
  2399. /package/static/{55af9e7 → 9b7102a}/icons/tag.svg +0 -0
  2400. /package/static/{55af9e7 → 9b7102a}/icons/target.svg +0 -0
  2401. /package/static/{55af9e7 → 9b7102a}/icons/tasklist.svg +0 -0
  2402. /package/static/{55af9e7 → 9b7102a}/icons/telescope.svg +0 -0
  2403. /package/static/{55af9e7 → 9b7102a}/icons/terminal-bash.svg +0 -0
  2404. /package/static/{55af9e7 → 9b7102a}/icons/terminal-cmd.svg +0 -0
  2405. /package/static/{55af9e7 → 9b7102a}/icons/terminal-debian.svg +0 -0
  2406. /package/static/{55af9e7 → 9b7102a}/icons/terminal-git-bash.svg +0 -0
  2407. /package/static/{55af9e7 → 9b7102a}/icons/terminal-linux.svg +0 -0
  2408. /package/static/{55af9e7 → 9b7102a}/icons/terminal-powershell.svg +0 -0
  2409. /package/static/{55af9e7 → 9b7102a}/icons/terminal-tmux.svg +0 -0
  2410. /package/static/{55af9e7 → 9b7102a}/icons/terminal-ubuntu.svg +0 -0
  2411. /package/static/{55af9e7 → 9b7102a}/icons/terminal.svg +0 -0
  2412. /package/static/{55af9e7 → 9b7102a}/icons/text-size.svg +0 -0
  2413. /package/static/{55af9e7 → 9b7102a}/icons/theme-icon.png +0 -0
  2414. /package/static/{55af9e7 → 9b7102a}/icons/thinking.svg +0 -0
  2415. /package/static/{55af9e7 → 9b7102a}/icons/three-bars.svg +0 -0
  2416. /package/static/{55af9e7 → 9b7102a}/icons/thumbsdown-filled.svg +0 -0
  2417. /package/static/{55af9e7 → 9b7102a}/icons/thumbsdown.svg +0 -0
  2418. /package/static/{55af9e7 → 9b7102a}/icons/thumbsup-filled.svg +0 -0
  2419. /package/static/{55af9e7 → 9b7102a}/icons/thumbsup.svg +0 -0
  2420. /package/static/{55af9e7 → 9b7102a}/icons/tools.svg +0 -0
  2421. /package/static/{55af9e7 → 9b7102a}/icons/trash.svg +0 -0
  2422. /package/static/{55af9e7 → 9b7102a}/icons/triangle-down.svg +0 -0
  2423. /package/static/{55af9e7 → 9b7102a}/icons/triangle-left.svg +0 -0
  2424. /package/static/{55af9e7 → 9b7102a}/icons/triangle-right.svg +0 -0
  2425. /package/static/{55af9e7 → 9b7102a}/icons/triangle-up.svg +0 -0
  2426. /package/static/{55af9e7 → 9b7102a}/icons/twitter.svg +0 -0
  2427. /package/static/{55af9e7 → 9b7102a}/icons/type-hierarchy-sub.svg +0 -0
  2428. /package/static/{55af9e7 → 9b7102a}/icons/type-hierarchy-super.svg +0 -0
  2429. /package/static/{55af9e7 → 9b7102a}/icons/type-hierarchy.svg +0 -0
  2430. /package/static/{55af9e7 → 9b7102a}/icons/unarchive.svg +0 -0
  2431. /package/static/{55af9e7 → 9b7102a}/icons/unfold.svg +0 -0
  2432. /package/static/{55af9e7 → 9b7102a}/icons/ungroup-by-ref-type.svg +0 -0
  2433. /package/static/{55af9e7 → 9b7102a}/icons/unlock.svg +0 -0
  2434. /package/static/{55af9e7 → 9b7102a}/icons/unmute.svg +0 -0
  2435. /package/static/{55af9e7 → 9b7102a}/icons/unverified.svg +0 -0
  2436. /package/static/{55af9e7 → 9b7102a}/icons/variable-group.svg +0 -0
  2437. /package/static/{55af9e7 → 9b7102a}/icons/verified-filled.svg +0 -0
  2438. /package/static/{55af9e7 → 9b7102a}/icons/verified.svg +0 -0
  2439. /package/static/{55af9e7 → 9b7102a}/icons/versions.svg +0 -0
  2440. /package/static/{55af9e7 → 9b7102a}/icons/vm-active.svg +0 -0
  2441. /package/static/{55af9e7 → 9b7102a}/icons/vm-connect.svg +0 -0
  2442. /package/static/{55af9e7 → 9b7102a}/icons/vm-outline.svg +0 -0
  2443. /package/static/{55af9e7 → 9b7102a}/icons/vm-pending.svg +0 -0
  2444. /package/static/{55af9e7 → 9b7102a}/icons/vm-running.svg +0 -0
  2445. /package/static/{55af9e7 → 9b7102a}/icons/vm-small.svg +0 -0
  2446. /package/static/{55af9e7 → 9b7102a}/icons/vm.svg +0 -0
  2447. /package/static/{55af9e7 → 9b7102a}/icons/vr.svg +0 -0
  2448. /package/static/{55af9e7 → 9b7102a}/icons/vscode-insiders.svg +0 -0
  2449. /package/static/{55af9e7 → 9b7102a}/icons/vscode.svg +0 -0
  2450. /package/static/{55af9e7 → 9b7102a}/icons/wand.svg +0 -0
  2451. /package/static/{55af9e7 → 9b7102a}/icons/warning.svg +0 -0
  2452. /package/static/{55af9e7 → 9b7102a}/icons/watch.svg +0 -0
  2453. /package/static/{55af9e7 → 9b7102a}/icons/whitespace.svg +0 -0
  2454. /package/static/{55af9e7 → 9b7102a}/icons/whole-word.svg +0 -0
  2455. /package/static/{55af9e7 → 9b7102a}/icons/window-active.svg +0 -0
  2456. /package/static/{55af9e7 → 9b7102a}/icons/window.svg +0 -0
  2457. /package/static/{55af9e7 → 9b7102a}/icons/word-wrap.svg +0 -0
  2458. /package/static/{55af9e7 → 9b7102a}/icons/workspace-trusted.svg +0 -0
  2459. /package/static/{55af9e7 → 9b7102a}/icons/workspace-unknown.svg +0 -0
  2460. /package/static/{55af9e7 → 9b7102a}/icons/workspace-untrusted.svg +0 -0
  2461. /package/static/{55af9e7 → 9b7102a}/icons/worktree-small.svg +0 -0
  2462. /package/static/{55af9e7 → 9b7102a}/icons/worktree.svg +0 -0
  2463. /package/static/{55af9e7 → 9b7102a}/icons/zoom-in.svg +0 -0
  2464. /package/static/{55af9e7 → 9b7102a}/icons/zoom-out.svg +0 -0
  2465. /package/static/{55af9e7 → 9b7102a}/js/babel-parser.js +0 -0
  2466. /package/static/{55af9e7 → 9b7102a}/js/ky.js +0 -0
  2467. /package/static/{55af9e7 → 9b7102a}/js/lvce-editor-import-script.js +0 -0
  2468. /package/static/{55af9e7 → 9b7102a}/js/lvce-editor-ipc.js +0 -0
  2469. /package/static/{55af9e7 → 9b7102a}/js/lvce-editor-json-rpc.js +0 -0
  2470. /package/static/{55af9e7 → 9b7102a}/js/lvce-editor-rpc.js +0 -0
  2471. /package/static/{55af9e7 → 9b7102a}/js/lvce-editor-verror.js +0 -0
  2472. /package/static/{55af9e7 → 9b7102a}/js/p-min-delay.js +0 -0
  2473. /package/static/{55af9e7 → 9b7102a}/js/pretty-bytes.js +0 -0
  2474. /package/static/{55af9e7 → 9b7102a}/js/preview-injected.js +0 -0
  2475. /package/static/{55af9e7 → 9b7102a}/js/yoctodelay.js +0 -0
  2476. /package/static/{55af9e7 → 9b7102a}/lib-css/xterm.css +0 -0
  2477. /package/static/{55af9e7 → 9b7102a}/packages/activity-bar-worker/dist/activityBarWorkerMain.js +0 -0
  2478. /package/static/{55af9e7 → 9b7102a}/packages/chat-coordinator-worker/dist/chatCoordinatorWorkerMain.js +0 -0
  2479. /package/static/{55af9e7 → 9b7102a}/packages/chat-debug-view/dist/chatDebugViewWorkerMain.js +0 -0
  2480. /package/static/{55af9e7 → 9b7102a}/packages/chat-math-worker/dist/chatMathWorkerMain.js +0 -0
  2481. /package/static/{55af9e7 → 9b7102a}/packages/chat-message-parsing-worker/dist/chatMessageParsingWorkerMain.js +0 -0
  2482. /package/static/{55af9e7 → 9b7102a}/packages/chat-network-worker/dist/chatNetworkWorkerMain.js +0 -0
  2483. /package/static/{55af9e7 → 9b7102a}/packages/chat-storage-worker/dist/chatStorageWorkerMain.js +0 -0
  2484. /package/static/{55af9e7 → 9b7102a}/packages/chat-tool-worker/dist/chatToolWorkerMain.js +0 -0
  2485. /package/static/{55af9e7 → 9b7102a}/packages/chat-view/dist/chatViewWorkerMain.js +0 -0
  2486. /package/static/{55af9e7 → 9b7102a}/packages/chat-view-model/dist/chatViewModelWorkerMain.js +0 -0
  2487. /package/static/{55af9e7 → 9b7102a}/packages/clipboard-worker/dist/clipBoardWorkerMain.js +0 -0
  2488. /package/static/{55af9e7 → 9b7102a}/packages/color-picker-worker/dist/colorPickerWorkerMain.js +0 -0
  2489. /package/static/{55af9e7 → 9b7102a}/packages/completion-worker/dist/completionWorkerMain.js +0 -0
  2490. /package/static/{55af9e7 → 9b7102a}/packages/cookie-import-view/dist/cookieImportViewWorkerMain.js +0 -0
  2491. /package/static/{55af9e7 → 9b7102a}/packages/debug-worker/dist/debugWorkerMain.js +0 -0
  2492. /package/static/{55af9e7 → 9b7102a}/packages/dialog-worker/dist/dialogWorkerMain.js +0 -0
  2493. /package/static/{55af9e7 → 9b7102a}/packages/diff-view/dist/diffViewWorkerMain.js +0 -0
  2494. /package/static/{55af9e7 → 9b7102a}/packages/diff-worker/dist/diffWorkerMain.js +0 -0
  2495. /package/static/{55af9e7 → 9b7102a}/packages/drag-and-drop-worker/dist/dragAndDropWorkerMain.js +0 -0
  2496. /package/static/{55af9e7 → 9b7102a}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
  2497. /package/static/{55af9e7 → 9b7102a}/packages/error-worker/dist/errorWorkerMain.js +0 -0
  2498. /package/static/{55af9e7 → 9b7102a}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
  2499. /package/static/{55af9e7 → 9b7102a}/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -0
  2500. /package/static/{55af9e7 → 9b7102a}/packages/file-system-worker/dist/fileSystemWorkerMain.js +0 -0
  2501. /package/static/{55af9e7 → 9b7102a}/packages/file-watcher-view/index.js +0 -0
  2502. /package/static/{55af9e7 → 9b7102a}/packages/find-widget-worker/dist/findWidgetWorkerMain.js +0 -0
  2503. /package/static/{55af9e7 → 9b7102a}/packages/hover-worker/dist/hoverWorkerMain.js +0 -0
  2504. /package/static/{55af9e7 → 9b7102a}/packages/icon-theme-worker/dist/iconThemeWorkerMain.js +0 -0
  2505. /package/static/{55af9e7 → 9b7102a}/packages/iframe-inspector/dist/iframeInspectorWorkerMain.js +0 -0
  2506. /package/static/{55af9e7 → 9b7102a}/packages/iframe-worker/dist/iframeWorkerMain.js +0 -0
  2507. /package/static/{55af9e7 → 9b7102a}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
  2508. /package/static/{55af9e7 → 9b7102a}/packages/language-models-view/dist/languageModelsViewMain.js +0 -0
  2509. /package/static/{55af9e7 → 9b7102a}/packages/markdown-worker/dist/markdownWorkerMain.js +0 -0
  2510. /package/static/{55af9e7 → 9b7102a}/packages/menu-worker/dist/menuWorkerMain.js +0 -0
  2511. /package/static/{55af9e7 → 9b7102a}/packages/notification-center-view/dist/notificationCenterWorkerMain.js +0 -0
  2512. /package/static/{55af9e7 → 9b7102a}/packages/opener-worker/dist/openerWorkerMain.js +0 -0
  2513. /package/static/{55af9e7 → 9b7102a}/packages/panel-worker/dist/panelWorkerMain.js +0 -0
  2514. /package/static/{55af9e7 → 9b7102a}/packages/ports-view/dist/portsViewWorkerMain.js +0 -0
  2515. /package/static/{55af9e7 → 9b7102a}/packages/preload/dist/index.js +0 -0
  2516. /package/static/{55af9e7 → 9b7102a}/packages/preview-sandbox-worker/dist/previewSandBoxWorkerMain.js +0 -0
  2517. /package/static/{55af9e7 → 9b7102a}/packages/preview-worker/dist/previewWorkerMain.js +0 -0
  2518. /package/static/{55af9e7 → 9b7102a}/packages/quick-pick-worker/dist/quickPickWorkerMain.js +0 -0
  2519. /package/static/{55af9e7 → 9b7102a}/packages/references-view/dist/referencesViewWorkerMain.js +0 -0
  2520. /package/static/{55af9e7 → 9b7102a}/packages/rename-worker/dist/renameWorkerMain.js +0 -0
  2521. /package/static/{55af9e7 → 9b7102a}/packages/renderer-process/LICENSE +0 -0
  2522. /package/static/{55af9e7 → 9b7102a}/packages/renderer-process/README.md +0 -0
  2523. /package/static/{55af9e7 → 9b7102a}/packages/renderer-process/dist/editorOnly.css +0 -0
  2524. /package/static/{55af9e7 → 9b7102a}/packages/renderer-process/dist/editorOnlyRendererProcessMain.js +0 -0
  2525. /package/static/{55af9e7 → 9b7102a}/packages/renderer-process/dist/xterm.js +0 -0
  2526. /package/static/{55af9e7 → 9b7102a}/packages/running-extensions-view/dist/runningExtensionsViewMain.js +0 -0
  2527. /package/static/{55af9e7 → 9b7102a}/packages/secrets-view/dist/secretsViewWorkerMain.js +0 -0
  2528. /package/static/{55af9e7 → 9b7102a}/packages/settings-view/dist/settingsViewWorkerMain.js +0 -0
  2529. /package/static/{55af9e7 → 9b7102a}/packages/settings-worker/dist/settingsWorkerMain.js +0 -0
  2530. /package/static/{55af9e7 → 9b7102a}/packages/simple-browser-view/dist/simpleBrowserViewWorkerMain.js +0 -0
  2531. /package/static/{55af9e7 → 9b7102a}/packages/source-action-worker/dist/sourceActionWorkerMain.js +0 -0
  2532. /package/static/{55af9e7 → 9b7102a}/packages/source-control-worker/dist/sourceControlWorkerMain.js +0 -0
  2533. /package/static/{55af9e7 → 9b7102a}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
  2534. /package/static/{55af9e7 → 9b7102a}/packages/test-worker/dist/testWorkerMain.js +0 -0
  2535. /package/static/{55af9e7 → 9b7102a}/packages/text-measurement-worker/dist/textMeasurementWorkerMain.js +0 -0
  2536. /package/static/{55af9e7 → 9b7102a}/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -0
  2537. /package/static/{55af9e7 → 9b7102a}/packages/update-worker/dist/updateWorkerMain.js +0 -0
  2538. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.cpp +0 -0
  2539. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.css +0 -0
  2540. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.csv +0 -0
  2541. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.dart +0 -0
  2542. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.env +0 -0
  2543. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.ex +0 -0
  2544. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.html +0 -0
  2545. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.java +0 -0
  2546. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.jl +0 -0
  2547. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.js +0 -0
  2548. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.json +0 -0
  2549. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.kt +0 -0
  2550. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.pl +0 -0
  2551. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.py +0 -0
  2552. /package/static/{55af9e7 → 9b7102a}/playground/languages/index.ts +0 -0
  2553. /package/static/{55af9e7 → 9b7102a}/playground/languages/scrolling.txt +0 -0
  2554. /package/static/{55af9e7 → 9b7102a}/playground/languages/tsconfig.json +0 -0
  2555. /package/static/{55af9e7 → 9b7102a}/playground/sample-folder/a.txt +0 -0
  2556. /package/static/{55af9e7 → 9b7102a}/playground/sample-folder/b.txt +0 -0
  2557. /package/static/{55af9e7 → 9b7102a}/playground/sample-folder/c.txt +0 -0
@@ -3688,7 +3688,6 @@ const getVisibleExplorerItems = (items, minLineY, maxLineY, focusedIndex, editin
3688
3688
  hasEditingError: isEditing && Boolean(editingErrorMessage),
3689
3689
  icon,
3690
3690
  id,
3691
- indent,
3692
3691
  index: i,
3693
3692
  isCut,
3694
3693
  isEditing: isEditing,
@@ -4334,6 +4333,431 @@ const getComponentState = uid => {
4334
4333
  return get(uid).newState;
4335
4334
  };
4336
4335
 
4336
+ const None$2 = 'none';
4337
+ const ToolBar = 'toolbar';
4338
+ const Tree = 'tree';
4339
+ const TreeItem = 'treeitem';
4340
+
4341
+ const Button$1 = 1;
4342
+ const Div = 4;
4343
+ const Input = 6;
4344
+ const Img = 17;
4345
+ const P = 50;
4346
+
4347
+ const errorMessageNode = {
4348
+ childCount: 1,
4349
+ className: mergeClassNames(ExplorerErrorMessage),
4350
+ type: Div
4351
+ };
4352
+ const getErrorMessageDom = errorMessage => {
4353
+ if (!errorMessage) {
4354
+ return [];
4355
+ }
4356
+ return [errorMessageNode, text(errorMessage)];
4357
+ };
4358
+
4359
+ const HandleButtonClick = 18;
4360
+ const HandleClick = 1;
4361
+ const HandleClickOpenFolder = 2;
4362
+ const HandleContextMenu = 3;
4363
+ const HandleContextMenuWelcome = 20;
4364
+ const HandleDragEnd = 19;
4365
+ const HandleDragLeave = 4;
4366
+ const HandleDragOver = 5;
4367
+ const HandleDragStart = 17;
4368
+ const HandleDrop = 6;
4369
+ const HandleEditingInput = 7;
4370
+ const HandleInputBlur = 8;
4371
+ const HandleInputClick = 9;
4372
+ const HandleKeyDown = 21;
4373
+ const HandleListBlur = 11;
4374
+ const HandleListFocus = 12;
4375
+ const HandleNativePaste = 26;
4376
+ const HandlePointerDown = 14;
4377
+ const HandlePointerUp = 25;
4378
+ const HandleScrollBarMove = 22;
4379
+ const HandleScrollBarPointerCaptureLost = 23;
4380
+ const HandleScrollBarPointerDown = 24;
4381
+ const HandleWheel = 15;
4382
+ const HandleDoubleClick = 16;
4383
+
4384
+ const dropTargetFull = [-1];
4385
+
4386
+ const CollapseAll$1 = 'CollapseAll';
4387
+ const ExplorerInput = 'ExplorerInput';
4388
+ const NewFile$1 = 'NewFile';
4389
+ const NewFolder$1 = 'NewFolder';
4390
+ const OpenFolder = 'OpenFolder';
4391
+ const Refresh$1 = 'Refresh';
4392
+
4393
+ const Focusable = 0;
4394
+
4395
+ const welcomeNode = {
4396
+ childCount: 2,
4397
+ className: Welcome,
4398
+ type: Div
4399
+ };
4400
+ const welcomeMessageNode$1 = {
4401
+ childCount: 1,
4402
+ className: WelcomeMessage,
4403
+ type: P
4404
+ };
4405
+ const getClassName$1 = dropTargets => {
4406
+ const extraClassName = dropTargets === dropTargetFull ? ExplorerDropTarget : Empty;
4407
+ return mergeClassNames(Viewlet, Explorer$1, extraClassName);
4408
+ };
4409
+ const getExplorerWelcomeVirtualDom = (isWide, dropTargets) => {
4410
+ return [{
4411
+ childCount: 1,
4412
+ className: getClassName$1(dropTargets),
4413
+ onContextMenu: HandleContextMenuWelcome,
4414
+ onDragLeave: HandleDragLeave,
4415
+ onDragOver: HandleDragOver,
4416
+ onDrop: HandleDrop,
4417
+ tabIndex: Focusable,
4418
+ type: Div
4419
+ }, welcomeNode, welcomeMessageNode$1, text(youHaveNotYetOpenedAFolder()), {
4420
+ childCount: 1,
4421
+ className: mergeClassNames(Button$2, ButtonPrimary, isWide ? ButtonWide : ButtonNarrow),
4422
+ name: OpenFolder,
4423
+ onClick: HandleClickOpenFolder,
4424
+ type: Button$1
4425
+ }, text(openFolder$1())];
4426
+ };
4427
+
4428
+ const chevronDownVirtualDom = {
4429
+ childCount: 0,
4430
+ className: mergeClassNames(Chevron, MaskIconChevronDown),
4431
+ type: Div
4432
+ };
4433
+
4434
+ const chevronRightVirtualDom = {
4435
+ childCount: 0,
4436
+ className: mergeClassNames(Chevron, MaskIconChevronRight),
4437
+ type: Div
4438
+ };
4439
+
4440
+ const chevronDomNodes = [[], [chevronRightVirtualDom], [chevronDownVirtualDom]];
4441
+ const getChevronVirtualDom = chevronType => {
4442
+ return chevronDomNodes[chevronType];
4443
+ };
4444
+
4445
+ const getFileIconVirtualDom = icon => {
4446
+ return {
4447
+ childCount: 0,
4448
+ className: FileIcon,
4449
+ role: None$2,
4450
+ src: icon,
4451
+ type: Img
4452
+ };
4453
+ };
4454
+
4455
+ const indentRegex = /(?:^| )Indent-(\d+)(?: |$)/;
4456
+ const getIndentFromClassName = className => {
4457
+ const match = className.match(indentRegex);
4458
+ return match ? Number.parseInt(match[1]) : 0;
4459
+ };
4460
+
4461
+ const getInputClassName = hasEditingError => {
4462
+ if (hasEditingError) {
4463
+ return mergeClassNames(ExplorerInputBox, InputValidationError);
4464
+ }
4465
+ return ExplorerInputBox;
4466
+ };
4467
+
4468
+ const getInputDom = (isEditing, hasEditingError, editingSessionId) => {
4469
+ if (!isEditing) {
4470
+ return [];
4471
+ }
4472
+ const ariaLabel = typeAFileName();
4473
+ return [{
4474
+ ariaLabel: ariaLabel,
4475
+ autocapitalize: 'off',
4476
+ autocomplete: 'off',
4477
+ autocorrect: 'off',
4478
+ childCount: 0,
4479
+ className: getInputClassName(hasEditingError),
4480
+ 'data-editingSessionId': editingSessionId,
4481
+ id: 'ExplorerInput',
4482
+ name: ExplorerInput,
4483
+ onBlur: HandleInputBlur,
4484
+ onClick: HandleInputClick,
4485
+ onInput: HandleEditingInput,
4486
+ spellcheck: 'false',
4487
+ type: Input
4488
+ }];
4489
+ };
4490
+
4491
+ const label = {
4492
+ childCount: 1,
4493
+ className: Label,
4494
+ type: Div
4495
+ };
4496
+ const dimmedLabel = {
4497
+ childCount: 1,
4498
+ className: mergeClassNames(Label, LabelCut),
4499
+ type: Div
4500
+ };
4501
+ const getLabelDom = (isEditing, name, isDimmed) => {
4502
+ if (isEditing) {
4503
+ return [];
4504
+ }
4505
+ if (isDimmed) {
4506
+ return [dimmedLabel, text(name)];
4507
+ }
4508
+ return [label, text(name)];
4509
+ };
4510
+
4511
+ const getTitle$1 = path => {
4512
+ if (path.startsWith('file://')) {
4513
+ return path.slice('file://'.length);
4514
+ }
4515
+ return path;
4516
+ };
4517
+ const getExplorerItemVirtualDom = (item, editingSessionId = 0) => {
4518
+ const {
4519
+ ariaExpanded,
4520
+ chevron,
4521
+ className,
4522
+ depth,
4523
+ hasEditingError,
4524
+ icon,
4525
+ id,
4526
+ index,
4527
+ isCut,
4528
+ isEditing,
4529
+ isIgnored,
4530
+ name,
4531
+ path,
4532
+ posInSet,
4533
+ selected,
4534
+ setSize
4535
+ } = item;
4536
+ const chevronDom = getChevronVirtualDom(chevron);
4537
+ const fileIconDom = icon ? [getFileIconVirtualDom(icon)] : [];
4538
+ const indent = getIndentFromClassName(className);
4539
+ return [{
4540
+ ariaExpanded,
4541
+ ariaLabel: name,
4542
+ ariaLevel: depth,
4543
+ ariaPosInSet: posInSet,
4544
+ ariaSelected: selected ? 'true' : undefined,
4545
+ ariaSetSize: setSize,
4546
+ childCount: 2 + chevronDom.length,
4547
+ className,
4548
+ 'data-index': index,
4549
+ draggable: true,
4550
+ id,
4551
+ // Keep the item aligned even when the generated indent stylesheet is applied late.
4552
+ paddingLeft: indent,
4553
+ role: TreeItem,
4554
+ title: getTitle$1(path),
4555
+ type: Div
4556
+ }, ...chevronDom, {
4557
+ childCount: fileIconDom.length,
4558
+ className: FileIconSlot,
4559
+ type: Div
4560
+ }, ...fileIconDom, ...getInputDom(isEditing, hasEditingError, editingSessionId), ...getLabelDom(isEditing, name, isCut || isIgnored)];
4561
+ };
4562
+
4563
+ const getActiveDescendant = focusedIndex => {
4564
+ if (focusedIndex >= 0) {
4565
+ return 'TreeItemActive';
4566
+ }
4567
+ return undefined;
4568
+ };
4569
+ const getClassName = (focused, focusedIndex, dropTarget) => {
4570
+ const extraClass1 = focused && focusedIndex === -1 ? FocusOutline : Empty;
4571
+ const extraClass2 = dropTarget === dropTargetFull ? ExplorerDropTarget : Empty;
4572
+ const className = mergeClassNames(ListItems, extraClass1, extraClass2);
4573
+ return className;
4574
+ };
4575
+ const getListItemsVirtualDom = (visibleItems, focusedIndex, focused, dropTargets, editingSessionId = 0) => {
4576
+ const dom = [{
4577
+ ariaActiveDescendant: getActiveDescendant(focusedIndex),
4578
+ ariaLabel: filesExplorer(),
4579
+ childCount: visibleItems.length,
4580
+ className: getClassName(focused, focusedIndex, dropTargets),
4581
+ onBlur: HandleListBlur,
4582
+ onClick: HandleClick,
4583
+ onContextMenu: HandleContextMenu,
4584
+ onDblClick: HandleDoubleClick,
4585
+ onDragEnd: HandleDragEnd,
4586
+ onDragLeave: HandleDragLeave,
4587
+ onDragOver: HandleDragOver,
4588
+ onDragStart: HandleDragStart,
4589
+ onDrop: HandleDrop,
4590
+ onFocus: HandleListFocus,
4591
+ onPaste: HandleNativePaste,
4592
+ onPointerDown: HandlePointerDown,
4593
+ onPointerUp: HandlePointerUp,
4594
+ onWheel: HandleWheel,
4595
+ role: Tree,
4596
+ tabIndex: Focusable,
4597
+ type: Div
4598
+ // onKeyDown: DomEventListenerFunctions.HandleListKeyDown,
4599
+ }, ...visibleItems.flatMap(item => getExplorerItemVirtualDom(item, editingSessionId))];
4600
+ return dom;
4601
+ };
4602
+
4603
+ const welcomeMessageNode = {
4604
+ childCount: 1,
4605
+ className: WelcomeMessage,
4606
+ type: P
4607
+ };
4608
+ const getParentNode$1 = childCount => {
4609
+ return {
4610
+ childCount,
4611
+ className: mergeClassNames(Viewlet, Explorer$1),
4612
+ role: None$2,
4613
+ type: Div
4614
+ };
4615
+ };
4616
+ const getLoadErrorVirtualDom = (loadErrorMessage, isWide, showOpenAnotherFolderButton) => {
4617
+ const childCount = showOpenAnotherFolderButton ? 2 : 1;
4618
+ const errorDom = [{
4619
+ childCount,
4620
+ className: Welcome,
4621
+ type: Div
4622
+ }, welcomeMessageNode, text(loadErrorMessage)];
4623
+ const buttonDom = showOpenAnotherFolderButton ? [{
4624
+ childCount: 1,
4625
+ className: mergeClassNames(Button$2, ButtonPrimary, isWide ? ButtonWide : ButtonNarrow),
4626
+ name: OpenFolder,
4627
+ onClick: HandleClickOpenFolder,
4628
+ type: Button$1
4629
+ }, text(openAnotherFolder())] : [];
4630
+ const parentNode = getParentNode$1(1);
4631
+ return [parentNode, ...errorDom, ...buttonDom];
4632
+ };
4633
+
4634
+ const getScrollBarSize = (size, contentSize, minimumSliderSize) => {
4635
+ if (size >= contentSize) {
4636
+ return 0;
4637
+ }
4638
+ return Math.max(Math.round(size ** 2 / contentSize), minimumSliderSize);
4639
+ };
4640
+
4641
+ const scrollBarThumbNode = {
4642
+ childCount: 0,
4643
+ className: ScrollBarThumb,
4644
+ type: Div
4645
+ };
4646
+ const scrollBarNode = {
4647
+ childCount: 1,
4648
+ className: mergeClassNames(ScrollBar, ScrollBarSmall),
4649
+ onPointerDown: HandleScrollBarPointerDown,
4650
+ type: Div
4651
+ };
4652
+ const getScrollBarVirtualDom = scrollBarHeight => {
4653
+ const shouldShowScrollbar = scrollBarHeight > 0;
4654
+ if (!shouldShowScrollbar) {
4655
+ return [];
4656
+ }
4657
+ return [scrollBarNode, scrollBarThumbNode];
4658
+ };
4659
+
4660
+ const getParentNode = childCount => {
4661
+ return {
4662
+ childCount,
4663
+ className: mergeClassNames(Viewlet, Explorer$1),
4664
+ role: None$2,
4665
+ type: Div
4666
+ };
4667
+ };
4668
+ const getChildCount = (scrollBarDomLength, errorDomLength) => {
4669
+ let childCount = 1;
4670
+ if (scrollBarDomLength > 0) {
4671
+ childCount++;
4672
+ }
4673
+ if (errorDomLength > 0) {
4674
+ childCount++;
4675
+ }
4676
+ return childCount;
4677
+ };
4678
+ const getExplorerVirtualDom = (visibleItems, focusedIndex, root, isWide, focused, dropTargets, height, contentHeight, editingErrorMessage, loadErrorMessage, showOpenAnotherFolderButton, editingSessionId = 0) => {
4679
+ if (!root) {
4680
+ return getExplorerWelcomeVirtualDom(isWide, dropTargets);
4681
+ }
4682
+ if (loadErrorMessage) {
4683
+ return getLoadErrorVirtualDom(loadErrorMessage, isWide, showOpenAnotherFolderButton);
4684
+ }
4685
+ const scrollBarHeight = getScrollBarSize(height, contentHeight, 20);
4686
+ const scrollBarDom = getScrollBarVirtualDom(scrollBarHeight);
4687
+ const errorDom = getErrorMessageDom(editingErrorMessage);
4688
+ const childCount = getChildCount(scrollBarDom.length, errorDom.length);
4689
+ const parentNode = getParentNode(childCount);
4690
+ const dom = [parentNode, ...getListItemsVirtualDom(visibleItems, focusedIndex, focused, dropTargets, editingSessionId), ...scrollBarDom, ...errorDom];
4691
+ return dom;
4692
+ };
4693
+
4694
+ const RE_SENTENCE_END = /[.!?]$/;
4695
+ const getMissingFolderMessage = root => {
4696
+ if (root) {
4697
+ return `Could not open "${root}" because the folder does not exist. It may have been moved or deleted.`;
4698
+ }
4699
+ return 'Could not open folder because the folder does not exist. It may have been moved or deleted.';
4700
+ };
4701
+ const toSentence = message => {
4702
+ const normalized = `${message[0].toUpperCase()}${message.slice(1)}`;
4703
+ return RE_SENTENCE_END.test(normalized) ? normalized : `${normalized}.`;
4704
+ };
4705
+ const getLoadErrorMessage = state => {
4706
+ const {
4707
+ errorCode,
4708
+ errorMessage,
4709
+ hasError,
4710
+ root
4711
+ } = state;
4712
+ if (hasError) {
4713
+ if (errorCode === 'ENOENT') {
4714
+ return getMissingFolderMessage(root);
4715
+ }
4716
+ const reason = errorMessage || 'an unexpected error occurred';
4717
+ const code = errorCode ? ` Error code: ${errorCode}.` : '';
4718
+ return `Could not open folder. ${toSentence(reason)}${code}`;
4719
+ }
4720
+ return '';
4721
+ };
4722
+ const shouldShowOpenAnotherFolderButton = state => {
4723
+ const {
4724
+ errorCode,
4725
+ hasError
4726
+ } = state;
4727
+ return hasError && errorCode === 'ENOENT';
4728
+ };
4729
+
4730
+ const renderItems = (oldState, newState) => {
4731
+ const {
4732
+ dropTargets,
4733
+ editingErrorMessage,
4734
+ editingSessionId,
4735
+ focused,
4736
+ focusedIndex,
4737
+ height,
4738
+ initial,
4739
+ itemHeight,
4740
+ items,
4741
+ root,
4742
+ width
4743
+ } = newState;
4744
+ const visibleDirents = newState.visibleExplorerItems;
4745
+ const isWide = width > 450;
4746
+ const contentHeight = items.length * itemHeight;
4747
+ const loadErrorMessage = getLoadErrorMessage(newState);
4748
+ const showOpenAnotherFolderButton = shouldShowOpenAnotherFolderButton(newState);
4749
+ if (initial) {
4750
+ return [SetDom2, newState.uid, []];
4751
+ }
4752
+ const dom = getExplorerVirtualDom(visibleDirents, focusedIndex, root, isWide, focused, dropTargets, height, contentHeight, editingErrorMessage, loadErrorMessage, showOpenAnotherFolderButton, editingSessionId);
4753
+ return [SetDom2, newState.uid, dom];
4754
+ };
4755
+
4756
+ const getComponentDom = uid => {
4757
+ const state = getComponentState(uid);
4758
+ return renderItems(state, state)[2];
4759
+ };
4760
+
4337
4761
  const getKeyBindings = () => {
4338
4762
  return [{
4339
4763
  command: 'Explorer.selectUp',
@@ -4423,7 +4847,7 @@ const getKeyBindings = () => {
4423
4847
  };
4424
4848
 
4425
4849
  const Separator = 1;
4426
- const None$2 = 0;
4850
+ const None$1 = 0;
4427
4851
  const Disabled = 5;
4428
4852
  const RestoreFocus = 6;
4429
4853
 
@@ -4436,13 +4860,13 @@ const menuEntrySeparator = {
4436
4860
 
4437
4861
  const menuEntryNewFile = {
4438
4862
  command: 'Explorer.newFile',
4439
- flags: None$2,
4863
+ flags: None$1,
4440
4864
  id: 'newFile',
4441
4865
  label: newFile$1()
4442
4866
  };
4443
4867
  const menuEntryNewFolder = {
4444
4868
  command: 'Explorer.newFolder',
4445
- flags: None$2,
4869
+ flags: None$1,
4446
4870
  id: 'newFolder',
4447
4871
  label: newFolder$1()
4448
4872
  };
@@ -4454,7 +4878,7 @@ const menuEntryOpenContainingFolder = {
4454
4878
  };
4455
4879
  const menuEntryOpenInIntegratedTerminal = {
4456
4880
  command: 'Explorer.openInIntegratedTerminal',
4457
- flags: None$2,
4881
+ flags: None$1,
4458
4882
  id: 'openInIntegratedTerminal',
4459
4883
  label: openInIntegratedTerminal$1()
4460
4884
  };
@@ -4472,7 +4896,7 @@ const menuEntryCopy = {
4472
4896
  };
4473
4897
  const menuEntryPaste = {
4474
4898
  command: 'Explorer.handlePaste',
4475
- flags: None$2,
4899
+ flags: None$1,
4476
4900
  id: 'paste',
4477
4901
  label: paste()
4478
4902
  };
@@ -4502,13 +4926,13 @@ const menuEntryCompareWithSelected = {
4502
4926
  };
4503
4927
  const menuEntryRename = {
4504
4928
  command: 'Explorer.renameDirent',
4505
- flags: None$2,
4929
+ flags: None$1,
4506
4930
  id: 'rename',
4507
4931
  label: rename()
4508
4932
  };
4509
4933
  const menuEntryDelete = {
4510
4934
  command: 'Explorer.removeDirent',
4511
- flags: None$2,
4935
+ flags: None$1,
4512
4936
  id: 'delete',
4513
4937
  label: deleteItem()
4514
4938
  };
@@ -4529,7 +4953,7 @@ const getWritableEntry = (state, entry) => {
4529
4953
  };
4530
4954
  const menuEntryRemoveFolderFromWorkspace = {
4531
4955
  command: 'Workspace.close',
4532
- flags: None$2,
4956
+ flags: None$1,
4533
4957
  id: 'removeFolderFromWorkspace',
4534
4958
  label: removeFolderFromWorkspace()
4535
4959
  };
@@ -4619,7 +5043,7 @@ const getMouseActions = () => {
4619
5043
  }];
4620
5044
  };
4621
5045
 
4622
- const getTitle$1 = state => {
5046
+ const getTitle = state => {
4623
5047
  const {
4624
5048
  pathSeparator,
4625
5049
  root
@@ -4627,8 +5051,12 @@ const getTitle$1 = state => {
4627
5051
  if (!root) {
4628
5052
  return 'Explorer';
4629
5053
  }
4630
- const normalizedRoot = root.endsWith(pathSeparator) && root !== pathSeparator ? root.slice(0, -pathSeparator.length) : root;
4631
- return getBaseName(pathSeparator, normalizedRoot) || normalizedRoot;
5054
+ const isUri = URL.canParse(root);
5055
+ const titlePath = isUri ? new URL(root).pathname : root;
5056
+ const titlePathSeparator = isUri ? '/' : pathSeparator;
5057
+ const normalizedTitlePath = titlePath.endsWith(titlePathSeparator) && titlePath !== titlePathSeparator ? titlePath.slice(0, -titlePathSeparator.length) : titlePath;
5058
+ const title = getBaseName(titlePathSeparator, normalizedTitlePath) || normalizedTitlePath;
5059
+ return decodeURIComponent(title);
4632
5060
  };
4633
5061
 
4634
5062
  const getParentStartIndex = (dirents, index) => {
@@ -4901,13 +5329,6 @@ const handleBlur = async state => {
4901
5329
  };
4902
5330
  };
4903
5331
 
4904
- const CollapseAll$1 = 'CollapseAll';
4905
- const ExplorerInput = 'ExplorerInput';
4906
- const NewFile$1 = 'NewFile';
4907
- const NewFolder$1 = 'NewFolder';
4908
- const OpenFolder = 'OpenFolder';
4909
- const Refresh$1 = 'Refresh';
4910
-
4911
5332
  const isFolder$1 = direntType => {
4912
5333
  return [Directory, DirectoryExpanded, SymLinkFolder].includes(direntType);
4913
5334
  };
@@ -5591,2394 +6012,1987 @@ const handleDragLeave = state => {
5591
6012
  }
5592
6013
  return {
5593
6014
  ...state,
5594
- dropTargets: []
5595
- };
5596
- };
5597
-
5598
- const canBeDroppedInto = dirent => {
5599
- if (!dirent) {
5600
- return false;
5601
- }
5602
- switch (dirent.type) {
5603
- case Directory:
5604
- case DirectoryExpanded:
5605
- case DirectoryExpanding:
5606
- return true;
5607
- default:
5608
- return false;
5609
- }
5610
- };
5611
-
5612
- const countInRange = (start, end) => {
5613
- const items = [];
5614
- for (let i = start; i <= end; i++) {
5615
- items.push(i);
5616
- }
5617
- return items;
5618
- };
5619
-
5620
- const dropTargetFull = [-1];
5621
-
5622
- const getNewDropTargets = (state, index) => {
5623
- const {
5624
- items
5625
- } = state;
5626
- if (index === -1) {
5627
- return dropTargetFull;
5628
- }
5629
- const item = items[index];
5630
- if (!item) {
5631
- return dropTargetFull;
5632
- }
5633
- if (!canBeDroppedInto(item)) {
5634
- const startIndex = getParentStartIndex(items, index);
5635
- const endIndex = getParentEndIndex(items, index);
5636
- return countInRange(startIndex, endIndex);
5637
- }
5638
- const newDropTargets = [index];
5639
- return newDropTargets;
5640
- };
5641
-
5642
- const isEqual = (a, b) => {
5643
- if (a.length !== b.length) {
5644
- return false;
5645
- }
5646
- const {
5647
- length
5648
- } = a;
5649
- for (let i = 0; i < length; i++) {
5650
- if (a[i] !== b[i]) {
5651
- return false;
5652
- }
5653
- }
5654
- return true;
5655
- };
5656
-
5657
- const handleDragOverIndex = (state, index) => {
5658
- const {
5659
- dropTargets,
5660
- isReadonly,
5661
- root
5662
- } = state;
5663
- if (isReadonly && root !== '') {
5664
- return state;
5665
- }
5666
- const newDropTargets = getNewDropTargets(state, index);
5667
- if (isEqual(dropTargets, newDropTargets)) {
5668
- return state;
5669
- }
5670
- return {
5671
- ...state,
5672
- dropTargets: newDropTargets
5673
- };
5674
- };
5675
-
5676
- const handleDragOver = (state, x, y) => {
5677
- const {
5678
- isReadonly,
5679
- root
5680
- } = state;
5681
- number(x);
5682
- number(y);
5683
- if (isReadonly && root !== '') {
5684
- return state;
5685
- }
5686
- const index = getIndexFromPosition(state, x, y);
5687
- return handleDragOverIndex(state, index);
5688
- };
5689
-
5690
- const handleDragStart = state => {
5691
- return state;
5692
- };
5693
-
5694
- const isDirectoryHandle = fileHandle => {
5695
- return fileHandle.kind === 'directory';
5696
- };
5697
-
5698
- const getErrorCode = error => {
5699
- if (error && typeof error === 'object' && 'code' in error && typeof error.code === 'string') {
5700
- return error.code;
5701
- }
5702
- return '';
5703
- };
5704
-
5705
- const getErrorMessage = error => {
5706
- if (error instanceof Error) {
5707
- return error.message;
5708
- }
5709
- if (typeof error === 'string') {
5710
- return error;
5711
- }
5712
- return 'Unknown error';
5713
- };
5714
-
5715
- const isValid = decoration => {
5716
- return decoration && typeof decoration.decoration === 'string' && typeof decoration.uri === 'string';
5717
- };
5718
- const normalizeDecorations = decorations => {
5719
- if (!decorations || !Array.isArray(decorations)) {
5720
- return [];
5721
- }
5722
- return decorations.filter(isValid);
5723
- };
5724
-
5725
- const getFileDecorations = async (scheme, root, maybeUris, decorationsEnabled, assetDir, platform) => {
5726
- try {
5727
- if (!decorationsEnabled) {
5728
- return [];
5729
- }
5730
- const providerIds = await invoke$2('SourceControl.getEnabledProviderIds', scheme, root, assetDir, platform);
5731
- if (providerIds.length === 0) {
5732
- return [];
5733
- }
5734
- // TODO how to handle multiple providers?
5735
- const providerId = providerIds.at(-1);
5736
- const uris = ensureUris(maybeUris);
5737
- const decorations = await invoke$2('SourceControl.getFileDecorations', providerId, uris, assetDir, platform);
5738
- const normalized = normalizeDecorations(decorations);
5739
- return normalized;
5740
- } catch (error) {
5741
- console.error(error);
5742
- return [];
5743
- }
5744
- };
5745
-
5746
- const getFriendlyErrorMessage = (errorMessage, errorCode) => {
5747
- switch (errorCode) {
5748
- case 'EACCES':
5749
- case 'EPERM':
5750
- return 'permission was denied';
5751
- case 'EBUSY':
5752
- return 'the folder is currently in use';
5753
- case 'ENOENT':
5754
- return 'the folder does not exist';
5755
- case 'ENOTDIR':
5756
- return 'the path is not a folder';
5757
- default:
5758
- return errorMessage || 'an unexpected error occurred';
5759
- }
5760
- };
5761
-
5762
- const getRestoredDeltaY = savedState => {
5763
- if (savedState && typeof savedState.deltaY === 'number') {
5764
- return savedState.deltaY;
5765
- }
5766
- return 0;
5767
- };
5768
-
5769
- const getSavedRoot$1 = (savedState, workspaceUri) => {
5770
- return workspaceUri;
5771
- };
5772
-
5773
- const RE_PROTOCOL = /^[a-z+]:\/\//;
5774
- const getScheme = uri => {
5775
- const match = uri.match(RE_PROTOCOL);
5776
- if (!match) {
5777
- return '';
5778
- }
5779
- return match[0];
5780
- };
5781
-
5782
- const getExcluded = excludedObject => {
5783
- if (!excludedObject || typeof excludedObject !== 'object' || Array.isArray(excludedObject)) {
5784
- return [];
5785
- }
5786
- const excluded = [];
5787
- for (const [key, value] of Object.entries(excludedObject)) {
5788
- if (value === true) {
5789
- excluded.push(key);
5790
- }
5791
- }
5792
- return excluded;
5793
- };
5794
-
5795
- const getSettings = async () => {
5796
- // TODO don't return false always
5797
- // TODO get all settings at once
5798
- const useChevronsRaw = await invoke$3('Preferences.get', 'explorer.useChevrons');
5799
- const useChevrons = useChevronsRaw === false ? false : true;
5800
- const confirmDeleteRaw = await invoke$3('Preferences.get', 'explorer.confirmdelete');
5801
- const confirmDelete = confirmDeleteRaw === false ? false : true;
5802
- const confirmPasteRaw = await invoke$3('Preferences.get', 'explorer.confirmpaste');
5803
- const confirmPaste = confirmPasteRaw === false ? false : false;
5804
- const excludedRaw = await invoke$3('Preferences.get', 'files.exclude');
5805
- const excluded = getExcluded(excludedRaw);
5806
- const gitIgnoreDecorationsRaw = await invoke$3('Preferences.get', 'explorer.gitIgnoreDecorations');
5807
- const gitIgnoreDecorations = gitIgnoreDecorationsRaw === false ? false : true;
5808
- const preserveExpandStateRaw = await invoke$3('Preferences.get', 'explorer.preserveExpandState');
5809
- const preserveExpandState = preserveExpandStateRaw === false ? false : true;
5810
- const sourceControlDecorationsRaw = await invoke$3('Preferences.get', 'explorer.sourceControlDecorations');
5811
- const sourceControlDecorations = sourceControlDecorationsRaw === false ? false : true;
5812
- return {
5813
- confirmDelete,
5814
- confirmPaste,
5815
- excluded,
5816
- gitIgnoreDecorations,
5817
- preserveExpandState,
5818
- sourceControlDecorations,
5819
- useChevrons
5820
- };
5821
- };
5822
-
5823
- const getWorkspaceUri = () => {
5824
- return invoke$3('Workspace.getUri');
6015
+ dropTargets: []
6016
+ };
5825
6017
  };
5826
6018
 
5827
- const getSavedChildDirents = (map, path, depth, excluded, pathSeparator, root = path) => {
5828
- let children = map[path];
5829
- if (!children) {
5830
- return [];
5831
- }
5832
- const dirents = [];
5833
- children = sortExplorerItems(children);
5834
- const visible = [];
5835
- const displayRoot = path.endsWith(pathSeparator) ? path : path + pathSeparator;
5836
- for (const child of children) {
5837
- const childPath = displayRoot + child.name;
5838
- if (isExcluded(root, childPath, excluded)) {
5839
- continue;
5840
- }
5841
- visible.push(child);
6019
+ const canBeDroppedInto = dirent => {
6020
+ if (!dirent) {
6021
+ return false;
5842
6022
  }
5843
- const visibleLength = visible.length;
5844
- for (let i = 0; i < visibleLength; i++) {
5845
- const child = visible[i];
5846
- const {
5847
- name,
5848
- type
5849
- } = child;
5850
- const childPath = displayRoot + name;
5851
- if ((child.type === Directory || child.type === SymLinkFolder) && childPath in map) {
5852
- dirents.push({
5853
- depth,
5854
- icon: '',
5855
- name,
5856
- path: childPath,
5857
- posInSet: i + 1,
5858
- setSize: visibleLength,
5859
- type: DirectoryExpanded
5860
- });
5861
- dirents.push(...getSavedChildDirents(map, childPath, depth + 1, excluded, pathSeparator, root));
5862
- } else {
5863
- dirents.push({
5864
- depth,
5865
- icon: '',
5866
- name,
5867
- path: childPath,
5868
- posInSet: i + 1,
5869
- setSize: visibleLength,
5870
- type
5871
- });
5872
- }
6023
+ switch (dirent.type) {
6024
+ case Directory:
6025
+ case DirectoryExpanded:
6026
+ case DirectoryExpanding:
6027
+ return true;
6028
+ default:
6029
+ return false;
5873
6030
  }
5874
- return dirents;
5875
6031
  };
5876
6032
 
5877
- const Fulfilled = 'fulfilled';
5878
- const Rejected = 'rejected';
5879
-
5880
- const createDirents = (root, expandedDirentPaths, expandedDirentChildren, excluded, pathSeparator) => {
5881
- const dirents = [];
5882
- const map = Object.create(null);
5883
- for (let i = 0; i < expandedDirentPaths.length; i++) {
5884
- const path = expandedDirentPaths[i];
5885
- const children = expandedDirentChildren[i];
5886
- if (children.status === Fulfilled) {
5887
- map[path] = children.value;
5888
- }
6033
+ const countInRange = (start, end) => {
6034
+ const items = [];
6035
+ for (let i = start; i <= end; i++) {
6036
+ items.push(i);
5889
6037
  }
5890
- dirents.push(...getSavedChildDirents(map, root, 1, excluded, pathSeparator, root));
5891
- return dirents;
6038
+ return items;
5892
6039
  };
5893
- const getSavedExpandedPaths = (savedState, root) => {
5894
- if (savedState && savedState.root !== root) {
5895
- return [];
6040
+
6041
+ const getNewDropTargets = (state, index) => {
6042
+ const {
6043
+ items
6044
+ } = state;
6045
+ if (index === -1) {
6046
+ return dropTargetFull;
5896
6047
  }
5897
- if (savedState && savedState.expandedPaths && Array.isArray(savedState.expandedPaths)) {
5898
- return savedState.expandedPaths.filter(path => typeof path === 'string');
6048
+ const item = items[index];
6049
+ if (!item) {
6050
+ return dropTargetFull;
5899
6051
  }
5900
- return [];
6052
+ if (!canBeDroppedInto(item)) {
6053
+ const startIndex = getParentStartIndex(items, index);
6054
+ const endIndex = getParentEndIndex(items, index);
6055
+ return countInRange(startIndex, endIndex);
6056
+ }
6057
+ const newDropTargets = [index];
6058
+ return newDropTargets;
5901
6059
  };
5902
- const restoreExpandedState = async (expandedPaths, root, pathSeparator, excluded) => {
5903
- // TODO read all opened folders in parallel
5904
- // ignore ENOENT errors
5905
- // ignore ENOTDIR errors
5906
- // merge all dirents
5907
- // restore scroll location
5908
- if (root === EmptyString) {
5909
- return [];
6060
+
6061
+ const isEqual = (a, b) => {
6062
+ if (a.length !== b.length) {
6063
+ return false;
5910
6064
  }
5911
- const expandedDirentPaths = [root, ...expandedPaths];
5912
- const expandedDirentChildren = await Promise.allSettled(expandedDirentPaths.map(getChildDirentsRaw));
5913
- if (expandedDirentChildren[0].status === Rejected) {
5914
- throw expandedDirentChildren[0].reason;
6065
+ const {
6066
+ length
6067
+ } = a;
6068
+ for (let i = 0; i < length; i++) {
6069
+ if (a[i] !== b[i]) {
6070
+ return false;
6071
+ }
5915
6072
  }
5916
- const dirents = createDirents(root, expandedDirentPaths, expandedDirentChildren, excluded, pathSeparator);
5917
- return dirents;
6073
+ return true;
5918
6074
  };
5919
6075
 
5920
- const getExpandedPaths = (savedState, root, currentRoot, currentExpandedPaths, preserveExpandState) => {
5921
- if (!preserveExpandState) {
5922
- return [];
5923
- }
5924
- if (savedState !== undefined && savedState !== null) {
5925
- return getSavedExpandedPaths(savedState, root);
6076
+ const handleDragOverIndex = (state, index) => {
6077
+ const {
6078
+ dropTargets,
6079
+ isReadonly,
6080
+ root
6081
+ } = state;
6082
+ if (isReadonly && root !== '') {
6083
+ return state;
5926
6084
  }
5927
- if (currentRoot === root) {
5928
- return currentExpandedPaths;
6085
+ const newDropTargets = getNewDropTargets(state, index);
6086
+ if (isEqual(dropTargets, newDropTargets)) {
6087
+ return state;
5929
6088
  }
5930
- return [];
6089
+ return {
6090
+ ...state,
6091
+ dropTargets: newDropTargets
6092
+ };
5931
6093
  };
5932
- const loadContent = async (state, savedState) => {
6094
+
6095
+ const handleDragOver = (state, x, y) => {
5933
6096
  const {
5934
- assetDir,
5935
- expandedPaths: currentExpandedPaths,
5936
- height,
5937
- itemHeight,
5938
- platform,
5939
- root: currentRoot
6097
+ isReadonly,
6098
+ root
5940
6099
  } = state;
5941
- const {
5942
- confirmDelete,
5943
- excluded,
5944
- gitIgnoreDecorations,
5945
- preserveExpandState,
5946
- sourceControlDecorations,
5947
- useChevrons
5948
- } = await getSettings();
5949
- const workspaceUri = await getWorkspaceUri();
5950
- const root = getSavedRoot$1(savedState, workspaceUri);
5951
- const expandedPaths = getExpandedPaths(savedState, root, currentRoot, currentExpandedPaths, preserveExpandState);
5952
- try {
5953
- const pathSeparator = Slash;
5954
- const isReadonly$1 = root === '' ? false : await isReadonly(root);
5955
- const restoredDirents = await restoreExpandedState(expandedPaths, root, pathSeparator, excluded);
5956
- const rawDeltaY = getRestoredDeltaY(savedState);
5957
- const maxDeltaY = Math.max(restoredDirents.length * itemHeight - height, 0);
5958
- const deltaY = Math.min(Math.max(rawDeltaY, 0), maxDeltaY);
5959
- const minLineY = Math.round(deltaY / itemHeight);
5960
- const scheme = getScheme(root);
5961
- const decorations = await getFileDecorations(scheme, root, restoredDirents.filter(item => item.depth === 1).map(item => item.path), sourceControlDecorations, assetDir, platform);
5962
- const sourceControlIgnoredUris = await getGitIgnoredUris(root, restoredDirents, pathSeparator, gitIgnoreDecorations);
5963
- return {
5964
- ...state,
5965
- confirmDelete,
5966
- decorations,
5967
- deltaY,
5968
- errorCode: '',
5969
- errorMessage: '',
5970
- excluded,
5971
- expandedPaths,
5972
- gitIgnoreDecorations,
5973
- hasError: false,
5974
- initial: false,
5975
- isReadonly: isReadonly$1,
5976
- items: restoredDirents,
5977
- maxIndent: 10,
5978
- minLineY,
5979
- pathSeparator,
5980
- preserveExpandState,
5981
- root,
5982
- sourceControlIgnoredUris,
5983
- useChevrons
5984
- };
5985
- } catch (error) {
5986
- const errorCode = getErrorCode(error);
5987
- const errorMessage = getFriendlyErrorMessage(getErrorMessage(error), errorCode);
5988
- return {
5989
- ...state,
5990
- confirmDelete,
5991
- errorCode,
5992
- errorMessage,
5993
- expandedPaths,
5994
- gitIgnoreDecorations,
5995
- hasError: true,
5996
- initial: false,
5997
- isReadonly: false,
5998
- items: [],
5999
- preserveExpandState,
6000
- root,
6001
- useChevrons
6002
- };
6100
+ number(x);
6101
+ number(y);
6102
+ if (isReadonly && root !== '') {
6103
+ return state;
6003
6104
  }
6105
+ const index = getIndexFromPosition(state, x, y);
6106
+ return handleDragOverIndex(state, index);
6004
6107
  };
6005
6108
 
6006
- const getChildHandles = async fileHandle => {
6007
- // @ts-ignore
6008
- const values = fileHandle.values();
6009
- const children = await fromAsync(values);
6010
- return children;
6109
+ const handleDragStart = state => {
6110
+ return state;
6011
6111
  };
6012
6112
 
6013
- const getFileHandleText = async fileHandle => {
6014
- const file = await fileHandle.getFile();
6015
- const text = await file.text();
6016
- return text;
6113
+ const isDirectoryHandle = fileHandle => {
6114
+ return fileHandle.kind === 'directory';
6115
+ };
6116
+
6117
+ const getErrorCode = error => {
6118
+ if (error && typeof error === 'object' && 'code' in error && typeof error.code === 'string') {
6119
+ return error.code;
6120
+ }
6121
+ return '';
6122
+ };
6123
+
6124
+ const getErrorMessage = error => {
6125
+ if (error instanceof Error) {
6126
+ return error.message;
6127
+ }
6128
+ if (typeof error === 'string') {
6129
+ return error;
6130
+ }
6131
+ return 'Unknown error';
6017
6132
  };
6018
6133
 
6019
- const isFileHandle = fileHandle => {
6020
- return fileHandle.kind === 'file';
6134
+ const isValid = decoration => {
6135
+ return decoration && typeof decoration.decoration === 'string' && typeof decoration.uri === 'string';
6021
6136
  };
6022
-
6023
- const createUploadTree = async (root, fileHandles) => {
6024
- const uploadTree = Object.create(null);
6025
- const normalized = fileHandles.filter(Boolean);
6026
- for (const fileHandle of normalized) {
6027
- const {
6028
- name
6029
- } = fileHandle;
6030
- if (isDirectoryHandle(fileHandle)) {
6031
- const children = await getChildHandles(fileHandle);
6032
- const childTree = await createUploadTree(name, children);
6033
- uploadTree[name] = childTree;
6034
- } else if (isFileHandle(fileHandle)) {
6035
- // TODO maybe save blob and use filesystem.writeblob
6036
- const text = await getFileHandleText(fileHandle);
6037
- uploadTree[name] = text;
6038
- }
6137
+ const normalizeDecorations = decorations => {
6138
+ if (!decorations || !Array.isArray(decorations)) {
6139
+ return [];
6039
6140
  }
6040
- return uploadTree;
6141
+ return decorations.filter(isValid);
6041
6142
  };
6042
6143
 
6043
- const getFileOperations = (root, uploadTree) => {
6044
- const operations = [];
6045
- const processTree = (tree, currentPath) => {
6046
- for (const [path, value] of Object.entries(tree)) {
6047
- const fullPath = currentPath ? join2(currentPath, path) : path;
6048
- if (typeof value === 'object') {
6049
- operations.push({
6050
- path: join2(root, fullPath),
6051
- type: CreateFolder$1
6052
- });
6053
- processTree(value, fullPath);
6054
- } else if (typeof value === 'string') {
6055
- operations.push({
6056
- path: join2(root, fullPath),
6057
- text: value,
6058
- type: CreateFile$1
6059
- });
6060
- }
6144
+ const getFileDecorations = async (scheme, root, maybeUris, decorationsEnabled, assetDir, platform) => {
6145
+ try {
6146
+ if (!decorationsEnabled) {
6147
+ return [];
6061
6148
  }
6062
- };
6063
- processTree(uploadTree, '');
6064
- return operations;
6149
+ const providerIds = await invoke$2('SourceControl.getEnabledProviderIds', scheme, root, assetDir, platform);
6150
+ if (providerIds.length === 0) {
6151
+ return [];
6152
+ }
6153
+ // TODO how to handle multiple providers?
6154
+ const providerId = providerIds.at(-1);
6155
+ const uris = ensureUris(maybeUris);
6156
+ const decorations = await invoke$2('SourceControl.getFileDecorations', providerId, uris, assetDir, platform);
6157
+ const normalized = normalizeDecorations(decorations);
6158
+ return normalized;
6159
+ } catch (error) {
6160
+ console.error(error);
6161
+ return [];
6162
+ }
6065
6163
  };
6066
6164
 
6067
- const uploadFileSystemHandles = async (root, pathSeparator, fileSystemHandles) => {
6068
- if (fileSystemHandles.length === 0) {
6069
- return true;
6165
+ const getFriendlyErrorMessage = (errorMessage, errorCode) => {
6166
+ switch (errorCode) {
6167
+ case 'EACCES':
6168
+ case 'EPERM':
6169
+ return 'permission was denied';
6170
+ case 'EBUSY':
6171
+ return 'the folder is currently in use';
6172
+ case 'ENOENT':
6173
+ return 'the folder does not exist';
6174
+ case 'ENOTDIR':
6175
+ return 'the path is not a folder';
6176
+ default:
6177
+ return errorMessage || 'an unexpected error occurred';
6070
6178
  }
6071
- const uploadTree = await createUploadTree(root, fileSystemHandles);
6072
- const fileOperations = getFileOperations(root, uploadTree);
6073
- await applyFileOperations(fileOperations);
6074
-
6075
- // TODO
6076
- // 1. in electron, use webutils.getPathForFile to see if a path is available
6077
- // 2. else, walk all files and folders recursively and upload all of them (if there are many, show a progress bar)
6078
-
6079
- // TODO send file system operations to renderer worker
6080
- return true;
6081
6179
  };
6082
6180
 
6083
- const mergeDirents$1 = (oldDirents, newDirents) => {
6084
- return newDirents;
6085
- };
6086
- const getMergedDirents$2 = async (root, pathSeparator, dirents, excluded) => {
6087
- const childDirents = await getChildDirents(pathSeparator, root, 0, excluded, root);
6088
- const mergedDirents = mergeDirents$1(dirents, childDirents);
6089
- return mergedDirents;
6181
+ const getRestoredDeltaY = savedState => {
6182
+ if (savedState && typeof savedState.deltaY === 'number') {
6183
+ return savedState.deltaY;
6184
+ }
6185
+ return 0;
6090
6186
  };
6091
- const getDroppedDirectoryWorkspacePath = fileHandle => {
6092
- return `html://${fileHandle.name}`;
6187
+
6188
+ const getSavedRoot$1 = (savedState, workspaceUri) => {
6189
+ return workspaceUri;
6093
6190
  };
6094
- const openDroppedDirectoryAsWorkspace$1 = async (state, fileHandle) => {
6095
- const path = getDroppedDirectoryWorkspacePath(fileHandle);
6096
- await invoke$3('PersistentFileHandle.addHandle', fileHandle.name, fileHandle);
6097
- await invoke$3('Workspace.setPath', path);
6098
- const updated = await loadContent(state, undefined);
6099
- return {
6100
- ...updated,
6101
- dropTargets: []
6102
- };
6191
+
6192
+ const RE_PROTOCOL = /^[a-z+]:\/\//;
6193
+ const getScheme = uri => {
6194
+ const match = uri.match(RE_PROTOCOL);
6195
+ if (!match) {
6196
+ return '';
6197
+ }
6198
+ return match[0];
6103
6199
  };
6104
- const getFirstDroppedDirectory = (state, fileHandles) => {
6105
- const {
6106
- root
6107
- } = state;
6108
- if (root !== '') {
6109
- return undefined;
6200
+
6201
+ const getExcluded = excludedObject => {
6202
+ if (!excludedObject || typeof excludedObject !== 'object' || Array.isArray(excludedObject)) {
6203
+ return [];
6110
6204
  }
6111
- for (const fileHandle of fileHandles) {
6112
- if (isDirectoryHandle(fileHandle)) {
6113
- return fileHandle;
6205
+ const excluded = [];
6206
+ for (const [key, value] of Object.entries(excludedObject)) {
6207
+ if (value === true) {
6208
+ excluded.push(key);
6114
6209
  }
6115
6210
  }
6116
- return undefined;
6211
+ return excluded;
6117
6212
  };
6118
- const handleDrop$2 = async (state, fileHandles, paths) => {
6119
- const {
6120
- excluded,
6121
- items,
6122
- pathSeparator,
6123
- root
6124
- } = state;
6125
- const droppedDirectory = getFirstDroppedDirectory(state, fileHandles);
6126
- if (droppedDirectory) {
6127
- return openDroppedDirectoryAsWorkspace$1(state, droppedDirectory);
6128
- }
6129
- if (root === '') {
6130
- return {
6131
- ...state,
6132
- dropTargets: []
6133
- };
6134
- }
6135
- const handled = await uploadFileSystemHandles(root, pathSeparator, fileHandles);
6136
- if (handled) {
6137
- const updated = await refresh(state);
6138
- return {
6139
- ...updated,
6140
- dropTargets: []
6141
- };
6142
- }
6143
- const mergedDirents = await getMergedDirents$2(root, pathSeparator, items, excluded);
6213
+
6214
+ const getSettings = async () => {
6215
+ // TODO don't return false always
6216
+ // TODO get all settings at once
6217
+ const useChevronsRaw = await invoke$3('Preferences.get', 'explorer.useChevrons');
6218
+ const useChevrons = useChevronsRaw === false ? false : true;
6219
+ const confirmDeleteRaw = await invoke$3('Preferences.get', 'explorer.confirmdelete');
6220
+ const confirmDelete = confirmDeleteRaw === false ? false : true;
6221
+ const confirmPasteRaw = await invoke$3('Preferences.get', 'explorer.confirmpaste');
6222
+ const confirmPaste = confirmPasteRaw === false ? false : false;
6223
+ const excludedRaw = await invoke$3('Preferences.get', 'files.exclude');
6224
+ const excluded = getExcluded(excludedRaw);
6225
+ const gitIgnoreDecorationsRaw = await invoke$3('Preferences.get', 'explorer.gitIgnoreDecorations');
6226
+ const gitIgnoreDecorations = gitIgnoreDecorationsRaw === false ? false : true;
6227
+ const preserveExpandStateRaw = await invoke$3('Preferences.get', 'explorer.preserveExpandState');
6228
+ const preserveExpandState = preserveExpandStateRaw === false ? false : true;
6229
+ const sourceControlDecorationsRaw = await invoke$3('Preferences.get', 'explorer.sourceControlDecorations');
6230
+ const sourceControlDecorations = sourceControlDecorationsRaw === false ? false : true;
6144
6231
  return {
6145
- ...state,
6146
- dropTargets: [],
6147
- items: mergedDirents
6232
+ confirmDelete,
6233
+ confirmPaste,
6234
+ excluded,
6235
+ gitIgnoreDecorations,
6236
+ preserveExpandState,
6237
+ sourceControlDecorations,
6238
+ useChevrons
6148
6239
  };
6149
6240
  };
6150
6241
 
6151
- const getFileOperationsElectron = async (root, paths, fileHandles, pathSeparator) => {
6152
- const operations = [];
6153
- for (let i = 0; i < paths.length; i++) {
6154
- const fileHandle = fileHandles[i];
6242
+ const getWorkspaceUri = () => {
6243
+ return invoke$3('Workspace.getUri');
6244
+ };
6245
+
6246
+ const getSavedChildDirents = (map, path, depth, excluded, pathSeparator, root = path) => {
6247
+ let children = map[path];
6248
+ if (!children) {
6249
+ return [];
6250
+ }
6251
+ const dirents = [];
6252
+ children = sortExplorerItems(children);
6253
+ const visible = [];
6254
+ const displayRoot = path.endsWith(pathSeparator) ? path : path + pathSeparator;
6255
+ for (const child of children) {
6256
+ const childPath = displayRoot + child.name;
6257
+ if (isExcluded(root, childPath, excluded)) {
6258
+ continue;
6259
+ }
6260
+ visible.push(child);
6261
+ }
6262
+ const visibleLength = visible.length;
6263
+ for (let i = 0; i < visibleLength; i++) {
6264
+ const child = visible[i];
6155
6265
  const {
6156
- name
6157
- } = fileHandle;
6158
- const path = paths[i];
6159
- operations.push({
6160
- from: path,
6161
- path: join$1(pathSeparator, root, name),
6162
- type: Copy$1
6163
- });
6266
+ name,
6267
+ type
6268
+ } = child;
6269
+ const childPath = displayRoot + name;
6270
+ if ((child.type === Directory || child.type === SymLinkFolder) && childPath in map) {
6271
+ dirents.push({
6272
+ depth,
6273
+ icon: '',
6274
+ name,
6275
+ path: childPath,
6276
+ posInSet: i + 1,
6277
+ setSize: visibleLength,
6278
+ type: DirectoryExpanded
6279
+ });
6280
+ dirents.push(...getSavedChildDirents(map, childPath, depth + 1, excluded, pathSeparator, root));
6281
+ } else {
6282
+ dirents.push({
6283
+ depth,
6284
+ icon: '',
6285
+ name,
6286
+ path: childPath,
6287
+ posInSet: i + 1,
6288
+ setSize: visibleLength,
6289
+ type
6290
+ });
6291
+ }
6164
6292
  }
6165
- return operations;
6293
+ return dirents;
6166
6294
  };
6167
6295
 
6168
- // TODO copy files in parallel
6169
- const copyFilesElectron = async (root, fileHandles, paths) => {
6170
- const operations = await getFileOperationsElectron(root, paths, fileHandles, Slash);
6171
- await applyFileOperations(operations);
6172
- };
6296
+ const Fulfilled = 'fulfilled';
6297
+ const Rejected = 'rejected';
6173
6298
 
6174
- const mergeDirents = (oldDirents, newDirents) => {
6175
- return newDirents;
6176
- };
6177
- const getMergedDirents$1 = async (root, pathSeparator, dirents, excluded) => {
6178
- const childDirents = await getChildDirents(pathSeparator, root, 0, excluded, root);
6179
- const mergedDirents = mergeDirents(dirents, childDirents);
6180
- return mergedDirents;
6181
- };
6182
- const openDroppedDirectoryAsWorkspace = async (state, path) => {
6183
- await invoke$3('Workspace.setPath', path);
6184
- const updated = await loadContent(state, undefined);
6185
- return {
6186
- ...updated,
6187
- dropTargets: []
6188
- };
6189
- };
6190
- const getFirstDroppedDirectoryPath = (state, fileHandles, paths) => {
6191
- const {
6192
- root
6193
- } = state;
6194
- if (root !== '') {
6195
- return undefined;
6196
- }
6197
- for (let i = 0; i < fileHandles.length; i++) {
6198
- const fileHandle = fileHandles[i];
6199
- if (isDirectoryHandle(fileHandle)) {
6200
- return paths[i];
6299
+ const createDirents = (root, expandedDirentPaths, expandedDirentChildren, excluded, pathSeparator) => {
6300
+ const dirents = [];
6301
+ const map = Object.create(null);
6302
+ for (let i = 0; i < expandedDirentPaths.length; i++) {
6303
+ const path = expandedDirentPaths[i];
6304
+ const children = expandedDirentChildren[i];
6305
+ if (children.status === Fulfilled) {
6306
+ map[path] = children.value;
6201
6307
  }
6202
6308
  }
6203
- return undefined;
6309
+ dirents.push(...getSavedChildDirents(map, root, 1, excluded, pathSeparator, root));
6310
+ return dirents;
6204
6311
  };
6205
- const handleDrop$1 = async (state, fileHandles, paths) => {
6206
- const {
6207
- excluded,
6208
- items,
6209
- pathSeparator,
6210
- root
6211
- } = state;
6212
- const droppedDirectoryPath = getFirstDroppedDirectoryPath(state, fileHandles, paths);
6213
- if (droppedDirectoryPath) {
6214
- return openDroppedDirectoryAsWorkspace(state, droppedDirectoryPath);
6312
+ const getSavedExpandedPaths = (savedState, root) => {
6313
+ if (savedState && savedState.root !== root) {
6314
+ return [];
6215
6315
  }
6216
- if (root === '') {
6217
- return {
6218
- ...state,
6219
- dropTargets: []
6220
- };
6316
+ if (savedState && savedState.expandedPaths && Array.isArray(savedState.expandedPaths)) {
6317
+ return savedState.expandedPaths.filter(path => typeof path === 'string');
6221
6318
  }
6222
- await copyFilesElectron(root, fileHandles, paths);
6223
- const mergedDirents = await getMergedDirents$1(root, pathSeparator, items, excluded);
6224
- return {
6225
- ...state,
6226
- dropTargets: [],
6227
- items: mergedDirents
6228
- };
6229
- };
6230
-
6231
- const directoryTypes$2 = [Directory, DirectoryExpanded, DirectoryExpanding];
6232
- const isDirectory = item => {
6233
- return directoryTypes$2.includes(item.type);
6234
- };
6235
- const isDescendant = (path, parentPath, pathSeparator) => {
6236
- const prefix = parentPath.endsWith(pathSeparator) ? parentPath : `${parentPath}${pathSeparator}`;
6237
- return path.startsWith(prefix);
6319
+ return [];
6238
6320
  };
6239
- const join = (parentPath, name, pathSeparator) => {
6240
- if (parentPath.endsWith(pathSeparator)) {
6241
- return `${parentPath}${name}`;
6321
+ const restoreExpandedState = async (expandedPaths, root, pathSeparator, excluded) => {
6322
+ // TODO read all opened folders in parallel
6323
+ // ignore ENOENT errors
6324
+ // ignore ENOTDIR errors
6325
+ // merge all dirents
6326
+ // restore scroll location
6327
+ if (root === EmptyString) {
6328
+ return [];
6242
6329
  }
6243
- return `${parentPath}${pathSeparator}${name}`;
6244
- };
6245
- const getTargetFolder = (state, index) => {
6246
- const {
6247
- items,
6248
- pathSeparator,
6249
- root
6250
- } = state;
6251
- if (index === -1) {
6252
- return root;
6330
+ const expandedDirentPaths = [root, ...expandedPaths];
6331
+ const expandedDirentChildren = await Promise.allSettled(expandedDirentPaths.map(getChildDirentsRaw));
6332
+ if (expandedDirentChildren[0].status === Rejected) {
6333
+ throw expandedDirentChildren[0].reason;
6253
6334
  }
6254
- const item = items[index];
6255
- if (!item) {
6256
- throw new Error('Drop target does not exist');
6335
+ const dirents = createDirents(root, expandedDirentPaths, expandedDirentChildren, excluded, pathSeparator);
6336
+ return dirents;
6337
+ };
6338
+
6339
+ const getExpandedPaths = (savedState, root, currentRoot, currentExpandedPaths, preserveExpandState) => {
6340
+ if (!preserveExpandState) {
6341
+ return [];
6257
6342
  }
6258
- if (isDirectory(item)) {
6259
- return item.path;
6343
+ if (savedState !== undefined && savedState !== null) {
6344
+ return getSavedExpandedPaths(savedState, root);
6260
6345
  }
6261
- if (item.type === File) {
6262
- return dirname(pathSeparator, item.path);
6346
+ if (currentRoot === root) {
6347
+ return currentExpandedPaths;
6263
6348
  }
6264
- throw new Error('Drop target is not a file or folder');
6265
- };
6266
- const getTopLevelSourcePaths = (sourcePaths, pathSeparator) => {
6267
- const uniquePaths = [...new Set(sourcePaths)];
6268
- return uniquePaths.filter(path => uniquePaths.every(otherPath => otherPath === path || !isDescendant(path, otherPath, pathSeparator)));
6349
+ return [];
6269
6350
  };
6270
- const getMoveOperations = (state, sourcePaths, targetFolder) => {
6351
+ const loadContent = async (state, savedState) => {
6271
6352
  const {
6272
- items,
6273
- pathSeparator
6353
+ assetDir,
6354
+ expandedPaths: currentExpandedPaths,
6355
+ height,
6356
+ itemHeight,
6357
+ platform,
6358
+ root: currentRoot
6274
6359
  } = state;
6275
- const itemByPath = new Map(items.map(item => [item.path, item]));
6276
- const existingPaths = new Set(itemByPath.keys());
6277
- const destinationPaths = new Set();
6278
- const operations = [];
6279
- for (const sourcePath of getTopLevelSourcePaths(sourcePaths, pathSeparator)) {
6280
- const sourceItem = itemByPath.get(sourcePath);
6281
- if (!sourceItem) {
6282
- throw new Error(`Dragged item no longer exists: ${sourcePath}`);
6283
- }
6284
- if (sourcePath === targetFolder) {
6285
- continue;
6286
- }
6287
- if (isDirectory(sourceItem) && isDescendant(targetFolder, sourcePath, pathSeparator)) {
6288
- throw new Error(cannotMoveFolderIntoSubfolderOfItself(sourceItem.name));
6289
- }
6290
- const destinationPath = join(targetFolder, sourceItem.name, pathSeparator);
6291
- if (destinationPath === sourcePath) {
6292
- continue;
6293
- }
6294
- if (destinationPaths.has(destinationPath) || existingPaths.has(destinationPath)) {
6295
- throw new Error(fileOrFolderAlreadyExists(sourceItem.name));
6296
- }
6297
- destinationPaths.add(destinationPath);
6298
- operations.push({
6299
- from: sourcePath,
6300
- path: destinationPath
6301
- });
6302
- }
6303
- return operations;
6304
- };
6305
- const expandTargetFolder = (items, targetFolder) => {
6306
- return items.map(item => {
6307
- if (item.path === targetFolder && item.type === Directory) {
6308
- return {
6309
- ...item,
6310
- type: DirectoryExpanded
6311
- };
6312
- }
6313
- return item;
6314
- });
6315
- };
6316
- const handleInternalDrop = async (state, sourcePaths, index) => {
6317
6360
  const {
6318
- expandedPaths: oldExpandedPaths,
6319
- isReadonly,
6320
- items,
6321
- preserveExpandState
6322
- } = state;
6323
- if (isReadonly) {
6324
- return state;
6325
- }
6326
- const targetFolder = getTargetFolder(state, index);
6327
- const operations = getMoveOperations(state, sourcePaths, targetFolder);
6328
- if (operations.length === 0) {
6361
+ confirmDelete,
6362
+ excluded,
6363
+ gitIgnoreDecorations,
6364
+ preserveExpandState,
6365
+ sourceControlDecorations,
6366
+ useChevrons
6367
+ } = await getSettings();
6368
+ const workspaceUri = await getWorkspaceUri();
6369
+ const root = getSavedRoot$1(savedState, workspaceUri);
6370
+ const expandedPaths = getExpandedPaths(savedState, root, currentRoot, currentExpandedPaths, preserveExpandState);
6371
+ try {
6372
+ const pathSeparator = Slash;
6373
+ const isReadonly$1 = root === '' ? false : await isReadonly(root);
6374
+ const restoredDirents = await restoreExpandedState(expandedPaths, root, pathSeparator, excluded);
6375
+ const rawDeltaY = getRestoredDeltaY(savedState);
6376
+ const maxDeltaY = Math.max(restoredDirents.length * itemHeight - height, 0);
6377
+ const deltaY = Math.min(Math.max(rawDeltaY, 0), maxDeltaY);
6378
+ const minLineY = Math.round(deltaY / itemHeight);
6379
+ const scheme = getScheme(root);
6380
+ const decorations = await getFileDecorations(scheme, root, restoredDirents.filter(item => item.depth === 1).map(item => item.path), sourceControlDecorations, assetDir, platform);
6381
+ const sourceControlIgnoredUris = await getGitIgnoredUris(root, restoredDirents, pathSeparator, gitIgnoreDecorations);
6329
6382
  return {
6330
6383
  ...state,
6331
- dropTargets: []
6384
+ confirmDelete,
6385
+ decorations,
6386
+ deltaY,
6387
+ errorCode: '',
6388
+ errorMessage: '',
6389
+ excluded,
6390
+ expandedPaths,
6391
+ gitIgnoreDecorations,
6392
+ hasError: false,
6393
+ initial: false,
6394
+ isReadonly: isReadonly$1,
6395
+ items: restoredDirents,
6396
+ maxIndent: 10,
6397
+ minLineY,
6398
+ pathSeparator,
6399
+ preserveExpandState,
6400
+ root,
6401
+ sourceControlIgnoredUris,
6402
+ useChevrons
6403
+ };
6404
+ } catch (error) {
6405
+ const errorCode = getErrorCode(error);
6406
+ const errorMessage = getFriendlyErrorMessage(getErrorMessage(error), errorCode);
6407
+ return {
6408
+ ...state,
6409
+ confirmDelete,
6410
+ errorCode,
6411
+ errorMessage,
6412
+ expandedPaths,
6413
+ gitIgnoreDecorations,
6414
+ hasError: true,
6415
+ initial: false,
6416
+ isReadonly: false,
6417
+ items: [],
6418
+ preserveExpandState,
6419
+ root,
6420
+ useChevrons
6332
6421
  };
6333
6422
  }
6334
- for (const operation of operations) {
6335
- await rename$1(operation.from, operation.path);
6336
- }
6337
- const expandedItems = expandTargetFolder(items, targetFolder);
6338
- const expandedPaths = preserveExpandState ? [...new Set([...oldExpandedPaths, targetFolder])] : oldExpandedPaths;
6339
- const updated = await refresh({
6340
- ...state,
6341
- expandedPaths,
6342
- items: expandedItems
6343
- });
6344
- return {
6345
- ...updated,
6346
- dropTargets: []
6347
- };
6348
6423
  };
6349
6424
 
6350
- const Electron = 2;
6425
+ const getChildHandles = async fileHandle => {
6426
+ // @ts-ignore
6427
+ const values = fileHandle.values();
6428
+ const children = await fromAsync(values);
6429
+ return children;
6430
+ };
6351
6431
 
6352
- const getModule = isElectron => {
6353
- if (isElectron) {
6354
- return handleDrop$1;
6355
- }
6356
- return handleDrop$2;
6432
+ const getFileHandleText = async fileHandle => {
6433
+ const file = await fileHandle.getFile();
6434
+ const text = await file.text();
6435
+ return text;
6357
6436
  };
6358
- const handleDropRoot = async (state, fileHandles, paths) => {
6359
- const {
6360
- isReadonly,
6361
- platform,
6362
- root
6363
- } = state;
6364
- if (isReadonly && root !== '') {
6365
- return state;
6366
- }
6367
- if (fileHandles.length === 0 && paths.length > 0) {
6368
- return handleInternalDrop(state, paths, -1);
6369
- }
6370
- const isElectron = platform === Electron;
6371
- const fn = getModule(isElectron);
6372
- return fn(state, fileHandles, paths);
6437
+
6438
+ const isFileHandle = fileHandle => {
6439
+ return fileHandle.kind === 'file';
6373
6440
  };
6374
6441
 
6375
- const getEndIndex = (items, index, dirent) => {
6376
- for (let i = index + 1; i < items.length; i++) {
6377
- if (items[i].depth === dirent.depth) {
6378
- return i;
6442
+ const createUploadTree = async (root, fileHandles) => {
6443
+ const uploadTree = Object.create(null);
6444
+ const normalized = fileHandles.filter(Boolean);
6445
+ for (const fileHandle of normalized) {
6446
+ const {
6447
+ name
6448
+ } = fileHandle;
6449
+ if (isDirectoryHandle(fileHandle)) {
6450
+ const children = await getChildHandles(fileHandle);
6451
+ const childTree = await createUploadTree(name, children);
6452
+ uploadTree[name] = childTree;
6453
+ } else if (isFileHandle(fileHandle)) {
6454
+ // TODO maybe save blob and use filesystem.writeblob
6455
+ const text = await getFileHandleText(fileHandle);
6456
+ uploadTree[name] = text;
6379
6457
  }
6380
6458
  }
6381
- return items.length;
6382
- };
6383
- const getMergedDirents = (items, index, dirent, childDirents) => {
6384
- const startIndex = index;
6385
- const endIndex = getEndIndex(items, index, dirent);
6386
- const mergedDirents = [...items.slice(0, startIndex), {
6387
- ...dirent,
6388
- type: DirectoryExpanded
6389
- }, ...childDirents, ...items.slice(endIndex)];
6390
- return mergedDirents;
6459
+ return uploadTree;
6391
6460
  };
6392
- const handleDropIntoFolder = async (state, dirent, index, fileHandles) => {
6393
- const {
6394
- excluded,
6395
- items,
6396
- pathSeparator,
6397
- root
6398
- } = state;
6399
- await uploadFileSystemHandles(dirent.path, '/', fileHandles);
6400
- const childDirents = await getChildDirents(pathSeparator, dirent.path, dirent.depth, excluded, root);
6401
- const mergedDirents = getMergedDirents(items, index, dirent, childDirents);
6402
- // TODO update maxlineY
6403
- return {
6404
- ...state,
6405
- dropTargets: [],
6406
- items: mergedDirents
6461
+
6462
+ const getFileOperations = (root, uploadTree) => {
6463
+ const operations = [];
6464
+ const processTree = (tree, currentPath) => {
6465
+ for (const [path, value] of Object.entries(tree)) {
6466
+ const fullPath = currentPath ? join2(currentPath, path) : path;
6467
+ if (typeof value === 'object') {
6468
+ operations.push({
6469
+ path: join2(root, fullPath),
6470
+ type: CreateFolder$1
6471
+ });
6472
+ processTree(value, fullPath);
6473
+ } else if (typeof value === 'string') {
6474
+ operations.push({
6475
+ path: join2(root, fullPath),
6476
+ text: value,
6477
+ type: CreateFile$1
6478
+ });
6479
+ }
6480
+ }
6407
6481
  };
6408
- };
6409
- const handleDropIntoFile = (state, dirent, index, fileHandles, paths) => {
6410
- const {
6411
- items
6412
- } = state;
6413
- const parentIndex = getParentStartIndex(items, index);
6414
- if (parentIndex === -1) {
6415
- return handleDropRoot(state, fileHandles, paths);
6416
- }
6417
- return handleDropIndex(state, fileHandles, paths, parentIndex);
6418
- };
6419
- const handleDropIndex = async (state, fileHandles, paths, index) => {
6420
- const {
6421
- isReadonly,
6422
- items
6423
- } = state;
6424
- if (isReadonly) {
6425
- return state;
6426
- }
6427
- if (fileHandles.length === 0 && paths.length > 0) {
6428
- return handleInternalDrop(state, paths, index);
6429
- }
6430
- const dirent = items[index];
6431
- // TODO if it is a file, drop into the folder of the file
6432
- // TODO if it is a folder, drop into the folder
6433
- // TODO if it is a symlink, read symlink and determine if file can be dropped
6434
- switch (dirent.type) {
6435
- case Directory:
6436
- case DirectoryExpanded:
6437
- return handleDropIntoFolder(state, dirent, index, fileHandles);
6438
- case File:
6439
- return handleDropIntoFile(state, dirent, index, fileHandles, paths);
6440
- default:
6441
- return state;
6442
- }
6482
+ processTree(uploadTree, '');
6483
+ return operations;
6443
6484
  };
6444
6485
 
6445
- const getDropHandler = index => {
6446
- switch (index) {
6447
- case -1:
6448
- return handleDropRoot;
6449
- default:
6450
- return handleDropIndex;
6486
+ const uploadFileSystemHandles = async (root, pathSeparator, fileSystemHandles) => {
6487
+ if (fileSystemHandles.length === 0) {
6488
+ return true;
6451
6489
  }
6490
+ const uploadTree = await createUploadTree(root, fileSystemHandles);
6491
+ const fileOperations = getFileOperations(root, uploadTree);
6492
+ await applyFileOperations(fileOperations);
6493
+
6494
+ // TODO
6495
+ // 1. in electron, use webutils.getPathForFile to see if a path is available
6496
+ // 2. else, walk all files and folders recursively and upload all of them (if there are many, show a progress bar)
6497
+
6498
+ // TODO send file system operations to renderer worker
6499
+ return true;
6452
6500
  };
6453
6501
 
6454
- const toExplorerDroppedItems = (result, isElectron) => {
6455
- const files = isElectron ? result.files : result.files.filter(file => file.handle);
6456
- const fileHandles = files.map(file => file.handle ?? {
6457
- kind: file.kind,
6458
- name: file.name
6459
- });
6460
- const paths = files.map(file => file.path);
6461
- return {
6462
- fileHandles,
6463
- paths,
6464
- uris: result.uris
6465
- };
6502
+ const mergeDirents$1 = (oldDirents, newDirents) => {
6503
+ return newDirents;
6466
6504
  };
6467
- const getDroppedItemsByDropId = async (dropId, isElectron) => {
6468
- const result = await getDroppedItemsByDropId$1(dropId, isElectron);
6469
- return toExplorerDroppedItems(result, isElectron);
6505
+ const getMergedDirents$2 = async (root, pathSeparator, dirents, excluded) => {
6506
+ const childDirents = await getChildDirents(pathSeparator, root, 0, excluded, root);
6507
+ const mergedDirents = mergeDirents$1(dirents, childDirents);
6508
+ return mergedDirents;
6470
6509
  };
6471
- const getClipboardItems = async (itemIds, isElectron) => {
6472
- const items = await getFileHandles(itemIds);
6473
- const files = items.filter(item => item.kind === 'file' || isElectron && item.kind === 'file-legacy');
6474
- const fileHandles = files.map(item => {
6475
- if (item.kind === 'file') {
6476
- return item.value;
6477
- }
6478
- return {
6479
- kind: 'file',
6480
- name: item.value.name
6481
- };
6482
- });
6483
- const paths = files.map(item => item.path ?? '');
6510
+ const getDroppedDirectoryWorkspacePath = fileHandle => {
6511
+ return `html://${fileHandle.name}`;
6512
+ };
6513
+ const openDroppedDirectoryAsWorkspace$1 = async (state, fileHandle) => {
6514
+ const path = getDroppedDirectoryWorkspacePath(fileHandle);
6515
+ await invoke$3('PersistentFileHandle.addHandle', fileHandle.name, fileHandle);
6516
+ await invoke$3('Workspace.setPath', path);
6517
+ const updated = await loadContent(state, undefined);
6484
6518
  return {
6485
- fileHandles,
6486
- paths,
6487
- uris: []
6519
+ ...updated,
6520
+ dropTargets: []
6488
6521
  };
6489
6522
  };
6490
-
6491
- const directoryTypes$1 = new Set([Directory, DirectoryExpanded, DirectoryExpanding, EditingDirectoryExpanded, EditingFolder, SymLinkFolder]);
6492
- const getDragUri = item => {
6493
- const uri = ensureUri(item.path);
6494
- if (directoryTypes$1.has(item.type) && !uri.endsWith('/')) {
6495
- return `${uri}/`;
6496
- }
6497
- return uri;
6498
- };
6499
-
6500
- const getInternalDragPaths = (items, uris) => {
6501
- if (uris.length === 0) {
6502
- return [];
6523
+ const getFirstDroppedDirectory = (state, fileHandles) => {
6524
+ const {
6525
+ root
6526
+ } = state;
6527
+ if (root !== '') {
6528
+ return undefined;
6503
6529
  }
6504
- const pathByUri = new Map(items.map(item => [getDragUri(item), item.path]));
6505
- const paths = [];
6506
- for (const uri of uris) {
6507
- const path = pathByUri.get(uri);
6508
- if (path === undefined) {
6509
- return [];
6530
+ for (const fileHandle of fileHandles) {
6531
+ if (isDirectoryHandle(fileHandle)) {
6532
+ return fileHandle;
6510
6533
  }
6511
- paths.push(path);
6512
6534
  }
6513
- return paths;
6535
+ return undefined;
6514
6536
  };
6515
-
6516
- const handleDrop = async (state, x, y, dropId) => {
6537
+ const handleDrop$2 = async (state, fileHandles, paths) => {
6517
6538
  const {
6518
- isReadonly,
6539
+ excluded,
6519
6540
  items,
6520
- platform,
6541
+ pathSeparator,
6521
6542
  root
6522
6543
  } = state;
6523
- if (isReadonly && root !== '') {
6524
- await discardDrop(dropId);
6525
- return state;
6544
+ const droppedDirectory = getFirstDroppedDirectory(state, fileHandles);
6545
+ if (droppedDirectory) {
6546
+ return openDroppedDirectoryAsWorkspace$1(state, droppedDirectory);
6526
6547
  }
6527
- try {
6528
- const isElectron = platform === Electron;
6548
+ if (root === '') {
6549
+ return {
6550
+ ...state,
6551
+ dropTargets: []
6552
+ };
6553
+ }
6554
+ const handled = await uploadFileSystemHandles(root, pathSeparator, fileHandles);
6555
+ if (handled) {
6556
+ const updated = await refresh(state);
6557
+ return {
6558
+ ...updated,
6559
+ dropTargets: []
6560
+ };
6561
+ }
6562
+ const mergedDirents = await getMergedDirents$2(root, pathSeparator, items, excluded);
6563
+ return {
6564
+ ...state,
6565
+ dropTargets: [],
6566
+ items: mergedDirents
6567
+ };
6568
+ };
6569
+
6570
+ const getFileOperationsElectron = async (root, paths, fileHandles, pathSeparator) => {
6571
+ const operations = [];
6572
+ for (let i = 0; i < paths.length; i++) {
6573
+ const fileHandle = fileHandles[i];
6529
6574
  const {
6530
- fileHandles,
6531
- paths,
6532
- uris
6533
- } = await getDroppedItemsByDropId(dropId, isElectron);
6534
- const internalPaths = getInternalDragPaths(items, uris);
6535
- const droppedPaths = internalPaths.length > 0 ? internalPaths : paths;
6536
- const index = getIndexFromPosition(state, x, y);
6537
- const fn = getDropHandler(index);
6538
- const result = await fn(state, fileHandles, droppedPaths, index);
6539
- return result;
6540
- } catch (error) {
6541
- throw new VError(error, 'Failed to drop files');
6575
+ name
6576
+ } = fileHandle;
6577
+ const path = paths[i];
6578
+ operations.push({
6579
+ from: path,
6580
+ path: join$1(pathSeparator, root, name),
6581
+ type: Copy$1
6582
+ });
6542
6583
  }
6584
+ return operations;
6543
6585
  };
6544
6586
 
6545
- const handleEscape = async state => {
6587
+ // TODO copy files in parallel
6588
+ const copyFilesElectron = async (root, fileHandles, paths) => {
6589
+ const operations = await getFileOperationsElectron(root, paths, fileHandles, Slash);
6590
+ await applyFileOperations(operations);
6591
+ };
6592
+
6593
+ const mergeDirents = (oldDirents, newDirents) => {
6594
+ return newDirents;
6595
+ };
6596
+ const getMergedDirents$1 = async (root, pathSeparator, dirents, excluded) => {
6597
+ const childDirents = await getChildDirents(pathSeparator, root, 0, excluded, root);
6598
+ const mergedDirents = mergeDirents(dirents, childDirents);
6599
+ return mergedDirents;
6600
+ };
6601
+ const openDroppedDirectoryAsWorkspace = async (state, path) => {
6602
+ await invoke$3('Workspace.setPath', path);
6603
+ const updated = await loadContent(state, undefined);
6546
6604
  return {
6547
- ...focusNone(state),
6548
- cutItems: []
6605
+ ...updated,
6606
+ dropTargets: []
6549
6607
  };
6550
6608
  };
6551
-
6552
- const handleFocus = async state => {
6609
+ const getFirstDroppedDirectoryPath = (state, fileHandles, paths) => {
6553
6610
  const {
6554
- editingIndex
6611
+ root
6555
6612
  } = state;
6556
- if (editingIndex !== -1) {
6557
- return state;
6613
+ if (root !== '') {
6614
+ return undefined;
6558
6615
  }
6559
- return {
6560
- ...state,
6561
- focus: List
6562
- };
6616
+ for (let i = 0; i < fileHandles.length; i++) {
6617
+ const fileHandle = fileHandles[i];
6618
+ if (isDirectoryHandle(fileHandle)) {
6619
+ return paths[i];
6620
+ }
6621
+ }
6622
+ return undefined;
6563
6623
  };
6564
-
6565
- const updateIcons = async state => {
6624
+ const handleDrop$1 = async (state, fileHandles, paths) => {
6566
6625
  const {
6626
+ excluded,
6567
6627
  items,
6568
- maxLineY,
6569
- minLineY
6628
+ pathSeparator,
6629
+ root
6570
6630
  } = state;
6571
- const visible = items.slice(minLineY, maxLineY);
6572
- const {
6573
- icons,
6574
- newFileIconCache
6575
- } = await getFileIcons(visible, Object.create(null));
6631
+ const droppedDirectoryPath = getFirstDroppedDirectoryPath(state, fileHandles, paths);
6632
+ if (droppedDirectoryPath) {
6633
+ return openDroppedDirectoryAsWorkspace(state, droppedDirectoryPath);
6634
+ }
6635
+ if (root === '') {
6636
+ return {
6637
+ ...state,
6638
+ dropTargets: []
6639
+ };
6640
+ }
6641
+ await copyFilesElectron(root, fileHandles, paths);
6642
+ const mergedDirents = await getMergedDirents$1(root, pathSeparator, items, excluded);
6576
6643
  return {
6577
6644
  ...state,
6578
- fileIconCache: newFileIconCache,
6579
- icons
6645
+ dropTargets: [],
6646
+ items: mergedDirents
6580
6647
  };
6581
6648
  };
6582
6649
 
6583
- const handleIconThemeChange = state => {
6584
- return updateIcons(state);
6650
+ const directoryTypes$2 = [Directory, DirectoryExpanded, DirectoryExpanding];
6651
+ const isDirectory = item => {
6652
+ return directoryTypes$2.includes(item.type);
6585
6653
  };
6586
-
6587
- const handleInputBlur = async (state, editingSessionId) => {
6654
+ const isDescendant = (path, parentPath, pathSeparator) => {
6655
+ const prefix = parentPath.endsWith(pathSeparator) ? parentPath : `${parentPath}${pathSeparator}`;
6656
+ return path.startsWith(prefix);
6657
+ };
6658
+ const join = (parentPath, name, pathSeparator) => {
6659
+ if (parentPath.endsWith(pathSeparator)) {
6660
+ return `${parentPath}${name}`;
6661
+ }
6662
+ return `${parentPath}${pathSeparator}${name}`;
6663
+ };
6664
+ const getTargetFolder = (state, index) => {
6588
6665
  const {
6589
- editingErrorMessage,
6590
- editingIndex,
6591
- editingSessionId: currentEditingSessionId,
6592
- editingValue
6666
+ items,
6667
+ pathSeparator,
6668
+ root
6593
6669
  } = state;
6594
- if (editingIndex === -1) {
6595
- return state;
6670
+ if (index === -1) {
6671
+ return root;
6596
6672
  }
6597
- if (editingSessionId !== undefined && editingSessionId !== String(currentEditingSessionId)) {
6598
- return state;
6673
+ const item = items[index];
6674
+ if (!item) {
6675
+ throw new Error('Drop target does not exist');
6599
6676
  }
6600
- if (editingErrorMessage || !editingValue) {
6601
- return cancelEditInternal(state, false);
6677
+ if (isDirectory(item)) {
6678
+ return item.path;
6602
6679
  }
6603
- return acceptEdit(state, User);
6604
- };
6605
-
6606
- const handleInputClick = state => {
6607
- return state;
6680
+ if (item.type === File) {
6681
+ return dirname(pathSeparator, item.path);
6682
+ }
6683
+ throw new Error('Drop target is not a file or folder');
6608
6684
  };
6609
-
6610
- const handleInputKeyDown = (state, key) => {
6611
- return state;
6685
+ const getTopLevelSourcePaths = (sourcePaths, pathSeparator) => {
6686
+ const uniquePaths = [...new Set(sourcePaths)];
6687
+ return uniquePaths.filter(path => uniquePaths.every(otherPath => otherPath === path || !isDescendant(path, otherPath, pathSeparator)));
6612
6688
  };
6613
-
6614
- const filterByFocusWord = (items, focusedIndex, focusWord) => {
6615
- if (items.length === 0) {
6616
- return -1;
6617
- }
6618
- const matches = [];
6619
- for (let i = 0; i < items.length; i++) {
6620
- if (items[i].toLowerCase().startsWith(focusWord)) {
6621
- matches.push(i);
6689
+ const getMoveOperations = (state, sourcePaths, targetFolder) => {
6690
+ const {
6691
+ items,
6692
+ pathSeparator
6693
+ } = state;
6694
+ const itemByPath = new Map(items.map(item => [item.path, item]));
6695
+ const existingPaths = new Set(itemByPath.keys());
6696
+ const destinationPaths = new Set();
6697
+ const operations = [];
6698
+ for (const sourcePath of getTopLevelSourcePaths(sourcePaths, pathSeparator)) {
6699
+ const sourceItem = itemByPath.get(sourcePath);
6700
+ if (!sourceItem) {
6701
+ throw new Error(`Dragged item no longer exists: ${sourcePath}`);
6622
6702
  }
6703
+ if (sourcePath === targetFolder) {
6704
+ continue;
6705
+ }
6706
+ if (isDirectory(sourceItem) && isDescendant(targetFolder, sourcePath, pathSeparator)) {
6707
+ throw new Error(cannotMoveFolderIntoSubfolderOfItself(sourceItem.name));
6708
+ }
6709
+ const destinationPath = join(targetFolder, sourceItem.name, pathSeparator);
6710
+ if (destinationPath === sourcePath) {
6711
+ continue;
6712
+ }
6713
+ if (destinationPaths.has(destinationPath) || existingPaths.has(destinationPath)) {
6714
+ throw new Error(fileOrFolderAlreadyExists(sourceItem.name));
6715
+ }
6716
+ destinationPaths.add(destinationPath);
6717
+ operations.push({
6718
+ from: sourcePath,
6719
+ path: destinationPath
6720
+ });
6623
6721
  }
6624
- if (matches.length === 0) {
6625
- return -1;
6626
- }
6627
-
6628
- // Find the next match after the current focus
6629
- let nextIndex = matches.findIndex(index => index > focusedIndex);
6630
- if (nextIndex === -1) {
6631
- // If no match found after current focus, wrap around to the first match
6632
- nextIndex = 0;
6633
- }
6634
- return matches[nextIndex];
6722
+ return operations;
6635
6723
  };
6636
-
6637
- const RE_ASCII = /^[a-z]$/i;
6638
- const isAscii = key => {
6639
- return RE_ASCII.test(key);
6724
+ const expandTargetFolder = (items, targetFolder) => {
6725
+ return items.map(item => {
6726
+ if (item.path === targetFolder && item.type === Directory) {
6727
+ return {
6728
+ ...item,
6729
+ type: DirectoryExpanded
6730
+ };
6731
+ }
6732
+ return item;
6733
+ });
6640
6734
  };
6641
-
6642
- const typeAheadTimeout = {};
6643
- const handleKeyDown = (state, defaultPrevented, key) => {
6735
+ const handleInternalDrop = async (state, sourcePaths, index) => {
6644
6736
  const {
6645
- focusedIndex,
6646
- focusWord,
6647
- focusWordTimeout,
6648
- items
6737
+ expandedPaths: oldExpandedPaths,
6738
+ isReadonly,
6739
+ items,
6740
+ preserveExpandState
6649
6741
  } = state;
6650
- if (defaultPrevented) {
6651
- return state;
6652
- }
6653
- if (focusWord && key === '') {
6654
- return cancelTypeAhead(state);
6655
- }
6656
- if (!isAscii(key)) {
6742
+ if (isReadonly) {
6657
6743
  return state;
6658
6744
  }
6659
- const newFocusWord = focusWord + key.toLowerCase();
6660
- const itemNames = items.map(item => item.name);
6661
- const matchingIndex = filterByFocusWord(itemNames, focusedIndex, newFocusWord);
6662
- if (typeAheadTimeout.value) {
6663
- clearTimeout(typeAheadTimeout.value);
6664
- }
6665
- typeAheadTimeout.value = setTimeout(() => {
6666
- void invoke$3('Explorer.cancelTypeAhead');
6667
- }, focusWordTimeout);
6668
- if (matchingIndex === -1) {
6745
+ const targetFolder = getTargetFolder(state, index);
6746
+ const operations = getMoveOperations(state, sourcePaths, targetFolder);
6747
+ if (operations.length === 0) {
6669
6748
  return {
6670
6749
  ...state,
6671
- focusWord: newFocusWord
6750
+ dropTargets: []
6672
6751
  };
6673
6752
  }
6674
- return {
6753
+ for (const operation of operations) {
6754
+ await rename$1(operation.from, operation.path);
6755
+ }
6756
+ const expandedItems = expandTargetFolder(items, targetFolder);
6757
+ const expandedPaths = preserveExpandState ? [...new Set([...oldExpandedPaths, targetFolder])] : oldExpandedPaths;
6758
+ const updated = await refresh({
6675
6759
  ...state,
6676
- focusedIndex: matchingIndex,
6677
- focusWord: newFocusWord
6760
+ expandedPaths,
6761
+ items: expandedItems
6762
+ });
6763
+ return {
6764
+ ...updated,
6765
+ dropTargets: []
6678
6766
  };
6679
6767
  };
6680
6768
 
6681
- const handleMessagePort = async (port, viewletCommandMap, setAsRendererProcess = true) => {
6682
- const executeViewletCommand = async (uid, command, ...args) => {
6683
- const fn = viewletCommandMap[`Explorer.${command}`];
6684
- if (typeof fn !== 'function') {
6685
- throw new TypeError(`Viewlet command not found: ${command}`);
6686
- }
6687
- await fn(uid, ...args);
6688
- await invoke$3('Viewlet.requestRender', uid);
6689
- if (takePostRenderFocus(uid)) {
6690
- setTimeout(() => {
6691
- void invoke$3('Main.focus');
6692
- }, 0);
6693
- }
6694
- };
6695
- const rpc = await create$6({
6696
- commandMap: {
6697
- 'Viewlet.executeViewletCommand': executeViewletCommand
6698
- },
6699
- messagePort: port
6700
- });
6701
- if (setAsRendererProcess) {
6702
- set$2(rpc);
6769
+ const Electron = 2;
6770
+
6771
+ const getModule = isElectron => {
6772
+ if (isElectron) {
6773
+ return handleDrop$1;
6703
6774
  }
6775
+ return handleDrop$2;
6704
6776
  };
6705
-
6706
- const scrollInto = (index, minLineY, maxLineY) => {
6707
- const diff = maxLineY - minLineY;
6708
- const smallerHalf = Math.floor(diff / 2);
6709
- const largerHalf = diff - smallerHalf;
6710
- if (index < minLineY) {
6711
- return {
6712
- newMaxLineY: index + largerHalf,
6713
- newMinLineY: index - smallerHalf
6714
- };
6777
+ const handleDropRoot = async (state, fileHandles, paths) => {
6778
+ const {
6779
+ isReadonly,
6780
+ platform,
6781
+ root
6782
+ } = state;
6783
+ if (isReadonly && root !== '') {
6784
+ return state;
6715
6785
  }
6716
- if (index >= maxLineY) {
6717
- return {
6718
- newMaxLineY: index + largerHalf,
6719
- newMinLineY: index - smallerHalf
6720
- };
6786
+ if (fileHandles.length === 0 && paths.length > 0) {
6787
+ return handleInternalDrop(state, paths, -1);
6721
6788
  }
6722
- return {
6723
- newMaxLineY: maxLineY,
6724
- newMinLineY: minLineY
6725
- };
6789
+ const isElectron = platform === Electron;
6790
+ const fn = getModule(isElectron);
6791
+ return fn(state, fileHandles, paths);
6726
6792
  };
6727
6793
 
6728
- const adjustScrollAfterPaste = (state, focusedIndex) => {
6794
+ const getEndIndex = (items, index, dirent) => {
6795
+ for (let i = index + 1; i < items.length; i++) {
6796
+ if (items[i].depth === dirent.depth) {
6797
+ return i;
6798
+ }
6799
+ }
6800
+ return items.length;
6801
+ };
6802
+ const getMergedDirents = (items, index, dirent, childDirents) => {
6803
+ const startIndex = index;
6804
+ const endIndex = getEndIndex(items, index, dirent);
6805
+ const mergedDirents = [...items.slice(0, startIndex), {
6806
+ ...dirent,
6807
+ type: DirectoryExpanded
6808
+ }, ...childDirents, ...items.slice(endIndex)];
6809
+ return mergedDirents;
6810
+ };
6811
+ const handleDropIntoFolder = async (state, dirent, index, fileHandles) => {
6729
6812
  const {
6730
- height,
6731
- itemHeight,
6813
+ excluded,
6732
6814
  items,
6733
- maxLineY,
6734
- minLineY
6815
+ pathSeparator,
6816
+ root
6735
6817
  } = state;
6736
- const currentMaxLineY = Math.max(maxLineY, getExplorerMaxLineY(minLineY, height, itemHeight, items.length));
6737
- const {
6738
- newMaxLineY,
6739
- newMinLineY
6740
- } = scrollInto(focusedIndex, minLineY, currentMaxLineY);
6741
- const newDeltaY = newMinLineY * itemHeight;
6818
+ await uploadFileSystemHandles(dirent.path, '/', fileHandles);
6819
+ const childDirents = await getChildDirents(pathSeparator, dirent.path, dirent.depth, excluded, root);
6820
+ const mergedDirents = getMergedDirents(items, index, dirent, childDirents);
6821
+ // TODO update maxlineY
6742
6822
  return {
6743
6823
  ...state,
6744
- deltaY: newDeltaY,
6745
- focused: true,
6746
- focusedIndex,
6747
- maxLineY: newMaxLineY,
6748
- minLineY: newMinLineY
6824
+ dropTargets: [],
6825
+ items: mergedDirents
6749
6826
  };
6750
6827
  };
6751
-
6752
- const generateUniqueName = (baseName, existingPaths, root) => {
6753
- // Handle files with extensions
6754
- const lastDotIndex = baseName.lastIndexOf('.');
6755
- const hasExtension = lastDotIndex !== -1 && lastDotIndex !== 0 && lastDotIndex !== baseName.length - 1;
6756
- let nameWithoutExtension;
6757
- let extension;
6758
- if (hasExtension) {
6759
- nameWithoutExtension = baseName.slice(0, lastDotIndex);
6760
- extension = baseName.slice(lastDotIndex);
6761
- } else {
6762
- nameWithoutExtension = baseName;
6763
- extension = '';
6764
- }
6765
-
6766
- // Check if original name exists
6767
- const originalPath = join2(root, baseName);
6768
- if (!existingPaths.includes(originalPath)) {
6769
- return baseName;
6828
+ const handleDropIntoFile = (state, dirent, index, fileHandles, paths) => {
6829
+ const {
6830
+ items
6831
+ } = state;
6832
+ const parentIndex = getParentStartIndex(items, index);
6833
+ if (parentIndex === -1) {
6834
+ return handleDropRoot(state, fileHandles, paths);
6770
6835
  }
6771
-
6772
- // Try "original copy"
6773
- const copyName = `${nameWithoutExtension} copy${extension}`;
6774
- const copyPath = join2(root, copyName);
6775
- if (!existingPaths.includes(copyPath)) {
6776
- return copyName;
6836
+ return handleDropIndex(state, fileHandles, paths, parentIndex);
6837
+ };
6838
+ const handleDropIndex = async (state, fileHandles, paths, index) => {
6839
+ const {
6840
+ isReadonly,
6841
+ items
6842
+ } = state;
6843
+ if (isReadonly) {
6844
+ return state;
6777
6845
  }
6778
-
6779
- // Try "original copy 1", "original copy 2", etc.
6780
- let counter = 1;
6781
- while (true) {
6782
- const numberedCopyName = `${nameWithoutExtension} copy ${counter}${extension}`;
6783
- const numberedCopyPath = join2(root, numberedCopyName);
6784
- if (!existingPaths.includes(numberedCopyPath)) {
6785
- return numberedCopyName;
6786
- }
6787
- counter++;
6846
+ if (fileHandles.length === 0 && paths.length > 0) {
6847
+ return handleInternalDrop(state, paths, index);
6788
6848
  }
6789
- };
6790
-
6791
- const getFileOperationsCopy = (targetUri, existingUris, files) => {
6792
- const operations = [];
6793
- const reservedUris = [...existingUris];
6794
- for (const file of files) {
6795
- const baseName = getBaseName('/', file);
6796
- const uniqueName = generateUniqueName(baseName, reservedUris, targetUri);
6797
- const newUri = join2(targetUri, uniqueName);
6798
- operations.push({
6799
- from: file,
6800
- path: newUri,
6801
- type: Copy$1
6802
- });
6803
- reservedUris.push(newUri);
6849
+ const dirent = items[index];
6850
+ // TODO if it is a file, drop into the folder of the file
6851
+ // TODO if it is a folder, drop into the folder
6852
+ // TODO if it is a symlink, read symlink and determine if file can be dropped
6853
+ switch (dirent.type) {
6854
+ case Directory:
6855
+ case DirectoryExpanded:
6856
+ return handleDropIntoFolder(state, dirent, index, fileHandles);
6857
+ case File:
6858
+ return handleDropIntoFile(state, dirent, index, fileHandles, paths);
6859
+ default:
6860
+ return state;
6804
6861
  }
6805
- return operations;
6806
6862
  };
6807
6863
 
6808
- const handlePasteCopy = async (state, nativeFiles) => {
6809
- // TODO handle pasting files into nested folder
6810
- // TODO handle pasting files into symlink
6811
- // TODO handle pasting files into broken symlink
6812
- // TODO handle pasting files into hardlink
6813
- // TODO what if folder is big and it takes a long time
6814
-
6815
- // TODO use file operations and bulk edit
6816
- const {
6817
- focusedIndex,
6818
- items,
6819
- pathSeparator,
6820
- root
6821
- } = state;
6822
- const targetUri = getParentFolder(items, focusedIndex, root, pathSeparator);
6823
- const targetDirents = await readDirWithFileTypes(targetUri);
6824
- const existingUris = targetDirents.map(dirent => join2(targetUri, dirent.name));
6825
- const operations = getFileOperationsCopy(targetUri, existingUris, nativeFiles.files);
6826
- // TODO handle error?
6827
- await applyFileOperations(operations);
6828
-
6829
- // TODO use refreshExplorer with the paths that have been affected by file operations
6830
- // TODO only update folder at which level it changed
6831
- const latestState = await refresh(state);
6864
+ const getDropHandler = index => {
6865
+ switch (index) {
6866
+ case -1:
6867
+ return handleDropRoot;
6868
+ default:
6869
+ return handleDropIndex;
6870
+ }
6871
+ };
6832
6872
 
6833
- // Focus on the first newly created file and adjust scroll position
6834
- const newFilePaths = operations.map(operation => operation.path);
6835
- if (newFilePaths.length > 0) {
6836
- const firstNewFilePath = newFilePaths[0];
6837
- const newFileIndex = getIndex(latestState.items, firstNewFilePath);
6838
- if (newFileIndex !== -1) {
6839
- const adjustedState = adjustScrollAfterPaste(latestState, newFileIndex);
6840
- return {
6841
- ...adjustedState,
6842
- pasteShouldMove: false
6843
- };
6873
+ const toExplorerDroppedItems = (result, isElectron) => {
6874
+ const files = isElectron ? result.files : result.files.filter(file => file.handle);
6875
+ const fileHandles = files.map(file => file.handle ?? {
6876
+ kind: file.kind,
6877
+ name: file.name
6878
+ });
6879
+ const paths = files.map(file => file.path);
6880
+ return {
6881
+ fileHandles,
6882
+ paths,
6883
+ uris: result.uris
6884
+ };
6885
+ };
6886
+ const getDroppedItemsByDropId = async (dropId, isElectron) => {
6887
+ const result = await getDroppedItemsByDropId$1(dropId, isElectron);
6888
+ return toExplorerDroppedItems(result, isElectron);
6889
+ };
6890
+ const getClipboardItems = async (itemIds, isElectron) => {
6891
+ const items = await getFileHandles(itemIds);
6892
+ const files = items.filter(item => item.kind === 'file' || isElectron && item.kind === 'file-legacy');
6893
+ const fileHandles = files.map(item => {
6894
+ if (item.kind === 'file') {
6895
+ return item.value;
6844
6896
  }
6845
- }
6846
- // If there are no items, ensure focusedIndex is 0
6847
- if (latestState.items.length === 0) {
6848
6897
  return {
6849
- ...latestState,
6850
- focusedIndex: 0,
6851
- pasteShouldMove: false
6898
+ kind: 'file',
6899
+ name: item.value.name
6852
6900
  };
6853
- }
6901
+ });
6902
+ const paths = files.map(item => item.path ?? '');
6854
6903
  return {
6855
- ...latestState,
6856
- pasteShouldMove: false
6904
+ fileHandles,
6905
+ paths,
6906
+ uris: []
6857
6907
  };
6858
6908
  };
6859
6909
 
6860
- const getOperations = (toUri, files) => {
6861
- const operations = [];
6862
- for (const file of files) {
6863
- const baseName = getBaseName('/', file);
6864
- const newUri = join2(toUri, baseName);
6865
- operations.push({
6866
- from: file,
6867
- path: newUri,
6868
- type: Rename$2
6869
- });
6910
+ const directoryTypes$1 = new Set([Directory, DirectoryExpanded, DirectoryExpanding, EditingDirectoryExpanded, EditingFolder, SymLinkFolder]);
6911
+ const getDragUri = item => {
6912
+ const uri = ensureUri(item.path);
6913
+ if (directoryTypes$1.has(item.type) && !uri.endsWith('/')) {
6914
+ return `${uri}/`;
6870
6915
  }
6871
- return operations;
6916
+ return uri;
6872
6917
  };
6873
- const getTargetUri = (root, items, index) => {
6874
- if (index === -1) {
6875
- return root;
6918
+
6919
+ const getInternalDragPaths = (items, uris) => {
6920
+ if (uris.length === 0) {
6921
+ return [];
6876
6922
  }
6877
- return items[index].path;
6923
+ const pathByUri = new Map(items.map(item => [getDragUri(item), item.path]));
6924
+ const paths = [];
6925
+ for (const uri of uris) {
6926
+ const path = pathByUri.get(uri);
6927
+ if (path === undefined) {
6928
+ return [];
6929
+ }
6930
+ paths.push(path);
6931
+ }
6932
+ return paths;
6878
6933
  };
6879
- const handlePasteCut = async (state, nativeFiles) => {
6934
+
6935
+ const handleDrop = async (state, x, y, dropId) => {
6880
6936
  const {
6881
- focusedIndex,
6937
+ isReadonly,
6882
6938
  items,
6883
- pathSeparator,
6939
+ platform,
6884
6940
  root
6885
6941
  } = state;
6886
- // TODO root is not necessrily target uri
6887
- const targetUri = getTargetUri(root, items, focusedIndex);
6888
- const operations = getOperations(targetUri, nativeFiles.files);
6889
- await applyFileOperations(operations);
6890
-
6891
- // Refresh the state after cut operations
6892
- const latestState = await refresh(state);
6893
-
6894
- // Focus on the first pasted file and adjust scroll position
6895
- if (nativeFiles.files.length > 0) {
6896
- const firstPastedFile = nativeFiles.files[0];
6897
- const targetPath = `${root}${pathSeparator}${getBaseName(pathSeparator, firstPastedFile)}`;
6898
- const pastedFileIndex = getIndex(latestState.items, targetPath);
6899
- if (pastedFileIndex !== -1) {
6900
- const adjustedState = adjustScrollAfterPaste(latestState, pastedFileIndex);
6901
- return {
6902
- ...adjustedState,
6903
- cutItems: [],
6904
- pasteShouldMove: false
6905
- };
6906
- }
6942
+ if (isReadonly && root !== '') {
6943
+ await discardDrop(dropId);
6944
+ return state;
6945
+ }
6946
+ try {
6947
+ const isElectron = platform === Electron;
6948
+ const {
6949
+ fileHandles,
6950
+ paths,
6951
+ uris
6952
+ } = await getDroppedItemsByDropId(dropId, isElectron);
6953
+ const internalPaths = getInternalDragPaths(items, uris);
6954
+ const droppedPaths = internalPaths.length > 0 ? internalPaths : paths;
6955
+ const index = getIndexFromPosition(state, x, y);
6956
+ const fn = getDropHandler(index);
6957
+ const result = await fn(state, fileHandles, droppedPaths, index);
6958
+ return result;
6959
+ } catch (error) {
6960
+ throw new VError(error, 'Failed to drop files');
6907
6961
  }
6962
+ };
6963
+
6964
+ const handleEscape = async state => {
6908
6965
  return {
6909
- ...latestState,
6910
- cutItems: [],
6911
- pasteShouldMove: false
6966
+ ...focusNone(state),
6967
+ cutItems: []
6912
6968
  };
6913
6969
  };
6914
6970
 
6915
- const None$1 = 'none';
6916
-
6917
- const handlePaste = async state => {
6971
+ const handleFocus = async state => {
6918
6972
  const {
6919
- isReadonly,
6920
- pasteShouldMove
6973
+ editingIndex
6921
6974
  } = state;
6922
- if (isReadonly) {
6923
- return state;
6924
- }
6925
- const nativeFiles = await readNativeFiles();
6926
- if (!nativeFiles) {
6975
+ if (editingIndex !== -1) {
6927
6976
  return state;
6928
6977
  }
6929
- // TODO detect cut/paste event, not sure if that is possible
6930
- // TODO check that pasted folder is not a parent folder of opened folder
6931
- // TODO support pasting multiple paths
6932
- // TODO what happens when pasting multiple paths, but some of them error?
6933
- // how many error messages should be shown? Should the operation be undone?
6934
- // TODO what if it is a large folder and takes a long time to copy? Should show progress
6935
- // TODO what if there is a permission error? Probably should show a modal to ask for permission
6936
- // TODO if error is EEXISTS, just rename the copy (e.g. file-copy-1.txt, file-copy-2.txt)
6937
- // TODO actual target should be selected folder
6938
- // TODO but what if a file is currently selected? Then maybe the parent folder
6939
- // TODO but will it work if the folder is a symlink?
6940
- // TODO handle error gracefully when copy fails
6978
+ return {
6979
+ ...state,
6980
+ focus: List
6981
+ };
6982
+ };
6941
6983
 
6942
- // If no files to paste, return original state unchanged
6943
- if (nativeFiles.type === None$1) {
6944
- return state;
6945
- }
6984
+ const updateIcons = async state => {
6985
+ const {
6986
+ items,
6987
+ maxLineY,
6988
+ minLineY
6989
+ } = state;
6990
+ const visible = items.slice(minLineY, maxLineY);
6991
+ const {
6992
+ icons,
6993
+ newFileIconCache
6994
+ } = await getFileIcons(visible, Object.create(null));
6995
+ return {
6996
+ ...state,
6997
+ fileIconCache: newFileIconCache,
6998
+ icons
6999
+ };
7000
+ };
6946
7001
 
6947
- // Use the pasteShouldMove flag to determine whether to cut or copy
6948
- if (pasteShouldMove) {
6949
- return handlePasteCut(state, nativeFiles);
6950
- }
6951
- return handlePasteCopy(state, nativeFiles);
7002
+ const handleIconThemeChange = state => {
7003
+ return updateIcons(state);
6952
7004
  };
6953
7005
 
6954
- const handleNativePaste = async (state, itemIds) => {
7006
+ const handleInputBlur = async (state, editingSessionId) => {
6955
7007
  const {
6956
- focusedIndex,
6957
- isReadonly,
6958
- platform
7008
+ editingErrorMessage,
7009
+ editingIndex,
7010
+ editingSessionId: currentEditingSessionId,
7011
+ editingValue
6959
7012
  } = state;
6960
- if (isReadonly) {
7013
+ if (editingIndex === -1) {
6961
7014
  return state;
6962
7015
  }
6963
- if (itemIds.length === 0) {
6964
- return handlePaste(state);
6965
- }
6966
- try {
6967
- const isElectron = platform === Electron;
6968
- const {
6969
- fileHandles,
6970
- paths
6971
- } = await getClipboardItems(itemIds, isElectron);
6972
- if (isElectron) {
6973
- const nativePaths = paths.filter(Boolean);
6974
- if (nativePaths.length === 0) {
6975
- return handlePaste(state);
6976
- }
6977
- return handlePasteCopy(state, {
6978
- files: nativePaths,
6979
- source: 'gnomeCopiedFiles',
6980
- type: 'copy'
6981
- });
6982
- }
6983
- const handleDrop = getDropHandler(focusedIndex);
6984
- return handleDrop(state, fileHandles, paths, focusedIndex);
6985
- } catch (error) {
6986
- throw new VError(error, 'Failed to paste native files');
6987
- }
6988
- };
6989
-
6990
- const handlePointerDown = (state, button, x, y) => {
6991
- const index = getIndexFromPosition(state, x, y);
6992
- if (button === LeftClick && index === -1) {
6993
- return {
6994
- ...state,
6995
- focus: List,
6996
- focused: true,
6997
- focusedIndex: -1
6998
- };
7016
+ if (editingSessionId !== undefined && editingSessionId !== String(currentEditingSessionId)) {
7017
+ return state;
6999
7018
  }
7000
- if (button === LeftClick) {
7001
- return {
7002
- ...state,
7003
- isPointerDown: true,
7004
- pointerDownIndex: index
7005
- };
7019
+ if (editingErrorMessage || !editingValue) {
7020
+ return cancelEditInternal(state, false);
7006
7021
  }
7022
+ return acceptEdit(state, User);
7023
+ };
7024
+
7025
+ const handleInputClick = state => {
7007
7026
  return state;
7008
7027
  };
7009
7028
 
7010
- const handlePointerUp = state => {
7011
- const {
7012
- isPointerDown,
7013
- pointerDownIndex
7014
- } = state;
7015
- if (!isPointerDown && pointerDownIndex === -1) {
7016
- return state;
7017
- }
7018
- return {
7019
- ...state,
7020
- isPointerDown: false,
7021
- pointerDownIndex: -1
7022
- };
7029
+ const handleInputKeyDown = (state, key) => {
7030
+ return state;
7023
7031
  };
7024
7032
 
7025
- const getScrollBarSize = (size, contentSize, minimumSliderSize) => {
7026
- if (size >= contentSize) {
7027
- return 0;
7033
+ const filterByFocusWord = (items, focusedIndex, focusWord) => {
7034
+ if (items.length === 0) {
7035
+ return -1;
7028
7036
  }
7029
- return Math.max(Math.round(size ** 2 / contentSize), minimumSliderSize);
7037
+ const matches = [];
7038
+ for (let i = 0; i < items.length; i++) {
7039
+ if (items[i].toLowerCase().startsWith(focusWord)) {
7040
+ matches.push(i);
7041
+ }
7042
+ }
7043
+ if (matches.length === 0) {
7044
+ return -1;
7045
+ }
7046
+
7047
+ // Find the next match after the current focus
7048
+ let nextIndex = matches.findIndex(index => index > focusedIndex);
7049
+ if (nextIndex === -1) {
7050
+ // If no match found after current focus, wrap around to the first match
7051
+ nextIndex = 0;
7052
+ }
7053
+ return matches[nextIndex];
7030
7054
  };
7031
7055
 
7032
- const handleResize = (state, dimensions) => {
7056
+ const RE_ASCII = /^[a-z]$/i;
7057
+ const isAscii = key => {
7058
+ return RE_ASCII.test(key);
7059
+ };
7060
+
7061
+ const typeAheadTimeout = {};
7062
+ const handleKeyDown = (state, defaultPrevented, key) => {
7033
7063
  const {
7034
- deltaY: currentDeltaY,
7035
- height: currentHeight,
7036
- itemHeight,
7037
- items,
7038
- maxLineY: currentMaxLineY,
7039
- minLineY: currentMinLineY,
7040
- scrollBarHeight: currentScrollBarHeight,
7041
- width: currentWidth
7064
+ focusedIndex,
7065
+ focusWord,
7066
+ focusWordTimeout,
7067
+ items
7042
7068
  } = state;
7043
- const {
7044
- height: rawHeight,
7045
- width: rawWidth
7046
- } = dimensions;
7047
- if (!Number.isFinite(rawHeight) || !Number.isFinite(rawWidth)) {
7069
+ if (defaultPrevented) {
7048
7070
  return state;
7049
7071
  }
7050
- const height = Math.max(0, rawHeight);
7051
- const width = Math.max(0, rawWidth);
7052
- const contentHeight = items.length * itemHeight;
7053
- const maxDeltaY = Math.max(contentHeight - height, 0);
7054
- const newDeltaY = Math.min(Math.max(currentDeltaY, 0), maxDeltaY);
7055
- const minLineY = Math.round(newDeltaY / itemHeight);
7056
- const maxLineY = getExplorerMaxLineY(minLineY, height, itemHeight, items.length);
7057
- const scrollBarHeight = getScrollBarSize(height, contentHeight, 20);
7058
- if (currentHeight === height && currentWidth === width && currentDeltaY === newDeltaY && currentMinLineY === minLineY && currentMaxLineY === maxLineY && currentScrollBarHeight === scrollBarHeight) {
7072
+ if (focusWord && key === '') {
7073
+ return cancelTypeAhead(state);
7074
+ }
7075
+ if (!isAscii(key)) {
7059
7076
  return state;
7060
7077
  }
7078
+ const newFocusWord = focusWord + key.toLowerCase();
7079
+ const itemNames = items.map(item => item.name);
7080
+ const matchingIndex = filterByFocusWord(itemNames, focusedIndex, newFocusWord);
7081
+ if (typeAheadTimeout.value) {
7082
+ clearTimeout(typeAheadTimeout.value);
7083
+ }
7084
+ typeAheadTimeout.value = setTimeout(() => {
7085
+ void invoke$3('Explorer.cancelTypeAhead');
7086
+ }, focusWordTimeout);
7087
+ if (matchingIndex === -1) {
7088
+ return {
7089
+ ...state,
7090
+ focusWord: newFocusWord
7091
+ };
7092
+ }
7061
7093
  return {
7062
7094
  ...state,
7063
- deltaY: newDeltaY,
7064
- height,
7065
- maxLineY,
7066
- minLineY,
7067
- scrollBarHeight,
7068
- width
7095
+ focusedIndex: matchingIndex,
7096
+ focusWord: newFocusWord
7069
7097
  };
7070
7098
  };
7071
7099
 
7072
- const handleScrollBarCaptureLost = state => {
7073
- return {
7074
- ...state,
7075
- scrollBarActive: false
7100
+ const handleMessagePort = async (port, viewletCommandMap, setAsRendererProcess = true) => {
7101
+ const executeViewletCommand = async (uid, command, ...args) => {
7102
+ const fn = viewletCommandMap[`Explorer.${command}`];
7103
+ if (typeof fn !== 'function') {
7104
+ throw new TypeError(`Viewlet command not found: ${command}`);
7105
+ }
7106
+ await fn(uid, ...args);
7107
+ await invoke$3('Viewlet.requestRender', uid);
7108
+ if (takePostRenderFocus(uid)) {
7109
+ setTimeout(() => {
7110
+ void invoke$3('Main.focus');
7111
+ }, 0);
7112
+ }
7076
7113
  };
7114
+ const rpc = await create$6({
7115
+ commandMap: {
7116
+ 'Viewlet.executeViewletCommand': executeViewletCommand
7117
+ },
7118
+ messagePort: port
7119
+ });
7120
+ if (setAsRendererProcess) {
7121
+ set$2(rpc);
7122
+ }
7077
7123
  };
7078
7124
 
7079
- const getNewDeltaYPercent = (height, scrollBarHeight, relativeY) => {
7080
- const halfScrollBarHeight = scrollBarHeight / 2;
7081
- if (relativeY <= halfScrollBarHeight) {
7125
+ const scrollInto = (index, minLineY, maxLineY) => {
7126
+ const diff = maxLineY - minLineY;
7127
+ const smallerHalf = Math.floor(diff / 2);
7128
+ const largerHalf = diff - smallerHalf;
7129
+ if (index < minLineY) {
7082
7130
  return {
7083
- handleOffset: relativeY,
7084
- percent: 0
7131
+ newMaxLineY: index + largerHalf,
7132
+ newMinLineY: index - smallerHalf
7085
7133
  };
7086
7134
  }
7087
- if (relativeY <= height - halfScrollBarHeight) {
7135
+ if (index >= maxLineY) {
7088
7136
  return {
7089
- handleOffset: halfScrollBarHeight,
7090
- percent: (relativeY - halfScrollBarHeight) / (height - scrollBarHeight)
7137
+ newMaxLineY: index + largerHalf,
7138
+ newMinLineY: index - smallerHalf
7091
7139
  };
7092
7140
  }
7093
7141
  return {
7094
- handleOffset: scrollBarHeight - height + relativeY,
7095
- percent: 1
7142
+ newMaxLineY: maxLineY,
7143
+ newMinLineY: minLineY
7096
7144
  };
7097
7145
  };
7098
7146
 
7099
- const setDeltaY = async (state, deltaY) => {
7147
+ const adjustScrollAfterPaste = (state, focusedIndex) => {
7100
7148
  const {
7101
- deltaY: currentDeltaY,
7102
7149
  height,
7103
7150
  itemHeight,
7104
- items
7105
- } = state;
7106
- if (!Number.isFinite(deltaY)) {
7107
- return state;
7108
- }
7109
- if (deltaY < 0) {
7110
- deltaY = 0;
7111
- } else if (deltaY > items.length * itemHeight - height) {
7112
- deltaY = Math.max(items.length * itemHeight - height, 0);
7113
- }
7114
- if (currentDeltaY === deltaY) {
7115
- return state;
7116
- }
7117
- const minLineY = Math.round(deltaY / itemHeight);
7118
- const maxLineY = minLineY + Math.round(height / itemHeight);
7119
- return {
7120
- ...state,
7121
- deltaY,
7151
+ items,
7122
7152
  maxLineY,
7123
7153
  minLineY
7124
- };
7125
- };
7126
-
7127
- const handleScrollBarClick = async (state, eventY) => {
7128
- const {
7129
- deltaY,
7130
- height,
7131
- itemHeight,
7132
- items,
7133
- y
7134
7154
  } = state;
7135
- const contentHeight = items.length * itemHeight;
7136
- const finalDeltaY = Math.max(contentHeight - height, 0);
7137
- const scrollBarHeight = getScrollBarSize(height, contentHeight, 20);
7138
- const availableTrackHeight = height - scrollBarHeight;
7139
- if (finalDeltaY === 0 || availableTrackHeight <= 0) {
7140
- return state;
7141
- }
7142
- const relativeY = eventY - y;
7143
- const currentScrollBarY = deltaY / finalDeltaY * availableTrackHeight;
7144
- const offsetInThumb = relativeY - currentScrollBarY;
7145
- if (offsetInThumb >= 0 && offsetInThumb < scrollBarHeight) {
7146
- return {
7147
- ...state,
7148
- handleOffset: offsetInThumb,
7149
- scrollBarActive: true
7150
- };
7151
- }
7155
+ const currentMaxLineY = Math.max(maxLineY, getExplorerMaxLineY(minLineY, height, itemHeight, items.length));
7152
7156
  const {
7153
- handleOffset,
7154
- percent
7155
- } = getNewDeltaYPercent(height, scrollBarHeight, relativeY);
7157
+ newMaxLineY,
7158
+ newMinLineY
7159
+ } = scrollInto(focusedIndex, minLineY, currentMaxLineY);
7160
+ const newDeltaY = newMinLineY * itemHeight;
7156
7161
  return {
7157
- ...(await setDeltaY(state, percent * finalDeltaY)),
7158
- handleOffset,
7159
- scrollBarActive: true
7162
+ ...state,
7163
+ deltaY: newDeltaY,
7164
+ focused: true,
7165
+ focusedIndex,
7166
+ maxLineY: newMaxLineY,
7167
+ minLineY: newMinLineY
7160
7168
  };
7161
7169
  };
7162
7170
 
7163
- const handleScrollBarMove = async (state, eventY) => {
7164
- const {
7165
- handleOffset,
7166
- height,
7167
- itemHeight,
7168
- items,
7169
- scrollBarActive,
7170
- y
7171
- } = state;
7172
- if (!scrollBarActive) {
7173
- return state;
7171
+ const generateUniqueName = (baseName, existingPaths, root) => {
7172
+ // Handle files with extensions
7173
+ const lastDotIndex = baseName.lastIndexOf('.');
7174
+ const hasExtension = lastDotIndex !== -1 && lastDotIndex !== 0 && lastDotIndex !== baseName.length - 1;
7175
+ let nameWithoutExtension;
7176
+ let extension;
7177
+ if (hasExtension) {
7178
+ nameWithoutExtension = baseName.slice(0, lastDotIndex);
7179
+ extension = baseName.slice(lastDotIndex);
7180
+ } else {
7181
+ nameWithoutExtension = baseName;
7182
+ extension = '';
7174
7183
  }
7175
- const contentHeight = items.length * itemHeight;
7176
- const finalDeltaY = Math.max(contentHeight - height, 0);
7177
- const scrollBarHeight = getScrollBarSize(height, contentHeight, 20);
7178
- const availableTrackHeight = height - scrollBarHeight;
7179
- if (finalDeltaY === 0 || availableTrackHeight <= 0) {
7180
- return state;
7184
+
7185
+ // Check if original name exists
7186
+ const originalPath = join2(root, baseName);
7187
+ if (!existingPaths.includes(originalPath)) {
7188
+ return baseName;
7181
7189
  }
7182
- const relativeY = eventY - y - handleOffset;
7183
- const percent = relativeY / availableTrackHeight;
7184
- return setDeltaY(state, percent * finalDeltaY);
7185
- };
7186
7190
 
7187
- const handleUpload = async (state, dirents) => {
7188
- const {
7189
- isReadonly,
7190
- pathSeparator,
7191
- root
7192
- } = state;
7193
- if (isReadonly) {
7194
- return state;
7191
+ // Try "original copy"
7192
+ const copyName = `${nameWithoutExtension} copy${extension}`;
7193
+ const copyPath = join2(root, copyName);
7194
+ if (!existingPaths.includes(copyPath)) {
7195
+ return copyName;
7195
7196
  }
7196
- for (const dirent of dirents) {
7197
- // TODO switch
7198
- // TODO symlink might not be possible to be copied
7199
- // TODO create folder if type is 2
7200
- if (dirent.type !== /* File */1) {
7201
- continue;
7197
+
7198
+ // Try "original copy 1", "original copy 2", etc.
7199
+ let counter = 1;
7200
+ while (true) {
7201
+ const numberedCopyName = `${nameWithoutExtension} copy ${counter}${extension}`;
7202
+ const numberedCopyPath = join2(root, numberedCopyName);
7203
+ if (!existingPaths.includes(numberedCopyPath)) {
7204
+ return numberedCopyName;
7202
7205
  }
7203
- // TODO reading text might be inefficient for binary files
7204
- // but not sure how else to send them via jsonrpc
7205
- const content = await dirent.file.text();
7206
- const absolutePath = [root, dirent.file.name].join(pathSeparator);
7207
- await writeFile(absolutePath, content);
7206
+ counter++;
7208
7207
  }
7209
7208
  };
7210
7209
 
7211
- const handleWheel = (state, deltaMode, deltaY) => {
7212
- const {
7213
- deltaY: currentDeltaY
7214
- } = state;
7215
- return setDeltaY(state, currentDeltaY + deltaY);
7210
+ const getFileOperationsCopy = (targetUri, existingUris, files) => {
7211
+ const operations = [];
7212
+ const reservedUris = [...existingUris];
7213
+ for (const file of files) {
7214
+ const baseName = getBaseName('/', file);
7215
+ const uniqueName = generateUniqueName(baseName, reservedUris, targetUri);
7216
+ const newUri = join2(targetUri, uniqueName);
7217
+ operations.push({
7218
+ from: file,
7219
+ path: newUri,
7220
+ type: Copy$1
7221
+ });
7222
+ reservedUris.push(newUri);
7223
+ }
7224
+ return operations;
7216
7225
  };
7217
7226
 
7218
- const handleWorkspaceChange = async (state, _workspaceUri, savedState) => {
7227
+ const handlePasteCopy = async (state, nativeFiles) => {
7228
+ // TODO handle pasting files into nested folder
7229
+ // TODO handle pasting files into symlink
7230
+ // TODO handle pasting files into broken symlink
7231
+ // TODO handle pasting files into hardlink
7232
+ // TODO what if folder is big and it takes a long time
7233
+
7234
+ // TODO use file operations and bulk edit
7219
7235
  const {
7236
+ focusedIndex,
7237
+ items,
7238
+ pathSeparator,
7220
7239
  root
7221
7240
  } = state;
7222
- const newRoot = await getWorkspaceUri();
7223
- const state1 = newRoot === root ? state : {
7224
- ...state,
7225
- expandedPaths: [],
7226
- root: newRoot
7227
- };
7228
- const newState = await loadContent(state1, savedState);
7229
- return newState;
7230
- };
7241
+ const targetUri = getParentFolder(items, focusedIndex, root, pathSeparator);
7242
+ const targetDirents = await readDirWithFileTypes(targetUri);
7243
+ const existingUris = targetDirents.map(dirent => join2(targetUri, dirent.name));
7244
+ const operations = getFileOperationsCopy(targetUri, existingUris, nativeFiles.files);
7245
+ // TODO handle error?
7246
+ await applyFileOperations(operations);
7231
7247
 
7232
- const handleWorkspaceRefresh = async state => {
7233
- return refresh(state);
7234
- };
7248
+ // TODO use refreshExplorer with the paths that have been affected by file operations
7249
+ // TODO only update folder at which level it changed
7250
+ const latestState = await refresh(state);
7235
7251
 
7236
- const initialize = async () => {
7237
- // this function is not needed anymore
7252
+ // Focus on the first newly created file and adjust scroll position
7253
+ const newFilePaths = operations.map(operation => operation.path);
7254
+ if (newFilePaths.length > 0) {
7255
+ const firstNewFilePath = newFilePaths[0];
7256
+ const newFileIndex = getIndex(latestState.items, firstNewFilePath);
7257
+ if (newFileIndex !== -1) {
7258
+ const adjustedState = adjustScrollAfterPaste(latestState, newFileIndex);
7259
+ return {
7260
+ ...adjustedState,
7261
+ pasteShouldMove: false
7262
+ };
7263
+ }
7264
+ }
7265
+ // If there are no items, ensure focusedIndex is 0
7266
+ if (latestState.items.length === 0) {
7267
+ return {
7268
+ ...latestState,
7269
+ focusedIndex: 0,
7270
+ pasteShouldMove: false
7271
+ };
7272
+ }
7273
+ return {
7274
+ ...latestState,
7275
+ pasteShouldMove: false
7276
+ };
7238
7277
  };
7239
7278
 
7240
- const getContainingFolder = (root, dirents, focusedIndex, pathSeparator) => {
7241
- if (focusedIndex < 0) {
7242
- return root;
7279
+ const getOperations = (toUri, files) => {
7280
+ const operations = [];
7281
+ for (const file of files) {
7282
+ const baseName = getBaseName('/', file);
7283
+ const newUri = join2(toUri, baseName);
7284
+ operations.push({
7285
+ from: file,
7286
+ path: newUri,
7287
+ type: Rename$2
7288
+ });
7243
7289
  }
7244
- const dirent = dirents[focusedIndex];
7245
- const direntPath = dirent.path;
7246
- const direntParentPath = direntPath.slice(0, -(dirent.name.length + 1));
7247
- const path = direntParentPath;
7248
- return path;
7290
+ return operations;
7249
7291
  };
7250
-
7251
- const openNativeFolder = async path => {
7252
- await invoke$3('OpenNativeFolder.openNativeFolder', /* path */path);
7292
+ const getTargetUri = (root, items, index) => {
7293
+ if (index === -1) {
7294
+ return root;
7295
+ }
7296
+ return items[index].path;
7253
7297
  };
7254
-
7255
- const openContainingFolder = async state => {
7298
+ const handlePasteCut = async (state, nativeFiles) => {
7256
7299
  const {
7257
7300
  focusedIndex,
7258
7301
  items,
7302
+ pathSeparator,
7259
7303
  root
7260
7304
  } = state;
7261
- const path = getContainingFolder(root, items, focusedIndex);
7262
- await openNativeFolder(path);
7263
- return state;
7305
+ // TODO root is not necessrily target uri
7306
+ const targetUri = getTargetUri(root, items, focusedIndex);
7307
+ const operations = getOperations(targetUri, nativeFiles.files);
7308
+ await applyFileOperations(operations);
7309
+
7310
+ // Refresh the state after cut operations
7311
+ const latestState = await refresh(state);
7312
+
7313
+ // Focus on the first pasted file and adjust scroll position
7314
+ if (nativeFiles.files.length > 0) {
7315
+ const firstPastedFile = nativeFiles.files[0];
7316
+ const targetPath = `${root}${pathSeparator}${getBaseName(pathSeparator, firstPastedFile)}`;
7317
+ const pastedFileIndex = getIndex(latestState.items, targetPath);
7318
+ if (pastedFileIndex !== -1) {
7319
+ const adjustedState = adjustScrollAfterPaste(latestState, pastedFileIndex);
7320
+ return {
7321
+ ...adjustedState,
7322
+ cutItems: [],
7323
+ pasteShouldMove: false
7324
+ };
7325
+ }
7326
+ }
7327
+ return {
7328
+ ...latestState,
7329
+ cutItems: [],
7330
+ pasteShouldMove: false
7331
+ };
7264
7332
  };
7265
7333
 
7266
- const directoryTypes = new Set([Directory, DirectoryExpanded, DirectoryExpanding, SymLinkFolder]);
7267
- const getIntegratedTerminalCwd = state => {
7334
+ const None = 'none';
7335
+
7336
+ const handlePaste = async state => {
7268
7337
  const {
7269
- focusedIndex,
7270
- items,
7271
- pathSeparator,
7272
- root
7338
+ isReadonly,
7339
+ pasteShouldMove
7273
7340
  } = state;
7274
- if (focusedIndex < 0 || focusedIndex >= items.length) {
7275
- return root;
7341
+ if (isReadonly) {
7342
+ return state;
7276
7343
  }
7277
- const item = items[focusedIndex];
7278
- if (directoryTypes.has(item.type)) {
7279
- return item.path;
7344
+ const nativeFiles = await readNativeFiles();
7345
+ if (!nativeFiles) {
7346
+ return state;
7280
7347
  }
7281
- return dirname(pathSeparator, item.path);
7282
- };
7283
-
7284
- const openInIntegratedTerminal = async state => {
7285
- const cwd = getIntegratedTerminalCwd(state);
7286
- await invoke$3('Layout.openIntegratedTerminal', cwd);
7287
- return state;
7288
- };
7348
+ // TODO detect cut/paste event, not sure if that is possible
7349
+ // TODO check that pasted folder is not a parent folder of opened folder
7350
+ // TODO support pasting multiple paths
7351
+ // TODO what happens when pasting multiple paths, but some of them error?
7352
+ // how many error messages should be shown? Should the operation be undone?
7353
+ // TODO what if it is a large folder and takes a long time to copy? Should show progress
7354
+ // TODO what if there is a permission error? Probably should show a modal to ask for permission
7355
+ // TODO if error is EEXISTS, just rename the copy (e.g. file-copy-1.txt, file-copy-2.txt)
7356
+ // TODO actual target should be selected folder
7357
+ // TODO but what if a file is currently selected? Then maybe the parent folder
7358
+ // TODO but will it work if the folder is a symlink?
7359
+ // TODO handle error gracefully when copy fails
7289
7360
 
7290
- const confirmDelete = async items => {
7291
- // TODO use i18n string
7292
- const names = items.map(item => `"${item.name}"`).join(', ');
7293
- const message = items.length === 1 ? `Are you sure you want to delete "${items[0].path}"?` : `Are you sure you want to delete ${names}?`;
7294
- const result = await confirm(message);
7295
- return result;
7296
- };
7361
+ // If no files to paste, return original state unchanged
7362
+ if (nativeFiles.type === None) {
7363
+ return state;
7364
+ }
7297
7365
 
7298
- const showErrorAlert = async errorMessage => {
7299
- await confirm(errorMessage);
7366
+ // Use the pasteShouldMove flag to determine whether to cut or copy
7367
+ if (pasteShouldMove) {
7368
+ return handlePasteCut(state, nativeFiles);
7369
+ }
7370
+ return handlePasteCopy(state, nativeFiles);
7300
7371
  };
7301
7372
 
7302
- const removeDirent = async state => {
7373
+ const handleNativePaste = async (state, itemIds) => {
7303
7374
  const {
7304
- confirmDelete: confirmDelete$1,
7305
7375
  focusedIndex,
7306
7376
  isReadonly,
7307
- items
7377
+ platform
7308
7378
  } = state;
7309
7379
  if (isReadonly) {
7310
7380
  return state;
7311
7381
  }
7312
- const selectedItems = getSelectedItems(items, focusedIndex);
7313
- if (selectedItems.length === 0) {
7314
- return state;
7382
+ if (itemIds.length === 0) {
7383
+ return handlePaste(state);
7315
7384
  }
7316
- const toRemove = getPaths(selectedItems);
7317
- if (confirmDelete$1) {
7318
- const confirmed = await confirmDelete(selectedItems);
7319
- if (!confirmed) {
7320
- return state;
7385
+ try {
7386
+ const isElectron = platform === Electron;
7387
+ const {
7388
+ fileHandles,
7389
+ paths
7390
+ } = await getClipboardItems(itemIds, isElectron);
7391
+ if (isElectron) {
7392
+ const nativePaths = paths.filter(Boolean);
7393
+ if (nativePaths.length === 0) {
7394
+ return handlePaste(state);
7395
+ }
7396
+ return handlePasteCopy(state, {
7397
+ files: nativePaths,
7398
+ source: 'gnomeCopiedFiles',
7399
+ type: 'copy'
7400
+ });
7321
7401
  }
7402
+ const handleDrop = getDropHandler(focusedIndex);
7403
+ return handleDrop(state, fileHandles, paths, focusedIndex);
7404
+ } catch (error) {
7405
+ throw new VError(error, 'Failed to paste native files');
7322
7406
  }
7323
- const fileOperations = toRemove.map(item => {
7407
+ };
7408
+
7409
+ const handlePointerDown = (state, button, x, y) => {
7410
+ const index = getIndexFromPosition(state, x, y);
7411
+ if (button === LeftClick && index === -1) {
7324
7412
  return {
7325
- path: item,
7326
- type: Remove
7413
+ ...state,
7414
+ focus: List,
7415
+ focused: true,
7416
+ focusedIndex: -1
7327
7417
  };
7328
- });
7329
- // TODO use bulk edit and explorer refresh
7330
- const errorMessage = await applyFileOperations(fileOperations);
7331
- if (errorMessage) {
7332
- await showErrorAlert(errorMessage);
7333
- return state;
7334
7418
  }
7335
- const newState = await refresh(state);
7336
- return {
7337
- ...newState,
7338
- focus: List,
7339
- focused: true
7340
- };
7341
- };
7342
-
7343
- const getEditingType = direntType => {
7344
- if (direntType < DELTA_EDITING) {
7345
- return direntType + DELTA_EDITING;
7419
+ if (button === LeftClick) {
7420
+ return {
7421
+ ...state,
7422
+ isPointerDown: true,
7423
+ pointerDownIndex: index
7424
+ };
7346
7425
  }
7347
- return direntType;
7348
- };
7349
-
7350
- const getNewDirentsForRename = (items, focusedIndex) => {
7351
- const item = items[focusedIndex];
7352
- const editingType = getEditingType(item.type);
7353
- return [...items.slice(0, focusedIndex), {
7354
- ...item,
7355
- type: editingType
7356
- }, ...items.slice(focusedIndex + 1)];
7426
+ return state;
7357
7427
  };
7358
7428
 
7359
- const getRenameSelectionRange = name => {
7360
- const dotIndex = name.lastIndexOf('.');
7361
- if (dotIndex === -1) {
7362
- return {
7363
- end: name.length,
7364
- start: 0
7365
- };
7429
+ const handlePointerUp = state => {
7430
+ const {
7431
+ isPointerDown,
7432
+ pointerDownIndex
7433
+ } = state;
7434
+ if (!isPointerDown && pointerDownIndex === -1) {
7435
+ return state;
7366
7436
  }
7367
7437
  return {
7368
- end: dotIndex,
7369
- start: 0
7438
+ ...state,
7439
+ isPointerDown: false,
7440
+ pointerDownIndex: -1
7370
7441
  };
7371
7442
  };
7372
7443
 
7373
- const renameDirent = async state => {
7444
+ const handleResize = (state, dimensions) => {
7374
7445
  const {
7375
- editingSessionId,
7376
- focusedIndex,
7377
- icons,
7378
- isReadonly,
7446
+ deltaY: currentDeltaY,
7447
+ height: currentHeight,
7448
+ itemHeight,
7379
7449
  items,
7380
- minLineY
7450
+ maxLineY: currentMaxLineY,
7451
+ minLineY: currentMinLineY,
7452
+ scrollBarHeight: currentScrollBarHeight,
7453
+ width: currentWidth
7381
7454
  } = state;
7382
- if (isReadonly) {
7455
+ const {
7456
+ height: rawHeight,
7457
+ width: rawWidth
7458
+ } = dimensions;
7459
+ if (!Number.isFinite(rawHeight) || !Number.isFinite(rawWidth)) {
7383
7460
  return state;
7384
7461
  }
7385
- if (items.length === 0) {
7462
+ const height = Math.max(0, rawHeight);
7463
+ const width = Math.max(0, rawWidth);
7464
+ const contentHeight = items.length * itemHeight;
7465
+ const maxDeltaY = Math.max(contentHeight - height, 0);
7466
+ const newDeltaY = Math.min(Math.max(currentDeltaY, 0), maxDeltaY);
7467
+ const minLineY = Math.round(newDeltaY / itemHeight);
7468
+ const maxLineY = getExplorerMaxLineY(minLineY, height, itemHeight, items.length);
7469
+ const scrollBarHeight = getScrollBarSize(height, contentHeight, 20);
7470
+ if (currentHeight === height && currentWidth === width && currentDeltaY === newDeltaY && currentMinLineY === minLineY && currentMaxLineY === maxLineY && currentScrollBarHeight === scrollBarHeight) {
7386
7471
  return state;
7387
7472
  }
7388
- const item = items[focusedIndex];
7389
- const newItems = getNewDirentsForRename(items, focusedIndex);
7390
- const {
7391
- end,
7392
- start
7393
- } = getRenameSelectionRange(item.name);
7394
7473
  return {
7395
7474
  ...state,
7396
- editingIcon: icons[focusedIndex - minLineY],
7397
- editingIndex: focusedIndex,
7398
- editingSelectionEnd: end,
7399
- editingSelectionStart: start,
7400
- editingSessionId: editingSessionId + 1,
7401
- editingType: Rename$1,
7402
- editingValue: item.name,
7403
- focus: Input$1,
7404
- inputSource: Script,
7405
- items: newItems
7475
+ deltaY: newDeltaY,
7476
+ height,
7477
+ maxLineY,
7478
+ minLineY,
7479
+ scrollBarHeight,
7480
+ width
7406
7481
  };
7407
7482
  };
7408
7483
 
7409
- const getIndentRule = indent => {
7410
- return `.Indent-${indent} {
7411
- padding-left: ${indent}px;
7412
- }`;
7413
- };
7414
-
7415
- const getCss = (scrollBarHeight, scrollBarTop, uniqueIndents, errorMessageLeft, errorMessageTop, errorMessageWidth) => {
7416
- const rules = [`.Explorer {
7417
- --ScrollBarThumbHeight: ${scrollBarHeight}px;
7418
- --ScrollBarThumbTop: ${scrollBarTop}px;
7419
- --ErrorMessageTop: ${errorMessageTop}px;
7420
- --ErrorMessageLeft: ${errorMessageLeft}px;
7421
- --ErrorMessageWidth: ${errorMessageWidth}px;
7422
- }
7423
- .Explorer .ScrollBarThumb {
7424
- height: var(--ScrollBarThumbHeight);
7425
- translate: 0px var(--ScrollBarThumbTop);
7426
- }`, ...uniqueIndents.map(getIndentRule)];
7427
- const css = rules.join('\n');
7428
- return css;
7429
- };
7430
-
7431
- const getErrorMessagePosition = (itemHeight, focusedIndex, minLineY, depth, indent, fileIconWidth, padding, width) => {
7432
- const top = itemHeight * (focusedIndex - minLineY + 1);
7433
- const left = depth * indent + fileIconWidth + padding;
7434
- const errorMessageWidth = width - left;
7484
+ const handleScrollBarCaptureLost = state => {
7435
7485
  return {
7436
- errorMessageWidth,
7437
- left,
7438
- top
7486
+ ...state,
7487
+ scrollBarActive: false
7439
7488
  };
7440
7489
  };
7441
7490
 
7442
- const getScrollBarTop = (height, contentHeight, scrollTop, scrollBarHeight) => {
7443
- const finalScrollTop = contentHeight - height;
7444
- if (finalScrollTop <= 0 || !Number.isFinite(finalScrollTop)) {
7445
- return 0;
7446
- }
7447
- const scrollBarTop = Math.round(scrollTop / finalScrollTop * (height - scrollBarHeight));
7448
- if (!Number.isFinite(scrollBarTop)) {
7449
- return 0;
7491
+ const getNewDeltaYPercent = (height, scrollBarHeight, relativeY) => {
7492
+ const halfScrollBarHeight = scrollBarHeight / 2;
7493
+ if (relativeY <= halfScrollBarHeight) {
7494
+ return {
7495
+ handleOffset: relativeY,
7496
+ percent: 0
7497
+ };
7450
7498
  }
7451
- return scrollBarTop;
7452
- };
7453
-
7454
- const getUnique = items => {
7455
- const seens = [];
7456
- for (const item of items) {
7457
- if (!seens.includes(item)) {
7458
- seens.push(item);
7459
- }
7499
+ if (relativeY <= height - halfScrollBarHeight) {
7500
+ return {
7501
+ handleOffset: halfScrollBarHeight,
7502
+ percent: (relativeY - halfScrollBarHeight) / (height - scrollBarHeight)
7503
+ };
7460
7504
  }
7461
- return seens;
7462
- };
7463
-
7464
- const getIndent = item => item.indent;
7465
- const getUniqueIndents = items => {
7466
- const indents = items.map(getIndent);
7467
- const uniqueIndents = getUnique(indents);
7468
- return uniqueIndents;
7505
+ return {
7506
+ handleOffset: scrollBarHeight - height + relativeY,
7507
+ percent: 1
7508
+ };
7469
7509
  };
7470
7510
 
7471
- const renderCss = (oldState, newState) => {
7511
+ const setDeltaY = async (state, deltaY) => {
7472
7512
  const {
7473
- chevronSpace,
7474
- defaultPaddingLeft,
7475
- deltaY,
7476
- fileIconWidth,
7477
- focusedIndex,
7513
+ deltaY: currentDeltaY,
7478
7514
  height,
7479
- indent,
7480
7515
  itemHeight,
7481
- items,
7482
- minLineY,
7483
- padding,
7484
- uid,
7485
- visibleExplorerItems,
7486
- width
7487
- } = newState;
7488
- const uniqueIndents = getUniqueIndents(visibleExplorerItems);
7489
- const contentHeight = items.length * itemHeight;
7490
- const scrollBarHeight = getScrollBarSize(height, contentHeight, 20);
7491
- const scrollBarTop = getScrollBarTop(height, contentHeight, deltaY, scrollBarHeight);
7492
- const depth = items[focusedIndex]?.depth || 0;
7493
- const {
7494
- errorMessageWidth,
7495
- left,
7496
- top
7497
- } = getErrorMessagePosition(itemHeight, focusedIndex, minLineY, depth, indent, fileIconWidth, padding + defaultPaddingLeft + chevronSpace, width);
7498
- const css = getCss(scrollBarHeight, scrollBarTop, uniqueIndents, left, top, errorMessageWidth);
7499
- return [SetCss, uid, css];
7500
- };
7501
-
7502
- const getDragLabel = urls => {
7503
- if (urls.length === 1) {
7504
- return getBaseName('/', urls[0]);
7516
+ items
7517
+ } = state;
7518
+ if (!Number.isFinite(deltaY)) {
7519
+ return state;
7505
7520
  }
7506
- return String(urls.length);
7507
- };
7508
-
7509
- const getDragData = items => {
7510
- const data = items.map(getDragUri).join('\n');
7511
- const dragData = [{
7512
- data,
7513
- type: 'text/uri-list'
7514
- }, {
7515
- data,
7516
- type: 'text/plain'
7517
- }];
7521
+ if (deltaY < 0) {
7522
+ deltaY = 0;
7523
+ } else if (deltaY > items.length * itemHeight - height) {
7524
+ deltaY = Math.max(items.length * itemHeight - height, 0);
7525
+ }
7526
+ if (currentDeltaY === deltaY) {
7527
+ return state;
7528
+ }
7529
+ const minLineY = Math.round(deltaY / itemHeight);
7530
+ const maxLineY = minLineY + Math.round(height / itemHeight);
7518
7531
  return {
7519
- items: dragData,
7520
- label: getDragLabel(items.map(item => item.path))
7532
+ ...state,
7533
+ deltaY,
7534
+ maxLineY,
7535
+ minLineY
7521
7536
  };
7522
7537
  };
7523
7538
 
7524
- const renderDragData = (oldState, newState) => {
7539
+ const handleScrollBarClick = async (state, eventY) => {
7525
7540
  const {
7526
- focusedIndex,
7527
- isPointerDown,
7541
+ deltaY,
7542
+ height,
7543
+ itemHeight,
7528
7544
  items,
7529
- pointerDownIndex,
7530
- uid
7531
- } = newState;
7532
- if (!isPointerDown) {
7533
- return [];
7545
+ y
7546
+ } = state;
7547
+ const contentHeight = items.length * itemHeight;
7548
+ const finalDeltaY = Math.max(contentHeight - height, 0);
7549
+ const scrollBarHeight = getScrollBarSize(height, contentHeight, 20);
7550
+ const availableTrackHeight = height - scrollBarHeight;
7551
+ if (finalDeltaY === 0 || availableTrackHeight <= 0) {
7552
+ return state;
7534
7553
  }
7535
- const pointerDownItem = items[pointerDownIndex];
7536
- let draggedItems;
7537
- if (pointerDownIndex === focusedIndex || pointerDownItem?.selected) {
7538
- draggedItems = getSelectedItems(items, focusedIndex);
7539
- } else if (pointerDownItem) {
7540
- draggedItems = [pointerDownItem];
7541
- } else {
7542
- draggedItems = [];
7554
+ const relativeY = eventY - y;
7555
+ const currentScrollBarY = deltaY / finalDeltaY * availableTrackHeight;
7556
+ const offsetInThumb = relativeY - currentScrollBarY;
7557
+ if (offsetInThumb >= 0 && offsetInThumb < scrollBarHeight) {
7558
+ return {
7559
+ ...state,
7560
+ handleOffset: offsetInThumb,
7561
+ scrollBarActive: true
7562
+ };
7543
7563
  }
7544
- const dragData = getDragData(draggedItems);
7545
- return ['Viewlet.setDragData', uid, dragData];
7546
- };
7547
-
7548
- const renderEditingSelection = (oldState, newState) => {
7549
7564
  const {
7550
- editingSelectionEnd,
7551
- editingSelectionStart,
7552
- uid
7553
- } = newState;
7554
- return ['Viewlet.setSelectionByName', uid, ExplorerInput, editingSelectionStart, editingSelectionEnd];
7565
+ handleOffset,
7566
+ percent
7567
+ } = getNewDeltaYPercent(height, scrollBarHeight, relativeY);
7568
+ return {
7569
+ ...(await setDeltaY(state, percent * finalDeltaY)),
7570
+ handleOffset,
7571
+ scrollBarActive: true
7572
+ };
7555
7573
  };
7556
7574
 
7557
- const renderFocus = (oldState, newState) => {
7558
- if (newState.inputSource === User) {
7559
- return [];
7560
- }
7561
- if (newState.focus === Input$1) {
7562
- return [FocusElementByName, newState.uid, ExplorerInput];
7575
+ const handleScrollBarMove = async (state, eventY) => {
7576
+ const {
7577
+ handleOffset,
7578
+ height,
7579
+ itemHeight,
7580
+ items,
7581
+ scrollBarActive,
7582
+ y
7583
+ } = state;
7584
+ if (!scrollBarActive) {
7585
+ return state;
7563
7586
  }
7564
- if (newState.focus === List) {
7565
- return [FocusSelector, newState.uid, '.ListItems'];
7587
+ const contentHeight = items.length * itemHeight;
7588
+ const finalDeltaY = Math.max(contentHeight - height, 0);
7589
+ const scrollBarHeight = getScrollBarSize(height, contentHeight, 20);
7590
+ const availableTrackHeight = height - scrollBarHeight;
7591
+ if (finalDeltaY === 0 || availableTrackHeight <= 0) {
7592
+ return state;
7566
7593
  }
7567
- // TODO
7568
- // 1. when focused, focus the outer list element
7569
- // 2. when focused, set focus context in renderer worker
7570
- return [];
7594
+ const relativeY = eventY - y - handleOffset;
7595
+ const percent = relativeY / availableTrackHeight;
7596
+ return setDeltaY(state, percent * finalDeltaY);
7571
7597
  };
7572
7598
 
7573
- const renderFocusContext = (oldState, newState) => {
7599
+ const handleUpload = async (state, dirents) => {
7574
7600
  const {
7575
- uid
7576
- } = newState;
7577
- if (newState.focus === Input$1) {
7578
- return [SetFocusContext, uid, FocusExplorerEditBox];
7601
+ isReadonly,
7602
+ pathSeparator,
7603
+ root
7604
+ } = state;
7605
+ if (isReadonly) {
7606
+ return state;
7579
7607
  }
7580
- if (newState.focus === List) {
7581
- return [SetFocusContext, uid, FocusExplorer];
7608
+ for (const dirent of dirents) {
7609
+ // TODO switch
7610
+ // TODO symlink might not be possible to be copied
7611
+ // TODO create folder if type is 2
7612
+ if (dirent.type !== /* File */1) {
7613
+ continue;
7614
+ }
7615
+ // TODO reading text might be inefficient for binary files
7616
+ // but not sure how else to send them via jsonrpc
7617
+ const content = await dirent.file.text();
7618
+ const absolutePath = [root, dirent.file.name].join(pathSeparator);
7619
+ await writeFile(absolutePath, content);
7582
7620
  }
7583
- return [];
7584
7621
  };
7585
7622
 
7586
- const None = 'none';
7587
- const ToolBar = 'toolbar';
7588
- const Tree = 'tree';
7589
- const TreeItem = 'treeitem';
7590
-
7591
- const Button$1 = 1;
7592
- const Div = 4;
7593
- const Input = 6;
7594
- const Img = 17;
7595
- const P = 50;
7596
-
7597
- const errorMessageNode = {
7598
- childCount: 1,
7599
- className: mergeClassNames(ExplorerErrorMessage),
7600
- type: Div
7623
+ const handleWheel = (state, deltaMode, deltaY) => {
7624
+ const {
7625
+ deltaY: currentDeltaY
7626
+ } = state;
7627
+ return setDeltaY(state, currentDeltaY + deltaY);
7601
7628
  };
7602
- const getErrorMessageDom = errorMessage => {
7603
- if (!errorMessage) {
7604
- return [];
7605
- }
7606
- return [errorMessageNode, text(errorMessage)];
7629
+
7630
+ const handleWorkspaceChange = async (state, _workspaceUri, savedState) => {
7631
+ const {
7632
+ root
7633
+ } = state;
7634
+ const newRoot = await getWorkspaceUri();
7635
+ const state1 = newRoot === root ? state : {
7636
+ ...state,
7637
+ expandedPaths: [],
7638
+ root: newRoot
7639
+ };
7640
+ const newState = await loadContent(state1, savedState);
7641
+ return newState;
7607
7642
  };
7608
7643
 
7609
- const HandleButtonClick = 18;
7610
- const HandleClick = 1;
7611
- const HandleClickOpenFolder = 2;
7612
- const HandleContextMenu = 3;
7613
- const HandleContextMenuWelcome = 20;
7614
- const HandleDragEnd = 19;
7615
- const HandleDragLeave = 4;
7616
- const HandleDragOver = 5;
7617
- const HandleDragStart = 17;
7618
- const HandleDrop = 6;
7619
- const HandleEditingInput = 7;
7620
- const HandleInputBlur = 8;
7621
- const HandleInputClick = 9;
7622
- const HandleKeyDown = 21;
7623
- const HandleListBlur = 11;
7624
- const HandleListFocus = 12;
7625
- const HandleNativePaste = 26;
7626
- const HandlePointerDown = 14;
7627
- const HandlePointerUp = 25;
7628
- const HandleScrollBarMove = 22;
7629
- const HandleScrollBarPointerCaptureLost = 23;
7630
- const HandleScrollBarPointerDown = 24;
7631
- const HandleWheel = 15;
7632
- const HandleDoubleClick = 16;
7644
+ const handleWorkspaceRefresh = async state => {
7645
+ return refresh(state);
7646
+ };
7633
7647
 
7634
- const Focusable = 0;
7648
+ const initialize = async () => {
7649
+ // this function is not needed anymore
7650
+ };
7635
7651
 
7636
- const welcomeNode = {
7637
- childCount: 2,
7638
- className: Welcome,
7639
- type: Div
7652
+ const getContainingFolder = (root, dirents, focusedIndex, pathSeparator) => {
7653
+ if (focusedIndex < 0) {
7654
+ return root;
7655
+ }
7656
+ const dirent = dirents[focusedIndex];
7657
+ const direntPath = dirent.path;
7658
+ const direntParentPath = direntPath.slice(0, -(dirent.name.length + 1));
7659
+ const path = direntParentPath;
7660
+ return path;
7640
7661
  };
7641
- const welcomeMessageNode$1 = {
7642
- childCount: 1,
7643
- className: WelcomeMessage,
7644
- type: P
7662
+
7663
+ const openNativeFolder = async path => {
7664
+ await invoke$3('OpenNativeFolder.openNativeFolder', /* path */path);
7645
7665
  };
7646
- const getClassName$1 = dropTargets => {
7647
- const extraClassName = dropTargets === dropTargetFull ? ExplorerDropTarget : Empty;
7648
- return mergeClassNames(Viewlet, Explorer$1, extraClassName);
7666
+
7667
+ const openContainingFolder = async state => {
7668
+ const {
7669
+ focusedIndex,
7670
+ items,
7671
+ root
7672
+ } = state;
7673
+ const path = getContainingFolder(root, items, focusedIndex);
7674
+ await openNativeFolder(path);
7675
+ return state;
7649
7676
  };
7650
- const getExplorerWelcomeVirtualDom = (isWide, dropTargets) => {
7651
- return [{
7652
- childCount: 1,
7653
- className: getClassName$1(dropTargets),
7654
- onContextMenu: HandleContextMenuWelcome,
7655
- onDragLeave: HandleDragLeave,
7656
- onDragOver: HandleDragOver,
7657
- onDrop: HandleDrop,
7658
- tabIndex: Focusable,
7659
- type: Div
7660
- }, welcomeNode, welcomeMessageNode$1, text(youHaveNotYetOpenedAFolder()), {
7661
- childCount: 1,
7662
- className: mergeClassNames(Button$2, ButtonPrimary, isWide ? ButtonWide : ButtonNarrow),
7663
- name: OpenFolder,
7664
- onClick: HandleClickOpenFolder,
7665
- type: Button$1
7666
- }, text(openFolder$1())];
7677
+
7678
+ const directoryTypes = new Set([Directory, DirectoryExpanded, DirectoryExpanding, SymLinkFolder]);
7679
+ const getIntegratedTerminalCwd = state => {
7680
+ const {
7681
+ focusedIndex,
7682
+ items,
7683
+ pathSeparator,
7684
+ root
7685
+ } = state;
7686
+ if (focusedIndex < 0 || focusedIndex >= items.length) {
7687
+ return root;
7688
+ }
7689
+ const item = items[focusedIndex];
7690
+ if (directoryTypes.has(item.type)) {
7691
+ return item.path;
7692
+ }
7693
+ return dirname(pathSeparator, item.path);
7667
7694
  };
7668
7695
 
7669
- const chevronDownVirtualDom = {
7670
- childCount: 0,
7671
- className: mergeClassNames(Chevron, MaskIconChevronDown),
7672
- type: Div
7696
+ const openInIntegratedTerminal = async state => {
7697
+ const cwd = getIntegratedTerminalCwd(state);
7698
+ await invoke$3('Layout.openIntegratedTerminal', cwd);
7699
+ return state;
7673
7700
  };
7674
7701
 
7675
- const chevronRightVirtualDom = {
7676
- childCount: 0,
7677
- className: mergeClassNames(Chevron, MaskIconChevronRight),
7678
- type: Div
7702
+ const confirmDelete = async items => {
7703
+ // TODO use i18n string
7704
+ const names = items.map(item => `"${item.name}"`).join(', ');
7705
+ const message = items.length === 1 ? `Are you sure you want to delete "${items[0].path}"?` : `Are you sure you want to delete ${names}?`;
7706
+ const result = await confirm(message);
7707
+ return result;
7679
7708
  };
7680
7709
 
7681
- const chevronDomNodes = [[], [chevronRightVirtualDom], [chevronDownVirtualDom]];
7682
- const getChevronVirtualDom = chevronType => {
7683
- return chevronDomNodes[chevronType];
7710
+ const showErrorAlert = async errorMessage => {
7711
+ await confirm(errorMessage);
7684
7712
  };
7685
7713
 
7686
- const getFileIconVirtualDom = icon => {
7714
+ const removeDirent = async state => {
7715
+ const {
7716
+ confirmDelete: confirmDelete$1,
7717
+ focusedIndex,
7718
+ isReadonly,
7719
+ items
7720
+ } = state;
7721
+ if (isReadonly) {
7722
+ return state;
7723
+ }
7724
+ const selectedItems = getSelectedItems(items, focusedIndex);
7725
+ if (selectedItems.length === 0) {
7726
+ return state;
7727
+ }
7728
+ const toRemove = getPaths(selectedItems);
7729
+ if (confirmDelete$1) {
7730
+ const confirmed = await confirmDelete(selectedItems);
7731
+ if (!confirmed) {
7732
+ return state;
7733
+ }
7734
+ }
7735
+ const fileOperations = toRemove.map(item => {
7736
+ return {
7737
+ path: item,
7738
+ type: Remove
7739
+ };
7740
+ });
7741
+ // TODO use bulk edit and explorer refresh
7742
+ const errorMessage = await applyFileOperations(fileOperations);
7743
+ if (errorMessage) {
7744
+ await showErrorAlert(errorMessage);
7745
+ return state;
7746
+ }
7747
+ const newState = await refresh(state);
7687
7748
  return {
7688
- childCount: 0,
7689
- className: FileIcon,
7690
- role: None,
7691
- src: icon,
7692
- type: Img
7749
+ ...newState,
7750
+ focus: List,
7751
+ focused: true
7693
7752
  };
7694
7753
  };
7695
7754
 
7696
- const getInputClassName = hasEditingError => {
7697
- if (hasEditingError) {
7698
- return mergeClassNames(ExplorerInputBox, InputValidationError);
7755
+ const getEditingType = direntType => {
7756
+ if (direntType < DELTA_EDITING) {
7757
+ return direntType + DELTA_EDITING;
7699
7758
  }
7700
- return ExplorerInputBox;
7759
+ return direntType;
7701
7760
  };
7702
7761
 
7703
- const getInputDom = (isEditing, hasEditingError, editingSessionId) => {
7704
- if (!isEditing) {
7705
- return [];
7706
- }
7707
- const ariaLabel = typeAFileName();
7708
- return [{
7709
- ariaLabel: ariaLabel,
7710
- autocapitalize: 'off',
7711
- autocomplete: 'off',
7712
- autocorrect: 'off',
7713
- childCount: 0,
7714
- className: getInputClassName(hasEditingError),
7715
- 'data-editingSessionId': editingSessionId,
7716
- id: 'ExplorerInput',
7717
- name: ExplorerInput,
7718
- onBlur: HandleInputBlur,
7719
- onClick: HandleInputClick,
7720
- onInput: HandleEditingInput,
7721
- spellcheck: 'false',
7722
- type: Input
7723
- }];
7762
+ const getNewDirentsForRename = (items, focusedIndex) => {
7763
+ const item = items[focusedIndex];
7764
+ const editingType = getEditingType(item.type);
7765
+ return [...items.slice(0, focusedIndex), {
7766
+ ...item,
7767
+ type: editingType
7768
+ }, ...items.slice(focusedIndex + 1)];
7724
7769
  };
7725
7770
 
7726
- const label = {
7727
- childCount: 1,
7728
- className: Label,
7729
- type: Div
7730
- };
7731
- const dimmedLabel = {
7732
- childCount: 1,
7733
- className: mergeClassNames(Label, LabelCut),
7734
- type: Div
7735
- };
7736
- const getLabelDom = (isEditing, name, isDimmed) => {
7737
- if (isEditing) {
7738
- return [];
7739
- }
7740
- if (isDimmed) {
7741
- return [dimmedLabel, text(name)];
7771
+ const getRenameSelectionRange = name => {
7772
+ const dotIndex = name.lastIndexOf('.');
7773
+ if (dotIndex === -1) {
7774
+ return {
7775
+ end: name.length,
7776
+ start: 0
7777
+ };
7742
7778
  }
7743
- return [label, text(name)];
7779
+ return {
7780
+ end: dotIndex,
7781
+ start: 0
7782
+ };
7744
7783
  };
7745
7784
 
7746
- const getTitle = path => {
7747
- if (path.startsWith('file://')) {
7748
- return path.slice('file://'.length);
7749
- }
7750
- return path;
7751
- };
7752
- const getExplorerItemVirtualDom = (item, editingSessionId = 0) => {
7785
+ const renameDirent = async state => {
7753
7786
  const {
7754
- ariaExpanded,
7755
- chevron,
7756
- className,
7757
- depth,
7758
- hasEditingError,
7759
- icon,
7760
- id,
7761
- indent,
7762
- index,
7763
- isCut,
7764
- isEditing,
7765
- isIgnored,
7766
- name,
7767
- path,
7768
- posInSet,
7769
- selected,
7770
- setSize
7771
- } = item;
7772
- const chevronDom = getChevronVirtualDom(chevron);
7773
- const fileIconDom = icon ? [getFileIconVirtualDom(icon)] : [];
7774
- return [{
7775
- ariaExpanded,
7776
- ariaLabel: name,
7777
- ariaLevel: depth,
7778
- ariaPosInSet: posInSet,
7779
- ariaSelected: selected ? 'true' : undefined,
7780
- ariaSetSize: setSize,
7781
- childCount: 2 + chevronDom.length,
7782
- className,
7783
- 'data-index': index,
7784
- draggable: true,
7785
- id,
7786
- // Keep the item aligned even when the generated indent stylesheet is applied late.
7787
- paddingLeft: indent,
7788
- role: TreeItem,
7789
- title: getTitle(path),
7790
- type: Div
7791
- }, ...chevronDom, {
7792
- childCount: fileIconDom.length,
7793
- className: FileIconSlot,
7794
- type: Div
7795
- }, ...fileIconDom, ...getInputDom(isEditing, hasEditingError, editingSessionId), ...getLabelDom(isEditing, name, isCut || isIgnored)];
7796
- };
7797
-
7798
- const getActiveDescendant = focusedIndex => {
7799
- if (focusedIndex >= 0) {
7800
- return 'TreeItemActive';
7787
+ editingSessionId,
7788
+ focusedIndex,
7789
+ icons,
7790
+ isReadonly,
7791
+ items,
7792
+ minLineY
7793
+ } = state;
7794
+ if (isReadonly) {
7795
+ return state;
7801
7796
  }
7802
- return undefined;
7803
- };
7804
- const getClassName = (focused, focusedIndex, dropTarget) => {
7805
- const extraClass1 = focused && focusedIndex === -1 ? FocusOutline : Empty;
7806
- const extraClass2 = dropTarget === dropTargetFull ? ExplorerDropTarget : Empty;
7807
- const className = mergeClassNames(ListItems, extraClass1, extraClass2);
7808
- return className;
7809
- };
7810
- const getListItemsVirtualDom = (visibleItems, focusedIndex, focused, dropTargets, editingSessionId = 0) => {
7811
- const dom = [{
7812
- ariaActiveDescendant: getActiveDescendant(focusedIndex),
7813
- ariaLabel: filesExplorer(),
7814
- childCount: visibleItems.length,
7815
- className: getClassName(focused, focusedIndex, dropTargets),
7816
- onBlur: HandleListBlur,
7817
- onClick: HandleClick,
7818
- onContextMenu: HandleContextMenu,
7819
- onDblClick: HandleDoubleClick,
7820
- onDragEnd: HandleDragEnd,
7821
- onDragLeave: HandleDragLeave,
7822
- onDragOver: HandleDragOver,
7823
- onDragStart: HandleDragStart,
7824
- onDrop: HandleDrop,
7825
- onFocus: HandleListFocus,
7826
- onPaste: HandleNativePaste,
7827
- onPointerDown: HandlePointerDown,
7828
- onPointerUp: HandlePointerUp,
7829
- onWheel: HandleWheel,
7830
- role: Tree,
7831
- tabIndex: Focusable,
7832
- type: Div
7833
- // onKeyDown: DomEventListenerFunctions.HandleListKeyDown,
7834
- }, ...visibleItems.flatMap(item => getExplorerItemVirtualDom(item, editingSessionId))];
7835
- return dom;
7836
- };
7837
-
7838
- const welcomeMessageNode = {
7839
- childCount: 1,
7840
- className: WelcomeMessage,
7841
- type: P
7842
- };
7843
- const getParentNode$1 = childCount => {
7797
+ if (items.length === 0) {
7798
+ return state;
7799
+ }
7800
+ const item = items[focusedIndex];
7801
+ const newItems = getNewDirentsForRename(items, focusedIndex);
7802
+ const {
7803
+ end,
7804
+ start
7805
+ } = getRenameSelectionRange(item.name);
7844
7806
  return {
7845
- childCount,
7846
- className: mergeClassNames(Viewlet, Explorer$1),
7847
- role: None,
7848
- type: Div
7807
+ ...state,
7808
+ editingIcon: icons[focusedIndex - minLineY],
7809
+ editingIndex: focusedIndex,
7810
+ editingSelectionEnd: end,
7811
+ editingSelectionStart: start,
7812
+ editingSessionId: editingSessionId + 1,
7813
+ editingType: Rename$1,
7814
+ editingValue: item.name,
7815
+ focus: Input$1,
7816
+ inputSource: Script,
7817
+ items: newItems
7849
7818
  };
7850
7819
  };
7851
- const getLoadErrorVirtualDom = (loadErrorMessage, isWide, showOpenAnotherFolderButton) => {
7852
- const childCount = showOpenAnotherFolderButton ? 2 : 1;
7853
- const errorDom = [{
7854
- childCount,
7855
- className: Welcome,
7856
- type: Div
7857
- }, welcomeMessageNode, text(loadErrorMessage)];
7858
- const buttonDom = showOpenAnotherFolderButton ? [{
7859
- childCount: 1,
7860
- className: mergeClassNames(Button$2, ButtonPrimary, isWide ? ButtonWide : ButtonNarrow),
7861
- name: OpenFolder,
7862
- onClick: HandleClickOpenFolder,
7863
- type: Button$1
7864
- }, text(openAnotherFolder())] : [];
7865
- const parentNode = getParentNode$1(1);
7866
- return [parentNode, ...errorDom, ...buttonDom];
7867
- };
7868
7820
 
7869
- const scrollBarThumbNode = {
7870
- childCount: 0,
7871
- className: ScrollBarThumb,
7872
- type: Div
7873
- };
7874
- const scrollBarNode = {
7875
- childCount: 1,
7876
- className: mergeClassNames(ScrollBar, ScrollBarSmall),
7877
- onPointerDown: HandleScrollBarPointerDown,
7878
- type: Div
7821
+ const getIndentRule = indent => {
7822
+ return `.Indent-${indent} {
7823
+ padding-left: ${indent}px;
7824
+ }`;
7879
7825
  };
7880
- const getScrollBarVirtualDom = scrollBarHeight => {
7881
- const shouldShowScrollbar = scrollBarHeight > 0;
7882
- if (!shouldShowScrollbar) {
7883
- return [];
7884
- }
7885
- return [scrollBarNode, scrollBarThumbNode];
7826
+
7827
+ const getCss = (scrollBarHeight, scrollBarTop, uniqueIndents, errorMessageLeft, errorMessageTop, errorMessageWidth) => {
7828
+ const rules = [`.Explorer {
7829
+ --ScrollBarThumbHeight: ${scrollBarHeight}px;
7830
+ --ScrollBarThumbTop: ${scrollBarTop}px;
7831
+ --ErrorMessageTop: ${errorMessageTop}px;
7832
+ --ErrorMessageLeft: ${errorMessageLeft}px;
7833
+ --ErrorMessageWidth: ${errorMessageWidth}px;
7834
+ }
7835
+ .Explorer .ScrollBarThumb {
7836
+ height: var(--ScrollBarThumbHeight);
7837
+ translate: 0px var(--ScrollBarThumbTop);
7838
+ }`, ...uniqueIndents.map(getIndentRule)];
7839
+ const css = rules.join('\n');
7840
+ return css;
7886
7841
  };
7887
7842
 
7888
- const getParentNode = childCount => {
7843
+ const getErrorMessagePosition = (itemHeight, focusedIndex, minLineY, depth, indent, fileIconWidth, padding, width) => {
7844
+ const top = itemHeight * (focusedIndex - minLineY + 1);
7845
+ const left = depth * indent + fileIconWidth + padding;
7846
+ const errorMessageWidth = width - left;
7889
7847
  return {
7890
- childCount,
7891
- className: mergeClassNames(Viewlet, Explorer$1),
7892
- role: None,
7893
- type: Div
7848
+ errorMessageWidth,
7849
+ left,
7850
+ top
7894
7851
  };
7895
7852
  };
7896
- const getChildCount = (scrollBarDomLength, errorDomLength) => {
7897
- let childCount = 1;
7898
- if (scrollBarDomLength > 0) {
7899
- childCount++;
7853
+
7854
+ const getScrollBarTop = (height, contentHeight, scrollTop, scrollBarHeight) => {
7855
+ const finalScrollTop = contentHeight - height;
7856
+ if (finalScrollTop <= 0 || !Number.isFinite(finalScrollTop)) {
7857
+ return 0;
7900
7858
  }
7901
- if (errorDomLength > 0) {
7902
- childCount++;
7859
+ const scrollBarTop = Math.round(scrollTop / finalScrollTop * (height - scrollBarHeight));
7860
+ if (!Number.isFinite(scrollBarTop)) {
7861
+ return 0;
7903
7862
  }
7904
- return childCount;
7863
+ return scrollBarTop;
7905
7864
  };
7906
- const getExplorerVirtualDom = (visibleItems, focusedIndex, root, isWide, focused, dropTargets, height, contentHeight, editingErrorMessage, loadErrorMessage, showOpenAnotherFolderButton, editingSessionId = 0) => {
7907
- if (!root) {
7908
- return getExplorerWelcomeVirtualDom(isWide, dropTargets);
7909
- }
7910
- if (loadErrorMessage) {
7911
- return getLoadErrorVirtualDom(loadErrorMessage, isWide, showOpenAnotherFolderButton);
7865
+
7866
+ const getUnique = items => {
7867
+ const seens = [];
7868
+ for (const item of items) {
7869
+ if (!seens.includes(item)) {
7870
+ seens.push(item);
7871
+ }
7912
7872
  }
7873
+ return seens;
7874
+ };
7875
+
7876
+ const getIndent = item => getIndentFromClassName(item.className);
7877
+ const getUniqueIndents = items => {
7878
+ const indents = items.map(getIndent);
7879
+ const uniqueIndents = getUnique(indents);
7880
+ return uniqueIndents;
7881
+ };
7882
+
7883
+ const renderCss = (oldState, newState) => {
7884
+ const {
7885
+ chevronSpace,
7886
+ defaultPaddingLeft,
7887
+ deltaY,
7888
+ fileIconWidth,
7889
+ focusedIndex,
7890
+ height,
7891
+ indent,
7892
+ itemHeight,
7893
+ items,
7894
+ minLineY,
7895
+ padding,
7896
+ uid,
7897
+ visibleExplorerItems,
7898
+ width
7899
+ } = newState;
7900
+ const uniqueIndents = getUniqueIndents(visibleExplorerItems);
7901
+ const contentHeight = items.length * itemHeight;
7913
7902
  const scrollBarHeight = getScrollBarSize(height, contentHeight, 20);
7914
- const scrollBarDom = getScrollBarVirtualDom(scrollBarHeight);
7915
- const errorDom = getErrorMessageDom(editingErrorMessage);
7916
- const childCount = getChildCount(scrollBarDom.length, errorDom.length);
7917
- const parentNode = getParentNode(childCount);
7918
- const dom = [parentNode, ...getListItemsVirtualDom(visibleItems, focusedIndex, focused, dropTargets, editingSessionId), ...scrollBarDom, ...errorDom];
7919
- return dom;
7903
+ const scrollBarTop = getScrollBarTop(height, contentHeight, deltaY, scrollBarHeight);
7904
+ const depth = items[focusedIndex]?.depth || 0;
7905
+ const {
7906
+ errorMessageWidth,
7907
+ left,
7908
+ top
7909
+ } = getErrorMessagePosition(itemHeight, focusedIndex, minLineY, depth, indent, fileIconWidth, padding + defaultPaddingLeft + chevronSpace, width);
7910
+ const css = getCss(scrollBarHeight, scrollBarTop, uniqueIndents, left, top, errorMessageWidth);
7911
+ return [SetCss, uid, css];
7920
7912
  };
7921
7913
 
7922
- const RE_SENTENCE_END = /[.!?]$/;
7923
- const getMissingFolderMessage = root => {
7924
- if (root) {
7925
- return `Could not open "${root}" because the folder does not exist. It may have been moved or deleted.`;
7914
+ const getDragLabel = urls => {
7915
+ if (urls.length === 1) {
7916
+ return getBaseName('/', urls[0]);
7926
7917
  }
7927
- return 'Could not open folder because the folder does not exist. It may have been moved or deleted.';
7918
+ return String(urls.length);
7928
7919
  };
7929
- const toSentence = message => {
7930
- const normalized = `${message[0].toUpperCase()}${message.slice(1)}`;
7931
- return RE_SENTENCE_END.test(normalized) ? normalized : `${normalized}.`;
7920
+
7921
+ const getDragData = items => {
7922
+ const data = items.map(getDragUri).join('\n');
7923
+ const dragData = [{
7924
+ data,
7925
+ type: 'text/uri-list'
7926
+ }, {
7927
+ data,
7928
+ type: 'text/plain'
7929
+ }];
7930
+ return {
7931
+ items: dragData,
7932
+ label: getDragLabel(items.map(item => item.path))
7933
+ };
7932
7934
  };
7933
- const getLoadErrorMessage = state => {
7935
+
7936
+ const renderDragData = (oldState, newState) => {
7934
7937
  const {
7935
- errorCode,
7936
- errorMessage,
7937
- hasError,
7938
- root
7939
- } = state;
7940
- if (hasError) {
7941
- if (errorCode === 'ENOENT') {
7942
- return getMissingFolderMessage(root);
7943
- }
7944
- const reason = errorMessage || 'an unexpected error occurred';
7945
- const code = errorCode ? ` Error code: ${errorCode}.` : '';
7946
- return `Could not open folder. ${toSentence(reason)}${code}`;
7938
+ focusedIndex,
7939
+ isPointerDown,
7940
+ items,
7941
+ pointerDownIndex,
7942
+ uid
7943
+ } = newState;
7944
+ if (!isPointerDown) {
7945
+ return [];
7947
7946
  }
7948
- return '';
7947
+ const pointerDownItem = items[pointerDownIndex];
7948
+ let draggedItems;
7949
+ if (pointerDownIndex === focusedIndex || pointerDownItem?.selected) {
7950
+ draggedItems = getSelectedItems(items, focusedIndex);
7951
+ } else if (pointerDownItem) {
7952
+ draggedItems = [pointerDownItem];
7953
+ } else {
7954
+ draggedItems = [];
7955
+ }
7956
+ const dragData = getDragData(draggedItems);
7957
+ return ['Viewlet.setDragData', uid, dragData];
7949
7958
  };
7950
- const shouldShowOpenAnotherFolderButton = state => {
7959
+
7960
+ const renderEditingSelection = (oldState, newState) => {
7951
7961
  const {
7952
- errorCode,
7953
- hasError
7954
- } = state;
7955
- return hasError && errorCode === 'ENOENT';
7962
+ editingSelectionEnd,
7963
+ editingSelectionStart,
7964
+ uid
7965
+ } = newState;
7966
+ return ['Viewlet.setSelectionByName', uid, ExplorerInput, editingSelectionStart, editingSelectionEnd];
7956
7967
  };
7957
7968
 
7958
- const renderItems = (oldState, newState) => {
7969
+ const renderFocus = (oldState, newState) => {
7970
+ if (newState.inputSource === User) {
7971
+ return [];
7972
+ }
7973
+ if (newState.focus === Input$1) {
7974
+ return [FocusElementByName, newState.uid, ExplorerInput];
7975
+ }
7976
+ if (newState.focus === List) {
7977
+ return [FocusSelector, newState.uid, '.ListItems'];
7978
+ }
7979
+ // TODO
7980
+ // 1. when focused, focus the outer list element
7981
+ // 2. when focused, set focus context in renderer worker
7982
+ return [];
7983
+ };
7984
+
7985
+ const renderFocusContext = (oldState, newState) => {
7959
7986
  const {
7960
- dropTargets,
7961
- editingErrorMessage,
7962
- editingSessionId,
7963
- focused,
7964
- focusedIndex,
7965
- height,
7966
- initial,
7967
- itemHeight,
7968
- items,
7969
- root,
7970
- width
7987
+ uid
7971
7988
  } = newState;
7972
- const visibleDirents = newState.visibleExplorerItems;
7973
- const isWide = width > 450;
7974
- const contentHeight = items.length * itemHeight;
7975
- const loadErrorMessage = getLoadErrorMessage(newState);
7976
- const showOpenAnotherFolderButton = shouldShowOpenAnotherFolderButton(newState);
7977
- if (initial) {
7978
- return [SetDom2, newState.uid, []];
7989
+ if (newState.focus === Input$1) {
7990
+ return [SetFocusContext, uid, FocusExplorerEditBox];
7979
7991
  }
7980
- const dom = getExplorerVirtualDom(visibleDirents, focusedIndex, root, isWide, focused, dropTargets, height, contentHeight, editingErrorMessage, loadErrorMessage, showOpenAnotherFolderButton, editingSessionId);
7981
- return [SetDom2, newState.uid, dom];
7992
+ if (newState.focus === List) {
7993
+ return [SetFocusContext, uid, FocusExplorer];
7994
+ }
7995
+ return [];
7982
7996
  };
7983
7997
 
7984
7998
  const renderIncremental = (oldState, newState) => {
@@ -8098,7 +8112,7 @@ const getIconVirtualDom = (icon, type = Div) => {
8098
8112
  return {
8099
8113
  childCount: 0,
8100
8114
  className: mergeClassNames('MaskIcon', `MaskIcon${icon}`),
8101
- role: None,
8115
+ role: None$2,
8102
8116
  type
8103
8117
  };
8104
8118
  };
@@ -8574,12 +8588,13 @@ const commandMap = {
8574
8588
  'Explorer.focusNone': wrapListItemCommand(focusNone),
8575
8589
  'Explorer.focusPrevious': wrapListItemCommand(focusPrevious),
8576
8590
  'Explorer.getCommandIds': getCommandIds,
8591
+ 'Explorer.getComponentDom': getComponentDom,
8577
8592
  'Explorer.getComponentState': getComponentState,
8578
8593
  'Explorer.getKeyBindings': getKeyBindings,
8579
8594
  'Explorer.getMenuEntries': getMenuEntries,
8580
8595
  'Explorer.getMenuEntries2': wrapGetter(getMenuEntries2),
8581
8596
  'Explorer.getMouseActions': getMouseActions,
8582
- 'Explorer.getTitle': wrapGetter(getTitle$1),
8597
+ 'Explorer.getTitle': wrapGetter(getTitle),
8583
8598
  'Explorer.handleArrowLeft': wrapListItemCommand(handleArrowLeft),
8584
8599
  'Explorer.handleArrowRight': wrapListItemCommand(handleArrowRight),
8585
8600
  'Explorer.handleBlur': wrapListItemCommand(handleBlur),