@lvce-editor/server 0.39.0 → 0.40.1
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/ThirdPartyNotices.txt +2 -2
- package/package.json +3 -2
- package/src/server.js +105 -429
- package/static/95c7ea1/config/colorTheme.json +0 -98
- package/static/95c7ea1/config/defaultSettings.json +0 -58
- package/static/95c7ea1/config/fileMap.json +0 -16
- package/static/95c7ea1/config/webExtensions.json +0 -1
- package/static/95c7ea1/css/App.css +0 -2881
- package/static/95c7ea1/css/parts/Animation.css +0 -9
- package/static/95c7ea1/css/parts/DebugButtons.css +0 -22
- package/static/95c7ea1/css/parts/DebugValue.css +0 -24
- package/static/95c7ea1/css/parts/E2eTest.css +0 -48
- package/static/95c7ea1/css/parts/E2eTests.css +0 -30
- package/static/95c7ea1/css/parts/EditorHover.css +0 -6
- package/static/95c7ea1/css/parts/EditorMessage.css +0 -23
- package/static/95c7ea1/css/parts/ImagePreview.css +0 -33
- package/static/95c7ea1/css/parts/InlineDiffEditor.css +0 -27
- package/static/95c7ea1/css/parts/Key.css +0 -12
- package/static/95c7ea1/css/parts/KeyBindingsHeader.css +0 -36
- package/static/95c7ea1/css/parts/KeyBindingsTable.css +0 -51
- package/static/95c7ea1/css/parts/Markdown.css +0 -701
- package/static/95c7ea1/css/parts/Progress.css +0 -5
- package/static/95c7ea1/css/parts/SearchToggleButton.css +0 -16
- package/static/95c7ea1/css/parts/Select.css +0 -11
- package/static/95c7ea1/css/parts/ViewletAbout.css +0 -9
- package/static/95c7ea1/css/parts/ViewletBrowserViewOverview.css +0 -4
- package/static/95c7ea1/css/parts/ViewletDebugConsole.css +0 -16
- package/static/95c7ea1/css/parts/ViewletDefineKeyBinding.css +0 -21
- package/static/95c7ea1/css/parts/ViewletDialog.css +0 -150
- package/static/95c7ea1/css/parts/ViewletDiffEditor.css +0 -31
- package/static/95c7ea1/css/parts/ViewletEditorWidgetError.css +0 -9
- package/static/95c7ea1/css/parts/ViewletExtensionDetail.css +0 -79
- package/static/95c7ea1/css/parts/ViewletExtensions.css +0 -185
- package/static/95c7ea1/css/parts/ViewletKeyBindings.css +0 -34
- package/static/95c7ea1/css/parts/ViewletMedia.css +0 -23
- package/static/95c7ea1/css/parts/ViewletOutput.css +0 -17
- package/static/95c7ea1/css/parts/ViewletPanel.css +0 -23
- package/static/95c7ea1/css/parts/ViewletPanelTabs.css +0 -35
- package/static/95c7ea1/css/parts/ViewletPdf.css +0 -49
- package/static/95c7ea1/css/parts/ViewletProblems.css +0 -95
- package/static/95c7ea1/css/parts/ViewletReferences.css +0 -22
- package/static/95c7ea1/css/parts/ViewletRunAndDebug.css +0 -87
- package/static/95c7ea1/css/parts/ViewletScreenCapture.css +0 -3
- package/static/95c7ea1/css/parts/ViewletSearch.css +0 -34
- package/static/95c7ea1/css/parts/ViewletSimpleBrowser.css +0 -21
- package/static/95c7ea1/css/parts/ViewletSourceControl.css +0 -67
- package/static/95c7ea1/css/parts/ViewletStorage.css +0 -21
- package/static/95c7ea1/css/parts/ViewletTerminal.css +0 -10
- package/static/95c7ea1/css/parts/ViewletTerminalTabs.css +0 -31
- package/static/95c7ea1/extensions/builtin.language-basics-bat/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-bat/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-bat/languageConfiguration.json +0 -17
- package/static/95c7ea1/extensions/builtin.language-basics-bat/src/tokenizeBat.js +0 -33
- package/static/95c7ea1/extensions/builtin.language-basics-c/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-c/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-c/src/tokenizeC.js +0 -211
- package/static/95c7ea1/extensions/builtin.language-basics-coffeescript/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-coffeescript/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-coffeescript/src/tokenizeCoffeeScript.js +0 -257
- package/static/95c7ea1/extensions/builtin.language-basics-cpp/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-cpp/extension.json +0 -32
- package/static/95c7ea1/extensions/builtin.language-basics-cpp/languageConfiguration.json +0 -5
- package/static/95c7ea1/extensions/builtin.language-basics-cpp/src/tokenizeCpp.js +0 -321
- package/static/95c7ea1/extensions/builtin.language-basics-cson/README.md +0 -16
- package/static/95c7ea1/extensions/builtin.language-basics-cson/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-cson/languageConfiguration.json +0 -21
- package/static/95c7ea1/extensions/builtin.language-basics-cson/src/tokenizeCson.js +0 -207
- package/static/95c7ea1/extensions/builtin.language-basics-css/README.md +0 -16
- package/static/95c7ea1/extensions/builtin.language-basics-css/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-css/languageConfiguration.json +0 -21
- package/static/95c7ea1/extensions/builtin.language-basics-css/src/tokenizeCss.js +0 -691
- package/static/95c7ea1/extensions/builtin.language-basics-dart/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-dart/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-dart/src/tokenizeDart.js +0 -139
- package/static/95c7ea1/extensions/builtin.language-basics-desktop/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-desktop/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-desktop/src/tokenizeDesktop.js +0 -166
- package/static/95c7ea1/extensions/builtin.language-basics-docker/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-docker/extension.json +0 -24
- package/static/95c7ea1/extensions/builtin.language-basics-docker/src/tokenizeDockerfile.js +0 -131
- package/static/95c7ea1/extensions/builtin.language-basics-dotenv/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-dotenv/extension.json +0 -26
- package/static/95c7ea1/extensions/builtin.language-basics-dotenv/src/tokenizeDotenv.js +0 -341
- package/static/95c7ea1/extensions/builtin.language-basics-editorconfig/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-editorconfig/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-editorconfig/src/tokenizeEditorConfig.js +0 -173
- package/static/95c7ea1/extensions/builtin.language-basics-elixir/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-elixir/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-elixir/src/tokenizeElixir.js +0 -180
- package/static/95c7ea1/extensions/builtin.language-basics-elm/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-elm/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-elm/src/tokenizeElm.js +0 -301
- package/static/95c7ea1/extensions/builtin.language-basics-gitattributes/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-gitattributes/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-gitattributes/src/tokenizeGitAttributes.js +0 -159
- package/static/95c7ea1/extensions/builtin.language-basics-gn/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-gn/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-gn/src/tokenizeGn.js +0 -178
- package/static/95c7ea1/extensions/builtin.language-basics-go/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-go/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-go/src/tokenizeGo.js +0 -295
- package/static/95c7ea1/extensions/builtin.language-basics-graphql/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-graphql/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-graphql/src/tokenizeGraphql.js +0 -452
- package/static/95c7ea1/extensions/builtin.language-basics-html/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-html/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-html/languageConfiguration.json +0 -66
- package/static/95c7ea1/extensions/builtin.language-basics-html/src/tokenizeHtml.js +0 -557
- package/static/95c7ea1/extensions/builtin.language-basics-java/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-java/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-java/languageConfiguration.json +0 -31
- package/static/95c7ea1/extensions/builtin.language-basics-java/src/tokenizeJava.js +0 -284
- package/static/95c7ea1/extensions/builtin.language-basics-javascript/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-javascript/extension.json +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-javascript/languageConfiguration.json +0 -40
- package/static/95c7ea1/extensions/builtin.language-basics-javascript/src/tokenizeJavaScript.js +0 -619
- package/static/95c7ea1/extensions/builtin.language-basics-json/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-json/extension.json +0 -60
- package/static/95c7ea1/extensions/builtin.language-basics-json/src/tokenizeJson.js +0 -362
- package/static/95c7ea1/extensions/builtin.language-basics-json5/README.md +0 -16
- package/static/95c7ea1/extensions/builtin.language-basics-json5/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-json5/src/tokenizeJson5.js +0 -346
- package/static/95c7ea1/extensions/builtin.language-basics-jsx/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-jsx/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-jsx/src/tokenizeJsx.js +0 -661
- package/static/95c7ea1/extensions/builtin.language-basics-julia/README.md +0 -18
- package/static/95c7ea1/extensions/builtin.language-basics-julia/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-julia/src/tokenizeJulia.js +0 -181
- package/static/95c7ea1/extensions/builtin.language-basics-kotlin/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-kotlin/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-kotlin/src/tokenizeKotlin.js +0 -274
- package/static/95c7ea1/extensions/builtin.language-basics-less/LICENSE +0 -21
- package/static/95c7ea1/extensions/builtin.language-basics-less/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-less/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-less/languageConfiguration.json +0 -17
- package/static/95c7ea1/extensions/builtin.language-basics-less/src/tokenizeLess.js +0 -612
- package/static/95c7ea1/extensions/builtin.language-basics-markdown/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-markdown/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-markdown/src/tokenizeMarkdown.js +0 -471
- package/static/95c7ea1/extensions/builtin.language-basics-mdx/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-mdx/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-mdx/src/tokenizeMdx.js +0 -395
- package/static/95c7ea1/extensions/builtin.language-basics-nix/README.md +0 -16
- package/static/95c7ea1/extensions/builtin.language-basics-nix/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-nix/languageConfiguration.json +0 -21
- package/static/95c7ea1/extensions/builtin.language-basics-nix/src/tokenizeNix.js +0 -224
- package/static/95c7ea1/extensions/builtin.language-basics-nvmrc/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-nvmrc/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-nvmrc/src/tokenizeNvmrc.js +0 -30
- package/static/95c7ea1/extensions/builtin.language-basics-perl/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-perl/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-perl/src/tokenizePerl.js +0 -200
- package/static/95c7ea1/extensions/builtin.language-basics-plaintext/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-plaintext/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-plaintext/src/tokenizePlaintext.js +0 -28
- package/static/95c7ea1/extensions/builtin.language-basics-powershell/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-powershell/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-powershell/src/tokenizePowershell.js +0 -141
- package/static/95c7ea1/extensions/builtin.language-basics-python/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-python/extension.json +0 -15
- package/static/95c7ea1/extensions/builtin.language-basics-python/languageConfiguration.json +0 -5
- package/static/95c7ea1/extensions/builtin.language-basics-python/src/tokenizePython.js +0 -326
- package/static/95c7ea1/extensions/builtin.language-basics-r/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-r/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-r/src/tokenizeR.js +0 -71
- package/static/95c7ea1/extensions/builtin.language-basics-ruby/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-ruby/extension.json +0 -48
- package/static/95c7ea1/extensions/builtin.language-basics-ruby/src/tokenizeRuby.js +0 -248
- package/static/95c7ea1/extensions/builtin.language-basics-rust/LICENSE +0 -21
- package/static/95c7ea1/extensions/builtin.language-basics-rust/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-rust/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-rust/languageConfiguration.json +0 -17
- package/static/95c7ea1/extensions/builtin.language-basics-rust/src/tokenizeRust.js +0 -205
- package/static/95c7ea1/extensions/builtin.language-basics-scss/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-scss/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.language-basics-scss/languageConfiguration.json +0 -17
- package/static/95c7ea1/extensions/builtin.language-basics-scss/src/tokenizeScss.js +0 -683
- package/static/95c7ea1/extensions/builtin.language-basics-shellscript/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-shellscript/extension.json +0 -56
- package/static/95c7ea1/extensions/builtin.language-basics-shellscript/src/tokenizeShellScript.js +0 -572
- package/static/95c7ea1/extensions/builtin.language-basics-svelte/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-svelte/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-svelte/src/tokenizeSvelte.js +0 -428
- package/static/95c7ea1/extensions/builtin.language-basics-terraform/README.md +0 -16
- package/static/95c7ea1/extensions/builtin.language-basics-terraform/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-terraform/src/tokenizeTerraform.js +0 -243
- package/static/95c7ea1/extensions/builtin.language-basics-toml/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-toml/extension.json +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-toml/src/tokenizeToml.js +0 -299
- package/static/95c7ea1/extensions/builtin.language-basics-typescript/README.md +0 -16
- package/static/95c7ea1/extensions/builtin.language-basics-typescript/extension.json +0 -17
- package/static/95c7ea1/extensions/builtin.language-basics-typescript/src/tokenizeTypeScript.js +0 -1683
- package/static/95c7ea1/extensions/builtin.language-basics-vue/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-vue/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-vue/src/tokenizeVue.js +0 -481
- package/static/95c7ea1/extensions/builtin.language-basics-wgsl/README.md +0 -16
- package/static/95c7ea1/extensions/builtin.language-basics-wgsl/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-wgsl/languageConfiguration.json +0 -21
- package/static/95c7ea1/extensions/builtin.language-basics-wgsl/src/tokenizeWgsl.js +0 -226
- package/static/95c7ea1/extensions/builtin.language-basics-xml/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-xml/extension.json +0 -85
- package/static/95c7ea1/extensions/builtin.language-basics-xml/src/tokenizeXml.js +0 -328
- package/static/95c7ea1/extensions/builtin.language-basics-yaml/README.md +0 -14
- package/static/95c7ea1/extensions/builtin.language-basics-yaml/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.language-basics-yaml/src/tokenizeYaml.js +0 -405
- package/static/95c7ea1/extensions/builtin.theme-atom-one-dark/README.md +0 -11
- package/static/95c7ea1/extensions/builtin.theme-atom-one-dark/color-theme.json +0 -235
- package/static/95c7ea1/extensions/builtin.theme-atom-one-dark/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.theme-atom-one-dark/images/demo.png +0 -0
- package/static/95c7ea1/extensions/builtin.theme-ayu/README.md +0 -11
- package/static/95c7ea1/extensions/builtin.theme-ayu/color-theme.json +0 -234
- package/static/95c7ea1/extensions/builtin.theme-ayu/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.theme-cobalt2/README.md +0 -20
- package/static/95c7ea1/extensions/builtin.theme-cobalt2/color-theme.json +0 -208
- package/static/95c7ea1/extensions/builtin.theme-cobalt2/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.theme-cobalt2/images/demo.png +0 -0
- package/static/95c7ea1/extensions/builtin.theme-cobalt2/images/logo.png +0 -0
- package/static/95c7ea1/extensions/builtin.theme-gruvbox/README.md +0 -20
- package/static/95c7ea1/extensions/builtin.theme-gruvbox/color-theme.json +0 -217
- package/static/95c7ea1/extensions/builtin.theme-gruvbox/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.theme-high-contrast/README.md +0 -9
- package/static/95c7ea1/extensions/builtin.theme-high-contrast/color-theme.json +0 -86
- package/static/95c7ea1/extensions/builtin.theme-high-contrast/extension.json +0 -11
- package/static/95c7ea1/extensions/builtin.theme-material/README.md +0 -9
- package/static/95c7ea1/extensions/builtin.theme-material/color-theme.json +0 -183
- package/static/95c7ea1/extensions/builtin.theme-material/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.theme-monokai/README.md +0 -10
- package/static/95c7ea1/extensions/builtin.theme-monokai/color-theme.json +0 -151
- package/static/95c7ea1/extensions/builtin.theme-monokai/extension.json +0 -11
- package/static/95c7ea1/extensions/builtin.theme-noctis-uva/README.md +0 -11
- package/static/95c7ea1/extensions/builtin.theme-noctis-uva/color-theme.json +0 -211
- package/static/95c7ea1/extensions/builtin.theme-noctis-uva/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.theme-noctis-uva/images/demo.png +0 -0
- package/static/95c7ea1/extensions/builtin.theme-palenight/README.md +0 -11
- package/static/95c7ea1/extensions/builtin.theme-palenight/color-theme.json +0 -209
- package/static/95c7ea1/extensions/builtin.theme-palenight/extension.json +0 -12
- package/static/95c7ea1/extensions/builtin.theme-palenight/images/demo.png +0 -0
- package/static/95c7ea1/extensions/builtin.theme-slime/README.md +0 -5
- package/static/95c7ea1/extensions/builtin.theme-slime/color-theme.json +0 -298
- package/static/95c7ea1/extensions/builtin.theme-slime/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.theme-slime/icon.png +0 -0
- package/static/95c7ea1/extensions/builtin.vscode-icons/README.md +0 -20
- package/static/95c7ea1/extensions/builtin.vscode-icons/extension.json +0 -13
- package/static/95c7ea1/extensions/builtin.vscode-icons/icon-theme.json +0 -4151
- package/static/95c7ea1/extensions/builtin.vscode-icons/icon.png +0 -0
- package/static/95c7ea1/file-icons/default_file.svg +0 -1
- package/static/95c7ea1/file-icons/default_folder.svg +0 -1
- package/static/95c7ea1/file-icons/default_folder_opened.svg +0 -1
- package/static/95c7ea1/file-icons/default_root_folder.svg +0 -1
- package/static/95c7ea1/file-icons/default_root_folder_opened.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_access.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_access2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_actionscript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_actionscript2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ada.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_advpl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_affectscript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_affinitydesigner.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_affinityphoto.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_affinitypublisher.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ai.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ai2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_al.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_al_dal.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_allcontributors.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_angular.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ansible.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_antlr.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_anyscript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_apache.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_apex.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_api_extractor.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_apib.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_apib2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_apl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_applescript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_appscript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_appsemble.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_appveyor.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_arduino.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_asciidoc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_asp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_aspx.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_assembly.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_astro.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_astroconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_atom.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ats.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_audio.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_aurelia.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_autohotkey.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_autoit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_avif.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_avro.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_awk.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_aws.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_azure.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_azurepipelines.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_babel.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_babel2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ballerina.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bat.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bats.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bazaar.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bazel.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bazel_ignore.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bazel_version.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_befunge.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bicep.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_biml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_binary.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_biome.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bitbucketpipeline.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bithound.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_blade.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_blitzbasic.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bolt.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bosque.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bower.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bower2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_browserslist.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bruno.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_buckbuild.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_buf.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bun.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bundlemon.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bundler.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_bunfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_c.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_c2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_c3.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_c_al.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cabal.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_caddy.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cake.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cakephp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_capacitor.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cargo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_casc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cddl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cert.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ceylon.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cf.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cf2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cfc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cfc2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cfm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cfm2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cheader.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_chef.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_chef_cookbook.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_circleci.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_class.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_clojure.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_clojurescript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cloudfoundry.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cmake.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cobol.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_codacy.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_codeclimate.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_codecov.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_codekit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_codeowners.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_codeql.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_coderabbit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_coffeelint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_coffeescript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_commitizen.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_commitlint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_compass.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_composer.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_conan.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_conda.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_config.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_confluence.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_coverage.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_coveralls.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cpp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cpp2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cpp3.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cppheader.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_crowdin.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_crystal.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_csharp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_csharp2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cspell.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_csproj.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_css.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_csscomb.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_csslint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cssmap.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cucumber.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cuda.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cvs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cypress.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cypress_spec.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_cython.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dal.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_darcs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dartlang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dartlang_generated.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dartlang_ignore.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_datadog.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_db.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_debian.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_delphi.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_deno.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_denoify.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dependabot.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dependencies.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_devcontainer.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dhall.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_diff.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_django.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dlang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_docker.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_docker2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dockertest.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dockertest2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_docpad.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_docz.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dojo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_doppler.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dotenv.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dotjs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_doxygen.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_drawio.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_drone.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_drools.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dtd.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dustjs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dvc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_dylan.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_earthly.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_eas-metadata.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_edge.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_edge2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_editorconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_eex.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ejs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_elastic.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_elasticbeanstalk.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_eleventy.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_eleventy2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_elixir.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_elm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_elm2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_emacs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ember.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ensime.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_eps.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_erb.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_erlang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_erlang2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_esbuild.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_eslint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_eslint2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_esphome.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_excalidraw.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_excel.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_excel2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_expo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_falcon.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fantasticon.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fauna.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_favicon.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fbx.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_firebase.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_firebasehosting.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_firestore.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fitbit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fla.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_flareact.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_flash.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_floobits.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_flow.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_flutter.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_flutter_package.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_font.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_formkit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fortran.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fossa.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fossil.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_freemarker.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_frontcommerce.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fsharp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fsharp2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fsproj.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fthtml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_funding.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_fusebox.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_galen.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_galen2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gamemaker.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gamemaker2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gamemaker81.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gatsby.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gcloud.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gcode.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gdscript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_genstat.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_git.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_git2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gitlab.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gitpod.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gleam.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gleamconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_glide.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_glitter.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_glsl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_glyphs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gnu.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gnuplot.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go_aqua.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go_black.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go_fuchsia.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go_gopher.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go_lightblue.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go_package.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go_white.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go_work.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_go_yellow.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_goctl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_godot.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gpg.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gradle.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gradle2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_grain.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_graphql.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_graphql_config.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_graphviz.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_greenkeeper.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gridsome.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_groovy.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_groovy2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_grunt.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_gulp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_haml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_handlebars.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_handlebars2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_harbour.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_hardhat.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_hashicorp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_haskell.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_haskell2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_haxe.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_haxecheckstyle.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_haxedevelop.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_helix.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_helm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_hjson.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_hlsl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_homeassistant.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_horusec.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_host.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_html.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_htmlhint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_htmlvalidate.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_http.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_hunspell.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_husky.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_hy.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_hygen.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_hypr.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_icl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_idris.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_idrisbin.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_idrispkg.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_image.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_imba.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_inc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_infopath.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_informix.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ini.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ink.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_innosetup.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_io.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_iodine.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ionic.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jake.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_janet.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jar.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jasmine.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_java.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jbuilder.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jekyll.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jenkins.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jest.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jest_snapshot.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jinja.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jpm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_js_official.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jsbeautify.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jsconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jscpd.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jshint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jsmap.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_json.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_json2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_json5.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_json_official.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_json_schema.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jsonld.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jsonnet.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jsp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_juice.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_julia.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_julia2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_jupyter.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_k.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_karma.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_key.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_kitchenci.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_kite.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_kivy.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_knip.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_kos.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_kotlin.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_kusto.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_latino.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_layout.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lerna.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_less.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lex.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_liara.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_libreoffice_base.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_libreoffice_calc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_libreoffice_draw.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_libreoffice_impress.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_libreoffice_math.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_libreoffice_writer.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_license.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_licensebat.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_actionscript2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_ada.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_apl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_astro.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_astroconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_babel.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_babel2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_cabal.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_circleci.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_cloudfoundry.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_codacy.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_codeclimate.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_codeowners.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_config.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_crystal.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_cypress.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_cypress_spec.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_db.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_deno.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_dhall.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_docpad.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_drone.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_eas-metadata.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_eleventy.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_eleventy2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_esphome.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_expo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_firebasehosting.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_fla.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_font.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_gamemaker2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_gradle.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_hashicorp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_hjson.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_ini.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_io.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_jsconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_jsmap.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_json.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_json5.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_json_schema.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_jsonld.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_kite.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_lerna.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_mailing.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_mdx-components.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_mdx.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_mlang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_mustache.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_netlify.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_next.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_nim.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_nx.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_objidconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_openHAB.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_pcl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_pnpm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_prettier.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_prisma.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_purescript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_quasar.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_raku.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_razzle.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_rehype.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_remark.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_replit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_retext.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_rome.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_rubocop.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_rust.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_rust_toolchain.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_safetensors.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_shaderlab.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_solidity.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_spin.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_stylelint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_stylus.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_symfony.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_systemd.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_systemverilog.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_testcafe.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_testjs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_tex.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_tm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_tmux.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_todo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_toit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_toml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_tree.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_turbo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_unibeautify.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_vash.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_vercel.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_vsix.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_vsixmanifest.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_xfl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_xorg.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_yaml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_light_zeit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lighthouse.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lilypond.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lime.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lintstagedrc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_liquid.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lisp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_livescript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lnk.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_locale.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_log.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lolcode.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lsl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lua.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_luau.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_lync.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mailing.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_makefile.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_manifest.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_manifest_bak.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_manifest_skip.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_map.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mariadb.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_markdown.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_markdownlint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_markdownlint_ignore.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_marko.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_markojs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_master-co.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_matlab.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_maven.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_maxscript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_maya.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mdx-components.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mdx.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mediawiki.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mercurial.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mermaid.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_meson.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_meteor.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mivascript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mjml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mlang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mocha.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_modernizr.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mojo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mojolicious.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_moleculer.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mondoo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mongo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_monotone.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_motif.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mson.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mustache.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mvt.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mvtcss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mvtjs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_mysql.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ndst.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nearly.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_adapter_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_adapter_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_controller_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_controller_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_decorator_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_decorator_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_filter_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_filter_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_gateway_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_gateway_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_guard_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_guard_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_interceptor_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_interceptor_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_middleware_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_middleware_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_module_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_module_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_pipe_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_pipe_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_service_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nest_service_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nestjs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_netlify.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_next.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nextflow.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_css.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_dart.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_html.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_js2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_less.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_sass.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_scss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_component_ts2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_controller_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_controller_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_directive_dart.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_directive_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_directive_js2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_directive_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_directive_ts2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_guard_dart.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_guard_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_guard_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_interceptor_dart.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_interceptor_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_interceptor_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_module_dart.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_module_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_module_js2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_module_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_module_ts2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_pipe_dart.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_pipe_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_pipe_js2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_pipe_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_pipe_ts2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_routing_dart.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_routing_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_routing_js2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_routing_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_routing_ts2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_service_dart.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_service_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_service_js2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_service_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_service_ts2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_smart_component_dart.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_smart_component_js.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_smart_component_js2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_smart_component_ts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_smart_component_ts2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ng_tailwind.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nginx.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nim.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nimble.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ninja.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nix.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_njsproj.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_noc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_node.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_node2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nodemon.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_npm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nsi.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nsri-integrity.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nsri.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nuget.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_numpy.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nunjucks.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nuxt.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nx.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_nyc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_objectivec.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_objectivecpp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_objidconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ocaml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ocaml_intf.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ogone.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_onenote.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_openHAB.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_opencl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_openscad.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_org.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_outlook.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ovpn.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_package.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_paket.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pandacss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_patch.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pcl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pddl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pddl_happenings.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pddl_plan.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pdf.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pdf2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pdm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_peeky.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_perl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_perl2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_perl6.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pgsql.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_photoshop.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_photoshop2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_php.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_php2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_php3.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_phpcsfixer.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_phpstan.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_phpunit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_phraseapp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pine.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pip.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pipeline.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_plantuml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_platformio.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_playwright.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_plsql.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_plsql_package.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_plsql_package_body.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_plsql_package_header.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_plsql_package_spec.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pm2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pnpm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_poedit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_poetry.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_polymer.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pony.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_postcss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_postcssconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_postman.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powerpoint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powerpoint2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powershell.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powershell2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powershell_format.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powershell_psd.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powershell_psd2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powershell_psm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powershell_psm2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_powershell_types.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_preact.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_precommit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_prettier.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_prisma.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_processinglang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_procfile.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_progress.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_prolog.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_prometheus.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_protobuf.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_protractor.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_publiccode.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_publisher.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pug.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pulumi.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_puppet.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_purescript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pyenv.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pyret.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pyscript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_python.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pythowo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pytyped.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_pyup.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_q.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_qbs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_qlikview.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_qml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_qmldir.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_qsharp.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_quasar.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_r.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ra_syntax_tree.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_racket.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rails.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rake.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_raku.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_raml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_razor.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_razzle.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_reactjs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_reacttemplate.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_reactts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_reason.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_red.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_registry.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rego.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rehype.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_remark.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_renovate.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_replit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rescript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rest.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_retext.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rexx.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_riot.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rmd.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rnc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_robotframework.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_robots.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rollup.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rome.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ron.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rproj.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rspec.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rubocop.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ruby.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rust.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_rust_toolchain.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_s-lang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_safetensors.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sails.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_saltstack.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_san.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sapphire_framework_cli.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sas.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sass.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sbt.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_scala.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_scilab.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_script.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_scss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_scss2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sdlang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_search_result.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sentry.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sequelize.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_serverless.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_shaderlab.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_shell.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_shellcheck.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_shuttle.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_silverstripe.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sino.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_siyuan.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sketch.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_skipper.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_slang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_slashup.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_slice.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_slim.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_slint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sln.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sln2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_smarty.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_snakemake.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_snapcraft.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_snaplet.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_snort.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_snyk.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_solidarity.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_solidity.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_source.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_spacengine.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sparql.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_spin.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sqf.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sql.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sqlite.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_squirrel.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sst.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_stan.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_stata.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_stencil.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_storyboard.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_storybook.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_stryker.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_stylable.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_style.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_styled.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_stylelint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_stylish_haskell.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_stylus.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_sublime.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_subversion.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_svelte.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_svelteconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_svg.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_svgo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_swagger.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_swc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_swift.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_swig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_symfony.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_systemd.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_systemverilog.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_t4tt.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tailwind.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tamagui.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_taskfile.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tauri.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tcl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_teal.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_templ.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tera.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_terraform.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_test.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_testcafe.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_testjs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_testplane.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_testts.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tex.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_text.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_textile.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tfs.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tiltfile.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tmux.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_todo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_toit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_toml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tox.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_travis.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tree.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tres.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_truffle.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_trunk.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tsbuildinfo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tscn.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tsconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tsconfig_official.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tslint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tt.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_ttcn.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_tuc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_turbo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_twig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_typedoc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_typescript.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_typescript_official.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_typescriptdef.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_typescriptdef_official.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_typo3.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_uiua.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_unibeautify.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_unison.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_unlicense.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_unocss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vagrant.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vala.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vanilla_extract.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vapi.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vapor.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vash.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vb.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vba.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vbhtml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vbproj.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vcxproj.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_velocity.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vento.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vercel.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_verilog.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vhdl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_video.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_view.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vim.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vite.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vitest.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vlang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_volt.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vscode-insiders.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vscode.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vscode2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vscode3.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vscode_test.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vsix.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vsixmanifest.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vue.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vueconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_vyper.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wallaby.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wally.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wasm.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_watchmanconfig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wdio.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_webpack.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wenyan.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wercker.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wgsl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wikitext.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_windi.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wolfram.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_word.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_word2.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wpml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wurst.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wxml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wxss.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_wxt.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xcode.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xfl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xib.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xliff.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xmake.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xo.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xorg.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xquery.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_xsl.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_yacc.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_yaml.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_yamllint.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_yandex.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_yang.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_yarn.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_yeoman.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_zeit.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_zig.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_zip.svg +0 -1
- package/static/95c7ea1/file-icons/file_type_zip2.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_android.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_android_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_api.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_api_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_app.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_app_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_arangodb.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_arangodb_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_asset.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_asset_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_audio.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_audio_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_aurelia.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_aurelia_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_aws.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_aws_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_azure.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_azure_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_azurepipelines.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_azurepipelines_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_binary.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_binary_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_bloc.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_bloc_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_blueprint.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_blueprint_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_bot.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_bot_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_bower.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_bower_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_buildkite.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_buildkite_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cake.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cake_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_certificate.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_certificate_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_changesets.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_changesets_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_chef.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_chef_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_circleci.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_circleci_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cli.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cli_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_client.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_client_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cmake.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cmake_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_common.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_common_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_component.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_component_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_composer.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_composer_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_config.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_config_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_controller.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_controller_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_coverage.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_coverage_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_css.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_css_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cubit.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cubit_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cypress.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_cypress_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_dapr.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_dapr_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_datadog.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_datadog_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_db.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_db_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_debian.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_debian_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_dependabot.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_dependabot_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_devcontainer.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_devcontainer_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_dist.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_dist_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_docker.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_docker_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_docs.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_docs_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_e2e.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_e2e_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_elasticbeanstalk.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_elasticbeanstalk_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_electron.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_electron_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_expo.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_expo_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_favicon.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_favicon_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_flow.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_flow_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_fonts.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_fonts_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_frontcommerce.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_frontcommerce_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_gcp.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_gcp_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_git.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_git_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_github.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_github_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_gitlab.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_gitlab_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_gradle.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_gradle_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_graphql.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_graphql_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_grunt.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_grunt_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_gulp.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_gulp_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_haxelib.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_haxelib_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_helper.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_helper_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_hook.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_hook_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_husky.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_husky_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_idea.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_idea_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_images.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_images_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_include.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_include_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_interfaces.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_interfaces_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_ios.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_ios_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_js.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_js_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_json.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_json_official.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_json_official_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_json_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_kubernetes.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_kubernetes_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_less.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_less_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_library.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_library_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_cypress.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_cypress_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_electron.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_electron_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_expo.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_expo_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_fonts.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_fonts_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_gradle.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_gradle_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_meteor.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_meteor_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_mysql.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_mysql_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_node.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_node_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_redux.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_redux_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_sass.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_light_sass_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_linux.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_linux_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_locale.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_locale_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_log.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_log_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_macos.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_macos_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mariadb.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mariadb_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_maven.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_maven_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mediawiki.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mediawiki_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_memcached.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_memcached_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_meteor.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_meteor_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_middleware.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_middleware_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_minikube.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_minikube_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mjml.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mjml_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mock.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mock_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_model.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_model_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_module.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_module_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mojo.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mojo_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mongodb.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mongodb_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mysql.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_mysql_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_next.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_next_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_nginx.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_nginx_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_nix.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_nix_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_node.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_node_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_notebooks.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_notebooks_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_notification.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_notification_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_nuget.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_nuget_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_nuxt.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_nuxt_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_package.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_package_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_paket.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_paket_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_php.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_php_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_platformio.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_platformio_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_plugin.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_plugin_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_prisma.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_prisma_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_private.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_private_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_public.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_public_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_python.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_python_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_ravendb.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_ravendb_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_redis.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_redis_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_redux.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_redux_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_route.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_route_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_sass.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_sass_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_script.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_script_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_server.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_server_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_services.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_services_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_shared.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_shared_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_snaplet.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_snaplet_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_spin.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_spin_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_src.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_src_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_sso.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_sso_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_story.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_story_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_style.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_style_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_supabase.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_supabase_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_svelte.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_svelte_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_tauri.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_tauri_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_temp.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_temp_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_template.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_template_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_test.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_test_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_theme.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_theme_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_tools.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_tools_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_travis.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_travis_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_trunk.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_trunk_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_turbo.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_turbo_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_typescript.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_typescript_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_typings.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_typings2.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_typings2_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_typings_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vagrant.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vagrant_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vercel.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vercel_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_video.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_video_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_view.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_view_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vs.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vs2.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vs2_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vs_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode2.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode2_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode3.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode3_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode_test.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode_test2.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode_test2_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode_test3.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode_test3_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_vscode_test_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_webpack.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_webpack_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_windows.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_windows_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_wit.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_wit_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_www.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_www_opened.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_yarn.svg +0 -1
- package/static/95c7ea1/file-icons/folder_type_yarn_opened.svg +0 -1
- package/static/95c7ea1/fonts/FiraCode-VariableFont.ttf +0 -0
- package/static/95c7ea1/icons/add.svg +0 -1
- package/static/95c7ea1/icons/arrow-down.svg +0 -3
- package/static/95c7ea1/icons/arrow-left.svg +0 -3
- package/static/95c7ea1/icons/arrow-right.svg +0 -3
- package/static/95c7ea1/icons/arrow-up.svg +0 -3
- package/static/95c7ea1/icons/blank.svg +0 -1
- package/static/95c7ea1/icons/book.svg +0 -1
- package/static/95c7ea1/icons/case-sensitive.svg +0 -1
- package/static/95c7ea1/icons/check.svg +0 -1
- package/static/95c7ea1/icons/chevron-down.svg +0 -1
- package/static/95c7ea1/icons/chevron-left.svg +0 -1
- package/static/95c7ea1/icons/chevron-right.svg +0 -3
- package/static/95c7ea1/icons/chevron-up.svg +0 -1
- package/static/95c7ea1/icons/chrome-close.svg +0 -3
- package/static/95c7ea1/icons/chrome-maximize.svg +0 -3
- package/static/95c7ea1/icons/chrome-minimize.svg +0 -3
- package/static/95c7ea1/icons/chrome-restore.svg +0 -1
- package/static/95c7ea1/icons/circle-filled.svg +0 -1
- package/static/95c7ea1/icons/clear-all.svg +0 -1
- package/static/95c7ea1/icons/close.svg +0 -1
- package/static/95c7ea1/icons/cloud.svg +0 -1
- package/static/95c7ea1/icons/collapse-all.svg +0 -1
- package/static/95c7ea1/icons/debug-all.svg +0 -1
- package/static/95c7ea1/icons/debug-alt-2.svg +0 -3
- package/static/95c7ea1/icons/debug-alt-small.svg +0 -1
- package/static/95c7ea1/icons/debug-alt.svg +0 -1
- package/static/95c7ea1/icons/debug-breakpoint-conditional-unverified.svg +0 -1
- package/static/95c7ea1/icons/debug-breakpoint-conditional.svg +0 -1
- package/static/95c7ea1/icons/debug-breakpoint-data-unverified.svg +0 -1
- package/static/95c7ea1/icons/debug-breakpoint-data.svg +0 -1
- package/static/95c7ea1/icons/debug-breakpoint-function-unverified.svg +0 -1
- package/static/95c7ea1/icons/debug-breakpoint-function.svg +0 -1
- package/static/95c7ea1/icons/debug-breakpoint-log-unverified.svg +0 -1
- package/static/95c7ea1/icons/debug-breakpoint-log.svg +0 -1
- package/static/95c7ea1/icons/debug-breakpoint-unsupported.svg +0 -1
- package/static/95c7ea1/icons/debug-console.svg +0 -1
- package/static/95c7ea1/icons/debug-continue-small.svg +0 -1
- package/static/95c7ea1/icons/debug-continue.svg +0 -1
- package/static/95c7ea1/icons/debug-coverage.svg +0 -1
- package/static/95c7ea1/icons/debug-disconnect.svg +0 -1
- package/static/95c7ea1/icons/debug-line-by-line.svg +0 -1
- package/static/95c7ea1/icons/debug-pause.svg +0 -1
- package/static/95c7ea1/icons/debug-rerun.svg +0 -1
- package/static/95c7ea1/icons/debug-restart-frame.svg +0 -1
- package/static/95c7ea1/icons/debug-restart.svg +0 -1
- package/static/95c7ea1/icons/debug-reverse-continue.svg +0 -1
- package/static/95c7ea1/icons/debug-stackframe-active.svg +0 -1
- package/static/95c7ea1/icons/debug-stackframe.svg +0 -1
- package/static/95c7ea1/icons/debug-start.svg +0 -1
- package/static/95c7ea1/icons/debug-step-back.svg +0 -1
- package/static/95c7ea1/icons/debug-step-into.svg +0 -1
- package/static/95c7ea1/icons/debug-step-out.svg +0 -1
- package/static/95c7ea1/icons/debug-step-over.svg +0 -1
- package/static/95c7ea1/icons/debug-stop.svg +0 -1
- package/static/95c7ea1/icons/debug.svg +0 -1
- package/static/95c7ea1/icons/discard.svg +0 -1
- package/static/95c7ea1/icons/edit.svg +0 -1
- package/static/95c7ea1/icons/ellipsis.svg +0 -5
- package/static/95c7ea1/icons/error.svg +0 -1
- package/static/95c7ea1/icons/exclude.svg +0 -1
- package/static/95c7ea1/icons/extensionDefaultIcon.png +0 -0
- package/static/95c7ea1/icons/extensions.svg +0 -3
- package/static/95c7ea1/icons/files.svg +0 -3
- package/static/95c7ea1/icons/filter.svg +0 -1
- package/static/95c7ea1/icons/go-to-file.svg +0 -1
- package/static/95c7ea1/icons/icon-close.svg +0 -3
- package/static/95c7ea1/icons/icon-source-control.svg +0 -3
- package/static/95c7ea1/icons/icon-sync.svg +0 -1
- package/static/95c7ea1/icons/icon.png +0 -0
- package/static/95c7ea1/icons/icon.svg +0 -3
- package/static/95c7ea1/icons/info.svg +0 -1
- package/static/95c7ea1/icons/language-icon.svg +0 -1
- package/static/95c7ea1/icons/link-external.svg +0 -1
- package/static/95c7ea1/icons/list-flat.svg +0 -1
- package/static/95c7ea1/icons/list-tree.svg +0 -1
- package/static/95c7ea1/icons/new-file.svg +0 -1
- package/static/95c7ea1/icons/new-folder.svg +0 -1
- package/static/95c7ea1/icons/newline.svg +0 -1
- package/static/95c7ea1/icons/open-preview.svg +0 -1
- package/static/95c7ea1/icons/play.svg +0 -1
- package/static/95c7ea1/icons/preserve-case.svg +0 -1
- package/static/95c7ea1/icons/progress.svg +0 -1
- package/static/95c7ea1/icons/pwa-icon-192.png +0 -0
- package/static/95c7ea1/icons/pwa-icon-512.png +0 -0
- package/static/95c7ea1/icons/record-keys.svg +0 -1
- package/static/95c7ea1/icons/refresh.svg +0 -1
- package/static/95c7ea1/icons/regex.svg +0 -1
- package/static/95c7ea1/icons/remove.svg +0 -1
- package/static/95c7ea1/icons/replace-all.svg +0 -1
- package/static/95c7ea1/icons/replace.svg +0 -1
- package/static/95c7ea1/icons/run-all.svg +0 -1
- package/static/95c7ea1/icons/search.svg +0 -3
- package/static/95c7ea1/icons/settings-gear.svg +0 -3
- package/static/95c7ea1/icons/source-control.svg +0 -3
- package/static/95c7ea1/icons/split-horizontal.svg +0 -1
- package/static/95c7ea1/icons/squiggly-error.svg +0 -1
- package/static/95c7ea1/icons/squiggly-warning.svg +0 -1
- package/static/95c7ea1/icons/symbol-array.svg +0 -3
- package/static/95c7ea1/icons/symbol-boolean.svg +0 -3
- package/static/95c7ea1/icons/symbol-class.svg +0 -3
- package/static/95c7ea1/icons/symbol-color.svg +0 -3
- package/static/95c7ea1/icons/symbol-constant.svg +0 -4
- package/static/95c7ea1/icons/symbol-enum-member.svg +0 -3
- package/static/95c7ea1/icons/symbol-enum.svg +0 -3
- package/static/95c7ea1/icons/symbol-event.svg +0 -3
- package/static/95c7ea1/icons/symbol-field.svg +0 -3
- package/static/95c7ea1/icons/symbol-file.svg +0 -3
- package/static/95c7ea1/icons/symbol-interface.svg +0 -3
- package/static/95c7ea1/icons/symbol-key.svg +0 -3
- package/static/95c7ea1/icons/symbol-keyword.svg +0 -3
- package/static/95c7ea1/icons/symbol-method.svg +0 -3
- package/static/95c7ea1/icons/symbol-misc.svg +0 -3
- package/static/95c7ea1/icons/symbol-namespace.svg +0 -3
- package/static/95c7ea1/icons/symbol-numeric.svg +0 -3
- package/static/95c7ea1/icons/symbol-operator.svg +0 -3
- package/static/95c7ea1/icons/symbol-parameter.svg +0 -3
- package/static/95c7ea1/icons/symbol-property.svg +0 -3
- package/static/95c7ea1/icons/symbol-ruler.svg +0 -3
- package/static/95c7ea1/icons/symbol-snippet.svg +0 -3
- package/static/95c7ea1/icons/symbol-string.svg +0 -3
- package/static/95c7ea1/icons/symbol-structure.svg +0 -3
- package/static/95c7ea1/icons/symbol-variable.svg +0 -3
- package/static/95c7ea1/icons/tag.svg +0 -1
- package/static/95c7ea1/icons/terminal-bash.svg +0 -1
- package/static/95c7ea1/icons/terminal.svg +0 -1
- package/static/95c7ea1/icons/theme-icon.png +0 -0
- package/static/95c7ea1/icons/trash.svg +0 -1
- package/static/95c7ea1/icons/triangle-down.svg +0 -1
- package/static/95c7ea1/icons/triangle-left.svg +0 -1
- package/static/95c7ea1/icons/triangle-right.svg +0 -1
- package/static/95c7ea1/icons/triangle-up.svg +0 -1
- package/static/95c7ea1/icons/warning.svg +0 -1
- package/static/95c7ea1/icons/whole-word.svg +0 -1
- package/static/95c7ea1/icons/zoom-in.svg +0 -1
- package/static/95c7ea1/icons/zoom-out.svg +0 -1
- package/static/95c7ea1/js/babel-parser.js +0 -14154
- package/static/95c7ea1/js/blob-util.js +0 -149
- package/static/95c7ea1/js/idb/async-iterators.js +0 -56
- package/static/95c7ea1/js/idb/index.js +0 -99
- package/static/95c7ea1/js/idb/with-async-ittr.js +0 -4
- package/static/95c7ea1/js/idb/wrap-idb-value.js +0 -190
- package/static/95c7ea1/js/js-base64.js +0 -296
- package/static/95c7ea1/js/ky.js +0 -489
- package/static/95c7ea1/js/lvce-editor-import-script.js +0 -5
- package/static/95c7ea1/js/lvce-editor-ipc.js +0 -735
- package/static/95c7ea1/js/lvce-editor-json-rpc.js +0 -383
- package/static/95c7ea1/js/lvce-editor-verror.js +0 -55
- package/static/95c7ea1/js/marked.js +0 -1990
- package/static/95c7ea1/js/p-min-delay.js +0 -7
- package/static/95c7ea1/js/pretty-bytes.js +0 -94
- package/static/95c7ea1/js/preview-injected.js +0 -101
- package/static/95c7ea1/js/yoctodelay.js +0 -2
- package/static/95c7ea1/lib-css/termterm.css +0 -39
- package/static/95c7ea1/manifest.json +0 -26
- package/static/95c7ea1/packages/about-view-worker/dist/aboutWorkerMain.js +0 -1556
- package/static/95c7ea1/packages/diff-worker/dist/diffWorkerMain.js +0 -886
- package/static/95c7ea1/packages/editor-worker/dist/editorWorkerMain.js +0 -11885
- package/static/95c7ea1/packages/embeds-worker/dist/embedsWorkerMain.js +0 -1067
- package/static/95c7ea1/packages/embeds-worker/dist/embedsWorkerMain.js.map +0 -1
- package/static/95c7ea1/packages/embeds-worker/src/embedsWorkerMain.ts +0 -3
- package/static/95c7ea1/packages/embeds-worker/src/parts/Assert/Assert.ts +0 -94
- package/static/95c7ea1/packages/embeds-worker/src/parts/AssertionError/AssertionError.ts +0 -6
- package/static/95c7ea1/packages/embeds-worker/src/parts/Callback/Callback.ts +0 -1
- package/static/95c7ea1/packages/embeds-worker/src/parts/Command/Command.ts +0 -10
- package/static/95c7ea1/packages/embeds-worker/src/parts/CommandMap/CommandMap.ts +0 -26
- package/static/95c7ea1/packages/embeds-worker/src/parts/CommandState/CommandState.ts +0 -17
- package/static/95c7ea1/packages/embeds-worker/src/parts/ElectronWebContentsView/ElectronWebContentsView.ts +0 -117
- package/static/95c7ea1/packages/embeds-worker/src/parts/EmbedsProcess/EmbedsProcess.ts +0 -25
- package/static/95c7ea1/packages/embeds-worker/src/parts/Exit/Exit.ts +0 -3
- package/static/95c7ea1/packages/embeds-worker/src/parts/GetPortTuple/GetPortTuple.ts +0 -4
- package/static/95c7ea1/packages/embeds-worker/src/parts/HandleIpc/HandleIpc.ts +0 -35
- package/static/95c7ea1/packages/embeds-worker/src/parts/IpcChild/IpcChild.ts +0 -13
- package/static/95c7ea1/packages/embeds-worker/src/parts/IpcChildModule/IpcChildModule.ts +0 -14
- package/static/95c7ea1/packages/embeds-worker/src/parts/IpcChildType/IpcChildType.ts +0 -14
- package/static/95c7ea1/packages/embeds-worker/src/parts/IpcId/IpcId.ts +0 -4
- package/static/95c7ea1/packages/embeds-worker/src/parts/IpcParent/IpcParent.ts +0 -7
- package/static/95c7ea1/packages/embeds-worker/src/parts/IpcParentWithElectronMessagePort/IpcParentWithElectronMessagePort.ts +0 -39
- package/static/95c7ea1/packages/embeds-worker/src/parts/IpcState/IpcState.ts +0 -14
- package/static/95c7ea1/packages/embeds-worker/src/parts/JsonRpc/JsonRpc.ts +0 -2
- package/static/95c7ea1/packages/embeds-worker/src/parts/LaunchEmbedsProcessIpc/LaunchEmbedsProcessIpc.ts +0 -10
- package/static/95c7ea1/packages/embeds-worker/src/parts/Listen/Listen.ts +0 -13
- package/static/95c7ea1/packages/embeds-worker/src/parts/LoadErrorCode/LoadErrorCode.ts +0 -3
- package/static/95c7ea1/packages/embeds-worker/src/parts/Main/Main.ts +0 -5
- package/static/95c7ea1/packages/embeds-worker/src/parts/ProcessName/ProcessName.ts +0 -1
- package/static/95c7ea1/packages/embeds-worker/src/parts/Rpc/Rpc.ts +0 -21
- package/static/95c7ea1/packages/explorer-worker/dist/explorerViewWorkerMain.js +0 -2730
- package/static/95c7ea1/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js +0 -989
- package/static/95c7ea1/packages/extension-host-sub-worker/dist/extensionHostSubWorkerMain.js.map +0 -1
- package/static/95c7ea1/packages/extension-host-sub-worker/src/extensionHostSubWorkerMain.js +0 -3
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/Ajax/Ajax.js +0 -14
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/Assert/Assert.js +0 -71
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/AssetDir/AssetDir.js +0 -16
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/Callback/Callback.js +0 -42
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/Character/Character.js +0 -11
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/CleanImportError/CleanImportError.js +0 -20
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/CodeFrameColumns/CodeFrameColumns.js +0 -126
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/Command/Command.js +0 -10
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/CommandMap/CommandMap.js +0 -5
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/CommandState/CommandState.js +0 -17
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/ErrorType/ErrorType.js +0 -4
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/GetData/GetData.js +0 -3
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/GetErrorConstructor/GetErrorConstructor.js +0 -28
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/GetErrorResponse/GetErrorResponse.js +0 -33
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/GetModulesErrorStack/GetModulesErrorStack.js +0 -49
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/GetNewLineIndex/GetNewLineIndex.js +0 -9
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/GetResponse/GetResponse.js +0 -11
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/GetSuccessResponse/GetSuccessResponse.js +0 -9
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/HandleIpc/HandleIpc.js +0 -12
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/HandleJsonRpcMessage/HandleJsonRpcMessage.js +0 -10
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/Id/Id.js +0 -7
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/ImportScript/ImportScript.js +0 -12
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/IpcChild/IpcChild.js +0 -8
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/IpcChildModule/IpcChildModule.js +0 -12
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/IpcChildType/IpcChildType.js +0 -18
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/IpcChildWithMessagePort/IpcChildWithMessagePort.js +0 -24
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/IpcChildWithModuleWorker/IpcChildWithModuleWorker.js +0 -40
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/IpcChildWithModuleWorkerAndMessagePort/IpcChildWithModuleWorkerAndMessagePort.js +0 -54
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/IpcError/IpcError.js +0 -6
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/JoinLines/JoinLines.js +0 -3
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/JsonRpc/JsonRpc.js +0 -16
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/JsonRpcError/JsonRpcError.js +0 -6
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/JsonRpcErrorCode/JsonRpcErrorCode.js +0 -2
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/JsonRpcEvent/JsonRpcEvent.js +0 -9
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/JsonRpcRequest/JsonRpcRequest.js +0 -16
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/JsonRpcVersion/JsonRpcVersion.js +0 -1
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/Listen/Listen.js +0 -19
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/LoadFile/LoadFile.js +0 -14
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/LoadKy/LoadKy.js +0 -11
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/Main/Main.js +0 -5
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/MergeStacks/MergeStacks.js +0 -20
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/NormalizeErrorLine/NormalizeErrorLine.js +0 -9
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/Platform/Platform.js +0 -19
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/PlatformType/PlatformType.js +0 -5
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/PrettyError/PrettyError.js +0 -139
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/PrintPrettyError/PrintPrettyError.js +0 -3
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/ProcessName/ProcessName.js +0 -1
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/RestoreJsonRpcError/RestoreJsonRpcError.js +0 -78
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/SplitLines/SplitLines.js +0 -11
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/UnwrapJsonRpcResult/UnwrapJsonRpcResult.js +0 -13
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/VError/VError.js +0 -27
- package/static/95c7ea1/packages/extension-host-sub-worker/src/parts/WaitForFirstMessage/WaitForFirstMessage.js +0 -13
- package/static/95c7ea1/packages/extension-host-worker/dist/extensionHostWorkerMain.js +0 -3813
- package/static/95c7ea1/packages/extension-search-view-worker/dist/extensionSearchViewWorkerMain.js +0 -1468
- package/static/95c7ea1/packages/file-search-worker/dist/fileSearchWorkerMain.js +0 -1835
- package/static/95c7ea1/packages/iframe-worker/dist/iframeWorkerMain.js +0 -1349
- package/static/95c7ea1/packages/keybindings-view-worker/dist/keyBindingsViewWorkerMain.js +0 -1915
- package/static/95c7ea1/packages/renderer-process/LICENSE +0 -21
- package/static/95c7ea1/packages/renderer-process/README.md +0 -1
- package/static/95c7ea1/packages/renderer-process/dist/rendererProcessMain.js +0 -11834
- package/static/95c7ea1/packages/renderer-process/package.json +0 -27
- package/static/95c7ea1/packages/renderer-worker/dist/rendererWorkerMain.js +0 -39165
- package/static/95c7ea1/packages/syntax-highlighting-worker/dist/syntaxHighlightingWorkerMain.js +0 -1109
- package/static/95c7ea1/packages/terminal-worker/dist/terminalWorkerMain.js +0 -2971
- package/static/95c7ea1/packages/test-worker/dist/testWorkerMain.js +0 -2140
- package/static/95c7ea1/packages/text-search-worker/dist/textSearchWorkerMain.js +0 -4267
- package/static/95c7ea1/playground/languages/index.cpp +0 -22
- package/static/95c7ea1/playground/languages/index.css +0 -19
- package/static/95c7ea1/playground/languages/index.csv +0 -3
- package/static/95c7ea1/playground/languages/index.dart +0 -3
- package/static/95c7ea1/playground/languages/index.env +0 -1
- package/static/95c7ea1/playground/languages/index.ex +0 -8
- package/static/95c7ea1/playground/languages/index.html +0 -1
- package/static/95c7ea1/playground/languages/index.java +0 -5
- package/static/95c7ea1/playground/languages/index.jl +0 -14
- package/static/95c7ea1/playground/languages/index.js +0 -3
- package/static/95c7ea1/playground/languages/index.json +0 -3
- package/static/95c7ea1/playground/languages/index.kt +0 -3
- package/static/95c7ea1/playground/languages/index.pl +0 -11
- package/static/95c7ea1/playground/languages/index.py +0 -25
- package/static/95c7ea1/playground/languages/index.ts +0 -3
- package/static/95c7ea1/playground/languages/scrolling.txt +0 -100
- package/static/95c7ea1/playground/languages/tsconfig.json +0 -24
- package/static/95c7ea1/playground/sample-folder/a.txt +0 -0
- package/static/95c7ea1/playground/sample-folder/b.txt +0 -0
- package/static/95c7ea1/playground/sample-folder/c.txt +0 -0
- package/static/favicon.ico +0 -0
- package/static/index.html +0 -14
|
@@ -1,4267 +0,0 @@
|
|
|
1
|
-
const Two = '2.0';
|
|
2
|
-
const create$4$1 = (method, params) => {
|
|
3
|
-
return {
|
|
4
|
-
jsonrpc: Two,
|
|
5
|
-
method,
|
|
6
|
-
params
|
|
7
|
-
};
|
|
8
|
-
};
|
|
9
|
-
const state$4 = {
|
|
10
|
-
callbacks: Object.create(null)
|
|
11
|
-
};
|
|
12
|
-
const set$1 = (id, fn) => {
|
|
13
|
-
state$4.callbacks[id] = fn;
|
|
14
|
-
};
|
|
15
|
-
const get$1 = id => {
|
|
16
|
-
return state$4.callbacks[id];
|
|
17
|
-
};
|
|
18
|
-
const remove$1 = id => {
|
|
19
|
-
delete state$4.callbacks[id];
|
|
20
|
-
};
|
|
21
|
-
let id = 0;
|
|
22
|
-
const create$3$1 = () => {
|
|
23
|
-
return ++id;
|
|
24
|
-
};
|
|
25
|
-
const warn = (...args) => {
|
|
26
|
-
console.warn(...args);
|
|
27
|
-
};
|
|
28
|
-
const registerPromise = () => {
|
|
29
|
-
const id = create$3$1();
|
|
30
|
-
const {
|
|
31
|
-
resolve,
|
|
32
|
-
promise
|
|
33
|
-
} = Promise.withResolvers();
|
|
34
|
-
set$1(id, resolve);
|
|
35
|
-
return {
|
|
36
|
-
id,
|
|
37
|
-
promise
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
const resolve = (id, response) => {
|
|
41
|
-
const fn = get$1(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$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);
|
|
107
|
-
}
|
|
108
|
-
if (ErrorConstructor === Error) {
|
|
109
|
-
const error = new Error(message);
|
|
110
|
-
if (name && name !== 'VError') {
|
|
111
|
-
error.name = name;
|
|
112
|
-
}
|
|
113
|
-
return error;
|
|
114
|
-
}
|
|
115
|
-
return new ErrorConstructor(message);
|
|
116
|
-
};
|
|
117
|
-
const getNewLineIndex$2 = (string, startIndex = undefined) => {
|
|
118
|
-
return string.indexOf(NewLine$3, startIndex);
|
|
119
|
-
};
|
|
120
|
-
const getParentStack = error => {
|
|
121
|
-
let parentStack = error.stack || error.data || error.message || '';
|
|
122
|
-
if (parentStack.startsWith(' at')) {
|
|
123
|
-
parentStack = error.message + NewLine$3 + parentStack;
|
|
124
|
-
}
|
|
125
|
-
return parentStack;
|
|
126
|
-
};
|
|
127
|
-
const joinLines$1 = lines => {
|
|
128
|
-
return lines.join(NewLine$3);
|
|
129
|
-
};
|
|
130
|
-
const MethodNotFound = -32601;
|
|
131
|
-
const Custom = -32001;
|
|
132
|
-
const splitLines$2 = lines => {
|
|
133
|
-
return lines.split(NewLine$3);
|
|
134
|
-
};
|
|
135
|
-
const restoreJsonRpcError = error => {
|
|
136
|
-
if (error && error instanceof Error) {
|
|
137
|
-
return error;
|
|
138
|
-
}
|
|
139
|
-
const currentStack = joinLines$1(splitLines$2(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}`);
|
|
186
|
-
};
|
|
187
|
-
const unwrapJsonRpcResult = responseMessage => {
|
|
188
|
-
if ('error' in responseMessage) {
|
|
189
|
-
const restoredError = restoreJsonRpcError(responseMessage.error);
|
|
190
|
-
throw restoredError;
|
|
191
|
-
}
|
|
192
|
-
if ('result' in responseMessage) {
|
|
193
|
-
return responseMessage.result;
|
|
194
|
-
}
|
|
195
|
-
throw new JsonRpcError('unexpected response message');
|
|
196
|
-
};
|
|
197
|
-
const E_COMMAND_NOT_FOUND = 'E_COMMAND_NOT_FOUND';
|
|
198
|
-
const getErrorType = prettyError => {
|
|
199
|
-
if (prettyError && prettyError.type) {
|
|
200
|
-
return prettyError.type;
|
|
201
|
-
}
|
|
202
|
-
if (prettyError && prettyError.constructor && prettyError.constructor.name) {
|
|
203
|
-
return prettyError.constructor.name;
|
|
204
|
-
}
|
|
205
|
-
return undefined;
|
|
206
|
-
};
|
|
207
|
-
const getErrorProperty = (error, prettyError) => {
|
|
208
|
-
if (error && error.code === E_COMMAND_NOT_FOUND) {
|
|
209
|
-
return {
|
|
210
|
-
code: MethodNotFound,
|
|
211
|
-
message: error.message,
|
|
212
|
-
data: error.stack
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
return {
|
|
216
|
-
code: Custom,
|
|
217
|
-
message: prettyError.message,
|
|
218
|
-
data: {
|
|
219
|
-
stack: prettyError.stack,
|
|
220
|
-
codeFrame: prettyError.codeFrame,
|
|
221
|
-
type: getErrorType(prettyError),
|
|
222
|
-
code: prettyError.code,
|
|
223
|
-
name: prettyError.name
|
|
224
|
-
}
|
|
225
|
-
};
|
|
226
|
-
};
|
|
227
|
-
const create$1$2 = (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$2(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
|
-
}
|
|
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;
|
|
269
|
-
|
|
270
|
-
// TODO maybe remove this in v6 or v7, only accept options object to simplify the code
|
|
271
|
-
const normalizeParams = args => {
|
|
272
|
-
if (args.length === 1) {
|
|
273
|
-
const options = args[0];
|
|
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
|
-
};
|
|
283
|
-
}
|
|
284
|
-
return {
|
|
285
|
-
ipc: args[0],
|
|
286
|
-
message: args[1],
|
|
287
|
-
execute: args[2],
|
|
288
|
-
resolve: args[3],
|
|
289
|
-
preparePrettyError: args[4],
|
|
290
|
-
logError: args[5],
|
|
291
|
-
requiresSocket: args[6]
|
|
292
|
-
};
|
|
293
|
-
};
|
|
294
|
-
const handleJsonRpcMessage = async (...args) => {
|
|
295
|
-
const options = normalizeParams(args);
|
|
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);
|
|
313
|
-
}
|
|
314
|
-
return;
|
|
315
|
-
}
|
|
316
|
-
resolve(message.id, message);
|
|
317
|
-
return;
|
|
318
|
-
}
|
|
319
|
-
if ('method' in message) {
|
|
320
|
-
await getResponse(message, ipc, execute, preparePrettyError, logError, requiresSocket);
|
|
321
|
-
return;
|
|
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$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$1(method, params);
|
|
340
|
-
transport.send(message);
|
|
341
|
-
};
|
|
342
|
-
const invoke$3 = (ipc, method, ...params) => {
|
|
343
|
-
return invokeHelper(ipc, method, params, false);
|
|
344
|
-
};
|
|
345
|
-
const invokeAndTransfer$1 = (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];
|
|
355
|
-
};
|
|
356
|
-
const execute = (command, ...args) => {
|
|
357
|
-
const fn = getCommand(command);
|
|
358
|
-
if (!fn) {
|
|
359
|
-
throw new Error(`command not found ${command}`);
|
|
360
|
-
}
|
|
361
|
-
return fn(...args);
|
|
362
|
-
};
|
|
363
|
-
|
|
364
|
-
const getData$1 = event => {
|
|
365
|
-
return event.data;
|
|
366
|
-
};
|
|
367
|
-
const attachEvents = that => {
|
|
368
|
-
const handleMessage = (...args) => {
|
|
369
|
-
const data = that.getData(...args);
|
|
370
|
-
that.dispatchEvent(new MessageEvent('message', {
|
|
371
|
-
data
|
|
372
|
-
}));
|
|
373
|
-
};
|
|
374
|
-
that.onMessage(handleMessage);
|
|
375
|
-
const handleClose = event => {
|
|
376
|
-
that.dispatchEvent(new Event('close'));
|
|
377
|
-
};
|
|
378
|
-
that.onClose(handleClose);
|
|
379
|
-
};
|
|
380
|
-
class Ipc extends EventTarget {
|
|
381
|
-
constructor(rawIpc) {
|
|
382
|
-
super();
|
|
383
|
-
this._rawIpc = rawIpc;
|
|
384
|
-
attachEvents(this);
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
const readyMessage = 'ready';
|
|
388
|
-
const walkValue = (value, transferrables, isTransferrable) => {
|
|
389
|
-
if (!value) {
|
|
390
|
-
return;
|
|
391
|
-
}
|
|
392
|
-
if (isTransferrable(value)) {
|
|
393
|
-
transferrables.push(value);
|
|
394
|
-
return;
|
|
395
|
-
}
|
|
396
|
-
if (Array.isArray(value)) {
|
|
397
|
-
for (const item of value) {
|
|
398
|
-
walkValue(item, transferrables, isTransferrable);
|
|
399
|
-
}
|
|
400
|
-
return;
|
|
401
|
-
}
|
|
402
|
-
if (typeof value === 'object') {
|
|
403
|
-
for (const property of Object.values(value)) {
|
|
404
|
-
walkValue(property, transferrables, isTransferrable);
|
|
405
|
-
}
|
|
406
|
-
return;
|
|
407
|
-
}
|
|
408
|
-
};
|
|
409
|
-
const isMessagePort = value => {
|
|
410
|
-
return value && value instanceof MessagePort;
|
|
411
|
-
};
|
|
412
|
-
const isMessagePortMain = value => {
|
|
413
|
-
return value && value.constructor && value.constructor.name === 'MessagePortMain';
|
|
414
|
-
};
|
|
415
|
-
const isOffscreenCanvas = value => {
|
|
416
|
-
return typeof OffscreenCanvas !== 'undefined' && value instanceof OffscreenCanvas;
|
|
417
|
-
};
|
|
418
|
-
const isInstanceOf = (value, constructorName) => {
|
|
419
|
-
return value?.constructor?.name === constructorName;
|
|
420
|
-
};
|
|
421
|
-
const isSocket = value => {
|
|
422
|
-
return isInstanceOf(value, 'Socket');
|
|
423
|
-
};
|
|
424
|
-
const transferrables = [isMessagePort, isMessagePortMain, isOffscreenCanvas, isSocket];
|
|
425
|
-
const isTransferrable = value => {
|
|
426
|
-
for (const fn of transferrables) {
|
|
427
|
-
if (fn(value)) {
|
|
428
|
-
return true;
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
return false;
|
|
432
|
-
};
|
|
433
|
-
const getTransferrables = value => {
|
|
434
|
-
const transferrables = [];
|
|
435
|
-
walkValue(value, transferrables, isTransferrable);
|
|
436
|
-
return transferrables;
|
|
437
|
-
};
|
|
438
|
-
const listen$2 = () => {
|
|
439
|
-
// @ts-ignore
|
|
440
|
-
if (typeof WorkerGlobalScope === 'undefined') {
|
|
441
|
-
throw new TypeError('module is not in web worker scope');
|
|
442
|
-
}
|
|
443
|
-
return globalThis;
|
|
444
|
-
};
|
|
445
|
-
const signal$2 = global => {
|
|
446
|
-
global.postMessage(readyMessage);
|
|
447
|
-
};
|
|
448
|
-
class IpcChildWithModuleWorker extends Ipc {
|
|
449
|
-
getData(event) {
|
|
450
|
-
return getData$1(event);
|
|
451
|
-
}
|
|
452
|
-
send(message) {
|
|
453
|
-
// @ts-ignore
|
|
454
|
-
this._rawIpc.postMessage(message);
|
|
455
|
-
}
|
|
456
|
-
sendAndTransfer(message) {
|
|
457
|
-
const transfer = getTransferrables(message);
|
|
458
|
-
// @ts-ignore
|
|
459
|
-
this._rawIpc.postMessage(message, transfer);
|
|
460
|
-
}
|
|
461
|
-
dispose() {
|
|
462
|
-
// ignore
|
|
463
|
-
}
|
|
464
|
-
onClose(callback) {
|
|
465
|
-
// ignore
|
|
466
|
-
}
|
|
467
|
-
onMessage(callback) {
|
|
468
|
-
this._rawIpc.addEventListener('message', callback);
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
const wrap$5 = global => {
|
|
472
|
-
return new IpcChildWithModuleWorker(global);
|
|
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$1 = lines => {
|
|
482
|
-
return lines.split(NewLine$1);
|
|
483
|
-
};
|
|
484
|
-
const isModuleNotFoundMessage = line => {
|
|
485
|
-
return line.includes('[ERR_MODULE_NOT_FOUND]');
|
|
486
|
-
};
|
|
487
|
-
const getModuleNotFoundError = stderr => {
|
|
488
|
-
const lines = splitLines$1(stderr);
|
|
489
|
-
const messageIndex = lines.findIndex(isModuleNotFoundMessage);
|
|
490
|
-
const message = lines[messageIndex];
|
|
491
|
-
return {
|
|
492
|
-
message,
|
|
493
|
-
code: ERR_MODULE_NOT_FOUND
|
|
494
|
-
};
|
|
495
|
-
};
|
|
496
|
-
const RE_NATIVE_MODULE_ERROR = /^innerError Error: Cannot find module '.*.node'/;
|
|
497
|
-
const RE_NATIVE_MODULE_ERROR_2 = /was compiled against a different Node.js version/;
|
|
498
|
-
const RE_MESSAGE_CODE_BLOCK_START = /^Error: The module '.*'$/;
|
|
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);
|
|
504
|
-
};
|
|
505
|
-
const isMessageCodeBlockStartIndex = line => {
|
|
506
|
-
return RE_MESSAGE_CODE_BLOCK_START.test(line);
|
|
507
|
-
};
|
|
508
|
-
const isMessageCodeBlockEndIndex = line => {
|
|
509
|
-
return RE_MESSAGE_CODE_BLOCK_END.test(line);
|
|
510
|
-
};
|
|
511
|
-
const getMessageCodeBlock = stderr => {
|
|
512
|
-
const lines = splitLines$1(stderr);
|
|
513
|
-
const startIndex = lines.findIndex(isMessageCodeBlockStartIndex);
|
|
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;
|
|
518
|
-
};
|
|
519
|
-
const getNativeModuleErrorMessage = stderr => {
|
|
520
|
-
const message = getMessageCodeBlock(stderr);
|
|
521
|
-
return {
|
|
522
|
-
message: `Incompatible native node module: ${message}`,
|
|
523
|
-
code: E_INCOMPATIBLE_NATIVE_MODULE
|
|
524
|
-
};
|
|
525
|
-
};
|
|
526
|
-
const isModulesSyntaxError = stderr => {
|
|
527
|
-
if (!stderr) {
|
|
528
|
-
return false;
|
|
529
|
-
}
|
|
530
|
-
return stderr.includes('SyntaxError: Cannot use import statement outside a module');
|
|
531
|
-
};
|
|
532
|
-
const getModuleSyntaxError = () => {
|
|
533
|
-
return {
|
|
534
|
-
message: `ES Modules are not supported in electron`,
|
|
535
|
-
code: E_MODULES_NOT_SUPPORTED_IN_ELECTRON
|
|
536
|
-
};
|
|
537
|
-
};
|
|
538
|
-
const isModuleNotFoundError = stderr => {
|
|
539
|
-
if (!stderr) {
|
|
540
|
-
return false;
|
|
541
|
-
}
|
|
542
|
-
return stderr.includes('ERR_MODULE_NOT_FOUND');
|
|
543
|
-
};
|
|
544
|
-
const isNormalStackLine = line => {
|
|
545
|
-
return RE_AT.test(line) && !RE_AT_PROMISE_INDEX.test(line);
|
|
546
|
-
};
|
|
547
|
-
const getDetails = lines => {
|
|
548
|
-
const index = lines.findIndex(isNormalStackLine);
|
|
549
|
-
if (index === -1) {
|
|
550
|
-
return {
|
|
551
|
-
actualMessage: joinLines(lines),
|
|
552
|
-
rest: []
|
|
553
|
-
};
|
|
554
|
-
}
|
|
555
|
-
let lastIndex = index - 1;
|
|
556
|
-
while (++lastIndex < lines.length) {
|
|
557
|
-
if (!isNormalStackLine(lines[lastIndex])) {
|
|
558
|
-
break;
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
return {
|
|
562
|
-
actualMessage: lines[index - 1],
|
|
563
|
-
rest: lines.slice(index, lastIndex)
|
|
564
|
-
};
|
|
565
|
-
};
|
|
566
|
-
const getHelpfulChildProcessError = (stdout, stderr) => {
|
|
567
|
-
if (isUnhelpfulNativeModuleError(stderr)) {
|
|
568
|
-
return getNativeModuleErrorMessage(stderr);
|
|
569
|
-
}
|
|
570
|
-
if (isModulesSyntaxError(stderr)) {
|
|
571
|
-
return getModuleSyntaxError();
|
|
572
|
-
}
|
|
573
|
-
if (isModuleNotFoundError(stderr)) {
|
|
574
|
-
return getModuleNotFoundError(stderr);
|
|
575
|
-
}
|
|
576
|
-
const lines = splitLines$1(stderr);
|
|
577
|
-
const {
|
|
578
|
-
actualMessage,
|
|
579
|
-
rest
|
|
580
|
-
} = getDetails(lines);
|
|
581
|
-
return {
|
|
582
|
-
message: `${actualMessage}`,
|
|
583
|
-
code: '',
|
|
584
|
-
stack: rest
|
|
585
|
-
};
|
|
586
|
-
};
|
|
587
|
-
const normalizeLine$1 = line => {
|
|
588
|
-
if (line.startsWith('Error: ')) {
|
|
589
|
-
return line.slice('Error: '.length);
|
|
590
|
-
}
|
|
591
|
-
if (line.startsWith('VError: ')) {
|
|
592
|
-
return line.slice('VError: '.length);
|
|
593
|
-
}
|
|
594
|
-
return line;
|
|
595
|
-
};
|
|
596
|
-
const getCombinedMessage$1 = (error, message) => {
|
|
597
|
-
const stringifiedError = normalizeLine$1(`${error}`);
|
|
598
|
-
if (message) {
|
|
599
|
-
return `${message}: ${stringifiedError}`;
|
|
600
|
-
}
|
|
601
|
-
return stringifiedError;
|
|
602
|
-
};
|
|
603
|
-
const NewLine$2 = '\n';
|
|
604
|
-
const getNewLineIndex$1 = (string, startIndex = undefined) => {
|
|
605
|
-
return string.indexOf(NewLine$2, startIndex);
|
|
606
|
-
};
|
|
607
|
-
const mergeStacks$1 = (parent, child) => {
|
|
608
|
-
if (!child) {
|
|
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;
|
|
623
|
-
};
|
|
624
|
-
let VError$1 = class VError extends Error {
|
|
625
|
-
constructor(error, message) {
|
|
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
|
-
}
|
|
641
|
-
};
|
|
642
|
-
class IpcError extends VError$1 {
|
|
643
|
-
// @ts-ignore
|
|
644
|
-
constructor(betterMessage, stdout = '', stderr = '') {
|
|
645
|
-
if (stdout || stderr) {
|
|
646
|
-
// @ts-ignore
|
|
647
|
-
const {
|
|
648
|
-
message,
|
|
649
|
-
code,
|
|
650
|
-
stack
|
|
651
|
-
} = getHelpfulChildProcessError(stdout, stderr);
|
|
652
|
-
const cause = new Error(message);
|
|
653
|
-
// @ts-ignore
|
|
654
|
-
cause.code = code;
|
|
655
|
-
cause.stack = stack;
|
|
656
|
-
super(cause, betterMessage);
|
|
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;
|
|
666
|
-
}
|
|
667
|
-
}
|
|
668
|
-
const withResolvers = () => {
|
|
669
|
-
let _resolve;
|
|
670
|
-
const promise = new Promise(resolve => {
|
|
671
|
-
_resolve = resolve;
|
|
672
|
-
});
|
|
673
|
-
return {
|
|
674
|
-
resolve: _resolve,
|
|
675
|
-
promise
|
|
676
|
-
};
|
|
677
|
-
};
|
|
678
|
-
const waitForFirstMessage = async port => {
|
|
679
|
-
const {
|
|
680
|
-
resolve,
|
|
681
|
-
promise
|
|
682
|
-
} = withResolvers();
|
|
683
|
-
port.addEventListener('message', resolve, {
|
|
684
|
-
once: true
|
|
685
|
-
});
|
|
686
|
-
const event = await promise;
|
|
687
|
-
// @ts-ignore
|
|
688
|
-
return event.data;
|
|
689
|
-
};
|
|
690
|
-
const listen$1$1 = async () => {
|
|
691
|
-
const parentIpcRaw = listen$2();
|
|
692
|
-
signal$2(parentIpcRaw);
|
|
693
|
-
const parentIpc = wrap$5(parentIpcRaw);
|
|
694
|
-
const firstMessage = await waitForFirstMessage(parentIpc);
|
|
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();
|
|
728
|
-
}
|
|
729
|
-
}
|
|
730
|
-
onClose(callback) {
|
|
731
|
-
// ignore
|
|
732
|
-
}
|
|
733
|
-
onMessage(callback) {
|
|
734
|
-
this._rawIpc.addEventListener('message', callback);
|
|
735
|
-
this._rawIpc.start();
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
const wrap$4 = port => {
|
|
739
|
-
return new IpcChildWithModuleWorkerAndMessagePort(port);
|
|
740
|
-
};
|
|
741
|
-
const IpcChildWithModuleWorkerAndMessagePort$1 = {
|
|
742
|
-
__proto__: null,
|
|
743
|
-
listen: listen$1$1,
|
|
744
|
-
wrap: wrap$4
|
|
745
|
-
};
|
|
746
|
-
const Message$1 = 3;
|
|
747
|
-
const addListener = (emitter, type, callback) => {
|
|
748
|
-
if ('addEventListener' in emitter) {
|
|
749
|
-
emitter.addEventListener(type, callback);
|
|
750
|
-
} else {
|
|
751
|
-
emitter.on(type, callback);
|
|
752
|
-
}
|
|
753
|
-
};
|
|
754
|
-
const removeListener = (emitter, type, callback) => {
|
|
755
|
-
if ('removeEventListener' in emitter) {
|
|
756
|
-
emitter.removeEventListener(type, callback);
|
|
757
|
-
} else {
|
|
758
|
-
emitter.off(type, callback);
|
|
759
|
-
}
|
|
760
|
-
};
|
|
761
|
-
const getFirstEvent = (eventEmitter, eventMap) => {
|
|
762
|
-
const {
|
|
763
|
-
resolve,
|
|
764
|
-
promise
|
|
765
|
-
} = withResolvers();
|
|
766
|
-
const listenerMap = Object.create(null);
|
|
767
|
-
const cleanup = value => {
|
|
768
|
-
for (const event of Object.keys(eventMap)) {
|
|
769
|
-
removeListener(eventEmitter, event, listenerMap[event]);
|
|
770
|
-
}
|
|
771
|
-
resolve(value);
|
|
772
|
-
};
|
|
773
|
-
for (const [event, type] of Object.entries(eventMap)) {
|
|
774
|
-
const listener = event => {
|
|
775
|
-
cleanup({
|
|
776
|
-
type,
|
|
777
|
-
event
|
|
778
|
-
});
|
|
779
|
-
};
|
|
780
|
-
addListener(eventEmitter, event, listener);
|
|
781
|
-
listenerMap[event] = listener;
|
|
782
|
-
}
|
|
783
|
-
return promise;
|
|
784
|
-
};
|
|
785
|
-
const create$2$1 = async ({
|
|
786
|
-
messagePort,
|
|
787
|
-
isMessagePortOpen
|
|
788
|
-
}) => {
|
|
789
|
-
if (!isMessagePort(messagePort)) {
|
|
790
|
-
throw new IpcError('port must be of type MessagePort');
|
|
791
|
-
}
|
|
792
|
-
if (isMessagePortOpen) {
|
|
793
|
-
return messagePort;
|
|
794
|
-
}
|
|
795
|
-
const eventPromise = getFirstEvent(messagePort, {
|
|
796
|
-
message: Message$1
|
|
797
|
-
});
|
|
798
|
-
messagePort.start();
|
|
799
|
-
const event = await eventPromise;
|
|
800
|
-
// @ts-ignore
|
|
801
|
-
if (event.data !== readyMessage) {
|
|
802
|
-
throw new IpcError('unexpected first message');
|
|
803
|
-
}
|
|
804
|
-
return messagePort;
|
|
805
|
-
};
|
|
806
|
-
const signal = messagePort => {
|
|
807
|
-
messagePort.start();
|
|
808
|
-
};
|
|
809
|
-
class IpcParentWithMessagePort extends Ipc {
|
|
810
|
-
constructor(port) {
|
|
811
|
-
super(port);
|
|
812
|
-
}
|
|
813
|
-
getData = getData$1;
|
|
814
|
-
send(message) {
|
|
815
|
-
this._rawIpc.postMessage(message);
|
|
816
|
-
}
|
|
817
|
-
sendAndTransfer(message) {
|
|
818
|
-
throw new Error('not implemented');
|
|
819
|
-
}
|
|
820
|
-
dispose() {
|
|
821
|
-
this._rawIpc.close();
|
|
822
|
-
}
|
|
823
|
-
onMessage(callback) {
|
|
824
|
-
this._rawIpc.addEventListener('message', callback);
|
|
825
|
-
}
|
|
826
|
-
onClose(callback) {}
|
|
827
|
-
}
|
|
828
|
-
const wrap$2 = messagePort => {
|
|
829
|
-
return new IpcParentWithMessagePort(messagePort);
|
|
830
|
-
};
|
|
831
|
-
const IpcParentWithMessagePort$1 = {
|
|
832
|
-
__proto__: null,
|
|
833
|
-
create: create$2$1,
|
|
834
|
-
signal,
|
|
835
|
-
wrap: wrap$2
|
|
836
|
-
};
|
|
837
|
-
const Open = 1;
|
|
838
|
-
const Close = 2;
|
|
839
|
-
const stringifyCompact = value => {
|
|
840
|
-
return JSON.stringify(value);
|
|
841
|
-
};
|
|
842
|
-
const parse = content => {
|
|
843
|
-
if (content === 'undefined') {
|
|
844
|
-
return null;
|
|
845
|
-
}
|
|
846
|
-
try {
|
|
847
|
-
return JSON.parse(content);
|
|
848
|
-
} catch (error) {
|
|
849
|
-
throw new VError$1(error, 'failed to parse json');
|
|
850
|
-
}
|
|
851
|
-
};
|
|
852
|
-
const waitForWebSocketToBeOpen = webSocket => {
|
|
853
|
-
return getFirstEvent(webSocket, {
|
|
854
|
-
open: Open,
|
|
855
|
-
close: Close
|
|
856
|
-
});
|
|
857
|
-
};
|
|
858
|
-
const create$4 = async ({
|
|
859
|
-
webSocket
|
|
860
|
-
}) => {
|
|
861
|
-
const firstWebSocketEvent = await waitForWebSocketToBeOpen(webSocket);
|
|
862
|
-
// @ts-ignore
|
|
863
|
-
if (firstWebSocketEvent.type === Close) {
|
|
864
|
-
throw new IpcError('Websocket connection was immediately closed');
|
|
865
|
-
}
|
|
866
|
-
return webSocket;
|
|
867
|
-
};
|
|
868
|
-
class IpcParentWithWebSocket extends Ipc {
|
|
869
|
-
getData(event) {
|
|
870
|
-
return parse(event.data);
|
|
871
|
-
}
|
|
872
|
-
send(message) {
|
|
873
|
-
this._rawIpc.send(stringifyCompact(message));
|
|
874
|
-
}
|
|
875
|
-
sendAndTransfer(message) {
|
|
876
|
-
throw new Error('sendAndTransfer not supported');
|
|
877
|
-
}
|
|
878
|
-
dispose() {
|
|
879
|
-
this._rawIpc.close();
|
|
880
|
-
}
|
|
881
|
-
onClose(callback) {
|
|
882
|
-
this._rawIpc.addEventListener('close', callback);
|
|
883
|
-
}
|
|
884
|
-
onMessage(callback) {
|
|
885
|
-
this._rawIpc.addEventListener('message', callback);
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
const wrap$1 = webSocket => {
|
|
889
|
-
return new IpcParentWithWebSocket(webSocket);
|
|
890
|
-
};
|
|
891
|
-
const IpcParentWithWebSocket$1 = {
|
|
892
|
-
__proto__: null,
|
|
893
|
-
create: create$4,
|
|
894
|
-
wrap: wrap$1
|
|
895
|
-
};
|
|
896
|
-
|
|
897
|
-
const createRpc = ipc => {
|
|
898
|
-
const rpc = {
|
|
899
|
-
/**
|
|
900
|
-
* @deprecated
|
|
901
|
-
*/
|
|
902
|
-
send(method, ...params) {
|
|
903
|
-
send(ipc, method, ...params);
|
|
904
|
-
},
|
|
905
|
-
invoke(method, ...params) {
|
|
906
|
-
return invoke$3(ipc, method, ...params);
|
|
907
|
-
},
|
|
908
|
-
invokeAndTransfer(method, ...params) {
|
|
909
|
-
return invokeAndTransfer$1(ipc, method, ...params);
|
|
910
|
-
}
|
|
911
|
-
};
|
|
912
|
-
return rpc;
|
|
913
|
-
};
|
|
914
|
-
const requiresSocket = () => {
|
|
915
|
-
return false;
|
|
916
|
-
};
|
|
917
|
-
const preparePrettyError = error => {
|
|
918
|
-
return error;
|
|
919
|
-
};
|
|
920
|
-
const logError = () => {
|
|
921
|
-
// handled by renderer worker
|
|
922
|
-
};
|
|
923
|
-
const handleMessage = event => {
|
|
924
|
-
return handleJsonRpcMessage(event.target, event.data, execute, resolve, preparePrettyError, logError, requiresSocket);
|
|
925
|
-
};
|
|
926
|
-
const handleIpc = ipc => {
|
|
927
|
-
ipc.addEventListener('message', handleMessage);
|
|
928
|
-
};
|
|
929
|
-
const create$2 = async ({
|
|
930
|
-
commandMap,
|
|
931
|
-
messagePort,
|
|
932
|
-
isMessagePortOpen
|
|
933
|
-
}) => {
|
|
934
|
-
// TODO create a commandMap per rpc instance
|
|
935
|
-
register(commandMap);
|
|
936
|
-
const rawIpc = await IpcParentWithMessagePort$1.create({
|
|
937
|
-
messagePort,
|
|
938
|
-
isMessagePortOpen
|
|
939
|
-
});
|
|
940
|
-
const ipc = IpcParentWithMessagePort$1.wrap(rawIpc);
|
|
941
|
-
handleIpc(ipc);
|
|
942
|
-
const rpc = createRpc(ipc);
|
|
943
|
-
return rpc;
|
|
944
|
-
};
|
|
945
|
-
const MessagePortRpcParent = {
|
|
946
|
-
__proto__: null,
|
|
947
|
-
create: create$2
|
|
948
|
-
};
|
|
949
|
-
const create$1$1 = async ({
|
|
950
|
-
commandMap,
|
|
951
|
-
webSocket
|
|
952
|
-
}) => {
|
|
953
|
-
// TODO create a commandMap per rpc instance
|
|
954
|
-
register(commandMap);
|
|
955
|
-
const rawIpc = await IpcParentWithWebSocket$1.create({
|
|
956
|
-
webSocket
|
|
957
|
-
});
|
|
958
|
-
const ipc = IpcParentWithWebSocket$1.wrap(rawIpc);
|
|
959
|
-
handleIpc(ipc);
|
|
960
|
-
const rpc = createRpc(ipc);
|
|
961
|
-
return rpc;
|
|
962
|
-
};
|
|
963
|
-
const WebSocketRpcParent = {
|
|
964
|
-
__proto__: null,
|
|
965
|
-
create: create$1$1
|
|
966
|
-
};
|
|
967
|
-
|
|
968
|
-
// @ts-ignore
|
|
969
|
-
const listen$1 = async () => {
|
|
970
|
-
const module = IpcChildWithModuleWorkerAndMessagePort$1;
|
|
971
|
-
const rawIpc = await module.listen();
|
|
972
|
-
const ipc = module.wrap(rawIpc);
|
|
973
|
-
return ipc;
|
|
974
|
-
};
|
|
975
|
-
const create$3 = async ({
|
|
976
|
-
commandMap
|
|
977
|
-
}) => {
|
|
978
|
-
// TODO create a commandMap per rpc instance
|
|
979
|
-
register(commandMap);
|
|
980
|
-
const ipc = await listen$1();
|
|
981
|
-
handleIpc(ipc);
|
|
982
|
-
const rpc = createRpc(ipc);
|
|
983
|
-
return rpc;
|
|
984
|
-
};
|
|
985
|
-
const WebWorkerRpcClient = {
|
|
986
|
-
__proto__: null,
|
|
987
|
-
create: create$3
|
|
988
|
-
};
|
|
989
|
-
|
|
990
|
-
const Empty$1 = 0;
|
|
991
|
-
const FocusIgnoreFiles = 1012;
|
|
992
|
-
const FocusSearch = 1013;
|
|
993
|
-
const FocusSearchExcludeInput = 1008;
|
|
994
|
-
const FocusSearchIncludeInput = 1007;
|
|
995
|
-
const FocusSearchInput = 21;
|
|
996
|
-
const FocusSearchMatchCase = 32;
|
|
997
|
-
const FocusSearchOpenEditors = 1011;
|
|
998
|
-
const FocusSearchPreserveCase = 36;
|
|
999
|
-
const FocusSearchRegex = 33;
|
|
1000
|
-
const FocusSearchReplaceAll = 35;
|
|
1001
|
-
const FocusSearchReplaceInput = 31;
|
|
1002
|
-
const FocusSearchResults = 22;
|
|
1003
|
-
const FocusSearchWholeWord = 34;
|
|
1004
|
-
const FocusToggleDetails = 1010;
|
|
1005
|
-
const FocusToggleReplace = 1020;
|
|
1006
|
-
|
|
1007
|
-
const User = 1;
|
|
1008
|
-
const Script = 2;
|
|
1009
|
-
|
|
1010
|
-
const clearSearchResults$1 = state => {
|
|
1011
|
-
return {
|
|
1012
|
-
...state,
|
|
1013
|
-
value: '',
|
|
1014
|
-
items: [],
|
|
1015
|
-
minLineY: 0,
|
|
1016
|
-
maxLineY: 0,
|
|
1017
|
-
message: '',
|
|
1018
|
-
focus: FocusSearchInput,
|
|
1019
|
-
focusSource: Script
|
|
1020
|
-
};
|
|
1021
|
-
};
|
|
1022
|
-
|
|
1023
|
-
const state$3 = {
|
|
1024
|
-
rpc: undefined
|
|
1025
|
-
};
|
|
1026
|
-
const invoke$2 = (method, ...params) => {
|
|
1027
|
-
const rpc = state$3.rpc;
|
|
1028
|
-
// @ts-ignore
|
|
1029
|
-
return rpc.invoke(method, ...params);
|
|
1030
|
-
};
|
|
1031
|
-
const invokeAndTransfer = (method, ...params) => {
|
|
1032
|
-
const rpc = state$3.rpc;
|
|
1033
|
-
// @ts-ignore
|
|
1034
|
-
return rpc.invokeAndTransfer(method, ...params);
|
|
1035
|
-
};
|
|
1036
|
-
const setRpc = rpc => {
|
|
1037
|
-
state$3.rpc = rpc;
|
|
1038
|
-
};
|
|
1039
|
-
|
|
1040
|
-
const copy = async state => {
|
|
1041
|
-
const {
|
|
1042
|
-
items,
|
|
1043
|
-
listFocusedIndex
|
|
1044
|
-
} = state;
|
|
1045
|
-
if (listFocusedIndex === -1) {
|
|
1046
|
-
return state;
|
|
1047
|
-
}
|
|
1048
|
-
const item = items[listFocusedIndex];
|
|
1049
|
-
await invoke$2('ClipBoard.writeText', item.text);
|
|
1050
|
-
return state;
|
|
1051
|
-
};
|
|
1052
|
-
|
|
1053
|
-
const minimumSliderSize = 20;
|
|
1054
|
-
|
|
1055
|
-
const states = Object.create(null);
|
|
1056
|
-
const get = uid => {
|
|
1057
|
-
return states[uid];
|
|
1058
|
-
};
|
|
1059
|
-
const set = (uid, oldState, newState) => {
|
|
1060
|
-
states[uid] = {
|
|
1061
|
-
oldState,
|
|
1062
|
-
newState
|
|
1063
|
-
};
|
|
1064
|
-
};
|
|
1065
|
-
|
|
1066
|
-
const create$1 = ({
|
|
1067
|
-
itemHeight,
|
|
1068
|
-
headerHeight = 0,
|
|
1069
|
-
minimumSliderSize = 20
|
|
1070
|
-
}) => {
|
|
1071
|
-
return {
|
|
1072
|
-
deltaY: 0,
|
|
1073
|
-
minLineY: 0,
|
|
1074
|
-
maxLineY: 0,
|
|
1075
|
-
finalDeltaY: 0,
|
|
1076
|
-
itemHeight,
|
|
1077
|
-
headerHeight,
|
|
1078
|
-
items: [],
|
|
1079
|
-
listItems: [],
|
|
1080
|
-
minimumSliderSize,
|
|
1081
|
-
focusedIndex: -1,
|
|
1082
|
-
touchOffsetY: 0,
|
|
1083
|
-
touchTimeStamp: 0,
|
|
1084
|
-
touchDifference: 0,
|
|
1085
|
-
scrollBarHeight: 0,
|
|
1086
|
-
scrollBarActive: false
|
|
1087
|
-
};
|
|
1088
|
-
};
|
|
1089
|
-
|
|
1090
|
-
const create = (uid, x, y, width, height, workspacePath, assetDir, itemHeight, value = '', replacement = '', platform) => {
|
|
1091
|
-
const state = {
|
|
1092
|
-
uid,
|
|
1093
|
-
searchResults: [],
|
|
1094
|
-
stats: {},
|
|
1095
|
-
searchId: -1,
|
|
1096
|
-
value,
|
|
1097
|
-
disposed: false,
|
|
1098
|
-
fileCount: 0,
|
|
1099
|
-
x,
|
|
1100
|
-
y,
|
|
1101
|
-
width,
|
|
1102
|
-
height,
|
|
1103
|
-
...create$1({
|
|
1104
|
-
itemHeight: itemHeight || 22,
|
|
1105
|
-
minimumSliderSize: minimumSliderSize,
|
|
1106
|
-
headerHeight: 61 // TODO
|
|
1107
|
-
}),
|
|
1108
|
-
threads: 0,
|
|
1109
|
-
replacement,
|
|
1110
|
-
matchCount: 0,
|
|
1111
|
-
listFocused: false,
|
|
1112
|
-
listFocusedIndex: -1,
|
|
1113
|
-
inputSource: User,
|
|
1114
|
-
workspacePath: workspacePath,
|
|
1115
|
-
includeValue: '',
|
|
1116
|
-
excludeValue: '',
|
|
1117
|
-
focus: Empty$1,
|
|
1118
|
-
loaded: false,
|
|
1119
|
-
message: '',
|
|
1120
|
-
collapsedPaths: [],
|
|
1121
|
-
icons: [],
|
|
1122
|
-
assetDir,
|
|
1123
|
-
deltaY: 0,
|
|
1124
|
-
finalDeltaY: 0,
|
|
1125
|
-
focused: false,
|
|
1126
|
-
focusedIndex: -1,
|
|
1127
|
-
handleOffset: 0,
|
|
1128
|
-
focusSource: User,
|
|
1129
|
-
flags: 0,
|
|
1130
|
-
platform
|
|
1131
|
-
};
|
|
1132
|
-
set(uid, state, state);
|
|
1133
|
-
return state;
|
|
1134
|
-
};
|
|
1135
|
-
|
|
1136
|
-
// based on https://github.com/microsoft/vscode/blob/c0769274fa136b45799edeccc0d0a2f645b75caf/src/vs/base/common/arrays.ts#L625 (License MIT)
|
|
1137
|
-
|
|
1138
|
-
const insertInto = (array, start, newItems) => {
|
|
1139
|
-
const originalLength = array.length;
|
|
1140
|
-
const newItemsLength = newItems.length;
|
|
1141
|
-
array.length = originalLength + newItemsLength;
|
|
1142
|
-
// Move the items after the start index, start from the end so that we don't overwrite any value.
|
|
1143
|
-
for (let i = originalLength - 1; i >= start; i--) {
|
|
1144
|
-
array[i + newItemsLength] = array[i];
|
|
1145
|
-
}
|
|
1146
|
-
for (let i = 0; i < newItemsLength; i++) {
|
|
1147
|
-
array[i + start] = newItems[i];
|
|
1148
|
-
}
|
|
1149
|
-
};
|
|
1150
|
-
const push = (array, newItems) => {
|
|
1151
|
-
insertInto(array, array.length, newItems);
|
|
1152
|
-
};
|
|
1153
|
-
const isLastIndex = (array, index) => {
|
|
1154
|
-
return index === array.length - 1;
|
|
1155
|
-
};
|
|
1156
|
-
const lastIndex = array => {
|
|
1157
|
-
return array.length - 1;
|
|
1158
|
-
};
|
|
1159
|
-
const remove = (array, index, deleteCount) => {
|
|
1160
|
-
return array.toSpliced(index, deleteCount);
|
|
1161
|
-
};
|
|
1162
|
-
const fromAsync = async asyncIterable => {
|
|
1163
|
-
const children = [];
|
|
1164
|
-
for await (const value of asyncIterable) {
|
|
1165
|
-
children.push(value);
|
|
1166
|
-
}
|
|
1167
|
-
return children;
|
|
1168
|
-
};
|
|
1169
|
-
|
|
1170
|
-
const emptyObject = {};
|
|
1171
|
-
const RE_PLACEHOLDER = /\{(PH\d+)\}/g;
|
|
1172
|
-
const i18nString = (key, placeholders = emptyObject) => {
|
|
1173
|
-
if (placeholders === emptyObject) {
|
|
1174
|
-
return key;
|
|
1175
|
-
}
|
|
1176
|
-
const replacer = (match, rest) => {
|
|
1177
|
-
return placeholders[rest];
|
|
1178
|
-
};
|
|
1179
|
-
return key.replaceAll(RE_PLACEHOLDER, replacer);
|
|
1180
|
-
};
|
|
1181
|
-
|
|
1182
|
-
/**
|
|
1183
|
-
* @enum {string}
|
|
1184
|
-
*/
|
|
1185
|
-
const UiStrings = {
|
|
1186
|
-
ClearSearchResults: 'Clear Search Results',
|
|
1187
|
-
CollapseAll: 'Collapse All',
|
|
1188
|
-
ConfirmReplaceAll: 'Replace All?',
|
|
1189
|
-
ConfirmReplaceManyOccurrencesInManyFiles: "Replace {PH1} occurrences across {PH2} files with '{PH3}'",
|
|
1190
|
-
ConfirmReplaceManyOccurrencesInManyFilesNoValue: 'Replace {PH1} occurrences across {PH2} files',
|
|
1191
|
-
ConfirmReplaceManyOccurrencesInOneFile: "Replace {PH1} occurrences across 1 file with '{PH2}'",
|
|
1192
|
-
ConfirmReplaceManyOccurrencesInOneFileNoValue: 'Replace {PH1} occurrences across 1 file',
|
|
1193
|
-
ConfirmReplaceOneOccurrenceInOneFile: "Replace 1 occurrence across 1 file with '{PH1}'",
|
|
1194
|
-
ConfirmReplaceOneOccurrenceInOneFileNoValue: 'Replace 1 occurrence across 1 file',
|
|
1195
|
-
CopyPath: 'Copy Path',
|
|
1196
|
-
Dismiss: 'Dismiss',
|
|
1197
|
-
ManyResultsInManyFiles: '{PH1} results in {PH2} files',
|
|
1198
|
-
ManyResultsInOneFile: '{PH1} results in 1 file',
|
|
1199
|
-
MatchCase: 'Match Case',
|
|
1200
|
-
MatchWholeWord: 'Match Whole Word',
|
|
1201
|
-
NoResults: 'No results found',
|
|
1202
|
-
Oneresult: '1 result in 1 file',
|
|
1203
|
-
OpenNewSearchEditor: 'Open New Search Editor',
|
|
1204
|
-
PreserveCase: 'Preserve Case',
|
|
1205
|
-
Refresh: 'Refresh',
|
|
1206
|
-
Replace: 'Replace',
|
|
1207
|
-
ReplaceAll: 'Replace All',
|
|
1208
|
-
ReplacedManyOccurrencesInManyFiles: "Replaced {PH1} occurrences across {PH2} files with '{PH3}'",
|
|
1209
|
-
ReplacedManyOccurrencesInOneFile: "Replaced {PH1} occurrences across 1 file with '{PH2}'",
|
|
1210
|
-
ReplacedOneOccurrenceInOneFile: "Replaced 1 occurrence across 1 file with '{PH1}'",
|
|
1211
|
-
ToggleReplace: 'Toggle Replace',
|
|
1212
|
-
UseRegularExpression: 'Use Regular Expression',
|
|
1213
|
-
ViewAsTree: 'View as Tree',
|
|
1214
|
-
FilesToInclude: 'Files to Include',
|
|
1215
|
-
FilesToExclude: 'Files to Exclude',
|
|
1216
|
-
ToggleSearchDetails: 'Toggle Search Details',
|
|
1217
|
-
SearchOnlyOpenEditors: 'Search Only Open Editors',
|
|
1218
|
-
UseExcludeSettings: 'Use Exclude Settings'
|
|
1219
|
-
};
|
|
1220
|
-
const noResults = () => {
|
|
1221
|
-
return i18nString(UiStrings.NoResults);
|
|
1222
|
-
};
|
|
1223
|
-
const oneResult = () => {
|
|
1224
|
-
return i18nString(UiStrings.Oneresult);
|
|
1225
|
-
};
|
|
1226
|
-
const toggleReplace$1 = () => {
|
|
1227
|
-
return i18nString(UiStrings.ToggleReplace);
|
|
1228
|
-
};
|
|
1229
|
-
const matchCase = () => {
|
|
1230
|
-
return i18nString(UiStrings.MatchCase);
|
|
1231
|
-
};
|
|
1232
|
-
const preserveCase = () => {
|
|
1233
|
-
return i18nString(UiStrings.PreserveCase);
|
|
1234
|
-
};
|
|
1235
|
-
const matchWholeWord = () => {
|
|
1236
|
-
return i18nString(UiStrings.MatchWholeWord);
|
|
1237
|
-
};
|
|
1238
|
-
const toggleSearchDetails = () => {
|
|
1239
|
-
return i18nString(UiStrings.ToggleSearchDetails);
|
|
1240
|
-
};
|
|
1241
|
-
const useRegularExpression = () => {
|
|
1242
|
-
return i18nString(UiStrings.UseRegularExpression);
|
|
1243
|
-
};
|
|
1244
|
-
const manyResultsInOneFile = resultCount => {
|
|
1245
|
-
return i18nString(UiStrings.ManyResultsInOneFile, {
|
|
1246
|
-
PH1: resultCount
|
|
1247
|
-
});
|
|
1248
|
-
};
|
|
1249
|
-
const manyResultsInManyFiles = (resultCount, fileResultCount) => {
|
|
1250
|
-
return i18nString(UiStrings.ManyResultsInManyFiles, {
|
|
1251
|
-
PH1: resultCount,
|
|
1252
|
-
PH2: fileResultCount
|
|
1253
|
-
});
|
|
1254
|
-
};
|
|
1255
|
-
const confirmReplaceOneOccurrenceInOneFile = replacement => {
|
|
1256
|
-
return i18nString(UiStrings.ConfirmReplaceOneOccurrenceInOneFile, {
|
|
1257
|
-
PH1: replacement
|
|
1258
|
-
});
|
|
1259
|
-
};
|
|
1260
|
-
const confirmReplaceOneOccurrenceInOneFileNoValue = () => {
|
|
1261
|
-
return i18nString(UiStrings.ConfirmReplaceOneOccurrenceInOneFileNoValue);
|
|
1262
|
-
};
|
|
1263
|
-
const confirmReplaceManyOccurrencesInOneFile = (matchCount, replacement) => {
|
|
1264
|
-
return i18nString(UiStrings.ConfirmReplaceManyOccurrencesInOneFile, {
|
|
1265
|
-
PH1: matchCount,
|
|
1266
|
-
PH2: replacement
|
|
1267
|
-
});
|
|
1268
|
-
};
|
|
1269
|
-
const confirmReplaceManyOccurrencesInOneFileNoValue = matchCount => {
|
|
1270
|
-
return i18nString(UiStrings.ConfirmReplaceManyOccurrencesInOneFileNoValue, {
|
|
1271
|
-
PH1: matchCount
|
|
1272
|
-
});
|
|
1273
|
-
};
|
|
1274
|
-
const confirmReplaceManyOccurrencesInManyFiles = (matchCount, fileCount, replacement) => {
|
|
1275
|
-
return i18nString(UiStrings.ConfirmReplaceManyOccurrencesInManyFiles, {
|
|
1276
|
-
PH1: matchCount,
|
|
1277
|
-
PH2: fileCount,
|
|
1278
|
-
PH3: replacement
|
|
1279
|
-
});
|
|
1280
|
-
};
|
|
1281
|
-
const confirmReplaceManyOccurrencesInManyFilesNoValue = (matchCount, fileCount) => {
|
|
1282
|
-
return i18nString(UiStrings.ConfirmReplaceManyOccurrencesInManyFilesNoValue, {
|
|
1283
|
-
PH1: matchCount,
|
|
1284
|
-
PH2: fileCount
|
|
1285
|
-
});
|
|
1286
|
-
};
|
|
1287
|
-
const replaceAll$1 = () => {
|
|
1288
|
-
return i18nString(UiStrings.ReplaceAll);
|
|
1289
|
-
};
|
|
1290
|
-
const replace = () => {
|
|
1291
|
-
return i18nString(UiStrings.Replace);
|
|
1292
|
-
};
|
|
1293
|
-
const refresh$1 = () => {
|
|
1294
|
-
return i18nString(UiStrings.Refresh);
|
|
1295
|
-
};
|
|
1296
|
-
const clearSearchResults = () => {
|
|
1297
|
-
return i18nString(UiStrings.ClearSearchResults);
|
|
1298
|
-
};
|
|
1299
|
-
const openNewSearchEditor = () => {
|
|
1300
|
-
return i18nString(UiStrings.OpenNewSearchEditor);
|
|
1301
|
-
};
|
|
1302
|
-
const viewAsTree = () => {
|
|
1303
|
-
return i18nString(UiStrings.ViewAsTree);
|
|
1304
|
-
};
|
|
1305
|
-
const collapseAll = () => {
|
|
1306
|
-
return i18nString(UiStrings.CollapseAll);
|
|
1307
|
-
};
|
|
1308
|
-
const filesToInclude = () => {
|
|
1309
|
-
return i18nString(UiStrings.FilesToInclude);
|
|
1310
|
-
};
|
|
1311
|
-
const filesToExclude = () => {
|
|
1312
|
-
return i18nString(UiStrings.FilesToExclude);
|
|
1313
|
-
};
|
|
1314
|
-
const searchOnlyOpenEditors = () => {
|
|
1315
|
-
return i18nString(UiStrings.SearchOnlyOpenEditors);
|
|
1316
|
-
};
|
|
1317
|
-
const useExcludeSettings = () => {
|
|
1318
|
-
return i18nString(UiStrings.UseExcludeSettings);
|
|
1319
|
-
};
|
|
1320
|
-
|
|
1321
|
-
const getStatusMessage = (resultCount, fileResultCount) => {
|
|
1322
|
-
if (resultCount === 0) {
|
|
1323
|
-
return noResults();
|
|
1324
|
-
}
|
|
1325
|
-
if (resultCount === 1) {
|
|
1326
|
-
return oneResult();
|
|
1327
|
-
}
|
|
1328
|
-
if (fileResultCount === 1) {
|
|
1329
|
-
return manyResultsInOneFile(resultCount);
|
|
1330
|
-
}
|
|
1331
|
-
return manyResultsInManyFiles(resultCount, fileResultCount);
|
|
1332
|
-
};
|
|
1333
|
-
|
|
1334
|
-
const File$1 = 1;
|
|
1335
|
-
const Match = 2;
|
|
1336
|
-
|
|
1337
|
-
const getSetSize = (items, index) => {
|
|
1338
|
-
let setSize = 0;
|
|
1339
|
-
for (let i = index + 1; i < items.length; i++) {
|
|
1340
|
-
if (items[i].type === File$1) {
|
|
1341
|
-
break;
|
|
1342
|
-
}
|
|
1343
|
-
setSize++;
|
|
1344
|
-
}
|
|
1345
|
-
return setSize;
|
|
1346
|
-
};
|
|
1347
|
-
const getRemoveIndicesFile = (items, item, index, matchCount, fileCount) => {
|
|
1348
|
-
const setSize = getSetSize(items, index);
|
|
1349
|
-
return {
|
|
1350
|
-
startIndex: index,
|
|
1351
|
-
removeCount: setSize + 1,
|
|
1352
|
-
newFocusedIndex: index + setSize + 1 < items.length ? index : index - 1,
|
|
1353
|
-
newFileCount: fileCount - 1,
|
|
1354
|
-
newMatchCount: matchCount - setSize
|
|
1355
|
-
};
|
|
1356
|
-
};
|
|
1357
|
-
const getRemoveIndicesMatch = (items, index, matchCount, fileCount) => {
|
|
1358
|
-
for (let i = index; i >= 0; i--) {
|
|
1359
|
-
if (items[i].type === File$1) {
|
|
1360
|
-
const setSize = getSetSize(items, i);
|
|
1361
|
-
if (setSize === 1) {
|
|
1362
|
-
return {
|
|
1363
|
-
startIndex: i,
|
|
1364
|
-
removeCount: 2,
|
|
1365
|
-
newFocusedIndex: i - 1,
|
|
1366
|
-
newFileCount: fileCount - 1,
|
|
1367
|
-
newMatchCount: matchCount - 1
|
|
1368
|
-
};
|
|
1369
|
-
}
|
|
1370
|
-
return {
|
|
1371
|
-
startIndex: index,
|
|
1372
|
-
removeCount: 1,
|
|
1373
|
-
newFocusedIndex: index,
|
|
1374
|
-
newFileCount: fileCount,
|
|
1375
|
-
newMatchCount: matchCount - 1
|
|
1376
|
-
};
|
|
1377
|
-
}
|
|
1378
|
-
}
|
|
1379
|
-
throw new Error('could not compute indices to remove');
|
|
1380
|
-
};
|
|
1381
|
-
const getRemoveIndices = (items, index, matchCount, fileCount) => {
|
|
1382
|
-
const item = items[index];
|
|
1383
|
-
switch (item.type) {
|
|
1384
|
-
case File$1:
|
|
1385
|
-
return getRemoveIndicesFile(items, item, index, matchCount, fileCount);
|
|
1386
|
-
case Match:
|
|
1387
|
-
return getRemoveIndicesMatch(items, index, matchCount, fileCount);
|
|
1388
|
-
default:
|
|
1389
|
-
throw new Error('unknown search result type');
|
|
1390
|
-
}
|
|
1391
|
-
};
|
|
1392
|
-
const removeItemFromItems = (items, index, matchCount, fileCount) => {
|
|
1393
|
-
const {
|
|
1394
|
-
startIndex,
|
|
1395
|
-
removeCount,
|
|
1396
|
-
newFocusedIndex,
|
|
1397
|
-
newFileCount,
|
|
1398
|
-
newMatchCount
|
|
1399
|
-
} = getRemoveIndices(items, index, matchCount, fileCount);
|
|
1400
|
-
const newItems = remove(items, startIndex, removeCount);
|
|
1401
|
-
return {
|
|
1402
|
-
newItems,
|
|
1403
|
-
newFocusedIndex,
|
|
1404
|
-
newFileCount,
|
|
1405
|
-
newMatchCount
|
|
1406
|
-
};
|
|
1407
|
-
};
|
|
1408
|
-
const getNewMinMax = (newItemsLength, minLineY, maxLineY, deltaY, itemHeight) => {
|
|
1409
|
-
if (maxLineY > newItemsLength) {
|
|
1410
|
-
const diff = maxLineY - minLineY;
|
|
1411
|
-
const newMinLineY = Math.max(newItemsLength - diff, 0);
|
|
1412
|
-
const newDeltaY = newMinLineY * itemHeight;
|
|
1413
|
-
return {
|
|
1414
|
-
newDeltaY,
|
|
1415
|
-
newMinLineY,
|
|
1416
|
-
newMaxLineY: newItemsLength
|
|
1417
|
-
};
|
|
1418
|
-
}
|
|
1419
|
-
return {
|
|
1420
|
-
newDeltaY: deltaY,
|
|
1421
|
-
newMinLineY: minLineY,
|
|
1422
|
-
newMaxLineY: maxLineY
|
|
1423
|
-
};
|
|
1424
|
-
};
|
|
1425
|
-
const dismissItem = state => {
|
|
1426
|
-
const {
|
|
1427
|
-
items,
|
|
1428
|
-
listFocusedIndex,
|
|
1429
|
-
fileCount,
|
|
1430
|
-
matchCount,
|
|
1431
|
-
minLineY,
|
|
1432
|
-
maxLineY,
|
|
1433
|
-
deltaY,
|
|
1434
|
-
itemHeight
|
|
1435
|
-
} = state;
|
|
1436
|
-
if (listFocusedIndex === -1) {
|
|
1437
|
-
return state;
|
|
1438
|
-
}
|
|
1439
|
-
const {
|
|
1440
|
-
newItems,
|
|
1441
|
-
newFocusedIndex,
|
|
1442
|
-
newMatchCount,
|
|
1443
|
-
newFileCount
|
|
1444
|
-
} = removeItemFromItems(items, listFocusedIndex, matchCount, fileCount);
|
|
1445
|
-
const message = getStatusMessage(newMatchCount, newFileCount);
|
|
1446
|
-
const {
|
|
1447
|
-
newMinLineY,
|
|
1448
|
-
newMaxLineY,
|
|
1449
|
-
newDeltaY
|
|
1450
|
-
} = getNewMinMax(newItems.length, minLineY, maxLineY, deltaY, itemHeight);
|
|
1451
|
-
return {
|
|
1452
|
-
...state,
|
|
1453
|
-
items: newItems,
|
|
1454
|
-
listFocusedIndex: newFocusedIndex,
|
|
1455
|
-
message,
|
|
1456
|
-
matchCount: newMatchCount,
|
|
1457
|
-
fileCount: newFileCount,
|
|
1458
|
-
minLineY: newMinLineY,
|
|
1459
|
-
maxLineY: newMaxLineY,
|
|
1460
|
-
deltaY: newDeltaY
|
|
1461
|
-
};
|
|
1462
|
-
};
|
|
1463
|
-
|
|
1464
|
-
const focusMatchCase$1 = state => {
|
|
1465
|
-
return {
|
|
1466
|
-
...state,
|
|
1467
|
-
focus: FocusSearchMatchCase
|
|
1468
|
-
};
|
|
1469
|
-
};
|
|
1470
|
-
|
|
1471
|
-
const PreserveCase$1 = 1 << 0; // 1
|
|
1472
|
-
const UseRegularExpression$1 = 1 << 1; // 2
|
|
1473
|
-
const ReplaceExpanded = 1 << 2; // 4
|
|
1474
|
-
const MatchWholeWord$1 = 1 << 3; // 8
|
|
1475
|
-
const MatchCase$1 = 1 << 4; // 16
|
|
1476
|
-
const DetailsExpanded = 1 << 5; // 32
|
|
1477
|
-
const OpenEditors = 1 << 6; // 64
|
|
1478
|
-
const UseIgnoreFiles = 1 << 7; // 128
|
|
1479
|
-
|
|
1480
|
-
const hasPreserveCase = flags => {
|
|
1481
|
-
return (flags & PreserveCase$1) === PreserveCase$1;
|
|
1482
|
-
};
|
|
1483
|
-
const hasUseRegularExpression = flags => {
|
|
1484
|
-
return (flags & UseRegularExpression$1) === UseRegularExpression$1;
|
|
1485
|
-
};
|
|
1486
|
-
const hasReplaceExpanded = flags => {
|
|
1487
|
-
return (flags & ReplaceExpanded) === ReplaceExpanded;
|
|
1488
|
-
};
|
|
1489
|
-
const hasMatchWholeWord = flags => {
|
|
1490
|
-
return (flags & MatchWholeWord$1) === MatchWholeWord$1;
|
|
1491
|
-
};
|
|
1492
|
-
const hasMatchCase = flags => {
|
|
1493
|
-
return (flags & MatchCase$1) === MatchCase$1;
|
|
1494
|
-
};
|
|
1495
|
-
const hasDetailsExpanded = flags => {
|
|
1496
|
-
return (flags & DetailsExpanded) === DetailsExpanded;
|
|
1497
|
-
};
|
|
1498
|
-
|
|
1499
|
-
const getNextFocus = (focus, flags) => {
|
|
1500
|
-
switch (focus) {
|
|
1501
|
-
case FocusToggleReplace:
|
|
1502
|
-
return FocusSearchInput;
|
|
1503
|
-
case FocusSearchInput:
|
|
1504
|
-
if (flags & ReplaceExpanded) {
|
|
1505
|
-
return FocusSearchReplaceInput;
|
|
1506
|
-
}
|
|
1507
|
-
return FocusSearchMatchCase;
|
|
1508
|
-
case FocusSearchMatchCase:
|
|
1509
|
-
return FocusSearchWholeWord;
|
|
1510
|
-
case FocusSearchWholeWord:
|
|
1511
|
-
return FocusSearchRegex;
|
|
1512
|
-
case FocusSearchRegex:
|
|
1513
|
-
if (flags & ReplaceExpanded) {
|
|
1514
|
-
return FocusSearchPreserveCase;
|
|
1515
|
-
}
|
|
1516
|
-
return FocusToggleDetails;
|
|
1517
|
-
case FocusSearchReplaceInput:
|
|
1518
|
-
return FocusSearchMatchCase;
|
|
1519
|
-
case FocusSearchPreserveCase:
|
|
1520
|
-
return FocusSearchReplaceAll;
|
|
1521
|
-
case FocusSearchReplaceAll:
|
|
1522
|
-
return FocusToggleDetails;
|
|
1523
|
-
case FocusSearchIncludeInput:
|
|
1524
|
-
return FocusSearchOpenEditors;
|
|
1525
|
-
case FocusSearchOpenEditors:
|
|
1526
|
-
return FocusSearchExcludeInput;
|
|
1527
|
-
case FocusSearchExcludeInput:
|
|
1528
|
-
return FocusIgnoreFiles;
|
|
1529
|
-
case FocusToggleDetails:
|
|
1530
|
-
return FocusSearchIncludeInput;
|
|
1531
|
-
default:
|
|
1532
|
-
return focus;
|
|
1533
|
-
}
|
|
1534
|
-
};
|
|
1535
|
-
|
|
1536
|
-
const focusNextInput = state => {
|
|
1537
|
-
const nextFocus = getNextFocus(state.focus, state.flags);
|
|
1538
|
-
return {
|
|
1539
|
-
...state,
|
|
1540
|
-
focus: nextFocus,
|
|
1541
|
-
focusSource: Script
|
|
1542
|
-
};
|
|
1543
|
-
};
|
|
1544
|
-
|
|
1545
|
-
const getPreviousFocus = (focus, flags) => {
|
|
1546
|
-
switch (focus) {
|
|
1547
|
-
case FocusSearchInput:
|
|
1548
|
-
return FocusToggleReplace;
|
|
1549
|
-
case FocusSearchMatchCase:
|
|
1550
|
-
if (flags & ReplaceExpanded) {
|
|
1551
|
-
return FocusSearchReplaceInput;
|
|
1552
|
-
}
|
|
1553
|
-
return FocusSearchInput;
|
|
1554
|
-
case FocusSearchWholeWord:
|
|
1555
|
-
return FocusSearchMatchCase;
|
|
1556
|
-
case FocusSearchRegex:
|
|
1557
|
-
return FocusSearchWholeWord;
|
|
1558
|
-
case FocusSearchPreserveCase:
|
|
1559
|
-
return FocusSearchRegex;
|
|
1560
|
-
case FocusSearchReplaceInput:
|
|
1561
|
-
return FocusSearchInput;
|
|
1562
|
-
case FocusSearchReplaceAll:
|
|
1563
|
-
return FocusSearchPreserveCase;
|
|
1564
|
-
case FocusToggleDetails:
|
|
1565
|
-
if (flags & ReplaceExpanded) {
|
|
1566
|
-
return FocusSearchReplaceAll;
|
|
1567
|
-
}
|
|
1568
|
-
return FocusSearchRegex;
|
|
1569
|
-
case FocusSearchOpenEditors:
|
|
1570
|
-
return FocusSearchIncludeInput;
|
|
1571
|
-
case FocusSearchExcludeInput:
|
|
1572
|
-
return FocusSearchOpenEditors;
|
|
1573
|
-
case FocusIgnoreFiles:
|
|
1574
|
-
return FocusSearchExcludeInput;
|
|
1575
|
-
case FocusSearchIncludeInput:
|
|
1576
|
-
return FocusToggleDetails;
|
|
1577
|
-
default:
|
|
1578
|
-
return focus;
|
|
1579
|
-
}
|
|
1580
|
-
};
|
|
1581
|
-
|
|
1582
|
-
const focusPreviousInput = state => {
|
|
1583
|
-
const previousFocus = getPreviousFocus(state.focus, state.flags);
|
|
1584
|
-
return {
|
|
1585
|
-
...state,
|
|
1586
|
-
focus: previousFocus,
|
|
1587
|
-
focusSource: Script
|
|
1588
|
-
};
|
|
1589
|
-
};
|
|
1590
|
-
|
|
1591
|
-
const focusReplaceValue$1 = state => {
|
|
1592
|
-
return {
|
|
1593
|
-
...state,
|
|
1594
|
-
focus: FocusSearchReplaceInput,
|
|
1595
|
-
focusSource: Script
|
|
1596
|
-
};
|
|
1597
|
-
};
|
|
1598
|
-
|
|
1599
|
-
const focusSearchValue$1 = state => {
|
|
1600
|
-
return {
|
|
1601
|
-
...state,
|
|
1602
|
-
focus: FocusSearchInput
|
|
1603
|
-
};
|
|
1604
|
-
};
|
|
1605
|
-
|
|
1606
|
-
const focusSearchValueNext = state => {
|
|
1607
|
-
if (hasReplaceExpanded(state.flags)) {
|
|
1608
|
-
return focusReplaceValue$1(state);
|
|
1609
|
-
}
|
|
1610
|
-
return focusMatchCase$1(state);
|
|
1611
|
-
};
|
|
1612
|
-
|
|
1613
|
-
const CheckBox = 'checkbox';
|
|
1614
|
-
const None = 'none';
|
|
1615
|
-
const Status = 'status';
|
|
1616
|
-
const Tree = 'tree';
|
|
1617
|
-
const TreeItem$1 = 'treeitem';
|
|
1618
|
-
const ToolBar = 'toolbar';
|
|
1619
|
-
const Button$2 = 'button';
|
|
1620
|
-
|
|
1621
|
-
const Actions = 'Actions';
|
|
1622
|
-
const Badge = 'Badge';
|
|
1623
|
-
const Chevron = 'Chevron';
|
|
1624
|
-
const CloseMaskIcon = 'MaskIcon MaskIconClose';
|
|
1625
|
-
const Empty = '';
|
|
1626
|
-
const FileIcon = 'FileIcon';
|
|
1627
|
-
const FocusOutline = 'FocusOutline';
|
|
1628
|
-
const Grow = 'Grow';
|
|
1629
|
-
const Highlight = 'Highlight';
|
|
1630
|
-
const HighlightDeleted = 'HighlightDeleted';
|
|
1631
|
-
const HighlightInserted = 'HighlightInserted';
|
|
1632
|
-
const IconButton = 'IconButton';
|
|
1633
|
-
const Label = 'Label';
|
|
1634
|
-
const List = 'List';
|
|
1635
|
-
const MaskIcon = 'MaskIcon';
|
|
1636
|
-
const MaskIconBook = 'MaskIconBook';
|
|
1637
|
-
const MaskIconCaseSensitive = 'MaskIconCaseSensitive';
|
|
1638
|
-
const MaskIconChevronDown = 'MaskIconChevronDown';
|
|
1639
|
-
const MaskIconChevronRight = 'MaskIconChevronRight';
|
|
1640
|
-
const MaskIconEllipsis = 'MaskIconEllipsis';
|
|
1641
|
-
const MaskIconExclude = 'MaskIconExclude';
|
|
1642
|
-
const MaskIconPreserveCase = 'MaskIconPreserveCase';
|
|
1643
|
-
const MaskIconRegex = 'MaskIconRegex';
|
|
1644
|
-
const MaskIconReplaceAll = 'MaskIconReplaceAll';
|
|
1645
|
-
const MaskIconWholeWord = 'MaskIconWholeWord';
|
|
1646
|
-
const MultilineInputBox = 'MultilineInputBox';
|
|
1647
|
-
const Search$1 = 'Search';
|
|
1648
|
-
const SearchField = 'SearchField';
|
|
1649
|
-
const SearchFieldButton = 'SearchFieldButton';
|
|
1650
|
-
const SearchFieldButtonChecked = 'SearchFieldButtonChecked';
|
|
1651
|
-
const SearchFieldButtons = 'SearchFieldButtons';
|
|
1652
|
-
const SearchFieldContainer = 'SearchFieldContainer';
|
|
1653
|
-
const SearchHeader = 'SearchHeader';
|
|
1654
|
-
const SearchHeaderDetails = 'SearchHeaderDetails';
|
|
1655
|
-
const SearchHeaderDetailsExpanded = 'SearchHeaderDetailsExpanded';
|
|
1656
|
-
const SearchHeaderDetailsExpandedTop = 'SearchHeaderDetailsExpandedTop';
|
|
1657
|
-
const SearchHeaderDetailsHeading = 'SearchHeaderDetailsHeading';
|
|
1658
|
-
const SearchHeaderTop = 'SearchHeaderTop';
|
|
1659
|
-
const SearchHeaderTopRight = 'SearchHeaderTopRight';
|
|
1660
|
-
const SearchRemove = 'SearchRemove';
|
|
1661
|
-
const SearchToggleButton = 'SearchToggleButton';
|
|
1662
|
-
const SearchToggleButtonExpanded = 'SearchToggleButtonExpanded';
|
|
1663
|
-
const SourceControlBadge = 'SourceControlBadge';
|
|
1664
|
-
const ToggleDetails = 'ToggleDetails';
|
|
1665
|
-
const TreeItem = 'TreeItem';
|
|
1666
|
-
const TreeItemActive = 'TreeItemActive';
|
|
1667
|
-
const Viewlet = 'Viewlet';
|
|
1668
|
-
const ViewletSearchMessage = 'ViewletSearchMessage';
|
|
1669
|
-
|
|
1670
|
-
const Button$1 = 1;
|
|
1671
|
-
|
|
1672
|
-
const Button = 1;
|
|
1673
|
-
const Del = 21;
|
|
1674
|
-
const Div = 4;
|
|
1675
|
-
const H4 = 24;
|
|
1676
|
-
const Img = 17;
|
|
1677
|
-
const Ins = 20;
|
|
1678
|
-
const Span = 8;
|
|
1679
|
-
const Text = 12;
|
|
1680
|
-
const TextArea = 62;
|
|
1681
|
-
|
|
1682
|
-
const mergeClassNames = (...classNames) => {
|
|
1683
|
-
return classNames.filter(Boolean).join(' ');
|
|
1684
|
-
};
|
|
1685
|
-
|
|
1686
|
-
const getIconVirtualDom = (icon, type = Div) => {
|
|
1687
|
-
return {
|
|
1688
|
-
type,
|
|
1689
|
-
className: mergeClassNames(MaskIcon, `MaskIcon${icon}`),
|
|
1690
|
-
role: None,
|
|
1691
|
-
childCount: 0
|
|
1692
|
-
};
|
|
1693
|
-
};
|
|
1694
|
-
|
|
1695
|
-
const getActionButtonVirtualDom = action => {
|
|
1696
|
-
const {
|
|
1697
|
-
id,
|
|
1698
|
-
icon,
|
|
1699
|
-
command
|
|
1700
|
-
} = action;
|
|
1701
|
-
return [{
|
|
1702
|
-
type: Button,
|
|
1703
|
-
className: IconButton,
|
|
1704
|
-
title: id,
|
|
1705
|
-
'data-command': command,
|
|
1706
|
-
childCount: 1
|
|
1707
|
-
}, getIconVirtualDom(icon)];
|
|
1708
|
-
};
|
|
1709
|
-
|
|
1710
|
-
const getActionVirtualDom = action => {
|
|
1711
|
-
switch (action.type) {
|
|
1712
|
-
case Button$1:
|
|
1713
|
-
return getActionButtonVirtualDom(action);
|
|
1714
|
-
default:
|
|
1715
|
-
return [];
|
|
1716
|
-
}
|
|
1717
|
-
};
|
|
1718
|
-
|
|
1719
|
-
const getActionsVirtualDom = actions => {
|
|
1720
|
-
return [{
|
|
1721
|
-
type: Div,
|
|
1722
|
-
className: Actions,
|
|
1723
|
-
role: ToolBar,
|
|
1724
|
-
childCount: actions.length
|
|
1725
|
-
}, ...actions.flatMap(getActionVirtualDom)];
|
|
1726
|
-
};
|
|
1727
|
-
|
|
1728
|
-
const getFlags = uid => {
|
|
1729
|
-
const {
|
|
1730
|
-
newState
|
|
1731
|
-
} = get(uid);
|
|
1732
|
-
return newState.flags;
|
|
1733
|
-
};
|
|
1734
|
-
|
|
1735
|
-
const getFocus = uid => {
|
|
1736
|
-
const {
|
|
1737
|
-
newState
|
|
1738
|
-
} = get(uid);
|
|
1739
|
-
return newState.focus;
|
|
1740
|
-
};
|
|
1741
|
-
|
|
1742
|
-
const Tab = 2;
|
|
1743
|
-
const Enter = 3;
|
|
1744
|
-
const End = 255;
|
|
1745
|
-
const Home = 12;
|
|
1746
|
-
const UpArrow = 14;
|
|
1747
|
-
const DownArrow = 16;
|
|
1748
|
-
const Delete = 18;
|
|
1749
|
-
const KeyC = 31;
|
|
1750
|
-
|
|
1751
|
-
const CtrlCmd = 1 << 11 >>> 0;
|
|
1752
|
-
const Shift = 1 << 10 >>> 0;
|
|
1753
|
-
const Alt = 1 << 9 >>> 0;
|
|
1754
|
-
|
|
1755
|
-
const getKeyBindings = () => {
|
|
1756
|
-
return [{
|
|
1757
|
-
key: CtrlCmd | Alt | Enter,
|
|
1758
|
-
command: 'Search.replaceAll',
|
|
1759
|
-
when: FocusSearch
|
|
1760
|
-
}, {
|
|
1761
|
-
key: Tab,
|
|
1762
|
-
command: 'Search.focusNextInput',
|
|
1763
|
-
when: FocusSearch
|
|
1764
|
-
}, {
|
|
1765
|
-
key: Shift | Tab,
|
|
1766
|
-
command: 'Search.focusPreviousInput',
|
|
1767
|
-
when: FocusSearch
|
|
1768
|
-
}, {
|
|
1769
|
-
key: DownArrow,
|
|
1770
|
-
command: 'Search.focusNext',
|
|
1771
|
-
when: FocusSearchResults
|
|
1772
|
-
}, {
|
|
1773
|
-
key: UpArrow,
|
|
1774
|
-
command: 'Search.focusPrevious',
|
|
1775
|
-
when: FocusSearchResults
|
|
1776
|
-
}, {
|
|
1777
|
-
key: Delete,
|
|
1778
|
-
command: 'Search.dismissItem',
|
|
1779
|
-
when: FocusSearchResults
|
|
1780
|
-
}, {
|
|
1781
|
-
key: Home,
|
|
1782
|
-
command: 'Search.focusFirst',
|
|
1783
|
-
when: FocusSearchResults
|
|
1784
|
-
}, {
|
|
1785
|
-
key: End,
|
|
1786
|
-
command: 'Search.focusLast',
|
|
1787
|
-
when: FocusSearchResults
|
|
1788
|
-
}, {
|
|
1789
|
-
key: CtrlCmd | KeyC,
|
|
1790
|
-
command: 'Search.copy',
|
|
1791
|
-
when: FocusSearchResults
|
|
1792
|
-
}, {
|
|
1793
|
-
key: Enter,
|
|
1794
|
-
command: 'Search.submit',
|
|
1795
|
-
when: FocusSearchInput
|
|
1796
|
-
}, {
|
|
1797
|
-
key: Enter,
|
|
1798
|
-
command: 'Search.submit',
|
|
1799
|
-
when: FocusSearchReplaceInput
|
|
1800
|
-
}];
|
|
1801
|
-
};
|
|
1802
|
-
|
|
1803
|
-
const ClearAll = 'ClearAll';
|
|
1804
|
-
const CollapseAll = 'CollapseAll';
|
|
1805
|
-
const ListFlat = 'ListFlat';
|
|
1806
|
-
const NewFile = 'NewFile';
|
|
1807
|
-
const Refresh = 'Refresh';
|
|
1808
|
-
|
|
1809
|
-
const getActions = () => {
|
|
1810
|
-
return [{
|
|
1811
|
-
type: Button$1,
|
|
1812
|
-
id: refresh$1(),
|
|
1813
|
-
icon: Refresh,
|
|
1814
|
-
command: 'refresh'
|
|
1815
|
-
}, {
|
|
1816
|
-
type: Button$1,
|
|
1817
|
-
id: clearSearchResults(),
|
|
1818
|
-
icon: ClearAll,
|
|
1819
|
-
command: 'clearSearchResults'
|
|
1820
|
-
}, {
|
|
1821
|
-
type: Button$1,
|
|
1822
|
-
id: openNewSearchEditor(),
|
|
1823
|
-
icon: NewFile,
|
|
1824
|
-
command: ''
|
|
1825
|
-
}, {
|
|
1826
|
-
type: Button$1,
|
|
1827
|
-
id: viewAsTree(),
|
|
1828
|
-
icon: ListFlat,
|
|
1829
|
-
command: ''
|
|
1830
|
-
}, {
|
|
1831
|
-
type: Button$1,
|
|
1832
|
-
id: collapseAll(),
|
|
1833
|
-
icon: CollapseAll,
|
|
1834
|
-
command: ''
|
|
1835
|
-
}];
|
|
1836
|
-
};
|
|
1837
|
-
|
|
1838
|
-
// TODO this should be in FileSystem module
|
|
1839
|
-
const pathBaseName = path => {
|
|
1840
|
-
return path.slice(path.lastIndexOf('/') + 1);
|
|
1841
|
-
};
|
|
1842
|
-
const getAbsolutePath = relativePath => {
|
|
1843
|
-
if (relativePath.startsWith('./')) {
|
|
1844
|
-
return `/${relativePath.slice(2)}`; // TODO support windows paths
|
|
1845
|
-
}
|
|
1846
|
-
return `/${relativePath}`; // TODO support windows paths
|
|
1847
|
-
};
|
|
1848
|
-
|
|
1849
|
-
const getDisplayResult = (result, fileIcons, fileIconIndex, itemHeight, i, setSize, searchTermLength, replacement, focusedIndex) => {
|
|
1850
|
-
const {
|
|
1851
|
-
type,
|
|
1852
|
-
text,
|
|
1853
|
-
lineNumber,
|
|
1854
|
-
start
|
|
1855
|
-
} = result;
|
|
1856
|
-
const posInSet = i + 1;
|
|
1857
|
-
const top = i * itemHeight;
|
|
1858
|
-
const focused = i === focusedIndex;
|
|
1859
|
-
switch (type) {
|
|
1860
|
-
case File$1:
|
|
1861
|
-
const path = text;
|
|
1862
|
-
const absolutePath = getAbsolutePath(path);
|
|
1863
|
-
const baseName = pathBaseName(path);
|
|
1864
|
-
return {
|
|
1865
|
-
title: absolutePath,
|
|
1866
|
-
type: File$1,
|
|
1867
|
-
text: baseName,
|
|
1868
|
-
icon: fileIcons[fileIconIndex],
|
|
1869
|
-
posInSet,
|
|
1870
|
-
setSize,
|
|
1871
|
-
top,
|
|
1872
|
-
lineNumber,
|
|
1873
|
-
matchStart: 0,
|
|
1874
|
-
matchLength: 0,
|
|
1875
|
-
replacement: '',
|
|
1876
|
-
depth: 0,
|
|
1877
|
-
matchCount: 0,
|
|
1878
|
-
focused
|
|
1879
|
-
};
|
|
1880
|
-
case Match:
|
|
1881
|
-
return {
|
|
1882
|
-
title: text,
|
|
1883
|
-
type: Match,
|
|
1884
|
-
text: text,
|
|
1885
|
-
icon: '',
|
|
1886
|
-
posInSet,
|
|
1887
|
-
setSize,
|
|
1888
|
-
top,
|
|
1889
|
-
lineNumber,
|
|
1890
|
-
matchStart: start,
|
|
1891
|
-
matchLength: searchTermLength,
|
|
1892
|
-
replacement,
|
|
1893
|
-
depth: 1,
|
|
1894
|
-
matchCount: 0,
|
|
1895
|
-
focused
|
|
1896
|
-
};
|
|
1897
|
-
default:
|
|
1898
|
-
throw new Error('unexpected search result type');
|
|
1899
|
-
}
|
|
1900
|
-
};
|
|
1901
|
-
|
|
1902
|
-
const getDisplayResults = (results, itemHeight, resultCount, searchTerm, minLineY, maxLineY, replacement, fileIcons, focusedIndex) => {
|
|
1903
|
-
const displayResults = [];
|
|
1904
|
-
const setSize = resultCount;
|
|
1905
|
-
const searchTermLength = searchTerm.length;
|
|
1906
|
-
let fileResult = {
|
|
1907
|
-
matchCount: 0
|
|
1908
|
-
};
|
|
1909
|
-
let fileIconIndex = 0;
|
|
1910
|
-
for (let i = minLineY; i < maxLineY; i++) {
|
|
1911
|
-
const result = results[i];
|
|
1912
|
-
const displayResult = getDisplayResult(result, fileIcons, fileIconIndex, itemHeight, i, setSize, searchTermLength, replacement, focusedIndex);
|
|
1913
|
-
displayResults.push(displayResult);
|
|
1914
|
-
if (result.type === File$1) {
|
|
1915
|
-
fileResult = displayResult;
|
|
1916
|
-
fileIconIndex++;
|
|
1917
|
-
} else {
|
|
1918
|
-
fileResult.matchCount++;
|
|
1919
|
-
}
|
|
1920
|
-
}
|
|
1921
|
-
return displayResults;
|
|
1922
|
-
};
|
|
1923
|
-
|
|
1924
|
-
const HandleClick = 'handleClick';
|
|
1925
|
-
const HandleHeaderClick = 'handleHeaderClick';
|
|
1926
|
-
const HandleHeaderFocusIn = 'handleHeaderFocusIn';
|
|
1927
|
-
const HandleListBlur = 'handleListBlur';
|
|
1928
|
-
|
|
1929
|
-
const getSearchDetailsToggleVirtualDom = () => {
|
|
1930
|
-
return [{
|
|
1931
|
-
type: Div,
|
|
1932
|
-
className: ToggleDetails,
|
|
1933
|
-
role: Button$2,
|
|
1934
|
-
tabIndex: 0,
|
|
1935
|
-
ariaLabel: toggleSearchDetails(),
|
|
1936
|
-
title: toggleSearchDetails(),
|
|
1937
|
-
childCount: 1
|
|
1938
|
-
}, {
|
|
1939
|
-
type: Div,
|
|
1940
|
-
className: mergeClassNames(MaskIcon, MaskIconEllipsis),
|
|
1941
|
-
childCount: 0
|
|
1942
|
-
}];
|
|
1943
|
-
};
|
|
1944
|
-
|
|
1945
|
-
const text = data => {
|
|
1946
|
-
return {
|
|
1947
|
-
type: Text,
|
|
1948
|
-
text: data,
|
|
1949
|
-
childCount: 0
|
|
1950
|
-
};
|
|
1951
|
-
};
|
|
1952
|
-
|
|
1953
|
-
const getSearchMessageVirtualDom = message => {
|
|
1954
|
-
return [{
|
|
1955
|
-
type: Div,
|
|
1956
|
-
className: ViewletSearchMessage,
|
|
1957
|
-
role: Status,
|
|
1958
|
-
tabIndex: 0,
|
|
1959
|
-
childCount: 1
|
|
1960
|
-
}, text(message)];
|
|
1961
|
-
};
|
|
1962
|
-
|
|
1963
|
-
const getSearchHeaderDetailsCollapsedVirtualDom = message => {
|
|
1964
|
-
return [{
|
|
1965
|
-
type: Div,
|
|
1966
|
-
className: SearchHeaderDetails,
|
|
1967
|
-
childCount: 2
|
|
1968
|
-
}, ...getSearchMessageVirtualDom(message), ...getSearchDetailsToggleVirtualDom()];
|
|
1969
|
-
};
|
|
1970
|
-
|
|
1971
|
-
const getSearchFieldButtonVirtualDom = button => {
|
|
1972
|
-
const {
|
|
1973
|
-
icon,
|
|
1974
|
-
checked,
|
|
1975
|
-
title
|
|
1976
|
-
} = button;
|
|
1977
|
-
return [{
|
|
1978
|
-
type: Div,
|
|
1979
|
-
className: mergeClassNames(SearchFieldButton, checked ? SearchFieldButtonChecked : ''),
|
|
1980
|
-
title,
|
|
1981
|
-
role: CheckBox,
|
|
1982
|
-
ariaChecked: checked,
|
|
1983
|
-
tabIndex: 0,
|
|
1984
|
-
childCount: 1
|
|
1985
|
-
}, {
|
|
1986
|
-
type: Div,
|
|
1987
|
-
className: mergeClassNames(MaskIcon, icon),
|
|
1988
|
-
childCount: 0
|
|
1989
|
-
}];
|
|
1990
|
-
};
|
|
1991
|
-
|
|
1992
|
-
const getOutSideButtonsDom = outsideButtons => {
|
|
1993
|
-
if (outsideButtons.length === 0) {
|
|
1994
|
-
return {
|
|
1995
|
-
preNodes: [],
|
|
1996
|
-
postNodes: []
|
|
1997
|
-
};
|
|
1998
|
-
}
|
|
1999
|
-
return {
|
|
2000
|
-
preNodes: [{
|
|
2001
|
-
type: Div,
|
|
2002
|
-
className: SearchFieldContainer,
|
|
2003
|
-
role: None,
|
|
2004
|
-
childCount: 1 + outsideButtons.length
|
|
2005
|
-
}],
|
|
2006
|
-
postNodes: outsideButtons.flatMap(getSearchFieldButtonVirtualDom)
|
|
2007
|
-
};
|
|
2008
|
-
};
|
|
2009
|
-
const getSearchFieldVirtualDom = (name, placeholder, onInput, insideButtons, outsideButtons, onFocus = '') => {
|
|
2010
|
-
const {
|
|
2011
|
-
preNodes,
|
|
2012
|
-
postNodes
|
|
2013
|
-
} = getOutSideButtonsDom(outsideButtons);
|
|
2014
|
-
const dom = [...preNodes, {
|
|
2015
|
-
type: Div,
|
|
2016
|
-
className: SearchField,
|
|
2017
|
-
role: None,
|
|
2018
|
-
childCount: 2
|
|
2019
|
-
}, {
|
|
2020
|
-
type: TextArea,
|
|
2021
|
-
className: MultilineInputBox,
|
|
2022
|
-
spellcheck: false,
|
|
2023
|
-
autocapitalize: 'off',
|
|
2024
|
-
autocorrect: 'off',
|
|
2025
|
-
placeholder,
|
|
2026
|
-
name,
|
|
2027
|
-
onInput,
|
|
2028
|
-
onFocus,
|
|
2029
|
-
childCount: 0
|
|
2030
|
-
}, {
|
|
2031
|
-
type: Div,
|
|
2032
|
-
className: SearchFieldButtons,
|
|
2033
|
-
childCount: insideButtons.length
|
|
2034
|
-
}, ...insideButtons.flatMap(getSearchFieldButtonVirtualDom), ...postNodes];
|
|
2035
|
-
return dom;
|
|
2036
|
-
};
|
|
2037
|
-
|
|
2038
|
-
const FilesToExclude = 'FilesToExclude';
|
|
2039
|
-
const FilesToInclude = 'FilesToInclude';
|
|
2040
|
-
const MatchCase = 'MatchCase';
|
|
2041
|
-
const MatchWholeWord = 'MatchWholeWord';
|
|
2042
|
-
const PreserveCase = 'PreserveCase';
|
|
2043
|
-
const ReplaceAll = 'ReplaceAll';
|
|
2044
|
-
const ReplaceValue = 'ReplaceValue';
|
|
2045
|
-
const SearchOnlyOpenEditors = 'SearchOnlyOpenEditors';
|
|
2046
|
-
const SearchValue = 'SearchValue';
|
|
2047
|
-
const ToggleReplace = 'ToggleReplace';
|
|
2048
|
-
const ToggleSearchDetails = 'ToggleSearchDetails';
|
|
2049
|
-
const UseExcludeSettings = 'UseExcludeSettings';
|
|
2050
|
-
const UseRegularExpression = 'UseRegularExpression';
|
|
2051
|
-
|
|
2052
|
-
const getSearchHeaderDetailsExpandedVirtualDom = (flags, message) => {
|
|
2053
|
-
const includeButtons = [{
|
|
2054
|
-
icon: MaskIconBook,
|
|
2055
|
-
title: searchOnlyOpenEditors(),
|
|
2056
|
-
command: 'searchOnlyOpenEditors',
|
|
2057
|
-
checked: Boolean(flags & OpenEditors),
|
|
2058
|
-
name: SearchOnlyOpenEditors
|
|
2059
|
-
}];
|
|
2060
|
-
const excludeButtons = [{
|
|
2061
|
-
icon: MaskIconExclude,
|
|
2062
|
-
title: useExcludeSettings(),
|
|
2063
|
-
command: 'toggleUseExcludeSettings',
|
|
2064
|
-
checked: Boolean(flags & UseIgnoreFiles),
|
|
2065
|
-
name: UseExcludeSettings
|
|
2066
|
-
}];
|
|
2067
|
-
return [{
|
|
2068
|
-
type: Div,
|
|
2069
|
-
className: SearchHeaderDetailsExpanded,
|
|
2070
|
-
childCount: 5
|
|
2071
|
-
}, {
|
|
2072
|
-
type: Div,
|
|
2073
|
-
className: SearchHeaderDetailsExpandedTop,
|
|
2074
|
-
childCount: 2
|
|
2075
|
-
}, ...getSearchDetailsToggleVirtualDom(), {
|
|
2076
|
-
type: H4,
|
|
2077
|
-
className: SearchHeaderDetailsHeading,
|
|
2078
|
-
childCount: 1
|
|
2079
|
-
}, text(filesToInclude()), ...getSearchFieldVirtualDom(FilesToInclude, 'Include', 'handleIncludeInput', includeButtons, []), {
|
|
2080
|
-
type: H4,
|
|
2081
|
-
className: SearchHeaderDetailsHeading,
|
|
2082
|
-
childCount: 1
|
|
2083
|
-
}, text(filesToExclude()), ...getSearchFieldVirtualDom(FilesToExclude, 'Exclude', 'handleExcludeInput', excludeButtons, []), ...getSearchMessageVirtualDom(message)];
|
|
2084
|
-
};
|
|
2085
|
-
|
|
2086
|
-
const getSearchHeaderDetailsVirtualDom = (flags, message) => {
|
|
2087
|
-
if (flags & DetailsExpanded) {
|
|
2088
|
-
return getSearchHeaderDetailsExpandedVirtualDom(flags, message);
|
|
2089
|
-
}
|
|
2090
|
-
return getSearchHeaderDetailsCollapsedVirtualDom(message);
|
|
2091
|
-
};
|
|
2092
|
-
|
|
2093
|
-
const getSearchToggleVirtualDom = flags => {
|
|
2094
|
-
return [{
|
|
2095
|
-
type: Button,
|
|
2096
|
-
className: mergeClassNames(IconButton, SearchToggleButton, hasReplaceExpanded(flags) ? SearchToggleButtonExpanded : ''),
|
|
2097
|
-
title: toggleReplace$1(),
|
|
2098
|
-
ariaLabel: toggleReplace$1(),
|
|
2099
|
-
ariaExpanded: hasReplaceExpanded(flags),
|
|
2100
|
-
childCount: 1,
|
|
2101
|
-
'data-command': 'toggleReplace'
|
|
2102
|
-
}, {
|
|
2103
|
-
type: Div,
|
|
2104
|
-
className: mergeClassNames(MaskIcon, hasReplaceExpanded(flags) ? MaskIconChevronDown : MaskIconChevronRight),
|
|
2105
|
-
childCount: 0
|
|
2106
|
-
}];
|
|
2107
|
-
};
|
|
2108
|
-
|
|
2109
|
-
const getSearchHeaderTopVirtualDom = flags => {
|
|
2110
|
-
const dom = [{
|
|
2111
|
-
type: Div,
|
|
2112
|
-
className: SearchHeaderTop,
|
|
2113
|
-
role: None,
|
|
2114
|
-
childCount: 2
|
|
2115
|
-
}, ...getSearchToggleVirtualDom(flags), {
|
|
2116
|
-
type: Div,
|
|
2117
|
-
className: SearchHeaderTopRight,
|
|
2118
|
-
role: None,
|
|
2119
|
-
childCount: hasReplaceExpanded(flags) ? 2 : 1
|
|
2120
|
-
}, ...getSearchFieldVirtualDom(SearchValue, 'Search', 'handleInput', [{
|
|
2121
|
-
icon: MaskIconCaseSensitive,
|
|
2122
|
-
checked: hasMatchCase(flags),
|
|
2123
|
-
title: matchCase(),
|
|
2124
|
-
name: MatchCase
|
|
2125
|
-
}, {
|
|
2126
|
-
icon: MaskIconWholeWord,
|
|
2127
|
-
checked: hasMatchWholeWord(flags),
|
|
2128
|
-
title: matchWholeWord(),
|
|
2129
|
-
name: MatchWholeWord
|
|
2130
|
-
}, {
|
|
2131
|
-
icon: MaskIconRegex,
|
|
2132
|
-
checked: hasUseRegularExpression(flags),
|
|
2133
|
-
title: useRegularExpression(),
|
|
2134
|
-
name: UseRegularExpression
|
|
2135
|
-
}], [])];
|
|
2136
|
-
if (hasReplaceExpanded(flags)) {
|
|
2137
|
-
dom.push(...getSearchFieldVirtualDom(ReplaceValue, 'Replace', 'handleReplaceInput', [{
|
|
2138
|
-
icon: MaskIconPreserveCase,
|
|
2139
|
-
checked: hasPreserveCase(flags),
|
|
2140
|
-
title: preserveCase(),
|
|
2141
|
-
name: PreserveCase
|
|
2142
|
-
}], [{
|
|
2143
|
-
icon: MaskIconReplaceAll,
|
|
2144
|
-
checked: false,
|
|
2145
|
-
title: replaceAll$1(),
|
|
2146
|
-
name: ReplaceAll
|
|
2147
|
-
}]));
|
|
2148
|
-
}
|
|
2149
|
-
return dom;
|
|
2150
|
-
};
|
|
2151
|
-
|
|
2152
|
-
const getSearchHeaderVirtualDom = (flags, message) => {
|
|
2153
|
-
const dom = [{
|
|
2154
|
-
type: Div,
|
|
2155
|
-
className: SearchHeader,
|
|
2156
|
-
role: None,
|
|
2157
|
-
childCount: 2,
|
|
2158
|
-
onClick: HandleHeaderClick,
|
|
2159
|
-
onFocusIn: HandleHeaderFocusIn
|
|
2160
|
-
}, ...getSearchHeaderTopVirtualDom(flags), ...getSearchHeaderDetailsVirtualDom(flags, message)];
|
|
2161
|
-
return dom;
|
|
2162
|
-
};
|
|
2163
|
-
|
|
2164
|
-
const getBadgeVirtualDom = (className, count) => {
|
|
2165
|
-
return [{
|
|
2166
|
-
type: Div,
|
|
2167
|
-
className: mergeClassNames(Badge, className),
|
|
2168
|
-
childCount: 1
|
|
2169
|
-
}, text(`${count}`)];
|
|
2170
|
-
};
|
|
2171
|
-
|
|
2172
|
-
const chevronDownVirtualDom = {
|
|
2173
|
-
type: Div,
|
|
2174
|
-
className: mergeClassNames(Chevron, MaskIconChevronDown),
|
|
2175
|
-
childCount: 0
|
|
2176
|
-
};
|
|
2177
|
-
({
|
|
2178
|
-
type: Div,
|
|
2179
|
-
className: mergeClassNames(Chevron, MaskIconChevronRight),
|
|
2180
|
-
childCount: 0
|
|
2181
|
-
});
|
|
2182
|
-
|
|
2183
|
-
const getFileIconVirtualDom = icon => {
|
|
2184
|
-
return {
|
|
2185
|
-
type: Img,
|
|
2186
|
-
className: FileIcon,
|
|
2187
|
-
src: icon,
|
|
2188
|
-
role: None,
|
|
2189
|
-
childCount: 0
|
|
2190
|
-
};
|
|
2191
|
-
};
|
|
2192
|
-
|
|
2193
|
-
const deleted = {
|
|
2194
|
-
type: Del,
|
|
2195
|
-
className: HighlightDeleted,
|
|
2196
|
-
childCount: 1
|
|
2197
|
-
};
|
|
2198
|
-
const inserted = {
|
|
2199
|
-
type: Ins,
|
|
2200
|
-
className: HighlightInserted,
|
|
2201
|
-
childCount: 1
|
|
2202
|
-
};
|
|
2203
|
-
const highlighted = {
|
|
2204
|
-
type: Span,
|
|
2205
|
-
className: Highlight,
|
|
2206
|
-
childCount: 1
|
|
2207
|
-
};
|
|
2208
|
-
const label1 = {
|
|
2209
|
-
type: Div,
|
|
2210
|
-
className: mergeClassNames(Label, Grow),
|
|
2211
|
-
childCount: 1
|
|
2212
|
-
};
|
|
2213
|
-
const label3 = {
|
|
2214
|
-
...label1,
|
|
2215
|
-
childCount: 3
|
|
2216
|
-
};
|
|
2217
|
-
const label4 = {
|
|
2218
|
-
...label1,
|
|
2219
|
-
childCount: 4
|
|
2220
|
-
};
|
|
2221
|
-
const getLabelVirtualDom = (displayText, matchLength, matchStart, replacement) => {
|
|
2222
|
-
if (matchLength) {
|
|
2223
|
-
const before = displayText.slice(0, matchStart);
|
|
2224
|
-
const highlight = displayText.slice(matchStart, matchStart + matchLength);
|
|
2225
|
-
const after = displayText.slice(matchStart + matchLength);
|
|
2226
|
-
if (replacement) {
|
|
2227
|
-
return [label4, text(before), deleted, text(highlight), inserted, text(replacement), text(after)];
|
|
2228
|
-
}
|
|
2229
|
-
return [label3, text(before), highlighted, text(highlight), text(after)];
|
|
2230
|
-
}
|
|
2231
|
-
return [label1, text(displayText)];
|
|
2232
|
-
};
|
|
2233
|
-
|
|
2234
|
-
const PaddingRight = '12px';
|
|
2235
|
-
|
|
2236
|
-
const getSearchResultVirtualDom = rowInfo => {
|
|
2237
|
-
const {
|
|
2238
|
-
type,
|
|
2239
|
-
matchStart,
|
|
2240
|
-
matchLength,
|
|
2241
|
-
text: displayText,
|
|
2242
|
-
title,
|
|
2243
|
-
icon,
|
|
2244
|
-
setSize,
|
|
2245
|
-
posInSet,
|
|
2246
|
-
depth,
|
|
2247
|
-
replacement,
|
|
2248
|
-
matchCount,
|
|
2249
|
-
focused
|
|
2250
|
-
} = rowInfo;
|
|
2251
|
-
const treeItem = {
|
|
2252
|
-
type: Div,
|
|
2253
|
-
role: TreeItem$1,
|
|
2254
|
-
className: TreeItem,
|
|
2255
|
-
title,
|
|
2256
|
-
ariaSetSize: setSize,
|
|
2257
|
-
ariaLevel: depth,
|
|
2258
|
-
ariaPosInSet: posInSet,
|
|
2259
|
-
ariaLabel: title,
|
|
2260
|
-
ariaDescription: '',
|
|
2261
|
-
childCount: 1,
|
|
2262
|
-
paddingLeft: `${Number(depth) + 1}rem`,
|
|
2263
|
-
// TODO use classname and dynamic css
|
|
2264
|
-
paddingRight: PaddingRight
|
|
2265
|
-
};
|
|
2266
|
-
if (focused) {
|
|
2267
|
-
treeItem.className += ' ' + TreeItemActive;
|
|
2268
|
-
}
|
|
2269
|
-
switch (type) {
|
|
2270
|
-
case File$1:
|
|
2271
|
-
treeItem.ariaExpanded = 'true';
|
|
2272
|
-
break;
|
|
2273
|
-
}
|
|
2274
|
-
const dom = [];
|
|
2275
|
-
dom.push(treeItem);
|
|
2276
|
-
if (type === File$1) {
|
|
2277
|
-
treeItem.childCount += 2;
|
|
2278
|
-
dom.push(chevronDownVirtualDom, getFileIconVirtualDom(icon));
|
|
2279
|
-
}
|
|
2280
|
-
dom.push(...getLabelVirtualDom(displayText, matchLength, matchStart, replacement));
|
|
2281
|
-
if (matchCount) {
|
|
2282
|
-
treeItem.childCount++;
|
|
2283
|
-
dom.push(...getBadgeVirtualDom(SourceControlBadge, matchCount));
|
|
2284
|
-
}
|
|
2285
|
-
treeItem.childCount++;
|
|
2286
|
-
dom.push({
|
|
2287
|
-
type: Div,
|
|
2288
|
-
className: SearchRemove,
|
|
2289
|
-
childCount: 1
|
|
2290
|
-
}, {
|
|
2291
|
-
type: Div,
|
|
2292
|
-
className: CloseMaskIcon,
|
|
2293
|
-
childCount: 0
|
|
2294
|
-
});
|
|
2295
|
-
return dom;
|
|
2296
|
-
};
|
|
2297
|
-
|
|
2298
|
-
const getSearchResultsVirtualDom = (visibleItems, focusOutline) => {
|
|
2299
|
-
return [{
|
|
2300
|
-
type: Div,
|
|
2301
|
-
className: mergeClassNames(Viewlet, List, focusOutline ? FocusOutline : Empty),
|
|
2302
|
-
role: Tree,
|
|
2303
|
-
tabIndex: 0,
|
|
2304
|
-
childCount: visibleItems.length,
|
|
2305
|
-
onClick: HandleClick,
|
|
2306
|
-
onBlur: HandleListBlur
|
|
2307
|
-
}, ...visibleItems.flatMap(getSearchResultVirtualDom)];
|
|
2308
|
-
};
|
|
2309
|
-
|
|
2310
|
-
const getSearchVirtualDom = (visibleItems, flags, message, focusOutline) => {
|
|
2311
|
-
const dom = [{
|
|
2312
|
-
type: Div,
|
|
2313
|
-
className: mergeClassNames(Viewlet, Search$1),
|
|
2314
|
-
childCount: 2
|
|
2315
|
-
}, ...getSearchHeaderVirtualDom(flags, message), ...getSearchResultsVirtualDom(visibleItems, focusOutline)];
|
|
2316
|
-
return dom;
|
|
2317
|
-
};
|
|
2318
|
-
|
|
2319
|
-
const handleError = error => {
|
|
2320
|
-
console.error(`[text-search-worker] ${error}`);
|
|
2321
|
-
};
|
|
2322
|
-
|
|
2323
|
-
const getFileIcons = async files => {
|
|
2324
|
-
// TODO cache file icons
|
|
2325
|
-
const promises = [];
|
|
2326
|
-
for (const file of files) {
|
|
2327
|
-
if (file.type === Match) {
|
|
2328
|
-
continue;
|
|
2329
|
-
}
|
|
2330
|
-
promises.push(invoke$2('IconTheme.getFileIcon', {
|
|
2331
|
-
name: file.text
|
|
2332
|
-
}));
|
|
2333
|
-
}
|
|
2334
|
-
const icons = await Promise.all(promises);
|
|
2335
|
-
return icons;
|
|
2336
|
-
};
|
|
2337
|
-
|
|
2338
|
-
// TODO optimize this function to return the minimum number
|
|
2339
|
-
// of visible items needed, e.g. when not scrolled 5 items with
|
|
2340
|
-
// 20px fill 100px but when scrolled 6 items are needed
|
|
2341
|
-
const getNumberOfVisibleItems = (listHeight, itemHeight) => {
|
|
2342
|
-
return Math.ceil(listHeight / itemHeight) + 1;
|
|
2343
|
-
};
|
|
2344
|
-
|
|
2345
|
-
const getTextSearchResultCounts = results => {
|
|
2346
|
-
let resultCount = 0;
|
|
2347
|
-
let fileCount = 0;
|
|
2348
|
-
for (const result of results) {
|
|
2349
|
-
switch (result.type) {
|
|
2350
|
-
case File$1:
|
|
2351
|
-
fileCount++;
|
|
2352
|
-
break;
|
|
2353
|
-
case Match:
|
|
2354
|
-
resultCount++;
|
|
2355
|
-
break;
|
|
2356
|
-
}
|
|
2357
|
-
}
|
|
2358
|
-
return {
|
|
2359
|
-
fileCount,
|
|
2360
|
-
resultCount
|
|
2361
|
-
};
|
|
2362
|
-
};
|
|
2363
|
-
|
|
2364
|
-
const EmptyString = '';
|
|
2365
|
-
|
|
2366
|
-
const isEmptyString = string => {
|
|
2367
|
-
return string === EmptyString;
|
|
2368
|
-
};
|
|
2369
|
-
|
|
2370
|
-
const getScrollBarSize = (size, contentSize, minimumSliderSize) => {
|
|
2371
|
-
if (size >= contentSize) {
|
|
2372
|
-
return 0;
|
|
2373
|
-
}
|
|
2374
|
-
return Math.max(Math.round(size ** 2 / contentSize), minimumSliderSize);
|
|
2375
|
-
};
|
|
2376
|
-
const getScrollBarOffset = (delta, finalDelta, size, scrollBarSize) => {
|
|
2377
|
-
const scrollBarOffset = delta / finalDelta * (size - scrollBarSize);
|
|
2378
|
-
return scrollBarOffset;
|
|
2379
|
-
};
|
|
2380
|
-
const getScrollBarY = getScrollBarOffset;
|
|
2381
|
-
const getNewDeltaPercent = (height, scrollBarHeight, relativeY) => {
|
|
2382
|
-
const halfScrollBarHeight = scrollBarHeight / 2;
|
|
2383
|
-
if (relativeY <= halfScrollBarHeight) {
|
|
2384
|
-
// clicked at top
|
|
2385
|
-
return {
|
|
2386
|
-
percent: 0,
|
|
2387
|
-
handleOffset: relativeY
|
|
2388
|
-
};
|
|
2389
|
-
}
|
|
2390
|
-
if (relativeY <= height - halfScrollBarHeight) {
|
|
2391
|
-
// clicked in middle
|
|
2392
|
-
return {
|
|
2393
|
-
percent: (relativeY - halfScrollBarHeight) / (height - scrollBarHeight),
|
|
2394
|
-
handleOffset: halfScrollBarHeight
|
|
2395
|
-
};
|
|
2396
|
-
}
|
|
2397
|
-
// clicked at bottom
|
|
2398
|
-
return {
|
|
2399
|
-
percent: 1,
|
|
2400
|
-
handleOffset: scrollBarHeight - height + relativeY
|
|
2401
|
-
};
|
|
2402
|
-
};
|
|
2403
|
-
|
|
2404
|
-
class AssertionError extends Error {
|
|
2405
|
-
constructor(message) {
|
|
2406
|
-
super(message);
|
|
2407
|
-
this.name = 'AssertionError';
|
|
2408
|
-
}
|
|
2409
|
-
}
|
|
2410
|
-
const getType = value => {
|
|
2411
|
-
switch (typeof value) {
|
|
2412
|
-
case 'number':
|
|
2413
|
-
return 'number';
|
|
2414
|
-
case 'function':
|
|
2415
|
-
return 'function';
|
|
2416
|
-
case 'string':
|
|
2417
|
-
return 'string';
|
|
2418
|
-
case 'object':
|
|
2419
|
-
if (value === null) {
|
|
2420
|
-
return 'null';
|
|
2421
|
-
}
|
|
2422
|
-
if (Array.isArray(value)) {
|
|
2423
|
-
return 'array';
|
|
2424
|
-
}
|
|
2425
|
-
return 'object';
|
|
2426
|
-
case 'boolean':
|
|
2427
|
-
return 'boolean';
|
|
2428
|
-
default:
|
|
2429
|
-
return 'unknown';
|
|
2430
|
-
}
|
|
2431
|
-
};
|
|
2432
|
-
const object = value => {
|
|
2433
|
-
const type = getType(value);
|
|
2434
|
-
if (type !== 'object') {
|
|
2435
|
-
throw new AssertionError('expected value to be of type object');
|
|
2436
|
-
}
|
|
2437
|
-
};
|
|
2438
|
-
const number = value => {
|
|
2439
|
-
const type = getType(value);
|
|
2440
|
-
if (type !== 'number') {
|
|
2441
|
-
throw new AssertionError('expected value to be of type number');
|
|
2442
|
-
}
|
|
2443
|
-
};
|
|
2444
|
-
const array = value => {
|
|
2445
|
-
const type = getType(value);
|
|
2446
|
-
if (type !== 'array') {
|
|
2447
|
-
throw new AssertionError('expected value to be of type array');
|
|
2448
|
-
}
|
|
2449
|
-
};
|
|
2450
|
-
const string = value => {
|
|
2451
|
-
const type = getType(value);
|
|
2452
|
-
if (type !== 'string') {
|
|
2453
|
-
throw new AssertionError('expected value to be of type string');
|
|
2454
|
-
}
|
|
2455
|
-
};
|
|
2456
|
-
|
|
2457
|
-
const RE_PROTOCOL = /^([a-z-\d]+):\/\//;
|
|
2458
|
-
const getProtocol$1 = uri => {
|
|
2459
|
-
const protocolMatch = uri.match(RE_PROTOCOL);
|
|
2460
|
-
if (protocolMatch) {
|
|
2461
|
-
return protocolMatch[1];
|
|
2462
|
-
}
|
|
2463
|
-
return '';
|
|
2464
|
-
};
|
|
2465
|
-
|
|
2466
|
-
const textSearch$5 = async (scheme, root, query) => {
|
|
2467
|
-
string(scheme);
|
|
2468
|
-
string(query);
|
|
2469
|
-
const result = await invoke$2('ExtensionHostTextSearch.executeTextSearchProvider', scheme, query);
|
|
2470
|
-
return result;
|
|
2471
|
-
};
|
|
2472
|
-
|
|
2473
|
-
const normalizeLine = line => {
|
|
2474
|
-
if (line.startsWith('Error: ')) {
|
|
2475
|
-
return line.slice('Error: '.length);
|
|
2476
|
-
}
|
|
2477
|
-
if (line.startsWith('VError: ')) {
|
|
2478
|
-
return line.slice('VError: '.length);
|
|
2479
|
-
}
|
|
2480
|
-
return line;
|
|
2481
|
-
};
|
|
2482
|
-
const getCombinedMessage = (error, message) => {
|
|
2483
|
-
const stringifiedError = normalizeLine(`${error}`);
|
|
2484
|
-
if (message) {
|
|
2485
|
-
return `${message}: ${stringifiedError}`;
|
|
2486
|
-
}
|
|
2487
|
-
return stringifiedError;
|
|
2488
|
-
};
|
|
2489
|
-
const NewLine = '\n';
|
|
2490
|
-
const getNewLineIndex = (string, startIndex = undefined) => {
|
|
2491
|
-
return string.indexOf(NewLine, startIndex);
|
|
2492
|
-
};
|
|
2493
|
-
const mergeStacks = (parent, child) => {
|
|
2494
|
-
if (!child) {
|
|
2495
|
-
return parent;
|
|
2496
|
-
}
|
|
2497
|
-
const parentNewLineIndex = getNewLineIndex(parent);
|
|
2498
|
-
const childNewLineIndex = getNewLineIndex(child);
|
|
2499
|
-
if (childNewLineIndex === -1) {
|
|
2500
|
-
return parent;
|
|
2501
|
-
}
|
|
2502
|
-
const parentFirstLine = parent.slice(0, parentNewLineIndex);
|
|
2503
|
-
const childRest = child.slice(childNewLineIndex);
|
|
2504
|
-
const childFirstLine = normalizeLine(child.slice(0, childNewLineIndex));
|
|
2505
|
-
if (parentFirstLine.includes(childFirstLine)) {
|
|
2506
|
-
return parentFirstLine + childRest;
|
|
2507
|
-
}
|
|
2508
|
-
return child;
|
|
2509
|
-
};
|
|
2510
|
-
class VError extends Error {
|
|
2511
|
-
constructor(error, message) {
|
|
2512
|
-
const combinedMessage = getCombinedMessage(error, message);
|
|
2513
|
-
super(combinedMessage);
|
|
2514
|
-
this.name = 'VError';
|
|
2515
|
-
if (error instanceof Error) {
|
|
2516
|
-
this.stack = mergeStacks(this.stack, error.stack);
|
|
2517
|
-
}
|
|
2518
|
-
if (error.codeFrame) {
|
|
2519
|
-
// @ts-ignore
|
|
2520
|
-
this.codeFrame = error.codeFrame;
|
|
2521
|
-
}
|
|
2522
|
-
if (error.code) {
|
|
2523
|
-
// @ts-ignore
|
|
2524
|
-
this.code = error.code;
|
|
2525
|
-
}
|
|
2526
|
-
}
|
|
2527
|
-
}
|
|
2528
|
-
|
|
2529
|
-
const getJson = async url => {
|
|
2530
|
-
try {
|
|
2531
|
-
const response = await fetch(url);
|
|
2532
|
-
if (!response.ok) {
|
|
2533
|
-
throw new Error(response.statusText);
|
|
2534
|
-
}
|
|
2535
|
-
const json = await response.json();
|
|
2536
|
-
return json;
|
|
2537
|
-
} catch (error) {
|
|
2538
|
-
throw new VError(error, `Failed to get json`);
|
|
2539
|
-
}
|
|
2540
|
-
};
|
|
2541
|
-
|
|
2542
|
-
const getText = async url => {
|
|
2543
|
-
try {
|
|
2544
|
-
const response = await fetch(url);
|
|
2545
|
-
if (!response.ok) {
|
|
2546
|
-
throw new Error(response.statusText);
|
|
2547
|
-
}
|
|
2548
|
-
const text = await response.text();
|
|
2549
|
-
return text;
|
|
2550
|
-
} catch (error) {
|
|
2551
|
-
throw new VError(error, `Failed to get text`);
|
|
2552
|
-
}
|
|
2553
|
-
};
|
|
2554
|
-
|
|
2555
|
-
const splitLines = lines => {
|
|
2556
|
-
return lines.split('\n');
|
|
2557
|
-
};
|
|
2558
|
-
|
|
2559
|
-
const textSearchInText = (file, content, query) => {
|
|
2560
|
-
const results = [];
|
|
2561
|
-
const lines = splitLines(content);
|
|
2562
|
-
for (let i = 0; i < lines.length; i++) {
|
|
2563
|
-
const line = lines[i];
|
|
2564
|
-
const index = line.indexOf(query);
|
|
2565
|
-
if (index !== -1) {
|
|
2566
|
-
results.push({
|
|
2567
|
-
type: Match,
|
|
2568
|
-
text: line,
|
|
2569
|
-
start: index,
|
|
2570
|
-
end: index + query.length,
|
|
2571
|
-
lineNumber: i
|
|
2572
|
-
});
|
|
2573
|
-
}
|
|
2574
|
-
}
|
|
2575
|
-
if (results.length > 0) {
|
|
2576
|
-
results.unshift({
|
|
2577
|
-
type: File$1,
|
|
2578
|
-
text: file,
|
|
2579
|
-
start: 0,
|
|
2580
|
-
end: 0,
|
|
2581
|
-
lineNumber: 0
|
|
2582
|
-
});
|
|
2583
|
-
}
|
|
2584
|
-
return results;
|
|
2585
|
-
};
|
|
2586
|
-
|
|
2587
|
-
const textSearch$4 = async (scheme, root, query, options, assetDir) => {
|
|
2588
|
-
string(scheme);
|
|
2589
|
-
string(root);
|
|
2590
|
-
string(query);
|
|
2591
|
-
const fetchUri = `${assetDir}/config/fileMap.json`;
|
|
2592
|
-
const fileList = await getJson(fetchUri);
|
|
2593
|
-
const allResults = [];
|
|
2594
|
-
const relativeRoot = root.slice('fetch://'.length);
|
|
2595
|
-
for (const uri of fileList) {
|
|
2596
|
-
const fetchUri = `${assetDir}${uri}`;
|
|
2597
|
-
const content = await getText(fetchUri);
|
|
2598
|
-
const relativeUri = uri.slice(relativeRoot.length + 1);
|
|
2599
|
-
const results = textSearchInText(relativeUri, content, query);
|
|
2600
|
-
allResults.push(...results);
|
|
2601
|
-
}
|
|
2602
|
-
return allResults;
|
|
2603
|
-
};
|
|
2604
|
-
|
|
2605
|
-
class FileNotFoundError extends Error {
|
|
2606
|
-
constructor(message) {
|
|
2607
|
-
super(message);
|
|
2608
|
-
this.name = 'FileNotFoundError';
|
|
2609
|
-
}
|
|
2610
|
-
}
|
|
2611
|
-
|
|
2612
|
-
const Directory = 'directory';
|
|
2613
|
-
const File = 'file';
|
|
2614
|
-
|
|
2615
|
-
const getChildHandles$1 = async handle => {
|
|
2616
|
-
object(handle);
|
|
2617
|
-
// @ts-ignore
|
|
2618
|
-
const childHandles = handle.values();
|
|
2619
|
-
const handles = await fromAsync(childHandles);
|
|
2620
|
-
return handles;
|
|
2621
|
-
};
|
|
2622
|
-
|
|
2623
|
-
const getChildHandles = async handle => {
|
|
2624
|
-
try {
|
|
2625
|
-
return await getChildHandles$1(handle);
|
|
2626
|
-
} catch (error) {
|
|
2627
|
-
throw new VError(error, 'failed to get child handles');
|
|
2628
|
-
}
|
|
2629
|
-
};
|
|
2630
|
-
|
|
2631
|
-
const dirname = (pathSeparator, path) => {
|
|
2632
|
-
const index = path.lastIndexOf(pathSeparator);
|
|
2633
|
-
if (index === -1) {
|
|
2634
|
-
return path;
|
|
2635
|
-
}
|
|
2636
|
-
return path.slice(0, index);
|
|
2637
|
-
};
|
|
2638
|
-
|
|
2639
|
-
const instanceOfAny = (object, constructors) => constructors.some(c => object instanceof c);
|
|
2640
|
-
let idbProxyableTypes;
|
|
2641
|
-
let cursorAdvanceMethods;
|
|
2642
|
-
// This is a function to prevent it throwing up in node environments.
|
|
2643
|
-
function getIdbProxyableTypes() {
|
|
2644
|
-
return idbProxyableTypes || (idbProxyableTypes = [IDBDatabase, IDBObjectStore, IDBIndex, IDBCursor, IDBTransaction]);
|
|
2645
|
-
}
|
|
2646
|
-
// This is a function to prevent it throwing up in node environments.
|
|
2647
|
-
function getCursorAdvanceMethods() {
|
|
2648
|
-
return cursorAdvanceMethods || (cursorAdvanceMethods = [IDBCursor.prototype.advance, IDBCursor.prototype.continue, IDBCursor.prototype.continuePrimaryKey]);
|
|
2649
|
-
}
|
|
2650
|
-
const transactionDoneMap = new WeakMap();
|
|
2651
|
-
const transformCache = new WeakMap();
|
|
2652
|
-
const reverseTransformCache = new WeakMap();
|
|
2653
|
-
function promisifyRequest(request) {
|
|
2654
|
-
const promise = new Promise((resolve, reject) => {
|
|
2655
|
-
const unlisten = () => {
|
|
2656
|
-
request.removeEventListener('success', success);
|
|
2657
|
-
request.removeEventListener('error', error);
|
|
2658
|
-
};
|
|
2659
|
-
const success = () => {
|
|
2660
|
-
resolve(wrap(request.result));
|
|
2661
|
-
unlisten();
|
|
2662
|
-
};
|
|
2663
|
-
const error = () => {
|
|
2664
|
-
reject(request.error);
|
|
2665
|
-
unlisten();
|
|
2666
|
-
};
|
|
2667
|
-
request.addEventListener('success', success);
|
|
2668
|
-
request.addEventListener('error', error);
|
|
2669
|
-
});
|
|
2670
|
-
// This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This
|
|
2671
|
-
// is because we create many promises from a single IDBRequest.
|
|
2672
|
-
reverseTransformCache.set(promise, request);
|
|
2673
|
-
return promise;
|
|
2674
|
-
}
|
|
2675
|
-
function cacheDonePromiseForTransaction(tx) {
|
|
2676
|
-
// Early bail if we've already created a done promise for this transaction.
|
|
2677
|
-
if (transactionDoneMap.has(tx)) return;
|
|
2678
|
-
const done = new Promise((resolve, reject) => {
|
|
2679
|
-
const unlisten = () => {
|
|
2680
|
-
tx.removeEventListener('complete', complete);
|
|
2681
|
-
tx.removeEventListener('error', error);
|
|
2682
|
-
tx.removeEventListener('abort', error);
|
|
2683
|
-
};
|
|
2684
|
-
const complete = () => {
|
|
2685
|
-
resolve();
|
|
2686
|
-
unlisten();
|
|
2687
|
-
};
|
|
2688
|
-
const error = () => {
|
|
2689
|
-
reject(tx.error || new DOMException('AbortError', 'AbortError'));
|
|
2690
|
-
unlisten();
|
|
2691
|
-
};
|
|
2692
|
-
tx.addEventListener('complete', complete);
|
|
2693
|
-
tx.addEventListener('error', error);
|
|
2694
|
-
tx.addEventListener('abort', error);
|
|
2695
|
-
});
|
|
2696
|
-
// Cache it for later retrieval.
|
|
2697
|
-
transactionDoneMap.set(tx, done);
|
|
2698
|
-
}
|
|
2699
|
-
let idbProxyTraps = {
|
|
2700
|
-
get(target, prop, receiver) {
|
|
2701
|
-
if (target instanceof IDBTransaction) {
|
|
2702
|
-
// Special handling for transaction.done.
|
|
2703
|
-
if (prop === 'done') return transactionDoneMap.get(target);
|
|
2704
|
-
// Make tx.store return the only store in the transaction, or undefined if there are many.
|
|
2705
|
-
if (prop === 'store') {
|
|
2706
|
-
return receiver.objectStoreNames[1] ? undefined : receiver.objectStore(receiver.objectStoreNames[0]);
|
|
2707
|
-
}
|
|
2708
|
-
}
|
|
2709
|
-
// Else transform whatever we get back.
|
|
2710
|
-
return wrap(target[prop]);
|
|
2711
|
-
},
|
|
2712
|
-
set(target, prop, value) {
|
|
2713
|
-
target[prop] = value;
|
|
2714
|
-
return true;
|
|
2715
|
-
},
|
|
2716
|
-
has(target, prop) {
|
|
2717
|
-
if (target instanceof IDBTransaction && (prop === 'done' || prop === 'store')) {
|
|
2718
|
-
return true;
|
|
2719
|
-
}
|
|
2720
|
-
return prop in target;
|
|
2721
|
-
}
|
|
2722
|
-
};
|
|
2723
|
-
function replaceTraps(callback) {
|
|
2724
|
-
idbProxyTraps = callback(idbProxyTraps);
|
|
2725
|
-
}
|
|
2726
|
-
function wrapFunction(func) {
|
|
2727
|
-
// Due to expected object equality (which is enforced by the caching in `wrap`), we
|
|
2728
|
-
// only create one new func per func.
|
|
2729
|
-
// Cursor methods are special, as the behaviour is a little more different to standard IDB. In
|
|
2730
|
-
// IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the
|
|
2731
|
-
// cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense
|
|
2732
|
-
// with real promises, so each advance methods returns a new promise for the cursor object, or
|
|
2733
|
-
// undefined if the end of the cursor has been reached.
|
|
2734
|
-
if (getCursorAdvanceMethods().includes(func)) {
|
|
2735
|
-
return function (...args) {
|
|
2736
|
-
// Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use
|
|
2737
|
-
// the original object.
|
|
2738
|
-
func.apply(unwrap(this), args);
|
|
2739
|
-
return wrap(this.request);
|
|
2740
|
-
};
|
|
2741
|
-
}
|
|
2742
|
-
return function (...args) {
|
|
2743
|
-
// Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use
|
|
2744
|
-
// the original object.
|
|
2745
|
-
return wrap(func.apply(unwrap(this), args));
|
|
2746
|
-
};
|
|
2747
|
-
}
|
|
2748
|
-
function transformCachableValue(value) {
|
|
2749
|
-
if (typeof value === 'function') return wrapFunction(value);
|
|
2750
|
-
// This doesn't return, it just creates a 'done' promise for the transaction,
|
|
2751
|
-
// which is later returned for transaction.done (see idbObjectHandler).
|
|
2752
|
-
if (value instanceof IDBTransaction) cacheDonePromiseForTransaction(value);
|
|
2753
|
-
if (instanceOfAny(value, getIdbProxyableTypes())) return new Proxy(value, idbProxyTraps);
|
|
2754
|
-
// Return the same value back if we're not going to transform it.
|
|
2755
|
-
return value;
|
|
2756
|
-
}
|
|
2757
|
-
function wrap(value) {
|
|
2758
|
-
// We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because
|
|
2759
|
-
// IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.
|
|
2760
|
-
if (value instanceof IDBRequest) return promisifyRequest(value);
|
|
2761
|
-
// If we've already transformed this value before, reuse the transformed value.
|
|
2762
|
-
// This is faster, but it also provides object equality.
|
|
2763
|
-
if (transformCache.has(value)) return transformCache.get(value);
|
|
2764
|
-
const newValue = transformCachableValue(value);
|
|
2765
|
-
// Not all types are transformed.
|
|
2766
|
-
// These may be primitive types, so they can't be WeakMap keys.
|
|
2767
|
-
if (newValue !== value) {
|
|
2768
|
-
transformCache.set(value, newValue);
|
|
2769
|
-
reverseTransformCache.set(newValue, value);
|
|
2770
|
-
}
|
|
2771
|
-
return newValue;
|
|
2772
|
-
}
|
|
2773
|
-
const unwrap = value => reverseTransformCache.get(value);
|
|
2774
|
-
|
|
2775
|
-
/**
|
|
2776
|
-
* Open a database.
|
|
2777
|
-
*
|
|
2778
|
-
* @param name Name of the database.
|
|
2779
|
-
* @param version Schema version.
|
|
2780
|
-
* @param callbacks Additional callbacks.
|
|
2781
|
-
*/
|
|
2782
|
-
function openDB(name, version, {
|
|
2783
|
-
blocked,
|
|
2784
|
-
upgrade,
|
|
2785
|
-
blocking,
|
|
2786
|
-
terminated
|
|
2787
|
-
} = {}) {
|
|
2788
|
-
const request = indexedDB.open(name, version);
|
|
2789
|
-
const openPromise = wrap(request);
|
|
2790
|
-
if (upgrade) {
|
|
2791
|
-
request.addEventListener('upgradeneeded', event => {
|
|
2792
|
-
upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);
|
|
2793
|
-
});
|
|
2794
|
-
}
|
|
2795
|
-
if (blocked) {
|
|
2796
|
-
request.addEventListener('blocked', event => blocked(
|
|
2797
|
-
// Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405
|
|
2798
|
-
event.oldVersion, event.newVersion, event));
|
|
2799
|
-
}
|
|
2800
|
-
openPromise.then(db => {
|
|
2801
|
-
if (terminated) db.addEventListener('close', () => terminated());
|
|
2802
|
-
if (blocking) {
|
|
2803
|
-
db.addEventListener('versionchange', event => blocking(event.oldVersion, event.newVersion, event));
|
|
2804
|
-
}
|
|
2805
|
-
}).catch(() => {});
|
|
2806
|
-
return openPromise;
|
|
2807
|
-
}
|
|
2808
|
-
const readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];
|
|
2809
|
-
const writeMethods = ['put', 'add', 'delete', 'clear'];
|
|
2810
|
-
const cachedMethods = new Map();
|
|
2811
|
-
function getMethod(target, prop) {
|
|
2812
|
-
if (!(target instanceof IDBDatabase && !(prop in target) && typeof prop === 'string')) {
|
|
2813
|
-
return;
|
|
2814
|
-
}
|
|
2815
|
-
if (cachedMethods.get(prop)) return cachedMethods.get(prop);
|
|
2816
|
-
const targetFuncName = prop.replace(/FromIndex$/, '');
|
|
2817
|
-
const useIndex = prop !== targetFuncName;
|
|
2818
|
-
const isWrite = writeMethods.includes(targetFuncName);
|
|
2819
|
-
if (
|
|
2820
|
-
// Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.
|
|
2821
|
-
!(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) || !(isWrite || readMethods.includes(targetFuncName))) {
|
|
2822
|
-
return;
|
|
2823
|
-
}
|
|
2824
|
-
const method = async function (storeName, ...args) {
|
|
2825
|
-
// isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(
|
|
2826
|
-
const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');
|
|
2827
|
-
let target = tx.store;
|
|
2828
|
-
if (useIndex) target = target.index(args.shift());
|
|
2829
|
-
// Must reject if op rejects.
|
|
2830
|
-
// If it's a write operation, must reject if tx.done rejects.
|
|
2831
|
-
// Must reject with op rejection first.
|
|
2832
|
-
// Must resolve with op value.
|
|
2833
|
-
// Must handle both promises (no unhandled rejections)
|
|
2834
|
-
return (await Promise.all([target[targetFuncName](...args), isWrite && tx.done]))[0];
|
|
2835
|
-
};
|
|
2836
|
-
cachedMethods.set(prop, method);
|
|
2837
|
-
return method;
|
|
2838
|
-
}
|
|
2839
|
-
replaceTraps(oldTraps => ({
|
|
2840
|
-
...oldTraps,
|
|
2841
|
-
get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),
|
|
2842
|
-
has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop)
|
|
2843
|
-
}));
|
|
2844
|
-
const advanceMethodProps = ['continue', 'continuePrimaryKey', 'advance'];
|
|
2845
|
-
const methodMap = {};
|
|
2846
|
-
const advanceResults = new WeakMap();
|
|
2847
|
-
const ittrProxiedCursorToOriginalProxy = new WeakMap();
|
|
2848
|
-
const cursorIteratorTraps = {
|
|
2849
|
-
get(target, prop) {
|
|
2850
|
-
if (!advanceMethodProps.includes(prop)) return target[prop];
|
|
2851
|
-
let cachedFunc = methodMap[prop];
|
|
2852
|
-
if (!cachedFunc) {
|
|
2853
|
-
cachedFunc = methodMap[prop] = function (...args) {
|
|
2854
|
-
advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args));
|
|
2855
|
-
};
|
|
2856
|
-
}
|
|
2857
|
-
return cachedFunc;
|
|
2858
|
-
}
|
|
2859
|
-
};
|
|
2860
|
-
async function* iterate(...args) {
|
|
2861
|
-
// tslint:disable-next-line:no-this-assignment
|
|
2862
|
-
let cursor = this;
|
|
2863
|
-
if (!(cursor instanceof IDBCursor)) {
|
|
2864
|
-
cursor = await cursor.openCursor(...args);
|
|
2865
|
-
}
|
|
2866
|
-
if (!cursor) return;
|
|
2867
|
-
cursor = cursor;
|
|
2868
|
-
const proxiedCursor = new Proxy(cursor, cursorIteratorTraps);
|
|
2869
|
-
ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor);
|
|
2870
|
-
// Map this double-proxy back to the original, so other cursor methods work.
|
|
2871
|
-
reverseTransformCache.set(proxiedCursor, unwrap(cursor));
|
|
2872
|
-
while (cursor) {
|
|
2873
|
-
yield proxiedCursor;
|
|
2874
|
-
// If one of the advancing methods was not called, call continue().
|
|
2875
|
-
cursor = await (advanceResults.get(proxiedCursor) || cursor.continue());
|
|
2876
|
-
advanceResults.delete(proxiedCursor);
|
|
2877
|
-
}
|
|
2878
|
-
}
|
|
2879
|
-
function isIteratorProp(target, prop) {
|
|
2880
|
-
return prop === Symbol.asyncIterator && instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor]) || prop === 'iterate' && instanceOfAny(target, [IDBIndex, IDBObjectStore]);
|
|
2881
|
-
}
|
|
2882
|
-
replaceTraps(oldTraps => ({
|
|
2883
|
-
...oldTraps,
|
|
2884
|
-
get(target, prop, receiver) {
|
|
2885
|
-
if (isIteratorProp(target, prop)) return iterate;
|
|
2886
|
-
return oldTraps.get(target, prop, receiver);
|
|
2887
|
-
},
|
|
2888
|
-
has(target, prop) {
|
|
2889
|
-
return isIteratorProp(target, prop) || oldTraps.has(target, prop);
|
|
2890
|
-
}
|
|
2891
|
-
}));
|
|
2892
|
-
|
|
2893
|
-
const state$2 = {
|
|
2894
|
-
databases: Object.create(null),
|
|
2895
|
-
eventId: 0,
|
|
2896
|
-
dbVersion: 1,
|
|
2897
|
-
cachedDb: undefined
|
|
2898
|
-
};
|
|
2899
|
-
|
|
2900
|
-
// TODO high memory usage in idb because of transactionDoneMap
|
|
2901
|
-
|
|
2902
|
-
const getHandleDb = async () => {
|
|
2903
|
-
// @ts-ignore
|
|
2904
|
-
const db = await openDB('handle', state$2.dbVersion, {
|
|
2905
|
-
async upgrade(db) {
|
|
2906
|
-
if (!db.objectStoreNames.contains('file-handles-store')) {
|
|
2907
|
-
await db.createObjectStore('file-handles-store', {});
|
|
2908
|
-
}
|
|
2909
|
-
}
|
|
2910
|
-
});
|
|
2911
|
-
return db;
|
|
2912
|
-
};
|
|
2913
|
-
const getHandle$1 = async uri => {
|
|
2914
|
-
const handleDb = await getHandleDb();
|
|
2915
|
-
const handle = await handleDb.get('file-handles-store', uri);
|
|
2916
|
-
return handle;
|
|
2917
|
-
};
|
|
2918
|
-
|
|
2919
|
-
const getHandle = async uri => {
|
|
2920
|
-
try {
|
|
2921
|
-
// TODO retrieve handle from state or from indexeddb
|
|
2922
|
-
// TODO if not found, throw error
|
|
2923
|
-
const handle = await getHandle$1(uri);
|
|
2924
|
-
return handle;
|
|
2925
|
-
} catch (error) {
|
|
2926
|
-
throw new VError(error, 'Failed to get handle');
|
|
2927
|
-
}
|
|
2928
|
-
};
|
|
2929
|
-
|
|
2930
|
-
const getDirectoryHandle = async uri => {
|
|
2931
|
-
const handle = await getHandle(uri);
|
|
2932
|
-
if (handle) {
|
|
2933
|
-
return handle;
|
|
2934
|
-
}
|
|
2935
|
-
const dirname$1 = dirname('/', uri);
|
|
2936
|
-
if (uri === dirname$1) {
|
|
2937
|
-
return undefined;
|
|
2938
|
-
}
|
|
2939
|
-
return getDirectoryHandle(dirname$1);
|
|
2940
|
-
};
|
|
2941
|
-
|
|
2942
|
-
const NotReadableError = 'NotReadableError';
|
|
2943
|
-
|
|
2944
|
-
const isNotReadableError = error => {
|
|
2945
|
-
return error && error.name === NotReadableError;
|
|
2946
|
-
};
|
|
2947
|
-
|
|
2948
|
-
const getFile = handle => {
|
|
2949
|
-
return handle.getFile();
|
|
2950
|
-
};
|
|
2951
|
-
|
|
2952
|
-
const textSearchInFile = async (all, handle, absolutePath, query) => {
|
|
2953
|
-
try {
|
|
2954
|
-
const file = await getFile(handle);
|
|
2955
|
-
const content = await file.text();
|
|
2956
|
-
const results = textSearchInText(absolutePath, content, query);
|
|
2957
|
-
push(all, results);
|
|
2958
|
-
} catch (error) {
|
|
2959
|
-
if (isNotReadableError(error)) {
|
|
2960
|
-
// ignore
|
|
2961
|
-
return;
|
|
2962
|
-
}
|
|
2963
|
-
throw error;
|
|
2964
|
-
}
|
|
2965
|
-
};
|
|
2966
|
-
|
|
2967
|
-
const textSearchRecursively = async (all, parent, handle, query) => {
|
|
2968
|
-
const childHandles = await getChildHandles(handle);
|
|
2969
|
-
const promises = [];
|
|
2970
|
-
for (const childHandle of childHandles) {
|
|
2971
|
-
const absolutePath = parent + '/' + childHandle.name;
|
|
2972
|
-
switch (childHandle.kind) {
|
|
2973
|
-
case Directory:
|
|
2974
|
-
promises.push(textSearchRecursively(all, absolutePath, childHandle, query));
|
|
2975
|
-
break;
|
|
2976
|
-
case File:
|
|
2977
|
-
// @ts-ignore
|
|
2978
|
-
promises.push(textSearchInFile(all, childHandle, absolutePath, query));
|
|
2979
|
-
break;
|
|
2980
|
-
}
|
|
2981
|
-
}
|
|
2982
|
-
await Promise.all(promises);
|
|
2983
|
-
};
|
|
2984
|
-
const textSearch$3 = async (scheme, root, query) => {
|
|
2985
|
-
string(scheme);
|
|
2986
|
-
string(root);
|
|
2987
|
-
string(query);
|
|
2988
|
-
const relativeRoot = root.slice('html://'.length);
|
|
2989
|
-
const handle = await getDirectoryHandle(relativeRoot);
|
|
2990
|
-
if (!handle) {
|
|
2991
|
-
throw new FileNotFoundError(`Folder not found: ${relativeRoot}`);
|
|
2992
|
-
}
|
|
2993
|
-
const all = [];
|
|
2994
|
-
await textSearchRecursively(all, '', handle, query);
|
|
2995
|
-
return all;
|
|
2996
|
-
};
|
|
2997
|
-
|
|
2998
|
-
const getRipGrepArgs = ({
|
|
2999
|
-
threads,
|
|
3000
|
-
isCaseSensitive,
|
|
3001
|
-
searchString,
|
|
3002
|
-
useRegularExpression
|
|
3003
|
-
}) => {
|
|
3004
|
-
const ripGrepArgs = ['--hidden', '--no-require-git', '--smart-case', '--stats', '--json'];
|
|
3005
|
-
ripGrepArgs.push('--threads', `${threads}`);
|
|
3006
|
-
if (isCaseSensitive) {
|
|
3007
|
-
ripGrepArgs.push('--case-sensitive');
|
|
3008
|
-
} else {
|
|
3009
|
-
ripGrepArgs.push('--ignore-case');
|
|
3010
|
-
}
|
|
3011
|
-
if (useRegularExpression) {
|
|
3012
|
-
ripGrepArgs.push('--regexp', searchString);
|
|
3013
|
-
} else {
|
|
3014
|
-
ripGrepArgs.push('--fixed-strings');
|
|
3015
|
-
ripGrepArgs.push('--');
|
|
3016
|
-
ripGrepArgs.push(searchString);
|
|
3017
|
-
}
|
|
3018
|
-
ripGrepArgs.push('.');
|
|
3019
|
-
return ripGrepArgs;
|
|
3020
|
-
};
|
|
3021
|
-
|
|
3022
|
-
const Electron = 2;
|
|
3023
|
-
const Remote = 3;
|
|
3024
|
-
|
|
3025
|
-
const Https = 'https:';
|
|
3026
|
-
const Ws = 'ws:';
|
|
3027
|
-
const Wss = 'wss:';
|
|
3028
|
-
|
|
3029
|
-
const getWebSocketProtocol = locationProtocol => {
|
|
3030
|
-
return locationProtocol === Https ? Wss : Ws;
|
|
3031
|
-
};
|
|
3032
|
-
|
|
3033
|
-
const getWebSocketUrl = (type, host, locationProtocol) => {
|
|
3034
|
-
const wsProtocol = getWebSocketProtocol(locationProtocol);
|
|
3035
|
-
return `${wsProtocol}//${host}/websocket/${type}`;
|
|
3036
|
-
};
|
|
3037
|
-
|
|
3038
|
-
const getHost = () => {
|
|
3039
|
-
return location.host;
|
|
3040
|
-
};
|
|
3041
|
-
const getProtocol = () => {
|
|
3042
|
-
return location.protocol;
|
|
3043
|
-
};
|
|
3044
|
-
|
|
3045
|
-
const launchSearchProcess = async () => {
|
|
3046
|
-
const host = getHost();
|
|
3047
|
-
const protocol = getProtocol();
|
|
3048
|
-
const wsUrl = getWebSocketUrl('search-process', host, protocol);
|
|
3049
|
-
const webSocket = new WebSocket(wsUrl);
|
|
3050
|
-
const rpc = await WebSocketRpcParent.create({
|
|
3051
|
-
webSocket,
|
|
3052
|
-
commandMap: {}
|
|
3053
|
-
});
|
|
3054
|
-
return rpc;
|
|
3055
|
-
};
|
|
3056
|
-
|
|
3057
|
-
const state$1 = {
|
|
3058
|
-
rpc: undefined
|
|
3059
|
-
};
|
|
3060
|
-
const getOrCreate$1 = () => {
|
|
3061
|
-
if (!state$1.rpc) {
|
|
3062
|
-
// @ts-ignore
|
|
3063
|
-
state$1.rpc = launchSearchProcess();
|
|
3064
|
-
}
|
|
3065
|
-
return state$1.rpc;
|
|
3066
|
-
};
|
|
3067
|
-
|
|
3068
|
-
const invoke$1 = async (method, ...params) => {
|
|
3069
|
-
const rpc = await getOrCreate$1();
|
|
3070
|
-
return rpc.invoke(method, ...params);
|
|
3071
|
-
};
|
|
3072
|
-
|
|
3073
|
-
const getPortTuple = () => {
|
|
3074
|
-
const {
|
|
3075
|
-
port1,
|
|
3076
|
-
port2
|
|
3077
|
-
} = new MessageChannel();
|
|
3078
|
-
return {
|
|
3079
|
-
port1,
|
|
3080
|
-
port2
|
|
3081
|
-
};
|
|
3082
|
-
};
|
|
3083
|
-
|
|
3084
|
-
const launchSearchProcessElectron = async () => {
|
|
3085
|
-
const {
|
|
3086
|
-
port1,
|
|
3087
|
-
port2
|
|
3088
|
-
} = getPortTuple();
|
|
3089
|
-
const rpcPromise = MessagePortRpcParent.create({
|
|
3090
|
-
messagePort: port2,
|
|
3091
|
-
commandMap: {},
|
|
3092
|
-
isMessagePortOpen: true
|
|
3093
|
-
});
|
|
3094
|
-
await invokeAndTransfer('SendMessagePortToElectron.sendMessagePortToElectron', port1, 'HandleMessagePortForSearchProcess.handleMessagePortForSearchProcess');
|
|
3095
|
-
port2.start();
|
|
3096
|
-
const rpc = await rpcPromise;
|
|
3097
|
-
return rpc;
|
|
3098
|
-
};
|
|
3099
|
-
|
|
3100
|
-
const state = {
|
|
3101
|
-
rpc: undefined
|
|
3102
|
-
};
|
|
3103
|
-
const getOrCreate = () => {
|
|
3104
|
-
if (!state.rpc) {
|
|
3105
|
-
// @ts-ignore
|
|
3106
|
-
state.rpc = launchSearchProcessElectron();
|
|
3107
|
-
}
|
|
3108
|
-
return state.rpc;
|
|
3109
|
-
};
|
|
3110
|
-
|
|
3111
|
-
const invoke = async (method, ...params) => {
|
|
3112
|
-
const rpc = await getOrCreate();
|
|
3113
|
-
return rpc.invoke(method, ...params);
|
|
3114
|
-
};
|
|
3115
|
-
|
|
3116
|
-
const textSearch$2 = async (scheme, root, query, options, assetDir, platform) => {
|
|
3117
|
-
const ripGrepArgs = getRipGrepArgs({
|
|
3118
|
-
...options,
|
|
3119
|
-
searchString: query
|
|
3120
|
-
});
|
|
3121
|
-
const actualOptions = {
|
|
3122
|
-
ripGrepArgs,
|
|
3123
|
-
searchDir: root
|
|
3124
|
-
};
|
|
3125
|
-
if (platform === Remote) {
|
|
3126
|
-
const result = await invoke$1('TextSearch.search', actualOptions);
|
|
3127
|
-
// TODO api is weird
|
|
3128
|
-
return result.results;
|
|
3129
|
-
}
|
|
3130
|
-
if (platform === Electron) {
|
|
3131
|
-
const result = await invoke('TextSearch.search', actualOptions);
|
|
3132
|
-
return result.results;
|
|
3133
|
-
}
|
|
3134
|
-
const results = await invoke$2('SearchProcess.invoke', 'TextSearch.search', actualOptions);
|
|
3135
|
-
// TODO api is weird
|
|
3136
|
-
return results.results;
|
|
3137
|
-
};
|
|
3138
|
-
|
|
3139
|
-
const textSearch$1 = (scheme, root, query) => {
|
|
3140
|
-
// TODO ask renderer worker for files
|
|
3141
|
-
const entries = Object.entries({});
|
|
3142
|
-
const results = [];
|
|
3143
|
-
for (const [key, value] of entries) {
|
|
3144
|
-
// @ts-ignore
|
|
3145
|
-
if (value.includes(query)) {
|
|
3146
|
-
results.push([key, [{
|
|
3147
|
-
absoluteOffset: 0,
|
|
3148
|
-
preview: value
|
|
3149
|
-
}]]);
|
|
3150
|
-
}
|
|
3151
|
-
}
|
|
3152
|
-
return results;
|
|
3153
|
-
};
|
|
3154
|
-
|
|
3155
|
-
const getProvider = scheme => {
|
|
3156
|
-
switch (scheme) {
|
|
3157
|
-
case '':
|
|
3158
|
-
return textSearch$2;
|
|
3159
|
-
case 'web':
|
|
3160
|
-
return textSearch$1;
|
|
3161
|
-
case 'fetch':
|
|
3162
|
-
return textSearch$4;
|
|
3163
|
-
case 'html':
|
|
3164
|
-
return textSearch$3;
|
|
3165
|
-
default:
|
|
3166
|
-
return textSearch$5;
|
|
3167
|
-
}
|
|
3168
|
-
};
|
|
3169
|
-
|
|
3170
|
-
const textSearch = async (root, query, options, assetDir, platform) => {
|
|
3171
|
-
string(root);
|
|
3172
|
-
string(query);
|
|
3173
|
-
const scheme = getProtocol$1(root);
|
|
3174
|
-
const provider = getProvider(scheme);
|
|
3175
|
-
const results = await provider(scheme, root, query, options, assetDir, platform);
|
|
3176
|
-
return results;
|
|
3177
|
-
};
|
|
3178
|
-
|
|
3179
|
-
const handleUpdate = async (state, update) => {
|
|
3180
|
-
const partialNewState = {
|
|
3181
|
-
...state,
|
|
3182
|
-
...update
|
|
3183
|
-
};
|
|
3184
|
-
try {
|
|
3185
|
-
const {
|
|
3186
|
-
height,
|
|
3187
|
-
itemHeight,
|
|
3188
|
-
minimumSliderSize,
|
|
3189
|
-
headerHeight,
|
|
3190
|
-
flags,
|
|
3191
|
-
value,
|
|
3192
|
-
threads
|
|
3193
|
-
} = partialNewState;
|
|
3194
|
-
if (isEmptyString(value)) {
|
|
3195
|
-
return {
|
|
3196
|
-
...partialNewState,
|
|
3197
|
-
minLineY: 0,
|
|
3198
|
-
maxLineY: 0,
|
|
3199
|
-
deltaY: 0,
|
|
3200
|
-
items: [],
|
|
3201
|
-
listItems: [],
|
|
3202
|
-
matchCount: 0,
|
|
3203
|
-
message: '',
|
|
3204
|
-
loaded: true
|
|
3205
|
-
};
|
|
3206
|
-
}
|
|
3207
|
-
const root = state.workspacePath;
|
|
3208
|
-
const results = await textSearch(root, value, {
|
|
3209
|
-
threads,
|
|
3210
|
-
isCaseSensitive: hasMatchCase(flags),
|
|
3211
|
-
useRegularExpression: hasUseRegularExpression(flags)
|
|
3212
|
-
}, state.assetDir, state.platform);
|
|
3213
|
-
if (!Array.isArray(results)) {
|
|
3214
|
-
throw new TypeError('results must be of type array');
|
|
3215
|
-
}
|
|
3216
|
-
const {
|
|
3217
|
-
fileCount,
|
|
3218
|
-
resultCount
|
|
3219
|
-
} = getTextSearchResultCounts(results);
|
|
3220
|
-
const message = getStatusMessage(resultCount, fileCount);
|
|
3221
|
-
const total = results.length;
|
|
3222
|
-
const contentHeight = total * itemHeight;
|
|
3223
|
-
const listHeight = height - headerHeight;
|
|
3224
|
-
const scrollBarHeight = getScrollBarSize(height, contentHeight, minimumSliderSize);
|
|
3225
|
-
const numberOfVisible = getNumberOfVisibleItems(listHeight, itemHeight);
|
|
3226
|
-
const maxLineY = Math.min(numberOfVisible, total);
|
|
3227
|
-
const finalDeltaY = Math.max(contentHeight - listHeight, 0);
|
|
3228
|
-
const visible = results.slice(0, maxLineY);
|
|
3229
|
-
const icons = await getFileIcons(visible);
|
|
3230
|
-
return {
|
|
3231
|
-
...partialNewState,
|
|
3232
|
-
minLineY: 0,
|
|
3233
|
-
deltaY: 0,
|
|
3234
|
-
value,
|
|
3235
|
-
items: results,
|
|
3236
|
-
listItems: results,
|
|
3237
|
-
message,
|
|
3238
|
-
maxLineY: maxLineY,
|
|
3239
|
-
scrollBarHeight,
|
|
3240
|
-
finalDeltaY,
|
|
3241
|
-
threads,
|
|
3242
|
-
fileCount,
|
|
3243
|
-
matchCount: resultCount,
|
|
3244
|
-
loaded: true,
|
|
3245
|
-
icons
|
|
3246
|
-
};
|
|
3247
|
-
} catch (error) {
|
|
3248
|
-
handleError(error);
|
|
3249
|
-
return {
|
|
3250
|
-
...partialNewState,
|
|
3251
|
-
message: `${error}`,
|
|
3252
|
-
items: [],
|
|
3253
|
-
listItems: [],
|
|
3254
|
-
matchCount: 0,
|
|
3255
|
-
fileCount: 0,
|
|
3256
|
-
minLineY: 0,
|
|
3257
|
-
maxLineY: 0
|
|
3258
|
-
};
|
|
3259
|
-
}
|
|
3260
|
-
};
|
|
3261
|
-
|
|
3262
|
-
const handleExcludeInput = (state, value, inputSource = Script) => {
|
|
3263
|
-
return handleUpdate(state, {
|
|
3264
|
-
excludeValue: value,
|
|
3265
|
-
inputSource
|
|
3266
|
-
});
|
|
3267
|
-
};
|
|
3268
|
-
|
|
3269
|
-
const handleIconThemeChange = async state => {
|
|
3270
|
-
const {
|
|
3271
|
-
items,
|
|
3272
|
-
minLineY,
|
|
3273
|
-
maxLineY
|
|
3274
|
-
} = state;
|
|
3275
|
-
const visibleItems = items.slice(minLineY, maxLineY);
|
|
3276
|
-
const icons = await getFileIcons(visibleItems);
|
|
3277
|
-
return {
|
|
3278
|
-
...state,
|
|
3279
|
-
icons
|
|
3280
|
-
};
|
|
3281
|
-
};
|
|
3282
|
-
|
|
3283
|
-
const handleIncludeInput = (state, includeValue) => {
|
|
3284
|
-
return {
|
|
3285
|
-
...state,
|
|
3286
|
-
includeValue,
|
|
3287
|
-
focusSource: User
|
|
3288
|
-
};
|
|
3289
|
-
};
|
|
3290
|
-
|
|
3291
|
-
const handleInput = (state, value, inputSource = Script) => {
|
|
3292
|
-
return handleUpdate(state, {
|
|
3293
|
-
value,
|
|
3294
|
-
inputSource
|
|
3295
|
-
});
|
|
3296
|
-
};
|
|
3297
|
-
|
|
3298
|
-
const handleListBlur = state => {
|
|
3299
|
-
return state;
|
|
3300
|
-
};
|
|
3301
|
-
|
|
3302
|
-
const handleReplaceInput = (state, value, inputSource = Script) => {
|
|
3303
|
-
return handleUpdate(state, {
|
|
3304
|
-
replacement: value,
|
|
3305
|
-
inputSource
|
|
3306
|
-
});
|
|
3307
|
-
};
|
|
3308
|
-
|
|
3309
|
-
const getInputHandler = name => {
|
|
3310
|
-
switch (name) {
|
|
3311
|
-
case 'search-value':
|
|
3312
|
-
return handleInput;
|
|
3313
|
-
case 'replacement-value':
|
|
3314
|
-
return handleReplaceInput;
|
|
3315
|
-
case 'files-to-exclude-value':
|
|
3316
|
-
return handleExcludeInput;
|
|
3317
|
-
default:
|
|
3318
|
-
throw new Error(`unknown input handler: ${name}`);
|
|
3319
|
-
}
|
|
3320
|
-
};
|
|
3321
|
-
|
|
3322
|
-
const handleSharedInput = (state, name, value, inputSource = Script) => {
|
|
3323
|
-
const fn = getInputHandler(name);
|
|
3324
|
-
return fn(state, value, inputSource);
|
|
3325
|
-
};
|
|
3326
|
-
|
|
3327
|
-
const first = () => {
|
|
3328
|
-
return 0;
|
|
3329
|
-
};
|
|
3330
|
-
const last = items => {
|
|
3331
|
-
return items.length - 1;
|
|
3332
|
-
};
|
|
3333
|
-
const next = (items, index) => {
|
|
3334
|
-
return (index + 1) % items.length;
|
|
3335
|
-
};
|
|
3336
|
-
const previous = (items, index) => {
|
|
3337
|
-
return index === 0 ? items.length - 1 : index - 1;
|
|
3338
|
-
};
|
|
3339
|
-
|
|
3340
|
-
const focusIndexScrollUp = (state, index, listHeight, itemHeight, itemsLength) => {
|
|
3341
|
-
const newMinLineY = index;
|
|
3342
|
-
const fittingItems = getNumberOfVisibleItems(listHeight, itemHeight);
|
|
3343
|
-
const newMaxLineY = Math.min(newMinLineY + fittingItems, itemsLength);
|
|
3344
|
-
const newDeltaY = newMinLineY * itemHeight;
|
|
3345
|
-
return {
|
|
3346
|
-
...state,
|
|
3347
|
-
focusedIndex: index,
|
|
3348
|
-
minLineY: newMinLineY,
|
|
3349
|
-
maxLineY: newMaxLineY,
|
|
3350
|
-
focused: true,
|
|
3351
|
-
deltaY: newDeltaY
|
|
3352
|
-
};
|
|
3353
|
-
};
|
|
3354
|
-
const focusIndexScrollDown = (state, index, listHeight, itemHeight, itemsLength) => {
|
|
3355
|
-
const newMaxLineY = Math.min(index + 1, itemsLength);
|
|
3356
|
-
const fittingItems = getNumberOfVisibleItems(listHeight, itemHeight);
|
|
3357
|
-
const newMinLineY = Math.max(newMaxLineY - fittingItems, 0);
|
|
3358
|
-
const newDeltaY = itemsLength < fittingItems ? 0 : newMinLineY * itemHeight - listHeight % itemHeight + itemHeight;
|
|
3359
|
-
return {
|
|
3360
|
-
...state,
|
|
3361
|
-
focusedIndex: index,
|
|
3362
|
-
minLineY: newMinLineY,
|
|
3363
|
-
maxLineY: newMaxLineY,
|
|
3364
|
-
focused: true,
|
|
3365
|
-
deltaY: newDeltaY
|
|
3366
|
-
};
|
|
3367
|
-
};
|
|
3368
|
-
const focusIndex = (state, index) => {
|
|
3369
|
-
const {
|
|
3370
|
-
itemHeight,
|
|
3371
|
-
minLineY,
|
|
3372
|
-
maxLineY,
|
|
3373
|
-
headerHeight,
|
|
3374
|
-
height,
|
|
3375
|
-
items
|
|
3376
|
-
} = state;
|
|
3377
|
-
const itemsLength = items.length;
|
|
3378
|
-
if (itemsLength === 0) {
|
|
3379
|
-
return state;
|
|
3380
|
-
}
|
|
3381
|
-
number(itemHeight);
|
|
3382
|
-
if (index === -1) {
|
|
3383
|
-
return {
|
|
3384
|
-
...state,
|
|
3385
|
-
focusedIndex: -1,
|
|
3386
|
-
focused: true
|
|
3387
|
-
};
|
|
3388
|
-
}
|
|
3389
|
-
const listHeight = height - headerHeight;
|
|
3390
|
-
if (index < minLineY + 1) {
|
|
3391
|
-
return focusIndexScrollUp(state, index, listHeight, itemHeight, itemsLength);
|
|
3392
|
-
}
|
|
3393
|
-
if (index >= maxLineY - 1) {
|
|
3394
|
-
return focusIndexScrollDown(state, index, listHeight, itemHeight, itemsLength);
|
|
3395
|
-
}
|
|
3396
|
-
return {
|
|
3397
|
-
...state,
|
|
3398
|
-
focusedIndex: index,
|
|
3399
|
-
focused: true
|
|
3400
|
-
};
|
|
3401
|
-
};
|
|
3402
|
-
|
|
3403
|
-
const focusFirst = state => {
|
|
3404
|
-
const firstIndex = first();
|
|
3405
|
-
return focusIndex(state, firstIndex);
|
|
3406
|
-
};
|
|
3407
|
-
|
|
3408
|
-
const focusLast = state => {
|
|
3409
|
-
const {
|
|
3410
|
-
items
|
|
3411
|
-
} = state;
|
|
3412
|
-
const lastIndex = last(items);
|
|
3413
|
-
return focusIndex(state, lastIndex);
|
|
3414
|
-
};
|
|
3415
|
-
|
|
3416
|
-
const focusNext = state => {
|
|
3417
|
-
const {
|
|
3418
|
-
focusedIndex,
|
|
3419
|
-
items
|
|
3420
|
-
} = state;
|
|
3421
|
-
const nextIndex = next(items, focusedIndex);
|
|
3422
|
-
return focusIndex(state, nextIndex);
|
|
3423
|
-
};
|
|
3424
|
-
|
|
3425
|
-
const focusNextPage = state => {
|
|
3426
|
-
const {
|
|
3427
|
-
focusedIndex,
|
|
3428
|
-
items,
|
|
3429
|
-
maxLineY,
|
|
3430
|
-
minLineY
|
|
3431
|
-
} = state;
|
|
3432
|
-
if (isLastIndex(items, focusedIndex)) {
|
|
3433
|
-
return state;
|
|
3434
|
-
}
|
|
3435
|
-
const indexNextPage = Math.min(maxLineY + (maxLineY - minLineY) - 2, lastIndex(items));
|
|
3436
|
-
return focusIndex(state, indexNextPage);
|
|
3437
|
-
};
|
|
3438
|
-
|
|
3439
|
-
const focusPrevious = state => {
|
|
3440
|
-
const {
|
|
3441
|
-
focusedIndex,
|
|
3442
|
-
items
|
|
3443
|
-
} = state;
|
|
3444
|
-
if (focusedIndex === 0 || focusedIndex === -1) {
|
|
3445
|
-
return state;
|
|
3446
|
-
}
|
|
3447
|
-
const previousIndex = previous(items, focusedIndex);
|
|
3448
|
-
return focusIndex(state, previousIndex);
|
|
3449
|
-
};
|
|
3450
|
-
|
|
3451
|
-
const focusPreviousPage = state => {
|
|
3452
|
-
const {
|
|
3453
|
-
focusedIndex,
|
|
3454
|
-
minLineY,
|
|
3455
|
-
maxLineY
|
|
3456
|
-
} = state;
|
|
3457
|
-
if (focusedIndex === 0 || focusedIndex === -1) {
|
|
3458
|
-
return state;
|
|
3459
|
-
}
|
|
3460
|
-
const indexPreviousPage = Math.max(minLineY - (maxLineY - minLineY) + 1, 0);
|
|
3461
|
-
return focusIndex(state, indexPreviousPage);
|
|
3462
|
-
};
|
|
3463
|
-
|
|
3464
|
-
const getListIndex = (eventX, eventY, x, y, deltaY, itemHeight, topHeight) => {
|
|
3465
|
-
const relativeY = eventY - y - topHeight + deltaY;
|
|
3466
|
-
const index = Math.floor(relativeY / itemHeight);
|
|
3467
|
-
return index;
|
|
3468
|
-
};
|
|
3469
|
-
|
|
3470
|
-
const getTopHeight = flags => {
|
|
3471
|
-
if (flags & ReplaceExpanded && flags & DetailsExpanded) {
|
|
3472
|
-
return 190;
|
|
3473
|
-
}
|
|
3474
|
-
if (flags & DetailsExpanded) {
|
|
3475
|
-
return 158;
|
|
3476
|
-
}
|
|
3477
|
-
if (flags & ReplaceExpanded) {
|
|
3478
|
-
return 93;
|
|
3479
|
-
}
|
|
3480
|
-
return 61;
|
|
3481
|
-
};
|
|
3482
|
-
|
|
3483
|
-
const getFilteredResults = (results, collapsedPaths) => {
|
|
3484
|
-
if (collapsedPaths.length === 0) {
|
|
3485
|
-
return results;
|
|
3486
|
-
}
|
|
3487
|
-
const filteredResults = [];
|
|
3488
|
-
let isExcluded = false;
|
|
3489
|
-
for (const result of results) {
|
|
3490
|
-
if (result.type === File$1) {
|
|
3491
|
-
if (collapsedPaths.includes(result.text)) {
|
|
3492
|
-
isExcluded = true;
|
|
3493
|
-
} else {
|
|
3494
|
-
isExcluded = false;
|
|
3495
|
-
}
|
|
3496
|
-
}
|
|
3497
|
-
if (!isExcluded) {
|
|
3498
|
-
filteredResults.push(result);
|
|
3499
|
-
}
|
|
3500
|
-
}
|
|
3501
|
-
return filteredResults;
|
|
3502
|
-
};
|
|
3503
|
-
|
|
3504
|
-
const selectIndexFile = (state, searchResult, index) => {
|
|
3505
|
-
const {
|
|
3506
|
-
collapsedPaths,
|
|
3507
|
-
items,
|
|
3508
|
-
maxLineY
|
|
3509
|
-
} = state;
|
|
3510
|
-
const path = getAbsolutePath(searchResult.text);
|
|
3511
|
-
string(path);
|
|
3512
|
-
const pathWithDot = `.${path}`;
|
|
3513
|
-
const newCollapsedPaths = [...collapsedPaths, path, pathWithDot];
|
|
3514
|
-
const filteredResults = getFilteredResults(items, collapsedPaths);
|
|
3515
|
-
const newMaxLineY = Math.min(maxLineY, filteredResults.length);
|
|
3516
|
-
return {
|
|
3517
|
-
...state,
|
|
3518
|
-
collapsedPaths: newCollapsedPaths,
|
|
3519
|
-
listFocusedIndex: index,
|
|
3520
|
-
listFocused: true,
|
|
3521
|
-
listItems: filteredResults,
|
|
3522
|
-
maxLineY: newMaxLineY
|
|
3523
|
-
};
|
|
3524
|
-
};
|
|
3525
|
-
|
|
3526
|
-
const openUri = async (path, focus = true, props = {}) => {
|
|
3527
|
-
await invoke$2(/* Main.openUri */'Main.openUri', /* uri */path, /* focus */focus, props);
|
|
3528
|
-
};
|
|
3529
|
-
|
|
3530
|
-
const getFileIndex = (items, index) => {
|
|
3531
|
-
for (let i = index; i >= 0; i--) {
|
|
3532
|
-
const item = items[i];
|
|
3533
|
-
if (item.type === File$1) {
|
|
3534
|
-
return i;
|
|
3535
|
-
}
|
|
3536
|
-
}
|
|
3537
|
-
return -1;
|
|
3538
|
-
};
|
|
3539
|
-
const selectIndexPreview = async (state, searchResult, index) => {
|
|
3540
|
-
const {
|
|
3541
|
-
items
|
|
3542
|
-
} = state;
|
|
3543
|
-
const fileIndex = getFileIndex(items, index);
|
|
3544
|
-
if (fileIndex === -1) {
|
|
3545
|
-
throw new Error('Search result is missing file');
|
|
3546
|
-
}
|
|
3547
|
-
const {
|
|
3548
|
-
lineNumber
|
|
3549
|
-
} = searchResult;
|
|
3550
|
-
const fileResult = items[fileIndex];
|
|
3551
|
-
const path = getAbsolutePath(fileResult.text);
|
|
3552
|
-
string(path);
|
|
3553
|
-
await openUri(path, true, {
|
|
3554
|
-
selections: new Uint32Array([lineNumber, 0, lineNumber, 0])
|
|
3555
|
-
});
|
|
3556
|
-
return {
|
|
3557
|
-
...state,
|
|
3558
|
-
listFocusedIndex: index,
|
|
3559
|
-
listFocused: false
|
|
3560
|
-
};
|
|
3561
|
-
};
|
|
3562
|
-
|
|
3563
|
-
const selectIndex = async (state, index) => {
|
|
3564
|
-
if (index === -1) {
|
|
3565
|
-
return {
|
|
3566
|
-
...state,
|
|
3567
|
-
listFocused: true,
|
|
3568
|
-
listFocusedIndex: -1
|
|
3569
|
-
};
|
|
3570
|
-
}
|
|
3571
|
-
const {
|
|
3572
|
-
items
|
|
3573
|
-
} = state;
|
|
3574
|
-
const searchResult = items[index];
|
|
3575
|
-
switch (searchResult.type) {
|
|
3576
|
-
case File$1:
|
|
3577
|
-
return selectIndexFile(state, searchResult, index);
|
|
3578
|
-
case Match:
|
|
3579
|
-
return selectIndexPreview(state, searchResult, index);
|
|
3580
|
-
default:
|
|
3581
|
-
throw new Error(`unexpected search result type ${searchResult.type}`);
|
|
3582
|
-
}
|
|
3583
|
-
};
|
|
3584
|
-
|
|
3585
|
-
const handleClickAt = (state, eventX, eventY) => {
|
|
3586
|
-
const {
|
|
3587
|
-
x,
|
|
3588
|
-
y,
|
|
3589
|
-
itemHeight,
|
|
3590
|
-
deltaY,
|
|
3591
|
-
flags
|
|
3592
|
-
} = state;
|
|
3593
|
-
const topHeight = getTopHeight(flags);
|
|
3594
|
-
const index = getListIndex(eventX, eventY, x, y, deltaY, itemHeight, topHeight);
|
|
3595
|
-
return selectIndex(state, index);
|
|
3596
|
-
};
|
|
3597
|
-
|
|
3598
|
-
const handleScrollBarCaptureLost = state => {
|
|
3599
|
-
return {
|
|
3600
|
-
...state,
|
|
3601
|
-
scrollBarActive: false
|
|
3602
|
-
};
|
|
3603
|
-
};
|
|
3604
|
-
|
|
3605
|
-
const clamp = (num, min, max) => {
|
|
3606
|
-
return Math.min(Math.max(num, min), max);
|
|
3607
|
-
};
|
|
3608
|
-
|
|
3609
|
-
const setDeltaY = (state, value) => {
|
|
3610
|
-
object(state);
|
|
3611
|
-
number(value);
|
|
3612
|
-
const {
|
|
3613
|
-
itemHeight,
|
|
3614
|
-
finalDeltaY,
|
|
3615
|
-
deltaY,
|
|
3616
|
-
height,
|
|
3617
|
-
headerHeight
|
|
3618
|
-
} = state;
|
|
3619
|
-
const listHeight = height - headerHeight;
|
|
3620
|
-
const newDeltaY = clamp(value, 0, finalDeltaY);
|
|
3621
|
-
if (deltaY === newDeltaY) {
|
|
3622
|
-
return state;
|
|
3623
|
-
}
|
|
3624
|
-
// TODO when it only moves by one px, extensions don't need to be rerendered, only negative margin
|
|
3625
|
-
const minLineY = Math.floor(newDeltaY / itemHeight);
|
|
3626
|
-
const maxLineY = minLineY + getNumberOfVisibleItems(listHeight, itemHeight);
|
|
3627
|
-
return {
|
|
3628
|
-
...state,
|
|
3629
|
-
deltaY: newDeltaY,
|
|
3630
|
-
minLineY,
|
|
3631
|
-
maxLineY
|
|
3632
|
-
};
|
|
3633
|
-
};
|
|
3634
|
-
|
|
3635
|
-
const handleScrollBarClick = (state, eventY) => {
|
|
3636
|
-
const {
|
|
3637
|
-
y,
|
|
3638
|
-
deltaY,
|
|
3639
|
-
headerHeight,
|
|
3640
|
-
finalDeltaY,
|
|
3641
|
-
scrollBarHeight,
|
|
3642
|
-
height
|
|
3643
|
-
} = state;
|
|
3644
|
-
const contentHeight = height - headerHeight;
|
|
3645
|
-
const relativeY = eventY - y - headerHeight;
|
|
3646
|
-
const currentScrollBarY = getScrollBarY(deltaY, finalDeltaY, contentHeight, scrollBarHeight);
|
|
3647
|
-
const diff = relativeY - currentScrollBarY;
|
|
3648
|
-
if (diff >= 0 && diff < scrollBarHeight) {
|
|
3649
|
-
return {
|
|
3650
|
-
...state,
|
|
3651
|
-
handleOffset: diff,
|
|
3652
|
-
scrollBarActive: true
|
|
3653
|
-
};
|
|
3654
|
-
}
|
|
3655
|
-
const {
|
|
3656
|
-
percent,
|
|
3657
|
-
handleOffset
|
|
3658
|
-
} = getNewDeltaPercent(contentHeight, scrollBarHeight, relativeY);
|
|
3659
|
-
const newDeltaY = percent * finalDeltaY;
|
|
3660
|
-
return {
|
|
3661
|
-
...setDeltaY(state, newDeltaY),
|
|
3662
|
-
handleOffset,
|
|
3663
|
-
scrollBarActive: true
|
|
3664
|
-
};
|
|
3665
|
-
};
|
|
3666
|
-
|
|
3667
|
-
const getNewPercent = (contentHeight, scrollBarHeight, relativeY) => {
|
|
3668
|
-
if (relativeY <= contentHeight - scrollBarHeight / 2) {
|
|
3669
|
-
// clicked in middle
|
|
3670
|
-
return relativeY / (contentHeight - scrollBarHeight);
|
|
3671
|
-
}
|
|
3672
|
-
// clicked at bottom
|
|
3673
|
-
return 1;
|
|
3674
|
-
};
|
|
3675
|
-
const handleScrollBarMove = (state, eventY) => {
|
|
3676
|
-
const {
|
|
3677
|
-
y,
|
|
3678
|
-
headerHeight,
|
|
3679
|
-
handleOffset,
|
|
3680
|
-
finalDeltaY,
|
|
3681
|
-
height,
|
|
3682
|
-
scrollBarHeight
|
|
3683
|
-
} = state;
|
|
3684
|
-
const relativeY = eventY - y - headerHeight - handleOffset;
|
|
3685
|
-
const contentHeight = height - headerHeight;
|
|
3686
|
-
const newPercent = getNewPercent(contentHeight, scrollBarHeight, relativeY);
|
|
3687
|
-
const newDeltaY = newPercent * finalDeltaY;
|
|
3688
|
-
return setDeltaY(state, newDeltaY);
|
|
3689
|
-
};
|
|
3690
|
-
|
|
3691
|
-
const handleWheel = (state, deltaMode, deltaY) => {
|
|
3692
|
-
number(deltaMode);
|
|
3693
|
-
number(deltaY);
|
|
3694
|
-
return setDeltaY(state, state.deltaY + deltaY);
|
|
3695
|
-
};
|
|
3696
|
-
|
|
3697
|
-
const getSavedValue = savedState => {
|
|
3698
|
-
if (savedState && typeof savedState === 'object' && 'value' in savedState && typeof savedState.value === 'string') {
|
|
3699
|
-
return savedState.value;
|
|
3700
|
-
}
|
|
3701
|
-
return '';
|
|
3702
|
-
};
|
|
3703
|
-
const getSavedReplacement = savedState => {
|
|
3704
|
-
if (savedState && typeof savedState === 'object' && 'replacement' in savedState && typeof savedState.replacement === 'string') {
|
|
3705
|
-
return savedState.replacement;
|
|
3706
|
-
}
|
|
3707
|
-
return '';
|
|
3708
|
-
};
|
|
3709
|
-
const getSavedFlags = savedState => {
|
|
3710
|
-
if (savedState && typeof savedState === 'object' && 'flags' in savedState && typeof savedState.flags === 'number') {
|
|
3711
|
-
return savedState.flags;
|
|
3712
|
-
}
|
|
3713
|
-
return 0;
|
|
3714
|
-
};
|
|
3715
|
-
const getSavedIncludeValue = savedState => {
|
|
3716
|
-
if (savedState && typeof savedState === 'object' && 'includeValue' in savedState && typeof savedState.includeValue === 'string') {
|
|
3717
|
-
return savedState.includeValue;
|
|
3718
|
-
}
|
|
3719
|
-
return '';
|
|
3720
|
-
};
|
|
3721
|
-
const getSavedExcludeValue = savedState => {
|
|
3722
|
-
if (savedState && typeof savedState === 'object' && 'excludeValue' in savedState && typeof savedState.excludeValue === 'string') {
|
|
3723
|
-
return savedState.excludeValue;
|
|
3724
|
-
}
|
|
3725
|
-
return '';
|
|
3726
|
-
};
|
|
3727
|
-
const restoreState = savedState => {
|
|
3728
|
-
return {
|
|
3729
|
-
savedValue: getSavedValue(savedState),
|
|
3730
|
-
replacement: getSavedReplacement(savedState),
|
|
3731
|
-
savedCollapsedPaths: [],
|
|
3732
|
-
threads: 1,
|
|
3733
|
-
flags: getSavedFlags(savedState),
|
|
3734
|
-
includeValue: getSavedIncludeValue(savedState),
|
|
3735
|
-
excludeValue: getSavedExcludeValue(savedState)
|
|
3736
|
-
};
|
|
3737
|
-
};
|
|
3738
|
-
|
|
3739
|
-
const loadContent = async (state, savedState) => {
|
|
3740
|
-
const {
|
|
3741
|
-
savedValue,
|
|
3742
|
-
savedCollapsedPaths,
|
|
3743
|
-
threads,
|
|
3744
|
-
replacement,
|
|
3745
|
-
flags,
|
|
3746
|
-
includeValue,
|
|
3747
|
-
excludeValue
|
|
3748
|
-
} = restoreState(savedState);
|
|
3749
|
-
if (savedValue) {
|
|
3750
|
-
return handleUpdate(state, {
|
|
3751
|
-
value: savedValue,
|
|
3752
|
-
threads,
|
|
3753
|
-
inputSource: Script,
|
|
3754
|
-
collapsedPaths: savedCollapsedPaths,
|
|
3755
|
-
replacement,
|
|
3756
|
-
flags,
|
|
3757
|
-
includeValue,
|
|
3758
|
-
excludeValue
|
|
3759
|
-
});
|
|
3760
|
-
}
|
|
3761
|
-
return {
|
|
3762
|
-
...state,
|
|
3763
|
-
threads,
|
|
3764
|
-
flags,
|
|
3765
|
-
loaded: true
|
|
3766
|
-
};
|
|
3767
|
-
};
|
|
3768
|
-
|
|
3769
|
-
const refresh = state => {
|
|
3770
|
-
return handleUpdate(state, {});
|
|
3771
|
-
};
|
|
3772
|
-
|
|
3773
|
-
const getFocusSelector = focusKey => {
|
|
3774
|
-
switch (focusKey) {
|
|
3775
|
-
case FocusSearchInput:
|
|
3776
|
-
return SearchValue;
|
|
3777
|
-
case FocusSearchReplaceInput:
|
|
3778
|
-
return ReplaceValue;
|
|
3779
|
-
case FocusToggleDetails:
|
|
3780
|
-
return ToggleSearchDetails;
|
|
3781
|
-
case FocusSearchMatchCase:
|
|
3782
|
-
return MatchCase;
|
|
3783
|
-
case FocusSearchPreserveCase:
|
|
3784
|
-
return PreserveCase;
|
|
3785
|
-
case FocusSearchRegex:
|
|
3786
|
-
return UseRegularExpression;
|
|
3787
|
-
case FocusSearchIncludeInput:
|
|
3788
|
-
return FilesToInclude;
|
|
3789
|
-
case FocusSearchExcludeInput:
|
|
3790
|
-
return FilesToExclude;
|
|
3791
|
-
case FocusSearchWholeWord:
|
|
3792
|
-
return MatchWholeWord;
|
|
3793
|
-
case FocusSearchReplaceAll:
|
|
3794
|
-
return ReplaceAll;
|
|
3795
|
-
case FocusSearchOpenEditors:
|
|
3796
|
-
return SearchOnlyOpenEditors;
|
|
3797
|
-
case FocusIgnoreFiles:
|
|
3798
|
-
return UseExcludeSettings;
|
|
3799
|
-
case FocusToggleReplace:
|
|
3800
|
-
return ToggleReplace;
|
|
3801
|
-
default:
|
|
3802
|
-
return '';
|
|
3803
|
-
}
|
|
3804
|
-
};
|
|
3805
|
-
|
|
3806
|
-
const renderItems = {
|
|
3807
|
-
isEqual(oldState, newState) {
|
|
3808
|
-
return oldState.items === newState.items && oldState.minLineY === newState.minLineY && oldState.maxLineY === newState.maxLineY && oldState.replacement === newState.replacement && oldState.flags === newState.flags && oldState.message === newState.message && oldState.loaded === newState.loaded && oldState.collapsedPaths === newState.collapsedPaths && oldState.listFocusedIndex === newState.listFocusedIndex && oldState.listFocused === newState.listFocused && oldState.icons === newState.icons;
|
|
3809
|
-
},
|
|
3810
|
-
apply(oldState, newState) {
|
|
3811
|
-
const displayResults = getDisplayResults(newState.listItems, newState.itemHeight, newState.fileCount, newState.value, newState.minLineY, newState.maxLineY, newState.replacement, newState.icons, newState.listFocusedIndex);
|
|
3812
|
-
const focusOutline = newState.listFocused && newState.listFocusedIndex === -1;
|
|
3813
|
-
const dom = getSearchVirtualDom(displayResults, newState.flags, newState.message, focusOutline);
|
|
3814
|
-
return ['Viewlet.setDom2', newState.uid, dom];
|
|
3815
|
-
}
|
|
3816
|
-
};
|
|
3817
|
-
const renderFocus = {
|
|
3818
|
-
isEqual(oldState, newState) {
|
|
3819
|
-
return oldState.focus === newState.focus || newState.focusSource === User;
|
|
3820
|
-
},
|
|
3821
|
-
apply(oldState, newState) {
|
|
3822
|
-
const name = newState.focusSource === User ? '' : getFocusSelector(newState.focus);
|
|
3823
|
-
return ['Viewlet.focusElementByName', name];
|
|
3824
|
-
}
|
|
3825
|
-
};
|
|
3826
|
-
const renderValue = {
|
|
3827
|
-
isEqual(oldState, newState) {
|
|
3828
|
-
return oldState.value === newState.value || newState.inputSource === User;
|
|
3829
|
-
},
|
|
3830
|
-
apply(oldState, newState) {
|
|
3831
|
-
return ['Viewlet.send', newState.uid, 'setValue', newState.value, '[name="search-value"]'];
|
|
3832
|
-
}
|
|
3833
|
-
};
|
|
3834
|
-
const renderReplacement = {
|
|
3835
|
-
isEqual(oldState, newState) {
|
|
3836
|
-
return oldState.replacement === newState.replacement || newState.inputSource === User;
|
|
3837
|
-
},
|
|
3838
|
-
apply(oldState, newState) {
|
|
3839
|
-
const selector = getFocusSelector(FocusSearchReplaceInput);
|
|
3840
|
-
return ['Viewlet.send', newState.uid, 'setValue', newState.replacement, selector];
|
|
3841
|
-
}
|
|
3842
|
-
};
|
|
3843
|
-
const renderIncludeValue = {
|
|
3844
|
-
isEqual(oldState, newState) {
|
|
3845
|
-
return oldState.includeValue === newState.includeValue || newState.inputSource === User;
|
|
3846
|
-
},
|
|
3847
|
-
apply(oldState, newState) {
|
|
3848
|
-
const selector = getFocusSelector(FocusSearchIncludeInput);
|
|
3849
|
-
return ['Viewlet.send', newState.uid, 'setValue', newState.includeValue, selector];
|
|
3850
|
-
}
|
|
3851
|
-
};
|
|
3852
|
-
const renderExcludeValue = {
|
|
3853
|
-
isEqual(oldState, newState) {
|
|
3854
|
-
return oldState.excludeValue === newState.excludeValue || newState.inputSource === User;
|
|
3855
|
-
},
|
|
3856
|
-
apply(oldState, newState) {
|
|
3857
|
-
const selector = getFocusSelector(FocusSearchExcludeInput);
|
|
3858
|
-
return ['Viewlet.send', newState.uid, 'setValue', newState.excludeValue, selector];
|
|
3859
|
-
}
|
|
3860
|
-
};
|
|
3861
|
-
const render = [renderItems, renderValue, renderIncludeValue, renderExcludeValue, renderReplacement, renderFocus];
|
|
3862
|
-
const doRender = uid => {
|
|
3863
|
-
const {
|
|
3864
|
-
oldState,
|
|
3865
|
-
newState
|
|
3866
|
-
} = get(uid);
|
|
3867
|
-
const commands = [];
|
|
3868
|
-
for (const fn of render) {
|
|
3869
|
-
if (!fn.isEqual(oldState, newState)) {
|
|
3870
|
-
commands.push(fn.apply(oldState, newState));
|
|
3871
|
-
}
|
|
3872
|
-
}
|
|
3873
|
-
return commands;
|
|
3874
|
-
};
|
|
3875
|
-
|
|
3876
|
-
const getBulkReplacementEdits = (workspacePath, matches) => {
|
|
3877
|
-
string(workspacePath);
|
|
3878
|
-
array(matches);
|
|
3879
|
-
const files = [];
|
|
3880
|
-
const ranges = [];
|
|
3881
|
-
let currentRanges = [];
|
|
3882
|
-
for (const match of matches) {
|
|
3883
|
-
const {
|
|
3884
|
-
type,
|
|
3885
|
-
text
|
|
3886
|
-
} = match;
|
|
3887
|
-
switch (type) {
|
|
3888
|
-
case File$1:
|
|
3889
|
-
ranges.push(currentRanges.length);
|
|
3890
|
-
push(ranges, currentRanges);
|
|
3891
|
-
const absolutePath = `${workspacePath}/${text.slice(2)}`;
|
|
3892
|
-
files.push(absolutePath);
|
|
3893
|
-
currentRanges = [];
|
|
3894
|
-
break;
|
|
3895
|
-
case Match:
|
|
3896
|
-
currentRanges.push(match.lineNumber - 1, match.matchStart, match.lineNumber - 1, match.matchStart + match.matchLength);
|
|
3897
|
-
break;
|
|
3898
|
-
}
|
|
3899
|
-
}
|
|
3900
|
-
ranges.push(currentRanges.length);
|
|
3901
|
-
push(ranges, currentRanges);
|
|
3902
|
-
return {
|
|
3903
|
-
files,
|
|
3904
|
-
ranges: ranges.slice(1)
|
|
3905
|
-
};
|
|
3906
|
-
};
|
|
3907
|
-
|
|
3908
|
-
const replaceAll = async state => {
|
|
3909
|
-
const {
|
|
3910
|
-
workspacePath,
|
|
3911
|
-
items,
|
|
3912
|
-
replacement
|
|
3913
|
-
} = state;
|
|
3914
|
-
const {
|
|
3915
|
-
files,
|
|
3916
|
-
ranges
|
|
3917
|
-
} = getBulkReplacementEdits(workspacePath, items);
|
|
3918
|
-
await invoke$2('BulkReplacement.applyBulkReplacement', files, ranges, replacement);
|
|
3919
|
-
return state;
|
|
3920
|
-
};
|
|
3921
|
-
|
|
3922
|
-
const getReplaceAllConfirmText = (matchCount, fileCount, replacement) => {
|
|
3923
|
-
if (matchCount === 1) {
|
|
3924
|
-
if (replacement) {
|
|
3925
|
-
return confirmReplaceOneOccurrenceInOneFile(replacement);
|
|
3926
|
-
}
|
|
3927
|
-
return confirmReplaceOneOccurrenceInOneFileNoValue();
|
|
3928
|
-
}
|
|
3929
|
-
if (fileCount === 1) {
|
|
3930
|
-
if (replacement) {
|
|
3931
|
-
return confirmReplaceManyOccurrencesInOneFile(matchCount, replacement);
|
|
3932
|
-
}
|
|
3933
|
-
return confirmReplaceManyOccurrencesInOneFileNoValue(matchCount);
|
|
3934
|
-
}
|
|
3935
|
-
if (replacement) {
|
|
3936
|
-
return confirmReplaceManyOccurrencesInManyFiles(matchCount, fileCount, replacement);
|
|
3937
|
-
}
|
|
3938
|
-
return confirmReplaceManyOccurrencesInManyFilesNoValue(matchCount, fileCount);
|
|
3939
|
-
};
|
|
3940
|
-
|
|
3941
|
-
const replaceAllAndPrompt = async (workspacePath, items, replacement, matchCount, fileCount) => {
|
|
3942
|
-
string(workspacePath);
|
|
3943
|
-
array(items);
|
|
3944
|
-
string(replacement);
|
|
3945
|
-
number(matchCount);
|
|
3946
|
-
number(fileCount);
|
|
3947
|
-
const confirmTitle = replaceAll$1();
|
|
3948
|
-
const confirmAccept = replace();
|
|
3949
|
-
const confirmText = getReplaceAllConfirmText(matchCount, fileCount, replacement);
|
|
3950
|
-
const shouldReplace = await invoke$2('ConfirmPrompt.prompt', confirmText, {
|
|
3951
|
-
title: confirmTitle,
|
|
3952
|
-
confirmMessage: confirmAccept
|
|
3953
|
-
});
|
|
3954
|
-
if (!shouldReplace) {
|
|
3955
|
-
return false;
|
|
3956
|
-
}
|
|
3957
|
-
// TODO
|
|
3958
|
-
// await TextSearchReplaceAll.replaceAll(workspacePath, items, replacement)
|
|
3959
|
-
return true;
|
|
3960
|
-
};
|
|
3961
|
-
|
|
3962
|
-
const saveState = uid => {
|
|
3963
|
-
const {
|
|
3964
|
-
newState
|
|
3965
|
-
} = get(uid);
|
|
3966
|
-
const {
|
|
3967
|
-
value,
|
|
3968
|
-
replacement,
|
|
3969
|
-
flags,
|
|
3970
|
-
includeValue,
|
|
3971
|
-
excludeValue
|
|
3972
|
-
} = newState;
|
|
3973
|
-
return {
|
|
3974
|
-
value,
|
|
3975
|
-
replacement,
|
|
3976
|
-
flags,
|
|
3977
|
-
includeValue,
|
|
3978
|
-
excludeValue
|
|
3979
|
-
};
|
|
3980
|
-
};
|
|
3981
|
-
|
|
3982
|
-
const focusElement = (state, focusKey) => {
|
|
3983
|
-
return {
|
|
3984
|
-
...state,
|
|
3985
|
-
focus: focusKey,
|
|
3986
|
-
focusSource: Script
|
|
3987
|
-
};
|
|
3988
|
-
};
|
|
3989
|
-
|
|
3990
|
-
const setFocus = async focusKey => {
|
|
3991
|
-
await invoke$2('Focus.setFocus', focusKey);
|
|
3992
|
-
};
|
|
3993
|
-
|
|
3994
|
-
const getSearchFocusKey = key => {
|
|
3995
|
-
switch (key) {
|
|
3996
|
-
case SearchValue:
|
|
3997
|
-
return FocusSearchInput;
|
|
3998
|
-
case ReplaceValue:
|
|
3999
|
-
return FocusSearchReplaceInput;
|
|
4000
|
-
case MatchCase:
|
|
4001
|
-
return FocusSearchMatchCase;
|
|
4002
|
-
case MatchWholeWord:
|
|
4003
|
-
return FocusSearchWholeWord;
|
|
4004
|
-
case UseRegularExpression:
|
|
4005
|
-
return FocusSearchRegex;
|
|
4006
|
-
case ReplaceAll:
|
|
4007
|
-
return FocusSearchReplaceAll;
|
|
4008
|
-
case PreserveCase:
|
|
4009
|
-
return FocusSearchPreserveCase;
|
|
4010
|
-
case ToggleSearchDetails:
|
|
4011
|
-
return FocusToggleDetails;
|
|
4012
|
-
case FilesToInclude:
|
|
4013
|
-
return FocusSearchIncludeInput;
|
|
4014
|
-
case FilesToExclude:
|
|
4015
|
-
return FocusSearchExcludeInput;
|
|
4016
|
-
case SearchOnlyOpenEditors:
|
|
4017
|
-
return FocusSearchOpenEditors;
|
|
4018
|
-
case UseExcludeSettings:
|
|
4019
|
-
return FocusIgnoreFiles;
|
|
4020
|
-
default:
|
|
4021
|
-
return Empty$1;
|
|
4022
|
-
}
|
|
4023
|
-
};
|
|
4024
|
-
|
|
4025
|
-
const focusSearchValue = state => {
|
|
4026
|
-
return focusElement(state, FocusSearchInput);
|
|
4027
|
-
};
|
|
4028
|
-
const focusMatchCasePrevious = state => {
|
|
4029
|
-
if (hasReplaceExpanded(state.flags)) {
|
|
4030
|
-
return focusReplaceValue(state);
|
|
4031
|
-
}
|
|
4032
|
-
return focusSearchValue(state);
|
|
4033
|
-
};
|
|
4034
|
-
const focusReplaceValuePrevious = state => {
|
|
4035
|
-
return focusSearchValue(state);
|
|
4036
|
-
};
|
|
4037
|
-
const focusReplaceValueNext = state => {
|
|
4038
|
-
return focusMatchCase(state);
|
|
4039
|
-
};
|
|
4040
|
-
const focusRegexNext = state => {
|
|
4041
|
-
return focusPreserveCase(state);
|
|
4042
|
-
};
|
|
4043
|
-
const focusPreserveCasePrevious = state => {
|
|
4044
|
-
return focusRegex(state);
|
|
4045
|
-
};
|
|
4046
|
-
const focusReplaceValue = state => {
|
|
4047
|
-
return focusElement(state, FocusSearchReplaceInput);
|
|
4048
|
-
};
|
|
4049
|
-
const focusMatchCase = state => {
|
|
4050
|
-
return focusElement(state, FocusSearchMatchCase);
|
|
4051
|
-
};
|
|
4052
|
-
const focusPreserveCase = state => {
|
|
4053
|
-
return focusElement(state, FocusSearchPreserveCase);
|
|
4054
|
-
};
|
|
4055
|
-
const focusMatchWholeWord = state => {
|
|
4056
|
-
return focusElement(state, FocusSearchWholeWord);
|
|
4057
|
-
};
|
|
4058
|
-
const focusRegex = state => {
|
|
4059
|
-
return focusElement(state, FocusSearchRegex);
|
|
4060
|
-
};
|
|
4061
|
-
const focusReplaceAll = state => {
|
|
4062
|
-
return focusElement(state, FocusSearchReplaceAll);
|
|
4063
|
-
};
|
|
4064
|
-
const handleFocusIn = (state, key) => {
|
|
4065
|
-
const focusKey = getSearchFocusKey(key);
|
|
4066
|
-
if (state.focus === focusKey) {
|
|
4067
|
-
return state;
|
|
4068
|
-
}
|
|
4069
|
-
void setFocus(FocusSearch);
|
|
4070
|
-
return {
|
|
4071
|
-
...state,
|
|
4072
|
-
focus: focusKey,
|
|
4073
|
-
focusSource: User
|
|
4074
|
-
};
|
|
4075
|
-
};
|
|
4076
|
-
|
|
4077
|
-
const submit = state => {
|
|
4078
|
-
return handleUpdate(state, {
|
|
4079
|
-
value: state.value,
|
|
4080
|
-
inputSource: User
|
|
4081
|
-
});
|
|
4082
|
-
};
|
|
4083
|
-
|
|
4084
|
-
const toggleSearchFlag = (state, flag) => {
|
|
4085
|
-
return {
|
|
4086
|
-
...state,
|
|
4087
|
-
flags: state.flags ^ flag
|
|
4088
|
-
};
|
|
4089
|
-
};
|
|
4090
|
-
|
|
4091
|
-
const collapseDetails = state => {
|
|
4092
|
-
return {
|
|
4093
|
-
...toggleSearchFlag(state, DetailsExpanded),
|
|
4094
|
-
focus: FocusSearchInput,
|
|
4095
|
-
focusSource: Script
|
|
4096
|
-
};
|
|
4097
|
-
};
|
|
4098
|
-
|
|
4099
|
-
const expandDetails = state => {
|
|
4100
|
-
return {
|
|
4101
|
-
...toggleSearchFlag(state, DetailsExpanded),
|
|
4102
|
-
focus: FocusSearchIncludeInput,
|
|
4103
|
-
focusSource: Script
|
|
4104
|
-
};
|
|
4105
|
-
};
|
|
4106
|
-
|
|
4107
|
-
const toggleDetailsExpanded = state => {
|
|
4108
|
-
if (hasDetailsExpanded(state.flags)) {
|
|
4109
|
-
return collapseDetails(state);
|
|
4110
|
-
}
|
|
4111
|
-
return expandDetails(state);
|
|
4112
|
-
};
|
|
4113
|
-
|
|
4114
|
-
const toggleMatchCase = state => {
|
|
4115
|
-
return toggleSearchFlag(state, MatchCase$1);
|
|
4116
|
-
};
|
|
4117
|
-
|
|
4118
|
-
const toggleMatchWholeWord = state => {
|
|
4119
|
-
return toggleSearchFlag(state, MatchWholeWord$1);
|
|
4120
|
-
};
|
|
4121
|
-
|
|
4122
|
-
const toggleOpenEditors = state => {
|
|
4123
|
-
return toggleSearchFlag(state, OpenEditors);
|
|
4124
|
-
};
|
|
4125
|
-
|
|
4126
|
-
const togglePreserveCase = state => {
|
|
4127
|
-
return toggleSearchFlag(state, PreserveCase$1);
|
|
4128
|
-
};
|
|
4129
|
-
|
|
4130
|
-
const toggleReplace = state => {
|
|
4131
|
-
return toggleSearchFlag(state, ReplaceExpanded);
|
|
4132
|
-
};
|
|
4133
|
-
|
|
4134
|
-
const toggleUseIgnoreFiles = state => {
|
|
4135
|
-
return toggleSearchFlag(state, UseIgnoreFiles);
|
|
4136
|
-
};
|
|
4137
|
-
|
|
4138
|
-
const toggleUseRegularExpression = state => {
|
|
4139
|
-
return toggleSearchFlag(state, UseRegularExpression$1);
|
|
4140
|
-
};
|
|
4141
|
-
|
|
4142
|
-
const Keyboard = -1;
|
|
4143
|
-
|
|
4144
|
-
const show = async (x, y, id, ...args) => {
|
|
4145
|
-
// TODO ask renderer worker to show context menu
|
|
4146
|
-
number(x);
|
|
4147
|
-
number(y);
|
|
4148
|
-
number(id);
|
|
4149
|
-
// TODO
|
|
4150
|
-
await invoke$2('ContextMenu.show', x, y, id, ...args);
|
|
4151
|
-
};
|
|
4152
|
-
|
|
4153
|
-
const Search = 18;
|
|
4154
|
-
|
|
4155
|
-
const handleContextMenuKeyboard = async state => {
|
|
4156
|
-
const x = state.x; // TODO
|
|
4157
|
-
const y = state.y; // TODO
|
|
4158
|
-
await show(x, y, Search);
|
|
4159
|
-
return state;
|
|
4160
|
-
};
|
|
4161
|
-
|
|
4162
|
-
const handleContextMenuMouseAt = async (state, x, y) => {
|
|
4163
|
-
await show(x, y, Search);
|
|
4164
|
-
return state;
|
|
4165
|
-
};
|
|
4166
|
-
|
|
4167
|
-
const handleContextMenu = (state, button, x, y) => {
|
|
4168
|
-
switch (button) {
|
|
4169
|
-
case Keyboard:
|
|
4170
|
-
return handleContextMenuKeyboard(state);
|
|
4171
|
-
default:
|
|
4172
|
-
return handleContextMenuMouseAt(state, x, y);
|
|
4173
|
-
}
|
|
4174
|
-
};
|
|
4175
|
-
|
|
4176
|
-
const wrapCommand = fn => {
|
|
4177
|
-
const wrapped = async (uid, ...args) => {
|
|
4178
|
-
const {
|
|
4179
|
-
newState
|
|
4180
|
-
} = get(uid);
|
|
4181
|
-
const newerState = await fn(newState, ...args);
|
|
4182
|
-
set(uid, newState, newerState);
|
|
4183
|
-
};
|
|
4184
|
-
return wrapped;
|
|
4185
|
-
};
|
|
4186
|
-
|
|
4187
|
-
const commandMap = {
|
|
4188
|
-
'TextSearch.clearSearchResults': wrapCommand(clearSearchResults$1),
|
|
4189
|
-
'TextSearch.copy': wrapCommand(copy),
|
|
4190
|
-
'TextSearch.dismissItem': wrapCommand(dismissItem),
|
|
4191
|
-
'TextSearch.focusFirst': wrapCommand(focusFirst),
|
|
4192
|
-
'TextSearch.focusIndex': wrapCommand(focusIndex),
|
|
4193
|
-
'TextSearch.focusLast': wrapCommand(focusLast),
|
|
4194
|
-
'TextSearch.focusMatchCase': wrapCommand(focusMatchCase$1),
|
|
4195
|
-
'TextSearch.focusMatchCasePrevious': wrapCommand(focusMatchCasePrevious),
|
|
4196
|
-
'TextSearch.focusMatchWholeWord': wrapCommand(focusMatchWholeWord),
|
|
4197
|
-
'TextSearch.focusNext': wrapCommand(focusNext),
|
|
4198
|
-
'TextSearch.focusNextInput': wrapCommand(focusNextInput),
|
|
4199
|
-
'TextSearch.focusNextPage': wrapCommand(focusNextPage),
|
|
4200
|
-
'TextSearch.focusPreserveCase': wrapCommand(focusPreserveCase),
|
|
4201
|
-
'TextSearch.focusPreserveCasePrevious': wrapCommand(focusPreserveCasePrevious),
|
|
4202
|
-
'TextSearch.focusPrevious': wrapCommand(focusPrevious),
|
|
4203
|
-
'TextSearch.focusPreviousInput': wrapCommand(focusPreviousInput),
|
|
4204
|
-
'TextSearch.focusPreviousPage': wrapCommand(focusPreviousPage),
|
|
4205
|
-
'TextSearch.focusRegex': wrapCommand(focusRegex),
|
|
4206
|
-
'TextSearch.focusRegexNext': wrapCommand(focusRegexNext),
|
|
4207
|
-
'TextSearch.focusReplaceAll': wrapCommand(focusReplaceAll),
|
|
4208
|
-
'TextSearch.focusReplaceValue': wrapCommand(focusReplaceValue$1),
|
|
4209
|
-
'TextSearch.focusReplaceValueNext': wrapCommand(focusReplaceValueNext),
|
|
4210
|
-
'TextSearch.focusReplaceValuePrevious': wrapCommand(focusReplaceValuePrevious),
|
|
4211
|
-
'TextSearch.focusSearchValue': wrapCommand(focusSearchValue$1),
|
|
4212
|
-
'TextSearch.focusSearchValueNext': wrapCommand(focusSearchValueNext),
|
|
4213
|
-
'TextSearch.getActions': wrapCommand(getActions),
|
|
4214
|
-
'TextSearch.getActionsVirtualDom': wrapCommand(getActionsVirtualDom),
|
|
4215
|
-
'TextSearch.getSearchDisplayResults': wrapCommand(getDisplayResults),
|
|
4216
|
-
'TextSearch.getVirtualDom': wrapCommand(getSearchVirtualDom),
|
|
4217
|
-
'TextSearch.handleClickAt': wrapCommand(handleClickAt),
|
|
4218
|
-
'TextSearch.handleContextMenu': wrapCommand(handleContextMenu),
|
|
4219
|
-
'TextSearch.handleExcludeInput': wrapCommand(handleExcludeInput),
|
|
4220
|
-
'TextSearch.handleFocusIn': wrapCommand(handleFocusIn),
|
|
4221
|
-
'TextSearch.handleIconThemeChange': wrapCommand(handleIconThemeChange),
|
|
4222
|
-
'TextSearch.handleIncludeInput': wrapCommand(handleIncludeInput),
|
|
4223
|
-
'TextSearch.handleInput': wrapCommand(handleInput),
|
|
4224
|
-
'TextSearch.handleListBlur': wrapCommand(handleListBlur),
|
|
4225
|
-
'TextSearch.handleReplaceInput': wrapCommand(handleReplaceInput),
|
|
4226
|
-
'TextSearch.handleScrollBarCaptureLost': wrapCommand(handleScrollBarCaptureLost),
|
|
4227
|
-
'TextSearch.handleScrollBarClick': wrapCommand(handleScrollBarClick),
|
|
4228
|
-
'TextSearch.handleScrollBarMove': wrapCommand(handleScrollBarMove),
|
|
4229
|
-
'TextSearch.handleSharedInput': wrapCommand(handleSharedInput),
|
|
4230
|
-
'TextSearch.handleWheel': wrapCommand(handleWheel),
|
|
4231
|
-
'TextSearch.launchSearchProcess': wrapCommand(launchSearchProcess),
|
|
4232
|
-
'TextSearch.loadContent': wrapCommand(loadContent),
|
|
4233
|
-
'TextSearch.refresh': wrapCommand(refresh),
|
|
4234
|
-
'TextSearch.replaceAll': wrapCommand(replaceAll),
|
|
4235
|
-
'TextSearch.replaceAllAndPrompt': wrapCommand(replaceAllAndPrompt),
|
|
4236
|
-
'TextSearch.submit': wrapCommand(submit),
|
|
4237
|
-
'TextSearch.toggleMatchCase': wrapCommand(toggleMatchCase),
|
|
4238
|
-
'TextSearch.toggleMatchWholeWord': wrapCommand(toggleMatchWholeWord),
|
|
4239
|
-
'TextSearch.toggleOpenEditors': wrapCommand(toggleOpenEditors),
|
|
4240
|
-
'TextSearch.togglePreserveCase': wrapCommand(togglePreserveCase),
|
|
4241
|
-
'TextSearch.toggleReplace': wrapCommand(toggleReplace),
|
|
4242
|
-
'TextSearch.toggleSearchDetails': wrapCommand(toggleDetailsExpanded),
|
|
4243
|
-
'TextSearch.toggleUseIgnoreFiles': wrapCommand(toggleUseIgnoreFiles),
|
|
4244
|
-
'TextSearch.toggleUseRegularExpression': wrapCommand(toggleUseRegularExpression),
|
|
4245
|
-
// not wrapped
|
|
4246
|
-
'TextSearch.create': create,
|
|
4247
|
-
'TextSearch.getFlags': getFlags,
|
|
4248
|
-
'TextSearch.getFocus': getFocus,
|
|
4249
|
-
'TextSearch.getKeyBindings': getKeyBindings,
|
|
4250
|
-
'TextSearch.render': doRender,
|
|
4251
|
-
'TextSearch.saveState': saveState,
|
|
4252
|
-
// TODO needed?
|
|
4253
|
-
'TextSearch.textSearch': textSearch
|
|
4254
|
-
};
|
|
4255
|
-
|
|
4256
|
-
const listen = async () => {
|
|
4257
|
-
const rpc = await WebWorkerRpcClient.create({
|
|
4258
|
-
commandMap: commandMap
|
|
4259
|
-
});
|
|
4260
|
-
setRpc(rpc);
|
|
4261
|
-
};
|
|
4262
|
-
|
|
4263
|
-
const main = async () => {
|
|
4264
|
-
await listen();
|
|
4265
|
-
};
|
|
4266
|
-
|
|
4267
|
-
main();
|