@lvce-editor/static-server 0.40.7 → 0.40.9
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.
- package/package.json +1 -1
- package/src/parts/Files/Files.js +1845 -1829
- package/src/parts/GetResponseInfo/GetResponseInfo.js +1 -1
- package/src/parts/Headers/Headers.js +15 -15
- package/static/{d4bd205 → 8c086b8}/css/App.css +82 -82
- package/static/{d4bd205 → 8c086b8}/extensions/builtin.vscode-icons/icon-theme.json +114 -2
- package/static/8c086b8/file-icons/file_type_antlers_html.svg +1 -0
- package/static/8c086b8/file-icons/file_type_attw.svg +1 -0
- package/static/8c086b8/file-icons/file_type_capnp.svg +1 -0
- package/static/8c086b8/file-icons/file_type_craco.svg +1 -0
- package/static/8c086b8/file-icons/file_type_css.svg +1 -0
- package/static/8c086b8/file-icons/file_type_cssmap.svg +1 -0
- package/static/8c086b8/file-icons/file_type_deno.svg +1 -0
- package/static/8c086b8/file-icons/file_type_epub.svg +1 -0
- package/static/8c086b8/file-icons/file_type_flyio.svg +1 -0
- package/static/8c086b8/file-icons/file_type_humanstxt.svg +1 -0
- package/static/8c086b8/file-icons/file_type_jsr.svg +1 -0
- package/static/8c086b8/file-icons/file_type_language_configuration.svg +1 -0
- package/static/8c086b8/file-icons/file_type_light_neo4j.svg +1 -0
- package/static/8c086b8/file-icons/file_type_light_reactrouter.svg +1 -0
- package/static/8c086b8/file-icons/file_type_minecraft.svg +1 -0
- package/static/8c086b8/file-icons/file_type_neo4j.svg +1 -0
- package/static/8c086b8/file-icons/file_type_reactrouter.svg +1 -0
- package/static/8c086b8/file-icons/file_type_rolldown.svg +1 -0
- package/static/8c086b8/file-icons/folder_type_minecraft.svg +1 -0
- package/static/8c086b8/file-icons/folder_type_minecraft_opened.svg +1 -0
- package/static/{d4bd205 → 8c086b8}/manifest.json +2 -2
- package/static/{d4bd205 → 8c086b8}/packages/about-view-worker/dist/aboutWorkerMain.js +29 -7
- package/static/{d4bd205 → 8c086b8}/packages/explorer-worker/dist/explorerViewWorkerMain.js +1373 -1034
- package/static/{d4bd205 → 8c086b8}/packages/extension-host-worker/dist/extensionHostWorkerMain.js +3 -3
- package/static/{d4bd205 → 8c086b8}/packages/file-search-worker/dist/fileSearchWorkerMain.js +1563 -746
- package/static/{d4bd205 → 8c086b8}/packages/iframe-worker/dist/iframeWorkerMain.js +657 -703
- package/static/{d4bd205 → 8c086b8}/packages/renderer-process/dist/rendererProcessMain.js +20 -18
- package/static/{d4bd205 → 8c086b8}/packages/renderer-process/package.json +1 -1
- package/static/{d4bd205 → 8c086b8}/packages/renderer-worker/dist/rendererWorkerMain.js +708 -892
- package/static/{d4bd205 → 8c086b8}/packages/test-worker/dist/testWorkerMain.js +767 -731
- package/static/{d4bd205 → 8c086b8}/packages/text-search-worker/dist/textSearchWorkerMain.js +660 -710
- package/static/index.html +4 -4
- package/static/d4bd205/file-icons/file_type_css.svg +0 -1
- package/static/d4bd205/file-icons/file_type_cssmap.svg +0 -1
- package/static/d4bd205/file-icons/file_type_deno.svg +0 -1
- package/static/d4bd205/js/js-base64.js +0 -296
- /package/static/{d4bd205 → 8c086b8}/config/colorTheme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/config/defaultSettings.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/config/fileMap.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/config/webExtensions.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/Animation.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/DebugButtons.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/DebugValue.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/E2eTest.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/E2eTests.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/EditorHover.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/EditorMessage.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ImagePreview.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/InlineDiffEditor.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/Key.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/KeyBindingsHeader.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/KeyBindingsTable.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/Markdown.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/Progress.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/SearchToggleButton.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/Select.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletAbout.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletBrowserViewOverview.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletDebugConsole.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletDefineKeyBinding.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletDialog.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletDiffEditor.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletEditorWidgetError.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletExtensionDetail.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletExtensions.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletKeyBindings.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletMedia.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletOutput.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletPanel.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletPanelTabs.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletPdf.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletProblems.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletReferences.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletRunAndDebug.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletScreenCapture.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletSearch.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletSimpleBrowser.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletSourceControl.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletStorage.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletTerminal.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/css/parts/ViewletTerminalTabs.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-bat/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-bat/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-c/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-c/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-coffeescript/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-coffeescript/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-cpp/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-cpp/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-cson/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-cson/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-css/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-css/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-css/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-dart/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-dart/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-desktop/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-desktop/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-docker/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-docker/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-dotenv/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-dotenv/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-editorconfig/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-editorconfig/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-elixir/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-elixir/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-elm/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-elm/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-gitattributes/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-gitattributes/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-gn/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-gn/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-go/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-go/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-graphql/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-graphql/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-html/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-html/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-html/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-java/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-java/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-java/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-javascript/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-javascript/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-json/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-json/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-json5/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-json5/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-jsx/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-jsx/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-julia/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-julia/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-kotlin/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-kotlin/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-less/LICENSE +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-less/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-less/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-less/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-markdown/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-markdown/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-mdx/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-mdx/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-nix/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-nix/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-nvmrc/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-nvmrc/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-perl/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-perl/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-plaintext/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-plaintext/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-powershell/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-powershell/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-python/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-python/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-python/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-r/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-r/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-ruby/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-ruby/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-rust/LICENSE +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-rust/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-rust/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-scss/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-scss/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-shellscript/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-shellscript/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-svelte/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-svelte/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-terraform/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-terraform/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-toml/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-toml/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-typescript/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-typescript/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-vue/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-vue/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-wgsl/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-wgsl/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-xml/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-xml/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-yaml/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-yaml/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-atom-one-dark/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-atom-one-dark/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-ayu/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-ayu/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-ayu/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-cobalt2/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-cobalt2/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-cobalt2/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-gruvbox/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-gruvbox/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-gruvbox/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-high-contrast/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-high-contrast/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-high-contrast/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-material/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-material/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-material/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-monokai/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-monokai/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-monokai/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-noctis-uva/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-noctis-uva/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-noctis-uva/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-palenight/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-palenight/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-palenight/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-palenight/images/demo.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-slime/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-slime/color-theme.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-slime/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.theme-slime/icon.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.vscode-icons/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.vscode-icons/extension.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/extensions/builtin.vscode-icons/icon.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/default_file.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/default_folder.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/default_folder_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/default_root_folder.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/default_root_folder_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_access.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_access2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_actionscript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_actionscript2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ada.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_advpl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_affectscript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_affinitydesigner.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_affinityphoto.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_affinitypublisher.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ai.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ai2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_al.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_al_dal.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_allcontributors.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_angular.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ansible.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_antlr.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_anyscript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_apache.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_apex.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_api_extractor.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_apib.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_apib2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_apl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_applescript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_appscript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_appsemble.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_appveyor.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_arduino.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_asciidoc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_asp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_aspx.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_assembly.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_astro.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_astroconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_atom.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ats.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_audio.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_aurelia.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_autohotkey.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_autoit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_avif.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_avro.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_awk.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_aws.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_azure.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_azurepipelines.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_babel.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_babel2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ballerina.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bat.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bats.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bazaar.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bazel.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bazel_ignore.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bazel_version.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_befunge.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bicep.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_biml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_binary.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_biome.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bitbucketpipeline.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bithound.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_blade.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_blitzbasic.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bolt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bosque.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bower.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bower2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_browserslist.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bruno.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_buckbuild.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_buf.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bun.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bundlemon.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bundler.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_bunfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_c.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_c2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_c3.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_c_al.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cabal.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_caddy.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cake.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cakephp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_capacitor.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cargo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_casc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cddl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cert.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ceylon.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cf.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cf2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cfc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cfc2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cfm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cfm2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cheader.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_chef.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_chef_cookbook.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_circleci.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_class.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_clojure.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_clojurescript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cloudfoundry.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cmake.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cobol.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_codacy.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_codeclimate.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_codecov.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_codekit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_codeowners.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_codeql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_coderabbit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_coffeelint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_coffeescript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_commitizen.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_commitlint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_compass.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_composer.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_conan.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_conda.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_config.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_confluence.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_coverage.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_coveralls.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cpp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cpp2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cpp3.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cppheader.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_crowdin.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_crystal.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_csharp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_csharp2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cspell.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_csproj.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_csscomb.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_csslint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cucumber.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cuda.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cvs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cypress.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cypress_spec.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_cython.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dal.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_darcs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dartlang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dartlang_generated.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dartlang_ignore.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_datadog.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_db.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_debian.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_delphi.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_denoify.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dependabot.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dependencies.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_devcontainer.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dhall.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_diff.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_django.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dlang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_docker.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_docker2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dockertest.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dockertest2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_docpad.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_docz.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dojo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_doppler.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dotenv.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dotjs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_doxygen.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_drawio.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_drone.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_drools.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dtd.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dustjs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dvc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_dylan.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_earthly.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_eas-metadata.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_edge.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_edge2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_editorconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_eex.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ejs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_elastic.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_elasticbeanstalk.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_eleventy.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_eleventy2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_elixir.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_elm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_elm2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_emacs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ember.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ensime.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_eps.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_erb.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_erlang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_erlang2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_esbuild.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_eslint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_eslint2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_esphome.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_excalidraw.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_excel.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_excel2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_expo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_falcon.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fantasticon.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fauna.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_favicon.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fbx.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_firebase.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_firebasehosting.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_firestore.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fitbit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fla.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_flareact.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_flash.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_floobits.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_flow.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_flutter.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_flutter_package.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_font.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_formkit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fortran.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fossa.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fossil.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_freemarker.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_frontcommerce.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fsharp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fsharp2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fsproj.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fthtml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_funding.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_fusebox.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_galen.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_galen2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gamemaker.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gamemaker2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gamemaker81.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gatsby.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gcloud.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gcode.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gdscript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_genstat.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_git.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_git2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gitlab.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gitpod.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gleam.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gleamconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_glide.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_glitter.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_glsl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_glyphs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gnu.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gnuplot.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go_aqua.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go_black.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go_fuchsia.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go_gopher.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go_lightblue.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go_package.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go_white.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go_work.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_go_yellow.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_goctl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_godot.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gpg.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gradle.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gradle2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_grain.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_graphql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_graphql_config.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_graphviz.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_greenkeeper.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gridsome.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_groovy.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_groovy2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_grunt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_gulp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_haml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_handlebars.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_handlebars2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_harbour.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_hardhat.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_hashicorp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_haskell.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_haskell2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_haxe.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_haxecheckstyle.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_haxedevelop.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_helix.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_helm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_hjson.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_hlsl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_homeassistant.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_horusec.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_host.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_html.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_htmlhint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_htmlvalidate.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_http.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_hunspell.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_husky.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_hy.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_hygen.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_hypr.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_icl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_idris.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_idrisbin.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_idrispkg.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_image.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_imba.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_inc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_infopath.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_informix.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ini.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ink.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_innosetup.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_io.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_iodine.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ionic.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jake.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_janet.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jar.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jasmine.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_java.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jbuilder.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jekyll.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jenkins.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jest.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jest_snapshot.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jinja.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jpm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_js_official.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jsbeautify.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jsconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jscpd.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jshint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jsmap.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_json.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_json2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_json5.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_json_official.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_json_schema.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jsonld.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jsonnet.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jsp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_juice.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_julia.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_julia2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_jupyter.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_k.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_karma.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_key.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_kitchenci.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_kite.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_kivy.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_knip.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_kos.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_kotlin.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_kusto.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_latino.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_layout.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lerna.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_less.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lex.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_liara.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_libreoffice_base.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_libreoffice_calc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_libreoffice_draw.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_libreoffice_impress.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_libreoffice_math.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_libreoffice_writer.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_license.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_licensebat.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_actionscript2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_ada.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_apl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_astro.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_astroconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_babel.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_babel2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_cabal.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_circleci.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_cloudfoundry.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_codacy.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_codeclimate.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_codeowners.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_config.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_crystal.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_cypress.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_cypress_spec.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_db.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_deno.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_dhall.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_docpad.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_drone.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_eas-metadata.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_eleventy.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_eleventy2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_esphome.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_expo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_firebasehosting.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_fla.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_font.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_gamemaker2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_gradle.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_hashicorp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_hjson.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_ini.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_io.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_jsconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_jsmap.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_json.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_json5.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_json_schema.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_jsonld.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_kite.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_lerna.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_mailing.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_mdx-components.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_mdx.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_mlang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_mustache.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_netlify.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_next.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_nim.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_nx.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_objidconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_openHAB.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_pcl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_pnpm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_prettier.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_prisma.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_purescript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_quasar.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_raku.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_razzle.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_rehype.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_remark.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_replit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_retext.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_rome.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_rubocop.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_rust.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_rust_toolchain.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_safetensors.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_shaderlab.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_solidity.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_spin.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_stylelint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_stylus.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_symfony.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_systemd.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_systemverilog.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_testcafe.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_testjs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_tex.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_tm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_tmux.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_todo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_toit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_toml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_tree.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_turbo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_unibeautify.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_vash.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_vercel.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_vsix.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_vsixmanifest.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_xfl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_xorg.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_yaml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_light_zeit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lighthouse.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lilypond.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lime.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lintstagedrc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_liquid.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lisp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_livescript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lnk.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_locale.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_log.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lolcode.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lsl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lua.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_luau.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_lync.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mailing.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_makefile.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_manifest.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_manifest_bak.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_manifest_skip.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_map.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mariadb.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_markdown.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_markdownlint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_markdownlint_ignore.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_marko.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_markojs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_master-co.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_matlab.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_maven.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_maxscript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_maya.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mdx-components.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mdx.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mediawiki.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mercurial.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mermaid.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_meson.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_meteor.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mivascript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mjml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mlang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mocha.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_modernizr.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mojo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mojolicious.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_moleculer.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mondoo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mongo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_monotone.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_motif.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mson.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mustache.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mvt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mvtcss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mvtjs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_mysql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ndst.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nearly.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_adapter_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_adapter_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_controller_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_controller_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_decorator_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_decorator_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_filter_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_filter_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_gateway_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_gateway_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_guard_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_guard_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_interceptor_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_interceptor_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_middleware_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_middleware_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_module_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_module_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_pipe_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_pipe_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_service_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nest_service_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nestjs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_netlify.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_next.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nextflow.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_css.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_dart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_html.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_js2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_less.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_sass.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_scss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_component_ts2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_controller_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_controller_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_directive_dart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_directive_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_directive_js2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_directive_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_directive_ts2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_guard_dart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_guard_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_guard_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_interceptor_dart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_interceptor_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_interceptor_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_module_dart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_module_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_module_js2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_module_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_module_ts2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_pipe_dart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_pipe_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_pipe_js2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_pipe_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_pipe_ts2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_routing_dart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_routing_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_routing_js2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_routing_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_routing_ts2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_service_dart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_service_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_service_js2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_service_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_service_ts2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_smart_component_dart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_smart_component_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_smart_component_js2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_smart_component_ts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_smart_component_ts2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ng_tailwind.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nginx.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nim.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nimble.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ninja.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nix.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_njsproj.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_noc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_node.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_node2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nodemon.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_npm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nsi.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nsri-integrity.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nsri.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nuget.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_numpy.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nunjucks.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nuxt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nx.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_nyc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_objectivec.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_objectivecpp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_objidconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ocaml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ocaml_intf.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ogone.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_onenote.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_openHAB.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_opencl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_openscad.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_org.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_outlook.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ovpn.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_package.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_paket.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pandacss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_patch.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pcl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pddl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pddl_happenings.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pddl_plan.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pdf.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pdf2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pdm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_peeky.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_perl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_perl2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_perl6.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pgsql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_photoshop.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_photoshop2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_php.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_php2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_php3.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_phpcsfixer.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_phpstan.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_phpunit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_phraseapp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pine.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pip.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pipeline.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_plantuml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_platformio.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_playwright.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_plsql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_plsql_package.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_plsql_package_body.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_plsql_package_header.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_plsql_package_spec.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pm2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pnpm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_poedit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_poetry.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_polymer.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pony.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_postcss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_postcssconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_postman.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powerpoint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powerpoint2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powershell.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powershell2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powershell_format.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powershell_psd.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powershell_psd2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powershell_psm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powershell_psm2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_powershell_types.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_preact.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_precommit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_prettier.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_prisma.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_processinglang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_procfile.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_progress.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_prolog.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_prometheus.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_protobuf.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_protractor.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_publiccode.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_publisher.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pug.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pulumi.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_puppet.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_purescript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pyenv.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pyret.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pyscript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_python.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pythowo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pytyped.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_pyup.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_q.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_qbs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_qlikview.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_qml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_qmldir.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_qsharp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_quasar.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_r.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ra_syntax_tree.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_racket.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rails.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rake.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_raku.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_raml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_razor.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_razzle.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_reactjs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_reacttemplate.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_reactts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_reason.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_red.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_registry.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rego.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rehype.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_remark.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_renovate.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_replit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rescript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rest.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_retext.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rexx.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_riot.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rmd.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rnc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_robotframework.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_robots.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rollup.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rome.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ron.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rproj.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rspec.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rubocop.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ruby.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rust.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_rust_toolchain.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_s-lang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_safetensors.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sails.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_saltstack.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_san.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sapphire_framework_cli.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sas.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sass.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sbt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_scala.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_scilab.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_script.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_scss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_scss2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sdlang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_search_result.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sentry.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sequelize.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_serverless.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_shaderlab.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_shell.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_shellcheck.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_shuttle.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_silverstripe.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sino.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_siyuan.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sketch.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_skipper.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_slang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_slashup.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_slice.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_slim.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_slint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sln.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sln2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_smarty.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_snakemake.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_snapcraft.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_snaplet.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_snort.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_snyk.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_solidarity.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_solidity.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_source.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_spacengine.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sparql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_spin.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sqf.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sqlite.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_squirrel.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sst.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_stan.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_stata.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_stencil.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_storyboard.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_storybook.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_stryker.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_stylable.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_style.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_styled.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_stylelint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_stylish_haskell.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_stylus.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_sublime.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_subversion.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_svelte.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_svelteconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_svg.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_svgo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_swagger.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_swc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_swift.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_swig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_symfony.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_systemd.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_systemverilog.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_t4tt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tailwind.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tamagui.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_taskfile.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tauri.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tcl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_teal.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_templ.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tera.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_terraform.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_test.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_testcafe.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_testjs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_testplane.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_testts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tex.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_text.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_textile.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tfs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tiltfile.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tmux.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_todo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_toit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_toml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tox.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_travis.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tree.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tres.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_truffle.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_trunk.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tsbuildinfo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tscn.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tsconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tsconfig_official.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tslint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_ttcn.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_tuc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_turbo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_twig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_typedoc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_typescript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_typescript_official.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_typescriptdef.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_typescriptdef_official.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_typo3.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_uiua.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_unibeautify.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_unison.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_unlicense.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_unocss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vagrant.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vala.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vanilla_extract.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vapi.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vapor.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vash.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vb.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vba.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vbhtml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vbproj.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vcxproj.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_velocity.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vento.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vercel.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_verilog.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vhdl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_video.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_view.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vim.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vite.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vitest.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vlang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_volt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vscode-insiders.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vscode.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vscode2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vscode3.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vscode_test.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vsix.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vsixmanifest.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vue.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vueconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_vyper.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wallaby.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wally.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wasm.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_watchmanconfig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wdio.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_webpack.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wenyan.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wercker.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wgsl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wikitext.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_windi.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wolfram.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_word.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_word2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wpml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wurst.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wxml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wxss.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_wxt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xcode.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xfl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xib.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xliff.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xmake.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xorg.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xquery.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_xsl.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_yacc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_yaml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_yamllint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_yandex.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_yang.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_yarn.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_yeoman.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_zeit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_zig.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_zip.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/file_type_zip2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_android.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_android_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_api.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_api_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_app.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_app_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_arangodb.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_arangodb_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_asset.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_asset_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_audio.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_audio_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_aurelia.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_aurelia_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_aws.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_aws_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_azure.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_azure_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_azurepipelines.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_azurepipelines_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_binary.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_binary_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_bloc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_bloc_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_blueprint.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_blueprint_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_bot.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_bot_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_bower.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_bower_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_buildkite.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_buildkite_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cake.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cake_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_certificate.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_certificate_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_changesets.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_changesets_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_chef.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_chef_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_circleci.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_circleci_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cli.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cli_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_client.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_client_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cmake.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cmake_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_common.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_common_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_component.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_component_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_composer.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_composer_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_config.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_config_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_controller.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_controller_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_coverage.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_coverage_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_css.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_css_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cubit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cubit_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cypress.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_cypress_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_dapr.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_dapr_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_datadog.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_datadog_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_db.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_db_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_debian.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_debian_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_dependabot.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_dependabot_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_devcontainer.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_devcontainer_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_dist.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_dist_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_docker.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_docker_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_docs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_docs_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_e2e.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_e2e_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_elasticbeanstalk.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_elasticbeanstalk_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_electron.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_electron_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_expo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_expo_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_favicon.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_favicon_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_flow.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_flow_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_fonts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_fonts_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_frontcommerce.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_frontcommerce_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_gcp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_gcp_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_git.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_git_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_github.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_github_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_gitlab.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_gitlab_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_gradle.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_gradle_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_graphql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_graphql_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_grunt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_grunt_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_gulp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_gulp_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_haxelib.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_haxelib_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_helper.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_helper_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_hook.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_hook_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_husky.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_husky_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_idea.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_idea_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_images.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_images_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_include.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_include_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_interfaces.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_interfaces_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_ios.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_ios_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_js.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_js_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_json.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_json_official.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_json_official_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_json_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_kubernetes.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_kubernetes_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_less.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_less_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_library.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_library_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_cypress.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_cypress_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_electron.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_electron_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_expo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_expo_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_fonts.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_fonts_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_gradle.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_gradle_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_meteor.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_meteor_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_mysql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_mysql_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_node.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_node_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_redux.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_redux_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_sass.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_light_sass_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_linux.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_linux_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_locale.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_locale_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_log.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_log_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_macos.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_macos_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mariadb.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mariadb_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_maven.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_maven_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mediawiki.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mediawiki_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_memcached.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_memcached_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_meteor.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_meteor_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_middleware.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_middleware_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_minikube.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_minikube_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mjml.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mjml_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mock.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mock_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_model.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_model_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_module.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_module_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mojo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mojo_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mongodb.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mongodb_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mysql.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_mysql_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_next.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_next_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_nginx.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_nginx_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_nix.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_nix_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_node.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_node_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_notebooks.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_notebooks_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_notification.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_notification_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_nuget.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_nuget_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_nuxt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_nuxt_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_package.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_package_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_paket.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_paket_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_php.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_php_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_platformio.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_platformio_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_plugin.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_plugin_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_prisma.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_prisma_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_private.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_private_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_public.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_public_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_python.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_python_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_ravendb.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_ravendb_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_redis.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_redis_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_redux.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_redux_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_route.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_route_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_sass.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_sass_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_script.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_script_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_server.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_server_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_services.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_services_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_shared.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_shared_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_snaplet.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_snaplet_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_spin.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_spin_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_src.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_src_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_sso.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_sso_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_story.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_story_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_style.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_style_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_supabase.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_supabase_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_svelte.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_svelte_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_tauri.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_tauri_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_temp.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_temp_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_template.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_template_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_test.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_test_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_theme.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_theme_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_tools.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_tools_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_travis.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_travis_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_trunk.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_trunk_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_turbo.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_turbo_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_typescript.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_typescript_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_typings.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_typings2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_typings2_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_typings_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vagrant.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vagrant_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vercel.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vercel_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_video.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_video_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_view.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_view_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vs.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vs2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vs2_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vs_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode2_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode3.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode3_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode_test.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode_test2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode_test2_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode_test3.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode_test3_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_vscode_test_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_webpack.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_webpack_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_windows.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_windows_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_wit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_wit_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_www.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_www_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_yarn.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/file-icons/folder_type_yarn_opened.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/fonts/FiraCode-VariableFont.ttf +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/add.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/arrow-down.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/arrow-left.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/arrow-right.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/arrow-up.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/blank.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/book.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/case-sensitive.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/check.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/chevron-down.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/chevron-left.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/chevron-right.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/chevron-up.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/chrome-close.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/chrome-maximize.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/chrome-minimize.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/chrome-restore.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/circle-filled.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/clear-all.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/close.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/cloud.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/collapse-all.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-all.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-alt-2.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-alt-small.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-alt.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-breakpoint-conditional-unverified.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-breakpoint-conditional.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-breakpoint-data-unverified.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-breakpoint-data.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-breakpoint-function-unverified.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-breakpoint-function.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-breakpoint-log-unverified.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-breakpoint-log.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-breakpoint-unsupported.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-console.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-continue-small.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-continue.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-coverage.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-disconnect.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-line-by-line.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-pause.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-rerun.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-restart-frame.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-restart.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-reverse-continue.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-stackframe-active.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-stackframe.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-start.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-step-back.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-step-into.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-step-out.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-step-over.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug-stop.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/debug.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/discard.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/edit.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/ellipsis.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/error.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/exclude.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/extensionDefaultIcon.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/extensions.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/files.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/filter.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/go-to-file.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/icon-close.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/icon-source-control.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/icon-sync.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/icon.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/icon.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/info.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/language-icon.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/link-external.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/list-flat.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/list-tree.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/new-file.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/new-folder.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/newline.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/open-preview.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/play.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/preserve-case.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/progress.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/pwa-icon-192.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/pwa-icon-512.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/record-keys.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/refresh.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/regex.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/remove.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/replace-all.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/replace.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/run-all.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/search.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/settings-gear.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/source-control.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/split-horizontal.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/squiggly-error.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/squiggly-warning.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-array.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-boolean.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-class.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-color.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-constant.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-enum-member.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-enum.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-event.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-field.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-file.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-interface.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-key.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-keyword.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-method.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-misc.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-namespace.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-numeric.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-operator.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-parameter.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-property.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-ruler.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-snippet.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-string.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-structure.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/symbol-variable.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/tag.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/terminal-bash.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/terminal.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/theme-icon.png +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/trash.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/triangle-down.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/triangle-left.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/triangle-right.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/triangle-up.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/warning.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/whole-word.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/zoom-in.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/icons/zoom-out.svg +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/babel-parser.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/blob-util.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/ky.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/lvce-editor-import-script.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/lvce-editor-ipc.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/lvce-editor-json-rpc.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/lvce-editor-verror.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/p-min-delay.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/pretty-bytes.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/preview-injected.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/js/yoctodelay.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/lib-css/termterm.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/diff-worker/dist/diffWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/editor-worker/dist/editorWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/dist/embedsWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/dist/embedsWorkerMain.js.map +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/embedsWorkerMain.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/Assert/Assert.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/AssertionError/AssertionError.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/Callback/Callback.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/Command/Command.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/CommandMap/CommandMap.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/CommandState/CommandState.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/ElectronWebContentsView/ElectronWebContentsView.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/EmbedsProcess/EmbedsProcess.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/Exit/Exit.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/GetPortTuple/GetPortTuple.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/HandleIpc/HandleIpc.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/IpcChild/IpcChild.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/IpcChildModule/IpcChildModule.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/IpcChildType/IpcChildType.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/IpcId/IpcId.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/IpcParent/IpcParent.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/IpcParentWithElectronMessagePort/IpcParentWithElectronMessagePort.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/IpcState/IpcState.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/JsonRpc/JsonRpc.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/LaunchEmbedsProcessIpc/LaunchEmbedsProcessIpc.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/Listen/Listen.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/LoadErrorCode/LoadErrorCode.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/Main/Main.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/ProcessName/ProcessName.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/embeds-worker/src/parts/Rpc/Rpc.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-detail-view-worker/dist/extensionDetailViewWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js.map +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/extensionHostSubWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/Ajax/Ajax.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/Assert/Assert.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/AssetDir/AssetDir.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/Callback/Callback.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/Character/Character.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/CleanImportError/CleanImportError.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/CodeFrameColumns/CodeFrameColumns.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/Command/Command.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/CommandMap/CommandMap.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/CommandState/CommandState.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/ErrorType/ErrorType.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/GetData/GetData.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/GetErrorConstructor/GetErrorConstructor.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/GetErrorResponse/GetErrorResponse.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/GetModulesErrorStack/GetModulesErrorStack.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/GetNewLineIndex/GetNewLineIndex.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/GetResponse/GetResponse.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/GetSuccessResponse/GetSuccessResponse.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/HandleIpc/HandleIpc.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/HandleJsonRpcMessage/HandleJsonRpcMessage.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/Id/Id.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/ImportScript/ImportScript.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/IpcChild/IpcChild.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/IpcChildModule/IpcChildModule.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/IpcChildType/IpcChildType.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/IpcChildWithMessagePort/IpcChildWithMessagePort.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/IpcChildWithModuleWorker/IpcChildWithModuleWorker.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/IpcChildWithModuleWorkerAndMessagePort/IpcChildWithModuleWorkerAndMessagePort.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/IpcError/IpcError.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/JoinLines/JoinLines.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/JsonRpc/JsonRpc.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/JsonRpcError/JsonRpcError.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/JsonRpcErrorCode/JsonRpcErrorCode.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/JsonRpcEvent/JsonRpcEvent.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/JsonRpcRequest/JsonRpcRequest.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/JsonRpcVersion/JsonRpcVersion.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/Listen/Listen.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/LoadFile/LoadFile.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/LoadKy/LoadKy.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/Main/Main.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/MergeStacks/MergeStacks.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/NormalizeErrorLine/NormalizeErrorLine.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/Platform/Platform.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/PlatformType/PlatformType.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/PrettyError/PrettyError.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/PrintPrettyError/PrintPrettyError.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/ProcessName/ProcessName.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/RestoreJsonRpcError/RestoreJsonRpcError.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/SplitLines/SplitLines.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/UnwrapJsonRpcResult/UnwrapJsonRpcResult.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/VError/VError.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-host-sub-worker/src/parts/WaitForFirstMessage/WaitForFirstMessage.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/renderer-process/LICENSE +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/renderer-process/README.md +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/packages/terminal-worker/dist/terminalWorkerMain.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.cpp +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.css +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.csv +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.dart +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.env +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.ex +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.html +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.java +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.jl +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.js +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.kt +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.pl +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.py +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/index.ts +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/scrolling.txt +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/languages/tsconfig.json +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/sample-folder/a.txt +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/sample-folder/b.txt +0 -0
- /package/static/{d4bd205 → 8c086b8}/playground/sample-folder/c.txt +0 -0
|
@@ -1,390 +1,112 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
jsonrpc: Two,
|
|
5
|
-
method,
|
|
6
|
-
params
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
const state$1 = {
|
|
10
|
-
callbacks: Object.create(null)
|
|
11
|
-
};
|
|
12
|
-
const set = (id, fn) => {
|
|
13
|
-
state$1.callbacks[id] = fn;
|
|
14
|
-
};
|
|
15
|
-
const get = id => {
|
|
16
|
-
return state$1.callbacks[id];
|
|
17
|
-
};
|
|
18
|
-
const remove$1 = id => {
|
|
19
|
-
delete state$1.callbacks[id];
|
|
20
|
-
};
|
|
21
|
-
let id = 0;
|
|
22
|
-
const create$3 = () => {
|
|
23
|
-
return ++id;
|
|
24
|
-
};
|
|
25
|
-
const warn = (...args) => {
|
|
26
|
-
console.warn(...args);
|
|
27
|
-
};
|
|
28
|
-
const registerPromise = () => {
|
|
29
|
-
const id = create$3();
|
|
30
|
-
const {
|
|
31
|
-
resolve,
|
|
32
|
-
promise
|
|
33
|
-
} = Promise.withResolvers();
|
|
34
|
-
set(id, resolve);
|
|
35
|
-
return {
|
|
36
|
-
id,
|
|
37
|
-
promise
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
const resolve = (id, response) => {
|
|
41
|
-
const fn = get(id);
|
|
42
|
-
if (!fn) {
|
|
43
|
-
console.log(response);
|
|
44
|
-
warn(`callback ${id} may already be disposed`);
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
fn(response);
|
|
48
|
-
remove$1(id);
|
|
49
|
-
};
|
|
50
|
-
const create$2 = (method, params) => {
|
|
51
|
-
const {
|
|
52
|
-
id,
|
|
53
|
-
promise
|
|
54
|
-
} = registerPromise();
|
|
55
|
-
const message = {
|
|
56
|
-
jsonrpc: Two,
|
|
57
|
-
method,
|
|
58
|
-
params,
|
|
59
|
-
id
|
|
60
|
-
};
|
|
61
|
-
return {
|
|
62
|
-
message,
|
|
63
|
-
promise
|
|
64
|
-
};
|
|
65
|
-
};
|
|
66
|
-
class JsonRpcError extends Error {
|
|
67
|
-
constructor(message) {
|
|
68
|
-
super(message);
|
|
69
|
-
this.name = 'JsonRpcError';
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const NewLine$3 = '\n';
|
|
73
|
-
const DomException = 'DOMException';
|
|
74
|
-
const ReferenceError$1 = 'ReferenceError';
|
|
75
|
-
const SyntaxError$1 = 'SyntaxError';
|
|
76
|
-
const TypeError$1 = 'TypeError';
|
|
77
|
-
const getErrorConstructor = (message, type) => {
|
|
78
|
-
if (type) {
|
|
79
|
-
switch (type) {
|
|
80
|
-
case DomException:
|
|
81
|
-
return DOMException;
|
|
82
|
-
case TypeError$1:
|
|
83
|
-
return TypeError;
|
|
84
|
-
case SyntaxError$1:
|
|
85
|
-
return SyntaxError;
|
|
86
|
-
case ReferenceError$1:
|
|
87
|
-
return ReferenceError;
|
|
88
|
-
default:
|
|
89
|
-
return Error;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
if (message.startsWith('TypeError: ')) {
|
|
93
|
-
return TypeError;
|
|
94
|
-
}
|
|
95
|
-
if (message.startsWith('SyntaxError: ')) {
|
|
96
|
-
return SyntaxError;
|
|
97
|
-
}
|
|
98
|
-
if (message.startsWith('ReferenceError: ')) {
|
|
99
|
-
return ReferenceError;
|
|
100
|
-
}
|
|
101
|
-
return Error;
|
|
102
|
-
};
|
|
103
|
-
const constructError = (message, type, name) => {
|
|
104
|
-
const ErrorConstructor = getErrorConstructor(message, type);
|
|
105
|
-
if (ErrorConstructor === DOMException && name) {
|
|
106
|
-
return new ErrorConstructor(message, name);
|
|
1
|
+
const normalizeLine = line => {
|
|
2
|
+
if (line.startsWith('Error: ')) {
|
|
3
|
+
return line.slice('Error: '.length);
|
|
107
4
|
}
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
if (name && name !== 'VError') {
|
|
111
|
-
error.name = name;
|
|
112
|
-
}
|
|
113
|
-
return error;
|
|
5
|
+
if (line.startsWith('VError: ')) {
|
|
6
|
+
return line.slice('VError: '.length);
|
|
114
7
|
}
|
|
115
|
-
return
|
|
116
|
-
};
|
|
117
|
-
const getNewLineIndex$2 = (string, startIndex = undefined) => {
|
|
118
|
-
return string.indexOf(NewLine$3, startIndex);
|
|
8
|
+
return line;
|
|
119
9
|
};
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
if (
|
|
123
|
-
|
|
10
|
+
const getCombinedMessage = (error, message) => {
|
|
11
|
+
const stringifiedError = normalizeLine(`${error}`);
|
|
12
|
+
if (message) {
|
|
13
|
+
return `${message}: ${stringifiedError}`;
|
|
124
14
|
}
|
|
125
|
-
return
|
|
126
|
-
};
|
|
127
|
-
const joinLines$1 = lines => {
|
|
128
|
-
return lines.join(NewLine$3);
|
|
129
|
-
};
|
|
130
|
-
const MethodNotFound = -32601;
|
|
131
|
-
const Custom = -32001;
|
|
132
|
-
const splitLines$1 = lines => {
|
|
133
|
-
return lines.split(NewLine$3);
|
|
15
|
+
return stringifiedError;
|
|
134
16
|
};
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
const currentStack = joinLines$1(splitLines$1(new Error().stack || '').slice(1));
|
|
140
|
-
if (error && error.code && error.code === MethodNotFound) {
|
|
141
|
-
const restoredError = new JsonRpcError(error.message);
|
|
142
|
-
const parentStack = getParentStack(error);
|
|
143
|
-
restoredError.stack = parentStack + NewLine$3 + currentStack;
|
|
144
|
-
return restoredError;
|
|
145
|
-
}
|
|
146
|
-
if (error && error.message) {
|
|
147
|
-
const restoredError = constructError(error.message, error.type, error.name);
|
|
148
|
-
if (error.data) {
|
|
149
|
-
if (error.data.stack && error.data.type && error.message) {
|
|
150
|
-
restoredError.stack = error.data.type + ': ' + error.message + NewLine$3 + error.data.stack + NewLine$3 + currentStack;
|
|
151
|
-
} else if (error.data.stack) {
|
|
152
|
-
restoredError.stack = error.data.stack;
|
|
153
|
-
}
|
|
154
|
-
if (error.data.codeFrame) {
|
|
155
|
-
// @ts-ignore
|
|
156
|
-
restoredError.codeFrame = error.data.codeFrame;
|
|
157
|
-
}
|
|
158
|
-
if (error.data.code) {
|
|
159
|
-
// @ts-ignore
|
|
160
|
-
restoredError.code = error.data.code;
|
|
161
|
-
}
|
|
162
|
-
if (error.data.type) {
|
|
163
|
-
// @ts-ignore
|
|
164
|
-
restoredError.name = error.data.type;
|
|
165
|
-
}
|
|
166
|
-
} else {
|
|
167
|
-
if (error.stack) {
|
|
168
|
-
const lowerStack = restoredError.stack || '';
|
|
169
|
-
// @ts-ignore
|
|
170
|
-
const indexNewLine = getNewLineIndex$2(lowerStack);
|
|
171
|
-
const parentStack = getParentStack(error);
|
|
172
|
-
// @ts-ignore
|
|
173
|
-
restoredError.stack = parentStack + lowerStack.slice(indexNewLine);
|
|
174
|
-
}
|
|
175
|
-
if (error.codeFrame) {
|
|
176
|
-
// @ts-ignore
|
|
177
|
-
restoredError.codeFrame = error.codeFrame;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return restoredError;
|
|
181
|
-
}
|
|
182
|
-
if (typeof error === 'string') {
|
|
183
|
-
return new Error(`JsonRpc Error: ${error}`);
|
|
184
|
-
}
|
|
185
|
-
return new Error(`JsonRpc Error: ${error}`);
|
|
17
|
+
const NewLine$2 = '\n';
|
|
18
|
+
const getNewLineIndex$1 = (string, startIndex = undefined) => {
|
|
19
|
+
return string.indexOf(NewLine$2, startIndex);
|
|
186
20
|
};
|
|
187
|
-
const
|
|
188
|
-
if (
|
|
189
|
-
|
|
190
|
-
throw restoredError;
|
|
191
|
-
}
|
|
192
|
-
if ('result' in responseMessage) {
|
|
193
|
-
return responseMessage.result;
|
|
21
|
+
const mergeStacks = (parent, child) => {
|
|
22
|
+
if (!child) {
|
|
23
|
+
return parent;
|
|
194
24
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
if (prettyError && prettyError.type) {
|
|
200
|
-
return prettyError.type;
|
|
25
|
+
const parentNewLineIndex = getNewLineIndex$1(parent);
|
|
26
|
+
const childNewLineIndex = getNewLineIndex$1(child);
|
|
27
|
+
if (childNewLineIndex === -1) {
|
|
28
|
+
return parent;
|
|
201
29
|
}
|
|
202
|
-
|
|
203
|
-
|
|
30
|
+
const parentFirstLine = parent.slice(0, parentNewLineIndex);
|
|
31
|
+
const childRest = child.slice(childNewLineIndex);
|
|
32
|
+
const childFirstLine = normalizeLine(child.slice(0, childNewLineIndex));
|
|
33
|
+
if (parentFirstLine.includes(childFirstLine)) {
|
|
34
|
+
return parentFirstLine + childRest;
|
|
204
35
|
}
|
|
205
|
-
return
|
|
36
|
+
return child;
|
|
206
37
|
};
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
code: prettyError.code,
|
|
223
|
-
name: prettyError.name
|
|
38
|
+
class VError extends Error {
|
|
39
|
+
constructor(error, message) {
|
|
40
|
+
const combinedMessage = getCombinedMessage(error, message);
|
|
41
|
+
super(combinedMessage);
|
|
42
|
+
this.name = 'VError';
|
|
43
|
+
if (error instanceof Error) {
|
|
44
|
+
this.stack = mergeStacks(this.stack, error.stack);
|
|
45
|
+
}
|
|
46
|
+
if (error.codeFrame) {
|
|
47
|
+
// @ts-ignore
|
|
48
|
+
this.codeFrame = error.codeFrame;
|
|
49
|
+
}
|
|
50
|
+
if (error.code) {
|
|
51
|
+
// @ts-ignore
|
|
52
|
+
this.code = error.code;
|
|
224
53
|
}
|
|
225
|
-
};
|
|
226
|
-
};
|
|
227
|
-
const create$1 = (message, error) => {
|
|
228
|
-
return {
|
|
229
|
-
jsonrpc: Two,
|
|
230
|
-
id: message.id,
|
|
231
|
-
error
|
|
232
|
-
};
|
|
233
|
-
};
|
|
234
|
-
const getErrorResponse = (message, error, preparePrettyError, logError) => {
|
|
235
|
-
const prettyError = preparePrettyError(error);
|
|
236
|
-
logError(error, prettyError);
|
|
237
|
-
const errorProperty = getErrorProperty(error, prettyError);
|
|
238
|
-
return create$1(message, errorProperty);
|
|
239
|
-
};
|
|
240
|
-
const create$5 = (message, result) => {
|
|
241
|
-
return {
|
|
242
|
-
jsonrpc: Two,
|
|
243
|
-
id: message.id,
|
|
244
|
-
result: result ?? null
|
|
245
|
-
};
|
|
246
|
-
};
|
|
247
|
-
const getSuccessResponse = (message, result) => {
|
|
248
|
-
const resultProperty = result ?? null;
|
|
249
|
-
return create$5(message, resultProperty);
|
|
250
|
-
};
|
|
251
|
-
const getResponse = async (message, ipc, execute, preparePrettyError, logError, requiresSocket) => {
|
|
252
|
-
try {
|
|
253
|
-
const result = requiresSocket(message.method) ? await execute(message.method, ipc, ...message.params) : await execute(message.method, ...message.params);
|
|
254
|
-
return getSuccessResponse(message, result);
|
|
255
|
-
} catch (error) {
|
|
256
|
-
return getErrorResponse(message, error, preparePrettyError, logError);
|
|
257
54
|
}
|
|
258
|
-
}
|
|
259
|
-
const defaultPreparePrettyError = error => {
|
|
260
|
-
return error;
|
|
261
|
-
};
|
|
262
|
-
const defaultLogError = () => {
|
|
263
|
-
// ignore
|
|
264
|
-
};
|
|
265
|
-
const defaultRequiresSocket = () => {
|
|
266
|
-
return false;
|
|
267
|
-
};
|
|
268
|
-
const defaultResolve = resolve;
|
|
55
|
+
}
|
|
269
56
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
return {
|
|
275
|
-
ipc: options.ipc,
|
|
276
|
-
message: options.message,
|
|
277
|
-
execute: options.execute,
|
|
278
|
-
resolve: options.resolve || defaultResolve,
|
|
279
|
-
preparePrettyError: options.preparePrettyError || defaultPreparePrettyError,
|
|
280
|
-
logError: options.logError || defaultLogError,
|
|
281
|
-
requiresSocket: options.requiresSocket || defaultRequiresSocket
|
|
282
|
-
};
|
|
57
|
+
class AssertionError extends Error {
|
|
58
|
+
constructor(message) {
|
|
59
|
+
super(message);
|
|
60
|
+
this.name = 'AssertionError';
|
|
283
61
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
const {
|
|
297
|
-
message,
|
|
298
|
-
ipc,
|
|
299
|
-
execute,
|
|
300
|
-
resolve,
|
|
301
|
-
preparePrettyError,
|
|
302
|
-
logError,
|
|
303
|
-
requiresSocket
|
|
304
|
-
} = options;
|
|
305
|
-
if ('id' in message) {
|
|
306
|
-
if ('method' in message) {
|
|
307
|
-
const response = await getResponse(message, ipc, execute, preparePrettyError, logError, requiresSocket);
|
|
308
|
-
try {
|
|
309
|
-
ipc.send(response);
|
|
310
|
-
} catch (error) {
|
|
311
|
-
const errorResponse = getErrorResponse(message, error, preparePrettyError, logError);
|
|
312
|
-
ipc.send(errorResponse);
|
|
62
|
+
}
|
|
63
|
+
const getType = value => {
|
|
64
|
+
switch (typeof value) {
|
|
65
|
+
case 'number':
|
|
66
|
+
return 'number';
|
|
67
|
+
case 'function':
|
|
68
|
+
return 'function';
|
|
69
|
+
case 'string':
|
|
70
|
+
return 'string';
|
|
71
|
+
case 'object':
|
|
72
|
+
if (value === null) {
|
|
73
|
+
return 'null';
|
|
313
74
|
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
}
|
|
323
|
-
throw new JsonRpcError('unexpected message');
|
|
324
|
-
};
|
|
325
|
-
const invokeHelper = async (ipc, method, params, useSendAndTransfer) => {
|
|
326
|
-
const {
|
|
327
|
-
message,
|
|
328
|
-
promise
|
|
329
|
-
} = create$2(method, params);
|
|
330
|
-
if (useSendAndTransfer && ipc.sendAndTransfer) {
|
|
331
|
-
ipc.sendAndTransfer(message);
|
|
332
|
-
} else {
|
|
333
|
-
ipc.send(message);
|
|
334
|
-
}
|
|
335
|
-
const responseMessage = await promise;
|
|
336
|
-
return unwrapJsonRpcResult(responseMessage);
|
|
337
|
-
};
|
|
338
|
-
const send = (transport, method, ...params) => {
|
|
339
|
-
const message = create$4(method, params);
|
|
340
|
-
transport.send(message);
|
|
341
|
-
};
|
|
342
|
-
const invoke$1 = (ipc, method, ...params) => {
|
|
343
|
-
return invokeHelper(ipc, method, params, false);
|
|
344
|
-
};
|
|
345
|
-
const invokeAndTransfer = (ipc, method, ...params) => {
|
|
346
|
-
return invokeHelper(ipc, method, params, true);
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
const commands = Object.create(null);
|
|
350
|
-
const register = commandMap => {
|
|
351
|
-
Object.assign(commands, commandMap);
|
|
352
|
-
};
|
|
353
|
-
const getCommand = key => {
|
|
354
|
-
return commands[key];
|
|
75
|
+
if (Array.isArray(value)) {
|
|
76
|
+
return 'array';
|
|
77
|
+
}
|
|
78
|
+
return 'object';
|
|
79
|
+
case 'boolean':
|
|
80
|
+
return 'boolean';
|
|
81
|
+
default:
|
|
82
|
+
return 'unknown';
|
|
83
|
+
}
|
|
355
84
|
};
|
|
356
|
-
const
|
|
357
|
-
const
|
|
358
|
-
if (
|
|
359
|
-
throw new
|
|
85
|
+
const object = value => {
|
|
86
|
+
const type = getType(value);
|
|
87
|
+
if (type !== 'object') {
|
|
88
|
+
throw new AssertionError('expected value to be of type object');
|
|
360
89
|
}
|
|
361
|
-
return fn(...args);
|
|
362
90
|
};
|
|
363
|
-
|
|
364
|
-
const
|
|
365
|
-
|
|
91
|
+
const number = value => {
|
|
92
|
+
const type = getType(value);
|
|
93
|
+
if (type !== 'number') {
|
|
94
|
+
throw new AssertionError('expected value to be of type number');
|
|
95
|
+
}
|
|
366
96
|
};
|
|
367
|
-
const
|
|
368
|
-
const
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
}));
|
|
373
|
-
};
|
|
374
|
-
that.onMessage(handleMessage);
|
|
375
|
-
const handleClose = event => {
|
|
376
|
-
that.dispatchEvent(new Event('close'));
|
|
377
|
-
};
|
|
378
|
-
that.onClose(handleClose);
|
|
97
|
+
const array = value => {
|
|
98
|
+
const type = getType(value);
|
|
99
|
+
if (type !== 'array') {
|
|
100
|
+
throw new AssertionError('expected value to be of type array');
|
|
101
|
+
}
|
|
379
102
|
};
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
attachEvents(this);
|
|
103
|
+
const string = value => {
|
|
104
|
+
const type = getType(value);
|
|
105
|
+
if (type !== 'string') {
|
|
106
|
+
throw new AssertionError('expected value to be of type string');
|
|
385
107
|
}
|
|
386
|
-
}
|
|
387
|
-
|
|
108
|
+
};
|
|
109
|
+
|
|
388
110
|
const walkValue = (value, transferrables, isTransferrable) => {
|
|
389
111
|
if (!value) {
|
|
390
112
|
return;
|
|
@@ -435,313 +157,643 @@ const getTransferrables = value => {
|
|
|
435
157
|
walkValue(value, transferrables, isTransferrable);
|
|
436
158
|
return transferrables;
|
|
437
159
|
};
|
|
438
|
-
const
|
|
160
|
+
const attachEvents = that => {
|
|
161
|
+
const handleMessage = (...args) => {
|
|
162
|
+
const data = that.getData(...args);
|
|
163
|
+
that.dispatchEvent(new MessageEvent('message', {
|
|
164
|
+
data
|
|
165
|
+
}));
|
|
166
|
+
};
|
|
167
|
+
that.onMessage(handleMessage);
|
|
168
|
+
const handleClose = event => {
|
|
169
|
+
that.dispatchEvent(new Event('close'));
|
|
170
|
+
};
|
|
171
|
+
that.onClose(handleClose);
|
|
172
|
+
};
|
|
173
|
+
class Ipc extends EventTarget {
|
|
174
|
+
constructor(rawIpc) {
|
|
175
|
+
super();
|
|
176
|
+
this._rawIpc = rawIpc;
|
|
177
|
+
attachEvents(this);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
const E_INCOMPATIBLE_NATIVE_MODULE = 'E_INCOMPATIBLE_NATIVE_MODULE';
|
|
181
|
+
const E_MODULES_NOT_SUPPORTED_IN_ELECTRON = 'E_MODULES_NOT_SUPPORTED_IN_ELECTRON';
|
|
182
|
+
const ERR_MODULE_NOT_FOUND = 'ERR_MODULE_NOT_FOUND';
|
|
183
|
+
const NewLine$1 = '\n';
|
|
184
|
+
const joinLines$1 = lines => {
|
|
185
|
+
return lines.join(NewLine$1);
|
|
186
|
+
};
|
|
187
|
+
const splitLines$1 = lines => {
|
|
188
|
+
return lines.split(NewLine$1);
|
|
189
|
+
};
|
|
190
|
+
const isModuleNotFoundMessage = line => {
|
|
191
|
+
return line.includes('[ERR_MODULE_NOT_FOUND]');
|
|
192
|
+
};
|
|
193
|
+
const getModuleNotFoundError = stderr => {
|
|
194
|
+
const lines = splitLines$1(stderr);
|
|
195
|
+
const messageIndex = lines.findIndex(isModuleNotFoundMessage);
|
|
196
|
+
const message = lines[messageIndex];
|
|
197
|
+
return {
|
|
198
|
+
message,
|
|
199
|
+
code: ERR_MODULE_NOT_FOUND
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
const RE_NATIVE_MODULE_ERROR = /^innerError Error: Cannot find module '.*.node'/;
|
|
203
|
+
const RE_NATIVE_MODULE_ERROR_2 = /was compiled against a different Node.js version/;
|
|
204
|
+
const RE_MESSAGE_CODE_BLOCK_START = /^Error: The module '.*'$/;
|
|
205
|
+
const RE_MESSAGE_CODE_BLOCK_END = /^\s* at/;
|
|
206
|
+
const RE_AT = /^\s+at/;
|
|
207
|
+
const RE_AT_PROMISE_INDEX = /^\s*at async Promise.all \(index \d+\)$/;
|
|
208
|
+
const isUnhelpfulNativeModuleError = stderr => {
|
|
209
|
+
return RE_NATIVE_MODULE_ERROR.test(stderr) && RE_NATIVE_MODULE_ERROR_2.test(stderr);
|
|
210
|
+
};
|
|
211
|
+
const isMessageCodeBlockStartIndex = line => {
|
|
212
|
+
return RE_MESSAGE_CODE_BLOCK_START.test(line);
|
|
213
|
+
};
|
|
214
|
+
const isMessageCodeBlockEndIndex = line => {
|
|
215
|
+
return RE_MESSAGE_CODE_BLOCK_END.test(line);
|
|
216
|
+
};
|
|
217
|
+
const getMessageCodeBlock = stderr => {
|
|
218
|
+
const lines = splitLines$1(stderr);
|
|
219
|
+
const startIndex = lines.findIndex(isMessageCodeBlockStartIndex);
|
|
220
|
+
const endIndex = startIndex + lines.slice(startIndex).findIndex(isMessageCodeBlockEndIndex, startIndex);
|
|
221
|
+
const relevantLines = lines.slice(startIndex, endIndex);
|
|
222
|
+
const relevantMessage = relevantLines.join(' ').slice('Error: '.length);
|
|
223
|
+
return relevantMessage;
|
|
224
|
+
};
|
|
225
|
+
const getNativeModuleErrorMessage = stderr => {
|
|
226
|
+
const message = getMessageCodeBlock(stderr);
|
|
227
|
+
return {
|
|
228
|
+
message: `Incompatible native node module: ${message}`,
|
|
229
|
+
code: E_INCOMPATIBLE_NATIVE_MODULE
|
|
230
|
+
};
|
|
231
|
+
};
|
|
232
|
+
const isModulesSyntaxError = stderr => {
|
|
233
|
+
if (!stderr) {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
return stderr.includes('SyntaxError: Cannot use import statement outside a module');
|
|
237
|
+
};
|
|
238
|
+
const getModuleSyntaxError = () => {
|
|
239
|
+
return {
|
|
240
|
+
message: `ES Modules are not supported in electron`,
|
|
241
|
+
code: E_MODULES_NOT_SUPPORTED_IN_ELECTRON
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
const isModuleNotFoundError = stderr => {
|
|
245
|
+
if (!stderr) {
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
return stderr.includes('ERR_MODULE_NOT_FOUND');
|
|
249
|
+
};
|
|
250
|
+
const isNormalStackLine = line => {
|
|
251
|
+
return RE_AT.test(line) && !RE_AT_PROMISE_INDEX.test(line);
|
|
252
|
+
};
|
|
253
|
+
const getDetails = lines => {
|
|
254
|
+
const index = lines.findIndex(isNormalStackLine);
|
|
255
|
+
if (index === -1) {
|
|
256
|
+
return {
|
|
257
|
+
actualMessage: joinLines$1(lines),
|
|
258
|
+
rest: []
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
let lastIndex = index - 1;
|
|
262
|
+
while (++lastIndex < lines.length) {
|
|
263
|
+
if (!isNormalStackLine(lines[lastIndex])) {
|
|
264
|
+
break;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return {
|
|
268
|
+
actualMessage: lines[index - 1],
|
|
269
|
+
rest: lines.slice(index, lastIndex)
|
|
270
|
+
};
|
|
271
|
+
};
|
|
272
|
+
const getHelpfulChildProcessError = (stdout, stderr) => {
|
|
273
|
+
if (isUnhelpfulNativeModuleError(stderr)) {
|
|
274
|
+
return getNativeModuleErrorMessage(stderr);
|
|
275
|
+
}
|
|
276
|
+
if (isModulesSyntaxError(stderr)) {
|
|
277
|
+
return getModuleSyntaxError();
|
|
278
|
+
}
|
|
279
|
+
if (isModuleNotFoundError(stderr)) {
|
|
280
|
+
return getModuleNotFoundError(stderr);
|
|
281
|
+
}
|
|
282
|
+
const lines = splitLines$1(stderr);
|
|
283
|
+
const {
|
|
284
|
+
actualMessage,
|
|
285
|
+
rest
|
|
286
|
+
} = getDetails(lines);
|
|
287
|
+
return {
|
|
288
|
+
message: `${actualMessage}`,
|
|
289
|
+
code: '',
|
|
290
|
+
stack: rest
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
class IpcError extends VError {
|
|
294
|
+
// @ts-ignore
|
|
295
|
+
constructor(betterMessage, stdout = '', stderr = '') {
|
|
296
|
+
if (stdout || stderr) {
|
|
297
|
+
// @ts-ignore
|
|
298
|
+
const {
|
|
299
|
+
message,
|
|
300
|
+
code,
|
|
301
|
+
stack
|
|
302
|
+
} = getHelpfulChildProcessError(stdout, stderr);
|
|
303
|
+
const cause = new Error(message);
|
|
304
|
+
// @ts-ignore
|
|
305
|
+
cause.code = code;
|
|
306
|
+
cause.stack = stack;
|
|
307
|
+
super(cause, betterMessage);
|
|
308
|
+
} else {
|
|
309
|
+
super(betterMessage);
|
|
310
|
+
}
|
|
311
|
+
// @ts-ignore
|
|
312
|
+
this.name = 'IpcError';
|
|
313
|
+
// @ts-ignore
|
|
314
|
+
this.stdout = stdout;
|
|
315
|
+
// @ts-ignore
|
|
316
|
+
this.stderr = stderr;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
const readyMessage = 'ready';
|
|
320
|
+
const getData$2 = event => {
|
|
321
|
+
return event.data;
|
|
322
|
+
};
|
|
323
|
+
const listen$6 = () => {
|
|
324
|
+
// @ts-ignore
|
|
325
|
+
if (typeof WorkerGlobalScope === 'undefined') {
|
|
326
|
+
throw new TypeError('module is not in web worker scope');
|
|
327
|
+
}
|
|
328
|
+
return globalThis;
|
|
329
|
+
};
|
|
330
|
+
const signal$6 = global => {
|
|
331
|
+
global.postMessage(readyMessage);
|
|
332
|
+
};
|
|
333
|
+
class IpcChildWithModuleWorker extends Ipc {
|
|
334
|
+
getData(event) {
|
|
335
|
+
return getData$2(event);
|
|
336
|
+
}
|
|
337
|
+
send(message) {
|
|
338
|
+
// @ts-ignore
|
|
339
|
+
this._rawIpc.postMessage(message);
|
|
340
|
+
}
|
|
341
|
+
sendAndTransfer(message) {
|
|
342
|
+
const transfer = getTransferrables(message);
|
|
343
|
+
// @ts-ignore
|
|
344
|
+
this._rawIpc.postMessage(message, transfer);
|
|
345
|
+
}
|
|
346
|
+
dispose() {
|
|
347
|
+
// ignore
|
|
348
|
+
}
|
|
349
|
+
onClose(callback) {
|
|
350
|
+
// ignore
|
|
351
|
+
}
|
|
352
|
+
onMessage(callback) {
|
|
353
|
+
this._rawIpc.addEventListener('message', callback);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
const wrap$d = global => {
|
|
357
|
+
return new IpcChildWithModuleWorker(global);
|
|
358
|
+
};
|
|
359
|
+
const withResolvers = () => {
|
|
360
|
+
let _resolve;
|
|
361
|
+
const promise = new Promise(resolve => {
|
|
362
|
+
_resolve = resolve;
|
|
363
|
+
});
|
|
364
|
+
return {
|
|
365
|
+
resolve: _resolve,
|
|
366
|
+
promise
|
|
367
|
+
};
|
|
368
|
+
};
|
|
369
|
+
const waitForFirstMessage = async port => {
|
|
370
|
+
const {
|
|
371
|
+
resolve,
|
|
372
|
+
promise
|
|
373
|
+
} = withResolvers();
|
|
374
|
+
port.addEventListener('message', resolve, {
|
|
375
|
+
once: true
|
|
376
|
+
});
|
|
377
|
+
const event = await promise;
|
|
439
378
|
// @ts-ignore
|
|
440
|
-
|
|
441
|
-
|
|
379
|
+
return event.data;
|
|
380
|
+
};
|
|
381
|
+
const listen$5 = async () => {
|
|
382
|
+
const parentIpcRaw = listen$6();
|
|
383
|
+
signal$6(parentIpcRaw);
|
|
384
|
+
const parentIpc = wrap$d(parentIpcRaw);
|
|
385
|
+
const firstMessage = await waitForFirstMessage(parentIpc);
|
|
386
|
+
if (firstMessage.method !== 'initialize') {
|
|
387
|
+
throw new IpcError('unexpected first message');
|
|
388
|
+
}
|
|
389
|
+
const type = firstMessage.params[0];
|
|
390
|
+
if (type === 'message-port') {
|
|
391
|
+
parentIpc.send({
|
|
392
|
+
jsonrpc: '2.0',
|
|
393
|
+
id: firstMessage.id,
|
|
394
|
+
result: null
|
|
395
|
+
});
|
|
396
|
+
parentIpc.dispose();
|
|
397
|
+
const port = firstMessage.params[1];
|
|
398
|
+
return port;
|
|
442
399
|
}
|
|
443
400
|
return globalThis;
|
|
444
401
|
};
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
402
|
+
class IpcChildWithModuleWorkerAndMessagePort extends Ipc {
|
|
403
|
+
constructor(port) {
|
|
404
|
+
super(port);
|
|
405
|
+
}
|
|
449
406
|
getData(event) {
|
|
450
|
-
return getData$
|
|
407
|
+
return getData$2(event);
|
|
451
408
|
}
|
|
452
409
|
send(message) {
|
|
453
|
-
// @ts-ignore
|
|
454
410
|
this._rawIpc.postMessage(message);
|
|
455
411
|
}
|
|
456
412
|
sendAndTransfer(message) {
|
|
457
413
|
const transfer = getTransferrables(message);
|
|
458
|
-
// @ts-ignore
|
|
459
414
|
this._rawIpc.postMessage(message, transfer);
|
|
460
415
|
}
|
|
461
416
|
dispose() {
|
|
462
|
-
|
|
417
|
+
if (this._rawIpc.close) {
|
|
418
|
+
this._rawIpc.close();
|
|
419
|
+
}
|
|
463
420
|
}
|
|
464
421
|
onClose(callback) {
|
|
465
422
|
// ignore
|
|
466
423
|
}
|
|
467
424
|
onMessage(callback) {
|
|
468
425
|
this._rawIpc.addEventListener('message', callback);
|
|
426
|
+
this._rawIpc.start();
|
|
469
427
|
}
|
|
470
428
|
}
|
|
471
|
-
const wrap$
|
|
472
|
-
return new
|
|
473
|
-
};
|
|
474
|
-
const E_INCOMPATIBLE_NATIVE_MODULE = 'E_INCOMPATIBLE_NATIVE_MODULE';
|
|
475
|
-
const E_MODULES_NOT_SUPPORTED_IN_ELECTRON = 'E_MODULES_NOT_SUPPORTED_IN_ELECTRON';
|
|
476
|
-
const ERR_MODULE_NOT_FOUND = 'ERR_MODULE_NOT_FOUND';
|
|
477
|
-
const NewLine$1 = '\n';
|
|
478
|
-
const joinLines = lines => {
|
|
479
|
-
return lines.join(NewLine$1);
|
|
480
|
-
};
|
|
481
|
-
const splitLines = lines => {
|
|
482
|
-
return lines.split(NewLine$1);
|
|
429
|
+
const wrap$c = port => {
|
|
430
|
+
return new IpcChildWithModuleWorkerAndMessagePort(port);
|
|
483
431
|
};
|
|
484
|
-
const
|
|
485
|
-
|
|
432
|
+
const IpcChildWithModuleWorkerAndMessagePort$1 = {
|
|
433
|
+
__proto__: null,
|
|
434
|
+
listen: listen$5,
|
|
435
|
+
wrap: wrap$c
|
|
486
436
|
};
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
const message = lines[messageIndex];
|
|
437
|
+
|
|
438
|
+
const Two = '2.0';
|
|
439
|
+
const create$4 = (method, params) => {
|
|
491
440
|
return {
|
|
492
|
-
|
|
493
|
-
|
|
441
|
+
jsonrpc: Two,
|
|
442
|
+
method,
|
|
443
|
+
params
|
|
494
444
|
};
|
|
495
445
|
};
|
|
496
|
-
const
|
|
497
|
-
const
|
|
498
|
-
|
|
499
|
-
const RE_MESSAGE_CODE_BLOCK_END = /^\s* at/;
|
|
500
|
-
const RE_AT = /^\s+at/;
|
|
501
|
-
const RE_AT_PROMISE_INDEX = /^\s*at async Promise.all \(index \d+\)$/;
|
|
502
|
-
const isUnhelpfulNativeModuleError = stderr => {
|
|
503
|
-
return RE_NATIVE_MODULE_ERROR.test(stderr) && RE_NATIVE_MODULE_ERROR_2.test(stderr);
|
|
446
|
+
const callbacks = Object.create(null);
|
|
447
|
+
const set = (id, fn) => {
|
|
448
|
+
callbacks[id] = fn;
|
|
504
449
|
};
|
|
505
|
-
const
|
|
506
|
-
return
|
|
450
|
+
const get = id => {
|
|
451
|
+
return callbacks[id];
|
|
507
452
|
};
|
|
508
|
-
const
|
|
509
|
-
|
|
453
|
+
const remove$1 = id => {
|
|
454
|
+
delete callbacks[id];
|
|
510
455
|
};
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
const endIndex = startIndex + lines.slice(startIndex).findIndex(isMessageCodeBlockEndIndex, startIndex);
|
|
515
|
-
const relevantLines = lines.slice(startIndex, endIndex);
|
|
516
|
-
const relevantMessage = relevantLines.join(' ').slice('Error: '.length);
|
|
517
|
-
return relevantMessage;
|
|
456
|
+
let id = 0;
|
|
457
|
+
const create$3 = () => {
|
|
458
|
+
return ++id;
|
|
518
459
|
};
|
|
519
|
-
const
|
|
520
|
-
|
|
460
|
+
const warn = (...args) => {
|
|
461
|
+
console.warn(...args);
|
|
462
|
+
};
|
|
463
|
+
const registerPromise = () => {
|
|
464
|
+
const id = create$3();
|
|
465
|
+
const {
|
|
466
|
+
resolve,
|
|
467
|
+
promise
|
|
468
|
+
} = Promise.withResolvers();
|
|
469
|
+
set(id, resolve);
|
|
521
470
|
return {
|
|
522
|
-
|
|
523
|
-
|
|
471
|
+
id,
|
|
472
|
+
promise
|
|
524
473
|
};
|
|
525
474
|
};
|
|
526
|
-
const
|
|
527
|
-
|
|
528
|
-
|
|
475
|
+
const resolve = (id, response) => {
|
|
476
|
+
const fn = get(id);
|
|
477
|
+
if (!fn) {
|
|
478
|
+
console.log(response);
|
|
479
|
+
warn(`callback ${id} may already be disposed`);
|
|
480
|
+
return;
|
|
529
481
|
}
|
|
530
|
-
|
|
482
|
+
fn(response);
|
|
483
|
+
remove$1(id);
|
|
531
484
|
};
|
|
532
|
-
const
|
|
485
|
+
const create$2 = (method, params) => {
|
|
486
|
+
const {
|
|
487
|
+
id,
|
|
488
|
+
promise
|
|
489
|
+
} = registerPromise();
|
|
490
|
+
const message = {
|
|
491
|
+
jsonrpc: Two,
|
|
492
|
+
method,
|
|
493
|
+
params,
|
|
494
|
+
id
|
|
495
|
+
};
|
|
533
496
|
return {
|
|
534
|
-
message
|
|
535
|
-
|
|
497
|
+
message,
|
|
498
|
+
promise
|
|
536
499
|
};
|
|
537
500
|
};
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
501
|
+
class JsonRpcError extends Error {
|
|
502
|
+
constructor(message) {
|
|
503
|
+
super(message);
|
|
504
|
+
this.name = 'JsonRpcError';
|
|
541
505
|
}
|
|
542
|
-
|
|
506
|
+
}
|
|
507
|
+
const NewLine = '\n';
|
|
508
|
+
const DomException = 'DOMException';
|
|
509
|
+
const ReferenceError$1 = 'ReferenceError';
|
|
510
|
+
const SyntaxError$1 = 'SyntaxError';
|
|
511
|
+
const TypeError$1 = 'TypeError';
|
|
512
|
+
const getErrorConstructor = (message, type) => {
|
|
513
|
+
if (type) {
|
|
514
|
+
switch (type) {
|
|
515
|
+
case DomException:
|
|
516
|
+
return DOMException;
|
|
517
|
+
case TypeError$1:
|
|
518
|
+
return TypeError;
|
|
519
|
+
case SyntaxError$1:
|
|
520
|
+
return SyntaxError;
|
|
521
|
+
case ReferenceError$1:
|
|
522
|
+
return ReferenceError;
|
|
523
|
+
default:
|
|
524
|
+
return Error;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
if (message.startsWith('TypeError: ')) {
|
|
528
|
+
return TypeError;
|
|
529
|
+
}
|
|
530
|
+
if (message.startsWith('SyntaxError: ')) {
|
|
531
|
+
return SyntaxError;
|
|
532
|
+
}
|
|
533
|
+
if (message.startsWith('ReferenceError: ')) {
|
|
534
|
+
return ReferenceError;
|
|
535
|
+
}
|
|
536
|
+
return Error;
|
|
537
|
+
};
|
|
538
|
+
const constructError = (message, type, name) => {
|
|
539
|
+
const ErrorConstructor = getErrorConstructor(message, type);
|
|
540
|
+
if (ErrorConstructor === DOMException && name) {
|
|
541
|
+
return new ErrorConstructor(message, name);
|
|
542
|
+
}
|
|
543
|
+
if (ErrorConstructor === Error) {
|
|
544
|
+
const error = new Error(message);
|
|
545
|
+
if (name && name !== 'VError') {
|
|
546
|
+
error.name = name;
|
|
547
|
+
}
|
|
548
|
+
return error;
|
|
549
|
+
}
|
|
550
|
+
return new ErrorConstructor(message);
|
|
551
|
+
};
|
|
552
|
+
const getNewLineIndex = (string, startIndex = undefined) => {
|
|
553
|
+
return string.indexOf(NewLine, startIndex);
|
|
554
|
+
};
|
|
555
|
+
const getParentStack = error => {
|
|
556
|
+
let parentStack = error.stack || error.data || error.message || '';
|
|
557
|
+
if (parentStack.startsWith(' at')) {
|
|
558
|
+
parentStack = error.message + NewLine + parentStack;
|
|
559
|
+
}
|
|
560
|
+
return parentStack;
|
|
561
|
+
};
|
|
562
|
+
const joinLines = lines => {
|
|
563
|
+
return lines.join(NewLine);
|
|
564
|
+
};
|
|
565
|
+
const MethodNotFound = -32601;
|
|
566
|
+
const Custom = -32001;
|
|
567
|
+
const splitLines = lines => {
|
|
568
|
+
return lines.split(NewLine);
|
|
569
|
+
};
|
|
570
|
+
const restoreJsonRpcError = error => {
|
|
571
|
+
if (error && error instanceof Error) {
|
|
572
|
+
return error;
|
|
573
|
+
}
|
|
574
|
+
const currentStack = joinLines(splitLines(new Error().stack || '').slice(1));
|
|
575
|
+
if (error && error.code && error.code === MethodNotFound) {
|
|
576
|
+
const restoredError = new JsonRpcError(error.message);
|
|
577
|
+
const parentStack = getParentStack(error);
|
|
578
|
+
restoredError.stack = parentStack + NewLine + currentStack;
|
|
579
|
+
return restoredError;
|
|
580
|
+
}
|
|
581
|
+
if (error && error.message) {
|
|
582
|
+
const restoredError = constructError(error.message, error.type, error.name);
|
|
583
|
+
if (error.data) {
|
|
584
|
+
if (error.data.stack && error.data.type && error.message) {
|
|
585
|
+
restoredError.stack = error.data.type + ': ' + error.message + NewLine + error.data.stack + NewLine + currentStack;
|
|
586
|
+
} else if (error.data.stack) {
|
|
587
|
+
restoredError.stack = error.data.stack;
|
|
588
|
+
}
|
|
589
|
+
if (error.data.codeFrame) {
|
|
590
|
+
// @ts-ignore
|
|
591
|
+
restoredError.codeFrame = error.data.codeFrame;
|
|
592
|
+
}
|
|
593
|
+
if (error.data.code) {
|
|
594
|
+
// @ts-ignore
|
|
595
|
+
restoredError.code = error.data.code;
|
|
596
|
+
}
|
|
597
|
+
if (error.data.type) {
|
|
598
|
+
// @ts-ignore
|
|
599
|
+
restoredError.name = error.data.type;
|
|
600
|
+
}
|
|
601
|
+
} else {
|
|
602
|
+
if (error.stack) {
|
|
603
|
+
const lowerStack = restoredError.stack || '';
|
|
604
|
+
// @ts-ignore
|
|
605
|
+
const indexNewLine = getNewLineIndex(lowerStack);
|
|
606
|
+
const parentStack = getParentStack(error);
|
|
607
|
+
// @ts-ignore
|
|
608
|
+
restoredError.stack = parentStack + lowerStack.slice(indexNewLine);
|
|
609
|
+
}
|
|
610
|
+
if (error.codeFrame) {
|
|
611
|
+
// @ts-ignore
|
|
612
|
+
restoredError.codeFrame = error.codeFrame;
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
return restoredError;
|
|
616
|
+
}
|
|
617
|
+
if (typeof error === 'string') {
|
|
618
|
+
return new Error(`JsonRpc Error: ${error}`);
|
|
619
|
+
}
|
|
620
|
+
return new Error(`JsonRpc Error: ${error}`);
|
|
621
|
+
};
|
|
622
|
+
const unwrapJsonRpcResult = responseMessage => {
|
|
623
|
+
if ('error' in responseMessage) {
|
|
624
|
+
const restoredError = restoreJsonRpcError(responseMessage.error);
|
|
625
|
+
throw restoredError;
|
|
626
|
+
}
|
|
627
|
+
if ('result' in responseMessage) {
|
|
628
|
+
return responseMessage.result;
|
|
629
|
+
}
|
|
630
|
+
throw new JsonRpcError('unexpected response message');
|
|
543
631
|
};
|
|
544
|
-
const
|
|
545
|
-
|
|
632
|
+
const E_COMMAND_NOT_FOUND = 'E_COMMAND_NOT_FOUND';
|
|
633
|
+
const getErrorType = prettyError => {
|
|
634
|
+
if (prettyError && prettyError.type) {
|
|
635
|
+
return prettyError.type;
|
|
636
|
+
}
|
|
637
|
+
if (prettyError && prettyError.constructor && prettyError.constructor.name) {
|
|
638
|
+
return prettyError.constructor.name;
|
|
639
|
+
}
|
|
640
|
+
return undefined;
|
|
546
641
|
};
|
|
547
|
-
const
|
|
548
|
-
|
|
549
|
-
if (index === -1) {
|
|
642
|
+
const getErrorProperty = (error, prettyError) => {
|
|
643
|
+
if (error && error.code === E_COMMAND_NOT_FOUND) {
|
|
550
644
|
return {
|
|
551
|
-
|
|
552
|
-
|
|
645
|
+
code: MethodNotFound,
|
|
646
|
+
message: error.message,
|
|
647
|
+
data: error.stack
|
|
553
648
|
};
|
|
554
649
|
}
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
650
|
+
return {
|
|
651
|
+
code: Custom,
|
|
652
|
+
message: prettyError.message,
|
|
653
|
+
data: {
|
|
654
|
+
stack: prettyError.stack,
|
|
655
|
+
codeFrame: prettyError.codeFrame,
|
|
656
|
+
type: getErrorType(prettyError),
|
|
657
|
+
code: prettyError.code,
|
|
658
|
+
name: prettyError.name
|
|
559
659
|
}
|
|
560
|
-
}
|
|
660
|
+
};
|
|
661
|
+
};
|
|
662
|
+
const create$1 = (message, error) => {
|
|
561
663
|
return {
|
|
562
|
-
|
|
563
|
-
|
|
664
|
+
jsonrpc: Two,
|
|
665
|
+
id: message.id,
|
|
666
|
+
error
|
|
564
667
|
};
|
|
565
668
|
};
|
|
566
|
-
const
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
if (isModuleNotFoundError(stderr)) {
|
|
574
|
-
return getModuleNotFoundError(stderr);
|
|
575
|
-
}
|
|
576
|
-
const lines = splitLines(stderr);
|
|
577
|
-
const {
|
|
578
|
-
actualMessage,
|
|
579
|
-
rest
|
|
580
|
-
} = getDetails(lines);
|
|
669
|
+
const getErrorResponse = (message, error, preparePrettyError, logError) => {
|
|
670
|
+
const prettyError = preparePrettyError(error);
|
|
671
|
+
logError(error, prettyError);
|
|
672
|
+
const errorProperty = getErrorProperty(error, prettyError);
|
|
673
|
+
return create$1(message, errorProperty);
|
|
674
|
+
};
|
|
675
|
+
const create$5 = (message, result) => {
|
|
581
676
|
return {
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
677
|
+
jsonrpc: Two,
|
|
678
|
+
id: message.id,
|
|
679
|
+
result: result ?? null
|
|
585
680
|
};
|
|
586
681
|
};
|
|
587
|
-
const
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
}
|
|
591
|
-
if (line.startsWith('VError: ')) {
|
|
592
|
-
return line.slice('VError: '.length);
|
|
593
|
-
}
|
|
594
|
-
return line;
|
|
682
|
+
const getSuccessResponse = (message, result) => {
|
|
683
|
+
const resultProperty = result ?? null;
|
|
684
|
+
return create$5(message, resultProperty);
|
|
595
685
|
};
|
|
596
|
-
const
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
return
|
|
686
|
+
const getResponse = async (message, ipc, execute, preparePrettyError, logError, requiresSocket) => {
|
|
687
|
+
try {
|
|
688
|
+
const result = requiresSocket(message.method) ? await execute(message.method, ipc, ...message.params) : await execute(message.method, ...message.params);
|
|
689
|
+
return getSuccessResponse(message, result);
|
|
690
|
+
} catch (error) {
|
|
691
|
+
return getErrorResponse(message, error, preparePrettyError, logError);
|
|
600
692
|
}
|
|
601
|
-
return stringifiedError;
|
|
602
693
|
};
|
|
603
|
-
const
|
|
604
|
-
|
|
605
|
-
return string.indexOf(NewLine$2, startIndex);
|
|
694
|
+
const defaultPreparePrettyError = error => {
|
|
695
|
+
return error;
|
|
606
696
|
};
|
|
607
|
-
const
|
|
608
|
-
|
|
609
|
-
return parent;
|
|
610
|
-
}
|
|
611
|
-
const parentNewLineIndex = getNewLineIndex$1(parent);
|
|
612
|
-
const childNewLineIndex = getNewLineIndex$1(child);
|
|
613
|
-
if (childNewLineIndex === -1) {
|
|
614
|
-
return parent;
|
|
615
|
-
}
|
|
616
|
-
const parentFirstLine = parent.slice(0, parentNewLineIndex);
|
|
617
|
-
const childRest = child.slice(childNewLineIndex);
|
|
618
|
-
const childFirstLine = normalizeLine$1(child.slice(0, childNewLineIndex));
|
|
619
|
-
if (parentFirstLine.includes(childFirstLine)) {
|
|
620
|
-
return parentFirstLine + childRest;
|
|
621
|
-
}
|
|
622
|
-
return child;
|
|
697
|
+
const defaultLogError = () => {
|
|
698
|
+
// ignore
|
|
623
699
|
};
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
const combinedMessage = getCombinedMessage$1(error, message);
|
|
627
|
-
super(combinedMessage);
|
|
628
|
-
this.name = 'VError';
|
|
629
|
-
if (error instanceof Error) {
|
|
630
|
-
this.stack = mergeStacks$1(this.stack, error.stack);
|
|
631
|
-
}
|
|
632
|
-
if (error.codeFrame) {
|
|
633
|
-
// @ts-ignore
|
|
634
|
-
this.codeFrame = error.codeFrame;
|
|
635
|
-
}
|
|
636
|
-
if (error.code) {
|
|
637
|
-
// @ts-ignore
|
|
638
|
-
this.code = error.code;
|
|
639
|
-
}
|
|
640
|
-
}
|
|
700
|
+
const defaultRequiresSocket = () => {
|
|
701
|
+
return false;
|
|
641
702
|
};
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
} else {
|
|
658
|
-
super(betterMessage);
|
|
659
|
-
}
|
|
660
|
-
// @ts-ignore
|
|
661
|
-
this.name = 'IpcError';
|
|
662
|
-
// @ts-ignore
|
|
663
|
-
this.stdout = stdout;
|
|
664
|
-
// @ts-ignore
|
|
665
|
-
this.stderr = stderr;
|
|
703
|
+
const defaultResolve = resolve;
|
|
704
|
+
|
|
705
|
+
// TODO maybe remove this in v6 or v7, only accept options object to simplify the code
|
|
706
|
+
const normalizeParams = args => {
|
|
707
|
+
if (args.length === 1) {
|
|
708
|
+
const options = args[0];
|
|
709
|
+
return {
|
|
710
|
+
ipc: options.ipc,
|
|
711
|
+
message: options.message,
|
|
712
|
+
execute: options.execute,
|
|
713
|
+
resolve: options.resolve || defaultResolve,
|
|
714
|
+
preparePrettyError: options.preparePrettyError || defaultPreparePrettyError,
|
|
715
|
+
logError: options.logError || defaultLogError,
|
|
716
|
+
requiresSocket: options.requiresSocket || defaultRequiresSocket
|
|
717
|
+
};
|
|
666
718
|
}
|
|
667
|
-
}
|
|
668
|
-
const withResolvers = () => {
|
|
669
|
-
let _resolve;
|
|
670
|
-
const promise = new Promise(resolve => {
|
|
671
|
-
_resolve = resolve;
|
|
672
|
-
});
|
|
673
719
|
return {
|
|
674
|
-
|
|
675
|
-
|
|
720
|
+
ipc: args[0],
|
|
721
|
+
message: args[1],
|
|
722
|
+
execute: args[2],
|
|
723
|
+
resolve: args[3],
|
|
724
|
+
preparePrettyError: args[4],
|
|
725
|
+
logError: args[5],
|
|
726
|
+
requiresSocket: args[6]
|
|
676
727
|
};
|
|
677
728
|
};
|
|
678
|
-
const
|
|
729
|
+
const handleJsonRpcMessage = async (...args) => {
|
|
730
|
+
const options = normalizeParams(args);
|
|
679
731
|
const {
|
|
732
|
+
message,
|
|
733
|
+
ipc,
|
|
734
|
+
execute,
|
|
680
735
|
resolve,
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
if (firstMessage.method !== 'initialize') {
|
|
696
|
-
throw new IpcError('unexpected first message');
|
|
697
|
-
}
|
|
698
|
-
const type = firstMessage.params[0];
|
|
699
|
-
if (type === 'message-port') {
|
|
700
|
-
parentIpc.send({
|
|
701
|
-
jsonrpc: '2.0',
|
|
702
|
-
id: firstMessage.id,
|
|
703
|
-
result: null
|
|
704
|
-
});
|
|
705
|
-
parentIpc.dispose();
|
|
706
|
-
const port = firstMessage.params[1];
|
|
707
|
-
return port;
|
|
708
|
-
}
|
|
709
|
-
return globalThis;
|
|
710
|
-
};
|
|
711
|
-
class IpcChildWithModuleWorkerAndMessagePort extends Ipc {
|
|
712
|
-
constructor(port) {
|
|
713
|
-
super(port);
|
|
714
|
-
}
|
|
715
|
-
getData(event) {
|
|
716
|
-
return getData$1(event);
|
|
717
|
-
}
|
|
718
|
-
send(message) {
|
|
719
|
-
this._rawIpc.postMessage(message);
|
|
720
|
-
}
|
|
721
|
-
sendAndTransfer(message) {
|
|
722
|
-
const transfer = getTransferrables(message);
|
|
723
|
-
this._rawIpc.postMessage(message, transfer);
|
|
724
|
-
}
|
|
725
|
-
dispose() {
|
|
726
|
-
if (this._rawIpc.close) {
|
|
727
|
-
this._rawIpc.close();
|
|
736
|
+
preparePrettyError,
|
|
737
|
+
logError,
|
|
738
|
+
requiresSocket
|
|
739
|
+
} = options;
|
|
740
|
+
if ('id' in message) {
|
|
741
|
+
if ('method' in message) {
|
|
742
|
+
const response = await getResponse(message, ipc, execute, preparePrettyError, logError, requiresSocket);
|
|
743
|
+
try {
|
|
744
|
+
ipc.send(response);
|
|
745
|
+
} catch (error) {
|
|
746
|
+
const errorResponse = getErrorResponse(message, error, preparePrettyError, logError);
|
|
747
|
+
ipc.send(errorResponse);
|
|
748
|
+
}
|
|
749
|
+
return;
|
|
728
750
|
}
|
|
751
|
+
resolve(message.id, message);
|
|
752
|
+
return;
|
|
729
753
|
}
|
|
730
|
-
|
|
731
|
-
|
|
754
|
+
if ('method' in message) {
|
|
755
|
+
await getResponse(message, ipc, execute, preparePrettyError, logError, requiresSocket);
|
|
756
|
+
return;
|
|
732
757
|
}
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
758
|
+
throw new JsonRpcError('unexpected message');
|
|
759
|
+
};
|
|
760
|
+
const invokeHelper = async (ipc, method, params, useSendAndTransfer) => {
|
|
761
|
+
const {
|
|
762
|
+
message,
|
|
763
|
+
promise
|
|
764
|
+
} = create$2(method, params);
|
|
765
|
+
if (useSendAndTransfer && ipc.sendAndTransfer) {
|
|
766
|
+
ipc.sendAndTransfer(message);
|
|
767
|
+
} else {
|
|
768
|
+
ipc.send(message);
|
|
736
769
|
}
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
return new IpcChildWithModuleWorkerAndMessagePort(port);
|
|
770
|
+
const responseMessage = await promise;
|
|
771
|
+
return unwrapJsonRpcResult(responseMessage);
|
|
740
772
|
};
|
|
741
|
-
const
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
773
|
+
const send = (transport, method, ...params) => {
|
|
774
|
+
const message = create$4(method, params);
|
|
775
|
+
transport.send(message);
|
|
776
|
+
};
|
|
777
|
+
const invoke$1 = (ipc, method, ...params) => {
|
|
778
|
+
return invokeHelper(ipc, method, params, false);
|
|
779
|
+
};
|
|
780
|
+
const invokeAndTransfer = (ipc, method, ...params) => {
|
|
781
|
+
return invokeHelper(ipc, method, params, true);
|
|
782
|
+
};
|
|
783
|
+
|
|
784
|
+
const commands = Object.create(null);
|
|
785
|
+
const register = commandMap => {
|
|
786
|
+
Object.assign(commands, commandMap);
|
|
787
|
+
};
|
|
788
|
+
const getCommand = key => {
|
|
789
|
+
return commands[key];
|
|
790
|
+
};
|
|
791
|
+
const execute = (command, ...args) => {
|
|
792
|
+
const fn = getCommand(command);
|
|
793
|
+
if (!fn) {
|
|
794
|
+
throw new Error(`command not found ${command}`);
|
|
795
|
+
}
|
|
796
|
+
return fn(...args);
|
|
745
797
|
};
|
|
746
798
|
|
|
747
799
|
const createRpc = ipc => {
|
|
@@ -771,16 +823,22 @@ const logError = () => {
|
|
|
771
823
|
// handled by renderer worker
|
|
772
824
|
};
|
|
773
825
|
const handleMessage = event => {
|
|
774
|
-
|
|
826
|
+
const actualRequiresSocket = event?.target?.requiresSocket || requiresSocket;
|
|
827
|
+
return handleJsonRpcMessage(event.target, event.data, execute, resolve, preparePrettyError, logError, actualRequiresSocket);
|
|
775
828
|
};
|
|
776
829
|
const handleIpc = ipc => {
|
|
777
|
-
|
|
830
|
+
if ('addEventListener' in ipc) {
|
|
831
|
+
ipc.addEventListener('message', handleMessage);
|
|
832
|
+
} else if ('on' in ipc) {
|
|
833
|
+
// deprecated
|
|
834
|
+
ipc.on('message', handleMessage);
|
|
835
|
+
}
|
|
778
836
|
};
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
837
|
+
const listen$1 = async (module, options) => {
|
|
838
|
+
const rawIpc = await module.listen(options);
|
|
839
|
+
if (module.signal) {
|
|
840
|
+
module.signal(rawIpc);
|
|
841
|
+
}
|
|
784
842
|
const ipc = module.wrap(rawIpc);
|
|
785
843
|
return ipc;
|
|
786
844
|
};
|
|
@@ -789,7 +847,7 @@ const create = async ({
|
|
|
789
847
|
}) => {
|
|
790
848
|
// TODO create a commandMap per rpc instance
|
|
791
849
|
register(commandMap);
|
|
792
|
-
const ipc = await listen$1();
|
|
850
|
+
const ipc = await listen$1(IpcChildWithModuleWorkerAndMessagePort$1);
|
|
793
851
|
handleIpc(ipc);
|
|
794
852
|
const rpc = createRpc(ipc);
|
|
795
853
|
return rpc;
|
|
@@ -839,7 +897,7 @@ const compareDirent = (direntA, direntB) => {
|
|
|
839
897
|
return compareDirentType(direntA, direntB) || compareDirentName(direntA, direntB);
|
|
840
898
|
};
|
|
841
899
|
|
|
842
|
-
const getFileIcon = ({
|
|
900
|
+
const getFileIcon$1 = ({
|
|
843
901
|
name
|
|
844
902
|
}) => {
|
|
845
903
|
return '';
|
|
@@ -847,6 +905,9 @@ const getFileIcon = ({
|
|
|
847
905
|
const getIcon = dirent => {
|
|
848
906
|
return '';
|
|
849
907
|
};
|
|
908
|
+
const getFolderIcon = dirent => {
|
|
909
|
+
return '';
|
|
910
|
+
};
|
|
850
911
|
|
|
851
912
|
// TODO use posInSet and setSize properties to compute more effectively
|
|
852
913
|
const computeExplorerRenamedDirent = (dirents, index, newName) => {
|
|
@@ -859,7 +920,7 @@ const computeExplorerRenamedDirent = (dirents, index, newName) => {
|
|
|
859
920
|
...oldDirent,
|
|
860
921
|
name: newName,
|
|
861
922
|
path: oldDirent.path.slice(0, -oldDirent.name.length) + newName,
|
|
862
|
-
icon: getFileIcon({
|
|
923
|
+
icon: getFileIcon$1({
|
|
863
924
|
name: newName
|
|
864
925
|
})
|
|
865
926
|
};
|
|
@@ -946,17 +1007,50 @@ const computeExplorerRenamedDirent = (dirents, index, newName) => {
|
|
|
946
1007
|
const None$3 = 0;
|
|
947
1008
|
const CreateFile = 1;
|
|
948
1009
|
const CreateFolder = 2;
|
|
949
|
-
const Rename = 3;
|
|
950
|
-
|
|
951
|
-
const
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
const
|
|
955
|
-
const
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
const
|
|
1010
|
+
const Rename$1 = 3;
|
|
1011
|
+
|
|
1012
|
+
const state = {
|
|
1013
|
+
rpc: undefined
|
|
1014
|
+
};
|
|
1015
|
+
const invoke = (method, ...params) => {
|
|
1016
|
+
const rpc = state.rpc;
|
|
1017
|
+
// @ts-ignore
|
|
1018
|
+
return rpc.invoke(method, ...params);
|
|
1019
|
+
};
|
|
1020
|
+
const setRpc = rpc => {
|
|
1021
|
+
state.rpc = rpc;
|
|
1022
|
+
};
|
|
1023
|
+
|
|
1024
|
+
const remove = async dirent => {
|
|
1025
|
+
return invoke('FileSystem.remove', dirent);
|
|
1026
|
+
};
|
|
1027
|
+
const readDirWithFileTypes = async uri => {
|
|
1028
|
+
return invoke('FileSystem.readDirWithFileTypes', uri);
|
|
1029
|
+
};
|
|
1030
|
+
const getPathSeparator$1 = async root => {
|
|
1031
|
+
return invoke('FileSystem.getPathSeparator', root);
|
|
1032
|
+
};
|
|
1033
|
+
const getRealPath = async path => {
|
|
1034
|
+
return invoke('FileSystem.getRealPath', path);
|
|
1035
|
+
};
|
|
1036
|
+
const stat = async dirent => {
|
|
1037
|
+
return invoke('FileSystem.stat', dirent);
|
|
1038
|
+
};
|
|
1039
|
+
const createFile = async uri => {
|
|
1040
|
+
return invoke('FileSystem.createFile', uri);
|
|
1041
|
+
};
|
|
1042
|
+
const writeFile = async (uri, content) => {
|
|
1043
|
+
return invoke('FileSystem.writeFile', uri, content);
|
|
1044
|
+
};
|
|
1045
|
+
const mkdir = async uri => {
|
|
1046
|
+
return invoke('FileSystem.mkdir', uri);
|
|
1047
|
+
};
|
|
1048
|
+
const rename$1 = async (oldUri, newUri) => {
|
|
1049
|
+
return invoke('FileSystem.rename', oldUri, newUri);
|
|
1050
|
+
};
|
|
1051
|
+
const copy$1 = async (oldUri, newUri) => {
|
|
1052
|
+
return invoke('FileSystem.copy', oldUri, newUri);
|
|
1053
|
+
};
|
|
960
1054
|
|
|
961
1055
|
const dirname = (pathSeparator, path) => {
|
|
962
1056
|
const index = path.lastIndexOf(pathSeparator);
|
|
@@ -1099,13 +1193,57 @@ const acceptEdit = state => {
|
|
|
1099
1193
|
return acceptCreate(state, File, createFile);
|
|
1100
1194
|
case CreateFolder:
|
|
1101
1195
|
return acceptCreate(state, Directory, mkdir);
|
|
1102
|
-
case Rename:
|
|
1196
|
+
case Rename$1:
|
|
1103
1197
|
return acceptRename(state);
|
|
1104
1198
|
default:
|
|
1105
1199
|
return state;
|
|
1106
1200
|
}
|
|
1107
1201
|
};
|
|
1108
1202
|
|
|
1203
|
+
const cancelEdit = state => {
|
|
1204
|
+
const {
|
|
1205
|
+
editingIndex
|
|
1206
|
+
} = state;
|
|
1207
|
+
return {
|
|
1208
|
+
...state,
|
|
1209
|
+
focusedIndex: editingIndex,
|
|
1210
|
+
focused: true,
|
|
1211
|
+
editingIndex: -1,
|
|
1212
|
+
editingValue: '',
|
|
1213
|
+
editingType: None$3
|
|
1214
|
+
};
|
|
1215
|
+
};
|
|
1216
|
+
|
|
1217
|
+
const isTopLevel$1 = dirent => {
|
|
1218
|
+
return dirent.depth === 1;
|
|
1219
|
+
};
|
|
1220
|
+
|
|
1221
|
+
const IsTopLevel = {
|
|
1222
|
+
__proto__: null,
|
|
1223
|
+
isTopLevel: isTopLevel$1
|
|
1224
|
+
};
|
|
1225
|
+
|
|
1226
|
+
const toCollapsedDirent = dirent => {
|
|
1227
|
+
if (dirent.type === DirectoryExpanded) {
|
|
1228
|
+
return {
|
|
1229
|
+
...dirent,
|
|
1230
|
+
type: Directory
|
|
1231
|
+
};
|
|
1232
|
+
}
|
|
1233
|
+
return dirent;
|
|
1234
|
+
};
|
|
1235
|
+
|
|
1236
|
+
const collapseAll$1 = state => {
|
|
1237
|
+
const {
|
|
1238
|
+
items
|
|
1239
|
+
} = state;
|
|
1240
|
+
const newDirents = items.filter(IsTopLevel).map(toCollapsedDirent);
|
|
1241
|
+
return {
|
|
1242
|
+
...state,
|
|
1243
|
+
items: newDirents
|
|
1244
|
+
};
|
|
1245
|
+
};
|
|
1246
|
+
|
|
1109
1247
|
const getFocusedDirent$1 = state => {
|
|
1110
1248
|
const {
|
|
1111
1249
|
focusedIndex,
|
|
@@ -1121,24 +1259,15 @@ const copyPath$1 = async state => {
|
|
|
1121
1259
|
return state;
|
|
1122
1260
|
};
|
|
1123
1261
|
|
|
1124
|
-
const state = {
|
|
1125
|
-
rpc: undefined
|
|
1126
|
-
};
|
|
1127
|
-
const invoke = (method, ...params) => {
|
|
1128
|
-
const rpc = state.rpc;
|
|
1129
|
-
// @ts-ignore
|
|
1130
|
-
return rpc.invoke(method, ...params);
|
|
1131
|
-
};
|
|
1132
|
-
const setRpc = rpc => {
|
|
1133
|
-
state.rpc = rpc;
|
|
1134
|
-
};
|
|
1135
|
-
|
|
1136
1262
|
const writeText = async text => {
|
|
1137
1263
|
await invoke('ClipBoard.writeText', /* text */text);
|
|
1138
1264
|
};
|
|
1139
1265
|
const readNativeFiles = async () => {
|
|
1140
1266
|
return invoke('ClipBoard.readNativeFiles');
|
|
1141
1267
|
};
|
|
1268
|
+
const writeNativeFiles = async (type, files) => {
|
|
1269
|
+
return invoke('ClipBoard.writeNativeFiles', type, files);
|
|
1270
|
+
};
|
|
1142
1271
|
|
|
1143
1272
|
const copyRelativePath$1 = async state => {
|
|
1144
1273
|
const dirent = getFocusedDirent$1(state);
|
|
@@ -1148,59 +1277,6 @@ const copyRelativePath$1 = async state => {
|
|
|
1148
1277
|
return state;
|
|
1149
1278
|
};
|
|
1150
1279
|
|
|
1151
|
-
class AssertionError extends Error {
|
|
1152
|
-
constructor(message) {
|
|
1153
|
-
super(message);
|
|
1154
|
-
this.name = 'AssertionError';
|
|
1155
|
-
}
|
|
1156
|
-
}
|
|
1157
|
-
const getType = value => {
|
|
1158
|
-
switch (typeof value) {
|
|
1159
|
-
case 'number':
|
|
1160
|
-
return 'number';
|
|
1161
|
-
case 'function':
|
|
1162
|
-
return 'function';
|
|
1163
|
-
case 'string':
|
|
1164
|
-
return 'string';
|
|
1165
|
-
case 'object':
|
|
1166
|
-
if (value === null) {
|
|
1167
|
-
return 'null';
|
|
1168
|
-
}
|
|
1169
|
-
if (Array.isArray(value)) {
|
|
1170
|
-
return 'array';
|
|
1171
|
-
}
|
|
1172
|
-
return 'object';
|
|
1173
|
-
case 'boolean':
|
|
1174
|
-
return 'boolean';
|
|
1175
|
-
default:
|
|
1176
|
-
return 'unknown';
|
|
1177
|
-
}
|
|
1178
|
-
};
|
|
1179
|
-
const object = value => {
|
|
1180
|
-
const type = getType(value);
|
|
1181
|
-
if (type !== 'object') {
|
|
1182
|
-
throw new AssertionError('expected value to be of type object');
|
|
1183
|
-
}
|
|
1184
|
-
};
|
|
1185
|
-
const number = value => {
|
|
1186
|
-
const type = getType(value);
|
|
1187
|
-
if (type !== 'number') {
|
|
1188
|
-
throw new AssertionError('expected value to be of type number');
|
|
1189
|
-
}
|
|
1190
|
-
};
|
|
1191
|
-
const array = value => {
|
|
1192
|
-
const type = getType(value);
|
|
1193
|
-
if (type !== 'array') {
|
|
1194
|
-
throw new AssertionError('expected value to be of type array');
|
|
1195
|
-
}
|
|
1196
|
-
};
|
|
1197
|
-
const string = value => {
|
|
1198
|
-
const type = getType(value);
|
|
1199
|
-
if (type !== 'string') {
|
|
1200
|
-
throw new AssertionError('expected value to be of type string');
|
|
1201
|
-
}
|
|
1202
|
-
};
|
|
1203
|
-
|
|
1204
1280
|
const isSymbolicLink = dirent => {
|
|
1205
1281
|
return dirent.type === Symlink;
|
|
1206
1282
|
};
|
|
@@ -1292,7 +1368,7 @@ const hasSymbolicLinks = rawDirents => {
|
|
|
1292
1368
|
return rawDirents.some(isSymbolicLink);
|
|
1293
1369
|
};
|
|
1294
1370
|
const getChildDirentsRaw = async uri => {
|
|
1295
|
-
const rawDirents = await readDirWithFileTypes();
|
|
1371
|
+
const rawDirents = await readDirWithFileTypes(uri);
|
|
1296
1372
|
array(rawDirents);
|
|
1297
1373
|
if (hasSymbolicLinks(rawDirents)) {
|
|
1298
1374
|
return resolveSymbolicLinks(uri, rawDirents);
|
|
@@ -1386,6 +1462,7 @@ const makeExpanded = dirent => {
|
|
|
1386
1462
|
}
|
|
1387
1463
|
return dirent;
|
|
1388
1464
|
};
|
|
1465
|
+
|
|
1389
1466
|
const expandRecursively = async state => {
|
|
1390
1467
|
const {
|
|
1391
1468
|
items,
|
|
@@ -1542,29 +1619,12 @@ const focusPrevious = state => {
|
|
|
1542
1619
|
}
|
|
1543
1620
|
};
|
|
1544
1621
|
|
|
1545
|
-
const
|
|
1546
|
-
const Tree = 'tree';
|
|
1547
|
-
const TreeItem$1 = 'treeitem';
|
|
1548
|
-
|
|
1549
|
-
const Button$1 = 'Button';
|
|
1550
|
-
const ButtonPrimary = 'ButtonPrimary';
|
|
1551
|
-
const Explorer$1 = 'Explorer';
|
|
1552
|
-
const FileIcon = 'FileIcon';
|
|
1553
|
-
const InputBox = 'InputBox';
|
|
1554
|
-
const Label = 'Label';
|
|
1555
|
-
const TreeItem = 'TreeItem';
|
|
1556
|
-
const TreeItemActive = 'TreeItemActive';
|
|
1557
|
-
const Viewlet = 'Viewlet';
|
|
1558
|
-
const Welcome = 'Welcome';
|
|
1559
|
-
const WelcomeMessage = 'WelcomeMessage';
|
|
1622
|
+
const Button$2 = 1;
|
|
1560
1623
|
|
|
1561
|
-
const
|
|
1562
|
-
const
|
|
1563
|
-
const
|
|
1564
|
-
const
|
|
1565
|
-
const HandleFocus = 'handleFocus';
|
|
1566
|
-
const HandlePointerDown = 'handlePointerDown';
|
|
1567
|
-
const HandleWheel = 'handleWheel';
|
|
1624
|
+
const CollapseAll = 'CollapseAll';
|
|
1625
|
+
const NewFile$1 = 'NewFile';
|
|
1626
|
+
const NewFolder$1 = 'NewFolder';
|
|
1627
|
+
const Refresh = 'Refresh';
|
|
1568
1628
|
|
|
1569
1629
|
const emptyObject = {};
|
|
1570
1630
|
const RE_PLACEHOLDER = /\{(PH\d+)\}/g;
|
|
@@ -1578,72 +1638,126 @@ const i18nString = (key, placeholders = emptyObject) => {
|
|
|
1578
1638
|
return key.replaceAll(RE_PLACEHOLDER, replacer);
|
|
1579
1639
|
};
|
|
1580
1640
|
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
const
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
};
|
|
1604
|
-
const newFile = () => {
|
|
1605
|
-
return i18nString(UiStrings.NewFile);
|
|
1606
|
-
};
|
|
1607
|
-
const newFolder = () => {
|
|
1608
|
-
return i18nString(UiStrings.NewFolder);
|
|
1641
|
+
const NewFile = 'New File...';
|
|
1642
|
+
const NewFolder = 'New Folder...';
|
|
1643
|
+
const OpenContainingFolder = 'Open Containing Folder';
|
|
1644
|
+
const OpenInIntegratedTerminal = 'Open in integrated Terminal';
|
|
1645
|
+
const Cut$1 = 'Cut';
|
|
1646
|
+
const Copy$1 = 'Copy';
|
|
1647
|
+
const Paste = 'Paste';
|
|
1648
|
+
const CopyPath = 'Copy Path';
|
|
1649
|
+
const CopyRelativePath = 'Copy Relative Path';
|
|
1650
|
+
const Rename = 'Rename';
|
|
1651
|
+
const Delete$1 = 'Delete';
|
|
1652
|
+
const RefreshExplorer = 'Refresh Explorer';
|
|
1653
|
+
const CollapseAllFoldersInExplorer = 'Collapse All Folders in Explorer';
|
|
1654
|
+
const FilesExplorer = 'Files Explorer';
|
|
1655
|
+
const YouHaveNotYetOpenedAFolder = 'You have not yet opened a folder';
|
|
1656
|
+
const OpenFolder = 'Open folder';
|
|
1657
|
+
|
|
1658
|
+
const newFile$1 = () => {
|
|
1659
|
+
return i18nString(NewFile);
|
|
1660
|
+
};
|
|
1661
|
+
const newFolder$1 = () => {
|
|
1662
|
+
return i18nString(NewFolder);
|
|
1609
1663
|
};
|
|
1610
1664
|
const openContainingFolder$1 = () => {
|
|
1611
|
-
return i18nString(
|
|
1665
|
+
return i18nString(OpenContainingFolder);
|
|
1612
1666
|
};
|
|
1613
1667
|
const openInIntegratedTerminal = () => {
|
|
1614
|
-
return i18nString(
|
|
1668
|
+
return i18nString(OpenInIntegratedTerminal);
|
|
1615
1669
|
};
|
|
1616
1670
|
const cut = () => {
|
|
1617
|
-
return i18nString(
|
|
1671
|
+
return i18nString(Cut$1);
|
|
1618
1672
|
};
|
|
1619
1673
|
const copy = () => {
|
|
1620
|
-
return i18nString(
|
|
1674
|
+
return i18nString(Copy$1);
|
|
1621
1675
|
};
|
|
1622
1676
|
const paste = () => {
|
|
1623
|
-
return i18nString(
|
|
1677
|
+
return i18nString(Paste);
|
|
1624
1678
|
};
|
|
1625
1679
|
const copyPath = () => {
|
|
1626
|
-
return i18nString(
|
|
1680
|
+
return i18nString(CopyPath);
|
|
1627
1681
|
};
|
|
1628
1682
|
const copyRelativePath = () => {
|
|
1629
|
-
return i18nString(
|
|
1683
|
+
return i18nString(CopyRelativePath);
|
|
1630
1684
|
};
|
|
1631
1685
|
const rename = () => {
|
|
1632
|
-
return i18nString(
|
|
1686
|
+
return i18nString(Rename);
|
|
1633
1687
|
};
|
|
1634
1688
|
const deleteItem = () => {
|
|
1635
|
-
return i18nString(
|
|
1689
|
+
return i18nString(Delete$1);
|
|
1690
|
+
};
|
|
1691
|
+
const refresh = () => {
|
|
1692
|
+
return i18nString(RefreshExplorer);
|
|
1693
|
+
};
|
|
1694
|
+
const collapseAll = () => {
|
|
1695
|
+
return i18nString(CollapseAllFoldersInExplorer);
|
|
1636
1696
|
};
|
|
1637
1697
|
const filesExplorer = () => {
|
|
1638
|
-
return i18nString(
|
|
1698
|
+
return i18nString(FilesExplorer);
|
|
1639
1699
|
};
|
|
1640
1700
|
const youHaveNotYetOpenedAFolder = () => {
|
|
1641
|
-
return i18nString(
|
|
1701
|
+
return i18nString(YouHaveNotYetOpenedAFolder);
|
|
1642
1702
|
};
|
|
1643
1703
|
const openFolder$1 = () => {
|
|
1644
|
-
return i18nString(
|
|
1704
|
+
return i18nString(OpenFolder);
|
|
1705
|
+
};
|
|
1706
|
+
|
|
1707
|
+
const getActions = root => {
|
|
1708
|
+
if (!root) {
|
|
1709
|
+
return [];
|
|
1710
|
+
}
|
|
1711
|
+
return [{
|
|
1712
|
+
type: Button$2,
|
|
1713
|
+
id: newFile$1(),
|
|
1714
|
+
icon: NewFile$1,
|
|
1715
|
+
command: 'newFile'
|
|
1716
|
+
}, {
|
|
1717
|
+
type: Button$2,
|
|
1718
|
+
id: newFolder$1(),
|
|
1719
|
+
icon: NewFolder$1,
|
|
1720
|
+
command: 'newFolder'
|
|
1721
|
+
}, {
|
|
1722
|
+
type: Button$2,
|
|
1723
|
+
id: refresh(),
|
|
1724
|
+
icon: Refresh,
|
|
1725
|
+
command: 'refresh'
|
|
1726
|
+
}, {
|
|
1727
|
+
type: Button$2,
|
|
1728
|
+
id: collapseAll(),
|
|
1729
|
+
icon: CollapseAll,
|
|
1730
|
+
command: 'collapseAll'
|
|
1731
|
+
}];
|
|
1645
1732
|
};
|
|
1646
1733
|
|
|
1734
|
+
const None$2 = 'none';
|
|
1735
|
+
const ToolBar = 'toolbar';
|
|
1736
|
+
const Tree = 'tree';
|
|
1737
|
+
const TreeItem$1 = 'treeitem';
|
|
1738
|
+
|
|
1739
|
+
const Actions = 'Actions';
|
|
1740
|
+
const Button$1 = 'Button';
|
|
1741
|
+
const ButtonPrimary = 'ButtonPrimary';
|
|
1742
|
+
const Explorer$1 = 'Explorer';
|
|
1743
|
+
const FileIcon = 'FileIcon';
|
|
1744
|
+
const IconButton = 'IconButton';
|
|
1745
|
+
const InputBox = 'InputBox';
|
|
1746
|
+
const Label = 'Label';
|
|
1747
|
+
const TreeItem = 'TreeItem';
|
|
1748
|
+
const TreeItemActive = 'TreeItemActive';
|
|
1749
|
+
const Viewlet = 'Viewlet';
|
|
1750
|
+
const Welcome = 'Welcome';
|
|
1751
|
+
const WelcomeMessage = 'WelcomeMessage';
|
|
1752
|
+
|
|
1753
|
+
const HandleBlur = 'handleBlur';
|
|
1754
|
+
const HandleClick = 'handleClick';
|
|
1755
|
+
const handleClickOpenFolder$1 = 'handleClickOpenFolder';
|
|
1756
|
+
const HandleContextMenu = 'handleContextMenu';
|
|
1757
|
+
const HandleFocus = 'handleFocus';
|
|
1758
|
+
const HandlePointerDown = 'handlePointerDown';
|
|
1759
|
+
const HandleWheel = 'handleWheel';
|
|
1760
|
+
|
|
1647
1761
|
const Button = 1;
|
|
1648
1762
|
const Div = 4;
|
|
1649
1763
|
const Input = 6;
|
|
@@ -1951,13 +2065,13 @@ const menuEntrySeparator = {
|
|
|
1951
2065
|
|
|
1952
2066
|
const menuEntryNewFile = {
|
|
1953
2067
|
id: 'newFile',
|
|
1954
|
-
label: newFile(),
|
|
2068
|
+
label: newFile$1(),
|
|
1955
2069
|
flags: None$1,
|
|
1956
2070
|
command: 'Explorer.newFile'
|
|
1957
2071
|
};
|
|
1958
2072
|
const menuEntryNewFolder = {
|
|
1959
2073
|
id: 'newFolder',
|
|
1960
|
-
label: newFolder(),
|
|
2074
|
+
label: newFolder$1(),
|
|
1961
2075
|
flags: None$1,
|
|
1962
2076
|
command: 'Explorer.newFolder'
|
|
1963
2077
|
};
|
|
@@ -2062,7 +2176,7 @@ const getVisibleExplorerItems = (items, minLineY, maxLineY, focusedIndex, editin
|
|
|
2062
2176
|
...item,
|
|
2063
2177
|
isFocused: i === focusedIndex,
|
|
2064
2178
|
isEditing: true,
|
|
2065
|
-
icon: getFileIcon({
|
|
2179
|
+
icon: getFileIcon$1({
|
|
2066
2180
|
name: editingValue
|
|
2067
2181
|
})
|
|
2068
2182
|
});
|
|
@@ -2091,49 +2205,40 @@ const getVisibleExplorerItems = (items, minLineY, maxLineY, focusedIndex, editin
|
|
|
2091
2205
|
|
|
2092
2206
|
const handleBlur = state => {
|
|
2093
2207
|
// TODO when blur event occurs because of context menu, focused index should stay the same
|
|
2094
|
-
// but focus outline should be removed
|
|
2095
|
-
const {
|
|
2096
|
-
editingType
|
|
2097
|
-
} = state;
|
|
2098
|
-
if (editingType !== None$3) {
|
|
2099
|
-
return state;
|
|
2100
|
-
}
|
|
2101
|
-
return {
|
|
2102
|
-
...state,
|
|
2103
|
-
focused: false
|
|
2104
|
-
};
|
|
2105
|
-
};
|
|
2106
|
-
|
|
2107
|
-
// TODO viewlet should only have create and refresh functions
|
|
2108
|
-
// every thing else can be in a separate module <viewlet>.lazy.js
|
|
2109
|
-
// and <viewlet>.ipc.js
|
|
2110
|
-
|
|
2111
|
-
// viewlet: creating | refreshing | done | disposed
|
|
2112
|
-
// TODO recycle viewlets (maybe)
|
|
2113
|
-
|
|
2114
|
-
// TODO instead of root string, there should be a root dirent
|
|
2115
|
-
|
|
2116
|
-
// TODO rename dirents to items, then can use virtual list component directly
|
|
2117
|
-
|
|
2118
|
-
// TODO support multiselection and removing multiple dirents
|
|
2119
|
-
|
|
2120
|
-
// TODO use posInSet and setSize properties to compute more effectively
|
|
2121
|
-
|
|
2122
|
-
// TODO much shared logic with newFolder
|
|
2123
|
-
|
|
2124
|
-
const handleClickFile$1 = async (state, dirent, index, keepFocus = false) => {
|
|
2125
|
-
// await Command.execute(/* Main.openAbsolutePath */ 'Main.openUri', /* absolutePath */ dirent.path, /* focus */ !keepFocus)
|
|
2208
|
+
// but focus outline should be removed
|
|
2209
|
+
const {
|
|
2210
|
+
editingType
|
|
2211
|
+
} = state;
|
|
2212
|
+
if (editingType !== None$3) {
|
|
2213
|
+
return state;
|
|
2214
|
+
}
|
|
2126
2215
|
return {
|
|
2127
2216
|
...state,
|
|
2128
|
-
|
|
2129
|
-
focused: keepFocus
|
|
2217
|
+
focused: false
|
|
2130
2218
|
};
|
|
2131
2219
|
};
|
|
2132
|
-
|
|
2220
|
+
|
|
2221
|
+
const getFileIcon = dirent => {
|
|
2222
|
+
if (dirent.type === File) {
|
|
2223
|
+
return invoke('IconTheme.getFileIcon', {
|
|
2224
|
+
name: dirent.name
|
|
2225
|
+
});
|
|
2226
|
+
}
|
|
2227
|
+
return invoke('IconTheme.getFolderIcon', {
|
|
2228
|
+
name: dirent.name
|
|
2229
|
+
});
|
|
2230
|
+
};
|
|
2231
|
+
const getFileIcons = async dirents => {
|
|
2232
|
+
const promises = dirents.map(getFileIcon);
|
|
2233
|
+
const icons = await Promise.all(promises);
|
|
2234
|
+
return icons;
|
|
2235
|
+
};
|
|
2236
|
+
|
|
2237
|
+
const handleClickDirectory = async (state, dirent, index, keepFocus) => {
|
|
2133
2238
|
dirent.type = DirectoryExpanding;
|
|
2134
2239
|
// TODO handle error
|
|
2135
2240
|
const dirents = await getChildDirents(state.pathSeparator, dirent);
|
|
2136
|
-
const state2 =
|
|
2241
|
+
const state2 = state;
|
|
2137
2242
|
if (!state2) {
|
|
2138
2243
|
return state;
|
|
2139
2244
|
}
|
|
@@ -2154,24 +2259,19 @@ const handleClickDirectory$1 = async (state, dirent, index, keepFocus) => {
|
|
|
2154
2259
|
} = state2;
|
|
2155
2260
|
// TODO when focused index has changed while expanding, don't update it
|
|
2156
2261
|
const maxLineY = getExplorerMaxLineY(minLineY, height, itemHeight, newDirents.length);
|
|
2262
|
+
const parts = newDirents.slice(minLineY, maxLineY);
|
|
2263
|
+
const icons = await getFileIcons(parts);
|
|
2157
2264
|
return {
|
|
2158
2265
|
...state,
|
|
2159
2266
|
items: newDirents,
|
|
2267
|
+
icons,
|
|
2160
2268
|
focusedIndex: newIndex,
|
|
2161
2269
|
focused: keepFocus,
|
|
2162
2270
|
maxLineY
|
|
2163
2271
|
};
|
|
2164
2272
|
};
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
dirent.icon = getIcon();
|
|
2168
|
-
return {
|
|
2169
|
-
...state,
|
|
2170
|
-
focusedIndex: index,
|
|
2171
|
-
focused: keepFocus
|
|
2172
|
-
};
|
|
2173
|
-
};
|
|
2174
|
-
const handleClickDirectoryExpanded$1 = (state, dirent, index, keepFocus) => {
|
|
2273
|
+
|
|
2274
|
+
const handleClickDirectoryExpanded$1 = async (state, dirent, index, keepFocus) => {
|
|
2175
2275
|
const {
|
|
2176
2276
|
minLineY,
|
|
2177
2277
|
maxLineY,
|
|
@@ -2190,9 +2290,12 @@ const handleClickDirectoryExpanded$1 = (state, dirent, index, keepFocus) => {
|
|
|
2190
2290
|
const newMaxLineY = Math.min(maxLineY, newTotal);
|
|
2191
2291
|
const newMinLineY = newMaxLineY - visibleItems;
|
|
2192
2292
|
const deltaY = newMinLineY * itemHeight;
|
|
2293
|
+
const parts = newDirents.slice(minLineY, maxLineY);
|
|
2294
|
+
const icons = await getFileIcons(parts);
|
|
2193
2295
|
return {
|
|
2194
2296
|
...state,
|
|
2195
2297
|
items: newDirents,
|
|
2298
|
+
icons,
|
|
2196
2299
|
focusedIndex: index,
|
|
2197
2300
|
focused: keepFocus,
|
|
2198
2301
|
minLineY: newMinLineY,
|
|
@@ -2200,16 +2303,39 @@ const handleClickDirectoryExpanded$1 = (state, dirent, index, keepFocus) => {
|
|
|
2200
2303
|
deltaY
|
|
2201
2304
|
};
|
|
2202
2305
|
}
|
|
2306
|
+
const parts = newDirents.slice(state.minLineY, state.maxLineY);
|
|
2307
|
+
const icons = await getFileIcons(parts);
|
|
2203
2308
|
return {
|
|
2204
2309
|
...state,
|
|
2205
2310
|
items: newDirents,
|
|
2311
|
+
icons,
|
|
2312
|
+
focusedIndex: index,
|
|
2313
|
+
focused: keepFocus
|
|
2314
|
+
};
|
|
2315
|
+
};
|
|
2316
|
+
|
|
2317
|
+
const handleClickDirectoryExpanding = (state, dirent, index, keepFocus) => {
|
|
2318
|
+
dirent.type = Directory;
|
|
2319
|
+
dirent.icon = getIcon();
|
|
2320
|
+
return {
|
|
2321
|
+
...state,
|
|
2322
|
+
focusedIndex: index,
|
|
2323
|
+
focused: keepFocus
|
|
2324
|
+
};
|
|
2325
|
+
};
|
|
2326
|
+
|
|
2327
|
+
const handleClickFile$1 = async (state, dirent, index, keepFocus = false) => {
|
|
2328
|
+
// await Command.execute(/* Main.openAbsolutePath */ 'Main.openUri', /* absolutePath */ dirent.path, /* focus */ !keepFocus)
|
|
2329
|
+
return {
|
|
2330
|
+
...state,
|
|
2206
2331
|
focusedIndex: index,
|
|
2207
2332
|
focused: keepFocus
|
|
2208
2333
|
};
|
|
2209
2334
|
};
|
|
2335
|
+
|
|
2210
2336
|
const handleClickSymLink$1 = async (state, dirent, index) => {
|
|
2211
|
-
await getRealPath();
|
|
2212
|
-
const type = await stat();
|
|
2337
|
+
const realPath = await getRealPath(dirent.path);
|
|
2338
|
+
const type = await stat(realPath);
|
|
2213
2339
|
switch (type) {
|
|
2214
2340
|
case File:
|
|
2215
2341
|
return handleClickFile$1(state, dirent, index);
|
|
@@ -2217,6 +2343,24 @@ const handleClickSymLink$1 = async (state, dirent, index) => {
|
|
|
2217
2343
|
throw new Error(`unsupported file type ${type}`);
|
|
2218
2344
|
}
|
|
2219
2345
|
};
|
|
2346
|
+
|
|
2347
|
+
// TODO viewlet should only have create and refresh functions
|
|
2348
|
+
// every thing else can be in a separate module <viewlet>.lazy.js
|
|
2349
|
+
// and <viewlet>.ipc.js
|
|
2350
|
+
|
|
2351
|
+
// viewlet: creating | refreshing | done | disposed
|
|
2352
|
+
// TODO recycle viewlets (maybe)
|
|
2353
|
+
|
|
2354
|
+
// TODO instead of root string, there should be a root dirent
|
|
2355
|
+
|
|
2356
|
+
// TODO rename dirents to items, then can use virtual list component directly
|
|
2357
|
+
|
|
2358
|
+
// TODO support multiselection and removing multiple dirents
|
|
2359
|
+
|
|
2360
|
+
// TODO use posInSet and setSize properties to compute more effectively
|
|
2361
|
+
|
|
2362
|
+
// TODO much shared logic with newFolder
|
|
2363
|
+
|
|
2220
2364
|
const getClickFn = direntType => {
|
|
2221
2365
|
switch (direntType) {
|
|
2222
2366
|
case File:
|
|
@@ -2224,7 +2368,7 @@ const getClickFn = direntType => {
|
|
|
2224
2368
|
return handleClickFile$1;
|
|
2225
2369
|
case Directory:
|
|
2226
2370
|
case SymLinkFolder:
|
|
2227
|
-
return handleClickDirectory
|
|
2371
|
+
return handleClickDirectory;
|
|
2228
2372
|
case DirectoryExpanding:
|
|
2229
2373
|
return handleClickDirectoryExpanding;
|
|
2230
2374
|
case DirectoryExpanded:
|
|
@@ -2270,10 +2414,6 @@ const getParentStartIndex = (dirents, index) => {
|
|
|
2270
2414
|
const Keyboard = -1;
|
|
2271
2415
|
const LeftClick = 0;
|
|
2272
2416
|
|
|
2273
|
-
const openFolder = async () => {
|
|
2274
|
-
// TODO
|
|
2275
|
-
};
|
|
2276
|
-
|
|
2277
2417
|
// TODO viewlet should only have create and refresh functions
|
|
2278
2418
|
// every thing else can be in a separate module <viewlet>.lazy.js
|
|
2279
2419
|
// and <viewlet>.ipc.js
|
|
@@ -2283,25 +2423,8 @@ const openFolder = async () => {
|
|
|
2283
2423
|
|
|
2284
2424
|
// TODO instead of root string, there should be a root dirent
|
|
2285
2425
|
|
|
2286
|
-
const updateIcon = dirent => {
|
|
2287
|
-
return {
|
|
2288
|
-
...dirent,
|
|
2289
|
-
icon: getIcon()
|
|
2290
|
-
};
|
|
2291
|
-
};
|
|
2292
|
-
const updateIcons = state => {
|
|
2293
|
-
const newDirents = state.items.map(updateIcon);
|
|
2294
|
-
return {
|
|
2295
|
-
...state,
|
|
2296
|
-
items: newDirents
|
|
2297
|
-
};
|
|
2298
|
-
};
|
|
2299
|
-
const handleIconThemeChange = state => {
|
|
2300
|
-
return updateIcons(state);
|
|
2301
|
-
};
|
|
2302
|
-
|
|
2303
2426
|
// TODO rename dirents to items, then can use virtual list component directly
|
|
2304
|
-
const setDeltaY = (state, deltaY) => {
|
|
2427
|
+
const setDeltaY$1 = (state, deltaY) => {
|
|
2305
2428
|
const {
|
|
2306
2429
|
itemHeight,
|
|
2307
2430
|
height,
|
|
@@ -2325,93 +2448,11 @@ const setDeltaY = (state, deltaY) => {
|
|
|
2325
2448
|
};
|
|
2326
2449
|
};
|
|
2327
2450
|
const handleWheel = (state, deltaMode, deltaY) => {
|
|
2328
|
-
return setDeltaY(state, state.deltaY + deltaY);
|
|
2329
|
-
};
|
|
2330
|
-
|
|
2331
|
-
// TODO support multiselection and removing multiple dirents
|
|
2332
|
-
const removeDirent = async state => {
|
|
2333
|
-
if (state.focusedIndex < 0) {
|
|
2334
|
-
return state;
|
|
2335
|
-
}
|
|
2336
|
-
const dirent = getFocusedDirent$1(state);
|
|
2337
|
-
const absolutePath = dirent.path;
|
|
2338
|
-
try {
|
|
2339
|
-
// TODO handle error
|
|
2340
|
-
await remove(absolutePath);
|
|
2341
|
-
} catch (error) {
|
|
2342
|
-
// TODO vscode shows error as alert (no stacktrace) and retry button
|
|
2343
|
-
// maybe should show alert as well, but where to put stacktrace?
|
|
2344
|
-
// on web should probably show notification (dialog)
|
|
2345
|
-
// ErrorHandling.handleError(error)
|
|
2346
|
-
// await ErrorHandling.showErrorDialog(error)
|
|
2347
|
-
return;
|
|
2348
|
-
}
|
|
2349
|
-
// TODO avoid state mutation
|
|
2350
|
-
const newVersion = ++state.version;
|
|
2351
|
-
// TODO race condition
|
|
2352
|
-
// const newState = await loadContent(state:any)
|
|
2353
|
-
if (state.version !== newVersion || state.disposed) {
|
|
2354
|
-
return state;
|
|
2355
|
-
}
|
|
2356
|
-
// TODO is it possible to make this more functional instead of mutating state?
|
|
2357
|
-
// maybe every function returns a new state?
|
|
2358
|
-
const index = state.items.indexOf(dirent);
|
|
2359
|
-
let deleteEnd = index + 1;
|
|
2360
|
-
for (; deleteEnd < state.items.length; deleteEnd++) {
|
|
2361
|
-
if (state.items[deleteEnd].depth <= dirent.depth) {
|
|
2362
|
-
break;
|
|
2363
|
-
}
|
|
2364
|
-
}
|
|
2365
|
-
const deleteCount = deleteEnd - index;
|
|
2366
|
-
const newDirents = [...state.items];
|
|
2367
|
-
newDirents.splice(index, deleteCount);
|
|
2368
|
-
let indexToFocus = -1;
|
|
2369
|
-
if (newDirents.length === 0) {
|
|
2370
|
-
indexToFocus = -1;
|
|
2371
|
-
} else if (index < state.focusedIndex) {
|
|
2372
|
-
indexToFocus = state.focusedIndex - 1;
|
|
2373
|
-
} else if (index === state.focusedIndex) {
|
|
2374
|
-
indexToFocus = Math.max(state.focusedIndex - 1, 0);
|
|
2375
|
-
} else {
|
|
2376
|
-
indexToFocus = Math.max(state.focusedIndex - 1, 0);
|
|
2377
|
-
}
|
|
2378
|
-
return {
|
|
2379
|
-
...state,
|
|
2380
|
-
items: newDirents,
|
|
2381
|
-
focusedIndex: indexToFocus
|
|
2382
|
-
};
|
|
2383
|
-
};
|
|
2384
|
-
const renameDirent = state => {
|
|
2385
|
-
const {
|
|
2386
|
-
focusedIndex,
|
|
2387
|
-
items
|
|
2388
|
-
} = state;
|
|
2389
|
-
const item = items[focusedIndex];
|
|
2390
|
-
// Focus.setFocus(FocusKey.ExplorerEditBox)
|
|
2391
|
-
return {
|
|
2392
|
-
...state,
|
|
2393
|
-
editingIndex: focusedIndex,
|
|
2394
|
-
editingType: Rename,
|
|
2395
|
-
editingValue: item.name
|
|
2396
|
-
};
|
|
2451
|
+
return setDeltaY$1(state, state.deltaY + deltaY);
|
|
2397
2452
|
};
|
|
2398
2453
|
|
|
2399
2454
|
// TODO use posInSet and setSize properties to compute more effectively
|
|
2400
2455
|
|
|
2401
|
-
const cancelEdit = state => {
|
|
2402
|
-
const {
|
|
2403
|
-
editingIndex
|
|
2404
|
-
} = state;
|
|
2405
|
-
return {
|
|
2406
|
-
...state,
|
|
2407
|
-
focusedIndex: editingIndex,
|
|
2408
|
-
focused: true,
|
|
2409
|
-
editingIndex: -1,
|
|
2410
|
-
editingValue: '',
|
|
2411
|
-
editingType: None$3
|
|
2412
|
-
};
|
|
2413
|
-
};
|
|
2414
|
-
|
|
2415
2456
|
// TODO much shared logic with newFolder
|
|
2416
2457
|
|
|
2417
2458
|
const handleClickFile = async (state, dirent, index, keepFocus = false) => {
|
|
@@ -2422,39 +2463,6 @@ const handleClickFile = async (state, dirent, index, keepFocus = false) => {
|
|
|
2422
2463
|
focused: keepFocus
|
|
2423
2464
|
};
|
|
2424
2465
|
};
|
|
2425
|
-
const handleClickDirectory = async (state, dirent, index, keepFocus) => {
|
|
2426
|
-
dirent.type = DirectoryExpanding;
|
|
2427
|
-
// TODO handle error
|
|
2428
|
-
const dirents = await getChildDirents(state.pathSeparator, dirent);
|
|
2429
|
-
const state2 = {};
|
|
2430
|
-
if (!state2) {
|
|
2431
|
-
return state;
|
|
2432
|
-
}
|
|
2433
|
-
// TODO use Viewlet.getState here and check if it exists
|
|
2434
|
-
const newIndex = state2.items.indexOf(dirent);
|
|
2435
|
-
// TODO if viewlet is disposed or root has changed, return
|
|
2436
|
-
if (newIndex === -1) {
|
|
2437
|
-
return state;
|
|
2438
|
-
}
|
|
2439
|
-
const newDirents = [...state2.items];
|
|
2440
|
-
newDirents.splice(newIndex + 1, 0, ...dirents);
|
|
2441
|
-
dirent.type = DirectoryExpanded;
|
|
2442
|
-
dirent.icon = getIcon();
|
|
2443
|
-
const {
|
|
2444
|
-
height,
|
|
2445
|
-
itemHeight,
|
|
2446
|
-
minLineY
|
|
2447
|
-
} = state2;
|
|
2448
|
-
// TODO when focused index has changed while expanding, don't update it
|
|
2449
|
-
const maxLineY = getExplorerMaxLineY(minLineY, height, itemHeight, newDirents.length);
|
|
2450
|
-
return {
|
|
2451
|
-
...state,
|
|
2452
|
-
items: newDirents,
|
|
2453
|
-
focusedIndex: newIndex,
|
|
2454
|
-
focused: keepFocus,
|
|
2455
|
-
maxLineY
|
|
2456
|
-
};
|
|
2457
|
-
};
|
|
2458
2466
|
const handleClickDirectoryExpanded = (state, dirent, index, keepFocus) => {
|
|
2459
2467
|
const {
|
|
2460
2468
|
minLineY,
|
|
@@ -2522,8 +2530,8 @@ const handleClickCurrentButKeepFocus = state => {
|
|
|
2522
2530
|
// export const handleBlur=()=>{}
|
|
2523
2531
|
|
|
2524
2532
|
const handleClickSymLink = async (state, dirent, index) => {
|
|
2525
|
-
await getRealPath();
|
|
2526
|
-
const type = await stat();
|
|
2533
|
+
const realPath = await getRealPath(dirent.path);
|
|
2534
|
+
const type = await stat(realPath);
|
|
2527
2535
|
switch (type) {
|
|
2528
2536
|
case File:
|
|
2529
2537
|
return handleClickFile(state, dirent, index);
|
|
@@ -2604,6 +2612,10 @@ const handleArrowLeft = state => {
|
|
|
2604
2612
|
|
|
2605
2613
|
// TODO maybe just insert items into explorer and refresh whole explorer
|
|
2606
2614
|
|
|
2615
|
+
const openFolder = async () => {
|
|
2616
|
+
// TODO
|
|
2617
|
+
};
|
|
2618
|
+
|
|
2607
2619
|
const handleClickOpenFolder = async state => {
|
|
2608
2620
|
await openFolder();
|
|
2609
2621
|
return state;
|
|
@@ -2650,6 +2662,21 @@ const handleContextMenu = (state, button, x, y) => {
|
|
|
2650
2662
|
}
|
|
2651
2663
|
};
|
|
2652
2664
|
|
|
2665
|
+
const handleCopy = async state => {
|
|
2666
|
+
// TODO handle multiple files
|
|
2667
|
+
// TODO if not file is selected, what happens?
|
|
2668
|
+
const dirent = getFocusedDirent$1(state);
|
|
2669
|
+
if (!dirent) {
|
|
2670
|
+
console.info('[ViewletExplorer/handleCopy] no dirent selected');
|
|
2671
|
+
return;
|
|
2672
|
+
}
|
|
2673
|
+
const absolutePath = dirent.path;
|
|
2674
|
+
// TODO handle copy error gracefully
|
|
2675
|
+
const files = [absolutePath];
|
|
2676
|
+
await writeNativeFiles('copy', files);
|
|
2677
|
+
return state;
|
|
2678
|
+
};
|
|
2679
|
+
|
|
2653
2680
|
const getFilePathElectron = async file => {
|
|
2654
2681
|
return invoke('GetFilePathElectron.getFilePathElectron', file);
|
|
2655
2682
|
};
|
|
@@ -2661,10 +2688,10 @@ const mergeDirents$2 = (oldDirents, newDirents) => {
|
|
|
2661
2688
|
// TODO copy files in parallel
|
|
2662
2689
|
const copyFilesElectron = async (root, pathSeparator, files) => {
|
|
2663
2690
|
for (const file of files) {
|
|
2664
|
-
await getFilePathElectron(file);
|
|
2691
|
+
const from = await getFilePathElectron(file);
|
|
2665
2692
|
// const from = file.path
|
|
2666
|
-
join(pathSeparator, root, file.name);
|
|
2667
|
-
await copy$1();
|
|
2693
|
+
const to = join(pathSeparator, root, file.name);
|
|
2694
|
+
await copy$1(from, to);
|
|
2668
2695
|
}
|
|
2669
2696
|
};
|
|
2670
2697
|
const getMergedDirents$2 = async (root, pathSeparator, dirents) => {
|
|
@@ -2757,7 +2784,10 @@ const handleDropIntoFolder = async (state, dirent, index, files) => {
|
|
|
2757
2784
|
items
|
|
2758
2785
|
} = state;
|
|
2759
2786
|
for (const file of files) {
|
|
2760
|
-
|
|
2787
|
+
// TODO path basename
|
|
2788
|
+
const baseName = file;
|
|
2789
|
+
const to = dirent.path + pathSeparator + baseName;
|
|
2790
|
+
await copy$1(file, to);
|
|
2761
2791
|
}
|
|
2762
2792
|
const childDirents = await getChildDirents(pathSeparator, dirent);
|
|
2763
2793
|
const mergedDirents = getMergedDirents(items, index, dirent, childDirents);
|
|
@@ -2787,72 +2817,16 @@ const handleDropIndex = (state, index, files) => {
|
|
|
2787
2817
|
// TODO if it is a file, drop into the folder of the file
|
|
2788
2818
|
// TODO if it is a folder, drop into the folder
|
|
2789
2819
|
// TODO if it is a symlink, read symlink and determine if file can be dropped
|
|
2790
|
-
switch (dirent.type) {
|
|
2791
|
-
case Directory:
|
|
2792
|
-
case DirectoryExpanded:
|
|
2793
|
-
return handleDropIntoFolder(state, dirent, index, files);
|
|
2794
|
-
case File:
|
|
2795
|
-
return handleDropIntoFile(state, dirent, index, files);
|
|
2796
|
-
default:
|
|
2797
|
-
return state;
|
|
2798
|
-
}
|
|
2799
|
-
};
|
|
2800
|
-
|
|
2801
|
-
const normalizeLine = line => {
|
|
2802
|
-
if (line.startsWith('Error: ')) {
|
|
2803
|
-
return line.slice('Error: '.length);
|
|
2804
|
-
}
|
|
2805
|
-
if (line.startsWith('VError: ')) {
|
|
2806
|
-
return line.slice('VError: '.length);
|
|
2807
|
-
}
|
|
2808
|
-
return line;
|
|
2809
|
-
};
|
|
2810
|
-
const getCombinedMessage = (error, message) => {
|
|
2811
|
-
const stringifiedError = normalizeLine(`${error}`);
|
|
2812
|
-
if (message) {
|
|
2813
|
-
return `${message}: ${stringifiedError}`;
|
|
2814
|
-
}
|
|
2815
|
-
return stringifiedError;
|
|
2816
|
-
};
|
|
2817
|
-
const NewLine = '\n';
|
|
2818
|
-
const getNewLineIndex = (string, startIndex = undefined) => {
|
|
2819
|
-
return string.indexOf(NewLine, startIndex);
|
|
2820
|
-
};
|
|
2821
|
-
const mergeStacks = (parent, child) => {
|
|
2822
|
-
if (!child) {
|
|
2823
|
-
return parent;
|
|
2824
|
-
}
|
|
2825
|
-
const parentNewLineIndex = getNewLineIndex(parent);
|
|
2826
|
-
const childNewLineIndex = getNewLineIndex(child);
|
|
2827
|
-
if (childNewLineIndex === -1) {
|
|
2828
|
-
return parent;
|
|
2829
|
-
}
|
|
2830
|
-
const parentFirstLine = parent.slice(0, parentNewLineIndex);
|
|
2831
|
-
const childRest = child.slice(childNewLineIndex);
|
|
2832
|
-
const childFirstLine = normalizeLine(child.slice(0, childNewLineIndex));
|
|
2833
|
-
if (parentFirstLine.includes(childFirstLine)) {
|
|
2834
|
-
return parentFirstLine + childRest;
|
|
2820
|
+
switch (dirent.type) {
|
|
2821
|
+
case Directory:
|
|
2822
|
+
case DirectoryExpanded:
|
|
2823
|
+
return handleDropIntoFolder(state, dirent, index, files);
|
|
2824
|
+
case File:
|
|
2825
|
+
return handleDropIntoFile(state, dirent, index, files);
|
|
2826
|
+
default:
|
|
2827
|
+
return state;
|
|
2835
2828
|
}
|
|
2836
|
-
return child;
|
|
2837
2829
|
};
|
|
2838
|
-
class VError extends Error {
|
|
2839
|
-
constructor(error, message) {
|
|
2840
|
-
const combinedMessage = getCombinedMessage(error, message);
|
|
2841
|
-
super(combinedMessage);
|
|
2842
|
-
this.name = 'VError';
|
|
2843
|
-
if (error instanceof Error) {
|
|
2844
|
-
this.stack = mergeStacks(this.stack, error.stack);
|
|
2845
|
-
}
|
|
2846
|
-
if (error.codeFrame) {
|
|
2847
|
-
// @ts-ignore
|
|
2848
|
-
this.codeFrame = error.codeFrame;
|
|
2849
|
-
}
|
|
2850
|
-
if (error.code) {
|
|
2851
|
-
// @ts-ignore
|
|
2852
|
-
this.code = error.code;
|
|
2853
|
-
}
|
|
2854
|
-
}
|
|
2855
|
-
}
|
|
2856
2830
|
|
|
2857
2831
|
const handleDrop = async (state, x, y, files) => {
|
|
2858
2832
|
try {
|
|
@@ -2868,6 +2842,25 @@ const handleDrop = async (state, x, y, files) => {
|
|
|
2868
2842
|
}
|
|
2869
2843
|
};
|
|
2870
2844
|
|
|
2845
|
+
const updateIcon = dirent => {
|
|
2846
|
+
return {
|
|
2847
|
+
...dirent,
|
|
2848
|
+
icon: getIcon()
|
|
2849
|
+
};
|
|
2850
|
+
};
|
|
2851
|
+
|
|
2852
|
+
const updateIcons = state => {
|
|
2853
|
+
const newDirents = state.items.map(updateIcon);
|
|
2854
|
+
return {
|
|
2855
|
+
...state,
|
|
2856
|
+
items: newDirents
|
|
2857
|
+
};
|
|
2858
|
+
};
|
|
2859
|
+
|
|
2860
|
+
const handleIconThemeChange = state => {
|
|
2861
|
+
return updateIcons(state);
|
|
2862
|
+
};
|
|
2863
|
+
|
|
2871
2864
|
const getTopLevelDirents = (root, pathSeparator, excluded) => {
|
|
2872
2865
|
if (!root) {
|
|
2873
2866
|
return [];
|
|
@@ -2915,8 +2908,8 @@ const handlePasteCopy = async (state, nativeFiles) => {
|
|
|
2915
2908
|
// TODO handle pasting files into hardlink
|
|
2916
2909
|
// TODO what if folder is big and it takes a long time
|
|
2917
2910
|
for (const source of nativeFiles.files) {
|
|
2918
|
-
join(state.pathSeperator, state.root, getBaseName(state.pathSeparator, source));
|
|
2919
|
-
await copy$1();
|
|
2911
|
+
const target = join(state.pathSeperator, state.root, getBaseName(state.pathSeparator, source));
|
|
2912
|
+
await copy$1(source, target);
|
|
2920
2913
|
}
|
|
2921
2914
|
// TODO only update folder at which level it changed
|
|
2922
2915
|
return updateRoot(state);
|
|
@@ -2924,8 +2917,8 @@ const handlePasteCopy = async (state, nativeFiles) => {
|
|
|
2924
2917
|
|
|
2925
2918
|
const handlePasteCut = async (state, nativeFiles) => {
|
|
2926
2919
|
for (const source of nativeFiles.files) {
|
|
2927
|
-
`${state.root}${state.pathSeparator}${getBaseName(state.pathSeparator, source)}`;
|
|
2928
|
-
await rename$1();
|
|
2920
|
+
const target = `${state.root}${state.pathSeparator}${getBaseName(state.pathSeparator, source)}`;
|
|
2921
|
+
await rename$1(source, target);
|
|
2929
2922
|
}
|
|
2930
2923
|
return state;
|
|
2931
2924
|
};
|
|
@@ -2939,8 +2932,7 @@ const None = 'none';
|
|
|
2939
2932
|
const Copy = 'copy';
|
|
2940
2933
|
const Cut = 'cut';
|
|
2941
2934
|
|
|
2942
|
-
const
|
|
2943
|
-
const nativeFiles = await readNativeFiles();
|
|
2935
|
+
const getPasteHandler = type => {
|
|
2944
2936
|
// TODO detect cut/paste event, not sure if that is possible
|
|
2945
2937
|
// TODO check that pasted folder is not a parent folder of opened folder
|
|
2946
2938
|
// TODO support pasting multiple paths
|
|
@@ -2953,18 +2945,36 @@ const handlePaste = async state => {
|
|
|
2953
2945
|
// TODO but what if a file is currently selected? Then maybe the parent folder
|
|
2954
2946
|
// TODO but will it work if the folder is a symlink?
|
|
2955
2947
|
// TODO handle error gracefully when copy fails
|
|
2956
|
-
switch (
|
|
2948
|
+
switch (type) {
|
|
2957
2949
|
case None:
|
|
2958
|
-
return handlePasteNone
|
|
2950
|
+
return handlePasteNone;
|
|
2959
2951
|
case Copy:
|
|
2960
|
-
return handlePasteCopy
|
|
2952
|
+
return handlePasteCopy;
|
|
2961
2953
|
case Cut:
|
|
2962
|
-
return handlePasteCut
|
|
2954
|
+
return handlePasteCut;
|
|
2963
2955
|
default:
|
|
2964
|
-
throw new Error(`unexpected native paste type: ${
|
|
2956
|
+
throw new Error(`unexpected native paste type: ${type}`);
|
|
2965
2957
|
}
|
|
2966
2958
|
};
|
|
2967
2959
|
|
|
2960
|
+
const handlePaste = async state => {
|
|
2961
|
+
const nativeFiles = await readNativeFiles();
|
|
2962
|
+
// TODO detect cut/paste event, not sure if that is possible
|
|
2963
|
+
// TODO check that pasted folder is not a parent folder of opened folder
|
|
2964
|
+
// TODO support pasting multiple paths
|
|
2965
|
+
// TODO what happens when pasting multiple paths, but some of them error?
|
|
2966
|
+
// how many error messages should be shown? Should the operation be undone?
|
|
2967
|
+
// TODO what if it is a large folder and takes a long time to copy? Should show progress
|
|
2968
|
+
// TODO what if there is a permission error? Probably should show a modal to ask for permission
|
|
2969
|
+
// TODO if error is EEXISTS, just rename the copy (e.g. file-copy-1.txt, file-copy-2.txt)
|
|
2970
|
+
// TODO actual target should be selected folder
|
|
2971
|
+
// TODO but what if a file is currently selected? Then maybe the parent folder
|
|
2972
|
+
// TODO but will it work if the folder is a symlink?
|
|
2973
|
+
// TODO handle error gracefully when copy fails
|
|
2974
|
+
const fn = getPasteHandler(nativeFiles.type);
|
|
2975
|
+
return fn(state, nativeFiles);
|
|
2976
|
+
};
|
|
2977
|
+
|
|
2968
2978
|
const handlePointerDown = (state, button, x, y) => {
|
|
2969
2979
|
const index = getIndexFromPosition(state, x, y);
|
|
2970
2980
|
if (button === LeftClick && index === -1) {
|
|
@@ -2977,6 +2987,34 @@ const handlePointerDown = (state, button, x, y) => {
|
|
|
2977
2987
|
return state;
|
|
2978
2988
|
};
|
|
2979
2989
|
|
|
2990
|
+
const handleUpload = async (state, dirents) => {
|
|
2991
|
+
const {
|
|
2992
|
+
root,
|
|
2993
|
+
pathSeparator
|
|
2994
|
+
} = state;
|
|
2995
|
+
for (const dirent of dirents) {
|
|
2996
|
+
// TODO switch
|
|
2997
|
+
// TODO symlink might not be possible to be copied
|
|
2998
|
+
// TODO create folder if type is 2
|
|
2999
|
+
if (dirent.type === /* File */1) {
|
|
3000
|
+
// TODO reading text might be inefficient for binary files
|
|
3001
|
+
// but not sure how else to send them via jsonrpc
|
|
3002
|
+
const content = await dirent.file.text();
|
|
3003
|
+
const absolutePath = [root, dirent.file.name].join(pathSeparator);
|
|
3004
|
+
await writeFile(absolutePath, content);
|
|
3005
|
+
}
|
|
3006
|
+
}
|
|
3007
|
+
};
|
|
3008
|
+
|
|
3009
|
+
const getWorkspacePath = () => {
|
|
3010
|
+
return invoke('Workspace.getPath');
|
|
3011
|
+
};
|
|
3012
|
+
|
|
3013
|
+
const EmptyString = '';
|
|
3014
|
+
|
|
3015
|
+
const Fulfilled = 'fulfilled';
|
|
3016
|
+
const Rejected = 'rejected';
|
|
3017
|
+
|
|
2980
3018
|
// TODO viewlet should only have create and refresh functions
|
|
2981
3019
|
// every thing else can be in a separate module <viewlet>.lazy.js
|
|
2982
3020
|
// and <viewlet>.ipc.js
|
|
@@ -2987,12 +3025,95 @@ const handlePointerDown = (state, button, x, y) => {
|
|
|
2987
3025
|
// TODO instead of root string, there should be a root dirent
|
|
2988
3026
|
|
|
2989
3027
|
const getPathSeparator = root => {
|
|
2990
|
-
return getPathSeparator$1();
|
|
3028
|
+
return getPathSeparator$1(root);
|
|
3029
|
+
};
|
|
3030
|
+
const getSavedChildDirents = (map, path, depth, excluded, pathSeparator) => {
|
|
3031
|
+
const children = map[path];
|
|
3032
|
+
if (!children) {
|
|
3033
|
+
return [];
|
|
3034
|
+
}
|
|
3035
|
+
const dirents = [];
|
|
3036
|
+
sortExplorerItems(children);
|
|
3037
|
+
const visible = [];
|
|
3038
|
+
const displayRoot = path.endsWith(pathSeparator) ? path : path + pathSeparator;
|
|
3039
|
+
for (const child of children) {
|
|
3040
|
+
if (excluded.includes(child.name)) {
|
|
3041
|
+
continue;
|
|
3042
|
+
}
|
|
3043
|
+
visible.push(child);
|
|
3044
|
+
}
|
|
3045
|
+
const visibleLength = visible.length;
|
|
3046
|
+
for (let i = 0; i < visibleLength; i++) {
|
|
3047
|
+
const child = visible[i];
|
|
3048
|
+
const {
|
|
3049
|
+
name,
|
|
3050
|
+
type
|
|
3051
|
+
} = child;
|
|
3052
|
+
const childPath = displayRoot + name;
|
|
3053
|
+
if ((child.type === Directory || child.type === SymLinkFolder) && childPath in map) {
|
|
3054
|
+
dirents.push({
|
|
3055
|
+
depth,
|
|
3056
|
+
posInSet: i + 1,
|
|
3057
|
+
setSize: visibleLength,
|
|
3058
|
+
icon: getFolderIcon(),
|
|
3059
|
+
name,
|
|
3060
|
+
path: childPath,
|
|
3061
|
+
type: DirectoryExpanded
|
|
3062
|
+
});
|
|
3063
|
+
dirents.push(...getSavedChildDirents(map, childPath, depth + 1, excluded, pathSeparator));
|
|
3064
|
+
} else {
|
|
3065
|
+
dirents.push({
|
|
3066
|
+
depth,
|
|
3067
|
+
posInSet: i + 1,
|
|
3068
|
+
setSize: visibleLength,
|
|
3069
|
+
icon: getIcon(),
|
|
3070
|
+
name,
|
|
3071
|
+
path: childPath,
|
|
3072
|
+
type
|
|
3073
|
+
});
|
|
3074
|
+
}
|
|
3075
|
+
}
|
|
3076
|
+
return dirents;
|
|
3077
|
+
};
|
|
3078
|
+
const createDirents = (root, expandedDirentPaths, expandedDirentChildren, excluded, pathSeparator) => {
|
|
3079
|
+
const dirents = [];
|
|
3080
|
+
const map = Object.create(null);
|
|
3081
|
+
for (let i = 0; i < expandedDirentPaths.length; i++) {
|
|
3082
|
+
const path = expandedDirentPaths[i];
|
|
3083
|
+
const children = expandedDirentChildren[i];
|
|
3084
|
+
if (children.status === Fulfilled) {
|
|
3085
|
+
map[path] = children.value;
|
|
3086
|
+
}
|
|
3087
|
+
}
|
|
3088
|
+
dirents.push(...getSavedChildDirents(map, root, 1, excluded, pathSeparator));
|
|
3089
|
+
return dirents;
|
|
3090
|
+
};
|
|
3091
|
+
const getSavedExpandedPaths = (savedState, root) => {
|
|
3092
|
+
if (savedState && savedState.root !== root) {
|
|
3093
|
+
return [];
|
|
3094
|
+
}
|
|
3095
|
+
if (savedState && savedState.expandedPaths && Array.isArray(savedState.expandedPaths)) {
|
|
3096
|
+
return savedState.expandedPaths;
|
|
3097
|
+
}
|
|
3098
|
+
return [];
|
|
2991
3099
|
};
|
|
2992
3100
|
const restoreExpandedState = async (savedState, root, pathSeparator, excluded) => {
|
|
2993
|
-
|
|
3101
|
+
// TODO read all opened folders in parallel
|
|
3102
|
+
// ignore ENOENT errors
|
|
3103
|
+
// ignore ENOTDIR errors
|
|
3104
|
+
// merge all dirents
|
|
3105
|
+
// restore scroll location
|
|
3106
|
+
const expandedPaths = getSavedExpandedPaths(savedState, root);
|
|
3107
|
+
if (root === EmptyString) {
|
|
2994
3108
|
return [];
|
|
2995
3109
|
}
|
|
3110
|
+
const expandedDirentPaths = [root, ...expandedPaths];
|
|
3111
|
+
const expandedDirentChildren = await Promise.allSettled(expandedDirentPaths.map(getChildDirentsRaw));
|
|
3112
|
+
if (expandedDirentChildren[0].status === Rejected) {
|
|
3113
|
+
throw expandedDirentChildren[0].reason;
|
|
3114
|
+
}
|
|
3115
|
+
const dirents = createDirents(root, expandedDirentPaths, expandedDirentChildren, excluded, pathSeparator);
|
|
3116
|
+
return dirents;
|
|
2996
3117
|
};
|
|
2997
3118
|
const getExcluded = () => {
|
|
2998
3119
|
const excludedObject = {};
|
|
@@ -3008,11 +3129,12 @@ const getSavedRoot$1 = (savedState, workspacePath) => {
|
|
|
3008
3129
|
return workspacePath;
|
|
3009
3130
|
};
|
|
3010
3131
|
const loadContent = async (state, savedState) => {
|
|
3011
|
-
const
|
|
3132
|
+
const workspacePath = await getWorkspacePath();
|
|
3133
|
+
const root = getSavedRoot$1(savedState, workspacePath);
|
|
3012
3134
|
// TODO path separator could be restored from saved state
|
|
3013
|
-
const pathSeparator = await getPathSeparator(); // TODO only load path separator once
|
|
3135
|
+
const pathSeparator = await getPathSeparator(root); // TODO only load path separator once
|
|
3014
3136
|
const excluded = getExcluded();
|
|
3015
|
-
const restoredDirents = await restoreExpandedState();
|
|
3137
|
+
const restoredDirents = await restoreExpandedState(savedState, root, pathSeparator, excluded);
|
|
3016
3138
|
const {
|
|
3017
3139
|
itemHeight,
|
|
3018
3140
|
height
|
|
@@ -3026,10 +3148,12 @@ const loadContent = async (state, savedState) => {
|
|
|
3026
3148
|
deltaY = savedState.deltaY;
|
|
3027
3149
|
}
|
|
3028
3150
|
const maxLineY = getExplorerMaxLineY(minLineY, height, itemHeight, restoredDirents.length);
|
|
3151
|
+
const icons = await getFileIcons(restoredDirents);
|
|
3029
3152
|
return {
|
|
3030
3153
|
...state,
|
|
3031
3154
|
root,
|
|
3032
3155
|
items: restoredDirents,
|
|
3156
|
+
icons,
|
|
3033
3157
|
minLineY,
|
|
3034
3158
|
deltaY,
|
|
3035
3159
|
maxLineY,
|
|
@@ -3038,6 +3162,55 @@ const loadContent = async (state, savedState) => {
|
|
|
3038
3162
|
};
|
|
3039
3163
|
};
|
|
3040
3164
|
|
|
3165
|
+
const handleWorkspaceChange = async state => {
|
|
3166
|
+
const newRoot = await getWorkspacePath();
|
|
3167
|
+
const state1 = {
|
|
3168
|
+
...state,
|
|
3169
|
+
root: newRoot
|
|
3170
|
+
};
|
|
3171
|
+
const newState = await loadContent(state1, undefined);
|
|
3172
|
+
return newState;
|
|
3173
|
+
};
|
|
3174
|
+
|
|
3175
|
+
const ExplorerEditBox = FocusExplorerEditBox;
|
|
3176
|
+
|
|
3177
|
+
const setFocus = key => {
|
|
3178
|
+
return invoke('Focus.setFocus', key);
|
|
3179
|
+
};
|
|
3180
|
+
|
|
3181
|
+
const newDirent = async (state, editingType) => {
|
|
3182
|
+
// TODO make focus functional instead of side effect
|
|
3183
|
+
await setFocus(ExplorerEditBox);
|
|
3184
|
+
// TODO do it like vscode, select position between folders and files
|
|
3185
|
+
const {
|
|
3186
|
+
focusedIndex,
|
|
3187
|
+
items
|
|
3188
|
+
} = state;
|
|
3189
|
+
if (focusedIndex >= 0) {
|
|
3190
|
+
const dirent = items[focusedIndex];
|
|
3191
|
+
if (dirent.type === Directory) {
|
|
3192
|
+
// TODO handle error
|
|
3193
|
+
// @ts-ignore
|
|
3194
|
+
await handleClickDirectory(state, dirent);
|
|
3195
|
+
}
|
|
3196
|
+
}
|
|
3197
|
+
return {
|
|
3198
|
+
...state,
|
|
3199
|
+
editingIndex: focusedIndex,
|
|
3200
|
+
editingType,
|
|
3201
|
+
editingValue: ''
|
|
3202
|
+
};
|
|
3203
|
+
};
|
|
3204
|
+
|
|
3205
|
+
// TODO much shared logic with newFolder
|
|
3206
|
+
const newFile = state => {
|
|
3207
|
+
return newDirent(state, CreateFile);
|
|
3208
|
+
};
|
|
3209
|
+
|
|
3210
|
+
const newFolder = state => {
|
|
3211
|
+
return newDirent(state, CreateFolder);
|
|
3212
|
+
};
|
|
3213
|
+
|
|
3041
3214
|
const getContaingingFolder = (root, dirents, focusedIndex, pathSeparator) => {
|
|
3042
3215
|
if (focusedIndex < 0) {
|
|
3043
3216
|
return root;
|
|
@@ -3060,9 +3233,127 @@ const openContainingFolder = async state => {
|
|
|
3060
3233
|
return state;
|
|
3061
3234
|
};
|
|
3062
3235
|
|
|
3236
|
+
// TODO support multiselection and removing multiple dirents
|
|
3237
|
+
const removeDirent = async state => {
|
|
3238
|
+
if (state.focusedIndex < 0) {
|
|
3239
|
+
return state;
|
|
3240
|
+
}
|
|
3241
|
+
const dirent = getFocusedDirent$1(state);
|
|
3242
|
+
const absolutePath = dirent.path;
|
|
3243
|
+
try {
|
|
3244
|
+
// TODO handle error
|
|
3245
|
+
await remove(absolutePath);
|
|
3246
|
+
} catch (error) {
|
|
3247
|
+
// TODO vscode shows error as alert (no stacktrace) and retry button
|
|
3248
|
+
// maybe should show alert as well, but where to put stacktrace?
|
|
3249
|
+
// on web should probably show notification (dialog)
|
|
3250
|
+
// ErrorHandling.handleError(error)
|
|
3251
|
+
// await ErrorHandling.showErrorDialog(error)
|
|
3252
|
+
return;
|
|
3253
|
+
}
|
|
3254
|
+
// TODO avoid state mutation
|
|
3255
|
+
const newVersion = ++state.version;
|
|
3256
|
+
// TODO race condition
|
|
3257
|
+
// const newState = await loadContent(state:any)
|
|
3258
|
+
if (state.version !== newVersion || state.disposed) {
|
|
3259
|
+
return state;
|
|
3260
|
+
}
|
|
3261
|
+
// TODO is it possible to make this more functional instead of mutating state?
|
|
3262
|
+
// maybe every function returns a new state?
|
|
3263
|
+
const index = state.items.indexOf(dirent);
|
|
3264
|
+
let deleteEnd = index + 1;
|
|
3265
|
+
for (; deleteEnd < state.items.length; deleteEnd++) {
|
|
3266
|
+
if (state.items[deleteEnd].depth <= dirent.depth) {
|
|
3267
|
+
break;
|
|
3268
|
+
}
|
|
3269
|
+
}
|
|
3270
|
+
const deleteCount = deleteEnd - index;
|
|
3271
|
+
const newDirents = [...state.items];
|
|
3272
|
+
newDirents.splice(index, deleteCount);
|
|
3273
|
+
let indexToFocus = -1;
|
|
3274
|
+
if (newDirents.length === 0) {
|
|
3275
|
+
indexToFocus = -1;
|
|
3276
|
+
} else if (index < state.focusedIndex) {
|
|
3277
|
+
indexToFocus = state.focusedIndex - 1;
|
|
3278
|
+
} else if (index === state.focusedIndex) {
|
|
3279
|
+
indexToFocus = Math.max(state.focusedIndex - 1, 0);
|
|
3280
|
+
} else {
|
|
3281
|
+
indexToFocus = Math.max(state.focusedIndex - 1, 0);
|
|
3282
|
+
}
|
|
3283
|
+
return {
|
|
3284
|
+
...state,
|
|
3285
|
+
items: newDirents,
|
|
3286
|
+
focusedIndex: indexToFocus
|
|
3287
|
+
};
|
|
3288
|
+
};
|
|
3289
|
+
|
|
3290
|
+
const renameDirent = state => {
|
|
3291
|
+
const {
|
|
3292
|
+
focusedIndex,
|
|
3293
|
+
items
|
|
3294
|
+
} = state;
|
|
3295
|
+
const item = items[focusedIndex];
|
|
3296
|
+
// Focus.setFocus(FocusKey.ExplorerEditBox)
|
|
3297
|
+
return {
|
|
3298
|
+
...state,
|
|
3299
|
+
editingIndex: focusedIndex,
|
|
3300
|
+
editingType: Rename$1,
|
|
3301
|
+
editingValue: item.name
|
|
3302
|
+
};
|
|
3303
|
+
};
|
|
3304
|
+
|
|
3305
|
+
const getIconVirtualDom = (icon, type = Div) => {
|
|
3306
|
+
return {
|
|
3307
|
+
type,
|
|
3308
|
+
className: `MaskIcon MaskIcon${icon}`,
|
|
3309
|
+
role: None$2,
|
|
3310
|
+
childCount: 0
|
|
3311
|
+
};
|
|
3312
|
+
};
|
|
3313
|
+
|
|
3314
|
+
const getActionButtonVirtualDom = action => {
|
|
3315
|
+
const {
|
|
3316
|
+
id,
|
|
3317
|
+
icon,
|
|
3318
|
+
command
|
|
3319
|
+
} = action;
|
|
3320
|
+
return [{
|
|
3321
|
+
type: Button,
|
|
3322
|
+
className: IconButton,
|
|
3323
|
+
title: id,
|
|
3324
|
+
'data-command': command,
|
|
3325
|
+
childCount: 1
|
|
3326
|
+
}, getIconVirtualDom(icon)];
|
|
3327
|
+
};
|
|
3328
|
+
|
|
3329
|
+
const getActionVirtualDom = action => {
|
|
3330
|
+
switch (action.type) {
|
|
3331
|
+
case Button$2:
|
|
3332
|
+
return getActionButtonVirtualDom(action);
|
|
3333
|
+
default:
|
|
3334
|
+
return [];
|
|
3335
|
+
}
|
|
3336
|
+
};
|
|
3337
|
+
|
|
3338
|
+
const getActionsVirtualDom = actions => {
|
|
3339
|
+
return [{
|
|
3340
|
+
type: Div,
|
|
3341
|
+
className: Actions,
|
|
3342
|
+
role: ToolBar,
|
|
3343
|
+
childCount: actions.length
|
|
3344
|
+
}, ...actions.flatMap(getActionVirtualDom)];
|
|
3345
|
+
};
|
|
3346
|
+
|
|
3347
|
+
const renderActions = state => {
|
|
3348
|
+
const actions = getActions(state.root);
|
|
3349
|
+
const dom = getActionsVirtualDom(actions);
|
|
3350
|
+
return dom;
|
|
3351
|
+
};
|
|
3352
|
+
|
|
3063
3353
|
const getSavedRoot = (savedState, workspacePath) => {
|
|
3064
3354
|
return workspacePath;
|
|
3065
3355
|
};
|
|
3356
|
+
|
|
3066
3357
|
const restoreState = savedState => {
|
|
3067
3358
|
if (!savedState) {
|
|
3068
3359
|
return {
|
|
@@ -3309,12 +3600,14 @@ const revealItem = async (state, uri) => {
|
|
|
3309
3600
|
return revealItemVisible(state, index);
|
|
3310
3601
|
};
|
|
3311
3602
|
|
|
3312
|
-
const isExpandedDirectory = dirent => {
|
|
3313
|
-
return dirent.type === DirectoryExpanded;
|
|
3314
|
-
};
|
|
3315
3603
|
const getPath = dirent => {
|
|
3316
3604
|
return dirent.path;
|
|
3317
3605
|
};
|
|
3606
|
+
|
|
3607
|
+
const isExpandedDirectory = dirent => {
|
|
3608
|
+
return dirent.type === DirectoryExpanded;
|
|
3609
|
+
};
|
|
3610
|
+
|
|
3318
3611
|
const saveState = state => {
|
|
3319
3612
|
const {
|
|
3320
3613
|
items,
|
|
@@ -3333,9 +3626,45 @@ const saveState = state => {
|
|
|
3333
3626
|
};
|
|
3334
3627
|
};
|
|
3335
3628
|
|
|
3629
|
+
const setDeltaY = (state, deltaY) => {
|
|
3630
|
+
const {
|
|
3631
|
+
itemHeight,
|
|
3632
|
+
height,
|
|
3633
|
+
items
|
|
3634
|
+
} = state;
|
|
3635
|
+
if (deltaY < 0) {
|
|
3636
|
+
deltaY = 0;
|
|
3637
|
+
} else if (deltaY > items.length * itemHeight - height) {
|
|
3638
|
+
deltaY = Math.max(items.length * itemHeight - height, 0);
|
|
3639
|
+
}
|
|
3640
|
+
if (state.deltaY === deltaY) {
|
|
3641
|
+
return state;
|
|
3642
|
+
}
|
|
3643
|
+
const minLineY = Math.round(deltaY / itemHeight);
|
|
3644
|
+
const maxLineY = minLineY + Math.round(height / itemHeight);
|
|
3645
|
+
return {
|
|
3646
|
+
...state,
|
|
3647
|
+
deltaY,
|
|
3648
|
+
minLineY,
|
|
3649
|
+
maxLineY
|
|
3650
|
+
};
|
|
3651
|
+
};
|
|
3652
|
+
|
|
3653
|
+
const updateEditingValue = (state, value) => {
|
|
3654
|
+
const editingIcon = getFileIcon$1({
|
|
3655
|
+
name: value
|
|
3656
|
+
});
|
|
3657
|
+
return {
|
|
3658
|
+
...state,
|
|
3659
|
+
editingValue: value,
|
|
3660
|
+
editingIcon
|
|
3661
|
+
};
|
|
3662
|
+
};
|
|
3663
|
+
|
|
3336
3664
|
const commandMap = {
|
|
3337
3665
|
'Explorer.acceptEdit': acceptEdit,
|
|
3338
3666
|
'Explorer.cancelEdit': cancelEdit,
|
|
3667
|
+
'Explorer.collapseAll': collapseAll$1,
|
|
3339
3668
|
'Explorer.copyPath': copyPath$1,
|
|
3340
3669
|
'Explorer.copyRelativePath': copyRelativePath$1,
|
|
3341
3670
|
'Explorer.expandAll': expandAll,
|
|
@@ -3345,6 +3674,7 @@ const commandMap = {
|
|
|
3345
3674
|
'Explorer.focusLast': focusLast,
|
|
3346
3675
|
'Explorer.focusNext': focusNext,
|
|
3347
3676
|
'Explorer.focusPrevious': focusPrevious,
|
|
3677
|
+
'Explorer.getActions': getActions,
|
|
3348
3678
|
'Explorer.getKeyBindings': getKeyBindings,
|
|
3349
3679
|
'Explorer.getMenuEntries': getMenuEntries,
|
|
3350
3680
|
'Explorer.getVirtualDom': getExplorerVirtualDom,
|
|
@@ -3357,18 +3687,27 @@ const commandMap = {
|
|
|
3357
3687
|
'Explorer.handleClickCurrentButKeepFocus': handleClickCurrentButKeepFocus,
|
|
3358
3688
|
'Explorer.handleClickOpenFolder': handleClickOpenFolder,
|
|
3359
3689
|
'Explorer.handleContextMenu': handleContextMenu,
|
|
3690
|
+
'Explorer.handleCopy': handleCopy,
|
|
3360
3691
|
'Explorer.handleDrop': handleDrop,
|
|
3361
3692
|
'Explorer.handleIconThemeChange': handleIconThemeChange,
|
|
3362
3693
|
'Explorer.handlePaste': handlePaste,
|
|
3363
3694
|
'Explorer.handlePointerDown': handlePointerDown,
|
|
3695
|
+
'Explorer.handleUpload': handleUpload,
|
|
3364
3696
|
'Explorer.handleWheel': handleWheel,
|
|
3697
|
+
'Explorer.handleWorkspaceChange': handleWorkspaceChange,
|
|
3365
3698
|
'Explorer.loadContent': loadContent,
|
|
3699
|
+
'Explorer.newFile': newFile,
|
|
3700
|
+
'Explorer.newFolder': newFolder,
|
|
3366
3701
|
'Explorer.openContainingFolder': openContainingFolder,
|
|
3367
3702
|
'Explorer.removeDirent': removeDirent,
|
|
3368
3703
|
'Explorer.renameDirent': renameDirent,
|
|
3704
|
+
'Explorer.renderActions': renderActions,
|
|
3369
3705
|
'Explorer.restoreState': restoreState,
|
|
3370
3706
|
'Explorer.revealItem': revealItem,
|
|
3371
|
-
'Explorer.saveState': saveState
|
|
3707
|
+
'Explorer.saveState': saveState,
|
|
3708
|
+
'Explorer.setDeltaY': setDeltaY,
|
|
3709
|
+
'Explorer.updateEditingValue': updateEditingValue,
|
|
3710
|
+
'Explorer.updateIcons': updateIcons
|
|
3372
3711
|
};
|
|
3373
3712
|
|
|
3374
3713
|
const listen = async () => {
|